

.intel_syntax noprefix

.global GenerateCString
.global CreateFloat
.global TextItemError
.global CatStrDir
.global SetTextMacro
.global AddPredefinedText
.global SubStrDir
.global SizeStrDir
.global InStrDir
.global StringInit

.extern ComAlloc
.extern GetTypeId
.extern InsertLineQueue
.extern RunLineQueue
.extern AddLineQueueX
.extern AddLineQueue
.extern get_register
.extern GetResWName
.extern _atoow
.extern __cvtq_ld
.extern __cvtq_sd
.extern __cvtq_ss
.extern EvalOperand
.extern GetCurrOffset
.extern LstWrite
.extern SkipSavedState
.extern StoreLine
.extern LineStoreCurr
.extern CreateMacro
.extern Tokenize
.extern sym_remove_table
.extern SymTables
.extern LclAlloc
.extern MemFree
.extern MemAlloc
.extern CreateVariable
.extern tstrstart
.extern tsprintf
.extern myltoa
.extern asmerr
.extern Options
.extern Parse_Pass
.extern SymFindID
.extern SymFind
.extern SymGCreate
.extern SymCreate
.extern tstrstr
.extern tstricmp
.extern tstrcmp
.extern tstrcat
.extern tstrcpy
.extern tstrrchr
.extern tstrchr
.extern tstrlen
.extern tmemcmp
.extern tmemcpy


.SECTION .text
	.ALIGN	16

$_001:	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x20], r9
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 56
	mov	rsi, r8
	mov	byte ptr [rbp-0x3], 0
	mov	ecx, dword ptr [r14+0x234]
	cmp	ecx, 2048
	jbe	$_002
	mov	byte ptr [rbp-0x3], 1
	call	MemAlloc@PLT
	jmp	$_003

$_002:	mov	eax, ecx
	add	eax, 15
	and	eax, 0xFFFFFFF0
	sub	rsp, rax
	lea	rax, [rsp+0x20]
$_003:	mov	qword ptr [rbp-0x10], rax
	mov	rdi, qword ptr [rbp+0x30]
	mov	rdx, rax
	xor	ebx, ebx
	mov	qword ptr [rdx], rbx
	xor	eax, eax
	test	byte ptr [r14+0x1], 0x20
	jz	$_004
	mov	eax, 1
$_004:
	cmp	word ptr [rsi], 8780
	jnz	$_005
	or	byte ptr [r14+0x370], 0x04
	mov	eax, 1
	add	rsi, 1
$_005:	mov	rcx, qword ptr [rbp+0x48]
	mov	byte ptr [rcx], al
	mov	byte ptr [rbp-0x2], al
	movsb
	jmp	$_040

$_006:	mov	al, byte ptr [rsi]
	cmp	al, 92
	jne	$_031
	inc	rsi
	movzx	eax, byte ptr [rsi]
	jmp	$_029

	mov	byte ptr [rdx], 7
	mov	eax, 540486690
	jmp	$_007

	mov	byte ptr [rdx], 8
	mov	eax, 540552226
	jmp	$_007

	mov	byte ptr [rdx], 27
	mov	eax, 926034978
	jmp	$_007

	mov	byte ptr [rdx], 12
	mov	eax, 842083362
	jmp	$_007

	mov	byte ptr [rdx], 10
	mov	eax, 808528930
	jmp	$_007

	mov	byte ptr [rdx], 13
	mov	eax, 858860578
	jmp	$_007

	mov	byte ptr [rdx], 9
	mov	eax, 540617762
	jmp	$_007

	mov	byte ptr [rdx], 11
	mov	eax, 825306146
	jmp	$_007

	mov	byte ptr [rdx], 39
	mov	eax, 959654946
	jmp	$_007

	mov	byte ptr [rdx], 63
	mov	eax, 859188258
$_007:	mov	rcx, qword ptr [rbp+0x30]
	add	rcx, 1
	cmp	rcx, rdi
	jnz	$_008
	cmp	al, byte ptr [rdi-0x1]
	jz	$_009
$_008:	cmp	al, byte ptr [rdi-0x1]
	jnz	$_010
	cmp	ah, byte ptr [rdi-0x2]
	jnz	$_010
$_009:	shr	eax, 16
	sub	rdi, 1
	stosw
	jmp	$_011

$_010:	stosd
$_011:	mov	eax, 8748
	cmp	byte ptr [rdi-0x1], 32
	jnz	$_012
	sub	rdi, 1
$_012:	stosb
	mov	byte ptr [rdi], ah
	jmp	$_030

	mov	byte ptr [rbp-0x1], 8
	jmp	$_013

	mov	byte ptr [rbp-0x1], 4
	jmp	$_013

	mov	byte ptr [rbp-0x1], 2
$_013:	movzx	eax, byte ptr [rsi+0x1]
	test	byte ptr [r15+rax], 0x80
	jz	$_019
	xor	ecx, ecx
	jmp	$_015

$_014:	inc	rsi
	shl	ecx, 4
	and	eax, 0xFFFFFFCF
	bt	eax, 6
	sbb	ebx, ebx
	and	ebx, 0x37
	sub	eax, ebx
	add	ecx, eax
	dec	byte ptr [rbp-0x1]
$_015:	movzx	eax, byte ptr [rsi+0x1]
	test	byte ptr [r15+rax], 0x80
	jz	$_016
	cmp	byte ptr [rbp-0x1], 0
	jnz	$_014
$_016:	mov	byte ptr [rdi], cl
	mov	byte ptr [rdx], cl
	shr	ecx, 8
	jmp	$_018

$_017:	inc	rdi
	inc	rdx
	mov	byte ptr [rdi], cl
	mov	byte ptr [rdx], cl
	shr	ecx, 8
$_018:	test	ecx, ecx
	jnz	$_017
	jmp	$_020

$_019:	mov	byte ptr [rdi], 120
	mov	byte ptr [rdx], 120
$_020:	jmp	$_030

	movzx	eax, byte ptr [rsi+0x1]
	test	byte ptr [r15+rax], 0x04
	jnz	$_023
	lea	rax, [rdi-0x1]
	cmp	rax, qword ptr [rbp+0x30]
	jnz	$_021
	dec	rdi
	mov	eax, 11312
	stosw
	jmp	$_022

$_021:	mov	eax, 741354530
	stosd
$_022:	mov	byte ptr [rdi], 34
	mov	byte ptr [rdx], 0
	jmp	$_030

$_023:	mov	eax, 48
	sub	eax, 48
	mov	ecx, eax
	movzx	eax, byte ptr [rsi+0x1]
	test	byte ptr [r15+rax], 0x04
	jz	$_024
	inc	rsi
	sub	eax, 48
	imul	ecx, ecx, 8
	add	ecx, eax
	movzx	eax, byte ptr [rsi+0x1]
	test	byte ptr [r15+rax], 0x04
	jz	$_024
	inc	rsi
	sub	eax, 48
	imul	ecx, ecx, 8
	add	ecx, eax
$_024:	mov	byte ptr [rdi], cl
	mov	byte ptr [rdx], cl
	jmp	$_030

	mov	ah, 44
	mov	rcx, qword ptr [rbp+0x30]
	add	rcx, 1
	cmp	rcx, rdi
	jnz	$_025
	cmp	al, byte ptr [rdi-0x1]
	jz	$_026
$_025:	cmp	al, byte ptr [rdi-0x1]
	jnz	$_027
	cmp	ah, byte ptr [rdi-0x2]
	jnz	$_027
$_026:	sub	rdi, 1
	jmp	$_028

$_027:	stosw
$_028:	mov	eax, 740762151
	stosd
	mov	al, 34
LC0038: mov	byte ptr [rdi], al
	mov	byte ptr [rdx], al
	jmp	$_030

$_029:	cmp	eax, 34
	jl	LC0038
	cmp	eax, 120
	jg	LC0038
	lea	r11, [LC0039+rip]
	movzx	r10, byte ptr [r11+rax]
	movzx	r10, word ptr [r11+r10*2]
	lea	r11, [LC0038+rip]
	sub	r11, r10
	jmp	r11

$_030:	jmp	$_039

$_031:	cmp	al, 34
	jnz	$_038
	add	rsi, 1
	mov	rcx, rsi
	mov	al, byte ptr [rcx]
$_032:	cmp	al, 32
	jz	$_033
	cmp	al, 9
	jnz	$_034
$_033:	inc	rcx
	mov	al, byte ptr [rcx]
	jmp	$_032

$_034:	cmp	al, 76
	jnz	$_035
	cmp	byte ptr [rcx+0x1], 34
	jnz	$_035
	inc	rcx
	mov	al, 34
$_035:	cmp	al, 34
	jnz	$_036
	mov	rsi, rcx
	dec	rdi
	dec	rdx
	jmp	$_037

$_036:	mov	eax, 34
	stosb
	jmp	$_041

$_037:	jmp	$_039

$_038:	mov	byte ptr [rdi], al
	mov	byte ptr [rdx], al
$_039:	add	rdi, 1
	add	rdx, 1
	cmp	byte ptr [rsi], 0
	jz	$_040
	add	rsi, 1
$_040:	cmp	byte ptr [rsi], 0
	jne	$_006
$_041:	xor	eax, eax
	mov	byte ptr [rdi], al
	mov	byte ptr [rdx], al
	cmp	dword ptr [rdi-0x3], 2236972
	jnz	$_042
	mov	byte ptr [rdi-0x3], 0
$_042:	mov	rax, qword ptr [rbp+0x40]
	mov	qword ptr [rax], rsi
	mov	rax, qword ptr [rbp-0x10]
	sub	rdx, rax
	mov	rbx, rdx
	xor	edi, edi
	mov	rsi, qword ptr [r14+0x2D0]
$_043:	test	rsi, rsi
	je	$_050
	mov	cl, byte ptr [rsi+0x18]
	mov	eax, dword ptr [rsi+0x10]
	cmp	eax, ebx
	jc	$_049
	cmp	cl, byte ptr [rbp-0x2]
	jnz	$_049
	mov	rdx, qword ptr [rsi]
	cmp	eax, ebx
	jbe	$_044
	add	rdx, rax
	sub	rdx, rbx
$_044:	mov	qword ptr [rbp-0x18], rdx
	mov	r8d, ebx
	mov	rcx, qword ptr [rbp-0x10]
	call	tmemcmp@PLT
	mov	rdx, qword ptr [rbp-0x18]
	test	eax, eax
	jnz	$_049
	mov	eax, dword ptr [rsi+0x14]
	sub	rdx, qword ptr [rsi]
	test	edx, edx
	jz	$_046
	cmp	byte ptr [rbp-0x2], 0
	jz	$_045
	add	edx, edx
$_045:	mov	r9d, edx
	mov	r8d, eax
	lea	rdx, [DS0000+rip]
	mov	rcx, qword ptr [rbp+0x28]
	call	tsprintf@PLT
	jmp	$_047

$_046:	mov	r8d, eax
	lea	rdx, [DS0001+rip]
	mov	rcx, qword ptr [rbp+0x28]
	call	tsprintf@PLT
$_047:	cmp	byte ptr [rbp-0x3], 0
	jz	$_048
	mov	rcx, qword ptr [rbp-0x10]
	call	MemFree@PLT
$_048:	xor	eax, eax
	jmp	$_052

$_049:	inc	edi
	mov	rsi, qword ptr [rsi+0x8]
	jmp	$_043

$_050:	mov	r8d, edi
	lea	rdx, [DS0001+rip]
	mov	rcx, qword ptr [rbp+0x28]
	call	tsprintf@PLT
	lea	ecx, [rbx+0x21]
	call	LclAlloc@PLT
	mov	dword ptr [rax+0x10], ebx
	mov	dword ptr [rax+0x14], edi
	mov	cl, byte ptr [rbp-0x2]
	mov	byte ptr [rax+0x18], cl
	mov	rcx, qword ptr [r14+0x2D0]
	mov	qword ptr [rax+0x8], rcx
	mov	qword ptr [r14+0x2D0], rax
	lea	rcx, [rax+0x20]
	mov	qword ptr [rax], rcx
	lea	r8d, [rbx+0x1]
	mov	rdx, qword ptr [rbp-0x10]
	call	tmemcpy@PLT
	cmp	byte ptr [rbp-0x3], 0
	jz	$_051
	mov	rcx, qword ptr [rbp-0x10]
	call	MemFree@PLT
$_051:	mov	eax, 1
$_052:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

$_053:
	mov	qword ptr [rsp+0x8], rcx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	rax, qword ptr [r14+0x38]
	test	rax, rax
	jz	$_054
	mov	rdx, qword ptr [rax+0x8]
	mov	rcx, qword ptr [rbp+0x10]
	call	tstrcpy@PLT
	lea	rdx, [DS0002+rip]
	mov	rcx, rax
	call	tstrcat@PLT
	jmp	$_055

$_054:	lea	rdx, [DS0003+rip]
	mov	rcx, qword ptr [rbp+0x10]
	call	tstrcpy@PLT
$_055:	test	byte ptr [r14], 0x08
	jz	$_056
	call	GetCurrOffset@PLT
	xor	r8d, r8d
	mov	edx, eax
	mov	ecx, 4
	call	LstWrite@PLT
$_056:	cmp	qword ptr [r14+0x2B0], 0
	jz	$_057
	call	RunLineQueue@PLT
	and	byte ptr [r14+0x16], 0xFE
$_057:	leave
	ret

GenerateCString:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 136
	mov	byte ptr [rbp-0x4D], 0
	xor	eax, eax
	mov	dword ptr [rbp-0x4], eax
	mov	byte ptr [rbp-0x4B], al
	test	byte ptr [Options+0x6+rip], 0x10
	jne	$_105
	mov	rsi, rdx
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, rsi
	mov	byte ptr [rbp-0x49], al
	mov	edx, eax
	jmp	$_065

$_058:	mov	rcx, qword ptr [rbx+0x10]
	movzx	ecx, word ptr [rcx]
	jmp	$_063

$_059:	cmp	ch, 34
	jnz	$_064
$_060:	mov	eax, 1
	jmp	$_066

$_061:	cmp	byte ptr [rbp-0x49], 0
	jz	$_066
	sub	byte ptr [rbp-0x49], 1
	jmp	$_064

$_062:	add	byte ptr [rbp-0x49], 1
	add	edx, 1
	jmp	$_064

$_063:	cmp	cl, 76
	jz	$_059
	cmp	cl, 34
	jz	$_060
	cmp	cl, 41
	jz	$_061
	cmp	cl, 40
	jz	$_062
$_064:	add	rbx, 32
$_065:	cmp	byte ptr [rbx], 0
	jnz	$_058
$_066:	test	eax, eax
	je	$_105
	xor	eax, eax
	test	edx, edx
	je	$_105
	inc	eax
	mov	dword ptr [rbp-0x4], eax
	mov	edi, dword ptr [r14+0x234]
	lea	ecx, [rdi*4+0x80]
	cmp	edi, 2048
	jbe	$_067
	inc	byte ptr [rbp-0x4D]
	call	MemAlloc@PLT
	jmp	$_068

$_067:	mov	eax, ecx
	add	eax, 15
	and	eax, 0xFFFFFFF0
	sub	rsp, rax
	lea	rax, [rsp+0x30]
$_068:	mov	ecx, edi
	shr	ecx, 2
	add	edi, ecx
	mov	qword ptr [rbp-0x38], rax
	add	rax, rdi
	mov	qword ptr [rbp-0x28], rax
	add	rax, rdi
	mov	qword ptr [rbp-0x20], rax
	add	rax, rdi
	mov	qword ptr [rbp-0x18], rax
	add	rax, 64
	mov	qword ptr [rbp-0x10], rax
	mov	edi, 32
	add	rdi, qword ptr [LineStoreCurr+rip]
	mov	rdx, rdi
	mov	rcx, qword ptr [rbp-0x20]
	call	tstrcpy@PLT
	cmp	dword ptr [Parse_Pass+rip], 0
	jnz	$_069
	mov	byte ptr [rdi], 59
	mov	rdx, qword ptr [rsi+0x18]
	mov	rcx, rax
	call	tstrcmp@PLT
	jmp	$_070

$_069:	xor	eax, eax
$_070:	mov	dword ptr [rbp-0x8], eax
	mov	al, byte ptr [r14+0x16]
	mov	byte ptr [rbp-0x4C], al
	jmp	$_100

$_071:	mov	rcx, qword ptr [rbx+0x18]
	mov	ax, word ptr [rcx]
	cmp	al, 34
	jz	$_072
	cmp	ax, 8780
	jne	$_097
$_072:	mov	rdi, rcx
	mov	rsi, rcx
	mov	qword ptr [rbp-0x40], rbx
	cmp	byte ptr [rbx-0x20], 8
	jnz	$_073
	mov	rax, qword ptr [rbx-0x10]
	mov	eax, dword ptr [rax]
	cmp	ax, 76
	jnz	$_073
	sub	qword ptr [rbp-0x40], 32
	dec	rsi
$_073:	lea	rax, [rbp-0x4A]
	mov	qword ptr [rsp+0x20], rax
	lea	r9, [rbp-0x30]
	mov	r8, rsi
	mov	rdx, qword ptr [rbp-0x38]
	mov	rcx, qword ptr [rbp-0x10]
	call	$_001
	test	rax, rax
	jz	$_074
	mov	eax, 1
$_074:	mov	dword ptr [rbp-0x44], eax
	mov	rsi, qword ptr [rbp-0x30]
	cmp	dword ptr [rbp-0x8], 0
	je	$_084
	mov	rcx, rsi
	sub	rcx, rdi
	mov	dword ptr [rbp-0x48], ecx
	mov	r8d, ecx
	mov	rdx, rdi
	mov	rcx, qword ptr [rbp-0x28]
	call	tmemcpy@PLT
	mov	ecx, dword ptr [rbp-0x48]
	mov	byte ptr [rax+rcx], 0
	cmp	byte ptr [rbp-0x4B], 0
	jnz	$_082
	inc	byte ptr [rbp-0x4B]
	mov	edx, 34
	mov	rcx, qword ptr [rbp-0x20]
	call	tstrchr@PLT
	test	rax, rax
	jz	$_082
	mov	esi, 1
	lea	rdi, [rax+0x1]
$_075:	mov	al, byte ptr [rdi]
	test	al, al
	jz	$_081
	cmp	al, 34
	jnz	$_080
	cmp	byte ptr [rdi-0x1], 92
	jnz	$_076
	jmp	$_080

$_076:	test	esi, esi
	jnz	$_077
	inc	esi
	jmp	$_080

$_077:	cmp	byte ptr [rdi-0x1], 34
	jnz	$_078
	xor	esi, esi
	jmp	$_080

$_078:	cmp	byte ptr [rdi+0x1], 34
	jnz	$_079
	lea	rdx, [rdi+0x2]
	mov	rcx, rdi
	call	tstrcpy@PLT
	dec	rdi
	jmp	$_080

$_079:	xor	esi, esi
$_080:	inc	rdi
	jmp	$_075

$_081:	mov	rsi, qword ptr [rbp-0x30]
$_082:	mov	rdx, qword ptr [rbp-0x28]
	mov	rcx, qword ptr [rbp-0x20]
	call	tstrstr@PLT
	test	rax, rax
	jz	$_084
	mov	rdi, rax
	mov	ecx, dword ptr [rbp-0x48]
	lea	rcx, [rdi+rcx]
	call	tstrstart@PLT
	cmp	ecx, 44
	jz	$_083
	cmp	ecx, 41
	jz	$_083
	mov	edx, 34
	lea	rcx, [rdi+0x1]
	call	tstrrchr@PLT
	test	rax, rax
	jz	$_083
	add	rax, 1
$_083:	test	rax, rax
	jz	$_084
	mov	rdx, rax
	mov	rcx, qword ptr [rbp-0x28]
	call	tstrcpy@PLT
	lea	rdx, [DS0004+rip]
	mov	rcx, rdi
	call	tstrcpy@PLT
	mov	rdx, qword ptr [rbp-0x10]
	mov	rcx, rdi
	call	tstrcat@PLT
	mov	rdx, qword ptr [rbp-0x28]
	mov	rcx, rdi
	call	tstrcat@PLT
$_084:	cmp	dword ptr [rbp-0x44], 0
	jz	$_090
	mov	rdx, qword ptr [rbp-0x38]
	mov	eax, dword ptr [rdx]
	and	eax, 0xFFFFFF
	cmp	eax, 8738
	jz	$_087
	cmp	byte ptr [rbp-0x4A], 0
	jz	$_085
	lea	rcx, [DS0005+rip]
	jmp	$_086

$_085:	lea	rcx, [DS0006+rip]
$_086:	mov	r9, rdx
	mov	r8, qword ptr [rbp-0x10]
	mov	rdx, rcx
	mov	rcx, qword ptr [rbp-0x28]
	call	tsprintf@PLT
	jmp	$_090

$_087:	cmp	byte ptr [rbp-0x4A], 0
	jz	$_088
	lea	rcx, [DS0007+rip]
	jmp	$_089

$_088:	lea	rcx, [DS0008+rip]
$_089:	mov	r8, qword ptr [rbp-0x10]
	mov	rdx, rcx
	mov	rcx, qword ptr [rbp-0x28]
	call	tsprintf@PLT
$_090:	mov	rax, qword ptr [rbp-0x40]
	mov	rax, qword ptr [rax+0x18]
	mov	di, word ptr [rax]
	mov	byte ptr [rax], 0
	mov	rax, qword ptr [rbp+0x30]
	mov	rdx, qword ptr [rax+0x18]
	mov	rcx, qword ptr [rbp-0x38]
	call	tstrcpy@PLT
	lea	rdx, [DS0004+rip]
	mov	rcx, rax
	call	tstrcat@PLT
	mov	rdx, qword ptr [rbp-0x10]
	mov	rcx, rax
	call	tstrcat@PLT
	mov	rax, qword ptr [rbp-0x40]
	mov	rax, qword ptr [rax+0x18]
	mov	word ptr [rax], di
	mov	rcx, rsi
	jmp	$_092

$_091:	add	rcx, 1
$_092:	movzx	eax, byte ptr [rcx]
	test	byte ptr [r15+rax], 0x08
	jnz	$_091
	xchg	rcx, rax
	mov	rsi, rax
	test	ecx, ecx
	jz	$_094
	cmp	ecx, 41
	jz	$_093
	lea	rdx, [DS0004+0x4+rip]
	mov	rcx, qword ptr [rbp-0x38]
	call	tstrcat@PLT
$_093:	mov	rdx, rsi
	mov	rcx, qword ptr [rbp-0x38]
	call	tstrcat@PLT
$_094:	cmp	dword ptr [rbp-0x44], 0
	jz	$_096
	mov	rcx, qword ptr [rbp-0x18]
	call	$_053
	lea	rcx, [DS0009+rip]
	call	AddLineQueue@PLT
	cmp	byte ptr [rbp-0x4A], 0
	jz	$_095
	lea	rcx, [DS000A+rip]
	call	AddLineQueue@PLT
$_095:	mov	rcx, qword ptr [rbp-0x28]
	call	AddLineQueue@PLT
	lea	rcx, [DS000B+rip]
	call	AddLineQueue@PLT
	mov	rcx, qword ptr [rbp-0x18]
	call	AddLineQueue@PLT
	call	InsertLineQueue@PLT
$_096:	mov	rdx, qword ptr [rbp-0x38]
	mov	rcx, qword ptr [r14+0x1D8]
	call	tstrcpy@PLT
	xor	r9d, r9d
	mov	r8, qword ptr [rbp+0x30]
	xor	edx, edx
	mov	rcx, qword ptr [r14+0x1D8]
	call	Tokenize@PLT
	mov	dword ptr [r14+0x64], eax
	mov	rcx, qword ptr [r14+0x1D0]
	sub	rbx, qword ptr [rbp+0x30]
	add	rbx, rcx
	mov	qword ptr [rbp+0x30], rcx
	imul	eax, dword ptr [rbp+0x28], 32
	add	rax, rcx
	mov	qword ptr [rbp-0x40], rax
	jmp	$_099

$_097:	cmp	al, 41
	jnz	$_098
	cmp	byte ptr [rbp-0x49], 0
	jz	$_101
	dec	byte ptr [rbp-0x49]
	jz	$_101
	jmp	$_099

$_098:	cmp	al, 40
	jnz	$_099
	inc	byte ptr [rbp-0x49]
$_099:	add	rbx, 32
$_100:	cmp	byte ptr [rbx], 0
	jne	$_071
$_101:	cmp	dword ptr [rbp-0x8], 0
	jnz	$_102
	mov	rcx, qword ptr [r14+0x1D8]
	call	StoreLine@PLT
	jmp	$_103

$_102:	mov	ebx, dword ptr [r14+0x60]
	mov	dword ptr [r14+0x60], 0
	mov	rcx, qword ptr [rbp-0x20]
	call	StoreLine@PLT
	mov	dword ptr [r14+0x60], ebx
	mov	rcx, qword ptr [r14+0x1D8]
$_103:	mov	al, byte ptr [rbp-0x4C]
	mov	byte ptr [r14+0x16], al
	cmp	byte ptr [rbp-0x4D], 0
	jz	$_104
	mov	rcx, qword ptr [rbp-0x38]
	call	MemFree@PLT
$_104:	mov	eax, dword ptr [rbp-0x4]
$_105:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

$_106:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 200
	mov	byte ptr [rbp-0x26], 0
	mov	rbx, rdx
	mov	edi, dword ptr [r14+0x234]
	lea	ecx, [rdi+rdi+0x20]
	cmp	edi, 2048
	jbe	$_107
	inc	byte ptr [rbp-0x26]
	call	MemAlloc@PLT
	jmp	$_108

$_107:	mov	eax, ecx
	add	eax, 15
	and	eax, 0xFFFFFFF0
	sub	rsp, rax
	lea	rax, [rsp+0x30]
$_108:	mov	qword ptr [rbp-0x10], rax
	lea	rcx, [rax+rdi]
	lea	rdx, [rax+rdi*2]
	mov	qword ptr [rbp-0x8], rcx
	mov	qword ptr [rbp-0x18], rdx
	xor	edi, edi
	cmp	dword ptr [rbx+0x8], -635545745
	jz	$_115
	inc	edi
	jmp	$_111

$_109:	cmp	byte ptr [rbx], 8
	jnz	$_110
	cmp	dword ptr [rbx+0x8], -635545745
	jz	$_112
$_110:	add	rbx, 32
$_111:	cmp	byte ptr [rbx], 0
	jnz	$_109
$_112:	cmp	byte ptr [rbx], 0
	jnz	$_113
	cmp	byte ptr [rbx+0x20], 40
	jnz	$_113
	add	rbx, 32
	jmp	$_115

$_113:	cmp	byte ptr [rbx], 0
	jz	$_114
	add	rbx, 32
	jmp	$_115

$_114:	mov	rbx, qword ptr [rbp+0x30]
$_115:	cmp	byte ptr [rbx], 40
	jnz	$_116
	cmp	byte ptr [rbx+0x20], 10
	jnz	$_116
	cmp	byte ptr [rbx+0x40], 41
	jz	$_117
$_116:	cmp	byte ptr [rbx+0x20], 45
	jne	$_128
	cmp	byte ptr [rbx+0x40], 10
	jne	$_128
	cmp	byte ptr [rbx+0x60], 41
	jne	$_128
$_117:	cmp	byte ptr [rbp-0x26], 0
	jz	$_118
	mov	rcx, qword ptr [rbp-0x10]
	call	MemFree@PLT
$_118:	cmp	byte ptr [rbx+0x20], 45
	jnz	$_119
	add	rbx, 32
$_119:	add	rbx, 32
	mov	r9d, dword ptr [rbx+0x4]
	movsx	r8d, byte ptr [rbx+0x1]
	mov	rdx, qword ptr [rbx+0x10]
	lea	rcx, [rbp-0x90]
	call	_atoow@PLT
	cmp	dword ptr [rbp-0x88], 0
	jnz	$_120
	cmp	dword ptr [rbp-0x84], 0
	jz	$_121
$_120:	mov	ecx, 2156
	call	asmerr@PLT
	xor	eax, eax
	jmp	$_155

$_121:	mov	ecx, dword ptr [rbp-0x90]
	mov	rdx, qword ptr [r14+0x2D0]
	cmp	byte ptr [rbx-0x20], 45
	jnz	$_123
	xor	eax, eax
	test	rdx, rdx
	jz	$_122
	mov	eax, dword ptr [rdx+0x14]
$_122:	add	eax, ecx
	jmp	$_127

$_123:	mov	eax, ecx
$_124:	test	eax, eax
	jz	$_125
	test	rdx, rdx
	jz	$_125
	dec	eax
	mov	rdx, qword ptr [rdx+0x8]
	jmp	$_124

$_125:	test	rdx, rdx
	jnz	$_126
	mov	ecx, 2156
	call	asmerr@PLT
	xor	eax, eax
	jmp	$_155

$_126:	mov	eax, dword ptr [rdx+0x14]
$_127:	mov	r8d, eax
	lea	rdx, [DS0001+rip]
	mov	rcx, qword ptr [rbp+0x28]
	call	tsprintf@PLT
	mov	eax, 1
	jmp	$_155

$_128:	cmp	byte ptr [rbx], 0
	je	$_153
	mov	rsi, qword ptr [rbx+0x18]
	cmp	byte ptr [rbx], 8
	jnz	$_133
	cmp	byte ptr [rbx-0x20], 40
	jnz	$_133
	mov	rcx, rbx
	call	SymFindID@PLT
	test	rax, rax
	jz	$_129
	mov	rax, qword ptr [rax+0x30]
$_129:	test	rax, rax
	jnz	$_131
	cmp	dword ptr [Parse_Pass+rip], 0
	jbe	$_130
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2006
	call	asmerr@PLT
$_130:	xor	eax, eax
	jmp	$_155

$_131:	cmp	byte ptr [rax], 34
	jz	$_132
	cmp	word ptr [rax], 8780
	jnz	$_133
$_132:	mov	rsi, rax
$_133:	cmp	byte ptr [rsi], 34
	jz	$_134
	cmp	word ptr [rsi], 8780
	jne	$_152
$_134:	lea	rax, [rbp-0x25]
	mov	qword ptr [rsp+0x20], rax
	lea	r9, [rbp-0x20]
	mov	r8, rsi
	mov	rdx, qword ptr [rbp-0x8]
	mov	rcx, qword ptr [rbp-0x18]
	call	$_001
	mov	esi, eax
	test	edi, edi
	jz	$_135
	mov	rdx, qword ptr [rbp-0x18]
	mov	rcx, qword ptr [rbp+0x28]
	call	tstrcat@PLT
	jmp	$_136

$_135:	mov	rax, qword ptr [rbp-0x18]
	mov	word ptr [rax], 32
$_136:	test	esi, esi
	je	$_150
	mov	rax, qword ptr [rbp-0x8]
	mov	eax, dword ptr [rax]
	and	eax, 0xFFFFFF
	cmp	eax, 8738
	jz	$_139
	cmp	byte ptr [rbp-0x25], 0
	jz	$_137
	lea	rdx, [DS0005+rip]
	jmp	$_138

$_137:	lea	rdx, [DS0006+rip]
$_138:	mov	r9, qword ptr [rbp-0x8]
	mov	r8, qword ptr [rbp-0x18]
	mov	rcx, qword ptr [rbp-0x10]
	call	tsprintf@PLT
	jmp	$_142

$_139:	cmp	byte ptr [rbp-0x25], 0
	jz	$_140
	lea	rdx, [DS0007+rip]
	jmp	$_141

$_140:	lea	rdx, [DS0008+rip]
$_141:	mov	r8, qword ptr [rbp-0x18]
	mov	rcx, qword ptr [rbp-0x10]
	call	tsprintf@PLT
$_142:	cmp	qword ptr [r14+0x2B0], 0
	jz	$_143
	call	RunLineQueue@PLT
$_143:	xor	esi, esi
	mov	rbx, qword ptr [r14+0x38]
	test	rbx, rbx
	jz	$_144
	lea	rdx, [DS000C+rip]
	mov	rcx, qword ptr [rbx+0x8]
	call	tstricmp@PLT
	test	eax, eax
	jz	$_144
	inc	esi
	lea	rcx, [DS0009+rip]
	call	AddLineQueue@PLT
$_144:	test	edi, edi
	jz	$_145
	test	esi, esi
	jnz	$_145
	mov	esi, 2
	lea	rcx, [DS000D+rip]
	call	AddLineQueue@PLT
$_145:	cmp	byte ptr [rbp-0x25], 0
	jz	$_146
	lea	rcx, [DS000A+rip]
	call	AddLineQueue@PLT
$_146:	mov	rcx, qword ptr [rbp-0x10]
	call	AddLineQueue@PLT
	test	esi, esi
	jz	$_149
	lea	rdx, [DS000E+rip]
	mov	rcx, qword ptr [rbx+0x8]
	call	tstricmp@PLT
	test	eax, eax
	jnz	$_147
	lea	rcx, [DS000D+rip]
	call	AddLineQueue@PLT
	jmp	$_149

$_147:	cmp	esi, 2
	jnz	$_148
	lea	rcx, [DS0009+rip]
	call	AddLineQueue@PLT
	jmp	$_149

$_148:	lea	rcx, [DS0003+rip]
	call	AddLineQueue@PLT
$_149:	call	InsertLineQueue@PLT
$_150:	cmp	byte ptr [rbp-0x26], 0
	jz	$_151
	mov	rcx, qword ptr [rbp-0x10]
	call	MemFree@PLT
$_151:	mov	eax, 1
	jmp	$_155

$_152:	add	rbx, 32
	jmp	$_128

$_153:	cmp	byte ptr [rbp-0x26], 0
	jz	$_154
	mov	rcx, qword ptr [rbp-0x10]
	call	MemFree@PLT
$_154:	xor	eax, eax
$_155:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

CreateFloat:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x18], r8
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 200
	mov	rbx, rdx
	mov	rax, qword ptr [rbx]
	mov	qword ptr [rbp-0xA8], rax
	mov	rax, qword ptr [rbx+0x8]
	mov	qword ptr [rbp-0xA0], rax
	mov	dword ptr [rbp-0x68], 0
	jmp	$_164

$_156:	cmp	byte ptr [rbx+0x44], 35
	je	$_165
	test	byte ptr [rbx+0xF], 0x80
	jz	$_157
	or	byte ptr [rbp-0x68], 0x20
	and	byte ptr [rbp-0x99], 0x7F
$_157:	lea	rdx, [rbp-0xA8]
	lea	rcx, [rbp-0xA8]
	call	__cvtq_ss@PLT
	test	byte ptr [rbp-0x68], 0x20
	jz	$_158
	or	byte ptr [rbp-0xA5], 0x80
$_158:	jmp	$_165

$_159:	cmp	byte ptr [rbx+0x44], 39
	jz	$_165
	test	byte ptr [rbx+0xF], 0x80
	jz	$_160
	or	byte ptr [rbp-0x68], 0x20
	and	byte ptr [rbp-0x99], 0x7F
$_160:	lea	rdx, [rbp-0xA8]
	lea	rcx, [rbp-0xA8]
	call	__cvtq_sd@PLT
	test	byte ptr [rbp-0x68], 0x20
	jz	$_161
	or	byte ptr [rbp-0xA1], 0x80
$_161:	jmp	$_165

$_162:	cmp	byte ptr [rbx+0x44], 41
	jz	$_165
	lea	rdx, [rbp-0xA8]
	lea	rcx, [rbp-0xA8]
	call	__cvtq_ld@PLT
$_163:	jmp	$_165

$_164:	cmp	ecx, 4
	je	$_156
	cmp	ecx, 8
	jz	$_159
	cmp	ecx, 10
	jz	$_162
	cmp	ecx, 16
	jz	$_163
$_165:	xor	edi, edi
	mov	rsi, qword ptr [r14+0x300]
$_166:	test	rsi, rsi
	jz	$_168
	mov	eax, dword ptr [rsi+0x10]
	cmp	dword ptr [rbp+0x28], eax
	jnz	$_167
	mov	rax, qword ptr [rsi]
	mov	edx, dword ptr [rbp-0xA0]
	mov	ecx, dword ptr [rbp-0x9C]
	cmp	edx, dword ptr [rax+0x8]
	jnz	$_167
	cmp	ecx, dword ptr [rax+0xC]
	jnz	$_167
	mov	edx, dword ptr [rbp-0xA8]
	mov	ecx, dword ptr [rbp-0xA4]
	cmp	edx, dword ptr [rax]
	jnz	$_167
	cmp	ecx, dword ptr [rax+0x4]
	jnz	$_167
	mov	eax, dword ptr [rsi+0x14]
	mov	r8d, eax
	lea	rdx, [DS000F+rip]
	mov	rcx, qword ptr [rbp+0x38]
	call	tsprintf@PLT
	mov	eax, 1
	jmp	$_176

$_167:	inc	edi
	mov	rsi, qword ptr [rsi+0x8]
	jmp	$_166

$_168:	mov	r8d, edi
	lea	rdx, [DS000F+rip]
	mov	rcx, qword ptr [rbp+0x38]
	call	tsprintf@PLT
	cmp	dword ptr [Parse_Pass+rip], 0
	jne	$_175
	mov	ecx, 48
	call	LclAlloc@PLT
	mov	dword ptr [rax+0x14], edi
	mov	ecx, dword ptr [rbp+0x28]
	mov	dword ptr [rax+0x10], ecx
	mov	rcx, qword ptr [r14+0x300]
	mov	qword ptr [rax+0x8], rcx
	mov	qword ptr [r14+0x300], rax
	lea	rcx, [rax+0x20]
	mov	qword ptr [rax], rcx
	mov	r8d, 16
	lea	rdx, [rbp-0xA8]
	call	tmemcpy@PLT
	lea	rcx, [rbp-0x40]
	call	$_053
	lea	rcx, [DS0009+rip]
	call	AddLineQueue@PLT
	mov	ecx, dword ptr [rbp+0x28]
	cmp	ecx, 10
	jnz	$_169
	mov	ecx, 16
$_169:	mov	edx, ecx
	lea	rcx, [DS0010+rip]
	call	AddLineQueueX@PLT
	mov	eax, dword ptr [rbp+0x28]
	jmp	$_173

$_170:	mov	r8d, dword ptr [rbp-0xA8]
	mov	rdx, qword ptr [rbp+0x38]
	lea	rcx, [DS0011+rip]
	call	AddLineQueueX@PLT
	jmp	$_174

$_171:	mov	r8, qword ptr [rbp-0xA8]
	mov	rdx, qword ptr [rbp+0x38]
	lea	rcx, [DS0012+rip]
	call	AddLineQueueX@PLT
	jmp	$_174

$_172:	mov	r8d, dword ptr [rbp+0x28]
	mov	rdx, qword ptr [rbp+0x38]
	lea	rcx, [DS0013+rip]
	call	AddLineQueueX@PLT
	mov	r8, qword ptr [rbp-0xA8]
	mov	rdx, qword ptr [rbp-0xA0]
	lea	rcx, [DS0014+rip]
	call	AddLineQueueX@PLT
	jmp	$_174

$_173:	cmp	eax, 4
	jz	$_170
	cmp	eax, 8
	jz	$_171
	cmp	eax, 10
	jz	$_172
	cmp	eax, 16
	jz	$_172
$_174:	lea	rcx, [DS000B+rip]
	call	AddLineQueue@PLT
	lea	rcx, [rbp-0x40]
	call	AddLineQueue@PLT
	call	InsertLineQueue@PLT
$_175:	xor	eax, eax
$_176:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

TextItemError:
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	rbx, rcx
	mov	rax, qword ptr [rbx+0x10]
	cmp	byte ptr [rbx], 9
	jnz	$_177
	cmp	byte ptr [rax], 60
	jnz	$_177
	mov	ecx, 2045
	call	asmerr@PLT
	jmp	$_180

$_177:	cmp	byte ptr [rbx], 8
	jnz	$_179
	mov	rcx, rbx
	call	SymFindID@PLT
	test	rax, rax
	jz	$_178
	cmp	byte ptr [rax+0x1D], 0
	jnz	$_179
$_178:	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2006
	call	asmerr@PLT
	jmp	$_180

$_179:	mov	ecx, 2051
	call	asmerr@PLT
$_180:	leave
	pop	rbx
	ret

CatStrDir:
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	edi, ecx
	inc	edi
	imul	ebx, edi, 32
	add	rbx, rdx
	xor	esi, esi
$_181:	cmp	edi, dword ptr [r14+0x64]
	jge	$_186
	cmp	byte ptr [rbx], 9
	jnz	$_182
	cmp	byte ptr [rbx+0x1], 60
	jz	$_183
$_182:	mov	rcx, rbx
	call	TextItemError
	jmp	$_194

$_183:	add	esi, dword ptr [rbx+0x4]
	cmp	esi, 2048
	jc	$_184
	mov	ecx, 2041
	call	asmerr@PLT
	jmp	$_194

$_184:	inc	edi
	add	rbx, 32
	cmp	byte ptr [rbx], 44
	jz	$_185
	cmp	byte ptr [rbx], 0
	jz	$_185
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_194

$_185:	inc	edi
	add	rbx, 32
	jmp	$_181

$_186:	mov	rbx, qword ptr [rbp+0x30]
	mov	rcx, qword ptr [rbx+0x10]
	call	SymFind@PLT
	mov	rdi, rax
	test	rdi, rdi
	jnz	$_187
	mov	rcx, qword ptr [rbx+0x10]
	call	SymGCreate@PLT
	mov	rdi, rax
	jmp	$_189

$_187:	cmp	byte ptr [rdi+0x1D], 0
	jnz	$_188
	mov	rdx, rdi
	lea	rcx, [SymTables+rip]
	call	sym_remove_table@PLT
	call	SkipSavedState@PLT
	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 6005
	call	asmerr@PLT
	jmp	$_189

$_188:	cmp	byte ptr [rdi+0x1D], 10
	jz	$_189
	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	jmp	$_194

$_189:	mov	byte ptr [rdi+0x1D], 10
	or	byte ptr [rdi+0x10], 0x01
	inc	esi
	cmp	dword ptr [rdi+0x60], esi
	jnc	$_190
	mov	dword ptr [rdi+0x60], esi
	mov	ecx, esi
	call	LclAlloc@PLT
	mov	qword ptr [rdi+0x30], rax
$_190:	mov	qword ptr [rbp-0x8], rdi
	add	rbx, 64
	mov	edx, 2
	mov	rdi, qword ptr [rdi+0x30]
$_191:	cmp	edx, dword ptr [r14+0x64]
	jge	$_192
	mov	ecx, dword ptr [rbx+0x4]
	mov	rsi, qword ptr [rbx+0x10]
	rep movsb
	add	edx, 2
	add	rbx, 64
	jmp	$_191

$_192:	mov	byte ptr [rdi], 0
	test	byte ptr [r14], 0x08
	jz	$_193
	mov	r8, qword ptr [rbp-0x8]
	xor	edx, edx
	mov	ecx, 3
	call	LstWrite@PLT
$_193:	xor	eax, eax
$_194:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

SetTextMacro:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x18], r8
	mov	qword ptr [rsp+0x20], r9
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	rdi, rdx
	test	rdi, rdi
	jnz	$_195
	mov	rcx, qword ptr [rbp+0x38]
	call	SymCreate@PLT
	mov	rdi, rax
	jmp	$_197

$_195:	cmp	byte ptr [rdi+0x1D], 0
	jnz	$_196
	mov	rdx, rdi
	lea	rcx, [SymTables+rip]
	call	sym_remove_table@PLT
	call	SkipSavedState@PLT
	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 6005
	call	asmerr@PLT
	jmp	$_197

$_196:	cmp	byte ptr [rdi+0x1D], 10
	jz	$_197
	mov	rdx, qword ptr [rbp+0x38]
	mov	ecx, 2005
	call	asmerr@PLT
	xor	eax, eax
	jmp	$_203

$_197:	mov	byte ptr [rdi+0x1D], 10
	or	byte ptr [rdi+0x10], 0x01
	mov	rbx, qword ptr [rbp+0x28]
	cmp	byte ptr [rbx+0x40], 9
	jnz	$_199
	cmp	byte ptr [rbx+0x41], 60
	jnz	$_199
	cmp	byte ptr [rbx+0x60], 0
	jz	$_198
	mov	rdx, qword ptr [rbx+0x78]
	mov	ecx, 2008
	call	asmerr@PLT
	xor	eax, eax
	jmp	$_203

$_198:	mov	rax, qword ptr [rbx+0x50]
	mov	qword ptr [rbp+0x40], rax
	mov	esi, dword ptr [rbx+0x44]
	jmp	$_201

$_199:	mov	rcx, qword ptr [rbp+0x40]
	call	tstrlen@PLT
	mov	esi, eax
	mov	rdx, qword ptr [rbp+0x40]
$_200:	test	esi, esi
	jz	$_201
	movzx	eax, byte ptr [rdx+rsi-0x1]
	test	byte ptr [r15+rax], 0x08
	jz	$_201
	dec	esi
	jmp	$_200

$_201:	lea	ecx, [rsi+0x1]
	cmp	dword ptr [rdi+0x60], ecx
	jnc	$_202
	mov	dword ptr [rdi+0x60], ecx
	call	LclAlloc@PLT
	mov	qword ptr [rdi+0x30], rax
$_202:	mov	r8d, esi
	mov	rdx, qword ptr [rbp+0x40]
	mov	rcx, qword ptr [rdi+0x30]
	call	tmemcpy@PLT
	mov	rdx, qword ptr [rdi+0x30]
	mov	byte ptr [rdx+rsi], 0
	mov	rax, rdi
$_203:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

AddPredefinedText:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	rcx, qword ptr [rbp+0x10]
	call	SymFind@PLT
	test	rax, rax
	jnz	$_204
	mov	rcx, qword ptr [rbp+0x10]
	call	SymGCreate@PLT
$_204:	mov	byte ptr [rax+0x1D], 10
	or	byte ptr [rax+0x10], 0x01
	or	byte ptr [rax+0x10], 0x08
	mov	rcx, qword ptr [rbp+0x18]
	mov	qword ptr [rax+0x30], rcx
	mov	dword ptr [rax+0x60], 0
	leave
	ret

SubStrDir:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 184
	mov	rbx, rdx
	mov	rax, qword ptr [rbx+0x10]
	mov	qword ptr [rbp-0x8], rax
	inc	dword ptr [rbp+0x28]
	imul	eax, dword ptr [rbp+0x28], 32
	add	rbx, rax
	cmp	byte ptr [rbx], 9
	jnz	$_205
	cmp	byte ptr [rbx+0x1], 60
	jz	$_206
$_205:	mov	rcx, rbx
	call	TextItemError
	jmp	$_225

$_206:	mov	rax, qword ptr [rbx+0x10]
	mov	qword ptr [rbp-0x10], rax
	mov	eax, dword ptr [rbx+0x4]
	mov	dword ptr [rbp-0x18], eax
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 44
	jz	$_207
	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_225

$_207:	inc	dword ptr [rbp+0x28]
	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x88]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_208
	mov	rax, -1
	jmp	$_225

$_208:	cmp	dword ptr [rbp-0x4C], 0
	jz	$_209
	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_225

$_209:	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	mov	eax, dword ptr [rbp-0x88]
	mov	dword ptr [rbp-0x14], eax
	cmp	dword ptr [rbp-0x14], 0
	jg	$_210
	mov	ecx, 2090
	call	asmerr@PLT
	jmp	$_225

$_210:	cmp	byte ptr [rbx], 0
	je	$_216
	cmp	byte ptr [rbx], 44
	jz	$_211
	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_225

$_211:	inc	dword ptr [rbp+0x28]
	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x88]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_212
	mov	rax, -1
	jmp	$_225

$_212:	cmp	dword ptr [rbp-0x4C], 0
	jz	$_213
	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_225

$_213:	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	mov	edi, dword ptr [rbp-0x88]
	cmp	byte ptr [rbx], 0
	jz	$_214
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_225

$_214:	cmp	edi, 0
	jge	$_215
	mov	ecx, 2092
	call	asmerr@PLT
	jmp	$_225

$_215:	mov	dword ptr [rbp-0x1C], 1
	jmp	$_217

$_216:	mov	edi, 4294967295
	mov	dword ptr [rbp-0x1C], 0
$_217:	mov	ebx, dword ptr [rbp-0x14]
	cmp	ebx, dword ptr [rbp-0x18]
	jle	$_218
	mov	edx, ebx
	mov	ecx, 2091
	call	asmerr@PLT
	jmp	$_225

$_218:	lea	eax, [rbx+rdi-0x1]
	cmp	dword ptr [rbp-0x1C], 0
	jz	$_219
	cmp	eax, dword ptr [rbp-0x18]
	jle	$_219
	mov	ecx, 2093
	call	asmerr@PLT
	jmp	$_225

$_219:	lea	rax, [rbx-0x1]
	add	qword ptr [rbp-0x10], rax
	cmp	edi, -1
	jnz	$_220
	mov	eax, dword ptr [rbp-0x18]
	sub	eax, ebx
	lea	edi, [rax+0x1]
$_220:	mov	rcx, qword ptr [rbp-0x8]
	call	SymFind@PLT
	mov	rsi, rax
	test	rsi, rsi
	jnz	$_221
	mov	rcx, qword ptr [rbp-0x8]
	call	SymGCreate@PLT
	mov	rsi, rax
	jmp	$_223

$_221:	cmp	byte ptr [rsi+0x1D], 0
	jnz	$_222
	mov	rdx, rsi
	lea	rcx, [SymTables+rip]
	call	sym_remove_table@PLT
	call	SkipSavedState@PLT
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 6005
	call	asmerr@PLT
	jmp	$_223

$_222:	cmp	byte ptr [rsi+0x1D], 10
	jz	$_223
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	jmp	$_225

$_223:	mov	byte ptr [rsi+0x1D], 10
	or	byte ptr [rsi+0x10], 0x01
	inc	edi
	cmp	dword ptr [rsi+0x60], edi
	jnc	$_224
	mov	dword ptr [rsi+0x60], edi
	mov	ecx, edi
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x30], rax
$_224:	dec	edi
	mov	r8d, edi
	mov	rdx, qword ptr [rbp-0x10]
	mov	rcx, qword ptr [rsi+0x30]
	call	tmemcpy@PLT
	mov	byte ptr [rax+rdi], 0
	mov	r8, rsi
	xor	edx, edx
	mov	ecx, 3
	call	LstWrite@PLT
	xor	eax, eax
$_225:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

SizeStrDir:
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	cmp	ecx, 1
	jz	$_226
	imul	ebx, ecx, 32
	add	rbx, rdx
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_231

$_226:	mov	rbx, rdx
	cmp	byte ptr [rbx+0x40], 9
	jnz	$_227
	cmp	byte ptr [rbx+0x41], 60
	jz	$_228
$_227:	lea	rcx, [rbx+0x40]
	call	TextItemError
	jmp	$_231

$_228:	cmp	dword ptr [r14+0x64], 3
	jle	$_229
	mov	rdx, qword ptr [rbx+0x70]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_231

$_229:	mov	edx, dword ptr [rbx+0x44]
	mov	rcx, qword ptr [rbx+0x10]
	call	CreateVariable@PLT
	test	rax, rax
	jz	$_230
	mov	r8, rax
	xor	edx, edx
	mov	ecx, 2
	call	LstWrite@PLT
	xor	eax, eax
	jmp	$_231

$_230:	mov	rax, -1
$_231:	leave
	pop	rbx
	ret

InStrDir:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 168
	mov	dword ptr [rbp-0x6C], 1
	imul	ebx, ecx, 32
	add	rbx, rdx
	cmp	ecx, 1
	jz	$_232
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_248

$_232:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 9
	jnz	$_233
	cmp	byte ptr [rbx+0x1], 60
	jz	$_238
$_233:	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x68]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_234
	mov	rax, -1
	jmp	$_248

$_234:	cmp	dword ptr [rbp-0x2C], 0
	jz	$_235
	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_248

$_235:	mov	eax, dword ptr [rbp-0x68]
	mov	dword ptr [rbp-0x6C], eax
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	dword ptr [rbp-0x6C], 0
	jg	$_236
	mov	ecx, 7001
	call	asmerr@PLT
$_236:	cmp	byte ptr [rbx], 44
	jz	$_237
	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_248

$_237:	add	rbx, 32
$_238:	cmp	byte ptr [rbx], 9
	jnz	$_239
	cmp	byte ptr [rbx+0x1], 60
	jz	$_240
$_239:	mov	rcx, rbx
	call	TextItemError
	jmp	$_248

$_240:	mov	rsi, qword ptr [rbx+0x10]
	mov	edi, dword ptr [rbx+0x4]
	cmp	dword ptr [rbp-0x6C], edi
	jle	$_241
	mov	edx, dword ptr [rbp-0x6C]
	mov	ecx, 2091
	call	asmerr@PLT
	jmp	$_248

$_241:	add	rbx, 32
	cmp	byte ptr [rbx], 44
	jz	$_242
	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_248

$_242:	add	rbx, 32
	cmp	byte ptr [rbx], 9
	jnz	$_243
	cmp	byte ptr [rbx+0x1], 60
	jz	$_244
$_243:	mov	rcx, rbx
	call	TextItemError
	jmp	$_248

$_244:	cmp	byte ptr [rbx+0x20], 0
	jz	$_245
	mov	rdx, qword ptr [rbx+0x30]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_248

$_245:	mov	edx, dword ptr [rbx+0x4]
	xor	eax, eax
	cmp	dword ptr [rbp-0x6C], 0
	jle	$_246
	cmp	edi, edx
	jc	$_246
	test	edx, edx
	jz	$_246
	mov	ecx, dword ptr [rbp-0x6C]
	lea	rax, [rsi-0x1]
	add	rcx, rax
	mov	rdx, qword ptr [rbx+0x10]
	call	tstrstr@PLT
	test	rax, rax
	jz	$_246
	sub	rax, rsi
	add	rax, 1
$_246:	mov	rbx, qword ptr [rbp+0x30]
	mov	edx, eax
	mov	rcx, qword ptr [rbx+0x10]
	call	CreateVariable@PLT
	test	rax, rax
	jz	$_247
	mov	r8, rax
	xor	edx, edx
	mov	ecx, 2
	call	LstWrite@PLT
	xor	eax, eax
	jmp	$_248

$_247:	mov	rax, -1
$_248:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

CatStrFunc:
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	rdi, rcx
	mov	rsi, qword ptr [rdi+0x18]
	mov	rsi, qword ptr [rsi]
$_249:	cmp	dword ptr [rdi+0x28], 0
	jz	$_250
	mov	rcx, rsi
	call	tstrlen@PLT
	mov	ebx, eax
	mov	r8d, ebx
	mov	rdx, rsi
	mov	rcx, qword ptr [rbp+0x30]
	call	tmemcpy@PLT
	mov	edx, ebx
	mov	rax, rsi
	add	edx, 8
	and	edx, 0xFFFFFFF8
	add	rax, rdx
	mov	rsi, rax
	add	qword ptr [rbp+0x30], rbx
	dec	dword ptr [rdi+0x28]
	jmp	$_249

$_250:
	mov	rdx, qword ptr [rbp+0x30]
	mov	byte ptr [rdx], 0
	xor	eax, eax
	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

ComAllocFunc:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	rdx, qword ptr [rbp+0x20]
	mov	rcx, qword ptr [rbp+0x18]
	call	ComAlloc@PLT
	test	rax, rax
	jnz	$_251
	mov	rdx, qword ptr [rbp+0x10]
	mov	rdx, qword ptr [rdx+0x18]
	mov	rdx, qword ptr [rdx]
	mov	rcx, qword ptr [rbp+0x18]
	call	tstrcpy@PLT
$_251:	xor	eax, eax
	leave
	ret

TypeIdFunc:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	rdx, qword ptr [rbp+0x20]
	mov	rcx, qword ptr [rbp+0x18]
	call	GetTypeId@PLT
	test	rax, rax
	jnz	$_252
	mov	rdx, qword ptr [rbp+0x10]
	mov	rdx, qword ptr [rdx+0x18]
	mov	rdx, qword ptr [rdx]
	mov	rcx, qword ptr [rbp+0x18]
	call	tstrcpy@PLT
$_252:	xor	eax, eax
	leave
	ret

CStringFunc:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	rdx, qword ptr [rbp+0x20]
	mov	rcx, qword ptr [rbp+0x18]
	call	$_106
	test	rax, rax
	jnz	$_253
	mov	rdx, qword ptr [rbp+0x10]
	mov	rdx, qword ptr [rdx+0x18]
	mov	rdx, qword ptr [rdx]
	mov	rcx, qword ptr [rbp+0x18]
	call	tstrcpy@PLT
$_253:	xor	eax, eax
	leave
	ret

RegFunc:
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 168
	mov	dword ptr [rbp-0x70], 4
	mov	rbx, qword ptr [rcx+0x18]
	mov	rcx, qword ptr [rbx]
	test	rcx, rcx
	jnz	$_254
	xor	eax, eax
	jmp	$_260

$_254:	mov	eax, dword ptr [r14+0x64]
	inc	eax
	mov	dword ptr [rbp-0x6C], eax
	mov	dword ptr [rbp-0x74], eax
	mov	r9d, 1
	mov	r8, qword ptr [rbp+0x28]
	mov	edx, eax
	call	Tokenize@PLT
	mov	ecx, eax
	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x68]
	mov	r8d, ecx
	mov	rdx, qword ptr [rbp+0x28]
	lea	rcx, [rbp-0x74]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_255
	jmp	$_260

$_255:	cmp	dword ptr [rbp-0x2C], 2
	jz	$_256
	imul	ecx, dword ptr [rbp-0x74], 32
	add	rcx, qword ptr [rbp+0x28]
	mov	rdx, qword ptr [rcx-0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_260

$_256:	mov	rcx, qword ptr [rbp-0x50]
	mov	eax, dword ptr [rcx+0x4]
	mov	dword ptr [rbp-0x74], eax
	mov	rcx, qword ptr [rbx+0x8]
	test	rcx, rcx
	jz	$_259
	mov	r9d, 1
	mov	r8, qword ptr [rbp+0x28]
	mov	edx, dword ptr [rbp-0x6C]
	call	Tokenize@PLT
	mov	ecx, eax
	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x68]
	mov	r8d, ecx
	mov	rdx, qword ptr [rbp+0x28]
	lea	rcx, [rbp-0x6C]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_257
	jmp	$_260

$_257:	mov	eax, dword ptr [rbp-0x68]
	mov	dword ptr [rbp-0x70], eax
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_258
	cmp	eax, 1
	jc	$_258
	cmp	eax, 8
	jbe	$_259
$_258:	imul	ecx, dword ptr [rbp-0x6C], 32
	add	rcx, qword ptr [rbp+0x28]
	mov	rdx, qword ptr [rcx-0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_260

$_259:	mov	edx, dword ptr [rbp-0x70]
	mov	ecx, dword ptr [rbp-0x74]
	call	get_register@PLT
	mov	ecx, eax
	mov	rdx, qword ptr [rbp+0x20]
	call	GetResWName@PLT
	xor	eax, eax
$_260:	leave
	pop	rbx
	ret

$_261:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	push	rbp
	mov	rbp, rsp
	sub	rsp, 160
	mov	eax, dword ptr [r14+0x64]
	inc	eax
	mov	dword ptr [rbp-0x6C], eax
	mov	r9d, 1
	mov	r8, qword ptr [rbp+0x20]
	mov	edx, eax
	mov	rcx, qword ptr [rbp+0x10]
	call	Tokenize@PLT
	mov	edx, eax
	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x68]
	mov	r8d, edx
	mov	rdx, qword ptr [rbp+0x20]
	lea	rcx, [rbp-0x6C]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_262
	mov	rax, -1
	jmp	$_265

$_262:	imul	ecx, dword ptr [rbp-0x6C], 32
	add	rcx, qword ptr [rbp+0x20]
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_263
	cmp	byte ptr [rcx], 0
	jz	$_264
$_263:	mov	rdx, qword ptr [rbp+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_265

$_264:	mov	rcx, qword ptr [rbp+0x18]
	mov	eax, dword ptr [rbp-0x68]
	mov	dword ptr [rcx], eax
	xor	eax, eax
$_265:	leave
	ret

InStrFunc:
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 56
	mov	dword ptr [rbp-0x4], 1
	mov	rdi, rdx
	mov	eax, 48
	mov	word ptr [rdi], ax
	mov	rsi, qword ptr [rcx+0x18]
	mov	rbx, qword ptr [rsi]
	test	rbx, rbx
	jz	$_267
	mov	r8, qword ptr [rbp+0x38]
	lea	rdx, [rbp-0x4]
	mov	rcx, rbx
	call	$_261
	cmp	eax, -1
	jnz	$_266
	mov	rax, -1
	jmp	$_270

$_266:	cmp	dword ptr [rbp-0x4], 0
	jnz	$_267
	inc	dword ptr [rbp-0x4]
$_267:	mov	rbx, qword ptr [rsi+0x8]
	mov	rcx, rbx
	call	tstrlen@PLT
	cmp	dword ptr [rbp-0x4], eax
	jle	$_268
	mov	edx, dword ptr [rbp-0x4]
	mov	ecx, 2091
	call	asmerr@PLT
	jmp	$_270

$_268:	mov	rdx, qword ptr [rsi+0x10]
	cmp	byte ptr [rdx], 0
	jz	$_269
	mov	ecx, dword ptr [rbp-0x4]
	add	rcx, rbx
	dec	rcx
	call	tstrstr@PLT
	test	rax, rax
	jz	$_269
	sub	rax, rbx
	lea	rcx, [rax+0x1]
	mov	dword ptr [rsp+0x20], 1
	xor	r9d, r9d
	movzx	r8d, byte ptr [r14+0x8]
	mov	rdx, qword ptr [rbp+0x30]
	call	myltoa@PLT
$_269:	xor	eax, eax
$_270:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

SizeStrFunc:
	mov	qword ptr [rsp+0x10], rdx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 48
	mov	rdx, qword ptr [rcx+0x18]
	mov	rcx, qword ptr [rdx]
	test	rcx, rcx
	jz	$_271
	call	tstrlen@PLT
	mov	ecx, eax
	mov	dword ptr [rsp+0x20], 1
	xor	r9d, r9d
	movzx	r8d, byte ptr [r14+0x8]
	mov	rdx, qword ptr [rbp+0x18]
	call	myltoa@PLT
	jmp	$_272

$_271:	mov	rdx, qword ptr [rbp+0x18]
	mov	eax, 48
	mov	word ptr [rdx], ax
$_272:	xor	eax, eax
	leave
	ret

SubStrFunc:
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 56
	mov	rsi, qword ptr [rcx+0x18]
	mov	rdi, qword ptr [rsi]
	mov	r8, qword ptr [rbp+0x38]
	lea	rdx, [rbp-0x4]
	mov	rcx, qword ptr [rsi+0x8]
	call	$_261
	cmp	eax, -1
	je	$_279
	cmp	dword ptr [rbp-0x4], 0
	jg	$_274
	cmp	dword ptr [rbp-0x4], 0
	jz	$_273
	mov	edx, dword ptr [rbp-0x4]
	mov	ecx, 2091
	call	asmerr@PLT
	jmp	$_279

$_273:	mov	dword ptr [rbp-0x4], 1
$_274:	mov	rcx, rdi
	call	tstrlen@PLT
	mov	ebx, eax
	cmp	dword ptr [rbp-0x4], ebx
	jle	$_275
	mov	edx, dword ptr [rbp-0x4]
	mov	ecx, 2091
	call	asmerr@PLT
	jmp	$_279

$_275:	sub	ebx, dword ptr [rbp-0x4]
	inc	ebx
	mov	rdi, qword ptr [rsi+0x10]
	test	rdi, rdi
	jz	$_278
	mov	r8, qword ptr [rbp+0x38]
	lea	rdx, [rbp-0xC]
	mov	rcx, rdi
	call	$_261
	cmp	eax, -1
	jz	$_279
	cmp	dword ptr [rbp-0xC], 0
	jge	$_276
	mov	ecx, 2092
	call	asmerr@PLT
	jmp	$_279

$_276:	cmp	dword ptr [rbp-0xC], ebx
	jle	$_277
	mov	ecx, 2093
	call	asmerr@PLT
	jmp	$_279

$_277:	mov	ebx, dword ptr [rbp-0xC]
$_278:	mov	rdi, qword ptr [rbp+0x30]
	mov	ecx, ebx
	mov	eax, dword ptr [rbp-0x4]
	add	rax, qword ptr [rsi]
	lea	rsi, [rax-0x1]
	rep movsb
	mov	byte ptr [rdi], 0
	xor	eax, eax
$_279:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

StringInit:
	push	rsi
	push	rdi
	sub	rsp, 40
	lea	rcx, [DS0015+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [ComAllocFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 3
	mov	ecx, 48
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	mov	byte ptr [rax+0x8], 1
	lea	rcx, [DS0016+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [TypeIdFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 2
	mov	ecx, 32
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	lea	rcx, [DS0017+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [CStringFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 1
	mov	ecx, 16
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	mov	byte ptr [rax+0x8], 1
	lea	rcx, [DS0018+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [RegFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 2
	mov	ecx, 32
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	mov	byte ptr [rax+0x8], 1
	lea	rcx, [DS0019+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [CatStrFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x01
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 1
	mov	ecx, 16
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	lea	rcx, [DS001A+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [InStrFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 3
	mov	word ptr [rsi+0x2], 1
	mov	ecx, 48
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	mov	byte ptr [rax+0x18], 1
	mov	byte ptr [rax+0x28], 1
	lea	rcx, [DS001B+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [SizeStrFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 1
	mov	ecx, 16
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	lea	rcx, [DS001C+rip]
	call	CreateMacro@PLT
	mov	rdi, rax
	or	byte ptr [rdi+0x10], 0x01
	or	byte ptr [rdi+0x10], 0x08
	lea	rax, [SubStrFunc@PLT+rip]
	mov	qword ptr [rdi+0x30], rax
	or	byte ptr [rdi+0x48], 0x02
	mov	rsi, qword ptr [rdi+0x78]
	mov	word ptr [rsi], 3
	mov	word ptr [rsi+0x2], 6
	mov	ecx, 48
	call	LclAlloc@PLT
	mov	qword ptr [rsi+0x8], rax
	mov	byte ptr [rax+0x8], 1
	mov	byte ptr [rax+0x18], 1
	add	rsp, 40
	pop	rdi
	pop	rsi
	ret


.SECTION .data
	.ALIGN	16

LC0039:
	.byte  0xAD, 0x01, 0xA3, 0x01, 0x99, 0x01, 0x8F, 0x01
	.byte  0x85, 0x01, 0x7B, 0x01, 0x71, 0x01, 0x67, 0x01
	.byte  0x5D, 0x01, 0x53, 0x01, 0x0C, 0x01, 0x06, 0x01
	.byte  0x00, 0x01, 0x9C, 0x00, 0x65, 0x00, 0x2E, 0x00
	.byte  0x00, 0x00, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x08
	.byte  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
	.byte  0x0D, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E
	.byte  0x0E, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x09
	.byte  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
	.byte  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
	.byte  0x10, 0x10, 0x10, 0x10, 0x10, 0x0A, 0x10, 0x10
	.byte  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
	.byte  0x10, 0x00, 0x01, 0x10, 0x10, 0x02, 0x03, 0x10
	.byte  0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x10
	.byte  0x10, 0x10, 0x05, 0x10, 0x06, 0x0B, 0x07, 0x10
	.byte  0x0C, 0x00

DS0000:
	.byte  0x44, 0x24, 0x25, 0x30, 0x34, 0x58, 0x5B, 0x25
	.byte  0x64, 0x5D, 0x00

DS0001:
	.byte  0x44, 0x24, 0x25, 0x30, 0x34, 0x58, 0x00

DS0002:
	.byte  0x20, 0x73, 0x65, 0x67, 0x6D, 0x65, 0x6E, 0x74
	.byte  0x00

DS0003:
	.byte  0x2E, 0x63, 0x6F, 0x64, 0x65, 0x00

DS0004:
	.byte  0x61, 0x64, 0x64, 0x72, 0x20, 0x00

DS0005:
	.byte  0x20, 0x25, 0x73, 0x20, 0x64, 0x77, 0x20, 0x25
	.byte  0x73, 0x2C, 0x30, 0x00

DS0006:
	.byte  0x20, 0x25, 0x73, 0x20, 0x73, 0x62, 0x79, 0x74
	.byte  0x65, 0x20, 0x25, 0x73, 0x2C, 0x30, 0x00

DS0007:
	.byte  0x20, 0x25, 0x73, 0x20, 0x64, 0x77, 0x20, 0x30
	.byte  0x00

DS0008:
	.byte  0x20, 0x25, 0x73, 0x20, 0x73, 0x62, 0x79, 0x74
	.byte  0x65, 0x20, 0x30, 0x00

DS0009:
	.byte  0x2E, 0x64, 0x61, 0x74, 0x61, 0x00

DS000A:
	.byte  0x61, 0x6C, 0x69, 0x67, 0x6E, 0x20, 0x32, 0x00

DS000B:
	.byte  0x5F, 0x44, 0x41, 0x54, 0x41, 0x20, 0x65, 0x6E
	.byte  0x64, 0x73, 0x00

DS000C:
	.byte  0x5F, 0x44, 0x41, 0x54, 0x41, 0x00

DS000D:
	.byte  0x2E, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x00

DS000E:
	.byte  0x43, 0x4F, 0x4E, 0x53, 0x54, 0x00

DS000F:
	.byte  0x46, 0x24, 0x25, 0x30, 0x34, 0x58, 0x00

DS0010:
	.byte  0x61, 0x6C, 0x69, 0x67, 0x6E, 0x20, 0x25, 0x64
	.byte  0x00

DS0011:
	.byte  0x25, 0x73, 0x20, 0x64, 0x64, 0x20, 0x30, 0x78
	.byte  0x25, 0x78, 0x00

DS0012:
	.byte  0x25, 0x73, 0x20, 0x64, 0x71, 0x20, 0x30, 0x78
	.byte  0x25, 0x6C, 0x78, 0x00

DS0013:
	.byte  0x25, 0x73, 0x20, 0x6C, 0x61, 0x62, 0x65, 0x6C
	.byte  0x20, 0x72, 0x65, 0x61, 0x6C, 0x25, 0x64, 0x00

DS0014:
	.byte  0x6F, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x30, 0x78
	.byte  0x25, 0x30, 0x31, 0x36, 0x6C, 0x58, 0x25, 0x30
	.byte  0x31, 0x36, 0x6C, 0x58, 0x00

DS0015:
	.byte  0x40, 0x43, 0x6F, 0x6D, 0x41, 0x6C, 0x6C, 0x6F
	.byte  0x63, 0x00

DS0016:
	.byte  0x74, 0x79, 0x70, 0x65, 0x69, 0x64, 0x00

DS0017:
	.byte  0x40, 0x43, 0x53, 0x74, 0x72, 0x00

DS0018:
	.byte  0x40, 0x52, 0x65, 0x67, 0x00

DS0019:
	.byte  0x40, 0x43, 0x61, 0x74, 0x53, 0x74, 0x72, 0x00

DS001A:
	.byte  0x40, 0x49, 0x6E, 0x53, 0x74, 0x72, 0x00

DS001B:
	.byte  0x40, 0x53, 0x69, 0x7A, 0x65, 0x53, 0x74, 0x72
	.byte  0x00

DS001C:
	.byte  0x40, 0x53, 0x75, 0x62, 0x53, 0x74, 0x72, 0x00


.att_syntax prefix
