

.intel_syntax noprefix

.global OptionDirective

.extern sym_Interface
.extern UpdateProcStatus
.extern UpdateStackBase
.extern InputExtend
.extern EmitConstError
.extern EvalOperand
.extern SetMasmKeywords
.extern RenameKeyword
.extern DisableKeyword
.extern IsKeywordDisabled
.extern FindResWord
.extern GetLangType
.extern LclDup
.extern LclAlloc
.extern CreateVariable
.extern tstrupr
.extern SetMasm510
.extern asmerr
.extern Options
.extern ModuleInfo
.extern Parse_Pass
.extern StringBuffer
.extern SymSetCmpFunc
.extern tstricmp
.extern tstrcmp
.extern tstrcpy
.extern tstrlen


.SECTION .text
	.ALIGN	16

$_001:	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	lea	rdx, [ModuleInfo+rip]
	movzx	eax, byte ptr [r14+0x4]
	mov	dword ptr [rdx+rax*4+0x68], ecx
	cmp	qword ptr [r14+0x330], 0
	jnz	$_002
	xor	edx, edx
	lea	rcx, [DS0033+rip]
	call	CreateVariable@PLT
	mov	qword ptr [r14+0x330], rax
	mov	rcx, rax
	or	byte ptr [rcx+0x10], 0x08
	lea	rax, [UpdateStackBase@PLT+rip]
	mov	qword ptr [rcx+0x68], rax
	xor	edx, edx
	lea	rcx, [DS0034+rip]
	call	CreateVariable@PLT
	mov	qword ptr [r14+0x338], rax
	mov	rcx, rax
	or	byte ptr [rcx+0x10], 0x08
	lea	rax, [UpdateProcStatus@PLT+rip]
	mov	qword ptr [rcx+0x68], rax
$_002:	leave
	ret

$_003:
	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, 160
	mov	byte ptr [rsp+0x20], 2
	lea	r9, [rbp-0x68]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x18]
	mov	rcx, qword ptr [rbp+0x10]
	call	EvalOperand@PLT
	cmp	eax, -1
	jnz	$_004
	jmp	$_011

$_004:	cmp	dword ptr [rbp-0x2C], 0
	jz	$_005
	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_011

$_005:	mov	eax, dword ptr [rbp+0x20]
	cmp	dword ptr [rbp-0x68], eax
	jle	$_006
	mov	ecx, 2064
	call	asmerr@PLT
	jmp	$_011

$_006:	cmp	dword ptr [rbp-0x68], 0
	jz	$_010
	xor	eax, eax
	mov	ecx, 1
$_007:	cmp	ecx, dword ptr [rbp-0x68]
	jnc	$_008
	shl	ecx, 1
	inc	eax
	jmp	$_007

$_008:	cmp	ecx, dword ptr [rbp-0x68]
	jz	$_009
	mov	edx, dword ptr [rbp-0x68]
	mov	ecx, 2063
	call	asmerr@PLT
	jmp	$_011

$_009:	mov	rdx, qword ptr [rbp+0x28]
	mov	byte ptr [rdx], al
$_010:	xor	eax, eax
$_011:	leave
	ret

OptionDirective:
	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, 232
	mov	dword ptr [rbp-0x6C], -1
	inc	dword ptr [rbp+0x28]
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	jmp	$_178

$_012:	mov	rsi, qword ptr [rbx+0x10]
	mov	rcx, rsi
	call	tstrupr@PLT
	xor	edi, edi
$_013:	cmp	edi, 51
	jnc	$_014
	lea	rdx, [optiontab+rip]
	mov	rdx, qword ptr [rdx+rdi*8]
	mov	rcx, rsi
	call	tstrcmp@PLT
	test	eax, eax
	jz	$_014
	inc	edi
	jmp	$_013

$_014:	cmp	edi, 51
	jnc	$_179
	mov	dword ptr [rbp-0x6C], edi
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	edi, 19
	jc	$_017
	cmp	byte ptr [rbx], 58
	jz	$_015
	lea	rdx, [DS0034+0xB+rip]
	mov	ecx, 2065
	call	asmerr@PLT
	jmp	$_182

$_015:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 0
	jnz	$_016
	sub	rbx, 64
	jmp	$_179

$_016:	cmp	edi, 29
	jc	$_017
	test	byte ptr [Options+0x6+rip], 0x10
	jz	$_017
	sub	rbx, 64
	jmp	$_179

$_017:	mov	rsi, qword ptr [rbx+0x10]
	jmp	$_177

	or	byte ptr [r14], 0x04
	jmp	LC0018

	and	byte ptr [r14], 0xFB
	jmp	LC0018

	mov	ecx, 1
	call	SetMasm510@PLT
	jmp	LC0018

	xor	ecx, ecx
	call	SetMasm510@PLT
	jmp	LC0018

	or	byte ptr [r14+0x3], 0x01
	jmp	LC0018

	and	byte ptr [r14+0x3], 0xFE
	jmp	LC0018

	or	byte ptr [r14+0x3], 0x02
	jmp	LC0018

	and	byte ptr [r14+0x3], 0xFD
	jmp	LC0018

	mov	byte ptr [r14+0x24], 1
	jmp	LC0018

	mov	byte ptr [r14+0x24], 0
	jmp	LC0018

	or	byte ptr [r14+0x2], 0x40
	jmp	LC0018

	and	byte ptr [r14+0x2], 0xBF
	jmp	LC0018

	jmp	LC0018

	jmp	LC0018

	jmp	LC0018

	jmp	LC0018

	jmp	LC0018

	jmp	LC0018

	mov	byte ptr [r14+0x26], 1
	jmp	LC0018

	cmp	byte ptr [rbx], 8
	jne	$_179
	cmp	dword ptr [rbx+0x8], 748895195
	jnz	$_018
	or	byte ptr [r14], 0x01
	and	byte ptr [r14], 0xFD
	jmp	$_021

$_018:	cmp	dword ptr [rbx+0x8], -1086862373
	jnz	$_019
	and	byte ptr [r14], 0xFE
	and	byte ptr [r14], 0xFD
	jmp	$_021

$_019:	cmp	dword ptr [rbx+0x8], 1100754030
	jnz	$_020
	and	byte ptr [r14], 0xFE
	or	byte ptr [r14], 0x02
	jmp	$_021

$_020:	jmp	$_179

$_021:	inc	dword ptr [rbp+0x28]
	call	SymSetCmpFunc@PLT
	jmp	LC0018

	jmp	$_030

$_022:	jmp	$_028

$_023:	cmp	dword ptr [rbx+0x8], 194364606
	jnz	$_024
	or	byte ptr [r14+0x2], 0x10
	and	byte ptr [r14+0x2], 0xDF
	inc	dword ptr [rbp+0x28]
	jmp	$_025

$_024:	cmp	dword ptr [rbx+0x8], -1059869889
	jnz	$_025
	and	byte ptr [r14+0x2], 0xEF
	or	byte ptr [r14+0x2], 0x20
	inc	dword ptr [rbp+0x28]
$_025:	jmp	$_029

$_026:	cmp	dword ptr [rbx+0x4], 603
	jnz	$_027
	and	byte ptr [r14+0x2], 0xEF
	and	byte ptr [r14+0x2], 0xDF
	inc	dword ptr [rbp+0x28]
$_027:	jmp	$_029

$_028:	cmp	byte ptr [rbx], 8
	jz	$_023
	cmp	byte ptr [rbx], 3
	jz	$_026
$_029:	add	rbx, 32
$_030:	cmp	byte ptr [rbx], 0
	jnz	$_022
	jmp	LC0018

	cmp	byte ptr [rbx], 8
	jz	$_031
	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_182

$_031:	cmp	qword ptr [r14+0x180], 0
	jz	$_032
	mov	qword ptr [r14+0x180], 0
$_032:	cmp	dword ptr [rbx+0x8], 748895195
	jnz	$_033
	mov	byte ptr [r14+0x20], 2
	jmp	$_035

$_033:	cmp	dword ptr [rbx+0x8], 371365019
	jnz	$_034
	mov	byte ptr [r14+0x20], 0
	jmp	$_035

$_034:	mov	byte ptr [r14+0x20], 1
	mov	rcx, rsi
	call	LclDup@PLT
	mov	qword ptr [r14+0x180], rax
$_035:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	byte ptr [rbx], 8
	jz	$_036
	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_182

$_036:	mov	qword ptr [r14+0x188], 0
	cmp	dword ptr [rbx+0x8], 748895195
	jnz	$_037
	mov	byte ptr [r14+0x21], 2
	jmp	$_039

$_037:	cmp	dword ptr [rbx+0x8], 582415050
	jnz	$_038
	mov	byte ptr [r14+0x21], 0
	jmp	$_039

$_038:	mov	byte ptr [r14+0x21], 1
	mov	rcx, rsi
	call	LclDup@PLT
	mov	qword ptr [r14+0x188], rax
$_039:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	byte ptr [rbx], 8
	jnz	$_040
	mov	eax, dword ptr [rsi]
	or	al, 0x20
	cmp	ax, 99
	jnz	$_040
	mov	byte ptr [rbx], 7
	mov	dword ptr [rbx+0x4], 343
	mov	byte ptr [rbx+0x1], 1
$_040:	cmp	byte ptr [rbx], 7
	jnz	$_042
	lea	r8, [r14+0x9]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	GetLangType@PLT
	test	eax, eax
	jnz	$_042
	cmp	byte ptr [r14+0x15], 0
	jz	$_041
	cmp	qword ptr [sym_Interface+rip], 0
	jz	$_041
	mov	rcx, qword ptr [sym_Interface+rip]
	movzx	eax, byte ptr [r14+0x9]
	mov	dword ptr [rcx+0x30], eax
$_041:	jmp	LC0018

$_042:	jmp	$_179

	cmp	dword ptr [Parse_Pass+rip], 0
	jz	$_046
	jmp	$_044

$_043:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_044:	cmp	byte ptr [rbx], 0
	jz	$_045
	cmp	byte ptr [rbx], 44
	jnz	$_043
$_045:	jmp	LC0018

$_046:	cmp	byte ptr [rbx], 9
	jne	$_179
	cmp	byte ptr [rbx+0x1], 60
	jne	$_179
$_047:	cmp	byte ptr [rsi], 0
	je	$_057
	jmp	$_049

$_048:	inc	rsi
$_049:	movzx	eax, byte ptr [rsi]
	test	byte ptr [r15+rax], 0x08
	jnz	$_048
	cmp	byte ptr [rsi], 0
	jz	$_053
	mov	rdi, rsi
$_050:	cmp	byte ptr [rsi], 0
	jz	$_051
	movzx	eax, byte ptr [rsi]
	test	byte ptr [r15+rax], 0x08
	jnz	$_051
	cmp	byte ptr [rsi], 44
	jz	$_051
	inc	rsi
	jmp	$_050

$_051:	mov	rcx, rsi
	sub	rcx, rdi
	mov	edx, ecx
	mov	rcx, rdi
	call	FindResWord@PLT
	test	eax, eax
	jz	$_052
	mov	ecx, eax
	call	DisableKeyword@PLT
	jmp	$_053

$_052:	mov	rcx, rsi
	sub	rcx, rdi
	mov	edx, ecx
	mov	rcx, rdi
	call	IsKeywordDisabled@PLT
	test	rax, rax
	jz	$_053
	mov	ecx, 2086
	call	asmerr@PLT
	jmp	$_182

$_053:	jmp	$_055

$_054:	inc	rsi
$_055:	movzx	eax, byte ptr [rsi]
	test	byte ptr [r15+rax], 0x08
	jnz	$_054
	cmp	byte ptr [rsi], 44
	jnz	$_056
	inc	rsi
$_056:	jmp	$_047

$_057:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	dword ptr [rbx+0x8], -1241336767
	jnz	$_058
	or	byte ptr [r14+0x3], 0x08
	inc	dword ptr [rbp+0x28]
	jmp	$_059

$_058:	cmp	dword ptr [rbx+0x8], -1842761174
	jnz	$_059
	and	byte ptr [r14+0x3], 0xF7
	inc	dword ptr [rbp+0x28]
$_059:	jmp	LC0018

	cmp	dword ptr [rbx+0x8], -350584734
	jnz	$_060
	mov	byte ptr [r14+0x17], 0
	jmp	$_063

$_060:	cmp	dword ptr [rbx+0x8], -1363583672
	jnz	$_061
	mov	byte ptr [r14+0x17], 1
	jmp	$_063

$_061:	cmp	dword ptr [rbx+0x8], 1919023040
	jnz	$_062
	mov	byte ptr [r14+0x17], 2
	jmp	$_063

$_062:	jmp	$_179

$_063:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	byte ptr [rbx], 7
	jnz	$_068
	cmp	dword ptr [rbx+0x4], 340
	jnz	$_068
	movzx	eax, byte ptr [r14+0x14]
	and	eax, 0x9F
	test	eax, 0x80
	jz	$_064
	mov	eax, 128
	jmp	$_065

$_064:	cmp	eax, 6
	jc	$_065
	mov	eax, 6
$_065:	cmp	eax, 128
	jc	$_066
	mov	byte ptr [r14+0x5], 2
	jmp	$_067

$_066:	mov	byte ptr [r14+0x5], 1
$_067:	jmp	$_074

$_068:	cmp	byte ptr [rbx], 8
	jnz	$_073
	cmp	dword ptr [rbx+0x8], -679281229
	jnz	$_069
	mov	byte ptr [r14+0x5], 0
	jmp	$_072

$_069:	cmp	dword ptr [rbx+0x8], -712836499
	jnz	$_070
	mov	byte ptr [r14+0x5], 1
	jmp	$_072

$_070:	cmp	dword ptr [rbx+0x8], -796724556
	jnz	$_071
	mov	byte ptr [r14+0x5], 2
	jmp	$_072

$_071:	jmp	$_179

$_072:	jmp	$_074

$_073:	jmp	$_179

$_074:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	dword ptr [rbx+0x8], 866300620
	jnz	$_075
	mov	byte ptr [r14+0x2B], 0
	jmp	$_080

$_075:	cmp	dword ptr [rbx+0x8], 1251852759
	jnz	$_076
	mov	byte ptr [r14+0x2B], 1
	jmp	$_080

$_076:	cmp	dword ptr [rbx+0x8], 1297622342
	jnz	$_077
	mov	byte ptr [r14+0x2B], 2
	jmp	$_080

$_077:	cmp	dword ptr [rbx+0x8], -730084752
	jnz	$_078
	mov	byte ptr [r14+0x2B], 4
	jmp	$_080

$_078:	cmp	dword ptr [rbx+0x8], -39317719
	jnz	$_079
	mov	byte ptr [r14+0x2B], 8
	jmp	$_080

$_079:	jmp	$_179

$_080:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	lea	r9, [r14+0xA]
	mov	r8d, 32
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	$_003
	cmp	eax, -1
	je	$_182
	jmp	LC0018

	lea	r9, [r14+0x1B]
	mov	r8d, 32
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	$_003
	cmp	eax, -1
	je	$_182
	jmp	LC0018

	mov	dword ptr [rbp-0xAC], 0
	lea	rdi, [r14+0x2C]
$_081:	cmp	dword ptr [rbp-0xAC], 4
	jge	$_091
	mov	ecx, dword ptr [rbp+0x28]
	mov	rdx, rbx
$_082:	cmp	byte ptr [rdx], 0
	jz	$_083
	cmp	byte ptr [rdx], 44
	jz	$_083
	cmp	byte ptr [rdx], 58
	jz	$_083
	cmp	byte ptr [rdx], 13
	jz	$_083
	inc	ecx
	add	rdx, 32
	jmp	$_082

$_083:	mov	byte ptr [rsp+0x20], 0
	lea	r9, [rbp-0x68]
	mov	r8d, ecx
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	EvalOperand@PLT
	cmp	eax, -1
	je	$_182
	imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	dword ptr [rbp-0x2C], -2
	jnz	$_084
	jmp	$_088

$_084:	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_087
	cmp	dword ptr [rbp-0x68], 65535
	jle	$_085
	call	EmitConstError@PLT
	jmp	$_182

$_085:	cmp	byte ptr [r14+0xB], 1
	jnz	$_086
	mov	eax, dword ptr [rbp-0x68]
	mov	ecx, dword ptr [rbp-0xAC]
	mov	word ptr [rdi+rcx*2], ax
$_086:	jmp	$_088

$_087:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_088:	cmp	byte ptr [rbx], 58
	jnz	$_089
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	jmp	$_090

$_089:	cmp	byte ptr [rbx], 13
	jnz	$_090
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	inc	dword ptr [rbp-0xAC]
$_090:	inc	dword ptr [rbp-0xAC]
	jmp	$_081

$_091:	cmp	byte ptr [r14+0xB], 1
	jnz	$_096
	cmp	word ptr [r14+0x2C], 30
	jnc	$_092
	mov	word ptr [r14+0x2C], 30
$_092:	mov	ecx, 16
$_093:	cmp	cx, word ptr [r14+0x2E]
	jnc	$_094
	shl	ecx, 1
	jmp	$_093

$_094:	cmp	cx, word ptr [r14+0x2E]
	jz	$_095
	mov	edx, ecx
	mov	ecx, 2189
	call	asmerr@PLT
$_095:	mov	ax, word ptr [r14+0x30]
	cmp	word ptr [r14+0x32], ax
	jnc	$_096
	mov	word ptr [r14+0x32], ax
$_096:	jmp	LC0018

	cmp	dword ptr [rbx+0x8], -859359292
	jnz	$_097
	or	byte ptr [r14+0x25], 0x01
	jmp	$_100

$_097:	cmp	dword ptr [rbx+0x4], 678
	jnz	$_098
	mov	byte ptr [r14+0x25], 3
	jmp	$_100

$_098:	cmp	dword ptr [rbx+0x8], -136074191
	jnz	$_099
	mov	byte ptr [r14+0x25], 0
	jmp	$_100

$_099:	jmp	$_179

$_100:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	mov	byte ptr [rsp+0x20], 0
	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
	je	$_182
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_103
	cmp	dword ptr [rbp-0x68], 255
	jle	$_101
	call	EmitConstError@PLT
	jmp	$_182

$_101:	cmp	dword ptr [Options+0x8C+rip], 3
	jnz	$_102
	mov	eax, dword ptr [rbp-0x68]
	mov	byte ptr [r14+0x2C], al
$_102:	jmp	$_104

$_103:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_104:	jmp	LC0018

	cmp	byte ptr [rbx], 9
	jne	$_179
	cmp	byte ptr [rbx+0x1], 60
	jne	$_179
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 3
	jne	$_179
	cmp	byte ptr [rbx+0x1], 48
	jne	$_179
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
	cmp	byte ptr [rbx], 8
	jne	$_179
	mov	rcx, rsi
	call	tstrlen@PLT
	mov	edx, eax
	mov	rcx, rsi
	call	FindResWord@PLT
	mov	esi, eax
	test	esi, esi
	jnz	$_105
	mov	ecx, 2086
	call	asmerr@PLT
	jmp	$_182

$_105:	mov	rcx, qword ptr [rbx+0x10]
	call	tstrlen@PLT
	movzx	r8d, al
	mov	rdx, qword ptr [rbx+0x10]
	mov	ecx, esi
	call	RenameKeyword@PLT
	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	byte ptr [r14+0x5], 2
	jz	$_109
	jmp	$_107

$_106:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_107:	cmp	byte ptr [rbx], 0
	jz	$_108
	cmp	byte ptr [rbx], 44
	jnz	$_106
$_108:	jmp	LC0018

$_109:	cmp	byte ptr [rbx], 10
	jnz	$_112
	mov	byte ptr [rsp+0x20], 0
	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
	je	$_182
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_111
	test	dword ptr [rbp-0x68], 0xFFFFFFF8
	jz	$_110
	call	EmitConstError@PLT
	jmp	$_182

$_110:	mov	eax, dword ptr [rbp-0x68]
	mov	byte ptr [r14+0x2D], al
$_111:	jmp	$_127

$_112:	jmp	$_126

$_113:	cmp	byte ptr [rbx], 58
	je	$_125
	cmp	byte ptr [rbx], 44
	je	$_125
	mov	rsi, qword ptr [rbx+0x10]
	mov	edi, dword ptr [rbx+0x4]
	cmp	edi, 167
	jnz	$_114
	mov	ecx, 167
	call	$_001
	or	byte ptr [r14+0x2D], 0x02
	jmp	$_125

$_114:	cmp	edi, 168
	jnz	$_115
	mov	ecx, 168
	call	$_001
	or	byte ptr [r14+0x25], 0x01
	or	byte ptr [r14+0x2D], 0x03
	jmp	$_125

$_115:	cmp	edi, 611
	jnz	$_117
	cmp	byte ptr [r14+0x2D], 0
	jnz	$_116
	or	byte ptr [r14+0x2D], 0x02
$_116:	or	byte ptr [r14+0x2D], 0x04
	jmp	$_125

$_117:	cmp	dword ptr [rbx+0x8], 392308715
	jnz	$_118
	and	byte ptr [r14+0x2D], 0xFB
	jmp	$_125

$_118:	cmp	dword ptr [rbx+0x8], 669616846
	jnz	$_119
	or	byte ptr [r14+0x2D], 0x01
	jmp	$_125

$_119:	cmp	dword ptr [rbx+0x8], -1628696549
	jnz	$_120
	and	byte ptr [r14+0x2D], 0xFE
	jmp	$_125

$_120:	cmp	dword ptr [rbx+0x8], -859359292
	jnz	$_121
	or	byte ptr [r14+0x2D], 0x02
	jmp	$_125

$_121:	cmp	dword ptr [rbx+0x8], -136074191
	jnz	$_122
	and	byte ptr [r14+0x2D], 0xFD
	jmp	$_125

$_122:	cmp	edi, 342
	jnz	$_123
	mov	byte ptr [r14+0x25], 3
	jmp	$_125

$_123:	cmp	dword ptr [rbx+0x8], 1018154715
	jnz	$_124
	mov	byte ptr [r14+0x25], 0
	jmp	$_125

$_124:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_125:	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_126:	cmp	byte ptr [rbx], 0
	jne	$_113
$_127:	jmp	LC0018

	cmp	byte ptr [rbx], 8
	jnz	$_129
	cmp	dword ptr [rbx+0x8], 748895195
	jnz	$_128
	mov	qword ptr [r14+0x1B0], 0
$_128:	jmp	$_136

$_129:	cmp	byte ptr [rbx], 9
	jne	$_136
	cmp	byte ptr [rbx+0x1], 60
	jne	$_136
	cmp	dword ptr [Parse_Pass+rip], 0
	jne	$_136
	cmp	byte ptr [rsi], 0
	jnz	$_130
	xor	esi, esi
	jmp	$_135

$_130:	lea	rdi, [r14+0x298]
$_131:	cmp	qword ptr [rdi], 0
	jz	$_133
	mov	rcx, qword ptr [rdi]
	mov	rdx, rsi
	lea	rcx, [rcx+0xC]
	call	tstricmp@PLT
	test	eax, eax
	jnz	$_132
	mov	rsi, qword ptr [rdi]
	jmp	$_135

$_132:	mov	rdi, qword ptr [rdi]
	jmp	$_131

$_133:	mov	rcx, rsi
	call	tstrlen@PLT
	add	rax, 16
	mov	ecx, eax
	call	LclAlloc@PLT
	mov	qword ptr [rdi], rax
	mov	rdi, rax
	mov	qword ptr [rdi], 0
	mov	dword ptr [rdi+0x8], 0
	mov	rdx, rsi
	lea	rcx, [rdi+0xC]
	call	tstrcpy@PLT
	lea	rax, [DS0035+rip]
	cmp	byte ptr [r14+0x5], 2
	jz	$_134
	inc	rax
$_134:	mov	qword ptr [r14+0x2A0], rax
	mov	rsi, rdi
$_135:	mov	qword ptr [r14+0x1B0], rsi
$_136:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	mov	byte ptr [rsp+0x20], 0
	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
	je	$_182
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_137
	mov	eax, dword ptr [rbp-0x68]
	mov	byte ptr [r14+0x23], al
	jmp	$_138

$_137:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_138:	jmp	LC0018

	cmp	byte ptr [rbx], 2
	jne	$_179
	mov	eax, dword ptr [rbx+0x4]
	add	eax, eax
	test	dword ptr [r12+rax*8+0x4], 0x80
	jnz	$_139
	mov	ecx, 2031
	call	asmerr@PLT
	jmp	$_182

$_139:	mov	ecx, dword ptr [rbx+0x4]
	call	$_001
	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	dword ptr [rbx+0x8], 1651971902
	jnz	$_140
	or	byte ptr [r14+0x1], 0x10
	jmp	$_142

$_140:	cmp	dword ptr [rbx+0x8], 930712164
	jnz	$_141
	and	byte ptr [r14+0x1], 0xEF
	jmp	$_142

$_141:	jmp	$_179

$_142:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	dword ptr [rbx+0x8], 84696444
	jnz	$_143
	and	byte ptr [r14+0x1], 0xBF
	jmp	$_149

$_143:	cmp	dword ptr [rbx+0x8], -1063251835
	jnz	$_144
	or	byte ptr [r14+0x1], 0x40
	jmp	$_149

$_144:	cmp	dword ptr [rbx+0x8], 2048817515
	jnz	$_145
	and	byte ptr [r14+0x1], 0x7F
	jmp	$_149

$_145:	cmp	dword ptr [rbx+0x8], 83634664
	jnz	$_146
	or	byte ptr [r14+0x1], 0x80
	jmp	$_149

$_146:	cmp	dword ptr [rbx+0x8], -1147976706
	jnz	$_147
	or	byte ptr [r14+0x2], 0x01
	jmp	$_149

$_147:	cmp	dword ptr [rbx+0x8], 320073461
	jnz	$_148
	and	byte ptr [r14+0x2], 0xFE
	jmp	$_149

$_148:	jmp	$_179

$_149:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	lea	r9, [r14+0x27]
	mov	r8d, 16
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	$_003
	cmp	eax, -1
	je	$_182
	jmp	LC0018

	lea	r9, [r14+0x28]
	mov	r8d, 16
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	$_003
	cmp	eax, -1
	je	$_182
	jmp	LC0018

	cmp	dword ptr [rbx+0x8], 1651971902
	jnz	$_150
	or	byte ptr [r14+0x1], 0x20
	jmp	$_152

$_150:	cmp	dword ptr [rbx+0x8], 930712164
	jnz	$_151
	and	byte ptr [r14+0x1], 0xDF
	jmp	$_152

$_151:	jmp	$_179

$_152:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	cmp	dword ptr [rbx+0x8], 1651971902
	jnz	$_153
	mov	ecx, 1
	call	SetMasmKeywords@PLT
	jmp	$_155

$_153:	cmp	dword ptr [rbx+0x8], 930712164
	jnz	$_154
	xor	ecx, ecx
	call	SetMasmKeywords@PLT
	jmp	$_155

$_154:	jmp	$_179

$_155:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	mov	byte ptr [rsp+0x20], 0
	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
	je	$_182
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_157
	cmp	dword ptr [rbp-0x68], 65535
	jle	$_156
	call	EmitConstError@PLT
	jmp	$_182

$_156:	mov	eax, dword ptr [rbp-0x68]
	mov	dword ptr [r14+0x1C0], eax
	jmp	$_158

$_157:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_158:	jmp	LC0018

	cmp	dword ptr [rbx+0x8], 84696442
	jnz	$_159
	mov	byte ptr [r14+0x29], 101
	jmp	$_163

$_159:	cmp	dword ptr [rbx+0x8], 84696441
	jnz	$_160
	mov	byte ptr [r14+0x29], 0
	jmp	$_163

$_160:	cmp	dword ptr [rbx+0x8], 84696440
	jnz	$_161
	mov	byte ptr [r14+0x29], 103
	jmp	$_163

$_161:	cmp	dword ptr [rbx+0x8], 84696423
	jnz	$_162
	mov	byte ptr [r14+0x29], 120
	jmp	$_163

$_162:	jmp	$_179

$_163:	inc	dword ptr [rbp+0x28]
	jmp	LC0018

	mov	byte ptr [rsp+0x20], 0
	lea	r9, [rbp-0x68]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [rbp+0x28]
	call	EvalOperand@PLT
	cmp	rax, -1
	je	$_182
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_165
	cmp	dword ptr [rbp-0x68], 4
	jz	$_164
	cmp	dword ptr [rbp-0x68], 8
	jz	$_164
	call	EmitConstError@PLT
	jmp	$_182

$_164:	mov	eax, dword ptr [rbp-0x68]
	mov	byte ptr [r14+0x2A], al
	jmp	$_166

$_165:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_166:	jmp	LC0018

	mov	byte ptr [rsp+0x20], 0
	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
	je	$_182
	cmp	dword ptr [rbp-0x2C], 0
	jnz	$_168
	cmp	dword ptr [rbp-0x68], 255
	jle	$_167
	call	EmitConstError@PLT
	jmp	$_182

$_167:	mov	eax, dword ptr [rbp-0x68]
	mov	dword ptr [r14+0x1C8], eax
	jmp	$_169

$_168:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_169:	jmp	LC0018

	mov	byte ptr [rsp+0x20], 0
	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
	je	$_182
	cmp	dword ptr [rbp-0x2C], 0
	jne	$_175
	cmp	dword ptr [rbp-0x68], 65535
	jle	$_170
	call	EmitConstError@PLT
	jmp	$_182

$_170:	mov	rax, qword ptr [r14+0x1D8]
	mov	qword ptr [rbp-0xA8], rax
	mov	qword ptr [rbp-0x98], rax
	mov	rax, qword ptr [r14+0x1D0]
	mov	qword ptr [rbp-0x88], rax
	mov	rax, qword ptr [StringBuffer+rip]
	mov	qword ptr [rbp-0x80], rax
	mov	qword ptr [rbp-0xA0], rax
	mov	dword ptr [rbp-0x90], 0
	mov	esi, dword ptr [r14+0x234]
	jmp	$_174

$_171:	lea	rcx, [rbp-0xA8]
	call	InputExtend@PLT
	test	eax, eax
	jnz	$_172
	mov	ecx, 1009
	call	asmerr@PLT
	jmp	$_182

$_172:	cmp	esi, dword ptr [r14+0x234]
	jnz	$_173
	mov	ecx, 1901
	call	asmerr@PLT
	jmp	$_182

$_173:	mov	esi, dword ptr [r14+0x234]
$_174:	cmp	esi, dword ptr [rbp-0x68]
	jl	$_171
	jmp	$_176

$_175:	mov	ecx, 2026
	call	asmerr@PLT
	jmp	$_182

$_176:	jmp	LC0018

$_177:	cmp	edi, 50
	ja	LC0018
	lea	r11, [LC00FF+rip]
	movzx	r10, byte ptr [r11+rdi+0x66]
	movzx	r10, word ptr [r11+r10*2]
	lea	r11, [LC0018+rip]
	sub	r11, r10
	jmp	r11

LC0018: imul	ebx, dword ptr [rbp+0x28], 32
	add	rbx, qword ptr [rbp+0x30]
	cmp	byte ptr [rbx], 44
	jnz	$_179
	inc	dword ptr [rbp+0x28]
	add	rbx, 32
$_178:	cmp	byte ptr [rbx], 0
	jne	$_012
$_179:	cmp	dword ptr [rbp-0x6C], 51
	jge	$_180
	cmp	byte ptr [rbx], 0
	jz	$_181
$_180:	mov	rdx, qword ptr [rbx+0x18]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_182

$_181:	xor	eax, eax
$_182:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret


.SECTION .data
	.ALIGN	16

optiontab:
	.quad  DS0000
	.quad  DS0001
	.quad  DS0002
	.quad  DS0003
	.quad  DS0004
	.quad  DS0005
	.quad  DS0006
	.quad  DS0007
	.quad  DS0008
	.quad  DS0009
	.quad  DS000A
	.quad  DS000B
	.quad  DS000C
	.quad  DS000D
	.quad  DS000E
	.quad  DS000F
	.quad  DS0010
	.quad  DS0011
	.quad  DS0012
	.quad  DS0013
	.quad  DS0014
	.quad  DS0015
	.quad  DS0016
	.quad  DS0017
	.quad  DS0018
	.quad  DS0019
	.quad  DS001A
	.quad  DS001B
	.quad  DS001C
	.quad  DS001D
	.quad  DS001E
	.quad  DS001F
	.quad  DS0020
	.quad  DS0021
	.quad  DS0022
	.quad  DS0023
	.quad  DS0024
	.quad  DS0025
	.quad  DS0026
	.quad  DS0027
	.quad  DS0028
	.quad  DS0029
	.quad  DS002A
	.quad  DS002B
	.quad  DS002C
	.quad  DS002D
	.quad  DS002E
	.quad  DS002F
	.quad  DS0030
	.quad  DS0031
	.quad  DS0032

DS0033:
	.byte  0x40, 0x53, 0x74, 0x61, 0x63, 0x6B, 0x42, 0x61
	.byte  0x73, 0x65, 0x00

DS0034:
	.byte  0x40, 0x50, 0x72, 0x6F, 0x63, 0x53, 0x74, 0x61
	.byte  0x74, 0x75, 0x73, 0x00

DS0035:
	.byte  0x5F, 0x5F, 0x69, 0x6D, 0x70, 0x5F, 0x00

LC00FF:
	.byte  0xA1, 0x0D, 0x98, 0x0D, 0x8F, 0x0D, 0x80, 0x0D
	.byte  0x74, 0x0D, 0x6A, 0x0D, 0x60, 0x0D, 0x56, 0x0D
	.byte  0x4C, 0x0D, 0x42, 0x0D, 0x38, 0x0D, 0x2E, 0x0D
	.byte  0x24, 0x0D, 0x1F, 0x0D, 0x1A, 0x0D, 0x15, 0x0D
	.byte  0x10, 0x0D, 0x0B, 0x0D, 0x06, 0x0D, 0xFC, 0x0C
	.byte  0xA8, 0x0C, 0x44, 0x0C, 0xDB, 0x0B, 0x7C, 0x0B
	.byte  0x1B, 0x0B, 0x49, 0x0A, 0x20, 0x0A, 0xE3, 0x09
	.byte  0x55, 0x09, 0xF8, 0x08, 0xD3, 0x08, 0xAE, 0x08
	.byte  0x87, 0x07, 0x4A, 0x07, 0xE8, 0x06, 0x64, 0x06
	.byte  0xEF, 0x04, 0x21, 0x04, 0xDB, 0x03, 0xA3, 0x03
	.byte  0x76, 0x03, 0x09, 0x03, 0xE4, 0x02, 0xBF, 0x02
	.byte  0x92, 0x02, 0x5E, 0x02, 0x02, 0x02, 0xB5, 0x01
	.byte  0x58, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x01
	.byte  0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09
	.byte  0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11
	.byte  0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19
	.byte  0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21
	.byte  0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29
	.byte  0x2A, 0x2B, 0x2D, 0x2E, 0x30, 0x31, 0x2F, 0x32
	.byte  0x2C, 0x00


.SECTION .rodata
	.ALIGN	16

DS0000:
	.byte  0x44, 0x4F, 0x54, 0x4E, 0x41, 0x4D, 0x45, 0x00

DS0001:
	.byte  0x4E, 0x4F, 0x44, 0x4F, 0x54, 0x4E, 0x41, 0x4D
	.byte  0x45, 0x00

DS0002:
	.byte  0x4D, 0x35, 0x31, 0x30, 0x00

DS0003:
	.byte  0x4E, 0x4F, 0x4D, 0x35, 0x31, 0x30, 0x00

DS0004:
	.byte  0x53, 0x43, 0x4F, 0x50, 0x45, 0x44, 0x00

DS0005:
	.byte  0x4E, 0x4F, 0x53, 0x43, 0x4F, 0x50, 0x45, 0x44
	.byte  0x00

DS0006:
	.byte  0x4F, 0x4C, 0x44, 0x53, 0x54, 0x52, 0x55, 0x43
	.byte  0x54, 0x53, 0x00

DS0007:
	.byte  0x4E, 0x4F, 0x4F, 0x4C, 0x44, 0x53, 0x54, 0x52
	.byte  0x55, 0x43, 0x54, 0x53, 0x00

DS0008:
	.byte  0x45, 0x4D, 0x55, 0x4C, 0x41, 0x54, 0x4F, 0x52
	.byte  0x00

DS0009:
	.byte  0x4E, 0x4F, 0x45, 0x4D, 0x55, 0x4C, 0x41, 0x54
	.byte  0x4F, 0x52, 0x00

DS000A:
	.byte  0x4C, 0x4A, 0x4D, 0x50, 0x00

DS000B:
	.byte  0x4E, 0x4F, 0x4C, 0x4A, 0x4D, 0x50, 0x00

DS000C:
	.byte  0x52, 0x45, 0x41, 0x44, 0x4F, 0x4E, 0x4C, 0x59
	.byte  0x00

DS000D:
	.byte  0x4E, 0x4F, 0x52, 0x45, 0x41, 0x44, 0x4F, 0x4E
	.byte  0x4C, 0x59, 0x00

DS000E:
	.byte  0x4F, 0x4C, 0x44, 0x4D, 0x41, 0x43, 0x52, 0x4F
	.byte  0x53, 0x00

DS000F:
	.byte  0x4E, 0x4F, 0x4F, 0x4C, 0x44, 0x4D, 0x41, 0x43
	.byte  0x52, 0x4F, 0x53, 0x00

DS0010:
	.byte  0x45, 0x58, 0x50, 0x52, 0x31, 0x36, 0x00

DS0011:
	.byte  0x45, 0x58, 0x50, 0x52, 0x33, 0x32, 0x00

DS0012:
	.byte  0x4E, 0x4F, 0x53, 0x49, 0x47, 0x4E, 0x45, 0x58
	.byte  0x54, 0x45, 0x4E, 0x44, 0x00

DS0013:
	.byte  0x43, 0x41, 0x53, 0x45, 0x4D, 0x41, 0x50, 0x00

DS0014:
	.byte  0x50, 0x52, 0x4F, 0x43, 0x00

DS0015:
	.byte  0x50, 0x52, 0x4F, 0x4C, 0x4F, 0x47, 0x55, 0x45
	.byte  0x00

DS0016:
	.byte  0x45, 0x50, 0x49, 0x4C, 0x4F, 0x47, 0x55, 0x45
	.byte  0x00

DS0017:
	.byte  0x4C, 0x41, 0x4E, 0x47, 0x55, 0x41, 0x47, 0x45
	.byte  0x00

DS0018:
	.byte  0x4E, 0x4F, 0x4B, 0x45, 0x59, 0x57, 0x4F, 0x52
	.byte  0x44, 0x00

DS0019:
	.byte  0x53, 0x45, 0x54, 0x49, 0x46, 0x32, 0x00

DS001A:
	.byte  0x4F, 0x46, 0x46, 0x53, 0x45, 0x54, 0x00

DS001B:
	.byte  0x53, 0x45, 0x47, 0x4D, 0x45, 0x4E, 0x54, 0x00

DS001C:
	.byte  0x41, 0x56, 0x58, 0x45, 0x4E, 0x43, 0x4F, 0x44
	.byte  0x49, 0x4E, 0x47, 0x00

DS001D:
	.byte  0x46, 0x49, 0x45, 0x4C, 0x44, 0x41, 0x4C, 0x49
	.byte  0x47, 0x4E, 0x00

DS001E:
	.byte  0x50, 0x52, 0x4F, 0x43, 0x41, 0x4C, 0x49, 0x47
	.byte  0x4E, 0x00

DS001F:
	.byte  0x4D, 0x5A, 0x00

DS0020:
	.byte  0x46, 0x52, 0x41, 0x4D, 0x45, 0x00

DS0021:
	.byte  0x45, 0x4C, 0x46, 0x00

DS0022:
	.byte  0x52, 0x45, 0x4E, 0x41, 0x4D, 0x45, 0x4B, 0x45
	.byte  0x59, 0x57, 0x4F, 0x52, 0x44, 0x00

DS0023:
	.byte  0x57, 0x49, 0x4E, 0x36, 0x34, 0x00

DS0024:
	.byte  0x44, 0x4C, 0x4C, 0x49, 0x4D, 0x50, 0x4F, 0x52
	.byte  0x54, 0x00

DS0025:
	.byte  0x43, 0x4F, 0x44, 0x45, 0x56, 0x49, 0x45, 0x57
	.byte  0x00

DS0026:
	.byte  0x53, 0x54, 0x41, 0x43, 0x4B, 0x42, 0x41, 0x53
	.byte  0x45, 0x00

DS0027:
	.byte  0x43, 0x53, 0x54, 0x41, 0x43, 0x4B, 0x00

DS0028:
	.byte  0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x00

DS0029:
	.byte  0x4C, 0x4F, 0x4F, 0x50, 0x41, 0x4C, 0x49, 0x47
	.byte  0x4E, 0x00

DS002A:
	.byte  0x43, 0x41, 0x53, 0x45, 0x41, 0x4C, 0x49, 0x47
	.byte  0x4E, 0x00

DS002B:
	.byte  0x57, 0x53, 0x54, 0x52, 0x49, 0x4E, 0x47, 0x00

DS002C:
	.byte  0x43, 0x4F, 0x44, 0x45, 0x50, 0x41, 0x47, 0x45
	.byte  0x00

DS002D:
	.byte  0x46, 0x4C, 0x4F, 0x41, 0x54, 0x46, 0x4F, 0x52
	.byte  0x4D, 0x41, 0x54, 0x00

DS002E:
	.byte  0x46, 0x4C, 0x4F, 0x41, 0x54, 0x44, 0x49, 0x47
	.byte  0x49, 0x54, 0x53, 0x00

DS002F:
	.byte  0x4C, 0x49, 0x4E, 0x45, 0x53, 0x49, 0x5A, 0x45
	.byte  0x00

DS0030:
	.byte  0x46, 0x4C, 0x4F, 0x41, 0x54, 0x00

DS0031:
	.byte  0x44, 0x4F, 0x54, 0x4E, 0x41, 0x4D, 0x45, 0x58
	.byte  0x00

DS0032:
	.byte  0x4D, 0x41, 0x53, 0x4D, 0x00


.att_syntax prefix
