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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
sub rsp, 0x1f0
mov rax, qword [rsp + 0x210]
mov rax, qword [rax + 0x200]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xe]
mov dword [rsp + 0x9c], eax
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xc]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x80], 0
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8e4]
mov dword [rsp + 0x98], eax
mov rax, qword [rsp + 0x210]
mov ecx, dword [rax + 0xb8]
shr ecx, 8
add ecx, 1
xor edx, edx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xb8]
div ecx
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8f0]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x38]
and eax, 0x20
test eax, eax
je 0x180097df5
mov dword [rsp + 0x184], 0x800000
jmp 0x180097e00
mov dword [rsp + 0x184], 0x8000
mov eax, dword [rsp + 0x184]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x70], 0
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x180097e52
mov eax, dword [rsp + 0x38]
and eax, 0x80
test eax, eax
jne 0x180097e52
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jge 0x180097e48
mov eax, dword [rsp + 0x34]
shl eax, 2
mov dword [rsp + 0x34], eax
jmp 0x180097e52
mov eax, dword [rsp + 0x34]
shl eax, 1
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0xb8]
add ecx, dword [rsp + 0x220]
mov rax, qword [rsp + 0x210]
cmp ecx, dword [rax + 0xb8]
jbe 0x180097e96
mov rdx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0xb8]
mov eax, dword [rdx + 0xb8]
sub eax, ecx
mov dword [rsp + 0x220], eax
cmp dword [rsp + 0x220], 0
jne 0x180097ea7
xor eax, eax
jmp 0x18009cc8b
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0xb8], 0
jne 0x180097f28
mov rcx, qword [rsp + 0x78]
call fcn.180097b20
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov r8, qword [rsp + 0x210]
mov r8, qword [r8 + 0x98]
mov rdx, qword [rsp + 0x210]
mov rdx, qword [rdx + 0x90]
call fcn.18009cca0
mov rdx, qword [rsp + 0x210]
cmp dword [rdx + 0xc4], 0
je 0x180097f28
mov rcx, qword [rsp + 0x78]
add rcx, 0x70
mov r8, qword [rsp + 0x210]
mov r8, qword [r8 + 0xa0]
mov rdx, qword [rsp + 0x210]
mov rdx, qword [rdx + 0x90]
call fcn.18009cca0
movsxd rcx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x78]
movsx eax, byte [rax + rcx*8 + 0xc0]
test eax, eax
jne 0x180097fe5
mov rax, qword [rsp + 0x78]
cmp qword [rax + 0x8c0], 0
jne 0x180097f8f
mov rcx, qword [rsp + 0x78]
call fcn.18009cf00
mov edx, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8c8], edx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8c8]
imul eax, eax, 0x100
mov ecx, eax
call fcn.18006b174
mov rdx, rax
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x8c0], rdx
movsxd rdx, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xb8]
mov dword [rcx + rdx*8 + 0xc4], eax
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0x6c]
imul eax, dword [rcx + 0x8c8]
mov edx, eax
mov rax, qword [rsp + 0x78]
add rdx, qword [rax + 0x8c0]
mov rcx, qword [rsp + 0x78]
call fcn.18009d0d0
movsxd rdx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x78]
mov byte [rax + rdx*8 + 0xc0], 1
lea rdi, [rsp + 0x20]
mov rsi, qword [rsp + 0x78]
add rsi, 0x8f4
mov ecx, reloc.WS2_32.dll_recv
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x904]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x180098035
mov eax, dword [rsp + 0x38]
and eax, 0xa000
test eax, eax
je 0x180098033
mov dword [rsp + 0x80], 0xffffff00
jmp 0x180098075
mov eax, dword [rsp + 0x38]
and eax, 0x2000
test eax, eax
je 0x180098075
mov eax, dword [rsp + 0x38]
and eax, 0x8000
test eax, eax
je 0x18009805c
mov dword [rsp + 0x188], 0xfffffe00
jmp 0x180098067
mov dword [rsp + 0x188], 0xffffff00
mov eax, dword [rsp + 0x188]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x38]
and eax, 0x20
test eax, eax
je 0x1800980ce
mov ecx, dword [rsp + 0x9c]
mov eax, 0xff800000
sar eax, cl
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x48]
shl eax, cl
mov dword [rsp + 0x5c], eax
mov ecx, dword [rsp + 0x9c]
mov eax, 0x7fffff
sar eax, cl
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x58]
shl eax, cl
mov dword [rsp + 0x68], eax
jmp 0x18009811a
mov ecx, dword [rsp + 0x9c]
mov eax, 0xffff8000
sar eax, cl
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x48]
shl eax, cl
mov dword [rsp + 0x5c], eax
mov ecx, dword [rsp + 0x9c]
mov eax, 0x7fff
sar eax, cl
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x58]
shl eax, cl
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x180098ec4
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
jne 0x180098ec4
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x180098ec4
mov eax, dword [rsp + 0x38]
and eax, 2
test eax, eax
je 0x1800983fb
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x180098348
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009818f
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180098343
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x1800981bf
jmp 0x180098343
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 4
jge 0x18009826a
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
jne 0x180098225
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x64]
movzx ecx, al
shl edx, cl
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
or ecx, edx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
add rcx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
jmp 0x1800981db
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0x20
jle 0x1800982c7
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
mov eax, 8
sub rax, rcx
movzx ecx, al
mov eax, edx
sar eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
jmp 0x1800982ed
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov eax, dword [rsp + 0xa0]
and eax, 0xf
mov ecx, dword [rsp + 0x20]
shl ecx, 4
add eax, ecx
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0xa0]
mov dword [rsp + 0x30], eax
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0xa0]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180098184
jmp 0x1800983f6
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009836d
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x1800983f6
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180098396
jmp 0x1800983f6
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180098362
jmp 0x180098ebf
mov eax, dword [rsp + 0x38]
and eax, 0x10
test eax, eax
je 0x180098a79
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009842f
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180098a74
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x18009846e
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009d610
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009846c
jmp 0x180098a74
jmp 0x18009848d
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009e740
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009848d
jmp 0x180098a74
mov eax, dword [rsp + 0x38]
and eax, 0x8000
test eax, eax
je 0x1800985f2
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xbc]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x78]
add rax, 0x90c
mov qword [rsp + 0x40], rax
jmp 0x1800984cd
mov rax, qword [rsp + 0x40]
add rax, 0x60
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x64]
sub eax, 1
mov dword [rsp + 0x64], eax
test ecx, ecx
je 0x1800985ed
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x10]
mov dword [rsp + 0xa8], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 8]
imul eax, dword [rsp + 0xa8]
add eax, 0x100
sar eax, 9
add eax, dword [rsp + 0x60]
mov dword [rsp + 0xa4], eax
cmp dword [rsp + 0xa8], 0
je 0x1800985ba
cmp dword [rsp + 0x60], 0
je 0x1800985ba
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0xa8]
xor eax, ecx
test eax, eax
jl 0x180098581
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x200
jne 0x18009857f
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x1800985ba
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x1800985ba
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax]
mov eax, dword [rsp + 0x98]
add eax, ecx
and eax, 7
movsxd rdx, eax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x60]
mov dword [rcx + rdx*4 + 0x10], eax
jmp 0x1800984bf
jmp 0x180098741
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xbc]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x78]
add rax, 0x90c
mov qword [rsp + 0x40], rax
jmp 0x180098621
mov rax, qword [rsp + 0x40]
add rax, 0x60
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x64]
sub eax, 1
mov dword [rsp + 0x64], eax
test ecx, ecx
je 0x180098741
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x10]
mov dword [rsp + 0xac], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 8]
imul eax, dword [rsp + 0xac]
add eax, 0x80
sar eax, 8
add eax, dword [rsp + 0x60]
mov dword [rsp + 0xa4], eax
cmp dword [rsp + 0xac], 0
je 0x18009870e
cmp dword [rsp + 0x60], 0
je 0x18009870e
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0xac]
xor eax, ecx
test eax, eax
jl 0x1800986d5
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x100
jne 0x1800986d3
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18009870e
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x18009870e
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax]
mov eax, dword [rsp + 0x98]
add eax, ecx
and eax, 7
movsxd rdx, eax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x60]
mov dword [rcx + rdx*4 + 0x10], eax
jmp 0x180098613
mov eax, dword [rsp + 0x98]
add eax, 1
and eax, 7
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x180098a30
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x18009886b
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x1800987a8
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x18c], eax
jmp 0x180098817
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
je 0x1800987d4
jmp 0x1800987e5
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], 7
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x18c], eax
cmp dword [rsp + 0x18c], 0
je 0x180098840
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x190], 1
jmp 0x18009885d
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x190], 0
cmp dword [rsp + 0x190], 0
jne 0x1800989de
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 4
jge 0x1800988fa
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
jne 0x1800988b5
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x64]
movzx ecx, al
shl edx, cl
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
or ecx, edx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
add rcx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
jmp 0x18009886b
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0x20
jle 0x180098957
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
mov eax, 8
sub rax, rcx
movzx ecx, al
mov eax, edx
sar eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
jmp 0x18009897d
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov eax, dword [rsp + 0xa4]
and eax, 0xf
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8dc]
cmp dword [rsp + 0xa4], eax
je 0x1800989c5
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xa4]
mov dword [rcx + 0x8dc], eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], 0
jmp 0x1800989de
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8e0]
add ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], ecx
mov eax, dword [rsp + 0x60]
shl eax, 4
mov rcx, qword [rsp + 0x78]
add eax, dword [rcx + 0x8dc]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0xa4]
mov dword [rsp + 0x30], eax
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0xa4]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180098a6f
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x60]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180098424
jmp 0x180098ebf
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180098a9e
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180098ebf
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180098ace
jmp 0x180098ebf
mov ecx, dword [rsp + 0x24]
imul ecx, dword [rsp + 0x50]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0x20]
add eax, ecx
add eax, dword [rsp + 0x60]
mov dword [rsp + 0xb0], eax
cmp dword [rsp + 0x24], 0
jl 0x180098b05
mov dword [rsp + 0x194], 1
jmp 0x180098b10
mov dword [rsp + 0x194], 0
cmp dword [rsp + 0x60], 0
jle 0x180098b24
mov dword [rsp + 0x198], 1
jmp 0x180098b2f
mov dword [rsp + 0x198], 0
mov eax, dword [rsp + 0x198]
cmp dword [rsp + 0x194], eax
jne 0x180098b63
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x180098b61
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x180098b81
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x180098b81
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0xb0]
sub eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x180098e7b
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x180098cb6
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x180098bf3
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x19c], eax
jmp 0x180098c62
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
je 0x180098c1f
jmp 0x180098c30
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], 7
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x19c], eax
cmp dword [rsp + 0x19c], 0
je 0x180098c8b
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x1a0], 1
jmp 0x180098ca8
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x1a0], 0
cmp dword [rsp + 0x1a0], 0
jne 0x180098e29
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 4
jge 0x180098d45
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
jne 0x180098d00
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x64]
movzx ecx, al
shl edx, cl
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
or ecx, edx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
add rcx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
jmp 0x180098cb6
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0xb0], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0x20
jle 0x180098da2
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
mov eax, 8
sub rax, rcx
movzx ecx, al
mov eax, edx
sar eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
jmp 0x180098dc8
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 4
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov eax, dword [rsp + 0xb0]
and eax, 0xf
mov dword [rsp + 0xb0], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8dc]
cmp dword [rsp + 0xb0], eax
je 0x180098e10
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xb0]
mov dword [rcx + 0x8dc], eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], 0
jmp 0x180098e29
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8e0]
add ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], ecx
mov eax, dword [rsp + 0x20]
shl eax, 4
mov rcx, qword [rsp + 0x78]
add eax, dword [rcx + 0x8dc]
mov dword [rsp + 0xb0], eax
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0xb0]
mov dword [rcx], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0xb0]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180098eba
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180098a93
jmp 0x18009c7dd
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x18009b0cb
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
jne 0x18009b0cb
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
jne 0x18009b0cb
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8d0]
mov dword [rsp + 0xbc], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8d4]
mov dword [rsp + 0xb8], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8cc]
mov dword [rsp + 0xb4], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8d8]
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x38]
and eax, 2
test eax, eax
je 0x18009933f
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x1800991df
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180098f81
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x1800991da
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180098fb1
jmp 0x1800991da
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0xcc], eax
mov ecx, dword [rsp + 0xcc]
and ecx, 1
mov eax, dword [rsp + 0x60]
shl eax, 1
or eax, ecx
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0xcc]
mov ecx, dword [rsp + 0xc8]
add ecx, eax
sar ecx, 1
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0xcc]
mov ecx, dword [rsp + 0xc8]
sub ecx, eax
sar ecx, 1
mov eax, dword [rsp + 0x2c]
add eax, ecx
mov dword [rsp + 0x2c], eax
mov ecx, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x28]
add eax, ecx
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 8
jge 0x1800990c3
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
jne 0x18009907e
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x64]
movzx ecx, al
shl edx, cl
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
or ecx, edx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
add rcx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
jmp 0x180099034
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0xc4], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0x20
jle 0x180099120
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
mov eax, 8
sub rax, rcx
movzx ecx, al
mov eax, edx
sar eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
jmp 0x180099146
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov ecx, dword [rsp + 0x20]
shl ecx, 4
mov eax, dword [rsp + 0xc4]
sar eax, 4
and eax, 0xf
add ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
mov rcx, qword [rsp + 0x88]
add eax, dword [rcx]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov ecx, dword [rsp + 0x28]
shl ecx, 4
mov eax, dword [rsp + 0xc4]
and eax, 0xf
add ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
mov rcx, qword [rsp + 0x88]
add eax, dword [rcx]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180098f76
jmp 0x18009933a
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180099204
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009933a
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180099234
jmp 0x18009933a
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0xd4], eax
mov ecx, dword [rsp + 0xd4]
and ecx, 1
mov eax, dword [rsp + 0x60]
shl eax, 1
or eax, ecx
mov dword [rsp + 0xd0], eax
mov eax, dword [rsp + 0xd4]
mov ecx, dword [rsp + 0xd0]
add ecx, eax
sar ecx, 1
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0xd4]
mov ecx, dword [rsp + 0xd0]
sub ecx, eax
sar ecx, 1
mov eax, dword [rsp + 0x2c]
add eax, ecx
mov dword [rsp + 0x2c], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], eax
mov ecx, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x28]
add eax, ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x28]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x28]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x1800991f9
jmp 0x18009b07e
mov eax, dword [rsp + 0x38]
and eax, 0x10
test eax, eax
je 0x18009a933
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180099373
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009a92e
mov eax, dword [rsp + 0x38]
and eax, 0x1000
test eax, eax
je 0x1800993d1
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009d610
mov dword [rsp + 0xe0], eax
cmp dword [rsp + 0xe0], 0x80000000
jne 0x1800993b6
jmp 0x18009a92e
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009d610
mov dword [rsp + 0xe8], eax
jmp 0x18009989a
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x180099683
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009d610
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180099401
jmp 0x18009a92e
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009d610
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb8], eax
jle 0x180099557
mov eax, dword [rsp + 0xb8]
mov edx, dword [rsp + 0xbc]
add edx, eax
mov ecx, dword [rsp + 0xc0]
mov eax, dword [rsp + 0xb4]
add eax, ecx
cmp edx, eax
jge 0x1800994ab
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0xb8], eax
jge 0x1800994ab
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0xe4]
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xec], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
sub eax, ecx
mov dword [rsp + 0xf4], eax
jmp 0x180099552
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xf4], eax
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb4], eax
jge 0x180099516
mov eax, dword [rsp + 0xe4]
shl eax, 1
mov ecx, dword [rsp + 0xf4]
and ecx, 1
or eax, ecx
mov dword [rsp + 0xec], eax
mov ecx, dword [rsp + 0xf4]
mov eax, dword [rsp + 0xec]
add eax, ecx
sar eax, 1
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0xf4]
mov eax, dword [rsp + 0xec]
sub eax, ecx
sar eax, 1
mov dword [rsp + 0xe8], eax
jmp 0x180099552
mov eax, dword [rsp + 0xe4]
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0xf4]
mov eax, dword [rsp + 0xe0]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe4]
add eax, ecx
mov dword [rsp + 0xec], eax
jmp 0x18009967e
mov eax, dword [rsp + 0xb8]
mov edx, dword [rsp + 0xbc]
add edx, eax
mov ecx, dword [rsp + 0xc0]
mov eax, dword [rsp + 0xb4]
add eax, ecx
cmp edx, eax
jge 0x1800995d7
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0xbc], eax
jge 0x1800995d7
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xe0], eax
mov eax, dword [rsp + 0xe4]
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
add eax, ecx
mov dword [rsp + 0xec], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
sub eax, ecx
mov dword [rsp + 0xf4], eax
jmp 0x18009967e
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xf4], eax
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xb4], eax
jge 0x180099642
mov eax, dword [rsp + 0xe4]
shl eax, 1
mov ecx, dword [rsp + 0xf4]
and ecx, 1
or eax, ecx
mov dword [rsp + 0xec], eax
mov ecx, dword [rsp + 0xf4]
mov eax, dword [rsp + 0xec]
add eax, ecx
sar eax, 1
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0xf4]
mov eax, dword [rsp + 0xec]
sub eax, ecx
sar eax, 1
mov dword [rsp + 0xe8], eax
jmp 0x18009967e
mov eax, dword [rsp + 0xe4]
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf4]
add eax, ecx
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0xe4]
mov eax, dword [rsp + 0xe0]
add eax, ecx
mov dword [rsp + 0xec], eax
jmp 0x1800997bd
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009e740
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x1800996a2
jmp 0x18009a92e
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009e740
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xb4], eax
jg 0x180099722
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb4], eax
jg 0x180099722
mov eax, dword [rsp + 0xe4]
shl eax, 1
mov ecx, dword [rsp + 0x60]
and ecx, 1
or eax, ecx
mov dword [rsp + 0xec], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0xec]
add eax, ecx
sar eax, 1
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0xec]
sub eax, ecx
sar eax, 1
mov dword [rsp + 0xe8], eax
jmp 0x1800997a6
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xbc], eax
jg 0x18009976d
mov eax, dword [rsp + 0xe4]
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0xe0]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe4]
add eax, ecx
mov dword [rsp + 0xec], eax
jmp 0x1800997a6
mov eax, dword [rsp + 0xe4]
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0x60]
add eax, ecx
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xe4]
add eax, ecx
mov dword [rsp + 0xec], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
sub eax, ecx
mov dword [rsp + 0xf4], eax
mov eax, dword [rsp + 0xb4]
sar eax, 8
mov edi, dword [rsp + 0xb4]
sub edi, eax
mov eax, dword [rsp + 0xec]
sar eax, 1
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
add eax, ecx
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0xbc]
sar eax, 8
mov edi, dword [rsp + 0xbc]
sub edi, eax
mov eax, dword [rsp + 0xe0]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
add eax, ecx
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0xb8]
sar eax, 8
mov edi, dword [rsp + 0xb8]
sub edi, eax
mov eax, dword [rsp + 0xe8]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
add eax, ecx
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xc0]
sar eax, 8
mov edi, dword [rsp + 0xc0]
sub edi, eax
mov eax, dword [rsp + 0xf4]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
add eax, ecx
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x38]
and eax, 0x4000
test eax, eax
je 0x18009989a
mov eax, dword [rsp + 0xf4]
mov dword [rsp + 0xe0], eax
mov eax, dword [rsp + 0xec]
sar eax, 1
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0x38]
and eax, 0x8000
test eax, eax
je 0x180099ec9
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xbc]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x78]
add rax, 0x90c
mov qword [rsp + 0x40], rax
jmp 0x1800998da
mov rax, qword [rsp + 0x40]
add rax, 0x60
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x64]
sub eax, 1
mov dword [rsp + 0x64], eax
test ecx, ecx
je 0x180099ec4
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0
jle 0x180099b28
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x10]
mov dword [rsp + 0xfc], eax
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x30]
mov dword [rsp + 0xf8], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax]
mov eax, dword [rsp + 0x98]
add eax, ecx
and eax, 7
mov dword [rsp + 0x100], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 8]
imul eax, dword [rsp + 0xfc]
add eax, 0x100
sar eax, 9
add eax, dword [rsp + 0xe0]
mov dword [rsp + 0xdc], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0xc]
imul eax, dword [rsp + 0xf8]
add eax, 0x100
sar eax, 9
add eax, dword [rsp + 0xe8]
mov dword [rsp + 0xd8], eax
cmp dword [rsp + 0xfc], 0
je 0x180099a36
cmp dword [rsp + 0xe0], 0
je 0x180099a36
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xfc]
xor eax, ecx
test eax, eax
jl 0x1800999fd
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x200
jne 0x1800999fb
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x180099a36
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x180099a36
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp dword [rsp + 0xf8], 0
je 0x180099ad7
cmp dword [rsp + 0xe8], 0
je 0x180099ad7
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
xor eax, ecx
test eax, eax
jl 0x180099a9e
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0xc]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edx, 0x200
jne 0x180099a9c
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x180099ad7
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 0xc]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edi, edx
jne 0x180099ad7
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0xe0], eax
movsxd rdx, dword [rsp + 0x100]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe0]
mov dword [rcx + rdx*4 + 0x10], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0xe8], eax
movsxd rdx, dword [rsp + 0x100]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe8]
mov dword [rcx + rdx*4 + 0x30], eax
jmp 0x180099ebf
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0xffffffff
jne 0x180099cfd
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rcx + 8]
imul ecx, dword [rax + 0x10]
add ecx, 0x100
sar ecx, 9
mov eax, dword [rsp + 0xe0]
add eax, ecx
mov dword [rsp + 0xdc], eax
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x10], 0
je 0x180099c03
cmp dword [rsp + 0xe0], 0
je 0x180099c03
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x180099bca
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x200
jne 0x180099bc8
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x180099c03
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x180099c03
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0xe0], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
imul ecx, dword [rsp + 0xe0]
add ecx, 0x100
sar ecx, 9
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xd8], eax
cmp dword [rsp + 0xe0], 0
je 0x180099cdb
cmp dword [rsp + 0xe8], 0
je 0x180099cdb
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
xor eax, ecx
test eax, eax
jl 0x180099ca2
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0xc]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edx, 0x200
jne 0x180099ca0
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x180099cdb
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 0xc]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edi, edx
jne 0x180099cdb
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0xe8], eax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe8]
mov dword [rcx + 0x10], eax
jmp 0x180099ebf
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rcx + 8]
imul ecx, dword [rax + 0x10]
add ecx, 0x100
sar ecx, 9
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xd8], eax
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x10], 0
je 0x180099dca
cmp dword [rsp + 0xe8], 0
je 0x180099dca
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x180099d91
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x200
jne 0x180099d8f
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x180099dca
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x180099dca
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0xe8], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
imul ecx, dword [rsp + 0xe8]
add ecx, 0x100
sar ecx, 9
mov eax, dword [rsp + 0xe0]
add eax, ecx
mov dword [rsp + 0xdc], eax
cmp dword [rsp + 0xe8], 0
je 0x180099ea2
cmp dword [rsp + 0xe0], 0
je 0x180099ea2
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xe8]
xor eax, ecx
test eax, eax
jl 0x180099e69
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0xc]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edx, 0x200
jne 0x180099e67
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x180099ea2
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 0xc]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edi, edx
jne 0x180099ea2
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0xe0], eax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe0]
mov dword [rcx + 0x10], eax
jmp 0x1800998cc
jmp 0x18009a4e2
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xbc]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x78]
add rax, 0x90c
mov qword [rsp + 0x40], rax
jmp 0x180099ef8
mov rax, qword [rsp + 0x40]
add rax, 0x60
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x64]
sub eax, 1
mov dword [rsp + 0x64], eax
test ecx, ecx
je 0x18009a4e2
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0
jle 0x18009a146
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x10]
mov dword [rsp + 0x108], eax
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x30]
mov dword [rsp + 0x104], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax]
mov eax, dword [rsp + 0x98]
add eax, ecx
and eax, 7
mov dword [rsp + 0x10c], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 8]
imul eax, dword [rsp + 0x108]
add eax, 0x80
sar eax, 8
add eax, dword [rsp + 0xe0]
mov dword [rsp + 0xdc], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0xc]
imul eax, dword [rsp + 0x104]
add eax, 0x80
sar eax, 8
add eax, dword [rsp + 0xe8]
mov dword [rsp + 0xd8], eax
cmp dword [rsp + 0x108], 0
je 0x18009a054
cmp dword [rsp + 0xe0], 0
je 0x18009a054
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0x108]
xor eax, ecx
test eax, eax
jl 0x18009a01b
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x100
jne 0x18009a019
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18009a054
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x18009a054
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp dword [rsp + 0x104], 0
je 0x18009a0f5
cmp dword [rsp + 0xe8], 0
je 0x18009a0f5
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0x104]
xor eax, ecx
test eax, eax
jl 0x18009a0bc
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0xc]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edx, 0x100
jne 0x18009a0ba
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18009a0f5
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 0xc]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edi, edx
jne 0x18009a0f5
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0xe0], eax
movsxd rdx, dword [rsp + 0x10c]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe0]
mov dword [rcx + rdx*4 + 0x10], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0xe8], eax
movsxd rdx, dword [rsp + 0x10c]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe8]
mov dword [rcx + rdx*4 + 0x30], eax
jmp 0x18009a4dd
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0xffffffff
jne 0x18009a31b
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rcx + 8]
imul ecx, dword [rax + 0x10]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0xe0]
add eax, ecx
mov dword [rsp + 0xdc], eax
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x10], 0
je 0x18009a221
cmp dword [rsp + 0xe0], 0
je 0x18009a221
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x18009a1e8
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x100
jne 0x18009a1e6
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18009a221
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x18009a221
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0xe0], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
imul ecx, dword [rsp + 0xe0]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xd8], eax
cmp dword [rsp + 0xe0], 0
je 0x18009a2f9
cmp dword [rsp + 0xe8], 0
je 0x18009a2f9
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
xor eax, ecx
test eax, eax
jl 0x18009a2c0
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0xc]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edx, 0x100
jne 0x18009a2be
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18009a2f9
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 0xc]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edi, edx
jne 0x18009a2f9
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0xe8], eax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe8]
mov dword [rcx + 0x10], eax
jmp 0x18009a4dd
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rcx + 8]
imul ecx, dword [rax + 0x10]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xd8], eax
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x10], 0
je 0x18009a3e8
cmp dword [rsp + 0xe8], 0
je 0x18009a3e8
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x18009a3af
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x100
jne 0x18009a3ad
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18009a3e8
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x18009a3e8
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0xe8], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
imul ecx, dword [rsp + 0xe8]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0xe0]
add eax, ecx
mov dword [rsp + 0xdc], eax
cmp dword [rsp + 0xe8], 0
je 0x18009a4c0
cmp dword [rsp + 0xe0], 0
je 0x18009a4c0
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xe8]
xor eax, ecx
test eax, eax
jl 0x18009a487
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0xc]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edx, 0x100
jne 0x18009a485
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18009a4c0
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 0xc]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edi, edx
jne 0x18009a4c0
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0xe0], eax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xe0]
mov dword [rcx + 0x10], eax
jmp 0x180099eea
mov eax, dword [rsp + 0x98]
add eax, 1
and eax, 7
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x38]
and eax, 0x4000
test eax, eax
je 0x18009a55f
mov eax, dword [rsp + 0xe0]
mov dword [rsp + 0xf4], eax
mov ecx, dword [rsp + 0xf4]
and ecx, 1
mov eax, dword [rsp + 0xe8]
shl eax, 1
or eax, ecx
mov dword [rsp + 0xec], eax
mov ecx, dword [rsp + 0xf4]
mov eax, dword [rsp + 0xec]
sub eax, ecx
sar eax, 1
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xf4]
mov eax, dword [rsp + 0xec]
add eax, ecx
sar eax, 1
mov dword [rsp + 0xe0], eax
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x18009a8a3
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x18009a675
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x18009a5b2
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x1a4], eax
jmp 0x18009a621
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
je 0x18009a5de
jmp 0x18009a5ef
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], 7
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x1a4], eax
cmp dword [rsp + 0x1a4], 0
je 0x18009a64a
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x1a8], 1
jmp 0x18009a667
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x1a8], 0
cmp dword [rsp + 0x1a8], 0
jne 0x18009a7ea
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 8
jge 0x18009a704
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
jne 0x18009a6bf
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x64]
movzx ecx, al
shl edx, cl
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
or ecx, edx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
add rcx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
jmp 0x18009a675
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0xf0], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0x20
jle 0x18009a761
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
mov eax, 8
sub rax, rcx
movzx ecx, al
mov eax, edx
sar eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
jmp 0x18009a787
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov eax, dword [rsp + 0xf0]
and eax, 0xff
mov dword [rsp + 0xf0], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8dc]
cmp dword [rsp + 0xf0], eax
je 0x18009a7d1
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xf0]
mov dword [rcx + 0x8dc], eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], 0
jmp 0x18009a7ea
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8e0]
add ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], ecx
mov edx, dword [rsp + 0xe0]
shl edx, 4
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8dc]
sar ecx, 4
mov eax, edx
add eax, ecx
mov dword [rsp + 0xe0], eax
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0xe0]
mov dword [rcx], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0xe0]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov edx, dword [rsp + 0xe8]
shl edx, 4
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8dc]
and ecx, 0xf
mov eax, edx
add eax, ecx
mov dword [rsp + 0xe8], eax
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0xe8]
mov dword [rcx], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0xe8]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009a929
mov edx, dword [rsp + 0x30]
imul edx, edx, 9
mov eax, dword [rsp + 0xe0]
imul eax, eax, 3
mov ecx, dword [rsp + 0xe8]
add ecx, edx
add eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0xe0]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0xe8]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x180099368
jmp 0x18009b07e
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009a958
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009b07e
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009a988
jmp 0x18009b07e
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xb4], eax
jg 0x18009a9fa
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb4], eax
jg 0x18009a9fa
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
shl eax, 1
mov ecx, dword [rsp + 0x60]
and ecx, 1
or eax, ecx
mov dword [rsp + 0x120], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x120]
add eax, ecx
sar eax, 1
mov dword [rsp + 0x118], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x120]
sub eax, ecx
sar eax, 1
mov dword [rsp + 0x11c], eax
jmp 0x18009aa8e
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xbc], eax
jg 0x18009aa4d
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x118], eax
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x118]
sub eax, ecx
mov dword [rsp + 0x11c], eax
mov ecx, dword [rsp + 0x11c]
mov eax, dword [rsp + 0x118]
add eax, ecx
mov dword [rsp + 0x120], eax
jmp 0x18009aa8e
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x11c], eax
mov ecx, dword [rsp + 0x11c]
mov eax, dword [rsp + 0x60]
add eax, ecx
mov dword [rsp + 0x118], eax
mov ecx, dword [rsp + 0x118]
mov eax, dword [rsp + 0x11c]
add eax, ecx
mov dword [rsp + 0x120], eax
mov eax, dword [rsp + 0xb4]
sar eax, 8
mov edi, dword [rsp + 0xb4]
sub edi, eax
mov eax, dword [rsp + 0x120]
sar eax, 1
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
add eax, ecx
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0xbc]
sar eax, 8
mov edi, dword [rsp + 0xbc]
sub edi, eax
mov eax, dword [rsp + 0x118]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
add eax, ecx
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0xb8]
sar eax, 8
mov edi, dword [rsp + 0xb8]
sub edi, eax
mov eax, dword [rsp + 0x11c]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
add eax, ecx
mov dword [rsp + 0xb8], eax
mov ecx, dword [rsp + 0x24]
imul ecx, dword [rsp + 0x50]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0x20]
add eax, ecx
add eax, dword [rsp + 0x118]
mov dword [rsp + 0x114], eax
mov ecx, dword [rsp + 0x2c]
imul ecx, dword [rsp + 0x54]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0x28]
add eax, ecx
add eax, dword [rsp + 0x11c]
mov dword [rsp + 0x110], eax
cmp dword [rsp + 0x24], 0
jl 0x18009ab74
mov dword [rsp + 0x1ac], 1
jmp 0x18009ab7f
mov dword [rsp + 0x1ac], 0
cmp dword [rsp + 0x118], 0
jle 0x18009ab96
mov dword [rsp + 0x1b0], 1
jmp 0x18009aba1
mov dword [rsp + 0x1b0], 0
mov eax, dword [rsp + 0x1b0]
cmp dword [rsp + 0x1ac], eax
jne 0x18009abd5
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x18009abd3
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x18009abf3
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x18009abf3
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x2c], 0
jl 0x18009ac07
mov dword [rsp + 0x1b4], 1
jmp 0x18009ac12
mov dword [rsp + 0x1b4], 0
cmp dword [rsp + 0x11c], 0
jle 0x18009ac29
mov dword [rsp + 0x1b8], 1
jmp 0x18009ac34
mov dword [rsp + 0x1b8], 0
mov eax, dword [rsp + 0x1b8]
cmp dword [rsp + 0x1b4], eax
jne 0x18009ac68
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
cmp ecx, 0x100
jne 0x18009ac66
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
jmp 0x18009ac86
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
test ecx, ecx
jne 0x18009ac86
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x114]
sub eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov ecx, dword [rsp + 0x28]
mov eax, dword [rsp + 0x110]
sub eax, ecx
mov dword [rsp + 0x2c], eax
mov ecx, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x28]
add eax, ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x18009afff
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x18009adda
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x18009ad17
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x1bc], eax
jmp 0x18009ad86
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
je 0x18009ad43
jmp 0x18009ad54
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], 7
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
and eax, 1
mov dword [rsp + 0x1bc], eax
cmp dword [rsp + 0x1bc], 0
je 0x18009adaf
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x1c0], 1
jmp 0x18009adcc
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x1c0], 0
cmp dword [rsp + 0x1c0], 0
jne 0x18009af4f
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 8
jge 0x18009ae69
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x40]
add rcx, 1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x38]
cmp qword [rcx + 0x40], rax
jne 0x18009ae24
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
mov rax, qword [rsp + 0x78]
call qword [rax + 0x28]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x64]
movzx ecx, al
shl edx, cl
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
or ecx, edx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
add rcx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
jmp 0x18009adda
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x124], eax
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0x20
jle 0x18009aec6
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x40]
movzx edx, byte [rax]
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax + 0x64]
mov eax, 8
sub rax, rcx
movzx ecx, al
mov eax, edx
sar eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
jmp 0x18009aeec
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x64]
sub ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x50]
shr ecx, 8
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x50], ecx
mov eax, dword [rsp + 0x124]
and eax, 0xff
mov dword [rsp + 0x124], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8dc]
cmp dword [rsp + 0x124], eax
je 0x18009af36
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0x124]
mov dword [rcx + 0x8dc], eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], 0
jmp 0x18009af4f
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8e0]
add ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e0], ecx
mov edx, dword [rsp + 0x20]
shl edx, 4
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8dc]
sar ecx, 4
mov eax, edx
add eax, ecx
mov dword [rsp + 0x114], eax
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x114]
mov dword [rcx], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x114]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov edx, dword [rsp + 0x28]
shl edx, 4
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x8dc]
and ecx, 0xf
mov eax, edx
add eax, ecx
mov dword [rsp + 0x110], eax
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x110]
mov dword [rcx], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x110]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b079
mov edx, dword [rsp + 0x30]
imul edx, edx, 9
mov eax, dword [rsp + 0x20]
imul eax, eax, 3
mov ecx, dword [rsp + 0x28]
add ecx, edx
add eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x28]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009a94d
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xbc]
mov dword [rcx + 0x8d0], eax
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xb8]
mov dword [rcx + 0x8d4], eax
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xb4]
mov dword [rcx + 0x8cc], eax
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xc0]
mov dword [rcx + 0x8d8], eax
jmp 0x18009c7dd
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x18009b7d8
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x18009b7d8
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x18009b7d8
mov eax, dword [rsp + 0x38]
and eax, 2
test eax, eax
je 0x18009b248
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009b131
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009b243
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009b161
jmp 0x18009b243
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x18009b1ce
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x18009b1aa
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b23e
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x18009b20e
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x18009b1ea
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b23e
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b126
jmp 0x18009b7d3
mov eax, dword [rsp + 0x38]
and eax, 0x410
test eax, eax
je 0x18009b5e9
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009b27e
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009b5e4
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x18009b2b9
lea r8, [rsp + 0x90]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009faa0
mov dword [rsp + 0x1c4], eax
jmp 0x18009b2cc
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x1c4], eax
mov eax, dword [rsp + 0x1c4]
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009b2e6
jmp 0x18009b5e4
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xbc]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x78]
add rax, 0x90c
mov qword [rsp + 0x40], rax
jmp 0x18009b315
mov rax, qword [rsp + 0x40]
add rax, 0x60
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x64]
sub eax, 1
mov dword [rsp + 0x64], eax
test ecx, ecx
je 0x18009b454
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x10]
mov dword [rsp + 0x12c], eax
mov edx, dword [rsp + 0x12c]
and edx, 0xffff
mov rax, qword [rsp + 0x40]
imul edx, dword [rax + 8]
sar edx, 7
mov eax, dword [rsp + 0x12c]
and eax, 0xffff0000
sar eax, 7
mov rcx, qword [rsp + 0x40]
imul eax, dword [rcx + 8]
lea eax, [rdx + rax + 1]
sar eax, 1
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x128], eax
cmp dword [rsp + 0x12c], 0
je 0x18009b421
cmp dword [rsp + 0x60], 0
je 0x18009b421
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x12c]
xor eax, ecx
test eax, eax
jl 0x18009b3e8
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x100
jne 0x18009b3e6
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18009b421
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x18009b421
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax]
mov eax, dword [rsp + 0x98]
add eax, ecx
and eax, 7
movsxd rdx, eax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x60]
mov dword [rcx + rdx*4 + 0x10], eax
jmp 0x18009b307
mov eax, dword [rsp + 0x98]
add eax, 1
and eax, 7
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x38]
and eax, 0x80
test eax, eax
je 0x18009b51e
mov eax, dword [rsp + 0x38]
and eax, 0x100
test eax, eax
je 0x18009b4c9
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8e8]
mov ecx, dword [rsp + 0x90]
add ecx, eax
mov eax, dword [rsp + 0x60]
add eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov ecx, dword [rsp + 0x90]
neg ecx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e8], ecx
jmp 0x18009b4e9
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0x60]
add eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x60]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b5df
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x60], eax
jge 0x18009b56f
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x60], eax
jge 0x18009b54b
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b5df
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x60], eax
jle 0x18009b5af
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x60], eax
jle 0x18009b58b
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b5df
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x60]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b273
jmp 0x18009b7d3
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009b60e
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009b7d3
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009b63e
jmp 0x18009b7d3
mov ecx, dword [rsp + 0x24]
imul ecx, dword [rsp + 0x50]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0x20]
add eax, ecx
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x130], eax
cmp dword [rsp + 0x24], 0
jl 0x18009b675
mov dword [rsp + 0x1c8], 1
jmp 0x18009b680
mov dword [rsp + 0x1c8], 0
cmp dword [rsp + 0x60], 0
jle 0x18009b694
mov dword [rsp + 0x1cc], 1
jmp 0x18009b69f
mov dword [rsp + 0x1cc], 0
mov eax, dword [rsp + 0x1cc]
cmp dword [rsp + 0x1c8], eax
jne 0x18009b6d3
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x18009b6d1
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x18009b6f1
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x18009b6f1
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x130]
sub eax, ecx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x18009b75e
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x18009b73a
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b7ce
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x18009b79e
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x18009b77a
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b7ce
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b603
jmp 0x18009c7dd
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x18009c4a7
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x18009c4a7
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
jne 0x18009c4a7
mov eax, dword [rsp + 0x38]
and eax, 2
test eax, eax
je 0x18009ba3f
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009b83e
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009ba3a
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009b86e
jmp 0x18009ba3a
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x18009b8db
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x18009b8b7
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b94b
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x18009b91b
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x18009b8f7
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b94b
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov edx, eax
mov eax, dword [rsp + 0x2c]
add eax, edx
mov dword [rsp + 0x2c], eax
mov ecx, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x28]
add eax, ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x28]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x28], eax
jge 0x18009b9c5
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x28], eax
jge 0x18009b9a1
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009ba35
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x28], eax
jle 0x18009ba05
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x28], eax
jle 0x18009b9e1
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009ba35
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x28]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009b833
jmp 0x18009c4a2
mov eax, dword [rsp + 0x38]
and eax, 0x410
test eax, eax
je 0x18009c115
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009ba75
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009c110
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x18009bace
lea r8, [rsp + 0x90]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009faa0
mov dword [rsp + 0x13c], eax
lea r8, [rsp + 0x94]
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009faa0
mov dword [rsp + 0x140], eax
jmp 0x18009baf7
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x13c], eax
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x140], eax
cmp dword [rsp + 0x13c], 0x80000000
jne 0x18009bb09
jmp 0x18009c110
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xbc]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x78]
add rax, 0x90c
mov qword [rsp + 0x40], rax
jmp 0x18009bb38
mov rax, qword [rsp + 0x40]
add rax, 0x60
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x64]
sub eax, 1
mov dword [rsp + 0x64], eax
test ecx, ecx
je 0x18009bdb6
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x10]
mov dword [rsp + 0x150], eax
movsxd rcx, dword [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + rcx*4 + 0x30]
mov dword [rsp + 0x14c], eax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax]
mov eax, dword [rsp + 0x98]
add eax, ecx
and eax, 7
mov dword [rsp + 0x154], eax
mov edx, dword [rsp + 0x150]
and edx, 0xffff
mov rax, qword [rsp + 0x40]
imul edx, dword [rax + 8]
sar edx, 7
mov eax, dword [rsp + 0x150]
and eax, 0xffff0000
sar eax, 7
mov rcx, qword [rsp + 0x40]
imul eax, dword [rcx + 8]
lea eax, [rdx + rax + 1]
sar eax, 1
add eax, dword [rsp + 0x13c]
mov dword [rsp + 0x138], eax
cmp dword [rsp + 0x150], 0
je 0x18009bc7f
cmp dword [rsp + 0x13c], 0
je 0x18009bc7f
mov ecx, dword [rsp + 0x13c]
mov eax, dword [rsp + 0x150]
xor eax, ecx
test eax, eax
jl 0x18009bc46
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edx, 0x100
jne 0x18009bc44
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18009bc7f
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 8]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
cmp edi, edx
jne 0x18009bc7f
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
mov eax, dword [rsp + 0x138]
mov dword [rsp + 0x13c], eax
movsxd rdx, dword [rsp + 0x154]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x13c]
mov dword [rcx + rdx*4 + 0x10], eax
mov edx, dword [rsp + 0x14c]
and edx, 0xffff
mov rax, qword [rsp + 0x40]
imul edx, dword [rax + 0xc]
sar edx, 7
mov eax, dword [rsp + 0x14c]
and eax, 0xffff0000
sar eax, 7
mov rcx, qword [rsp + 0x40]
imul eax, dword [rcx + 0xc]
lea eax, [rdx + rax + 1]
sar eax, 1
add eax, dword [rsp + 0x140]
mov dword [rsp + 0x134], eax
cmp dword [rsp + 0x14c], 0
je 0x18009bd8b
cmp dword [rsp + 0x140], 0
je 0x18009bd8b
mov ecx, dword [rsp + 0x140]
mov eax, dword [rsp + 0x14c]
xor eax, ecx
test eax, eax
jl 0x18009bd52
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0xc]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edx, 0x100
jne 0x18009bd50
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18009bd8b
mov rax, qword [rsp + 0x40]
mov edi, dword [rax + 0xc]
mov edx, dword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
cmp edi, edx
jne 0x18009bd8b
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0x134]
mov dword [rsp + 0x140], eax
movsxd rdx, dword [rsp + 0x154]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x140]
mov dword [rcx + rdx*4 + 0x30], eax
jmp 0x18009bb2a
mov eax, dword [rsp + 0x98]
add eax, 1
and eax, 7
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x38]
and eax, 0x80
test eax, eax
je 0x18009be88
mov eax, dword [rsp + 0x38]
and eax, 0x100
test eax, eax
je 0x18009be5a
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8e8]
mov ecx, dword [rsp + 0x90]
add ecx, eax
mov eax, dword [rsp + 0x13c]
add eax, ecx
mov dword [rsp + 0x13c], eax
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x8ec]
mov ecx, dword [rsp + 0x94]
add ecx, eax
mov eax, dword [rsp + 0x140]
add eax, ecx
mov dword [rsp + 0x140], eax
mov ecx, dword [rsp + 0x90]
neg ecx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8e8], ecx
mov ecx, dword [rsp + 0x94]
neg ecx
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x8ec], ecx
jmp 0x18009be88
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0x13c]
add eax, ecx
mov dword [rsp + 0x13c], eax
mov ecx, dword [rsp + 0x94]
mov eax, dword [rsp + 0x140]
add eax, ecx
mov dword [rsp + 0x140], eax
mov eax, dword [rsp + 0x38]
and eax, 0x4000
test eax, eax
je 0x18009bef1
mov eax, dword [rsp + 0x140]
shl eax, 1
mov ecx, dword [rsp + 0x13c]
and ecx, 1
or eax, ecx
mov dword [rsp + 0x144], eax
mov eax, dword [rsp + 0x13c]
mov dword [rsp + 0x148], eax
mov ecx, dword [rsp + 0x148]
mov eax, dword [rsp + 0x144]
sub eax, ecx
sar eax, 1
mov dword [rsp + 0x140], eax
mov ecx, dword [rsp + 0x148]
mov eax, dword [rsp + 0x144]
add eax, ecx
sar eax, 1
mov dword [rsp + 0x13c], eax
mov edx, dword [rsp + 0x30]
imul edx, edx, 9
mov eax, dword [rsp + 0x13c]
imul eax, eax, 3
mov ecx, dword [rsp + 0x140]
add ecx, edx
add eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x38]
and eax, 0x80
test eax, eax
je 0x18009bf89
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x13c]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x140]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c10b
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x13c], eax
jge 0x18009bfd1
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x13c], eax
jge 0x18009bfad
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c04a
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x13c], eax
jle 0x18009c017
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x13c], eax
jle 0x18009bff3
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c04a
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x13c]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x140], eax
jge 0x18009c092
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x140], eax
jge 0x18009c06e
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c10b
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x140], eax
jle 0x18009c0d8
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x140], eax
jle 0x18009c0b4
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c10b
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x140]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009ba6a
jmp 0x18009c4a2
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009c13a
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009c4a2
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009c16a
jmp 0x18009c4a2
mov ecx, dword [rsp + 0x24]
imul ecx, dword [rsp + 0x50]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0x20]
add eax, ecx
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x158], eax
cmp dword [rsp + 0x24], 0
jl 0x18009c1a1
mov dword [rsp + 0x1d0], 1
jmp 0x18009c1ac
mov dword [rsp + 0x1d0], 0
cmp dword [rsp + 0x60], 0
jle 0x18009c1c0
mov dword [rsp + 0x1d4], 1
jmp 0x18009c1cb
mov dword [rsp + 0x1d4], 0
mov eax, dword [rsp + 0x1d4]
cmp dword [rsp + 0x1d0], eax
jne 0x18009c1ff
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x18009c1fd
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x18009c21d
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x18009c21d
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x158]
sub eax, ecx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], eax
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009f3c0
mov dword [rsp + 0x60], eax
mov ecx, dword [rsp + 0x2c]
imul ecx, dword [rsp + 0x54]
add ecx, 0x80
sar ecx, 8
mov eax, dword [rsp + 0x28]
add eax, ecx
add eax, dword [rsp + 0x60]
mov dword [rsp + 0x158], eax
cmp dword [rsp + 0x2c], 0
jl 0x18009c292
mov dword [rsp + 0x1d8], 1
jmp 0x18009c29d
mov dword [rsp + 0x1d8], 0
cmp dword [rsp + 0x60], 0
jle 0x18009c2b1
mov dword [rsp + 0x1dc], 1
jmp 0x18009c2bc
mov dword [rsp + 0x1dc], 0
mov eax, dword [rsp + 0x1dc]
cmp dword [rsp + 0x1d8], eax
jne 0x18009c2f0
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
cmp ecx, 0x100
jne 0x18009c2ee
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
jmp 0x18009c30e
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
test ecx, ecx
jne 0x18009c30e
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
mov ecx, dword [rsp + 0x28]
mov eax, dword [rsp + 0x158]
sub eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x30]
imul eax, eax, 3
add eax, dword [rsp + 0x28]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x18009c37b
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x18009c357
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c3eb
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x18009c3bb
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x18009c397
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c3eb
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x28], eax
jge 0x18009c42d
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x28], eax
jge 0x18009c409
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c49d
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x28], eax
jle 0x18009c46d
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x28], eax
jle 0x18009c449
mov dword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x68]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c49d
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x28]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c12f
jmp 0x18009c7dd
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 2
jne 0x18009c5cc
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x18009c5cc
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009c4ed
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009c5c7
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009ed50
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009c51d
jmp 0x18009c5c7
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x18009c592
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x18009c56e
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x18009c564
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
jmp 0x18009c592
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x18009c592
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x18009c58a
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c4e2
jmp 0x18009c7dd
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jge 0x18009c7d5
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
jne 0x18009c7d5
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009c612
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009c7d3
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.18009ed50
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009c642
jmp 0x18009c7d3
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.18009ed50
mov dword [rsp + 0x160], eax
mov ecx, dword [rsp + 0x160]
and ecx, 1
mov eax, dword [rsp + 0x60]
shl eax, 1
or eax, ecx
mov dword [rsp + 0x15c], eax
mov eax, dword [rsp + 0x160]
mov ecx, dword [rsp + 0x15c]
add ecx, eax
sar ecx, 1
mov eax, dword [rsp + 0x24]
add eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x160]
mov ecx, dword [rsp + 0x15c]
sub ecx, eax
sar ecx, 1
mov eax, dword [rsp + 0x2c]
add eax, ecx
mov dword [rsp + 0x2c], eax
mov ecx, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x28]
add eax, ecx
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x18009c76e
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x18009c6fe
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x18009c6f4
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
jmp 0x18009c722
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x18009c722
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x18009c71a
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x28], eax
jge 0x18009c74a
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x28], eax
jge 0x18009c740
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x28], eax
jmp 0x18009c76e
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x28], eax
jle 0x18009c76e
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x28], eax
jle 0x18009c766
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x20]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x9c]
movzx ecx, al
mov eax, dword [rsp + 0x28]
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov dword [rax], ecx
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
jmp 0x18009c607
jmp 0x18009c7dd
mov dword [rsp + 0x3c], 0
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x18009c7fb
mov eax, dword [rsp + 0x38]
and eax, 0x80
test eax, eax
je 0x18009c8a9
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x18009c813
mov dword [rsp + 0x1e0], 1
jmp 0x18009c81e
mov dword [rsp + 0x1e0], 2
mov eax, dword [rsp + 0x220]
imul eax, dword [rsp + 0x1e0]
mov ecx, eax
mov rax, qword [rsp + 0x218]
lea rax, [rax + rcx*4]
mov qword [rsp + 0x168], rax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
jmp 0x18009c869
mov rax, qword [rsp + 0x88]
add rax, 0xc
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x168]
cmp qword [rsp + 0x88], rax
jae 0x18009c8a9
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x34]
cmp dword [rcx], eax
jg 0x18009c89d
mov ecx, dword [rsp + 0x34]
neg ecx
mov rax, qword [rsp + 0x88]
cmp dword [rax], ecx
jge 0x18009c8a7
mov dword [rsp + 0x70], 1
jmp 0x18009c8a9
jmp 0x18009c855
cmp dword [rsp + 0x70], 0
je 0x18009c8f6
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x18009c8c8
mov dword [rsp + 0x1e4], 1
jmp 0x18009c8d3
mov dword [rsp + 0x1e4], 2
mov ecx, dword [rsp + 0x220]
shl rcx, 2
movsxd rax, dword [rsp + 0x1e4]
imul rcx, rax
mov rdi, qword [rsp + 0x218]
xor eax, eax
rep stosb byte [rdi], al
cmp dword [rsp + 0x3c], 0
je 0x18009cc3d
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0xb8]
add ecx, dword [rsp + 0x3c]
mov rax, qword [rsp + 0x78]
mov dword [rax + 0xb8], ecx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0xb8]
cmp dword [rcx + 0xb8], eax
jne 0x18009cc3d
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x18009c9a5
mov rax, qword [rsp + 0x210]
cmp dword [rax + 0xc4], 0
je 0x18009c96a
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x1e8], eax
jmp 0x18009c979
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x14]
mov dword [rsp + 0x1e8], eax
mov eax, dword [rsp + 0x1e8]
cmp dword [rsp + 0x30], eax
je 0x18009c9a5
mov rax, qword [rsp + 0x210]
mov ecx, dword [rax + 0xbc]
add ecx, 1
mov rax, qword [rsp + 0x210]
mov dword [rax + 0xbc], ecx
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0xc8]
and eax, 4
test eax, eax
je 0x18009cc3d
mov ecx, 0x400
call fcn.18006b174
mov qword [rsp + 0x178], rax
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.18009ce60
test eax, eax
je 0x18009ca88
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.18009ce60
mov edx, eax
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x70]
add eax, edx
mov edx, eax
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x68]
call fcn.18006c604
mov rdx, rax
mov rax, qword [rsp + 0x210]
mov qword [rax + 0x68], rdx
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.18009ce60
mov ebx, eax
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.18009ceb0
mov rsi, rax
mov rax, qword [rsp + 0x210]
mov edi, dword [rax + 0x70]
mov rax, qword [rsp + 0x210]
add rdi, qword [rax + 0x68]
mov rcx, rbx
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.18009ce60
mov ecx, eax
mov rax, qword [rsp + 0x210]
add ecx, dword [rax + 0x70]
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x70], ecx
xor eax, eax
cmp eax, 1
je 0x18009cb52
mov rax, qword [rsp + 0x210]
mov rax, qword [rax + 0x90]
mov r8d, 8
mov rdx, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x98]
call qword [rax]
mov dword [rsp + 0x170], eax
cmp dword [rsp + 0x170], 0
jne 0x18009cad4
jmp 0x18009cb52
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x70]
add eax, dword [rsp + 0x170]
mov edx, eax
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x68]
call fcn.18006c604
mov rdx, rax
mov rax, qword [rsp + 0x210]
mov qword [rax + 0x68], rdx
mov ecx, dword [rsp + 0x170]
mov rax, qword [rsp + 0x210]
mov edi, dword [rax + 0x70]
mov rax, qword [rsp + 0x210]
add rdi, qword [rax + 0x68]
mov rsi, qword [rsp + 0x178]
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x210]
mov ecx, dword [rax + 0x70]
add ecx, dword [rsp + 0x170]
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x70], ecx
jmp 0x18009ca88
mov rcx, qword [rsp + 0x178]
call fcn.18006b22c
mov rdx, qword [rsp + 0x210]
cmp dword [rdx + 0x70], 0x10
jbe 0x18009cc3d
mov dword [rsp + 0x180], 0
jmp 0x18009cb8f
mov eax, dword [rsp + 0x180]
add eax, 1
mov dword [rsp + 0x180], eax
cmp dword [rsp + 0x180], 0x10
jge 0x18009cbba
movsxd rcx, dword [rsp + 0x180]
mov rax, qword [rsp + 0x210]
mov rax, qword [rax + 0x68]
movzx eax, byte [rax + rcx]
cmp eax, 0xff
jne 0x18009cbba
jmp 0x18009cb7e
cmp dword [rsp + 0x180], 0x10
jne 0x18009cc0d
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x70]
sub eax, 0x10
mov ecx, eax
mov rsi, qword [rsp + 0x210]
mov rsi, qword [rsi + 0x68]
add rsi, 0x10
mov rdi, qword [rsp + 0x210]
mov rdi, qword [rdi + 0x68]
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x210]
mov ecx, dword [rax + 0x70]
sub ecx, 0x10
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x70], ecx
jmp 0x18009cc3d
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x68]
call fcn.18006b22c
mov rdx, qword [rsp + 0x210]
mov qword [rdx + 0x68], 0
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x70], 0
mov rdi, qword [rsp + 0x78]
lea rsi, [rsp + 0x20]
add rdi, 0x8f4
mov ecx, reloc.WS2_32.dll_recv
rep movsb byte [rdi], byte [rsi]
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x50]
mov qword [rdx + 0x904], rax
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0x30]
mov dword [rcx + 0x8f0], eax
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0x98]
mov dword [rcx + 0x8e4], eax
mov eax, dword [rsp + 0x3c]
add rsp, 0x1f0
pop rdi
pop rsi
pop rbx
ret