
.intel_syntax noprefix

.global CreateExternalFromType
.global ExterndefDirective
.global ProtoDirective
.global MakeExtern
.global ExternDirective
.global CommDirective
.global PublicDirective

.extern AddPublicData
.extern CopyPrototype
.extern CreateProc
.extern ParseProc
.extern GetQualifiedType
.extern EmitConstError
.extern EvalOperand
.extern sym_remove_table
.extern sym_add_table
.extern GetLangType
.extern MemtypeFromSize
.extern SymTables
.extern SetMangler
.extern asmerr
.extern Options
.extern Parse_Pass
.extern SymFindID
.extern SymFind
.extern SymGCreate
.extern SymCreate


.SECTION .text
	.ALIGN	16

$_001:	mov	qword ptr [rsp+0x18], r8
	push	rsi
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	rsi, rcx
	test	rsi, rsi
	jnz	$_002
	mov	rcx, rdx
	call	SymCreate@PLT
	mov	rsi, rax
	jmp	$_003

$_002:	mov	rdx, rsi
	lea	rcx, [SymTables+rip]
	call	sym_remove_table@PLT
$_003:	test	rsi, rsi
	jz	$_005
	mov	byte ptr [rsi+0x1D], 2
	mov	al, byte ptr [r14+0x4]
	mov	byte ptr [rsi+0x20], al
	and	byte ptr [rsi+0x4B], 0xFE
	and	byte ptr [rsi+0x4B], 0xFD
	cmp	byte ptr [rbp+0x28], 0
	jz	$_004
	or	byte ptr [rsi+0x4B], 0x02
$_004:	mov	rdx, rsi
	lea	rcx, [SymTables+0x10+rip]
	call	sym_add_table@PLT
$_005:	mov	rax, rsi
	leave
	pop	rsi
	ret

$_006:
	push	rsi
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	rsi, rcx
	test	rsi, rsi
	jnz	$_007
	mov	rcx, rdx
	call	SymCreate@PLT
	mov	rsi, rax
	jmp	$_008

$_007:	mov	rdx, rsi
	lea	rcx, [SymTables+rip]
	call	sym_remove_table@PLT
$_008:	test	rsi, rsi
	jz	$_009
	mov	byte ptr [rsi+0x1D], 2
	mov	al, byte ptr [r14+0x4]
	mov	byte ptr [rsi+0x20], al
	mov	byte ptr [rsi+0x21], 0
	and	byte ptr [rsi+0x4B], 0xFD
	or	byte ptr [rsi+0x4B], 0x01
	mov	rdx, rsi
	lea	rcx, [SymTables+0x10+rip]
	call	sym_add_table@PLT
$_009:	mov	rax, rsi
	leave
	pop	rsi
	ret

CreateExternalFromType:
	mov	qword ptr [rsp+0x8], rcx
	push	rsi
	push	rdi
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	rdi, rdx
	call	SymFind@PLT
	mov	rsi, rax
	test	rsi, rsi
	jz	$_010
	cmp	byte ptr [rsi+0x1D], 0
	jz	$_010
	cmp	byte ptr [rsi+0x1D], 2
	jnz	$_012
	test	byte ptr [rsi+0x4B], 0x02
	jz	$_012
	test	byte ptr [rsi+0x10], 0x02
	jnz	$_012
$_010:	mov	r8d, 2
	mov	rdx, qword ptr [rbp+0x20]
	mov	rcx, rsi
	call	CreateProc@PLT
	test	rax, rax
	jnz	$_011
	jmp	$_016

$_011:	mov	rsi, rax
	jmp	$_013

$_012:	test	byte ptr [rsi+0x10], 0x02
	jnz	$_013
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	xor	eax, eax
	jmp	$_016

$_013:	test	rdi, rdi
	jz	$_014
	cmp	byte ptr [rdi+0x1D], 7
	jnz	$_014
	cmp	byte ptr [rdi+0x1E], 195
	jnz	$_014
	mov	rdx, qword ptr [rdi+0x50]
	mov	rcx, rsi
	call	CopyPrototype@PLT
	jmp	$_015

$_014:	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 2004
	call	asmerr@PLT
$_015:	mov	rax, rsi
$_016:	leave
	pop	rdi
	pop	rsi
	ret

$_017:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	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, 56
	mov	rcx, qword ptr [rbp+0x38]
	call	SymFind@PLT
	mov	rsi, rax
	test	rsi, rsi
	jz	$_018
	cmp	byte ptr [rsi+0x1D], 0
	jz	$_018
	cmp	byte ptr [rsi+0x1D], 2
	jnz	$_020
	test	byte ptr [rsi+0x4B], 0x02
	jz	$_020
	test	byte ptr [rsi+0x10], 0x02
	jnz	$_020
$_018:	mov	r8d, 2
	mov	rdx, qword ptr [rbp+0x38]
	mov	rcx, rsi
	call	CreateProc@PLT
	test	rax, rax
	jnz	$_019
	jmp	$_028

$_019:	mov	rsi, rax
	jmp	$_021

$_020:	test	byte ptr [rsi+0x10], 0x02
	jnz	$_021
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	xor	eax, eax
	jmp	$_028

$_021:	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 8
	jnz	$_022
	mov	rdi, qword ptr [rbx+0x10]
	mov	eax, dword ptr [rdi]
	or	al, 0x20
	cmp	ax, 99
	jnz	$_022
	mov	byte ptr [rbx], 7
	mov	dword ptr [rbx+0x4], 343
	mov	byte ptr [rbx+0x1], 1
$_022:	cmp	byte ptr [rbx], 8
	jnz	$_024
	mov	rcx, rbx
	call	SymFindID@PLT
	mov	rdi, rax
	test	rax, rax
	jz	$_024
	cmp	byte ptr [rax+0x1D], 7
	jnz	$_024
	cmp	byte ptr [rax+0x1E], 128
	jnz	$_024
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 0
	jz	$_023
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	xor	eax, eax
	jmp	$_028

$_023:	mov	rdx, qword ptr [rdi+0x50]
	mov	rcx, rsi
	call	CopyPrototype@PLT
	mov	rax, rsi
	jmp	$_028

$_024:	cmp	dword ptr [Parse_Pass+rip], 0
	jnz	$_026
	movzx	eax, byte ptr [rbp+0x40]
	mov	dword ptr [rsp+0x20], eax
	xor	r9d, r9d
	mov	r8, qword ptr [rbp+0x30]
	mov	edx, dword ptr [rbp+0x28]
	mov	rcx, rsi
	call	ParseProc@PLT
	cmp	eax, -1
	jnz	$_025
	xor	eax, eax
	jmp	$_028

$_025:	mov	rax, qword ptr [r14+0x1B0]
	mov	qword ptr [rsi+0x60], rax
	jmp	$_027

$_026:	or	byte ptr [rsi+0x10], 0x01
$_027:	mov	rax, rsi
$_028:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

ExterndefDirective:
	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, 88
	mov	byte ptr [rbp-0x29], 0
	mov	byte ptr [rbp-0x2A], 0
	inc	dword ptr [rbp+0x28]
$_029:	mov	al, byte ptr [r14+0x4]
	mov	byte ptr [rbp-0x15], al
	mov	al, byte ptr [r14+0x9]
	mov	byte ptr [rbp-0x9], al
	lea	r8, [rbp-0x9]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	GetLangType@PLT
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 8
	jnz	$_031
	cmp	dword ptr [rbx+0x8], -1059869889
	jnz	$_030
	mov	byte ptr [rbp-0x29], 1
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	jmp	$_031

$_030:	cmp	dword ptr [rbx+0x8], -517060422
	jnz	$_031
	mov	byte ptr [rbp-0x2A], 1
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_031:	cmp	byte ptr [rbx], 8
	jz	$_032
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_065

$_032:	mov	rax, qword ptr [rbx+0x10]
	mov	qword ptr [rbp-0x8], rax
	mov	rdi, rax
	mov	rcx, rbx
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 58
	jz	$_033
	lea	rdx, [DS0000+rip]
	mov	ecx, 2065
	call	asmerr@PLT
	jmp	$_065

$_033:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	call	SymFindID@PLT
	mov	rsi, rax
	mov	byte ptr [rbp-0x18], 192
	mov	dword ptr [rbp-0x28], 0
	mov	byte ptr [rbp-0x17], 0
	mov	byte ptr [rbp-0x16], 0
	mov	byte ptr [rbp-0x14], 192
	mov	qword ptr [rbp-0x20], 0
	mov	al, byte ptr [r14+0x4]
	mov	byte ptr [rbp-0x15], al
	mov	rcx, qword ptr [rbx+0x10]
	mov	eax, dword ptr [rcx]
	or	eax, 0x202020
	cmp	byte ptr [rbx], 8
	jnz	$_034
	cmp	eax, 7561825
	jnz	$_034
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	jmp	$_037

$_034:	cmp	byte ptr [rbx], 3
	jnz	$_036
	cmp	dword ptr [rbx+0x4], 604
	jnz	$_036
	mov	ecx, dword ptr [rbp+0x28]
	inc	ecx
	movzx	r9d, byte ptr [rbp-0x9]
	mov	r8, rdi
	mov	rdx, qword ptr [rbp+0x30]
	call	$_017
	test	rax, rax
	jz	$_035
	xor	eax, eax
	jmp	$_065

$_035:	mov	rax, -1
	jmp	$_065

	jmp	$_037

$_036:	cmp	byte ptr [rbx], 0
	jz	$_037
	cmp	byte ptr [rbx], 44
	jz	$_037
	lea	r8, [rbp-0x28]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	GetQualifiedType@PLT
	cmp	eax, -1
	je	$_065
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
$_037:	mov	byte ptr [rbp-0xA], 0
	test	rsi, rsi
	jz	$_038
	cmp	byte ptr [rsi+0x1D], 0
	jnz	$_039
$_038:	mov	r8d, 1
	mov	rdx, rdi
	mov	rcx, rsi
	call	$_001
	mov	rsi, rax
	mov	byte ptr [rbp-0xA], 1
	jmp	$_040

$_039:	cmp	byte ptr [rsi+0x1D], 1
	jz	$_040
	cmp	byte ptr [rsi+0x1D], 2
	jz	$_040
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 2014
	call	asmerr@PLT
	jmp	$_065

$_040:	mov	rdi, qword ptr [rbp-0x20]
	cmp	byte ptr [rbp-0xA], 0
	je	$_050
	cmp	byte ptr [rbp-0x17], 0
	jnz	$_041
	test	rdi, rdi
	jz	$_041
	test	byte ptr [rdi+0x10], 0x02
	jz	$_041
	mov	r8d, 2
	xor	edx, edx
	mov	rcx, rsi
	call	CreateProc@PLT
	mov	rdx, rdi
	mov	rcx, rsi
	call	CopyPrototype@PLT
	mov	al, byte ptr [rdi+0x1E]
	mov	byte ptr [rbp-0x18], al
	mov	qword ptr [rbp-0x20], 0
$_041:	jmp	$_045

$_042:	jmp	$_046

$_043:	jmp	$_046

$_044:	mov	rax, qword ptr [r14+0x38]
	mov	qword ptr [rsi+0x40], rax
	jmp	$_046

$_045:	cmp	byte ptr [rbp-0x18], 192
	jz	$_042
	cmp	byte ptr [rbp-0x18], 130
	jz	$_043
	jmp	$_044

$_046:	mov	al, byte ptr [rbp-0x15]
	mov	byte ptr [rsi+0x48], al
	cmp	byte ptr [rbp-0x17], 0
	jnz	$_047
	cmp	al, byte ptr [r14+0x4]
	jz	$_047
	mov	byte ptr [rsi+0x20], al
	mov	rcx, qword ptr [rsi+0x40]
	test	rcx, rcx
	jz	$_047
	mov	rdx, qword ptr [rcx+0x78]
	cmp	al, byte ptr [rdx+0x1D]
	jz	$_047
	mov	qword ptr [rsi+0x40], 0
$_047:	mov	al, byte ptr [rbp-0x18]
	mov	byte ptr [rsi+0x1E], al
	mov	al, byte ptr [rbp-0x17]
	mov	byte ptr [rsi+0x49], al
	mov	al, byte ptr [rbp-0x16]
	mov	byte ptr [rsi+0x21], al
	mov	al, byte ptr [rbp-0x14]
	mov	byte ptr [rsi+0x4A], al
	mov	rax, qword ptr [rbp-0x20]
	cmp	byte ptr [rbp-0x18], 196
	jnz	$_048
	mov	qword ptr [rsi+0x28], rax
	jmp	$_049

$_048:	mov	qword ptr [rsi+0x50], rax
$_049:	xor	r8d, r8d
	movzx	edx, byte ptr [rbp-0x9]
	mov	rcx, rsi
	call	SetMangler@PLT
	jmp	$_059

$_050:	cmp	dword ptr [Parse_Pass+rip], 0
	jne	$_059
	cmp	byte ptr [rbp-0x17], 0
	jnz	$_051
	test	rdi, rdi
	jz	$_051
	test	byte ptr [rdi+0x10], 0x02
	jz	$_051
	mov	al, byte ptr [rdi+0x1E]
	mov	byte ptr [rbp-0x18], al
	mov	qword ptr [rbp-0x20], 0
$_051:	mov	al, byte ptr [rbp-0x18]
	cmp	byte ptr [rsi+0x1E], al
	jz	$_052
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 8001
	call	asmerr@PLT
	jmp	$_057

$_052:	cmp	byte ptr [rsi+0x1E], 196
	jnz	$_057
	mov	rax, qword ptr [rbp-0x20]
	cmp	qword ptr [rsi+0x28], rax
	jz	$_057
	mov	rcx, rsi
	jmp	$_054

$_053:	mov	rcx, qword ptr [rcx+0x28]
$_054:	cmp	qword ptr [rcx+0x28], 0
	jnz	$_053
	jmp	$_056

$_055:	mov	rdi, qword ptr [rdi+0x28]
$_056:	cmp	qword ptr [rdi+0x28], 0
	jnz	$_055
	cmp	rcx, rdi
	jz	$_057
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 8001
	call	asmerr@PLT
$_057:	cmp	byte ptr [rbp-0x9], 0
	jz	$_058
	mov	al, byte ptr [rbp-0x9]
	cmp	byte ptr [rsi+0x1F], al
	jz	$_058
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 7000
	call	asmerr@PLT
$_058:	cmp	byte ptr [rsi+0x1D], 1
	jnz	$_059
	test	byte ptr [rsi+0x10], 0x04
	jnz	$_059
	or	byte ptr [rsi+0x10], 0x04
	mov	rcx, rsi
	call	AddPublicData@PLT
$_059:	or	byte ptr [rsi+0x10], 0x01
	cmp	byte ptr [rbp-0x29], 0
	jz	$_060
	cmp	dword ptr [Options+0x8C+rip], 3
	jnz	$_060
	or	byte ptr [rsi+0x10], 0x20
	jmp	$_061

$_060:	cmp	byte ptr [rbp-0x2A], 0
	jz	$_061
	cmp	dword ptr [Options+0x8C+rip], 3
	jz	$_061
	or	byte ptr [rsi+0x12], 0x08
	cmp	dword ptr [Parse_Pass+rip], 0
	jnz	$_061
	mov	rax, qword ptr [r14+0x1B0]
	mov	qword ptr [rsi+0x60], rax
$_061:	cmp	byte ptr [rbx], 0
	jz	$_064
	cmp	byte ptr [rbx], 44
	jnz	$_063
	mov	eax, dword ptr [rbp+0x28]
	inc	eax
	cmp	eax, dword ptr [r14+0x64]
	jge	$_062
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_062:	jmp	$_064

$_063:	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_065

$_064:	mov	eax, dword ptr [r14+0x64]
	cmp	dword ptr [rbp+0x28], eax
	jl	$_029
	xor	eax, eax
$_065:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

ProtoDirective:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	rbx, rdx
	cmp	dword ptr [Parse_Pass+rip], 0
	jz	$_067
	mov	rcx, rbx
	call	SymFindID@PLT
	test	rax, rax
	jz	$_066
	test	byte ptr [rax+0x10], 0x02
	jz	$_066
	or	byte ptr [rax+0x10], 0x01
$_066:	xor	eax, eax
	jmp	$_070

$_067:	cmp	dword ptr [rbp+0x18], 1
	jz	$_068
	imul	ecx, dword ptr [rbp+0x18], 32
	mov	rdx, qword ptr [rbx+rcx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_070

$_068:	movzx	r9d, byte ptr [r14+0x9]
	mov	r8, qword ptr [rbx+0x10]
	mov	rdx, qword ptr [rbp+0x20]
	mov	ecx, 2
	call	$_017
	test	rax, rax
	jz	$_069
	mov	eax, 0
	jmp	$_070

$_069:	mov	eax, 4294967295
$_070:	leave
	pop	rbx
	ret

MakeExtern:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	mov	qword ptr [rsp+0x20], r9
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	xor	r8d, r8d
	mov	rdx, qword ptr [rbp+0x10]
	mov	rcx, qword ptr [rbp+0x28]
	call	$_001
	test	rax, rax
	jnz	$_071
	jmp	$_074

$_071:	mov	rcx, rax
	cmp	byte ptr [rbp+0x18], 192
	jz	$_073
	test	byte ptr [Options+0x1+rip], 0x08
	jz	$_072
	cmp	byte ptr [rbp+0x18], 130
	jz	$_073
$_072:	mov	rax, qword ptr [r14+0x38]
	mov	qword ptr [rcx+0x40], rax
$_073:	or	byte ptr [rcx+0x10], 0x01
	mov	al, byte ptr [rbp+0x18]
	mov	byte ptr [rcx+0x1E], al
	mov	al, byte ptr [rbp+0x30]
	mov	byte ptr [rcx+0x20], al
	mov	rax, qword ptr [rbp+0x20]
	mov	qword ptr [rcx+0x28], rax
	mov	rax, rcx
$_074:	leave
	ret

$_075:
	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, 40
	mov	rsi, qword ptr [rbp+0x30]
	cmp	qword ptr [rbp+0x28], 0
	je	$_087
	cmp	byte ptr [rsi+0x1D], 2
	jne	$_087
	mov	rcx, qword ptr [rbp+0x28]
	call	SymFind@PLT
	mov	rdi, rax
	cmp	qword ptr [rsi+0x68], 0
	jz	$_076
	cmp	qword ptr [rsi+0x68], rdi
	jz	$_076
	mov	rdx, qword ptr [rsi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	jmp	$_088

$_076:	cmp	dword ptr [Parse_Pass+rip], 0
	jbe	$_082
	cmp	byte ptr [rdi+0x1D], 0
	jnz	$_077
	mov	rdx, qword ptr [rbp+0x28]
	mov	ecx, 2006
	call	asmerr@PLT
	jmp	$_081

$_077:	cmp	byte ptr [rdi+0x1D], 1
	jz	$_078
	cmp	byte ptr [rdi+0x1D], 2
	jz	$_078
	mov	rdx, qword ptr [rbp+0x28]
	mov	ecx, 2004
	call	asmerr@PLT
	jmp	$_081

$_078:	cmp	byte ptr [rdi+0x1D], 1
	jnz	$_080
	test	byte ptr [rdi+0x10], 0x04
	jnz	$_080
	cmp	dword ptr [Options+0x8C+rip], 2
	jz	$_079
	cmp	dword ptr [Options+0x8C+rip], 3
	jnz	$_080
$_079:	mov	rdx, qword ptr [rbp+0x28]
	mov	ecx, 2217
	call	asmerr@PLT
$_080:	mov	al, byte ptr [rdi+0x1E]
	cmp	byte ptr [rsi+0x1E], al
	jz	$_081
	mov	rdx, qword ptr [rbp+0x28]
	mov	ecx, 2004
	call	asmerr@PLT
$_081:	jmp	$_087

$_082:	test	rdi, rdi
	jz	$_084
	cmp	byte ptr [rdi+0x1D], 1
	jz	$_083
	cmp	byte ptr [rdi+0x1D], 2
	jz	$_083
	cmp	byte ptr [rdi+0x1D], 0
	jz	$_083
	mov	rdx, qword ptr [rbp+0x28]
	mov	ecx, 2004
	call	asmerr@PLT
	jmp	$_088

$_083:	jmp	$_085

$_084:	mov	rcx, qword ptr [rbp+0x28]
	call	SymGCreate@PLT
	mov	rdi, rax
	mov	rdx, rdi
	lea	rcx, [SymTables+rip]
	call	sym_add_table@PLT
$_085:	cmp	dword ptr [Options+0x8C+rip], 1
	jz	$_086
	or	byte ptr [rdi+0x10], 0x10
$_086:	cmp	qword ptr [rsi+0x68], 0
	jnz	$_087
	mov	qword ptr [rsi+0x68], rdi
$_087:	xor	eax, eax
$_088:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

ExternDirective:
	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, 104
	inc	dword ptr [rbp+0x28]
$_089:	mov	qword ptr [rbp-0x28], 0
	mov	al, byte ptr [r14+0x9]
	mov	byte ptr [rbp-0x1], al
	lea	r8, [rbp-0x1]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	GetLangType@PLT
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 8
	jz	$_090
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_121

$_090:	mov	rax, qword ptr [rbx+0x10]
	mov	qword ptr [rbp-0x30], rax
	mov	rcx, rbx
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 40
	jnz	$_093
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 8
	jz	$_091
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_121

$_091:	mov	rax, qword ptr [rbx+0x10]
	mov	qword ptr [rbp-0x28], rax
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 41
	jz	$_092
	lea	rdx, [DS0001+rip]
	mov	ecx, 2065
	call	asmerr@PLT
	jmp	$_121

$_092:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_093:	cmp	byte ptr [rbx], 58
	jz	$_094
	lea	rdx, [DS0002+rip]
	mov	ecx, 2065
	call	asmerr@PLT
	jmp	$_121

$_094:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	call	SymFindID@PLT
	mov	rdi, rax
	mov	byte ptr [rbp-0x10], 192
	mov	dword ptr [rbp-0x20], 0
	mov	byte ptr [rbp-0xF], 0
	mov	byte ptr [rbp-0xE], 0
	mov	byte ptr [rbp-0xC], 192
	mov	qword ptr [rbp-0x18], 0
	mov	al, byte ptr [r14+0x4]
	mov	byte ptr [rbp-0xD], al
	xor	eax, eax
	cmp	byte ptr [rbx], 8
	jnz	$_095
	mov	rcx, qword ptr [rbx+0x10]
	mov	eax, dword ptr [rcx]
	or	eax, 0x202020
$_095:	cmp	eax, 7561825
	jnz	$_096
	inc	dword ptr [rbp+0x28]
	jmp	$_101

$_096:	cmp	byte ptr [rbx], 3
	jnz	$_100
	cmp	dword ptr [rbx+0x4], 604
	jnz	$_100
	mov	ecx, dword ptr [rbp+0x28]
	inc	ecx
	movzx	r9d, byte ptr [rbp-0x1]
	mov	r8, qword ptr [rbp-0x30]
	mov	rdx, qword ptr [rbp+0x30]
	call	$_017
	mov	rdi, rax
	test	rdi, rdi
	jnz	$_097
	mov	rax, -1
	jmp	$_121

$_097:	cmp	byte ptr [rdi+0x1D], 2
	jnz	$_098
	and	byte ptr [rdi+0x4B], 0xFD
	mov	rdx, rdi
	mov	rcx, qword ptr [rbp-0x28]
	call	$_075
	jmp	$_121

	jmp	$_099

$_098:	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	jmp	$_121

$_099:	jmp	$_101

$_100:	cmp	byte ptr [rbx], 0
	jz	$_101
	cmp	byte ptr [rbx], 44
	jz	$_101
	lea	r8, [rbp-0x20]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	GetQualifiedType@PLT
	cmp	eax, -1
	jnz	$_101
	mov	rax, -1
	jmp	$_121

$_101:	test	rdi, rdi
	jz	$_102
	cmp	byte ptr [rdi+0x1D], 0
	jne	$_107
$_102:	xor	ecx, ecx
	cmp	byte ptr [rbp-0x10], 196
	jnz	$_103
	mov	rcx, qword ptr [rbp-0x18]
$_103:	movzx	edx, byte ptr [rbp-0xD]
	cmp	byte ptr [rbp-0xF], 0
	jz	$_104
	mov	dl, byte ptr [r14+0x4]
$_104:	mov	byte ptr [rsp+0x20], dl
	mov	r9, rdi
	mov	r8, rcx
	movzx	edx, byte ptr [rbp-0x10]
	mov	rcx, qword ptr [rbp-0x30]
	call	MakeExtern
	test	rax, rax
	jnz	$_105
	mov	rax, -1
	jmp	$_121

$_105:	mov	rdi, rax
	mov	rsi, qword ptr [rbp-0x18]
	cmp	byte ptr [rbp-0xF], 0
	jnz	$_106
	test	rsi, rsi
	jz	$_106
	test	byte ptr [rsi+0x10], 0x02
	jz	$_106
	mov	r8d, 2
	xor	edx, edx
	mov	rcx, rdi
	call	CreateProc@PLT
	and	byte ptr [rdi+0x4B], 0xFD
	mov	rdx, rsi
	mov	rcx, rdi
	call	CopyPrototype@PLT
	mov	al, byte ptr [rsi+0x1E]
	mov	byte ptr [rbp-0x10], al
	mov	qword ptr [rbp-0x18], 0
$_106:	jmp	$_114

$_107:	cmp	byte ptr [rdi+0x1D], 1
	jnz	$_108
	cmp	byte ptr [rdi+0x1E], 192
	jnz	$_108
	jmp	$_109

$_108:	cmp	byte ptr [rdi+0x1D], 2
	jz	$_109
	mov	rdx, qword ptr [rbp-0x30]
	mov	ecx, 2014
	call	asmerr@PLT
	jmp	$_121

$_109:	mov	rsi, qword ptr [rbp-0x18]
	cmp	byte ptr [rbp-0xF], 0
	jnz	$_110
	test	rsi, rsi
	jz	$_110
	test	byte ptr [rsi+0x10], 0x02
	jz	$_110
	mov	al, byte ptr [rsi+0x1E]
	mov	byte ptr [rbp-0x10], al
	mov	qword ptr [rbp-0x18], 0
$_110:	mov	rdx, qword ptr [rdi+0x50]
	cmp	byte ptr [rdi+0x1E], 196
	jnz	$_111
	mov	rdx, qword ptr [rdi+0x28]
$_111:	mov	al, byte ptr [rbp-0x10]
	cmp	byte ptr [rdi+0x1E], al
	jnz	$_113
	mov	al, byte ptr [rbp-0xF]
	cmp	byte ptr [rdi+0x49], al
	jnz	$_113
	mov	al, byte ptr [rbp-0xE]
	cmp	byte ptr [rdi+0x21], al
	jnz	$_113
	cmp	byte ptr [rdi+0x49], 0
	jz	$_112
	mov	al, byte ptr [rbp-0xC]
	cmp	byte ptr [rdi+0x4A], al
	jnz	$_113
$_112:	cmp	rdx, qword ptr [rbp-0x18]
	jnz	$_113
	cmp	byte ptr [rbp-0x1], 0
	jz	$_114
	cmp	byte ptr [rdi+0x1F], 0
	jz	$_114
	mov	al, byte ptr [rbp-0x1]
	cmp	byte ptr [rdi+0x1F], al
	jz	$_114
$_113:	mov	rdx, qword ptr [rbp-0x30]
	mov	ecx, 2004
	call	asmerr@PLT
	jmp	$_121

$_114:	or	byte ptr [rdi+0x10], 0x01
	mov	al, byte ptr [rbp-0xD]
	mov	byte ptr [rdi+0x48], al
	cmp	byte ptr [rbp-0xF], 0
	jnz	$_116
	cmp	al, byte ptr [r14+0x4]
	jz	$_116
	mov	byte ptr [rdi+0x20], al
	mov	rcx, qword ptr [rdi+0x40]
	test	rcx, rcx
	jz	$_115
	mov	rdx, qword ptr [rcx+0x78]
$_115:	test	rcx, rcx
	jz	$_116
	cmp	byte ptr [rdx+0x1D], al
	jz	$_116
	mov	qword ptr [rdi+0x40], 0
$_116:	mov	al, byte ptr [rbp-0x10]
	mov	byte ptr [rdi+0x1E], al
	mov	al, byte ptr [rbp-0xF]
	mov	byte ptr [rdi+0x49], al
	mov	al, byte ptr [rbp-0xE]
	mov	byte ptr [rdi+0x21], al
	mov	al, byte ptr [rbp-0xC]
	mov	byte ptr [rdi+0x4A], al
	cmp	byte ptr [rbp-0x10], 196
	jnz	$_117
	mov	rax, qword ptr [rbp-0x18]
	mov	qword ptr [rdi+0x28], rax
	jmp	$_118

$_117:	mov	rax, qword ptr [rbp-0x18]
	mov	qword ptr [rdi+0x50], rax
$_118:	mov	rdx, rdi
	mov	rcx, qword ptr [rbp-0x28]
	call	$_075
	xor	r8d, r8d
	movzx	edx, byte ptr [rbp-0x1]
	mov	rcx, rdi
	call	SetMangler@PLT
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 0
	jz	$_120
	mov	ecx, dword ptr [rbp+0x28]
	inc	ecx
	cmp	byte ptr [rbx], 44
	jnz	$_119
	cmp	ecx, dword ptr [r14+0x64]
	jge	$_119
	inc	dword ptr [rbp+0x28]
	jmp	$_120

$_119:	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_121

$_120:	mov	eax, dword ptr [r14+0x64]
	cmp	dword ptr [rbp+0x28], eax
	jl	$_089
	xor	eax, eax
$_121:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

$_122:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	mov	qword ptr [rsp+0x18], r8
	mov	qword ptr [rsp+0x20], r9
	push	rdi
	push	rbp
	mov	rbp, rsp
	sub	rsp, 40
	mov	rdx, qword ptr [rbp+0x18]
	mov	rcx, qword ptr [rbp+0x20]
	call	$_006
	mov	rdi, rax
	test	rdi, rdi
	jz	$_126
	mov	eax, dword ptr [rbp+0x30]
	mov	dword ptr [rdi+0x68], eax
	mov	al, byte ptr [rbp+0x38]
	mov	byte ptr [rdi+0x21], al
	test	byte ptr [Options+0x1+rip], 0x08
	jz	$_123
	cmp	byte ptr [rbp+0x38], 0
	jnz	$_124
$_123:	mov	rax, qword ptr [r14+0x38]
	mov	qword ptr [rdi+0x40], rax
$_124:	lea	rdx, [rdi+0x1E]
	mov	ecx, dword ptr [rbp+0x28]
	call	MemtypeFromSize@PLT
	cmp	byte ptr [r14+0x4], 0
	jnz	$_125
	mov	eax, dword ptr [rbp+0x28]
	mul	dword ptr [rbp+0x30]
	cmp	eax, 65536
	jbe	$_125
	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 8000
	call	asmerr@PLT
$_125:	mov	eax, dword ptr [rbp+0x28]
	mul	dword ptr [rbp+0x30]
	mov	dword ptr [rdi+0x60], eax
	mov	rax, rdi
$_126:	leave
	pop	rdi
	ret

CommDirective:
	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
	inc	dword ptr [rbp+0x28]
$_127:	mov	eax, dword ptr [r14+0x64]
	cmp	dword ptr [rbp+0x28], eax
	jge	$_155
	mov	al, byte ptr [r14+0x9]
	mov	byte ptr [rbp-0x91], al
	lea	r8, [rbp-0x91]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	GetLangType@PLT
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	mov	byte ptr [rbp-0x9], 0
	cmp	byte ptr [rbx], 6
	jnz	$_132
	mov	eax, dword ptr [rbx+0x4]
	jmp	$_131

$_128:	cmp	byte ptr [r14+0x15], 7
	jnz	$_129
	mov	ecx, 2178
	call	asmerr@PLT
	jmp	$_130

$_129:	mov	byte ptr [rbp-0x9], 1
$_130:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	jmp	$_132

$_131:	cmp	eax, 291
	jz	$_128
	cmp	eax, 294
	jz	$_128
	cmp	eax, 295
	jz	$_128
	cmp	eax, 290
	jz	$_130
	cmp	eax, 292
	jz	$_130
	cmp	eax, 293
	jz	$_130
$_132:	cmp	byte ptr [rbx], 8
	jz	$_133
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_156

$_133:	mov	rax, qword ptr [rbx+0x10]
	mov	qword ptr [rbp-0x8], rax
	mov	rdi, rbx
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 58
	jz	$_134
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_156

$_134:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	mov	ecx, dword ptr [rbp+0x28]
	mov	rdx, rbx
$_135:	cmp	ecx, dword ptr [r14+0x64]
	jge	$_136
	cmp	byte ptr [rdx], 58
	jz	$_136
	inc	ecx
	add	rdx, 32
	jmp	$_135

$_136:	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x90]
	mov	r8d, ecx
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_137
	mov	rax, -1
	jmp	$_156

$_137:	mov	al, byte ptr [rbp-0x4C]
	and	al, 0xC0
	cmp	dword ptr [rbp-0x54], 0
	jz	$_138
	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_141

$_138:	cmp	al, 128
	jnz	$_139
	mov	rdx, qword ptr [rbp-0x8]
	mov	ecx, 2104
	call	asmerr@PLT
	jmp	$_141

$_139:	cmp	dword ptr [rbp-0x8C], 0
	jz	$_140
	cmp	dword ptr [rbp-0x8C], -1
	jz	$_140
	call	EmitConstError@PLT
	jmp	$_141

$_140:	cmp	dword ptr [rbp-0x90], 0
	jnz	$_141
	mov	ecx, 2090
	call	asmerr@PLT
$_141:	mov	eax, dword ptr [rbp-0x90]
	mov	dword ptr [rbp-0x14], eax
	mov	rax, qword ptr [rbp-0x30]
	mov	qword ptr [rbp-0x28], rax
	mov	dword ptr [rbp-0x18], 1
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 58
	jnz	$_146
	inc	dword ptr [rbp+0x28]
	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x90]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_142
	mov	rax, -1
	jmp	$_156

$_142:	cmp	dword ptr [rbp-0x54], 0
	jz	$_143
	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_145

$_143:	cmp	dword ptr [rbp-0x8C], 0
	jz	$_144
	cmp	dword ptr [rbp-0x8C], -1
	jz	$_144
	call	EmitConstError@PLT
	jmp	$_145

$_144:	cmp	dword ptr [rbp-0x90], 0
	jnz	$_145
	mov	ecx, 2090
	call	asmerr@PLT
$_145:	mov	eax, dword ptr [rbp-0x90]
	mov	dword ptr [rbp-0x18], eax
$_146:	mov	rcx, rdi
	call	SymFindID@PLT
	mov	rdi, rax
	test	rdi, rdi
	jz	$_147
	cmp	byte ptr [rdi+0x1D], 0
	jnz	$_149
$_147:	movzx	eax, byte ptr [rbp-0x9]
	mov	dword ptr [rsp+0x20], eax
	mov	r9d, dword ptr [rbp-0x18]
	mov	r8d, dword ptr [rbp-0x14]
	mov	rdx, rdi
	mov	rcx, qword ptr [rbp-0x8]
	call	$_122
	mov	rdi, rax
	test	rdi, rdi
	jnz	$_148
	mov	rax, -1
	jmp	$_156

$_148:	mov	rax, qword ptr [rbp-0x28]
	mov	qword ptr [rdi+0x28], rax
	jmp	$_153

$_149:	cmp	byte ptr [rdi+0x1D], 2
	jnz	$_150
	test	byte ptr [rdi+0x4B], 0x01
	jnz	$_151
$_150:	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	jmp	$_156

	jmp	$_153

$_151:	mov	eax, dword ptr [rdi+0x60]
	cdq
	div	dword ptr [rdi+0x68]
	mov	ecx, dword ptr [rbp-0x18]
	cmp	ecx, dword ptr [rdi+0x68]
	jnz	$_152
	cmp	dword ptr [rbp-0x14], eax
	jz	$_153
$_152:	mov	r8, qword ptr [rdi+0x8]
	lea	rdx, [DS0003+rip]
	mov	ecx, 2007
	call	asmerr@PLT
	jmp	$_156

$_153:	or	byte ptr [rdi+0x10], 0x01
	xor	r8d, r8d
	movzx	edx, byte ptr [rbp-0x91]
	mov	rcx, rdi
	call	SetMangler@PLT
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 0
	jz	$_154
	cmp	byte ptr [rbx], 44
	jz	$_154
	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_156

$_154:	inc	dword ptr [rbp+0x28]
	jmp	$_127

$_155:	xor	eax, eax
$_156:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

PublicDirective:
	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, 56
	mov	byte ptr [rbp-0x13], 0
	inc	dword ptr [rbp+0x28]
$_157:	mov	al, byte ptr [r14+0x9]
	mov	byte ptr [rbp-0x12], al
	lea	r8, [rbp-0x12]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	GetLangType@PLT
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 8
	jz	$_158
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_181

$_158:	test	byte ptr [Options+0x6+rip], 0x10
	jnz	$_159
	cmp	dword ptr [rbx+0x8], -1059869889
	jnz	$_159
	mov	byte ptr [rbp-0x13], 1
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_159:	mov	rax, qword ptr [rbx+0x10]
	mov	qword ptr [rbp-0x8], rax
	mov	rcx, rbx
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	call	SymFindID@PLT
	mov	rdi, rax
	cmp	dword ptr [Parse_Pass+rip], 0
	jnz	$_162
	test	rdi, rdi
	jnz	$_161
	mov	rcx, qword ptr [rbp-0x8]
	call	SymGCreate@PLT
	test	rax, rax
	jz	$_160
	mov	rdi, rax
	mov	rdx, rdi
	lea	rcx, [SymTables+rip]
	call	sym_add_table@PLT
	jmp	$_161

$_160:	mov	rax, -1
	jmp	$_181

$_161:	mov	byte ptr [rbp-0x11], 0
	jmp	$_164

$_162:	test	rdi, rdi
	jz	$_163
	cmp	byte ptr [rdi+0x1D], 0
	jnz	$_164
$_163:	mov	rdx, qword ptr [rbp-0x8]
	mov	ecx, 2006
	call	asmerr@PLT
$_164:	test	rdi, rdi
	je	$_177
	movzx	eax, byte ptr [rdi+0x1D]
	jmp	$_174

$_165:	cmp	byte ptr [rbp-0x13], 0
	jz	$_166
	or	byte ptr [rdi+0x10], 0x20
$_166:	jmp	$_175

$_167:	test	byte ptr [rdi+0x11], 0x04
	jz	$_168
	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 2014
	call	asmerr@PLT
	mov	byte ptr [rbp-0x11], 1
$_168:	cmp	byte ptr [rbp-0x13], 0
	jz	$_169
	or	byte ptr [rdi+0x10], 0x20
$_169:	jmp	$_175

$_170:	test	byte ptr [rdi+0x4B], 0x01
	jz	$_171
	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 2014
	call	asmerr@PLT
	mov	byte ptr [rbp-0x11], 1
	jmp	$_172

$_171:	test	byte ptr [rdi+0x4B], 0x02
	jnz	$_172
	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 2005
	call	asmerr@PLT
	mov	byte ptr [rbp-0x11], 1
$_172:	jmp	$_175

$_173:	mov	rdx, qword ptr [rdi+0x8]
	mov	ecx, 2014
	call	asmerr@PLT
	mov	byte ptr [rbp-0x11], 1
	jmp	$_175

$_174:	cmp	eax, 0
	jz	$_165
	cmp	eax, 1
	jz	$_167
	cmp	eax, 2
	jz	$_170
	jmp	$_173

$_175:	cmp	dword ptr [Parse_Pass+rip], 0
	jnz	$_177
	cmp	byte ptr [rbp-0x11], 0
	jnz	$_177
	test	byte ptr [rdi+0x10], 0x04
	jnz	$_176
	or	byte ptr [rdi+0x10], 0x04
	mov	rcx, rdi
	call	AddPublicData@PLT
$_176:	xor	r8d, r8d
	movzx	edx, byte ptr [rbp-0x12]
	mov	rcx, rdi
	call	SetMangler@PLT
$_177:	cmp	byte ptr [rbx], 0
	jz	$_180
	cmp	byte ptr [rbx], 44
	jnz	$_179
	mov	ecx, dword ptr [rbp+0x28]
	inc	ecx
	cmp	ecx, dword ptr [r14+0x64]
	jge	$_178
	inc	dword ptr [rbp+0x28]
$_178:	jmp	$_180

$_179:	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_181

$_180:	mov	eax, dword ptr [r14+0x64]
	cmp	dword ptr [rbp+0x28], eax
	jl	$_157
	xor	eax, eax
$_181:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret


.SECTION .data
	.ALIGN	16

DS0000:
	.byte  0x63, 0x6F, 0x6C, 0x6F, 0x6E, 0x00

DS0001:
	.byte  0x29, 0x00

DS0002:
	.byte  0x3A, 0x00

DS0003:
	.byte  0x43, 0x4F, 0x4D, 0x4D, 0x00


.att_syntax prefix
