
.intel_syntax noprefix

.global RetLineQueue
.global mem2mem
.global imm2xmm
.global CRecordField

.extern RunLineQueue
.extern AddLineQueueX
.extern Tokenize
.extern CreateFloat
.extern quad_resize
.extern EvalOperand
.extern GetCurrOffset
.extern LstWrite
.extern GetLabelStr
.extern get_register
.extern SizeFromMemtype
.extern tsprintf
.extern asmerr
.extern tstrcpy


.SECTION .text
	.ALIGN	16

$_001:	mov	qword ptr [rsp+0x8], rcx
	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, 136
	lea	rbx, [ofss+rip]
	movzx	eax, byte ptr [r14+0x4]
	movzx	edx, byte ptr [rbx+rax+0xC]
	lea	rax, [rbx+rax*4]
	movzx	esi, byte ptr [rax]
	movzx	edi, byte ptr [rax+0x1]
	movzx	ebx, byte ptr [rax+0x2]
	movzx	ecx, byte ptr [rax+0x3]
	mov	dword ptr [rsp+0x70], esi
	mov	dword ptr [rsp+0x68], edi
	mov	dword ptr [rsp+0x60], edx
	mov	dword ptr [rsp+0x58], ebx
	mov	eax, dword ptr [rbp+0x38]
	mov	dword ptr [rsp+0x50], eax
	mov	dword ptr [rsp+0x48], ecx
	mov	rax, qword ptr [rbp+0x28]
	mov	qword ptr [rsp+0x40], rax
	mov	dword ptr [rsp+0x38], edi
	mov	rax, qword ptr [rbp+0x30]
	mov	qword ptr [rsp+0x30], rax
	mov	dword ptr [rsp+0x28], esi
	mov	dword ptr [rsp+0x20], ebx
	mov	r9d, edx
	mov	r8d, edi
	mov	edx, esi
	lea	rcx, [DS0000+rip]
	call	AddLineQueueX@PLT
	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

$_002:
	mov	qword ptr [rsp+0x8], rcx
	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, 88
	movzx	ecx, byte ptr [r14+0x4]
	lea	rbx, [ofss+rip]
	movzx	esi, byte ptr [rbx+rcx+0xC]
	mov	eax, dword ptr [rbx+rcx*4+0x10]
	mov	dword ptr [rbp-0x4], eax
	mov	edi, 2
	shl	edi, cl
	xor	ebx, ebx
$_003:	cmp	dword ptr [rbp+0x38], edi
	jc	$_004
	mov	dword ptr [rsp+0x40], esi
	mov	dword ptr [rsp+0x38], ebx
	mov	rax, qword ptr [rbp+0x28]
	mov	qword ptr [rsp+0x30], rax
	mov	eax, dword ptr [rbp-0x4]
	mov	dword ptr [rsp+0x28], eax
	mov	dword ptr [rsp+0x20], ebx
	mov	r9, qword ptr [rbp+0x30]
	mov	r8d, dword ptr [rbp-0x4]
	mov	edx, esi
	lea	rcx, [DS0001+rip]
	call	AddLineQueueX@PLT
	sub	dword ptr [rbp+0x38], edi
	add	ebx, edi
	jmp	$_003

$_004:
	mov	esi, dword ptr [rbp+0x38]
	cmp	edi, 8
	jnz	$_005
	cmp	esi, 4
	jc	$_005
	mov	dword ptr [rsp+0x20], ebx
	mov	r9, qword ptr [rbp+0x28]
	mov	r8d, ebx
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [DS0002+rip]
	call	AddLineQueueX@PLT
	sub	esi, 4
	add	ebx, 4
$_005:	test	esi, esi
	jz	$_006
	mov	dword ptr [rsp+0x20], ebx
	mov	r9, qword ptr [rbp+0x28]
	mov	r8d, ebx
	mov	rdx, qword ptr [rbp+0x30]
	lea	rcx, [DS0003+rip]
	call	AddLineQueueX@PLT
	dec	esi
	inc	ebx
	jmp	$_005

$_006:
	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

RetLineQueue:
	sub	rsp, 40
	test	byte ptr [r14], 0x08
	jz	$_007
	call	GetCurrOffset@PLT
	xor	r8d, r8d
	mov	edx, eax
	mov	ecx, 4
	call	LstWrite@PLT
$_007:	call	RunLineQueue@PLT
	xor	eax, eax
	add	rsp, 40
	ret

$_008:
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	rdx, rcx
	mov	rcx, qword ptr [rdx+0x58]
	cmp	byte ptr [rdx+0x44], 192
	jz	$_009
	cmp	byte ptr [rdx+0x44], 193
	jz	$_009
	movzx	ecx, byte ptr [rdx+0x44]
	mov	r8, qword ptr [rdx+0x60]
	movzx	edx, byte ptr [rdx+0x46]
	movzx	ecx, cl
	call	SizeFromMemtype@PLT
	jmp	$_014

$_009:	test	rcx, rcx
	jz	$_012
	cmp	byte ptr [rcx+0x1D], 6
	jnz	$_012
	test	byte ptr [rcx+0x11], 0x40
	jz	$_010
	movzx	eax, byte ptr [rcx+0x5A]
	mov	edx, eax
	shr	eax, 3
	and	edx, 0x07
	setne	dl
	add	eax, edx
	jmp	$_011

$_010:	jmp	$_013

$_011:	jmp	$_014

$_012:	xor	eax, eax
	mov	rcx, qword ptr [rdx+0x60]
	test	rcx, rcx
	jz	$_014
$_013:	mov	eax, dword ptr [rcx+0x60]
	test	byte ptr [rcx+0x10], 0x40
	jz	$_014
	mov	ecx, dword ptr [rcx+0x68]
	xor	edx, edx
	div	ecx
$_014:	leave
	ret

mem2mem:
	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, 136
	mov	byte ptr [rbp-0x41], 0
	mov	byte ptr [rbp-0x42], 0
	mov	ebx, ecx
	mov	edi, edx
	test	ebx, 0x607F00
	jz	$_015
	test	edi, 0x607F00
	jz	$_015
	test	byte ptr [r14+0x1], 0x08
	jz	$_016
$_015:	mov	ecx, 2070
	call	asmerr@PLT
	jmp	$_073

$_016:	and	ebx, 0xF00
	and	edi, 0xF00
	mov	eax, dword ptr [r14+0x5C]
	mov	dword ptr [rbp-0x8], eax
	add	eax, eax
	mov	eax, dword ptr [r12+rax*8+0x4]
	and	eax, 0x7F
	mov	dword ptr [rbp-0x10], eax
	mov	rcx, qword ptr [rbp+0x38]
	add	rcx, 32
	cmp	byte ptr [rcx+0x40], 5
	jnz	$_017
	cmp	dword ptr [rcx+0x44], 335
	jnz	$_017
	add	rcx, 64
$_017:	mov	rax, qword ptr [rcx+0x18]
	mov	qword ptr [rbp-0x20], rax
	mov	rdx, rcx
$_018:	cmp	byte ptr [rdx], 0
	jz	$_021
	cmp	byte ptr [rdx], 2
	jnz	$_020
	mov	eax, dword ptr [rdx+0x4]
	cmp	eax, 1
	jz	$_019
	cmp	eax, 9
	jz	$_019
	cmp	eax, 17
	jz	$_019
	cmp	eax, 163
	jnz	$_020
$_019:	mov	ecx, 2070
	call	asmerr@PLT
	jmp	$_073

$_020:	cmp	byte ptr [rdx], 44
	jz	$_021
	add	rdx, 32
	jmp	$_018

$_021:	cmp	byte ptr [rdx], 44
	jz	$_022
	mov	ecx, 2070
	call	asmerr@PLT
	jmp	$_073

$_022:	mov	rax, qword ptr [rdx+0x18]
	mov	qword ptr [rbp-0x28], rax
	add	rdx, 32
	cmp	byte ptr [rdx], 38
	jnz	$_023
	inc	byte ptr [rbp-0x42]
	add	rdx, 32
$_023:	mov	qword ptr [rbp-0x30], rdx
	cmp	byte ptr [rdx+0x20], 5
	jnz	$_024
	cmp	dword ptr [rdx+0x24], 335
	jnz	$_024
	add	rdx, 64
$_024:	mov	rax, qword ptr [rdx+0x18]
	mov	qword ptr [rbp-0x18], rax
	mov	rsi, qword ptr [rbp+0x40]
	mov	rcx, rsi
	call	$_008
	mov	dword ptr [rbp-0xC], eax
	cmp	byte ptr [rbp-0x42], 0
	jnz	$_026
	lea	rcx, [rsi+0x68]
	call	$_008
	test	rax, rax
	jz	$_026
	cmp	eax, dword ptr [rbp-0xC]
	jge	$_025
	mov	dword ptr [rbp-0xC], eax
	jmp	$_026

$_025:	cmp	dword ptr [rbp-0xC], 0
	jnz	$_026
	cmp	byte ptr [rsi+0x44], 192
	jnz	$_026
	mov	dword ptr [rbp-0xC], eax
$_026:	mov	rdx, qword ptr [rbp+0x38]
	mov	eax, dword ptr [rdx+0x4]
	mov	dword ptr [rbp-0x4], eax
	cmp	eax, 779
	jz	$_029
	test	byte ptr [rsi+0x44], 0x20
	jnz	$_027
	test	byte ptr [rsi+0xAC], 0x20
	jz	$_029
$_027:	mov	byte ptr [rbp-0x41], 1
	cmp	dword ptr [rbp-0xC], 4
	jz	$_028
	cmp	dword ptr [rbp-0xC], 8
	jz	$_028
	mov	ecx, 2070
	call	asmerr@PLT
	jmp	$_073

$_028:	mov	dword ptr [rbp-0x8], 40
$_029:	mov	edx, edi
	mov	ecx, dword ptr [rbp-0x8]
	mov	esi, ecx
	mov	edi, ecx
	jmp	$_034

$_030:	mov	edi, 1
	jmp	$_035

$_031:	mov	edi, 9
	jmp	$_035

$_032:	mov	edi, 9
	cmp	dword ptr [rbp-0x10], 2
	jle	$_033
	mov	edi, 17
$_033:	jmp	$_035

$_034:	cmp	ebx, 3840
	jz	$_030
	cmp	ebx, 256
	jz	$_030
	cmp	ebx, 512
	jz	$_031
	cmp	ebx, 1024
	jz	$_032
$_035:	jmp	$_040

$_036:	mov	esi, 1
	jmp	$_041

$_037:	mov	esi, 9
	jmp	$_041

$_038:	mov	esi, 9
	cmp	dword ptr [rbp-0x10], 2
	jle	$_039
	mov	esi, 17
$_039:	jmp	$_041

$_040:	cmp	edx, 3840
	jz	$_036
	cmp	edx, 256
	jz	$_036
	cmp	edx, 512
	jz	$_037
	cmp	edx, 1024
	jz	$_038
$_041:	cmp	esi, edi
	jbe	$_042
	cmp	ebx, 3840
	jnz	$_042
	mov	edi, esi
$_042:	cmp	edi, esi
	jbe	$_043
	cmp	edx, 3840
	jnz	$_043
	mov	esi, edi
$_043:	mov	rax, qword ptr [rbp-0x28]
	mov	bl, byte ptr [rax]
	mov	byte ptr [rax], 0
	inc	rax
	mov	rdx, qword ptr [rbp-0x30]
	cmp	byte ptr [rbp-0x42], 0
	jz	$_045
	mov	edi, ecx
	mov	r8, qword ptr [rdx+0x18]
	mov	edx, ecx
	lea	rcx, [DS0004+rip]
	call	AddLineQueueX@PLT
	cmp	dword ptr [rbp-0xC], 4
	jnz	$_044
	cmp	edi, 163
	jnz	$_044
	mov	edi, 17
$_044:	jmp	$_069

$_045:	cmp	edi, esi
	jbe	$_046
	cmp	esi, 17
	jnc	$_046
	mov	rdx, rax
	lea	rcx, [DS0005+rip]
	call	AddLineQueueX@PLT
	jmp	$_069

$_046:	mov	ecx, 8
	jmp	$_050

$_047:	mov	ecx, 1
	jmp	$_051

$_048:	mov	ecx, 2
	jmp	$_051

$_049:	mov	ecx, 4
	jmp	$_051

$_050:	cmp	edi, 1
	jz	$_047
	cmp	edi, 9
	jz	$_048
	cmp	edi, 17
	jz	$_049
$_051:	cmp	dword ptr [rbp-0xC], ecx
	jg	$_055
	mov	ecx, 779
	cmp	byte ptr [rbp-0x41], 0
	jz	$_054
	mov	ecx, 1143
	mov	edx, 1102
	cmp	dword ptr [rbp-0xC], 8
	jnz	$_052
	mov	ecx, 709
	mov	edx, 1101
$_052:	cmp	dword ptr [rbp-0x4], 685
	jnz	$_053
	mov	dword ptr [rbp-0x4], edx
$_053:	mov	rax, qword ptr [rbp-0x20]
	mov	esi, 40
	mov	edi, 40
$_054:	mov	r9, rax
	mov	r8d, esi
	mov	edx, ecx
	lea	rcx, [DS0006+rip]
	call	AddLineQueueX@PLT
	jmp	$_069

$_055:	cmp	dword ptr [rbp-0x4], 779
	jnz	$_061
	mov	rsi, qword ptr [rbp-0x18]
	mov	edi, dword ptr [rbp-0xC]
	cmp	dword ptr [rbp-0x10], 8
	jnz	$_058
	cmp	edi, 32
	jbe	$_056
	mov	r8d, edi
	mov	rdx, rsi
	mov	rcx, qword ptr [rbp-0x20]
	call	$_001
	jmp	$_057

$_056:	mov	r8d, edi
	mov	rdx, rsi
	mov	rcx, qword ptr [rbp-0x20]
	call	$_002
$_057:	jmp	$_060

$_058:	cmp	edi, 16
	jbe	$_059
	mov	r8d, edi
	mov	rdx, rsi
	mov	rcx, qword ptr [rbp-0x20]
	call	$_001
	jmp	$_060

$_059:	mov	r8d, edi
	mov	rdx, rsi
	mov	rcx, qword ptr [rbp-0x20]
	call	$_002
$_060:	xor	ebx, ebx
	mov	rax, qword ptr [rbp-0x28]
	mov	byte ptr [rax], 44
	jmp	$_069

$_061:	cmp	dword ptr [rbp-0xC], 8
	jne	$_068
	cmp	ecx, 4
	jne	$_068
	mov	rbx, qword ptr [rbp-0x18]
	mov	edi, dword ptr [rbp-0x4]
	mov	esi, edi
	jmp	$_066

$_062:	lea	rdx, [rbp-0x40]
	inc	dword ptr [r14+0x36C]
	mov	eax, dword ptr [r14+0x36C]
	mov	ecx, eax
	call	GetLabelStr@PLT
	lea	rax, [rbp-0x40]
	mov	qword ptr [rsp+0x30], rax
	mov	rax, qword ptr [rbp-0x20]
	mov	qword ptr [rsp+0x28], rax
	mov	qword ptr [rsp+0x20], rbx
	lea	r9, [rbp-0x40]
	mov	r8, qword ptr [rbp-0x20]
	mov	rdx, rbx
	lea	rcx, [DS0007+rip]
	call	AddLineQueueX@PLT
	jmp	$_067

$_063:	mov	esi, 680
$_064:	cmp	edi, 683
	jnz	$_065
	mov	esi, 681
$_065:	mov	qword ptr [rsp+0x30], rbx
	mov	rax, qword ptr [rbp-0x20]
	mov	qword ptr [rsp+0x28], rax
	mov	dword ptr [rsp+0x20], esi
	mov	r9, rbx
	mov	r8, qword ptr [rbp-0x20]
	mov	edx, edi
	lea	rcx, [DS0008+rip]
	call	AddLineQueueX@PLT
	jmp	$_067

$_066:	cmp	edi, 685
	je	$_062
	cmp	edi, 678
	jz	$_063
	cmp	edi, 683
	jz	$_064
	jmp	$_065

$_067:	mov	eax, 44
	mov	byte ptr [rbx-0x1], al
	xor	ebx, ebx
	jmp	$_069

$_068:	mov	ecx, 2070
	call	asmerr@PLT
	jmp	$_073

$_069:	test	rbx, rbx
	jz	$_072
	cmp	byte ptr [rbp-0x41], 0
	jz	$_070
	mov	rcx, qword ptr [rbp-0x28]
	inc	rcx
	mov	r9, rcx
	mov	r8d, edi
	mov	edx, dword ptr [rbp-0x4]
	lea	rcx, [DS0006+rip]
	call	AddLineQueueX@PLT
	jmp	$_071

$_070:	mov	r9d, edi
	mov	r8, qword ptr [rbp-0x20]
	mov	edx, dword ptr [rbp-0x4]
	lea	rcx, [DS0009+rip]
	call	AddLineQueueX@PLT
$_071:	mov	rax, qword ptr [rbp-0x28]
	mov	byte ptr [rax], bl
$_072:	call	RetLineQueue
$_073:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

$_074:
	mov	qword ptr [rsp+0x8], rcx
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbp
	mov	rbp, rsp
	sub	rsp, 1200
	mov	rdx, qword ptr [rdi+0x18]
	lea	rcx, [rbp-0x478]
	call	tstrcpy@PLT
	mov	rdx, qword ptr [rdi+0x70]
	mov	rcx, qword ptr [r14+0x1D8]
	call	tstrcpy@PLT
	xor	ecx, ecx
$_075:	cmp	byte ptr [rax], 0
	jz	$_077
	cmp	byte ptr [rax], 44
	jnz	$_076
	add	ecx, 1
$_076:	inc	rax
	jmp	$_075

$_077:
	inc	ecx
	mov	dword ptr [rbp-0x8], ecx
	mov	eax, 16
	cdq
	idiv	ecx
	mov	dword ptr [rbp-0xC], eax
	mul	ecx
	cmp	eax, 16
	jz	$_078
	mov	rdx, qword ptr [r14+0x1D8]
	mov	ecx, 2036
	call	asmerr@PLT
	mov	dword ptr [rbp-0x8], 1
	mov	dword ptr [rbp-0xC], 4
$_078:	xor	r9d, r9d
	mov	r8, qword ptr [rbp+0x20]
	xor	edx, edx
	mov	rcx, qword ptr [r14+0x1D8]
	call	Tokenize@PLT
	mov	dword ptr [r14+0x64], eax
	mov	dword ptr [rbp-0x4], 0
	mov	rdi, qword ptr [rbp+0x28]
$_079:	cmp	dword ptr [rbp-0x8], 0
	jz	$_081
	mov	byte ptr [rsp+0x20], 0
	lea	r9, [rbp-0x78]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x20]
	lea	rcx, [rbp-0x4]
	call	EvalOperand@PLT
	cmp	eax, -1
	jz	$_081
	test	byte ptr [rbp-0x34], 0x20
	jz	$_080
	mov	edx, dword ptr [rbp-0xC]
	lea	rcx, [rbp-0x78]
	call	quad_resize@PLT
$_080:	lea	rsi, [rbp-0x78]
	mov	ecx, dword ptr [rbp-0xC]
	rep movsb
	dec	dword ptr [rbp-0x8]
	inc	dword ptr [rbp-0x4]
	jmp	$_079

$_081:
	lea	rdx, [rbp-0x478]
	mov	rcx, qword ptr [r14+0x1D8]
	call	tstrcpy@PLT
	xor	r9d, r9d
	mov	r8, qword ptr [rbp+0x20]
	xor	edx, edx
	mov	rcx, qword ptr [r14+0x1D8]
	call	Tokenize@PLT
	mov	dword ptr [r14+0x64], eax
	mov	eax, 16
	leave
	pop	rdi
	pop	rsi
	ret

imm2xmm:
	mov	qword ptr [rsp+0x8], rcx
	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, 184
	mov	rdi, rcx
	mov	rcx, rdx
	mov	esi, dword ptr [rdi+0x4]
	cmp	dword ptr [rbp+0x38], 16
	jnz	$_082
	cmp	byte ptr [rcx+0x44], 192
	jnz	$_082
	mov	rdx, rcx
	mov	rcx, rdi
	call	$_074
	jmp	$_084

$_082:	cmp	esi, 1143
	jz	$_083
	cmp	esi, 709
	jnz	$_084
$_083:	cmp	byte ptr [rdi+0x20], 2
	jnz	$_084
	mov	rax, qword ptr [rcx]
	or	rax, qword ptr [rcx+0x8]
	test	rax, rax
	jnz	$_084
	mov	esi, 1104
	mov	r9d, dword ptr [rdi+0x24]
	mov	r8d, dword ptr [rdi+0x24]
	mov	edx, esi
	lea	rcx, [DS000A+rip]
	call	AddLineQueueX@PLT
	call	RetLineQueue
	jmp	$_087

$_084:	lea	r8, [rbp-0x10]
	mov	rdx, qword ptr [rbp+0x30]
	mov	ecx, dword ptr [rbp+0x38]
	call	CreateFloat@PLT
	cmp	byte ptr [rdi+0x20], 2
	jnz	$_085
	lea	r9, [rbp-0x10]
	mov	r8d, dword ptr [rdi+0x24]
	mov	edx, esi
	lea	rcx, [DS0006+rip]
	call	AddLineQueueX@PLT
	jmp	$_086

$_085:	mov	rbx, qword ptr [rdi+0x38]
	mov	dword ptr [rbp-0x14], 1
	mov	byte ptr [rsp+0x20], 0
	lea	r9, [rbp-0x80]
	mov	r8d, dword ptr [r14+0x64]
	mov	rdx, qword ptr [rbp+0x28]
	lea	rcx, [rbp-0x14]
	call	EvalOperand@PLT
	imul	edi, dword ptr [rbp-0x14], 32
	add	rdi, qword ptr [rbp+0x28]
	mov	rdi, qword ptr [rdi+0x18]
	mov	byte ptr [rdi], 0
	lea	r9, [rbp-0x10]
	mov	r8, rbx
	mov	edx, esi
	lea	rcx, [DS000B+rip]
	call	AddLineQueueX@PLT
	mov	byte ptr [rdi], 44
$_086:	call	RetLineQueue
$_087:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

$_088:
	mov	qword ptr [rsp+0x10], rdx
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 72
	mov	dword ptr [rbp-0x4], 0
	mov	ebx, ecx
	mov	rsi, r8
	mov	edi, r9d
	cmp	dword ptr [rbp+0x30], 278
	jnz	$_089
	mov	dword ptr [rbp+0x30], 274
$_089:	cmp	ebx, 682
	jnz	$_090
	mov	dword ptr [rbp-0x4], 754
$_090:	mov	ecx, dword ptr [rbp+0x48]
	test	ecx, ecx
	jz	$_091
	mov	dword ptr [rsp+0x30], ecx
	mov	eax, dword ptr [rbp-0x4]
	mov	dword ptr [rsp+0x28], eax
	mov	dword ptr [rsp+0x20], edi
	mov	r9, rsi
	mov	r8d, dword ptr [rbp+0x30]
	mov	edx, ebx
	lea	rcx, [DS000C+rip]
	call	AddLineQueueX@PLT
$_091:	mov	ecx, dword ptr [rbp+0x4C]
	test	ecx, ecx
	jz	$_092
	add	edi, 4
	mov	dword ptr [rsp+0x30], ecx
	mov	eax, dword ptr [rbp-0x4]
	mov	dword ptr [rsp+0x28], eax
	mov	dword ptr [rsp+0x20], edi
	mov	r9, rsi
	mov	r8d, dword ptr [rbp+0x30]
	mov	edx, ebx
	lea	rcx, [DS000C+rip]
	call	AddLineQueueX@PLT
$_092:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

CRecordField:
	push	rsi
	push	rdi
	push	rbx
	push	rbp
	mov	rbp, rsp
	sub	rsp, 1128
	mov	byte ptr [rbp-0x421], 0
	mov	byte ptr [rbp-0x422], 0
	mov	byte ptr [rbp-0x423], 0
	mov	esi, ecx
	mov	rbx, rdx
	mov	rdi, r8
	cmp	dword ptr [rbx+0x3C], 1
	jz	$_093
	xchg	rdi, rbx
	inc	byte ptr [rbp-0x421]
$_093:	test	byte ptr [rbx+0x40], 0x01
	jz	$_096
	mov	rcx, qword ptr [rbx+0x18]
	mov	rdx, qword ptr [rbx+0x20]
	test	rdx, rdx
	jz	$_094
	mov	r9d, dword ptr [rdx+0x4]
	mov	r8d, dword ptr [rcx+0x4]
	lea	rdx, [DS000D+rip]
	lea	rcx, [rbp-0x400]
	call	tsprintf@PLT
	jmp	$_095

$_094:	mov	r8d, dword ptr [rcx+0x4]
	lea	rdx, [DS000E+rip]
	lea	rcx, [rbp-0x400]
	call	tsprintf@PLT
$_095:	jmp	$_097

$_096:	mov	rcx, qword ptr [rbx+0x50]
	mov	rdx, qword ptr [rcx+0x8]
	lea	rcx, [rbp-0x400]
	call	tstrcpy@PLT
$_097:	mov	rdx, rdi
	mov	rdi, qword ptr [rbx+0x58]
	test	byte ptr [rdi+0x13], 0x10
	jz	$_098
	mov	byte ptr [rbp-0x423], 1
	and	byte ptr [rdi+0x13], 0xEF
$_098:	movzx	eax, byte ptr [rdi+0x5A]
	mov	dword ptr [rbp-0x408], eax
	mov	al, byte ptr [rdi+0x59]
	mov	dword ptr [rbp-0x418], eax
	mov	eax, dword ptr [rbx]
	mov	dword ptr [rbp-0x414], eax
	mov	eax, dword ptr [rdi+0x60]
	jmp	$_104

$_099:	mov	ecx, 269
	jmp	$_105

$_100:	mov	ecx, 271
	jmp	$_105

$_101:	mov	ecx, 274
	jmp	$_105

$_102:	mov	ecx, 278
	jmp	$_105

$_103:	lea	rdx, [rbp-0x400]
	mov	ecx, 2008
	call	asmerr@PLT
	jmp	$_149

	jmp	$_105

$_104:	cmp	eax, 1
	jz	$_099
	cmp	eax, 2
	jz	$_100
	cmp	eax, 4
	jz	$_101
	cmp	eax, 8
	jz	$_102
	jmp	$_103

$_105:	mov	dword ptr [rbp-0x404], ecx
	mov	ecx, dword ptr [rbp-0x418]
	cmp	dword ptr [rbp-0x408], 8
	jz	$_106
	cmp	dword ptr [rbp-0x408], 16
	jz	$_106
	cmp	dword ptr [rbp-0x408], 32
	jnz	$_111
$_106:	xor	edi, edi
$_107:	cmp	edi, ecx
	jnc	$_108
	add	edi, dword ptr [rbp-0x408]
	jmp	$_107

$_108:	cmp	ecx, edi
	jnz	$_111
	mov	eax, dword ptr [rbp-0x408]
	shr	eax, 3
	shr	ecx, 3
	add	dword ptr [rbp-0x414], ecx
	mov	ecx, 269
	cmp	eax, 2
	jnz	$_109
	mov	ecx, 271
	jmp	$_110

$_109:	cmp	eax, 4
	jnz	$_110
	mov	ecx, 274
$_110:	mov	dword ptr [rbp-0x404], ecx
	xor	ecx, ecx
	inc	byte ptr [rbp-0x422]
$_111:	mov	dword ptr [rbp-0x41C], eax
	mov	dword ptr [rbp-0x418], ecx
	cmp	byte ptr [rbp-0x422], 0
	jnz	$_113
	mov	eax, ecx
	and	ecx, 0xFFFFFFF8
	sub	eax, ecx
	add	eax, dword ptr [rbp-0x408]
	cmp	eax, 32
	ja	$_113
	sub	dword ptr [rbp-0x418], ecx
	shr	ecx, 3
	add	dword ptr [rbp-0x414], ecx
	mov	dword ptr [rbp-0x41C], 4
	mov	dword ptr [rbp-0x404], 274
	cmp	eax, 8
	ja	$_112
	mov	dword ptr [rbp-0x41C], 1
	mov	dword ptr [rbp-0x404], 269
	jmp	$_113

$_112:	cmp	eax, 16
	ja	$_113
	cmp	ecx, 4
	jbe	$_113
	mov	dword ptr [rbp-0x41C], 2
	mov	dword ptr [rbp-0x404], 271
$_113:	mov	eax, 1
	mov	ecx, dword ptr [rbp-0x408]
	shl	rax, cl
	dec	rax
	mov	ecx, dword ptr [rbp-0x418]
	shl	rax, cl
	mov	qword ptr [rbp-0x410], rax
	cmp	dword ptr [rdx+0x3C], 0
	jne	$_130
	xor	eax, eax
	xchg	rsi, rdx
	mov	rdi, qword ptr [rsi]
	bsr	rax, rdi
	cmp	eax, dword ptr [rbp-0x408]
	jl	$_114
	mov	ecx, 2071
	call	asmerr@PLT
	jmp	$_149

$_114:	mov	rbx, rdi
	shl	rdi, cl
	cmp	edx, 779
	jne	$_122
	jmp	$_120

$_115:	jmp	$_150

$_116:	mov	rax, qword ptr [rbp-0x410]
	mov	qword ptr [rsp+0x20], rax
	mov	r9d, dword ptr [rbp-0x414]
	lea	r8, [rbp-0x400]
	mov	edx, 274
	mov	ecx, 682
	call	$_088
	mov	qword ptr [rsp+0x20], rdi
	mov	r9d, dword ptr [rbp-0x414]
	lea	r8, [rbp-0x400]
	mov	edx, 274
	mov	ecx, 679
	call	$_088
	jmp	$_121

$_117:	mov	edx, 682
	mov	ecx, 754
	cmp	dword ptr [rbp-0x408], 1
	jnz	$_118
	test	ebx, ebx
	jz	$_118
	mov	edx, 679
	xor	ecx, ecx
$_118:	mov	rax, qword ptr [rbp-0x410]
	mov	qword ptr [rsp+0x30], rax
	mov	dword ptr [rsp+0x28], ecx
	mov	eax, dword ptr [rbp-0x414]
	mov	dword ptr [rsp+0x20], eax
	lea	r9, [rbp-0x400]
	mov	r8d, dword ptr [rbp-0x404]
	lea	rcx, [DS000F+rip]
	call	AddLineQueueX@PLT
	cmp	dword ptr [rbp-0x408], 1
	jle	$_119
	test	ebx, ebx
	jz	$_119
	mov	edx, 679
	jmp	$_150

$_119:	jmp	$_121

$_120:	cmp	byte ptr [rbp-0x422], 0
	jne	$_115
	cmp	dword ptr [rbp-0x41C], 4
	jg	$_116
	jmp	$_117

$_121:	jmp	$_129

$_122:	cmp	edx, 682
	jnz	$_123
	not	qword ptr [rbp-0x410]
	or	qword ptr [rbp-0x410], rdi
	not	qword ptr [rbp-0x410]
	mov	rax, qword ptr [rbp-0x410]
	mov	qword ptr [rsp+0x20], rax
	mov	r9d, dword ptr [rbp-0x414]
	lea	r8, [rbp-0x400]
	mov	edx, dword ptr [rbp-0x404]
	mov	ecx, 682
	call	$_088
	jmp	$_129

$_123:	cmp	dword ptr [rbp-0x408], 1
	jz	$_124
	test	ebx, ebx
	jnz	$_126
$_124:	cmp	edx, 685
	jnz	$_125
	mov	edi, dword ptr [rbp-0x410]
	mov	edx, 834
	cmp	byte ptr [rbp-0x423], 0
	jnz	$_125
	test	ebx, ebx
	jz	$_125
	jmp	$_128

$_125:	jmp	$_150

	jmp	$_129

$_126:	cmp	byte ptr [rbp-0x422], 0
	jnz	$_127
	cmp	edx, 685
	jz	$_128
$_127:	jmp	$_150

	jmp	$_129

$_128:	mov	edx, dword ptr [rbp-0x41C]
	mov	ecx, 17
	call	get_register@PLT
	mov	esi, eax
	mov	ebx, 685
	mov	eax, dword ptr [rbp-0x41C]
	mov	dword ptr [rbp-0x420], eax
	mov	dword ptr [rbp-0x418], edi
	jmp	$_138

$_129:	jmp	$_148

$_130:	mov	rdx, qword ptr [rdx+0x18]
	mov	esi, dword ptr [rdx+0x4]
	mov	eax, esi
	add	eax, eax
	mov	eax, dword ptr [r12+rax*8+0x4]
	and	eax, 0x7F
	mov	dword ptr [rbp-0x420], eax
	cmp	byte ptr [rbp-0x421], 0
	jne	$_136
	cmp	eax, dword ptr [rbp-0x41C]
	jle	$_131
	mov	edx, dword ptr [rbp-0x41C]
	mov	ecx, esi
	call	get_register@PLT
	mov	esi, eax
	jmp	$_132

$_131:	cmp	eax, dword ptr [rbp-0x41C]
	jge	$_132
	mov	edx, dword ptr [rbp-0x41C]
	mov	ecx, esi
	call	get_register@PLT
	mov	esi, eax
$_132:	cmp	byte ptr [rbp-0x422], 0
	jz	$_133
	mov	edx, 779
	jmp	$_151

$_133:	cmp	dword ptr [rbp-0x418], 0
	jz	$_134
	mov	r9d, dword ptr [rbp-0x418]
	mov	r8d, esi
	mov	edx, 692
	lea	rcx, [DS0010+rip]
	call	AddLineQueueX@PLT
$_134:	mov	edx, dword ptr [rbp-0x404]
	cmp	dword ptr [rbp-0x41C], 8
	jnz	$_135
	mov	edx, 274
$_135:	mov	rax, qword ptr [rbp-0x410]
	mov	qword ptr [rsp+0x20], rax
	mov	r9d, dword ptr [rbp-0x414]
	lea	r8, [rbp-0x400]
	mov	ecx, 682
	call	$_088
	mov	edx, 679
	jmp	$_151

$_136:	mov	ebx, 693
	cmp	byte ptr [rbp-0x422], 0
	jz	$_137
	mov	dword ptr [rbp-0x418], 0
	mov	qword ptr [rbp-0x410], 0
$_137:	cmp	eax, dword ptr [rbp-0x41C]
	jge	$_138
	mov	edx, 4
	mov	ecx, esi
	call	get_register@PLT
	mov	esi, eax
	mov	dword ptr [rbp-0x420], 4
	mov	eax, 4
$_138:	mov	edx, 779
	cmp	dword ptr [rbp-0x41C], eax
	jge	$_139
	mov	edx, 816
	cmp	eax, 8
	jnz	$_139
	mov	edx, 4
	mov	ecx, esi
	call	get_register@PLT
	mov	esi, eax
	mov	dword ptr [rbp-0x420], 4
	mov	edx, 816
	cmp	dword ptr [rbp-0x41C], 4
	jnz	$_139
	mov	edx, 779
$_139:	mov	eax, dword ptr [rbp-0x414]
	mov	dword ptr [rsp+0x28], eax
	lea	rax, [rbp-0x400]
	mov	qword ptr [rsp+0x20], rax
	mov	r9d, dword ptr [rbp-0x404]
	mov	r8d, esi
	lea	rcx, [DS0011+rip]
	call	AddLineQueueX@PLT
	mov	ecx, dword ptr [rbp-0x410]
	mov	edx, dword ptr [rbp-0x40C]
	test	ecx, ecx
	jnz	$_140
	test	edx, edx
	je	$_146
$_140:	imul	edi, dword ptr [rbp-0x420], 8
	sub	edi, dword ptr [rbp-0x418]
	test	edx, edx
	jnz	$_143
	cmp	edi, dword ptr [rbp-0x408]
	jnz	$_141
	cmp	ebx, 693
	jz	$_142
$_141:	mov	r9d, ecx
	mov	r8d, esi
	mov	edx, 682
	lea	rcx, [DS0010+rip]
	call	AddLineQueueX@PLT
$_142:	jmp	$_146

$_143:	sub	edi, dword ptr [rbp-0x408]
	test	edi, edi
	jz	$_144
	mov	r9d, edi
	mov	r8d, esi
	mov	edx, 692
	lea	rcx, [DS0010+rip]
	call	AddLineQueueX@PLT
$_144:	add	edi, dword ptr [rbp-0x418]
	test	edi, edi
	jz	$_145
	mov	r9d, edi
	mov	r8d, esi
	mov	edx, 693
	lea	rcx, [DS0010+rip]
	call	AddLineQueueX@PLT
$_145:	cmp	ebx, 685
	jnz	$_148
$_146:	cmp	dword ptr [rbp-0x418], 0
	jnz	$_147
	cmp	ebx, 685
	jnz	$_148
$_147:	mov	r9d, dword ptr [rbp-0x418]
	mov	r8d, esi
	mov	edx, ebx
	lea	rcx, [DS0010+rip]
	call	AddLineQueueX@PLT
$_148:	call	RetLineQueue
$_149:	leave
	pop	rbx
	pop	rdi
	pop	rsi
	ret

$_150:	mov	dword ptr [rsp+0x28], edi
	mov	eax, dword ptr [rbp-0x414]
	mov	dword ptr [rsp+0x20], eax
	lea	r9, [rbp-0x400]
	mov	r8d, dword ptr [rbp-0x404]
	lea	rcx, [DS0012+rip]
	call	AddLineQueueX@PLT
	jmp	$_148

$_151:
	mov	dword ptr [rsp+0x28], esi
	mov	eax, dword ptr [rbp-0x414]
	mov	dword ptr [rsp+0x20], eax
	lea	r9, [rbp-0x400]
	mov	r8d, dword ptr [rbp-0x404]
	lea	rcx, [DS0013+rip]
	call	AddLineQueueX@PLT
	jmp	$_148


.SECTION .data
	.ALIGN	16

ofss:
	.byte  0x0F, 0x10, 0x0A, 0x0A, 0x17, 0x18, 0x12, 0x12
	.byte  0xA9, 0xAA, 0xA4, 0x12, 0x09, 0x11, 0xA3, 0x00
	.byte  0x0F, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00
	.byte  0x16, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

DS0000:
	.byte  0x20, 0x70, 0x75, 0x73, 0x68, 0x20, 0x25, 0x72
	.byte  0x0A, 0x20, 0x70, 0x75, 0x73, 0x68, 0x20, 0x25
	.byte  0x72, 0x0A, 0x20, 0x6D, 0x6F, 0x76, 0x20, 0x25
	.byte  0x72, 0x2C, 0x20, 0x25, 0x72, 0x0A, 0x20, 0x6C
	.byte  0x65, 0x61, 0x20, 0x25, 0x72, 0x2C, 0x20, 0x25
	.byte  0x73, 0x0A, 0x20, 0x6C, 0x65, 0x61, 0x20, 0x25
	.byte  0x72, 0x2C, 0x20, 0x25, 0x73, 0x0A, 0x20, 0x6D
	.byte  0x6F, 0x76, 0x20, 0x25, 0x72, 0x2C, 0x20, 0x25
	.byte  0x75, 0x0A, 0x20, 0x72, 0x65, 0x70, 0x20, 0x6D
	.byte  0x6F, 0x76, 0x73, 0x62, 0x0A, 0x20, 0x6D, 0x6F
	.byte  0x76, 0x20, 0x25, 0x72, 0x2C, 0x20, 0x25, 0x72
	.byte  0x0A, 0x20, 0x70, 0x6F, 0x70, 0x20, 0x25, 0x72
	.byte  0x0A, 0x20, 0x70, 0x6F, 0x70, 0x20, 0x25, 0x72
	.byte  0x00

DS0001:
	.byte  0x20, 0x6D, 0x6F, 0x76, 0x20, 0x25, 0x72, 0x2C
	.byte  0x20, 0x25, 0x72, 0x20, 0x70, 0x74, 0x72, 0x20
	.byte  0x25, 0x73, 0x5B, 0x25, 0x64, 0x5D, 0x0A, 0x20
	.byte  0x6D, 0x6F, 0x76, 0x20, 0x25, 0x72, 0x20, 0x70
	.byte  0x74, 0x72, 0x20, 0x25, 0x73, 0x5B, 0x25, 0x64
	.byte  0x5D, 0x2C, 0x20, 0x25, 0x72, 0x00

DS0002:
	.byte  0x20, 0x6D, 0x6F, 0x76, 0x20, 0x65, 0x61, 0x78
	.byte  0x2C, 0x20, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x20
	.byte  0x70, 0x74, 0x72, 0x20, 0x25, 0x73, 0x5B, 0x25
	.byte  0x64, 0x5D, 0x0A, 0x20, 0x6D, 0x6F, 0x76, 0x20
	.byte  0x64, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x70, 0x74
	.byte  0x72, 0x20, 0x25, 0x73, 0x5B, 0x25, 0x64, 0x5D
	.byte  0x2C, 0x20, 0x65, 0x61, 0x78, 0x00

DS0003:
	.byte  0x20, 0x6D, 0x6F, 0x76, 0x20, 0x61, 0x6C, 0x2C
	.byte  0x20, 0x62, 0x79, 0x74, 0x65, 0x20, 0x70, 0x74
	.byte  0x72, 0x20, 0x25, 0x73, 0x5B, 0x25, 0x64, 0x5D
	.byte  0x0A, 0x20, 0x6D, 0x6F, 0x76, 0x20, 0x62, 0x79
	.byte  0x74, 0x65, 0x20, 0x70, 0x74, 0x72, 0x20, 0x25
	.byte  0x73, 0x5B, 0x25, 0x64, 0x5D, 0x2C, 0x20, 0x61
	.byte  0x6C, 0x00

DS0004:
	.byte  0x20, 0x6C, 0x65, 0x61, 0x20, 0x25, 0x72, 0x2C
	.byte  0x20, 0x25, 0x73, 0x00

DS0005:
	.byte  0x20, 0x6D, 0x6F, 0x76, 0x7A, 0x78, 0x20, 0x65
	.byte  0x61, 0x78, 0x2C, 0x20, 0x25, 0x73, 0x00

DS0006:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x2C, 0x20
	.byte  0x25, 0x73, 0x00

DS0007:
	.byte  0x20, 0x6D, 0x6F, 0x76, 0x20, 0x65, 0x61, 0x78
	.byte  0x2C, 0x20, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x20
	.byte  0x70, 0x74, 0x72, 0x20, 0x25, 0x73, 0x5B, 0x34
	.byte  0x5D, 0x0A, 0x20, 0x63, 0x6D, 0x70, 0x20, 0x64
	.byte  0x77, 0x6F, 0x72, 0x64, 0x20, 0x70, 0x74, 0x72
	.byte  0x20, 0x25, 0x73, 0x5B, 0x34, 0x5D, 0x2C, 0x20
	.byte  0x65, 0x61, 0x78, 0x0A, 0x20, 0x6A, 0x6E, 0x65
	.byte  0x20, 0x25, 0x73, 0x0A, 0x20, 0x6D, 0x6F, 0x76
	.byte  0x20, 0x65, 0x61, 0x78, 0x2C, 0x20, 0x64, 0x77
	.byte  0x6F, 0x72, 0x64, 0x20, 0x70, 0x74, 0x72, 0x20
	.byte  0x25, 0x73, 0x0A, 0x20, 0x63, 0x6D, 0x70, 0x20
	.byte  0x64, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x70, 0x74
	.byte  0x72, 0x20, 0x25, 0x73, 0x2C, 0x20, 0x65, 0x61
	.byte  0x78, 0x0A, 0x25, 0x73, 0x3A, 0x00

DS0008:
	.byte  0x20, 0x25, 0x72, 0x20, 0x64, 0x77, 0x6F, 0x72
	.byte  0x64, 0x20, 0x70, 0x74, 0x72, 0x20, 0x25, 0x73
	.byte  0x2C, 0x20, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x20
	.byte  0x70, 0x74, 0x72, 0x20, 0x25, 0x73, 0x0A, 0x20
	.byte  0x25, 0x72, 0x20, 0x64, 0x77, 0x6F, 0x72, 0x64
	.byte  0x20, 0x70, 0x74, 0x72, 0x20, 0x25, 0x73, 0x5B
	.byte  0x34, 0x5D, 0x2C, 0x20, 0x64, 0x77, 0x6F, 0x72
	.byte  0x64, 0x20, 0x70, 0x74, 0x72, 0x20, 0x25, 0x73
	.byte  0x5B, 0x34, 0x5D, 0x00

DS0009:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x73, 0x2C, 0x20
	.byte  0x25, 0x72, 0x00

DS000A:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x2C, 0x20
	.byte  0x25, 0x72, 0x00

DS000B:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x73, 0x2C, 0x20
	.byte  0x25, 0x73, 0x00

DS000C:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x20, 0x70
	.byte  0x74, 0x72, 0x20, 0x25, 0x73, 0x5B, 0x25, 0x64
	.byte  0x5D, 0x2C, 0x20, 0x25, 0x72, 0x20, 0x30, 0x78
	.byte  0x25, 0x78, 0x00

DS000D:
	.byte  0x5B, 0x25, 0x72, 0x2B, 0x25, 0x72, 0x5D, 0x00

DS000E:
	.byte  0x5B, 0x25, 0x72, 0x5D, 0x00

DS000F:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x20, 0x70
	.byte  0x74, 0x72, 0x20, 0x25, 0x73, 0x5B, 0x25, 0x64
	.byte  0x5D, 0x2C, 0x20, 0x25, 0x72, 0x20, 0x25, 0x75
	.byte  0x00

DS0010:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x2C, 0x20
	.byte  0x25, 0x75, 0x00

DS0011:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x2C, 0x20
	.byte  0x25, 0x72, 0x20, 0x70, 0x74, 0x72, 0x20, 0x25
	.byte  0x73, 0x5B, 0x25, 0x64, 0x5D, 0x00

DS0012:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x20, 0x70
	.byte  0x74, 0x72, 0x20, 0x25, 0x73, 0x5B, 0x25, 0x64
	.byte  0x5D, 0x2C, 0x20, 0x25, 0x75, 0x00

DS0013:
	.byte  0x20, 0x25, 0x72, 0x20, 0x25, 0x72, 0x20, 0x70
	.byte  0x74, 0x72, 0x20, 0x25, 0x73, 0x5B, 0x25, 0x64
	.byte  0x5D, 0x2C, 0x20, 0x25, 0x72, 0x00


.att_syntax prefix
