Function at 0x18008da80
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 0x18008db35
mov dword [rsp + 0x184], 0x800000
jmp 0x18008db40
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 0x18008db92
mov eax, dword [rsp + 0x38]
and eax, 0x80
test eax, eax
jne 0x18008db92
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jge 0x18008db88
mov eax, dword [rsp + 0x34]
shl eax, 2
mov dword [rsp + 0x34], eax
jmp 0x18008db92
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 0x18008dbd6
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 0x18008dbe7
xor eax, eax
jmp 0x1800929cb
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0xb8], 0
jne 0x18008dc68
mov rcx, qword [rsp + 0x78]
call fcn.18008d860
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.1800929e0
mov rdx, qword [rsp + 0x210]
cmp dword [rdx + 0xc4], 0
je 0x18008dc68
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.1800929e0
movsxd rcx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x78]
movsx eax, byte [rax + rcx*8 + 0xc0]
test eax, eax
jne 0x18008dd25
mov rax, qword [rsp + 0x78]
cmp qword [rax + 0x8c0], 0
jne 0x18008dccf
mov rcx, qword [rsp + 0x78]
call fcn.180092c40
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.1800635c4
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.180092e10
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, 0x10
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 0x18008dd75
mov eax, dword [rsp + 0x38]
and eax, 0xa000
test eax, eax
je 0x18008dd73
mov dword [rsp + 0x80], 0xffffff00
jmp 0x18008ddb5
mov eax, dword [rsp + 0x38]
and eax, 0x2000
test eax, eax
je 0x18008ddb5
mov eax, dword [rsp + 0x38]
and eax, 0x8000
test eax, eax
je 0x18008dd9c
mov dword [rsp + 0x188], 0xfffffe00
jmp 0x18008dda7
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 0x18008de0e
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 0x18008de5a
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 0x18008ec04
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
jne 0x18008ec04
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x18008ec04
mov eax, dword [rsp + 0x38]
and eax, 2
test eax, eax
je 0x18008e13b
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x18008e088
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18008decf
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18008e083
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008deff
jmp 0x18008e083
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 0x18008dfaa
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 0x18008df65
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 0x18008df1b
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 0x18008e007
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 0x18008e02d
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 0x18008dec4
jmp 0x18008e136
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18008e0ad
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18008e136
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008e0d6
jmp 0x18008e136
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 0x18008e0a2
jmp 0x18008ebff
mov eax, dword [rsp + 0x38]
and eax, 0x10
test eax, eax
je 0x18008e7b9
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18008e16f
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18008e7b4
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x18008e1ae
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180093350
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008e1ac
jmp 0x18008e7b4
jmp 0x18008e1cd
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180094480
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008e1cd
jmp 0x18008e7b4
mov eax, dword [rsp + 0x38]
and eax, 0x8000
test eax, eax
je 0x18008e332
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 0x18008e20d
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 0x18008e32d
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 0x18008e2fa
cmp dword [rsp + 0x60], 0
je 0x18008e2fa
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0xa8]
xor eax, ecx
test eax, eax
jl 0x18008e2c1
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 0x18008e2bf
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18008e2fa
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 0x18008e2fa
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 0x18008e1ff
jmp 0x18008e481
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 0x18008e361
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 0x18008e481
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 0x18008e44e
cmp dword [rsp + 0x60], 0
je 0x18008e44e
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0xac]
xor eax, ecx
test eax, eax
jl 0x18008e415
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 0x18008e413
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18008e44e
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 0x18008e44e
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 0x18008e353
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 0x18008e770
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x18008e5ab
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x18008e4e8
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 0x18008e557
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 0x18008e514
jmp 0x18008e525
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 0x18008e580
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 0x18008e59d
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 0x18008e71e
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 4
jge 0x18008e63a
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 0x18008e5f5
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 0x18008e5ab
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 0x18008e697
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 0x18008e6bd
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 0x18008e705
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 0x18008e71e
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 0x18008e7af
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 0x18008e164
jmp 0x18008ebff
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18008e7de
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18008ebff
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008e80e
jmp 0x18008ebff
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 0x18008e845
mov dword [rsp + 0x194], 1
jmp 0x18008e850
mov dword [rsp + 0x194], 0
cmp dword [rsp + 0x60], 0
jle 0x18008e864
mov dword [rsp + 0x198], 1
jmp 0x18008e86f
mov dword [rsp + 0x198], 0
mov eax, dword [rsp + 0x198]
cmp dword [rsp + 0x194], eax
jne 0x18008e8a3
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x18008e8a1
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x18008e8c1
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x18008e8c1
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 0x18008ebbb
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x18008e9f6
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x18008e933
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 0x18008e9a2
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 0x18008e95f
jmp 0x18008e970
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 0x18008e9cb
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 0x18008e9e8
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 0x18008eb69
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 4
jge 0x18008ea85
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 0x18008ea40
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 0x18008e9f6
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 0x18008eae2
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 0x18008eb08
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 0x18008eb50
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 0x18008eb69
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 0x18008ebfa
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 0x18008e7d3
jmp 0x18009251d
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x180090e0b
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
jne 0x180090e0b
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
jne 0x180090e0b
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 0x18008f07f
mov eax, dword [rsp + 0x38]
and eax, 0x40
test eax, eax
je 0x18008ef1f
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18008ecc1
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18008ef1a
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008ecf1
jmp 0x18008ef1a
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180095100
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 0x18008ee03
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 0x18008edbe
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 0x18008ed74
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 0x18008ee60
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 0x18008ee86
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 0x18008ecb6
jmp 0x18008f07a
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18008ef44
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18008f07a
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008ef74
jmp 0x18008f07a
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180095100
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 0x18008ef39
jmp 0x180090dbe
mov eax, dword [rsp + 0x38]
and eax, 0x10
test eax, eax
je 0x180090673
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18008f0b3
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009066e
mov eax, dword [rsp + 0x38]
and eax, 0x1000
test eax, eax
je 0x18008f111
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180093350
mov dword [rsp + 0xe0], eax
cmp dword [rsp + 0xe0], 0x80000000
jne 0x18008f0f6
jmp 0x18009066e
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180093350
mov dword [rsp + 0xe8], eax
jmp 0x18008f5da
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x18008f3c3
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180093350
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008f141
jmp 0x18009066e
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180093350
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb8], eax
jle 0x18008f297
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 0x18008f1eb
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0xb8], eax
jge 0x18008f1eb
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 0x18008f292
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xf4], eax
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb4], eax
jge 0x18008f256
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 0x18008f292
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 0x18008f3be
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 0x18008f317
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0xbc], eax
jge 0x18008f317
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 0x18008f3be
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xf4], eax
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xb4], eax
jge 0x18008f382
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 0x18008f3be
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 0x18008f4fd
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180094480
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18008f3e2
jmp 0x18009066e
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180094480
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xb4], eax
jg 0x18008f462
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb4], eax
jg 0x18008f462
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 0x18008f4e6
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xbc], eax
jg 0x18008f4ad
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 0x18008f4e6
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 0x18008f5da
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 0x18008fc09
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 0x18008f61a
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 0x18008fc04
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0
jle 0x18008f868
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 0x18008f776
cmp dword [rsp + 0xe0], 0
je 0x18008f776
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xfc]
xor eax, ecx
test eax, eax
jl 0x18008f73d
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 0x18008f73b
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18008f776
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 0x18008f776
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 0x18008f817
cmp dword [rsp + 0xe8], 0
je 0x18008f817
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
xor eax, ecx
test eax, eax
jl 0x18008f7de
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 0x18008f7dc
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18008f817
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 0x18008f817
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 0x18008fbff
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0xffffffff
jne 0x18008fa3d
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 0x18008f943
cmp dword [rsp + 0xe0], 0
je 0x18008f943
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x18008f90a
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 0x18008f908
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18008f943
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 0x18008f943
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 0x18008fa1b
cmp dword [rsp + 0xe8], 0
je 0x18008fa1b
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
xor eax, ecx
test eax, eax
jl 0x18008f9e2
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 0x18008f9e0
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18008fa1b
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 0x18008fa1b
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 0x18008fbff
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 0x18008fb0a
cmp dword [rsp + 0xe8], 0
je 0x18008fb0a
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x18008fad1
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 0x18008facf
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18008fb0a
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 0x18008fb0a
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 0x18008fbe2
cmp dword [rsp + 0xe0], 0
je 0x18008fbe2
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xe8]
xor eax, ecx
test eax, eax
jl 0x18008fba9
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 0x18008fba7
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18008fbe2
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 0x18008fbe2
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 0x18008f60c
jmp 0x180090222
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 0x18008fc38
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 0x180090222
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0
jle 0x18008fe86
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 0x18008fd94
cmp dword [rsp + 0xe0], 0
je 0x18008fd94
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0x108]
xor eax, ecx
test eax, eax
jl 0x18008fd5b
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 0x18008fd59
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18008fd94
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 0x18008fd94
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 0x18008fe35
cmp dword [rsp + 0xe8], 0
je 0x18008fe35
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0x104]
xor eax, ecx
test eax, eax
jl 0x18008fdfc
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 0x18008fdfa
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x18008fe35
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 0x18008fe35
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 0x18009021d
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0xffffffff
jne 0x18009005b
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 0x18008ff61
cmp dword [rsp + 0xe0], 0
je 0x18008ff61
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x18008ff28
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 0x18008ff26
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x18008ff61
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 0x18008ff61
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 0x180090039
cmp dword [rsp + 0xe8], 0
je 0x180090039
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xe0]
xor eax, ecx
test eax, eax
jl 0x180090000
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 0x18008fffe
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x180090039
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 0x180090039
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 0x18009021d
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 0x180090128
cmp dword [rsp + 0xe8], 0
je 0x180090128
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rax + 0x10]
xor eax, ecx
test eax, eax
jl 0x1800900ef
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 0x1800900ed
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x180090128
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 0x180090128
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 0x180090200
cmp dword [rsp + 0xe0], 0
je 0x180090200
mov ecx, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xe8]
xor eax, ecx
test eax, eax
jl 0x1800901c7
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 0x1800901c5
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x180090200
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 0x180090200
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 0x18008fc2a
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 0x18009029f
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 0x1800905e3
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x1800903b5
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x1800902f2
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 0x180090361
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 0x18009031e
jmp 0x18009032f
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 0x18009038a
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 0x1800903a7
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 0x18009052a
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 8
jge 0x180090444
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 0x1800903ff
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 0x1800903b5
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 0x1800904a1
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 0x1800904c7
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 0x180090511
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 0x18009052a
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 0x180090669
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 0x18008f0a8
jmp 0x180090dbe
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180090698
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180090dbe
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x1800906c8
jmp 0x180090dbe
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xb4], eax
jg 0x18009073a
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0xb4], eax
jg 0x18009073a
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180095100
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 0x1800907ce
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0xbc], eax
jg 0x18009078d
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180095100
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 0x1800907ce
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180095100
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 0x1800908b4
mov dword [rsp + 0x1ac], 1
jmp 0x1800908bf
mov dword [rsp + 0x1ac], 0
cmp dword [rsp + 0x118], 0
jle 0x1800908d6
mov dword [rsp + 0x1b0], 1
jmp 0x1800908e1
mov dword [rsp + 0x1b0], 0
mov eax, dword [rsp + 0x1b0]
cmp dword [rsp + 0x1ac], eax
jne 0x180090915
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x180090913
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x180090933
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x180090933
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x2c], 0
jl 0x180090947
mov dword [rsp + 0x1b4], 1
jmp 0x180090952
mov dword [rsp + 0x1b4], 0
cmp dword [rsp + 0x11c], 0
jle 0x180090969
mov dword [rsp + 0x1b8], 1
jmp 0x180090974
mov dword [rsp + 0x1b8], 0
mov eax, dword [rsp + 0x1b8]
cmp dword [rsp + 0x1b4], eax
jne 0x1800909a8
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
cmp ecx, 0x100
jne 0x1800909a6
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
jmp 0x1800909c6
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
test ecx, ecx
jne 0x1800909c6
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 0x180090d3f
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x8e0], 8
jl 0x180090b1a
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 0
je 0x180090a57
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 0x180090ac6
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 0x180090a83
jmp 0x180090a94
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 0x180090aef
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 0x180090b0c
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 0x180090c8f
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x64], 8
jge 0x180090ba9
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 0x180090b64
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 0x180090b1a
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 0x180090c06
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 0x180090c2c
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 0x180090c76
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 0x180090c8f
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 0x180090db9
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 0x18009068d
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 0x18009251d
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x180091518
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x180091518
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x180091518
mov eax, dword [rsp + 0x38]
and eax, 2
test eax, eax
je 0x180090f88
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180090e71
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180090f83
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180090ea1
jmp 0x180090f83
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 0x180090f0e
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x180090eea
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 0x180090f7e
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x180090f4e
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x180090f2a
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 0x180090f7e
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 0x180090e66
jmp 0x180091513
mov eax, dword [rsp + 0x38]
and eax, 0x410
test eax, eax
je 0x180091329
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180090fbe
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180091324
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x180090ff9
lea r8, [rsp + 0x90]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1800957e0
mov dword [rsp + 0x1c4], eax
jmp 0x18009100c
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x1c4], eax
mov eax, dword [rsp + 0x1c4]
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180091026
jmp 0x180091324
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 0x180091055
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 0x180091194
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 0x180091161
cmp dword [rsp + 0x60], 0
je 0x180091161
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x12c]
xor eax, ecx
test eax, eax
jl 0x180091128
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 0x180091126
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x180091161
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 0x180091161
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 0x180091047
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 0x18009125e
mov eax, dword [rsp + 0x38]
and eax, 0x100
test eax, eax
je 0x180091209
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 0x180091229
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 0x18009131f
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 0x1800912af
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x60], eax
jge 0x18009128b
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 0x18009131f
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x60], eax
jle 0x1800912ef
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x60], eax
jle 0x1800912cb
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 0x18009131f
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 0x180090fb3
jmp 0x180091513
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009134e
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180091513
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009137e
jmp 0x180091513
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 0x1800913b5
mov dword [rsp + 0x1c8], 1
jmp 0x1800913c0
mov dword [rsp + 0x1c8], 0
cmp dword [rsp + 0x60], 0
jle 0x1800913d4
mov dword [rsp + 0x1cc], 1
jmp 0x1800913df
mov dword [rsp + 0x1cc], 0
mov eax, dword [rsp + 0x1cc]
cmp dword [rsp + 0x1c8], eax
jne 0x180091413
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x180091411
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x180091431
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x180091431
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 0x18009149e
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x18009147a
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 0x18009150e
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x1800914de
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x1800914ba
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 0x18009150e
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 0x180091343
jmp 0x18009251d
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x1800921e7
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x1800921e7
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
jne 0x1800921e7
mov eax, dword [rsp + 0x38]
and eax, 2
test eax, eax
je 0x18009177f
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009157e
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x18009177a
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x1800915ae
jmp 0x18009177a
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 0x18009161b
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x1800915f7
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 0x18009168b
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x18009165b
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x180091637
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 0x18009168b
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.180095100
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 0x180091705
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x28], eax
jge 0x1800916e1
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 0x180091775
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x28], eax
jle 0x180091745
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x28], eax
jle 0x180091721
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 0x180091775
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 0x180091573
jmp 0x1800921e2
mov eax, dword [rsp + 0x38]
and eax, 0x410
test eax, eax
je 0x180091e55
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x1800917b5
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180091e50
mov eax, dword [rsp + 0x38]
and eax, 0x400
test eax, eax
je 0x18009180e
lea r8, [rsp + 0x90]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1800957e0
mov dword [rsp + 0x13c], eax
lea r8, [rsp + 0x94]
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.1800957e0
mov dword [rsp + 0x140], eax
jmp 0x180091837
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x13c], eax
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x140], eax
cmp dword [rsp + 0x13c], 0x80000000
jne 0x180091849
jmp 0x180091e50
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 0x180091878
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 0x180091af6
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 0x1800919bf
cmp dword [rsp + 0x13c], 0
je 0x1800919bf
mov ecx, dword [rsp + 0x13c]
mov eax, dword [rsp + 0x150]
xor eax, ecx
test eax, eax
jl 0x180091986
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 0x180091984
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 8]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], ecx
jmp 0x1800919bf
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 0x1800919bf
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 0x180091acb
cmp dword [rsp + 0x140], 0
je 0x180091acb
mov ecx, dword [rsp + 0x140]
mov eax, dword [rsp + 0x14c]
xor eax, ecx
test eax, eax
jl 0x180091a92
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 0x180091a90
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax + 0xc]
sub ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], ecx
jmp 0x180091acb
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 0x180091acb
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 0x18009186a
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 0x180091bc8
mov eax, dword [rsp + 0x38]
and eax, 0x100
test eax, eax
je 0x180091b9a
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 0x180091bc8
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 0x180091c31
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 0x180091cc9
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 0x180091e4b
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x13c], eax
jge 0x180091d11
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x13c], eax
jge 0x180091ced
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 0x180091d8a
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x13c], eax
jle 0x180091d57
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x13c], eax
jle 0x180091d33
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 0x180091d8a
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 0x180091dd2
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x140], eax
jge 0x180091dae
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 0x180091e4b
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x140], eax
jle 0x180091e18
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x140], eax
jle 0x180091df4
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 0x180091e4b
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 0x1800917aa
jmp 0x1800921e2
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180091e7a
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x1800921e2
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180095100
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180091eaa
jmp 0x1800921e2
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 0x180091ee1
mov dword [rsp + 0x1d0], 1
jmp 0x180091eec
mov dword [rsp + 0x1d0], 0
cmp dword [rsp + 0x60], 0
jle 0x180091f00
mov dword [rsp + 0x1d4], 1
jmp 0x180091f0b
mov dword [rsp + 0x1d4], 0
mov eax, dword [rsp + 0x1d4]
cmp dword [rsp + 0x1d0], eax
jne 0x180091f3f
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x50], eax
cmp ecx, 0x100
jne 0x180091f3d
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
jmp 0x180091f5d
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
test ecx, ecx
jne 0x180091f5d
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.180095100
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 0x180091fd2
mov dword [rsp + 0x1d8], 1
jmp 0x180091fdd
mov dword [rsp + 0x1d8], 0
cmp dword [rsp + 0x60], 0
jle 0x180091ff1
mov dword [rsp + 0x1dc], 1
jmp 0x180091ffc
mov dword [rsp + 0x1dc], 0
mov eax, dword [rsp + 0x1dc]
cmp dword [rsp + 0x1d8], eax
jne 0x180092030
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
cmp ecx, 0x100
jne 0x18009202e
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
jmp 0x18009204e
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
sub eax, 1
mov dword [rsp + 0x54], eax
test ecx, ecx
jne 0x18009204e
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 0x1800920bb
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x180092097
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 0x18009212b
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x1800920fb
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x1800920d7
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 0x18009212b
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 0x18009216d
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x28], eax
jge 0x180092149
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 0x1800921dd
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x28], eax
jle 0x1800921ad
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x28], eax
jle 0x180092189
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 0x1800921dd
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 0x180091e6f
jmp 0x18009251d
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 2
jne 0x18009230c
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x18009230c
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x18009222d
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180092307
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180094a90
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x18009225d
jmp 0x180092307
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 0x1800922d2
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x1800922ae
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x1800922a4
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
jmp 0x1800922d2
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x1800922d2
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x1800922ca
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 0x180092222
jmp 0x18009251d
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jge 0x180092515
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
jne 0x180092515
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x3c], 0
jmp 0x180092352
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x220]
cmp dword [rsp + 0x3c], eax
jae 0x180092513
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.180094a90
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0x80000000
jne 0x180092382
jmp 0x180092513
mov edx, 1
mov rcx, qword [rsp + 0x78]
call fcn.180094a90
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 0x1800924ae
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x20], eax
jge 0x18009243e
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x20], eax
jge 0x180092434
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
jmp 0x180092462
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x20], eax
jle 0x180092462
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jle 0x18009245a
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 0x18009248a
mov eax, dword [rsp + 0x34]
neg eax
cmp dword [rsp + 0x28], eax
jge 0x180092480
mov dword [rsp + 0x70], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x28], eax
jmp 0x1800924ae
mov eax, dword [rsp + 0x58]
cmp dword [rsp + 0x28], eax
jle 0x1800924ae
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x28], eax
jle 0x1800924a6
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 0x180092347
jmp 0x18009251d
mov dword [rsp + 0x3c], 0
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 0xa]
test eax, eax
je 0x18009253b
mov eax, dword [rsp + 0x38]
and eax, 0x80
test eax, eax
je 0x1800925e9
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x180092553
mov dword [rsp + 0x1e0], 1
jmp 0x18009255e
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 0x1800925a9
mov rax, qword [rsp + 0x88]
add rax, 0xc
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x168]
cmp qword [rsp + 0x88], rax
jae 0x1800925e9
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x34]
cmp dword [rcx], eax
jg 0x1800925dd
mov ecx, dword [rsp + 0x34]
neg ecx
mov rax, qword [rsp + 0x88]
cmp dword [rax], ecx
jge 0x1800925e7
mov dword [rsp + 0x70], 1
jmp 0x1800925e9
jmp 0x180092595
cmp dword [rsp + 0x70], 0
je 0x180092636
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x180092608
mov dword [rsp + 0x1e4], 1
jmp 0x180092613
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 0x18009297d
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 0x18009297d
mov rax, qword [rsp + 0x78]
movsx eax, word [rax + 8]
cmp eax, 3
jne 0x1800926e5
mov rax, qword [rsp + 0x210]
cmp dword [rax + 0xc4], 0
je 0x1800926aa
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x1e8], eax
jmp 0x1800926b9
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 0x1800926e5
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 0x18009297d
mov ecx, 0x400
call fcn.1800635c4
mov qword [rsp + 0x178], rax
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.180092ba0
test eax, eax
je 0x1800927c8
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.180092ba0
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.18006367c
mov rdx, rax
mov rax, qword [rsp + 0x210]
mov qword [rax + 0x68], rdx
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.180092ba0
mov ebx, eax
mov rcx, qword [rsp + 0x78]
add rcx, 0x28
call fcn.180092bf0
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.180092ba0
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 0x180092892
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 0x180092814
jmp 0x180092892
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.18006367c
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 0x1800927c8
mov rcx, qword [rsp + 0x178]
call fcn.180063060
mov rdx, qword [rsp + 0x210]
cmp dword [rdx + 0x70], 0x10
jbe 0x18009297d
mov dword [rsp + 0x180], 0
jmp 0x1800928cf
mov eax, dword [rsp + 0x180]
add eax, 1
mov dword [rsp + 0x180], eax
cmp dword [rsp + 0x180], 0x10
jge 0x1800928fa
movsxd rcx, dword [rsp + 0x180]
mov rax, qword [rsp + 0x210]
mov rax, qword [rax + 0x68]
movzx eax, byte [rax + rcx]
cmp eax, 0xff
jne 0x1800928fa
jmp 0x1800928be
cmp dword [rsp + 0x180], 0x10
jne 0x18009294d
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 0x18009297d
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x68]
call fcn.180063060
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, 0x10
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