Function at 0x180219250
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xb98
mov rax, qword [0x180333438]
mov qword [rsp + 0x7f0], rax
mov rax, qword [rsp + 0x7f0]
mov rax, qword [rax + 0x3dd8]
mov byte [rax + 0x90], 1
mov rax, qword [rsp + 0x7f0]
mov rax, qword [rax + 0x3dd8]
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x150]
movzx eax, byte [rax + 0x93]
test eax, eax
je 0x1802192c3
xor al, al
jmp 0x18021e94d
mov rax, qword [0x180333438]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
add rax, 8
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x68]
add rax, 0x3728
mov qword [rsp + 0xe8], rax
mov byte [rsp + 0x1c8], 0
mov eax, dword [rsp + 0xbd8]
and eax, 0x4000000
test eax, eax
je 0x180219315
mov byte [rsp + 0xc2], 1
jmp 0x18021931d
mov byte [rsp + 0xc2], 0
movzx eax, byte [rsp + 0xc2]
mov byte [rsp + 0x50], al
mov eax, dword [rsp + 0xbd8]
and eax, 0x4000
test eax, eax
je 0x180219343
mov byte [rsp + 0xca], 1
jmp 0x18021934b
mov byte [rsp + 0xca], 0
movzx eax, byte [rsp + 0xca]
mov byte [rsp + 0x60], al
mov eax, dword [rsp + 0xbd8]
and eax, 0x8000
test eax, eax
je 0x180219371
mov byte [rsp + 0xcc], 1
jmp 0x180219379
mov byte [rsp + 0xcc], 0
movzx eax, byte [rsp + 0xcc]
mov byte [rsp + 0x89], al
mov eax, dword [rsp + 0xbd8]
and eax, 0x10000
test eax, eax
jne 0x1802193a2
mov byte [rsp + 0xcd], 1
jmp 0x1802193aa
mov byte [rsp + 0xcd], 0
movzx eax, byte [rsp + 0xcd]
mov byte [rsp + 0xcb], al
mov eax, dword [rsp + 0xbd8]
and eax, 0x40000
test eax, eax
je 0x1802193d3
mov byte [rsp + 0xce], 1
jmp 0x1802193db
mov byte [rsp + 0xce], 0
movzx eax, byte [rsp + 0xce]
mov byte [rsp + 0x94], al
movzx eax, byte [rsp + 0x94]
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x180219400
call fcn.180150b40
xor r8d, r8d
mov rdx, qword [rsp + 0xbb0]
mov rcx, qword [rsp + 0x150]
call fcn.18015bd00
mov dword [rsp + 0x78], eax
movss xmm0, dword [0x1802aee14]
movss dword [rsp + 0x20], xmm0
mov r9b, 1
xor r8d, r8d
mov rdx, qword [rsp + 0xbb0]
lea rcx, [rsp + 0x460]
call fcn.180153420
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021946e
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rax + 0x3b48]
mulss xmm0, dword [0x1802aedc4]
movss dword [rsp + 0x300], xmm0
jmp 0x180219480
movss xmm0, dword [rsp + 0x464]
movss dword [rsp + 0x300], xmm0
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rax + 0x40]
mulss xmm0, dword [0x1802ae2b4]
movss xmm1, dword [rsp + 0x300]
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rsp + 0x590], xmm0
call fcn.1801528a0
movss dword [rsp + 0x594], xmm0
mov rax, qword [rsp + 0xbd0]
mov rax, qword [rax]
mov qword [rsp + 0x970], rax
mov rax, qword [rsp + 0x970]
mov qword [rsp + 0x978], rax
movss xmm3, dword [rsp + 0x590]
movss xmm2, dword [rsp + 0x594]
mov rdx, qword [rsp + 0x978]
lea rcx, [rsp + 0x3f0]
call fcn.180152720
movss xmm0, dword [rsp + 0x3f4]
movss dword [rsp + 0x5a0], xmm0
movss xmm0, dword [rsp + 0x460]
comiss xmm0, dword [0x1802ae2ac]
jbe 0x18021954b
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rax + 0x54]
addss xmm0, dword [rsp + 0x460]
movss dword [rsp + 0x390], xmm0
jmp 0x180219557
xorps xmm0, xmm0
movss dword [rsp + 0x390], xmm0
movss xmm0, dword [rsp + 0x3f0]
addss xmm0, dword [rsp + 0x390]
movss dword [rsp + 0x598], xmm0
movss xmm0, dword [rsp + 0x598]
movss dword [rsp + 0x648], xmm0
movss xmm0, dword [rsp + 0x5a0]
movss dword [rsp + 0x64c], xmm0
mov rax, qword [rsp + 0x150]
add rax, 0xd8
mov qword [rsp + 0x7f8], rax
mov rax, qword [rsp + 0x7f8]
movss xmm0, dword [rax + 4]
addss xmm0, dword [rsp + 0x3f4]
movss dword [rsp + 0x5b0], xmm0
mov rax, qword [rsp + 0x7f8]
movss xmm0, dword [rax]
addss xmm0, dword [rsp + 0x3f0]
movss dword [rsp + 0x5a8], xmm0
movss xmm0, dword [rsp + 0x5a8]
movss dword [rsp + 0x800], xmm0
movss xmm0, dword [rsp + 0x5b0]
movss dword [rsp + 0x804], xmm0
mov rax, qword [rsp + 0x150]
mov rax, qword [rax + 0xd8]
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x800]
mov qword [rsp + 0x160], rax
movss xmm0, dword [rsp + 0x15c]
addss xmm0, dword [rsp + 0x64c]
movss dword [rsp + 0x5c0], xmm0
movss xmm0, dword [rsp + 0x158]
addss xmm0, dword [rsp + 0x648]
movss dword [rsp + 0x5b8], xmm0
movss xmm0, dword [rsp + 0x5b8]
movss dword [rsp + 0x848], xmm0
movss xmm0, dword [rsp + 0x5c0]
movss dword [rsp + 0x84c], xmm0
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x808], rax
mov rax, qword [rsp + 0x848]
mov qword [rsp + 0x810], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x3f0]
mov qword [rsp + 0x128], rax
mov dword [rsp + 0x198], 0
lea rcx, [rsp + 0xb48]
call fcn.180147630
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x180219985
mov rax, qword [rsp + 0x150]
mov rax, qword [rax + 0xd8]
mov qword [rsp + 0x980], rax
mov rax, qword [rsp + 0xe8]
movss xmm1, dword [rax + 0x40]
lea rcx, [rsp + 0x808]
call fcn.180163000
mov r9d, pe_nt_image_headers64
lea r8, [rsp + 0x158]
mov edx, dword [rsp + 0x78]
lea rcx, [rsp + 0x808]
call fcn.180162bd0
movzx eax, al
test eax, eax
jne 0x180219756
call fcn.1801578b0
xor al, al
jmp 0x18021e94d
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3ea8]
mov dword [rsp + 0x198], eax
lea rax, [rsp + 0xb48]
mov rcx, qword [rsp + 0x68]
mov rdi, rax
lea rsi, [rcx + 0x3ea0]
mov ecx, 0x3c
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x980]
mov qword [rax + 0xd8], rcx
mov eax, 0x10
imul rax, rax, 7
mov rcx, qword [rsp + 0xe8]
lea rax, [rcx + rax + 0xc8]
mov rdx, rax
mov ecx, 3
call fcn.18016d980
mov rax, qword [rsp + 0xe8]
movss xmm1, dword [rax + 0x44]
mov ecx, 7
call fcn.18016dc20
mov rax, qword [rsp + 0xe8]
movss xmm1, dword [rax + 0x48]
mov ecx, 8
call fcn.18016dc20
xorps xmm0, xmm0
movss dword [rsp + 0x838], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x83c], xmm0
lea rdx, [rsp + 0x838]
mov ecx, 2
call fcn.18016db40
lea rdx, [rsp + 0xb40]
lea rcx, [rsp + 0x158]
call fcn.18015d670
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 4
mov r9b, 1
mov r8, rax
mov edx, dword [rsp + 0x78]
mov rcx, qword [rsp + 0xbb0]
call fcn.18014f580
mov byte [rsp + 0xfa], al
mov ecx, 3
call fcn.18016d010
mov ecx, 1
call fcn.18016cf60
movzx eax, byte [rsp + 0xfa]
test eax, eax
jne 0x180219890
call fcn.180156dc0
call fcn.1801578b0
xor al, al
jmp 0x18021e94d
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3dd8]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0xd8]
mov eax, dword [rax + 0x12c]
mov ecx, 1
mov dword [rsp + 0x5c8], ecx
movzx ecx, al
mov eax, dword [rsp + 0x5c8]
shl eax, cl
mov rcx, qword [rsp + 0xd8]
movsx ecx, word [rcx + 0x132]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0xd8]
mov word [rcx + 0x132], ax
mov rax, qword [rsp + 0xe8]
add rax, 0x3c
mov qword [rsp + 0x840], rax
mov rax, qword [rsp + 0xd8]
add rax, 0xd8
mov qword [rsp + 0x468], rax
mov rax, qword [rsp + 0x468]
mov rcx, qword [rsp + 0x840]
movss xmm0, dword [rax]
addss xmm0, dword [rcx]
mov rax, qword [rsp + 0x468]
movss dword [rax], xmm0
mov rax, qword [rsp + 0x468]
mov rcx, qword [rsp + 0x840]
movss xmm0, dword [rax + 4]
addss xmm0, dword [rcx + 4]
mov rax, qword [rsp + 0x468]
movss dword [rax + 4], xmm0
mov rax, qword [rsp + 0xd8]
movss xmm0, dword [rsp + 0x128]
subss xmm0, dword [rax + 0x84]
movss dword [rsp + 0x128], xmm0
jmp 0x1802199ee
mov rax, qword [rsp + 0xe8]
movss xmm1, dword [rax + 0x40]
lea rcx, [rsp + 0x808]
call fcn.180163000
mov eax, dword [rsp + 0xbd8]
and eax, 0x10000000
test eax, eax
jne 0x1802199dc
mov r9d, pe_nt_image_headers64
lea r8, [rsp + 0x158]
mov edx, dword [rsp + 0x78]
lea rcx, [rsp + 0x808]
call fcn.180162bd0
movzx eax, al
test eax, eax
jne 0x1802199dc
xor al, al
jmp 0x18021e94d
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3ea8]
mov dword [rsp + 0x198], eax
mov edx, dword [rsp + 0x78]
lea rcx, [rsp + 0x158]
call fcn.180162de0
mov byte [rsp + 0x8a], al
movzx eax, byte [rsp + 0x8a]
test eax, eax
je 0x180219a21
mov rax, qword [rsp + 0x68]
mov dword [rax + 0x4178], 1
mov rax, qword [0x180333438]
mov qword [rsp + 0x710], rax
mov rax, qword [rsp + 0x710]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x42f8], ecx
jne 0x180219a5c
mov rax, qword [rsp + 0x710]
add rax, 0x42f8
mov qword [rsp + 0x718], rax
jmp 0x180219a68
mov qword [rsp + 0x718], 0
mov rax, qword [rsp + 0x718]
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x198]
and eax, 0x100
test eax, eax
je 0x180219a8f
mov byte [rsp + 0xcf], 1
jmp 0x180219a97
mov byte [rsp + 0xcf], 0
movzx eax, byte [rsp + 0xcf]
mov byte [rsp + 0xad], al
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
je 0x180219af1
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x4004], ecx
je 0x180219ae7
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3ff8], ecx
jne 0x180219af1
mov rax, qword [rsp + 0x68]
cmp dword [rax + 0x4020], 2
jne 0x180219af1
mov byte [rsp + 0xd0], 1
jmp 0x180219af9
mov byte [rsp + 0xd0], 0
movzx eax, byte [rsp + 0xd0]
mov byte [rsp + 0x91], al
movzx eax, byte [rsp + 0x8a]
test eax, eax
je 0x180219b3b
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, byte [rcx + rax + 0x35d8]
test eax, eax
je 0x180219b3b
mov byte [rsp + 0xa4], 1
jmp 0x180219b43
mov byte [rsp + 0xa4], 0
movzx eax, byte [rsp + 0xa4]
mov byte [rsp + 0xae], al
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x180219b9a
cmp qword [rsp + 0x58], 0
je 0x180219b9a
mov rax, qword [rsp + 0x68]
cmp dword [rax + 0x3e24], 0
jne 0x180219b9a
mov edx, 1
mov rcx, qword [rsp + 0xd8]
call fcn.1802128e0
mov rcx, qword [rsp + 0x68]
cmp dword [rcx + 0x3e70], eax
jne 0x180219b9a
mov byte [rsp + 0xa5], 1
jmp 0x180219ba2
mov byte [rsp + 0xa5], 0
movzx eax, byte [rsp + 0xa5]
mov byte [rsp + 0xfb], al
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x180219beb
cmp qword [rsp + 0x58], 0
je 0x180219beb
mov edx, 1
mov rcx, qword [rsp + 0xd8]
call fcn.1802128e0
mov rcx, qword [rsp + 0x68]
cmp dword [rcx + 0x3e24], eax
jne 0x180219beb
mov byte [rsp + 0xa6], 1
jmp 0x180219bf3
mov byte [rsp + 0xa6], 0
movzx eax, byte [rsp + 0xa6]
mov byte [rsp + 0xb0], al
mov byte [rsp + 0x73], 0
mov byte [rsp + 0x88], 0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x180219c30
mov rax, qword [rsp + 0xd8]
movss xmm0, dword [rax + 0x60]
movss dword [rsp + 0x394], xmm0
jmp 0x180219c41
movss xmm0, dword [0x1802aee0c]
movss dword [rsp + 0x394], xmm0
movss xmm0, dword [rsp + 0x394]
movss dword [rsp + 0x98], xmm0
cmp qword [rsp + 0x58], 0
je 0x180219c98
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x180219c71
mov dword [rsp + 0x398], 1
jmp 0x180219c7c
mov dword [rsp + 0x398], 0
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0x63]
cmp eax, dword [rsp + 0x398]
je 0x180219c98
mov byte [rsp + 0xa7], 1
jmp 0x180219ca0
mov byte [rsp + 0xa7], 0
movzx eax, byte [rsp + 0xa7]
mov byte [rsp + 0xaa], al
movzx eax, byte [rsp + 0xae]
test eax, eax
jne 0x180219ce9
movzx eax, byte [rsp + 0xfb]
test eax, eax
jne 0x180219ce9
movzx eax, byte [rsp + 0x91]
test eax, eax
jne 0x180219ce9
movzx eax, byte [rsp + 0xad]
test eax, eax
jne 0x180219ce9
mov byte [rsp + 0xa8], 0
jmp 0x180219cf1
mov byte [rsp + 0xa8], 1
movzx eax, byte [rsp + 0xa8]
mov byte [rsp + 0x90], al
movzx eax, byte [rsp + 0x90]
test eax, eax
jne 0x180219d22
movzx eax, byte [rsp + 0xb0]
test eax, eax
jne 0x180219d22
mov byte [rsp + 0xa9], 0
jmp 0x180219d2a
mov byte [rsp + 0xa9], 1
movzx eax, byte [rsp + 0xa9]
mov byte [rsp + 0xaf], al
movzx eax, byte [rsp + 0xaf]
test eax, eax
je 0x180219d56
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x180219d66
movzx eax, byte [rsp + 0xaa]
test eax, eax
je 0x180219fdd
mov rax, qword [rsp + 0x68]
add rax, 0x42f8
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
movss xmm0, dword [0x1802b4744]
movss dword [rax + 0xe78], xmm0
mov rcx, qword [rsp + 0xbc0]
call fcn.1802448f0
mov dword [rsp + 0x3a0], eax
mov rax, qword [rsp + 0x58]
add rax, 0x30
mov qword [rsp + 0x988], rax
mov eax, dword [rsp + 0x3a0]
inc eax
mov edx, eax
mov rcx, qword [rsp + 0x988]
call fcn.1801847a0
mov eax, dword [rsp + 0x3a0]
inc eax
cdqe
mov r8, rax
mov rdx, qword [rsp + 0xbc0]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x38]
call fcn.180244100
mov qword [rsp + 0x720], 0
mov rax, qword [rsp + 0x58]
add rax, 0x10
mov qword [rsp + 0x990], rax
mov eax, dword [rsp + 0xbc8]
inc eax
mov edx, eax
mov rcx, qword [rsp + 0x990]
call fcn.180184830
mov rax, qword [rsp + 0x58]
add rax, 0x20
mov qword [rsp + 0x998], rax
xor edx, edx
mov rcx, qword [rsp + 0x998]
call fcn.1801847a0
mov rax, qword [rsp + 0x58]
mov byte [rax + 0x40], 0
lea rax, [rsp + 0x720]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rsp + 0xbc0]
mov edx, dword [rsp + 0xbc8]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x18]
call fcn.180160be0
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0xbc0]
mov rcx, qword [rsp + 0x720]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x78]
cmp dword [rax], ecx
jne 0x180219ec0
movzx eax, byte [rsp + 0xaa]
test eax, eax
jne 0x180219ec0
mov byte [rsp + 0xab], 1
jmp 0x180219ec8
mov byte [rsp + 0xab], 0
movzx eax, byte [rsp + 0xab]
mov byte [rsp + 0xac], al
movzx eax, byte [rsp + 0xac]
test eax, eax
je 0x180219eef
mov rcx, qword [rsp + 0x58]
call fcn.18020d280
jmp 0x180219f40
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x78]
mov dword [rax], ecx
mov rax, qword [rsp + 0x58]
xorps xmm0, xmm0
movss dword [rax + 0x48], xmm0
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x180219f1d
mov dword [rsp + 0x3a4], 1
jmp 0x180219f28
mov dword [rsp + 0x3a4], 0
mov rax, qword [rsp + 0x58]
add rax, 0x4c
mov edx, dword [rsp + 0x3a4]
mov rcx, rax
call fcn.1802369e0
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x180219fc4
mov eax, dword [rsp + 0xbd8]
and eax, 0x10
test eax, eax
je 0x180219f5f
mov byte [rsp + 0x88], 1
movzx eax, byte [rsp + 0x91]
test eax, eax
je 0x180219f91
movzx eax, byte [rsp + 0xac]
test eax, eax
je 0x180219f89
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x4008]
and eax, 4
test eax, eax
jne 0x180219f91
mov byte [rsp + 0x88], 1
movzx eax, byte [rsp + 0xad]
test eax, eax
jne 0x180219fbc
movzx eax, byte [rsp + 0xae]
test eax, eax
je 0x180219fc4
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x180219fc4
mov byte [rsp + 0x88], 1
mov eax, dword [rsp + 0xbd8]
and eax, 0x2000
test eax, eax
je 0x180219fdd
mov rax, qword [rsp + 0x58]
mov byte [rax + 0x58], 1
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
je 0x18021a0e0
movzx eax, byte [rsp + 0x90]
test eax, eax
je 0x18021a0e0
mov rdx, qword [rsp + 0x150]
mov ecx, dword [rsp + 0x78]
call fcn.180174350
mov rdx, qword [rsp + 0x150]
mov ecx, dword [rsp + 0x78]
call fcn.180175070
mov rcx, qword [rsp + 0x150]
call fcn.18015a260
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3e38]
or eax, 3
mov rcx, qword [rsp + 0x68]
mov dword [rcx + 0x3e38], eax
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x18021a063
mov eax, dword [rsp + 0xbd8]
and eax, 0x80
test eax, eax
je 0x18021a07c
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3e38]
or eax, 0xc
mov rcx, qword [rsp + 0x68]
mov dword [rcx + 0x3e38], eax
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3e3c]
or eax, 2
mov rcx, qword [rsp + 0x68]
mov dword [rcx + 0x3e3c], eax
mov ecx, 0x207
call fcn.180226db0
mov ecx, 0x208
call fcn.180226db0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021a0c6
mov ecx, 0x205
call fcn.180226db0
mov ecx, 0x206
call fcn.180226db0
mov eax, dword [rsp + 0xbd8]
and eax, 0x440
test eax, eax
je 0x18021a0e0
mov ecx, 0x200
call fcn.180226db0
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021a0fe
cmp qword [rsp + 0x58], 0
jne 0x18021a0fe
call fcn.180154cf0
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021a149
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, byte [rcx + rax + 0x35d8]
test eax, eax
je 0x18021a149
movzx eax, byte [rsp + 0xaf]
test eax, eax
jne 0x18021a149
movzx eax, byte [rsp + 0x90]
test eax, eax
jne 0x18021a149
mov byte [rsp + 0x73], 1
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
je 0x18021a178
cmp qword [rsp + 0x58], 0
je 0x18021a16e
movzx eax, byte [rsp + 0xb0]
test eax, eax
jne 0x18021a178
mov byte [rsp + 0xb1], 0
jmp 0x18021a180
mov byte [rsp + 0xb1], 1
movzx eax, byte [rsp + 0xb1]
mov byte [rsp + 0x71], al
cmp qword [rsp + 0x58], 0
je 0x18021a1f2
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021a1b3
mov dword [rsp + 0x3a8], 1
jmp 0x18021a1be
mov dword [rsp + 0x3a8], 0
movzx eax, byte [rsp + 0x3a8]
test eax, eax
jne 0x18021a1d6
movzx eax, byte [rsp + 0x88]
test eax, eax
je 0x18021a1f2
xor eax, eax
test eax, eax
jne 0x18021a1e5
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18021a1f2
mov dword [rsp + 0x3ac], 1
jmp 0x18021a1fd
mov dword [rsp + 0x3ac], 0
movzx eax, byte [rsp + 0x3ac]
mov byte [rsp + 0x70], al
mov byte [rsp + 0x95], 0
mov byte [rsp + 0x8f], 0
movzx eax, byte [rsp + 0x60]
test eax, eax
je 0x18021a318
cmp qword [rsp + 0x58], 0
je 0x18021a318
movzx eax, byte [rsp + 0x71]
test eax, eax
jne 0x18021a248
movzx eax, byte [rsp + 0x70]
test eax, eax
je 0x18021a318
mov qword [rsp + 0x728], 0
mov rax, qword [rsp + 0x58]
add rax, 0x10
mov qword [rsp + 0x9a0], rax
mov eax, dword [rsp + 0xbc8]
inc eax
mov edx, eax
mov rcx, qword [rsp + 0x9a0]
call fcn.180184830
lea rax, [rsp + 0x728]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rsp + 0xbc0]
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0x10]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x18]
call fcn.180160be0
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0xbc0]
mov rcx, qword [rsp + 0x728]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 8], eax
mov rcx, qword [rsp + 0x58]
call fcn.18020d280
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021a2fa
mov dword [rsp + 0x3b0], 1
jmp 0x18021a305
mov dword [rsp + 0x3b0], 0
movzx eax, byte [rsp + 0x70]
movzx ecx, byte [rsp + 0x3b0]
and eax, ecx
mov byte [rsp + 0x70], al
movzx eax, byte [rsp + 0x71]
test eax, eax
jne 0x18021a33b
movzx eax, byte [rsp + 0x70]
test eax, eax
jne 0x18021a33b
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021a363
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021a363
cmp qword [rsp + 0x58], 0
je 0x18021a363
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0x40]
test eax, eax
je 0x18021a363
mov byte [rsp + 0xb2], 1
jmp 0x18021a36b
mov byte [rsp + 0xb2], 0
movzx eax, byte [rsp + 0xb2]
mov byte [rsp + 0xc9], al
cmp qword [rsp + 0xbb8], 0
je 0x18021a3d7
movzx eax, byte [rsp + 0xc9]
test eax, eax
je 0x18021a3a4
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x730], rax
jmp 0x18021a3b4
mov rax, qword [rsp + 0xbc0]
mov qword [rsp + 0x730], rax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x730]
movsx eax, byte [rcx + rax]
test eax, eax
jne 0x18021a3d7
mov byte [rsp + 0xb3], 1
jmp 0x18021a3df
mov byte [rsp + 0xb3], 0
movzx eax, byte [rsp + 0xb3]
mov byte [rsp + 0x72], al
movzx eax, byte [rsp + 0x89]
test eax, eax
je 0x18021a517
movzx eax, byte [rsp + 0x72]
test eax, eax
jne 0x18021a517
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov qword [rsp + 0x9a8], rax
mov dx, 0x2a
mov rcx, qword [rsp + 0x9a8]
call fcn.180193e00
mov qword [rsp + 0x738], rax
mov rax, qword [rsp + 0x68]
add rax, 0x5180
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov rcx, qword [rsp + 0x170]
movss xmm0, dword [rax + 0x14]
movss dword [rcx + 0x14], xmm0
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov rcx, qword [rsp + 0x170]
movss xmm0, dword [rax + 0x5c]
movss dword [rcx + 0x5c], xmm0
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov rcx, qword [rsp + 0x170]
movss xmm0, dword [rax + 0x60]
movss dword [rcx + 0x60], xmm0
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov rcx, qword [rsp + 0x170]
movss xmm0, dword [rax + 0x64]
movss dword [rcx + 0x64], xmm0
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov rcx, qword [rsp + 0x170]
mov rax, qword [rax + 0x40]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x738]
mov qword [rax + 0x38], rcx
mov rax, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x738]
movss xmm0, dword [rcx + 4]
movss dword [rax + 0x10], xmm0
mov rcx, qword [rsp + 0x170]
call fcn.18016d3a0
mov dword [rsp + 0x1cc], 0
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021ad29
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 8]
mov dword [rsp + 0x1cc], eax
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7e], 0
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0xbc8]
mov dword [rax + 0x44], ecx
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0xbd8]
mov dword [rax + 0xe80], ecx
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, byte [rcx + rax + 0xcfc]
test eax, eax
jne 0x18021a59d
mov dword [rsp + 0x3b4], 1
jmp 0x18021a5a8
mov dword [rsp + 0x3b4], 0
mov rax, qword [rsp + 0x68]
movzx ecx, byte [rsp + 0x3b4]
mov byte [rax + 0x3e31], cl
mov rax, qword [rsp + 0x68]
mov dword [rax + 0x557c], 1
mov rax, qword [rsp + 0x80]
movss xmm0, dword [rax + 0xcf4]
subss xmm0, dword [rsp + 0x158]
mov rax, qword [rsp + 0xe8]
subss xmm0, dword [rax + 0x3c]
mov rax, qword [rsp + 0x58]
addss xmm0, dword [rax + 0x48]
movss dword [rsp + 0x1a0], xmm0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021a637
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xd8]
movss xmm0, dword [rax + 0xcf8]
subss xmm0, dword [rcx + 0xdc]
movss dword [rsp + 0x3b8], xmm0
jmp 0x18021a655
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rax + 0x3b48]
mulss xmm0, dword [0x1802aed5c]
movss dword [rsp + 0x3b8], xmm0
movss xmm0, dword [rsp + 0x3b8]
movss dword [rsp + 0x19c], xmm0
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0x69]
mov byte [rsp + 0xfe], al
movzx eax, byte [rsp + 0x88]
test eax, eax
je 0x18021a6a1
mov rcx, qword [rsp + 0x58]
call fcn.1802259b0
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7d], 1
jmp 0x18021aa61
movzx eax, byte [rsp + 0x8a]
test eax, eax
je 0x18021a936
mov eax, 2
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, word [rcx + rax + 0x35e2]
cmp eax, 2
jl 0x18021a936
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0d]
test eax, eax
jne 0x18021a936
mov rax, qword [rsp + 0x58]
add rax, 0x4c
movss xmm3, dword [rsp + 0x19c]
movss xmm2, dword [rsp + 0x1a0]
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.180236110
mov eax, 2
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, word [rcx + rax + 0x35e2]
sub eax, 2
mov dword [rsp + 0x5cc], eax
mov eax, dword [rsp + 0x5cc]
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
jne 0x18021a82b
mov rax, qword [rsp + 0x58]
cmp dword [rax + 0x4c], 0
je 0x18021a77f
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x4c]
dec eax
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180224300
movzx eax, ax
cmp eax, 0xa
je 0x18021a77f
mov byte [rsp + 0xb4], 0
jmp 0x18021a787
mov byte [rsp + 0xb4], 1
movzx eax, byte [rsp + 0xb4]
mov byte [rsp + 0xfc], al
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
jne 0x18021a7b4
movzx eax, byte [rsp + 0xfc]
test eax, eax
jne 0x18021a7c3
mov edx, 0x20000c
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
jne 0x18021a7e6
mov rax, qword [rsp + 0x58]
add rax, 0x4c
mov rcx, rax
call fcn.180237e00
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0x4c]
mov rcx, qword [rsp + 0x58]
call fcn.180224820
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x4c]
mov dword [rax + 0x54], ecx
mov rax, qword [rsp + 0x58]
add rax, 0x4c
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.180235fb0
jmp 0x18021a91c
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0x4c]
mov rcx, qword [rsp + 0x58]
call fcn.180224300
movzx eax, ax
cmp eax, 0xa
jne 0x18021a84f
mov byte [rsp + 0xb5], 1
jmp 0x18021a857
mov byte [rsp + 0xb5], 0
movzx eax, byte [rsp + 0xb5]
mov byte [rsp + 0xfd], al
mov edx, 0x200004
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
mov edx, 0x600005
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
mov edx, 0x600001
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
movzx eax, byte [rsp + 0xfd]
test eax, eax
jne 0x18021a910
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021a910
mov rax, qword [rsp + 0x58]
add rax, 0x54
mov qword [rsp + 0x748], rax
mov rax, qword [rsp + 0x58]
add rax, 0x50
mov qword [rsp + 0x740], rax
mov rax, qword [rsp + 0x740]
mov eax, dword [rax]
mov dword [rsp + 0x5d0], eax
mov rax, qword [rsp + 0x740]
mov rcx, qword [rsp + 0x748]
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rsp + 0x748]
mov ecx, dword [rsp + 0x5d0]
mov dword [rax], ecx
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
mov dword [rax + 0x4c], ecx
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7c], 0
mov rax, qword [rsp + 0x58]
movss xmm0, dword [0x1802b4744]
movss dword [rax + 0xe78], xmm0
jmp 0x18021aa61
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, byte [rcx + rax + 0x35d8]
test eax, eax
je 0x18021a9b1
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0xe7d]
test eax, eax
jne 0x18021a9b1
movzx eax, byte [rsp + 0x8a]
test eax, eax
je 0x18021a9ac
mov rax, qword [rsp + 0x58]
add rax, 0x4c
movss xmm3, dword [rsp + 0x19c]
movss xmm2, dword [rsp + 0x1a0]
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.180236110
mov rax, qword [rsp + 0x58]
movss xmm0, dword [0x1802b4744]
movss dword [rax + 0xe78], xmm0
jmp 0x18021aa61
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, byte [rcx + rax + 0xcfc]
test eax, eax
je 0x18021aa61
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0xe7d]
test eax, eax
jne 0x18021aa61
mov rax, qword [rsp + 0x80]
movss xmm0, dword [rax + 0xe8]
ucomiss xmm0, dword [0x1802ae2ac]
jp 0x18021aa18
jne 0x18021aa18
mov rax, qword [rsp + 0x80]
movss xmm0, dword [rax + 0xec]
ucomiss xmm0, dword [0x1802ae2ac]
jp 0x18021aa18
je 0x18021aa61
mov rax, qword [rsp + 0x58]
add rax, 0x4c
movss xmm3, dword [rsp + 0x19c]
movss xmm2, dword [rsp + 0x1a0]
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.1802366a0
mov rax, qword [rsp + 0x58]
movss xmm0, dword [0x1802b4744]
movss dword [rax + 0xe78], xmm0
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7c], 1
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0xe7d]
test eax, eax
je 0x18021aa9a
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x80]
movzx eax, byte [rcx + rax + 0xcfc]
test eax, eax
jne 0x18021aa9a
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7d], 0
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x18021aac0
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0e]
test eax, eax
je 0x18021aae9
movzx eax, byte [rsp + 0xfe]
test eax, eax
je 0x18021aadf
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0f]
test eax, eax
jne 0x18021aae9
mov byte [rsp + 0xb6], 0
jmp 0x18021aaf1
mov byte [rsp + 0xb6], 1
movzx eax, byte [rsp + 0xb6]
mov byte [rsp + 0xb7], al
mov eax, dword [rsp + 0xbd8]
and eax, 0x400
test eax, eax
je 0x18021abed
mov dl, 1
mov ecx, 0x200
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021abed
movzx eax, byte [rsp + 0xb7]
test eax, eax
jne 0x18021abed
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0d]
test eax, eax
jne 0x18021abed
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021abed
mov rax, qword [rsp + 0x80]
add rax, 0x36f0
mov qword [rsp + 0x9b0], rax
mov eax, 9
mov word [rsp + 0x1ca], ax
lea rdx, [rsp + 0x1ca]
mov rcx, qword [rsp + 0x9b0]
call fcn.180235020
movzx eax, al
test eax, eax
jne 0x18021abed
mov dword [rsp + 0x3bc], 9
mov dword [rsp + 0x20], 2
mov r9, qword [rsp + 0xbe8]
mov r8, qword [rsp + 0xbe0]
mov edx, dword [rsp + 0xbd8]
lea rcx, [rsp + 0x3bc]
call fcn.18021e960
movzx eax, al
test eax, eax
je 0x18021abed
mov edx, dword [rsp + 0x3bc]
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x36f0], 0
jle 0x18021ad29
movzx eax, byte [rsp + 0xb7]
test eax, eax
jne 0x18021ad04
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021ad04
movzx eax, byte [rsp + 0x91]
test eax, eax
jne 0x18021ad04
mov dword [rsp + 0x168], 0
jmp 0x18021ac4c
mov eax, dword [rsp + 0x168]
inc eax
mov dword [rsp + 0x168], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x36f0]
cmp dword [rsp + 0x168], eax
jge 0x18021ad04
mov rax, qword [rsp + 0x80]
add rax, 0x36f0
mov qword [rsp + 0x850], rax
movsxd rax, dword [rsp + 0x168]
mov rcx, qword [rsp + 0x850]
mov rcx, qword [rcx + 8]
movzx eax, word [rcx + rax*2]
mov dword [rsp + 0x1a4], eax
cmp dword [rsp + 0x1a4], 9
jne 0x18021acbb
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0d]
test eax, eax
je 0x18021acbb
jmp 0x18021ac3c
mov dword [rsp + 0x20], 2
mov r9, qword [rsp + 0xbe8]
mov r8, qword [rsp + 0xbe0]
mov edx, dword [rsp + 0xbd8]
lea rcx, [rsp + 0x1a4]
call fcn.18021e960
movzx eax, al
test eax, eax
je 0x18021acff
mov edx, dword [rsp + 0x1a4]
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021ac3c
mov rax, qword [rsp + 0x80]
add rax, 0x36f0
mov qword [rsp + 0x858], rax
xor edx, edx
mov rcx, qword [rsp + 0x858]
call fcn.180184830
mov byte [rsp + 0x8d], 0
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021c02d
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax + 0x3e30]
test eax, eax
jne 0x18021c02d
movzx eax, byte [rsp + 0x73]
test eax, eax
jne 0x18021c02d
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rsp + 0x12c]
subss xmm0, dword [rax + 0x40]
mov rax, qword [rsp + 0x68]
divss xmm0, dword [rax + 0x3b48]
cvttss2si eax, xmm0
mov dword [rsp + 0x3c0], eax
cmp dword [rsp + 0x3c0], 1
jl 0x18021adaf
mov eax, dword [rsp + 0x3c0]
mov dword [rsp + 0x3c8], eax
jmp 0x18021adba
mov dword [rsp + 0x3c8], 1
mov eax, dword [rsp + 0x3c8]
mov dword [rsp + 0x1a8], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x1a8]
mov dword [rax + 0x5c], ecx
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0d]
test eax, eax
je 0x18021adf7
mov dword [rsp + 0x3cc], 0x400000
jmp 0x18021ae02
mov dword [rsp + 0x3cc], 0
mov eax, dword [rsp + 0x3cc]
mov dword [rsp + 0x9c], eax
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0x69]
mov byte [rsp + 0x8c], al
movzx eax, byte [rsp + 0x8c]
test eax, eax
je 0x18021ae4a
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0xd60], 0xa
jne 0x18021ae4a
mov byte [rsp + 0xb8], 1
jmp 0x18021ae52
mov byte [rsp + 0xb8], 0
movzx eax, byte [rsp + 0xb8]
mov byte [rsp + 0x104], al
movzx eax, byte [rsp + 0x8c]
test eax, eax
je 0x18021ae85
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0e]
mov byte [rsp + 0xb9], al
jmp 0x18021ae9b
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
mov byte [rsp + 0xb9], al
movzx eax, byte [rsp + 0xb9]
mov byte [rsp + 0x92], al
movzx eax, byte [rsp + 0x8c]
test eax, eax
je 0x18021aef9
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0f]
test eax, eax
je 0x18021aef9
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
jne 0x18021aef9
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0e]
test eax, eax
jne 0x18021aef9
mov byte [rsp + 0xba], 1
jmp 0x18021af01
mov byte [rsp + 0xba], 0
movzx eax, byte [rsp + 0xba]
mov byte [rsp + 0x8b], al
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0xd60], 1
jne 0x18021af2b
mov byte [rsp + 0xbb], 1
jmp 0x18021af33
mov byte [rsp + 0xbb], 0
movzx eax, byte [rsp + 0xbb]
mov byte [rsp + 0xff], al
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0xd60], 2
jne 0x18021af5d
mov byte [rsp + 0xbc], 1
jmp 0x18021af65
mov byte [rsp + 0xbc], 0
movzx eax, byte [rsp + 0xbc]
mov byte [rsp + 0xbf], al
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax + 0x71]
test eax, eax
je 0x18021afba
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0xd60], 8
jne 0x18021af9f
mov dword [rsp + 0x3d0], 1
jmp 0x18021afaa
mov dword [rsp + 0x3d0], 0
mov eax, dword [rsp + 0x3d0]
mov dword [rsp + 0x3d8], eax
jmp 0x18021aff1
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0xd60], 1
jne 0x18021afd8
mov dword [rsp + 0x3d4], 1
jmp 0x18021afe3
mov dword [rsp + 0x3d4], 0
mov eax, dword [rsp + 0x3d4]
mov dword [rsp + 0x3d8], eax
movzx eax, byte [rsp + 0x3d8]
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x74]
test eax, eax
je 0x18021b019
mov dl, 1
mov ecx, 0x239
call fcn.180161d70
movzx eax, al
test eax, eax
jne 0x18021b038
movzx eax, byte [rsp + 0xbf]
test eax, eax
je 0x18021b096
mov dl, 1
mov ecx, 0x20a
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b096
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021b096
movzx eax, byte [rsp + 0x89]
test eax, eax
jne 0x18021b096
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021b08c
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021b075
mov dword [rsp + 0x3dc], 1
jmp 0x18021b080
mov dword [rsp + 0x3dc], 0
movzx eax, byte [rsp + 0x3dc]
test eax, eax
je 0x18021b096
mov byte [rsp + 0xbd], 1
jmp 0x18021b09e
mov byte [rsp + 0xbd], 0
movzx eax, byte [rsp + 0xbd]
mov byte [rsp + 0x93], al
movzx eax, byte [rsp + 0x74]
test eax, eax
je 0x18021b0c9
mov dl, 1
mov ecx, 0x224
call fcn.180161d70
movzx eax, al
test eax, eax
jne 0x18021b0e8
movzx eax, byte [rsp + 0xff]
test eax, eax
je 0x18021b13d
mov dl, 1
mov ecx, 0x209
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b13d
movzx eax, byte [rsp + 0x89]
test eax, eax
jne 0x18021b13d
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021b133
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021b11c
mov dword [rsp + 0x3e0], 1
jmp 0x18021b127
mov dword [rsp + 0x3e0], 0
movzx eax, byte [rsp + 0x3e0]
test eax, eax
je 0x18021b13d
mov byte [rsp + 0xbe], 1
jmp 0x18021b145
mov byte [rsp + 0xbe], 0
movzx eax, byte [rsp + 0xbe]
mov byte [rsp + 0xf0], al
movzx eax, byte [rsp + 0x74]
test eax, eax
je 0x18021b170
mov dl, 1
mov ecx, 0x237
call fcn.180161d70
movzx eax, al
test eax, eax
jne 0x18021b18f
movzx eax, byte [rsp + 0xbf]
test eax, eax
je 0x18021b1a2
mov dl, 1
mov ecx, 0x209
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b1a2
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021b1a2
mov byte [rsp + 0xc0], 1
jmp 0x18021b1aa
mov byte [rsp + 0xc0], 0
movzx eax, byte [rsp + 0xc0]
mov byte [rsp + 0xf1], al
movzx eax, byte [rsp + 0x74]
test eax, eax
je 0x18021b1f4
mov dl, 1
mov ecx, 0x23b
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b1f4
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021b1f4
movzx eax, byte [rsp + 0xcb]
test eax, eax
je 0x18021b1f4
mov byte [rsp + 0xc1], 1
jmp 0x18021b1fc
mov byte [rsp + 0xc1], 0
movzx eax, byte [rsp + 0xc1]
mov byte [rsp + 0xc8], al
movzx eax, byte [rsp + 0x74]
test eax, eax
je 0x18021b227
mov dl, 1
mov ecx, 0x23a
call fcn.180161d70
movzx eax, al
test eax, eax
jne 0x18021b246
movzx eax, byte [rsp + 0x104]
test eax, eax
je 0x18021b265
mov dl, 1
mov ecx, 0x23b
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b265
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021b265
movzx eax, byte [rsp + 0xcb]
test eax, eax
je 0x18021b265
mov byte [rsp + 0xc3], 1
jmp 0x18021b26d
mov byte [rsp + 0xc3], 0
movzx eax, byte [rsp + 0xc3]
mov byte [rsp + 0x108], al
mov dl, 1
mov ecx, 0x20d
call fcn.180161d70
movzx eax, al
test eax, eax
jne 0x18021b2ac
mov dl, 1
mov ecx, 0x267
call fcn.180161d70
movzx eax, al
test eax, eax
jne 0x18021b2ac
mov byte [rsp + 0xc4], 0
jmp 0x18021b2b4
mov byte [rsp + 0xc4], 1
movzx eax, byte [rsp + 0xc4]
mov byte [rsp + 0x105], al
mov edx, 1
xor ecx, ecx
call fcn.18015cdf0
comiss xmm0, dword [0x1802ae2ac]
jbe 0x18021b2e5
mov dword [rsp + 0x3e4], 1
jmp 0x18021b2f0
mov dword [rsp + 0x3e4], 0
movzx eax, byte [rsp + 0x3e4]
test eax, eax
je 0x18021b30f
mov dl, 1
mov ecx, 0x20c
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b355
mov edx, 1
mov ecx, 2
call fcn.18015cdf0
comiss xmm0, dword [0x1802ae2ac]
jbe 0x18021b334
mov dword [rsp + 0x3e8], 1
jmp 0x18021b33f
mov dword [rsp + 0x3e8], 0
movzx eax, byte [rsp + 0x3e8]
test eax, eax
jne 0x18021b355
mov byte [rsp + 0xc5], 0
jmp 0x18021b35d
mov byte [rsp + 0xc5], 1
movzx eax, byte [rsp + 0xc5]
mov byte [rsp + 0x106], al
mov dl, 1
mov ecx, 0x20e
call fcn.180161d70
movzx eax, al
test eax, eax
jne 0x18021b3c5
mov edx, 1
mov ecx, 1
call fcn.18015cdf0
comiss xmm0, dword [0x1802ae2ac]
jbe 0x18021b3a4
mov dword [rsp + 0x400], 1
jmp 0x18021b3af
mov dword [rsp + 0x400], 0
movzx eax, byte [rsp + 0x400]
test eax, eax
jne 0x18021b3c5
mov byte [rsp + 0xc6], 0
jmp 0x18021b3cd
mov byte [rsp + 0xc6], 1
movzx eax, byte [rsp + 0xc6]
mov byte [rsp + 0x107], al
mov dl, 1
mov ecx, 0x201
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b45d
movzx eax, byte [rsp + 0x8b]
test eax, eax
je 0x18021b408
mov dword [rsp + 0x214], 0x200004
jmp 0x18021b43a
movzx eax, byte [rsp + 0x92]
test eax, eax
je 0x18021b421
mov dword [rsp + 0x210], 0x20000c
jmp 0x18021b42c
mov dword [rsp + 0x210], 0x200000
mov eax, dword [rsp + 0x210]
mov dword [rsp + 0x214], eax
mov eax, dword [rsp + 0x9c]
mov ecx, dword [rsp + 0x214]
or ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x202
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b4de
movzx eax, byte [rsp + 0x8b]
test eax, eax
je 0x18021b489
mov dword [rsp + 0x21c], 0x200005
jmp 0x18021b4bb
movzx eax, byte [rsp + 0x92]
test eax, eax
je 0x18021b4a2
mov dword [rsp + 0x218], 0x20000d
jmp 0x18021b4ad
mov dword [rsp + 0x218], 0x200001
mov eax, dword [rsp + 0x218]
mov dword [rsp + 0x21c], eax
mov eax, dword [rsp + 0x9c]
mov ecx, dword [rsp + 0x21c]
or ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x203
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b5c9
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021b5c9
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x18021b582
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x68]
movss xmm0, dword [rax + 0x60]
subss xmm0, dword [rcx + 0x3b48]
movss dword [rsp + 0x220], xmm0
movss xmm0, dword [rsp + 0x220]
comiss xmm0, dword [0x1802ae2ac]
jb 0x18021b55e
movss xmm0, dword [rsp + 0x220]
movss dword [rsp + 0x228], xmm0
jmp 0x18021b56a
xorps xmm0, xmm0
movss dword [rsp + 0x228], xmm0
movss xmm1, dword [rsp + 0x228]
mov rcx, qword [rsp + 0xd8]
call fcn.180177770
jmp 0x18021b5c4
movzx eax, byte [rsp + 0x8b]
test eax, eax
je 0x18021b59b
mov dword [rsp + 0x22c], 0x200006
jmp 0x18021b5a6
mov dword [rsp + 0x22c], 0x200002
mov eax, dword [rsp + 0x9c]
mov ecx, dword [rsp + 0x22c]
or ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x204
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b6cd
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021b6cd
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x18021b686
call fcn.18015d5e0
movss dword [rsp + 0x234], xmm0
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x68]
movss xmm0, dword [rax + 0x60]
addss xmm0, dword [rcx + 0x3b48]
movss dword [rsp + 0x230], xmm0
movss xmm0, dword [rsp + 0x234]
comiss xmm0, dword [rsp + 0x230]
jbe 0x18021b65c
movss xmm0, dword [rsp + 0x230]
movss dword [rsp + 0x238], xmm0
jmp 0x18021b66e
movss xmm0, dword [rsp + 0x234]
movss dword [rsp + 0x238], xmm0
movss xmm1, dword [rsp + 0x238]
mov rcx, qword [rsp + 0xd8]
call fcn.180177770
jmp 0x18021b6c8
movzx eax, byte [rsp + 0x8b]
test eax, eax
je 0x18021b69f
mov dword [rsp + 0x23c], 0x200007
jmp 0x18021b6aa
mov dword [rsp + 0x23c], 0x200003
mov eax, dword [rsp + 0x9c]
mov ecx, dword [rsp + 0x23c]
or ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x205
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b735
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021b735
mov eax, dword [rsp + 0x9c]
or eax, 0x20000e
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
cvtsi2ss xmm0, dword [rsp + 0x1a8]
mov rax, qword [rsp + 0x68]
mulss xmm0, dword [rax + 0x3b48]
movss xmm1, dword [rsp + 0x98]
subss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rsp + 0x98], xmm0
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x206
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b79d
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021b79d
mov eax, dword [rsp + 0x9c]
or eax, 0x20000f
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
cvtsi2ss xmm0, dword [rsp + 0x1a8]
mov rax, qword [rsp + 0x68]
mulss xmm0, dword [rax + 0x3b48]
movss xmm1, dword [rsp + 0x98]
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rsp + 0x98], xmm0
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x207
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b801
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x18021b7d8
mov eax, dword [rsp + 0x9c]
or eax, 0x200006
mov dword [rsp + 0x240], eax
jmp 0x18021b7eb
mov eax, dword [rsp + 0x9c]
or eax, 0x200004
mov dword [rsp + 0x240], eax
mov edx, dword [rsp + 0x240]
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x208
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b865
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x18021b83c
mov eax, dword [rsp + 0x9c]
or eax, 0x200007
mov dword [rsp + 0x244], eax
jmp 0x18021b84f
mov eax, dword [rsp + 0x9c]
or eax, 0x200005
mov dword [rsp + 0x244], eax
mov edx, dword [rsp + 0x244]
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x20a
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b8aa
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021b8aa
movzx eax, byte [rsp + 0x93]
test eax, eax
jne 0x18021b8aa
mov eax, dword [rsp + 0x9c]
or eax, 0x200008
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
mov dl, 1
mov ecx, 0x20b
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021b992
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021b992
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021b8ed
mov dword [rsp + 0x248], 1
jmp 0x18021b8f8
mov dword [rsp + 0x248], 0
movzx eax, byte [rsp + 0x248]
test eax, eax
jne 0x18021b975
movzx eax, byte [rsp + 0x92]
test eax, eax
je 0x18021b921
mov edx, 0x60000c
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021b975
movzx eax, byte [rsp + 0x8c]
test eax, eax
je 0x18021b975
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0f]
test eax, eax
je 0x18021b975
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0e]
test eax, eax
jne 0x18021b975
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
jne 0x18021b975
mov edx, 0x600004
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
mov eax, dword [rsp + 0x9c]
or eax, 0x200009
mov edx, eax
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
movzx eax, byte [rsp + 0x105]
test eax, eax
je 0x18021ba90
mov eax, dword [rsp + 0xbd8]
and eax, 0x800
test eax, eax
je 0x18021b9bf
mov dword [rsp + 0x24c], 1
jmp 0x18021b9ca
mov dword [rsp + 0x24c], 0
movzx eax, byte [rsp + 0x24c]
mov byte [rsp + 0xc7], al
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021ba20
movzx eax, byte [rsp + 0xc7]
test eax, eax
je 0x18021ba01
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x18021ba20
movzx eax, byte [rsp + 0xc7]
test eax, eax
jne 0x18021ba33
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0xd0c]
test eax, eax
je 0x18021ba33
mov byte [rsp + 0x73], 1
movzx eax, byte [rsp + 0x73]
mov byte [rsp + 0x8f], al
jmp 0x18021ba8b
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021ba8b
mov dword [rsp + 0x250], 0xa
mov dword [rsp + 0x20], 2
mov r9, qword [rsp + 0xbe8]
mov r8, qword [rsp + 0xbe0]
mov edx, dword [rsp + 0xbd8]
lea rcx, [rsp + 0x250]
call fcn.18021e960
movzx eax, al
test eax, eax
je 0x18021ba8b
mov edx, dword [rsp + 0x250]
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
jmp 0x18021bfc0
movzx eax, byte [rsp + 0x106]
test eax, eax
je 0x18021bab2
mov byte [rsp + 0x73], 1
movzx eax, byte [rsp + 0x73]
mov byte [rsp + 0x8f], al
jmp 0x18021bfc0
movzx eax, byte [rsp + 0x107]
test eax, eax
je 0x18021bad7
mov byte [rsp + 0x8d], 1
movzx eax, byte [rsp + 0x8d]
mov byte [rsp + 0x73], al
jmp 0x18021bfc0
movzx eax, byte [rsp + 0xc8]
test eax, eax
jne 0x18021baef
movzx eax, byte [rsp + 0x108]
test eax, eax
je 0x18021bb49
movzx eax, byte [rsp + 0xc8]
test eax, eax
je 0x18021bb08
mov dword [rsp + 0x254], 0x20000a
jmp 0x18021bb13
mov dword [rsp + 0x254], 0x20000b
mov edx, dword [rsp + 0x254]
mov rcx, qword [rsp + 0x58]
call fcn.180220c90
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x4c]
mov dword [rax + 0x54], ecx
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
mov dword [rax + 0x50], ecx
jmp 0x18021bfc0
movzx eax, byte [rsp + 0x74]
test eax, eax
je 0x18021bb80
mov dl, 1
mov ecx, 0x222
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021bb80
mov rcx, qword [rsp + 0x58]
call fcn.1802259b0
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7c], 1
jmp 0x18021bfc0
movzx eax, byte [rsp + 0x93]
test eax, eax
jne 0x18021bb9c
movzx eax, byte [rsp + 0xf0]
test eax, eax
je 0x18021be30
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0xa8], 0
je 0x18021bdbd
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021bbd1
mov dword [rsp + 0x258], 1
jmp 0x18021bbdc
mov dword [rsp + 0x258], 0
movzx eax, byte [rsp + 0x258]
test eax, eax
je 0x18021bc44
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x54]
mov dword [rsp + 0x268], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x260], eax
mov eax, dword [rsp + 0x268]
cmp dword [rsp + 0x260], eax
jge 0x18021bc26
mov eax, dword [rsp + 0x260]
mov dword [rsp + 0x270], eax
jmp 0x18021bc34
mov eax, dword [rsp + 0x268]
mov dword [rsp + 0x270], eax
mov eax, dword [rsp + 0x270]
mov dword [rsp + 0x274], eax
jmp 0x18021bc4f
mov dword [rsp + 0x274], 0
mov eax, dword [rsp + 0x274]
mov dword [rsp + 0x29c], eax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021bc7c
mov dword [rsp + 0x278], 1
jmp 0x18021bc87
mov dword [rsp + 0x278], 0
movzx eax, byte [rsp + 0x278]
test eax, eax
je 0x18021bcef
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x54]
mov dword [rsp + 0x288], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x280], eax
mov eax, dword [rsp + 0x288]
cmp dword [rsp + 0x280], eax
jl 0x18021bcd1
mov eax, dword [rsp + 0x280]
mov dword [rsp + 0x290], eax
jmp 0x18021bcdf
mov eax, dword [rsp + 0x288]
mov dword [rsp + 0x290], eax
mov eax, dword [rsp + 0x290]
mov dword [rsp + 0x294], eax
jmp 0x18021bcfe
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
mov dword [rsp + 0x294], eax
mov eax, dword [rsp + 0x294]
mov dword [rsp + 0x298], eax
movsxd rax, dword [rsp + 0x298]
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx + 0x18]
lea rax, [rcx + rax*2]
movsxd rcx, dword [rsp + 0x29c]
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx + 0x18]
lea rcx, [rdx + rcx*2]
mov rdx, rax
call fcn.180160af0
inc eax
mov dword [rsp + 0x2a0], eax
movsxd rax, dword [rsp + 0x2a0]
mov rcx, rax
call fcn.180164830
mov qword [rsp + 0x650], rax
movsxd rax, dword [rsp + 0x298]
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx + 0x18]
lea rax, [rcx + rax*2]
movsxd rcx, dword [rsp + 0x29c]
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx + 0x18]
lea rcx, [rdx + rcx*2]
mov r9, rax
mov r8, rcx
mov edx, dword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x650]
call fcn.180160cd0
mov rcx, qword [rsp + 0x650]
call fcn.180174660
mov rcx, qword [rsp + 0x650]
call fcn.180164890
movzx eax, byte [rsp + 0x93]
test eax, eax
je 0x18021be2b
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021bde8
mov dword [rsp + 0x2a4], 1
jmp 0x18021bdf3
mov dword [rsp + 0x2a4], 0
movzx eax, byte [rsp + 0x2a4]
test eax, eax
jne 0x18021be09
mov rcx, qword [rsp + 0x58]
call fcn.1802259b0
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7c], 1
mov rax, qword [rsp + 0x58]
add rax, 0x4c
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.1802361a0
jmp 0x18021bfc0
movzx eax, byte [rsp + 0xf1]
test eax, eax
je 0x18021bfc0
call fcn.18015ab30
mov qword [rsp + 0x658], rax
cmp qword [rsp + 0x658], 0
je 0x18021bfc0
mov rcx, qword [rsp + 0x658]
call fcn.1802448f0
mov dword [rsp + 0x5d4], eax
mov eax, dword [rsp + 0x5d4]
inc eax
cdqe
shl rax, 1
mov rcx, rax
call fcn.180164830
mov qword [rsp + 0x458], rax
mov dword [rsp + 0x120], 0
mov rax, qword [rsp + 0x658]
mov qword [rsp + 0x450], rax
mov rax, qword [rsp + 0x450]
movsx eax, byte [rax]
test eax, eax
je 0x18021bf61
xor r8d, r8d
mov rdx, qword [rsp + 0x450]
lea rcx, [rsp + 0x1d0]
call fcn.1801603f0
cdqe
mov rcx, qword [rsp + 0x450]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x450], rax
cmp dword [rsp + 0x1d0], 0
jne 0x18021bef8
jmp 0x18021bf61
mov dword [rsp + 0x20], 4
mov r9, qword [rsp + 0xbe8]
mov r8, qword [rsp + 0xbe0]
mov edx, dword [rsp + 0xbd8]
lea rcx, [rsp + 0x1d0]
call fcn.18021e960
movzx eax, al
test eax, eax
jne 0x18021bf30
jmp 0x18021bea9
movsxd rax, dword [rsp + 0x120]
mov rcx, qword [rsp + 0x458]
movzx edx, word [rsp + 0x1d0]
mov word [rcx + rax*2], dx
mov eax, dword [rsp + 0x120]
inc eax
mov dword [rsp + 0x120], eax
jmp 0x18021bea9
movsxd rax, dword [rsp + 0x120]
xor ecx, ecx
mov rdx, qword [rsp + 0x458]
mov word [rdx + rax*2], cx
cmp dword [rsp + 0x120], 0
jle 0x18021bfb3
mov rax, qword [rsp + 0x58]
add rax, 0x4c
mov r9d, dword [rsp + 0x120]
mov r8, qword [rsp + 0x458]
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.180237d20
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7c], 1
mov rcx, qword [rsp + 0x458]
call fcn.180164890
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx + 0x54]
cmp dword [rax + 0x50], ecx
je 0x18021bfdf
mov dword [rsp + 0x2a8], 1
jmp 0x18021bfea
mov dword [rsp + 0x2a8], 0
movzx eax, byte [rsp + 0x2a8]
test eax, eax
je 0x18021c012
xor eax, eax
test eax, eax
jne 0x18021c005
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18021c012
mov dword [rsp + 0x2ac], 1
jmp 0x18021c01d
mov dword [rsp + 0x2ac], 0
movzx eax, byte [rsp + 0x70]
or eax, dword [rsp + 0x2ac]
mov byte [rsp + 0x70], al
mov qword [rsp + 0x178], 0
mov dword [rsp + 0xd4], 0
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021c7fe
movzx eax, byte [rsp + 0x8d]
test eax, eax
je 0x18021c1bc
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021c1bc
mov rax, qword [rsp + 0x58]
mov rdx, qword [rax + 0x38]
mov rcx, qword [rsp + 0xbc0]
call fcn.18000deb0
test eax, eax
je 0x18021c1bc
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x30]
dec eax
mov dword [rsp + 0xd4], eax
mov dword [rsp + 0x474], 0
mov dword [rsp + 0x470], 0
mov qword [rsp + 0x478], 0
cmp dword [rsp + 0xd4], 0
jle 0x18021c157
movsxd rax, dword [rsp + 0xd4]
mov rcx, qword [rsp + 0x178]
add rcx, rax
mov rax, rcx
mov rdx, rax
mov rcx, qword [rsp + 0x178]
call fcn.180160a40
inc eax
mov edx, eax
lea rcx, [rsp + 0x470]
call fcn.180184830
movsxd rax, dword [rsp + 0xd4]
mov rcx, qword [rsp + 0x178]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], 0
mov r9, rax
mov r8, qword [rsp + 0x178]
mov edx, dword [rsp + 0x470]
mov rcx, qword [rsp + 0x478]
call fcn.180160be0
cmp dword [rsp + 0xd4], 0
jle 0x18021c173
mov eax, dword [rsp + 0x470]
dec eax
mov dword [rsp + 0x2b0], eax
jmp 0x18021c17e
mov dword [rsp + 0x2b0], 0
mov rax, qword [rsp + 0x58]
add rax, 0x4c
mov r9d, dword [rsp + 0x2b0]
mov r8, qword [rsp + 0x478]
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.180237e50
cmp qword [rsp + 0x478], 0
je 0x18021c1bc
mov rcx, qword [rsp + 0x478]
call fcn.180164890
movzx eax, byte [rsp + 0x8d]
test eax, eax
je 0x18021c1ef
movzx eax, byte [rsp + 0x8f]
test eax, eax
je 0x18021c1e2
mov eax, dword [rsp + 0xbd8]
and eax, 0x20
test eax, eax
jne 0x18021c1ef
mov dword [rsp + 0x2b4], 0
jmp 0x18021c1fa
mov dword [rsp + 0x2b4], 1
movzx eax, byte [rsp + 0x2b4]
mov byte [rsp + 0xf2], al
movzx eax, byte [rsp + 0xf2]
test eax, eax
je 0x18021c7ef
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021c27c
mov rax, qword [rsp + 0x58]
mov byte [rax + 0x40], 1
mov rax, qword [rsp + 0x58]
add rax, 0x20
mov qword [rsp + 0x860], rax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x10]
lea eax, [rax*4 + 1]
mov edx, eax
mov rcx, qword [rsp + 0x860]
call fcn.1801847a0
xor r9d, r9d
mov rax, qword [rsp + 0x58]
mov r8, qword [rax + 0x18]
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0x20]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x28]
call fcn.180160cd0
mov eax, dword [rsp + 0xbd8]
and eax, 0x801c0
test eax, eax
je 0x18021c7ac
mov dword [rsp + 0x100], 0
mov dword [rsp + 0x16c], 0
mov eax, dword [rsp + 0xbd8]
and eax, 0x40
test eax, eax
je 0x18021c2e2
mov dl, 1
mov ecx, 0x200
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021c2e2
mov dword [rsp + 0x100], 0x40
mov dword [rsp + 0x16c], 0x200
jmp 0x18021c3a3
mov eax, dword [rsp + 0xbd8]
and eax, 0x80
test eax, eax
je 0x18021c320
mov dl, 1
mov ecx, 0x203
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021c320
mov dword [rsp + 0x100], 0x80
mov dword [rsp + 0x16c], 0x203
jmp 0x18021c3a3
mov eax, dword [rsp + 0xbd8]
and eax, 0x80
test eax, eax
je 0x18021c35b
mov dl, 1
mov ecx, 0x204
call fcn.180161d70
movzx eax, al
test eax, eax
je 0x18021c35b
mov dword [rsp + 0x100], 0x80
mov dword [rsp + 0x16c], 0x204
jmp 0x18021c3a3
mov eax, dword [rsp + 0xbd8]
and eax, 0x80000
test eax, eax
je 0x18021c388
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0xe7e]
test eax, eax
je 0x18021c388
mov dword [rsp + 0x100], 0x80000
jmp 0x18021c3a3
mov eax, dword [rsp + 0xbd8]
and eax, 0x100
test eax, eax
je 0x18021c3a3
mov dword [rsp + pe_nt_image_headers64], 0x100
cmp dword [rsp + 0x100], 0
je 0x18021c7ac
lea rcx, [rsp + 0x418]
call fcn.1801ea130
mov r8d, 0x38
xor edx, edx
lea rcx, [rsp + 0x418]
call fcn.1802aaaa0
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x418], eax
mov eax, dword [rsp + 0xbd8]
mov dword [rsp + 0x41c], eax
mov rax, qword [rsp + 0xbe8]
mov qword [rsp + 0x420], rax
movzx eax, byte [rsp + 0x60]
test eax, eax
je 0x18021c41a
mov rax, qword [rsp + 0xbc0]
mov qword [rsp + 0x750], rax
jmp 0x18021c42b
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x750], rax
mov rax, qword [rsp + 0x750]
mov qword [rsp + 0x760], rax
mov eax, dword [rsp + 0x16c]
mov dword [rsp + 0x42c], eax
mov rax, qword [rsp + 0x760]
mov qword [rsp + 0x430], rax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 8]
mov dword [rsp + 0x438], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x43c], eax
mov byte [rsp + 0x440], 0
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x1f8], rax
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 0x4c]
mov rcx, qword [rsp + 0x1f8]
lea rax, [rcx + rax*2]
mov rdx, rax
mov rcx, qword [rsp + 0x1f8]
call fcn.180160af0
mov dword [rsp + 0x444], eax
mov eax, dword [rsp + 0x444]
mov dword [rsp + 0x5d8], eax
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 0x50]
mov rcx, qword [rsp + 0x1f8]
lea rax, [rcx + rax*2]
mov rdx, rax
mov rcx, qword [rsp + 0x1f8]
call fcn.180160af0
mov dword [rsp + 0x448], eax
mov eax, dword [rsp + 0x448]
mov dword [rsp + 0x5dc], eax
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 0x54]
mov rcx, qword [rsp + 0x1f8]
lea rax, [rcx + rax*2]
mov rdx, rax
mov rcx, qword [rsp + 0x1f8]
call fcn.180160af0
mov dword [rsp + 0x44c], eax
mov eax, dword [rsp + 0x44c]
mov dword [rsp + 0x5e0], eax
mov rax, qword [rsp + 0xbe0]
mov qword [rsp + 0x868], rax
lea rcx, [rsp + 0x418]
call qword [rsp + 0x868]
movzx eax, byte [rsp + 0x60]
test eax, eax
je 0x18021c578
mov rax, qword [rsp + 0xbc0]
mov qword [rsp + 0x758], rax
jmp 0x18021c589
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x758], rax
mov rax, qword [rsp + 0x758]
mov qword [rsp + 0x760], rax
movzx eax, byte [rsp + 0x440]
mov byte [rsp + 0x8e], al
mov eax, dword [rsp + 0x5d8]
cmp dword [rsp + 0x444], eax
jne 0x18021c5c4
movzx eax, byte [rsp + 0x8e]
test eax, eax
je 0x18021c5fe
movsxd rax, dword [rsp + 0x444]
mov rcx, qword [rsp + 0x430]
add rcx, rax
mov rax, rcx
mov rdx, rax
mov rcx, qword [rsp + 0x430]
call fcn.180160a40
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7c], 1
mov eax, dword [rsp + 0x5dc]
cmp dword [rsp + 0x448], eax
jne 0x18021c61a
movzx eax, byte [rsp + 0x8e]
test eax, eax
je 0x18021c677
mov eax, dword [rsp + 0x444]
cmp dword [rsp + 0x448], eax
jne 0x18021c63b
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x2b8], eax
jmp 0x18021c668
movsxd rax, dword [rsp + 0x448]
mov rcx, qword [rsp + 0x430]
add rcx, rax
mov rax, rcx
mov rdx, rax
mov rcx, qword [rsp + 0x430]
call fcn.180160a40
mov dword [rsp + 0x2b8], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x2b8]
mov dword [rax + 0x50], ecx
mov eax, dword [rsp + 0x5e0]
cmp dword [rsp + 0x44c], eax
jne 0x18021c693
movzx eax, byte [rsp + 0x8e]
test eax, eax
je 0x18021c6f0
mov eax, dword [rsp + 0x448]
cmp dword [rsp + 0x44c], eax
jne 0x18021c6b4
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x2bc], eax
jmp 0x18021c6e1
movsxd rax, dword [rsp + 0x44c]
mov rcx, qword [rsp + 0x430]
add rcx, rax
mov rax, rcx
mov rdx, rax
mov rcx, qword [rsp + 0x430]
call fcn.180160a40
mov dword [rsp + 0x2bc], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x2bc]
mov dword [rax + 0x54], ecx
movzx eax, byte [rsp + 0x8e]
test eax, eax
je 0x18021c7ac
mov eax, dword [rsp + 0x1cc]
cmp dword [rsp + 0x438], eax
jle 0x18021c756
movzx eax, byte [rsp + 0x94]
test eax, eax
je 0x18021c756
mov rax, qword [rsp + 0x58]
add rax, 0x10
mov qword [rsp + 0x870], rax
mov eax, dword [rsp + 0x1cc]
mov ecx, dword [rsp + 0x438]
sub ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x58]
add eax, dword [rcx + 0x10]
mov edx, eax
mov rcx, qword [rsp + 0x870]
call fcn.180184830
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rsp + 0x430]
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0x10]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x18]
call fcn.180160be0
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x438]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x58]
movss xmm0, dword [0x1802b4744]
movss dword [rax + 0xe78], xmm0
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021c7ef
mov rdx, qword [rsp + 0xbc0]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x28]
call fcn.18000deb0
test eax, eax
je 0x18021c7ef
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 8]
mov dword [rsp + 0xd4], eax
mov rax, qword [rsp + 0x58]
mov dword [rax + 0xe80], 0
cmp qword [rsp + 0x178], 0
je 0x18021c9ac
movzx eax, byte [rsp + 0x94]
test eax, eax
je 0x18021c946
lea rcx, [rsp + 0xa00]
call fcn.1801ea130
mov dword [rsp + 0xa00], 0x40000
mov eax, dword [rsp + 0xbd8]
mov dword [rsp + 0xa04], eax
mov rax, qword [rsp + 0xbc0]
mov qword [rsp + 0xa18], rax
mov eax, dword [rsp + 0xd4]
mov dword [rsp + 0xa20], eax
mov eax, dword [rsp + 0xd4]
inc eax
mov dword [rsp + 0x2c0], eax
mov eax, dword [rsp + 0x2c0]
cmp dword [rsp + 0xbc8], eax
jl 0x18021c891
mov eax, dword [rsp + 0xbc8]
mov dword [rsp + 0x2c8], eax
jmp 0x18021c89f
mov eax, dword [rsp + 0x2c0]
mov dword [rsp + 0x2c8], eax
mov eax, dword [rsp + 0x2c8]
mov dword [rsp + 0xa24], eax
mov rax, qword [rsp + 0xbe8]
mov qword [rsp + 0xa08], rax
mov rax, qword [rsp + 0xbe0]
mov qword [rsp + 0x878], rax
lea rcx, [rsp + 0xa00]
call qword [rsp + 0x878]
mov rax, qword [rsp + 0xa18]
mov qword [rsp + 0xbc0], rax
mov eax, dword [rsp + 0xa24]
mov dword [rsp + 0xbc8], eax
mov eax, dword [rsp + 0xbc8]
dec eax
mov dword [rsp + 0x2d0], eax
mov eax, dword [rsp + 0x2d0]
cmp dword [rsp + 0xa20], eax
jge 0x18021c92a
mov eax, dword [rsp + 0xa20]
mov dword [rsp + 0x2d8], eax
jmp 0x18021c938
mov eax, dword [rsp + 0x2d0]
mov dword [rsp + 0x2d8], eax
mov eax, dword [rsp + 0x2d8]
mov dword [rsp + 0xd4], eax
mov eax, dword [rsp + 0xd4]
inc eax
mov dword [rsp + 0x2e0], eax
mov eax, dword [rsp + 0xbc8]
cmp dword [rsp + 0x2e0], eax
jge 0x18021c976
mov eax, dword [rsp + 0x2e0]
mov dword [rsp + 0x2e8], eax
jmp 0x18021c984
mov eax, dword [rsp + 0xbc8]
mov dword [rsp + 0x2e8], eax
movsxd rax, dword [rsp + 0x2e8]
mov r8, rax
mov rdx, qword [rsp + 0x178]
mov rcx, qword [rsp + 0xbc0]
call fcn.1801602f0
mov byte [rsp + 0x95], 1
movzx eax, byte [rsp + 0x73]
test eax, eax
je 0x18021c9cb
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021c9cb
call fcn.180154cf0
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x18021ca49
mov r8d, 1
mov edx, dword [rsp + 0x78]
lea rcx, [rsp + 0x158]
call fcn.18016ef40
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rax + 0x44]
movss dword [rsp + 0x5e4], xmm0
movss xmm1, dword [0x1802ae230]
mov ecx, 7
call fcn.18015ad90
mov dword [rsp + 0x5e8], eax
movss xmm0, dword [rsp + 0x5e4]
movss dword [rsp + 0x20], xmm0
mov r9b, 1
mov r8d, dword [rsp + 0x5e8]
mov rdx, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x158]
call fcn.18016ea50
movss xmm0, dword [rsp + 0x15c]
addss xmm0, dword [rsp + 0x12c]
movss dword [rsp + 0x608], xmm0
movss xmm0, dword [rsp + 0x158]
addss xmm0, dword [rsp + 0x128]
movss dword [rsp + 0x600], xmm0
movss xmm0, dword [rsp + 0x15c]
movss dword [rsp + 0x5f8], xmm0
movss xmm0, dword [rsp + 0x158]
movss dword [rsp + 0x5f0], xmm0
movss xmm0, dword [rsp + 0x5f0]
movss dword [rsp + 0x408], xmm0
movss xmm0, dword [rsp + 0x5f8]
movss dword [rsp + 0x40c], xmm0
movss xmm0, dword [rsp + 0x600]
movss dword [rsp + 0x410], xmm0
movss xmm0, dword [rsp + 0x608]
movss dword [rsp + 0x414], xmm0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021cb20
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0xd8]
mov qword [rsp + 0x880], rax
lea rax, [rsp + 0x880]
mov qword [rsp + 0x778], rax
jmp 0x18021cba5
mov rax, qword [rsp + 0xe8]
add rax, 0x3c
mov qword [rsp + 0x768], rax
mov rax, qword [rsp + 0x768]
movss xmm0, dword [rsp + 0x15c]
addss xmm0, dword [rax + 4]
movss dword [rsp + 0x618], xmm0
mov rax, qword [rsp + 0x768]
movss xmm0, dword [rsp + 0x158]
addss xmm0, dword [rax]
movss dword [rsp + 0x610], xmm0
movss xmm0, dword [rsp + 0x610]
movss dword [rsp + 0x770], xmm0
movss xmm0, dword [rsp + 0x618]
movss dword [rsp + 0x774], xmm0
lea rax, [rsp + 0x770]
mov qword [rsp + 0x778], rax
mov rax, qword [rsp + 0x778]
mov qword [rsp + 0x888], rax
mov rax, qword [rsp + 0x888]
mov rax, qword [rax]
mov qword [rsp + 0x130], rax
xorps xmm0, xmm0
movss dword [rsp + 0x208], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x20c], xmm0
mov dword [rsp + 0x968], 0x200000
movzx eax, byte [rsp + 0xc9]
test eax, eax
je 0x18021cc0a
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x780], rax
jmp 0x18021cc1a
mov rax, qword [rsp + 0xbc0]
mov qword [rsp + 0x780], rax
mov rax, qword [rsp + 0x780]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], 0
movzx eax, byte [rsp + 0x72]
test eax, eax
je 0x18021cc74
mov rax, qword [rsp + 0xbb8]
mov qword [rsp + 0x138], rax
mov rcx, qword [rsp + 0xbb8]
call fcn.1802448f0
mov eax, eax
mov rcx, qword [rsp + 0xbb8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x140], rax
movzx eax, byte [rsp + 0x71]
test eax, eax
jne 0x18021cc8a
movzx eax, byte [rsp + 0x70]
test eax, eax
je 0x18021e188
movzx eax, byte [rsp + 0x72]
test eax, eax
jne 0x18021ccb2
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 8]
mov rcx, qword [rsp + 0x138]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x1d8], rax
xorps xmm0, xmm0
movss dword [rsp + 0x11c], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x118], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x3fc], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x3f8], xmm0
mov qword [rsp + 0x480], 0
mov qword [rsp + 0x488], 0
mov dword [rsp + 0x110], 0xfffffc18
mov dword [rsp + 0x114], 0xfffffc18
mov dword [rsp + 0xa0], 0
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18021cd7f
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 0x4c]
mov rcx, qword [rsp + 0x1d8]
lea rax, [rcx + rax*2]
mov ecx, 8
imul rcx, rcx, 0
mov qword [rsp + rcx + 0x480], rax
mov eax, 4
imul rax, rax, 0
mov dword [rsp + rax + 0x110], 0xffffffff
mov eax, dword [rsp + 0xa0]
inc eax
mov dword [rsp + 0xa0], eax
movzx eax, byte [rsp + 0x70]
test eax, eax
je 0x18021ce21
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x54]
mov dword [rsp + 0x2f8], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x2f0], eax
mov eax, dword [rsp + 0x2f8]
cmp dword [rsp + 0x2f0], eax
jge 0x18021cdca
mov eax, dword [rsp + 0x2f0]
mov dword [rsp + 0x39c], eax
jmp 0x18021cdd8
mov eax, dword [rsp + 0x2f8]
mov dword [rsp + 0x39c], eax
movsxd rax, dword [rsp + 0x39c]
mov rcx, qword [rsp + 0x1d8]
lea rax, [rcx + rax*2]
mov ecx, 8
imul rcx, rcx, 1
mov qword [rsp + rcx + 0x480], rax
mov eax, 4
imul rax, rax, 1
mov dword [rsp + rax + 0x110], 0xffffffff
mov eax, dword [rsp + 0xa0]
inc eax
mov dword [rsp + 0xa0], eax
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021ce37
mov dword [rsp + 0x304], 1
jmp 0x18021ce42
mov dword [rsp + 0x304], 0
mov eax, dword [rsp + 0x304]
mov ecx, dword [rsp + 0xa0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0xe0], 0
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x200], rax
jmp 0x18021ce8c
mov rax, qword [rsp + 0x200]
add rax, 2
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x200]
movzx eax, word [rax]
test eax, eax
je 0x18021cf8a
mov rax, qword [rsp + 0x200]
movzx eax, word [rax]
cmp eax, 0xa
jne 0x18021cf85
mov eax, dword [rsp + 0xe0]
inc eax
mov dword [rsp + 0xe0], eax
mov eax, 4
imul rax, rax, 0
cmp dword [rsp + rax + 0x110], 0xffffffff
jne 0x18021cf24
mov eax, 8
imul rax, rax, 0
mov rax, qword [rsp + rax + 0x480]
cmp qword [rsp + 0x200], rax
jb 0x18021cf24
mov eax, 4
imul rax, rax, 0
mov ecx, dword [rsp + 0xe0]
mov dword [rsp + rax + 0x110], ecx
mov eax, dword [rsp + 0xa0]
dec eax
mov dword [rsp + 0xa0], eax
cmp dword [rsp + 0xa0], 0
jg 0x18021cf24
jmp 0x18021cf8a
mov eax, 4
imul rax, rax, 1
cmp dword [rsp + rax + 0x110], 0xffffffff
jne 0x18021cf85
mov eax, 8
imul rax, rax, 1
mov rax, qword [rsp + rax + 0x480]
cmp qword [rsp + 0x200], rax
jb 0x18021cf85
mov eax, 4
imul rax, rax, 1
mov ecx, dword [rsp + 0xe0]
mov dword [rsp + rax + 0x110], ecx
mov eax, dword [rsp + 0xa0]
dec eax
mov dword [rsp + 0xa0], eax
cmp dword [rsp + 0xa0], 0
jg 0x18021cf85
jmp 0x18021cf8a
jmp 0x18021ce78
mov eax, dword [rsp + 0xe0]
inc eax
mov dword [rsp + 0xe0], eax
mov eax, 4
imul rax, rax, 0
cmp dword [rsp + rax + 0x110], 0xffffffff
jne 0x18021cfc4
mov eax, 4
imul rax, rax, 0
mov ecx, dword [rsp + 0xe0]
mov dword [rsp + rax + 0x110], ecx
mov eax, 4
imul rax, rax, 1
cmp dword [rsp + rax + 0x110], 0xffffffff
jne 0x18021cfee
mov eax, 4
imul rax, rax, 1
mov ecx, dword [rsp + 0xe0]
mov dword [rsp + rax + 0x110], ecx
mov eax, 8
imul rax, rax, 0
mov rax, qword [rsp + rax + 0x480]
mov qword [rsp + 0x890], rax
mov eax, 8
imul rax, rax, 0
mov rdx, qword [rsp + 0x1d8]
mov rcx, qword [rsp + rax + 0x480]
call fcn.18015fee0
mov qword [rsp + 0x898], rax
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rsp + 0x890]
mov rdx, qword [rsp + 0x898]
lea rcx, [rsp + 0xb30]
call fcn.180218fd0
movss xmm0, dword [rax]
movss dword [rsp + 0x118], xmm0
mov eax, 4
imul rax, rax, 0
cvtsi2ss xmm0, dword [rsp + rax + 0x110]
mov rax, qword [rsp + 0x68]
mulss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x11c], xmm0
mov eax, 4
imul rax, rax, 1
cmp dword [rsp + rax + 0x110], 0
jl 0x18021d149
mov eax, 8
imul rax, rax, 1
mov rax, qword [rsp + rax + 0x480]
mov qword [rsp + 0x8a0], rax
mov eax, 8
imul rax, rax, 1
mov rdx, qword [rsp + 0x1d8]
mov rcx, qword [rsp + rax + 0x480]
call fcn.18015fee0
mov qword [rsp + 0x8a8], rax
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rsp + 0x8a0]
mov rdx, qword [rsp + 0x8a8]
lea rcx, [rsp + 0xb38]
call fcn.180218fd0
movss xmm0, dword [rax]
movss dword [rsp + 0x3f8], xmm0
mov eax, 4
imul rax, rax, 1
cvtsi2ss xmm0, dword [rsp + rax + 0x110]
mov rax, qword [rsp + 0x68]
mulss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x3fc], xmm0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021d1a5
cvtsi2ss xmm0, dword [rsp + 0xe0]
mov rax, qword [rsp + 0x68]
mulss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x620], xmm0
movss xmm0, dword [rsp + 0x128]
movss dword [rsp + 0x788], xmm0
movss xmm0, dword [rsp + 0x620]
movss dword [rsp + 0x78c], xmm0
mov rax, qword [rsp + 0x788]
mov qword [rsp + 0x208], rax
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18021d529
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0xe7c]
test eax, eax
je 0x18021d529
mov eax, dword [rsp + 0xbd8]
and eax, 0x1000
test eax, eax
jne 0x18021d2d4
movss xmm0, dword [rsp + 0x128]
mulss xmm0, dword [0x1802b1fd4]
movss dword [rsp + 0x318], xmm0
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rsp + 0x128]
subss xmm0, dword [rax + 0x3c]
movss dword [rsp + 0x314], xmm0
mov rax, qword [rsp + 0x58]
movss xmm0, dword [rax + 0x48]
comiss xmm0, dword [rsp + 0x118]
jbe 0x18021d288
movss xmm0, dword [rsp + 0x118]
subss xmm0, dword [rsp + 0x318]
movss dword [rsp + 0x308], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [rsp + 0x308]
jb 0x18021d25d
xorps xmm0, xmm0
movss dword [rsp + 0x310], xmm0
jmp 0x18021d26f
movss xmm0, dword [rsp + 0x308]
movss dword [rsp + 0x310], xmm0
cvttss2si eax, dword [rsp + 0x310]
cvtsi2ss xmm0, eax
mov rax, qword [rsp + 0x58]
movss dword [rax + 0x48], xmm0
jmp 0x18021d2d2
movss xmm0, dword [rsp + 0x118]
subss xmm0, dword [rsp + 0x314]
mov rax, qword [rsp + 0x58]
comiss xmm0, dword [rax + 0x48]
jb 0x18021d2d2
movss xmm0, dword [rsp + 0x118]
subss xmm0, dword [rsp + 0x314]
addss xmm0, dword [rsp + 0x318]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
mov rax, qword [rsp + 0x58]
movss dword [rax + 0x48], xmm0
jmp 0x18021d2e1
mov rax, qword [rsp + 0x58]
xorps xmm0, xmm0
movss dword [rax + 0x48], xmm0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021d51d
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rsp + 0x11c]
subss xmm0, dword [rax + 0x3b48]
movss xmm1, dword [rsp + 0x98]
comiss xmm1, xmm0
jbe 0x18021d372
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rsp + 0x11c]
subss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x320], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [rsp + 0x320]
jb 0x18021d34c
xorps xmm0, xmm0
movss dword [rsp + 0x328], xmm0
jmp 0x18021d35e
movss xmm0, dword [rsp + 0x320]
movss dword [rsp + 0x328], xmm0
movss xmm0, dword [rsp + 0x328]
movss dword [rsp + 0x98], xmm0
jmp 0x18021d3e5
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rax + 0x40]
mulss xmm0, dword [0x1802ae2b4]
movss xmm1, dword [rsp + 0x12c]
subss xmm1, xmm0
movaps xmm0, xmm1
movss xmm1, dword [rsp + 0x11c]
subss xmm1, xmm0
movaps xmm0, xmm1
comiss xmm0, dword [rsp + 0x98]
jb 0x18021d3e5
movss xmm0, dword [rsp + 0x11c]
subss xmm0, dword [rsp + 0x12c]
mov rax, qword [rsp + 0xe8]
movss xmm1, dword [rax + 0x40]
mulss xmm1, dword [0x1802ae2b4]
addss xmm0, xmm1
movss dword [rsp + 0x98], xmm0
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rax + 0x40]
mulss xmm0, dword [0x1802ae2b4]
movss xmm1, dword [rsp + 0x20c]
addss xmm1, xmm0
movaps xmm0, xmm1
subss xmm0, dword [rsp + 0x12c]
movss dword [rsp + 0x330], xmm0
movss xmm0, dword [rsp + 0x330]
comiss xmm0, dword [0x1802ae2ac]
jb 0x18021d442
movss xmm0, dword [rsp + 0x330]
movss dword [rsp + 0x338], xmm0
jmp 0x18021d44e
xorps xmm0, xmm0
movss dword [rsp + 0x338], xmm0
movss xmm0, dword [rsp + 0x338]
movss dword [rsp + 0x33c], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [rsp + 0x98]
jbe 0x18021d47b
xorps xmm0, xmm0
movss dword [rsp + 0x344], xmm0
jmp 0x18021d4c6
movss xmm0, dword [rsp + 0x98]
comiss xmm0, dword [rsp + 0x33c]
jbe 0x18021d4a2
movss xmm0, dword [rsp + 0x33c]
movss dword [rsp + 0x340], xmm0
jmp 0x18021d4b4
movss xmm0, dword [rsp + 0x98]
movss dword [rsp + 0x340], xmm0
movss xmm0, dword [rsp + 0x340]
movss dword [rsp + 0x344], xmm0
movss xmm0, dword [rsp + 0x344]
movss dword [rsp + 0x98], xmm0
mov rax, qword [rsp + 0xd8]
movss xmm0, dword [rax + 0x60]
subss xmm0, dword [rsp + 0x98]
movss xmm1, dword [rsp + 0x134]
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [rsp + 0x134], xmm0
mov rax, qword [rsp + 0xd8]
movss xmm0, dword [rsp + 0x98]
movss dword [rax + 0x60], xmm0
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xe7c], 0
mov rax, qword [rsp + 0x58]
movss xmm0, dword [rax + 0x48]
movss dword [rsp + 0x628], xmm0
movss xmm0, dword [rsp + 0x628]
movss dword [rsp + 0x180], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x184], xmm0
movzx eax, byte [rsp + 0x70]
test eax, eax
je 0x18021db86
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x54]
mov dword [rsp + 0x350], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x348], eax
mov eax, dword [rsp + 0x350]
cmp dword [rsp + 0x348], eax
jge 0x18021d5a5
mov eax, dword [rsp + 0x348]
mov dword [rsp + 0x358], eax
jmp 0x18021d5b3
mov eax, dword [rsp + 0x350]
mov dword [rsp + 0x358], eax
movsxd rax, dword [rsp + 0x358]
mov rcx, qword [rsp + 0x1d8]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x8b0], rax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x54]
mov dword [rsp + 0x368], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x360], eax
mov eax, dword [rsp + 0x368]
cmp dword [rsp + 0x360], eax
jl 0x18021d60d
mov eax, dword [rsp + 0x360]
mov dword [rsp + 0x370], eax
jmp 0x18021d61b
mov eax, dword [rsp + 0x368]
mov dword [rsp + 0x370], eax
movsxd rax, dword [rsp + 0x370]
mov rcx, qword [rsp + 0x1d8]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x668], rax
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18021d653
movss xmm0, dword [0x1802ae230]
movss dword [rsp + 0x374], xmm0
jmp 0x18021d664
movss xmm0, dword [0x1802aed60]
movss dword [rsp + 0x374], xmm0
movss xmm1, dword [rsp + 0x374]
mov ecx, 0x2f
call fcn.18015ad90
mov dword [rsp + 0x4b8], eax
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021d695
xorps xmm0, xmm0
movss dword [rsp + 0x378], xmm0
jmp 0x18021d6a6
movss xmm0, dword [0x1802aee14]
movss dword [rsp + 0x378], xmm0
movss xmm0, dword [rsp + 0x378]
movss dword [rsp + 0x498], xmm0
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021d6cf
xorps xmm0, xmm0
movss dword [rsp + 0x37c], xmm0
jmp 0x18021d6e0
movss xmm0, dword [0x1802ae2b4]
movss dword [rsp + 0x37c], xmm0
movss xmm0, dword [rsp + 0x37c]
movss dword [rsp + 0x6b8], xmm0
movss xmm0, dword [rsp + 0x134]
addss xmm0, dword [rsp + 0x3fc]
movss dword [rsp + 0x638], xmm0
movss xmm0, dword [rsp + 0x130]
addss xmm0, dword [rsp + 0x3f8]
movss dword [rsp + 0x630], xmm0
movss xmm0, dword [rsp + 0x630]
movss dword [rsp + 0x660], xmm0
movss xmm0, dword [rsp + 0x638]
movss dword [rsp + 0x664], xmm0
movss xmm0, dword [rsp + 0x664]
subss xmm0, dword [rsp + 0x184]
movss dword [rsp + 0x6a0], xmm0
movss xmm0, dword [rsp + 0x660]
subss xmm0, dword [rsp + 0x180]
movss dword [rsp + 0x640], xmm0
movss xmm0, dword [rsp + 0x640]
movss dword [rsp + 0x148], xmm0
movss xmm0, dword [rsp + 0x6a0]
movss dword [rsp + 0x14c], xmm0
mov rax, qword [rsp + 0x8b0]
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x668]
cmp qword [rsp + 0x1e0], rax
jae 0x18021db86
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rsp + 0x414]
addss xmm0, dword [rax + 0x3b48]
movss xmm1, dword [rsp + 0x14c]
comiss xmm1, xmm0
jbe 0x18021d7f5
jmp 0x18021db86
movss xmm0, dword [rsp + 0x40c]
comiss xmm0, dword [rsp + 0x14c]
jbe 0x18021d853
mov rax, qword [rsp + 0x668]
cmp qword [rsp + 0x1e0], rax
jae 0x18021d84e
mov rax, qword [rsp + 0x1e0]
movzx eax, word [rax]
mov dword [rsp + 0x6a8], eax
mov rax, qword [rsp + 0x1e0]
add rax, 2
mov qword [rsp + 0x1e0], rax
cmp dword [rsp + 0x6a8], 0xa
jne 0x18021d84c
jmp 0x18021d84e
jmp 0x18021d808
jmp 0x18021db47
mov byte [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x1e0]
mov r8, qword [rsp + 0x668]
mov rdx, qword [rsp + 0x1e0]
lea rcx, [rsp + 0x678]
call fcn.180218fd0
xorps xmm0, xmm0
comiss xmm0, dword [rsp + 0x678]
jb 0x18021d92d
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov qword [rsp + 0x670], rax
mov eax, 0x20
movzx eax, ax
mov rcx, qword [rsp + 0x670]
cmp eax, dword [rcx]
jge 0x18021d8f5
mov rax, qword [rsp + 0x670]
mov qword [rsp + 0x8b8], rax
mov eax, 0x20
movzx eax, ax
cdqe
mov rcx, qword [rsp + 0x8b8]
mov rcx, qword [rcx + 8]
movss xmm0, dword [rcx + rax*4]
movss dword [rsp + 0x380], xmm0
jmp 0x18021d90b
mov rax, qword [rsp + 0x670]
movss xmm0, dword [rax + 0x10]
movss dword [rsp + 0x380], xmm0
movss xmm0, dword [rsp + 0x380]
mulss xmm0, dword [0x1802aed5c]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [rsp + 0x678], xmm0
movss xmm0, dword [rsp + 0x678]
movss dword [rsp + 0x6b0], xmm0
movss xmm0, dword [rsp + 0x6b0]
movss dword [rsp + 0x680], xmm0
movss xmm0, dword [rsp + 0x6b8]
movss dword [rsp + 0x684], xmm0
movss xmm0, dword [rsp + 0x14c]
addss xmm0, dword [rsp + 0x684]
movss dword [rsp + 0x490], xmm0
movss xmm0, dword [rsp + 0x148]
addss xmm0, dword [rsp + 0x680]
movss dword [rsp + 0x6c0], xmm0
movss xmm0, dword [rsp + 0x6c0]
movss dword [rsp + 0x790], xmm0
movss xmm0, dword [rsp + 0x490]
movss dword [rsp + 0x794], xmm0
lea rax, [rsp + 0x790]
mov qword [rsp + 0x8c8], rax
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rsp + 0x498]
subss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x4a0], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x688], xmm0
movss xmm0, dword [rsp + 0x4a0]
movss dword [rsp + 0x68c], xmm0
movss xmm0, dword [rsp + 0x14c]
addss xmm0, dword [rsp + 0x68c]
movss dword [rsp + 0x4b0], xmm0
movss xmm0, dword [rsp + 0x148]
addss xmm0, dword [rsp + 0x688]
movss dword [rsp + 0x4a8], xmm0
movss xmm0, dword [rsp + 0x4a8]
movss dword [rsp + 0x798], xmm0
movss xmm0, dword [rsp + 0x4b0]
movss dword [rsp + 0x79c], xmm0
lea rax, [rsp + 0x798]
mov qword [rsp + 0x8c0], rax
mov rax, qword [rsp + 0x8c0]
mov rax, qword [rax]
mov qword [rsp + 0x818], rax
mov rax, qword [rsp + 0x8c8]
mov rax, qword [rax]
mov qword [rsp + 0x820], rax
lea rdx, [rsp + 0x408]
lea rcx, [rsp + 0xa38]
call fcn.1801495c0
lea rdx, [rsp + 0xa38]
lea rcx, [rsp + 0x818]
call fcn.180155160
lea rdx, [rsp + 0x408]
lea rcx, [rsp + 0xa48]
call fcn.1801495c0
lea rdx, [rsp + 0xa48]
lea rcx, [rsp + 0x818]
call fcn.18016c850
movzx eax, al
test eax, eax
je 0x18021db47
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0x270]
mov qword [rsp + 0x8d0], rax
mov dword [rsp + 0x28], 0
movss xmm0, dword [0x1802ae230]
movss dword [rsp + 0x20], xmm0
mov r9d, dword [rsp + 0x4b8]
lea r8, [rsp + 0x820]
lea rdx, [rsp + 0x818]
mov rcx, qword [rsp + 0x8d0]
call fcn.180191540
movss xmm0, dword [rsp + 0x130]
subss xmm0, dword [rsp + 0x180]
movss dword [rsp + 0x148], xmm0
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rsp + 0x14c]
addss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x14c], xmm0
jmp 0x18021d7b6
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x18021dbb1
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
sub rcx, rax
mov rax, rcx
cmp rax, 0x200000
jge 0x18021dd30
movzx eax, byte [rsp + 0x72]
test eax, eax
je 0x18021dbc7
mov dword [rsp + 0x384], 1
jmp 0x18021dbd2
mov dword [rsp + 0x384], 0
movss xmm1, dword [0x1802ae230]
mov ecx, dword [rsp + 0x384]
call fcn.18015ad90
mov dword [rsp + 0x4d0], eax
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0x270]
mov qword [rsp + 0x8f0], rax
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021dc1b
mov qword [rsp + 0x7a8], 0
jmp 0x18021dc2b
lea rax, [rsp + 0x408]
mov qword [rsp + 0x7a8], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x8d8], rax
movss xmm0, dword [rsp + 0x134]
subss xmm0, dword [rsp + 0x184]
movss dword [rsp + 0x4c8], xmm0
movss xmm0, dword [rsp + 0x130]
subss xmm0, dword [rsp + 0x180]
movss dword [rsp + 0x4c0], xmm0
movss xmm0, dword [rsp + 0x4c0]
movss dword [rsp + 0x7a0], xmm0
movss xmm0, dword [rsp + 0x4c8]
movss dword [rsp + 0x7a4], xmm0
lea rax, [rsp + 0x7a0]
mov qword [rsp + 0x8e0], rax
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x4d4], xmm0
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x3b40]
mov qword [rsp + 0x8e8], rax
mov rax, qword [rsp + 0x7a8]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movss dword [rsp + 0x38], xmm0
mov rax, qword [rsp + 0x8d8]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x4d0]
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x8e0]
movss xmm2, dword [rsp + 0x4d4]
mov rdx, qword [rsp + 0x8e8]
mov rcx, qword [rsp + 0x8f0]
call fcn.180191c30
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18021e183
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x80]
movss xmm0, dword [rax + 0xe78]
addss xmm0, dword [rcx + 0x10]
mov rax, qword [rsp + 0x58]
movss dword [rax + 0xe78], xmm0
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax + 0x73]
test eax, eax
je 0x18021dde1
mov rax, qword [rsp + 0x58]
xorps xmm0, xmm0
comiss xmm0, dword [rax + 0xe78]
jae 0x18021dde1
mov rax, qword [rsp + 0x58]
movss xmm0, dword [rax + 0xe78]
movss dword [rsp + 0x4d8], xmm0
movsd xmm0, qword [0x1802b46a8]
cvtss2sd xmm1, dword [rsp + 0x4d8]
movsd qword [rsp + 0x8f8], xmm1
movaps xmm1, xmm0
movsd xmm0, qword [rsp + 0x8f8]
call fcn.180234a10
cvtsd2ss xmm0, xmm0
movss xmm1, dword [0x1802aed7c]
comiss xmm1, xmm0
jae 0x18021dde1
mov dword [rsp + 0x388], 0
jmp 0x18021ddec
mov dword [rsp + 0x388], 1
movzx eax, byte [rsp + 0x388]
mov byte [rsp + 0xf3], al
movss xmm0, dword [rsp + 0x134]
addss xmm0, dword [rsp + 0x11c]
movss dword [rsp + 0x4e8], xmm0
movss xmm0, dword [rsp + 0x130]
addss xmm0, dword [rsp + 0x118]
movss dword [rsp + 0x4e0], xmm0
movss xmm0, dword [rsp + 0x4e0]
movss dword [rsp + 0x690], xmm0
movss xmm0, dword [rsp + 0x4e8]
movss dword [rsp + 0x694], xmm0
movss xmm0, dword [rsp + 0x694]
subss xmm0, dword [rsp + 0x184]
movss dword [rsp + 0x4f8], xmm0
movss xmm0, dword [rsp + 0x690]
subss xmm0, dword [rsp + 0x180]
movss dword [rsp + 0x4f0], xmm0
movss xmm0, dword [rsp + 0x4f0]
movss dword [rsp + 0x698], xmm0
movss xmm0, dword [rsp + 0x4f8]
movss dword [rsp + 0x69c], xmm0
cvttss2si eax, dword [rsp + 0x69c]
cvtsi2ss xmm0, eax
movss dword [rsp + 0x508], xmm0
cvttss2si eax, dword [rsp + 0x698]
cvtsi2ss xmm0, eax
movss dword [rsp + 0x500], xmm0
movss xmm0, dword [rsp + 0x500]
movss dword [rsp + 0x1e8], xmm0
movss xmm0, dword [rsp + 0x508]
movss dword [rsp + 0x1ec], xmm0
movss xmm0, dword [rsp + 0x1ec]
subss xmm0, dword [0x1802ae2e4]
movss dword [rsp + 0x528], xmm0
movss xmm0, dword [rsp + 0x1e8]
addss xmm0, dword [0x1802ae230]
movss dword [rsp + 0x520], xmm0
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rsp + 0x1ec]
subss xmm0, dword [rax + 0x3b48]
addss xmm0, dword [0x1802aed5c]
movss dword [rsp + 0x518], xmm0
movss xmm0, dword [rsp + 0x1e8]
movss dword [rsp + 0x510], xmm0
lea rax, [rsp + 0x828]
mov qword [rsp + 0x7b0], rax
mov rax, qword [rsp + 0x7b0]
movss xmm0, dword [rsp + 0x510]
movss dword [rax], xmm0
mov rax, qword [rsp + 0x7b0]
movss xmm0, dword [rsp + 0x518]
movss dword [rax + 4], xmm0
lea rax, [rsp + 0x830]
mov qword [rsp + 0x7b8], rax
mov rax, qword [rsp + 0x7b8]
movss xmm0, dword [rsp + 0x520]
movss dword [rax], xmm0
mov rax, qword [rsp + 0x7b8]
movss xmm0, dword [rsp + 0x528]
movss dword [rax + 4], xmm0
movzx eax, byte [rsp + 0xf3]
test eax, eax
je 0x18021e0df
lea rdx, [rsp + 0x408]
lea rcx, [rsp + 0xa58]
call fcn.1801495c0
lea rdx, [rsp + 0xa58]
lea rcx, [rsp + 0x828]
call fcn.18016c850
movzx eax, al
test eax, eax
je 0x18021e0df
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0x270]
mov qword [rsp + 0x908], rax
movss xmm1, dword [0x1802ae230]
xor ecx, ecx
call fcn.18015ad90
mov dword [rsp + 0x540], eax
movss xmm0, dword [rsp + 0x834]
movss dword [rsp + 0x538], xmm0
movss xmm0, dword [rsp + 0x828]
movss dword [rsp + 0x530], xmm0
movss xmm0, dword [rsp + 0x530]
movss dword [rsp + 0x7c0], xmm0
movss xmm0, dword [rsp + 0x538]
movss dword [rsp + 0x7c4], xmm0
lea rax, [rsp + 0x7c0]
mov qword [rsp + 0x900], rax
movss xmm0, dword [0x1802ae230]
movss dword [rsp + 0x20], xmm0
mov r9d, dword [rsp + 0x540]
mov r8, qword [rsp + 0x900]
lea rdx, [rsp + 0x828]
mov rcx, qword [rsp + 0x908]
call fcn.18018e740
movzx eax, byte [rsp + 0x60]
test eax, eax
jne 0x18021e183
mov rax, qword [rsp + 0x68]
mov byte [rax + 0x5288], 1
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rsp + 0x1ec]
subss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x550], xmm0
movss xmm0, dword [rsp + 0x1e8]
subss xmm0, dword [0x1802ae230]
movss dword [rsp + 0x548], xmm0
movss xmm0, dword [rsp + 0x548]
movss dword [rsp + 0x7c8], xmm0
movss xmm0, dword [rsp + 0x550]
movss dword [rsp + 0x7cc], xmm0
mov rax, qword [rsp + 0x7c8]
mov rcx, qword [rsp + 0x68]
mov qword [rcx + 0x528c], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x68]
movss xmm0, dword [rcx + 0x3b48]
movss dword [rax + 0x5294], xmm0
jmp 0x18021e36d
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021e1f6
lea rdx, [rsp + 0x140]
mov rcx, qword [rsp + 0x138]
call fcn.180218f10
cvtsi2ss xmm0, eax
mov rax, qword [rsp + 0x68]
mulss xmm0, dword [rax + 0x3b48]
movss dword [rsp + 0x558], xmm0
movss xmm0, dword [rsp + 0x128]
movss dword [rsp + 0x7d0], xmm0
movss xmm0, dword [rsp + 0x558]
movss dword [rsp + 0x7d4], xmm0
mov rax, qword [rsp + 0x7d0]
mov qword [rsp + 0x208], rax
jmp 0x18021e25f
movzx eax, byte [rsp + 0x72]
test eax, eax
jne 0x18021e231
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
cmp dword [rax + 0x3e24], ecx
jne 0x18021e231
mov rax, qword [rsp + 0x58]
movsxd rax, dword [rax + 8]
mov rcx, qword [rsp + 0x138]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x140], rax
jmp 0x18021e25f
movzx eax, byte [rsp + 0x72]
test eax, eax
jne 0x18021e25f
mov rcx, qword [rsp + 0x138]
call fcn.1802448f0
mov eax, eax
mov rcx, qword [rsp + 0x138]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x140], rax
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x18021e28a
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
sub rcx, rax
mov rax, rcx
cmp rax, 0x200000
jge 0x18021e36d
movzx eax, byte [rsp + 0x72]
test eax, eax
je 0x18021e2a0
mov dword [rsp + 0x38c], 1
jmp 0x18021e2ab
mov dword [rsp + 0x38c], 0
movss xmm1, dword [0x1802ae230]
mov ecx, dword [rsp + 0x38c]
call fcn.18015ad90
mov dword [rsp + 0x560], eax
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0x270]
mov qword [rsp + 0x910], rax
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021e2f4
mov qword [rsp + 0x7d8], 0
jmp 0x18021e304
lea rax, [rsp + 0x408]
mov qword [rsp + 0x7d8], rax
mov rax, qword [rsp + 0x7d8]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movss dword [rsp + 0x38], xmm0
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x560]
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x130]
mov rax, qword [rsp + 0x68]
movss xmm2, dword [rax + 0x3b48]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rax + 0x3b40]
mov rcx, qword [rsp + 0x910]
call fcn.180191c30
movzx eax, byte [rsp + 0x89]
test eax, eax
je 0x18021e387
movzx eax, byte [rsp + 0x72]
test eax, eax
jne 0x18021e387
call fcn.18016cd60
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x18021e4a2
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rsp + 0x20c]
addss xmm0, dword [rax + 0x40]
movss dword [rsp + 0x570], xmm0
movss xmm0, dword [rsp + 0x208]
movss dword [rsp + 0x568], xmm0
movss xmm0, dword [rsp + 0x568]
movss dword [rsp + 0x7e0], xmm0
movss xmm0, dword [rsp + 0x570]
movss dword [rsp + 0x7e4], xmm0
lea rcx, [rsp + 0x7e0]
call fcn.180211a20
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3e88]
mov dword [rsp + 0x578], eax
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3e88]
or eax, 0x101
mov rcx, qword [rsp + 0x68]
mov dword [rcx + 0x3e88], eax
call fcn.180156dc0
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x3ea8]
and eax, 0x80
mov ecx, dword [rsp + 0xb50]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0xb50], eax
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x578]
mov dword [rax + 0x3e88], ecx
call fcn.1801578b0
mov rax, qword [rsp + 0x68]
cmp dword [rax + 0x3ea0], 0
jne 0x18021e4a2
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x78]
mov dword [rax + 0x3ea0], ecx
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0xb4c]
mov dword [rax + 0x3ea4], ecx
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0xb50]
mov dword [rax + 0x3ea8], ecx
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax + 0x5304]
test eax, eax
je 0x18021e877
movzx eax, byte [rsp + 0x89]
test eax, eax
je 0x18021e4cf
movzx eax, byte [rsp + 0x72]
test eax, eax
je 0x18021e877
lea rax, [rsp + 0xf4]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0xf5]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0xf6]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx eax, byte [rsp + 0xf4]
mov byte [rsp + 0x1c0], al
movzx eax, byte [rsp + 0xf5]
mov byte [rsp + 0x1b8], al
movzx eax, byte [rsp + 0xf6]
mov byte [rsp + 0x1b0], al
movabs rax, 0x25cf1ea13beaf198
mov qword [rsp + 0x918], rax
mov rax, qword [rsp + 0x918]
mov qword [rsp + 0x6d0], rax
movabs rax, 0xff11301096ddc8fa
mov qword [rsp + 0x920], rax
mov rax, qword [rsp + 0x920]
mov qword [rsp + 0x6d8], rax
movabs rax, 0x25cf1ea13beaf1e5
mov qword [rsp + 0x928], rax
mov rax, qword [rsp + 0x928]
mov qword [rsp + 0x9c0], rax
movabs rax, 0xff11301096ddc8fa
mov qword [rsp + 0x930], rax
mov rax, qword [rsp + 0x930]
mov qword [rsp + 0x9c8], rax
xor eax, eax
test eax, eax
je 0x18021e5c8
jmp 0x18021e618
movdqa xmm0, xmmword [rsp + 0x9c0]
movdqa xmmword [rsp + 0xa80], xmm0
movdqa xmm0, xmmword [rsp + 0x6d0]
movdqa xmmword [rsp + 0xa70], xmm0
movdqa xmm0, xmmword [rsp + 0xa70]
xorps xmm0, xmmword [rsp + 0xa80]
movdqa xmmword [rsp + 0xa90], xmm0
movdqa xmm0, xmmword [rsp + 0xa90]
movdqa xmmword [rsp + 0x6d0], xmm0
xor eax, eax
cmp eax, 1
je 0x18021e621
jmp 0x18021e67a
lea rax, [rsp + 0x9d0]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rsp + 0xab0], xmm0
lea rax, [rsp + 0x6e0]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rsp + 0xaa0], xmm0
movdqa xmm0, xmmword [rsp + 0xaa0]
xorps xmm0, xmmword [rsp + 0xab0]
movdqa xmmword [rsp + 0xac0], xmm0
lea rax, [rsp + 0x6e0]
movdqa xmm0, xmmword [rsp + 0xac0]
movdqu xmmword [rax], xmm0
lea rax, [rsp + 0x6d0]
mov qword [rsp + 0x958], rax
lea rax, [rsp + 0xf7]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0xf8]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rax, [rsp + 0xf9]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
movzx eax, byte [rsp + 0xf7]
mov byte [rsp + 0x1f0], al
movzx eax, byte [rsp + 0xf8]
mov byte [rsp + 0x188], al
movzx eax, byte [rsp + 0xf9]
mov byte [rsp + 0x190], al
movabs rax, 0x25cf1ea13beaf19e
mov qword [rsp + 0x938], rax
mov rax, qword [rsp + 0x938]
mov qword [rsp + 0x6f0], rax
movabs rax, 0xff11301096ddc8fa
mov qword [rsp + 0x940], rax
mov rax, qword [rsp + 0x940]
mov qword [rsp + 0x6f8], rax
movabs rax, 0x25cf1ea13beaf1e5
mov qword [rsp + 0x948], rax
mov rax, qword [rsp + 0x948]
mov qword [rsp + 0x9e0], rax
movabs rax, 0xff11301096ddc8fa
mov qword [rsp + 0x950], rax
mov rax, qword [rsp + 0x950]
mov qword [rsp + 0x9e8], rax
xor eax, eax
test eax, eax
je 0x18021e783
jmp 0x18021e7d3
movdqa xmm0, xmmword [rsp + 0x9e0]
movdqa xmmword [rsp + 0xae0], xmm0
movdqa xmm0, xmmword [rsp + 0x6f0]
movdqa xmmword [rsp + 0xad0], xmm0
movdqa xmm0, xmmword [rsp + 0xad0]
xorps xmm0, xmmword [rsp + 0xae0]
movdqa xmmword [rsp + 0xaf0], xmm0
movdqa xmm0, xmmword [rsp + 0xaf0]
movdqa xmmword [rsp + 0x6f0], xmm0
xor eax, eax
cmp eax, 1
je 0x18021e7dc
jmp 0x18021e835
lea rax, [rsp + 0x9f0]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rsp + 0xb10], xmm0
lea rax, [rsp + 0x700]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rsp + 0xb00], xmm0
movdqa xmm0, xmmword [rsp + 0xb00]
xorps xmm0, xmmword [rsp + 0xb10]
movdqa xmmword [rsp + 0xb20], xmm0
lea rax, [rsp + 0x700]
movdqa xmm0, xmmword [rsp + 0xb20]
movdqu xmmword [rax], xmm0
lea rax, [rsp + 0x6f0]
mov qword [rsp + 0x960], rax
mov rdx, qword [rsp + 0x958]
mov rcx, qword [rsp + 0x960]
call fcn.180164110
mov r8, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x138]
lea rcx, [rsp + 0x130]
call fcn.180163ea0
movss xmm0, dword [rsp + 0x460]
comiss xmm0, dword [0x1802ae2ac]
jbe 0x18021e906
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rsp + 0x15c]
addss xmm0, dword [rax + 0x40]
movss dword [rsp + 0x588], xmm0
mov rax, qword [rsp + 0xe8]
movss xmm0, dword [rsp + 0x160]
addss xmm0, dword [rax + 0x54]
movss dword [rsp + 0x580], xmm0
movss xmm0, dword [rsp + 0x580]
movss dword [rsp + 0x7e8], xmm0
movss xmm0, dword [rsp + 0x588]
movss dword [rsp + 0x7ec], xmm0
mov r9b, 1
xor r8d, r8d
mov rdx, qword [rsp + 0xbb0]
mov rcx, qword [rsp + 0x7e8]
call fcn.18016f310
movzx eax, byte [rsp + 0x95]
test eax, eax
je 0x18021e92b
mov eax, dword [rsp + 0xbd8]
and eax, 0x8000000
test eax, eax
jne 0x18021e92b
mov ecx, dword [rsp + 0x78]
call fcn.1801647e0
mov eax, dword [rsp + 0xbd8]
and eax, 0x20
test eax, eax
je 0x18021e945
movzx eax, byte [rsp + 0x8f]
jmp 0x18021e94d
movzx eax, byte [rsp + 0x95]
add rsp, 0xb98
pop rdi
pop rsi
ret