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

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xb8
lea rdi, [rsp + 0x34]
xor eax, eax
mov ecx, 3
rep stosb byte [rdi], al
lea rdi, [rsp + 0x30]
xor eax, eax
mov ecx, 3
rep stosb byte [rdi], al
lea rdi, [rsp + 0x20]
xor eax, eax
mov ecx, 3
rep stosb byte [rdi], al
mov byte [rsp + 0x34], 1
mov byte [rsp + 0x30], 1
cmp dword [rsp + 0xf0], 0
jbe 0x18012144a
mov rax, qword [rsp + 0xf8]
movzx ecx, byte [rax]
add ecx, 1
mov eax, 0xff
sub eax, ecx
movsxd rcx, eax
lea rax, [0x180050240]
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x35], al
mov dword [rsp + 0x24], 1
jmp 0x18012113a
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0xf0], 2
jae 0x180121154
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x80], eax
jmp 0x18012115f
mov dword [rsp + 0x80], 2
mov eax, dword [rsp + 0x80]
cmp dword [rsp + 0x24], eax
jae 0x1801211ff
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x44], eax
jmp 0x180121188
mov eax, dword [rsp + 0x44]
sub eax, 1
mov dword [rsp + 0x44], eax
cmp dword [rsp + 0x44], 0
jbe 0x1801211fa
mov eax, dword [rsp + 0x44]
sub eax, 1
mov eax, eax
movzx eax, byte [rsp + rax + 0x34]
test eax, eax
je 0x1801211f8
mov edi, dword [rsp + 0x44]
mov eax, dword [rsp + 0x44]
sub eax, 1
mov eax, eax
movzx ecx, byte [rsp + rax + 0x34]
lea rax, [0x180050440]
movzx edx, byte [rax + rcx]
add edx, 0xff
mov ecx, dword [rsp + 0x24]
mov rax, qword [rsp + 0xf8]
movzx ecx, byte [rax + rcx]
add ecx, 1
mov eax, edx
sub eax, ecx
movsxd rcx, eax
lea rax, [0x180050240]
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + rdi + 0x34]
xor ecx, eax
mov eax, dword [rsp + 0x44]
mov byte [rsp + rax + 0x34], cl
jmp 0x18012117d
jmp 0x18012112f
xor eax, eax
test eax, eax
je 0x18012144a
xor eax, eax
test eax, eax
je 0x180121258
mov dword [rsp + 0x24], 0
jmp 0x180121224
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0xf0], 1
jae 0x18012123e
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x84], eax
jmp 0x180121249
mov dword [rsp + 0x84], 1
mov eax, dword [rsp + 0x84]
cmp dword [rsp + 0x24], eax
ja 0x180121258
jmp 0x180121219
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x24], 0xd2
jmp 0x180121275
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0xff
jae 0x180121421
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x1801212cd
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0xe0]
lea ecx, [rcx + rax - 0xd2]
imul ecx, ecx, 0x2b
mov eax, dword [rsp + 0x24]
lea eax, [rcx + rax - 0xd2]
movzx eax, ax
cdq
mov ecx, 0x45e
idiv ecx
mov dword [rsp + 0x88], edx
jmp 0x1801212e7
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
imul eax, eax, 0x1a
add eax, dword [rsp + 0xe0]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x100]
cmp dword [rsp + 0x88], eax
jb 0x180121368
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x180121339
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0xe0]
lea ecx, [rcx + rax - 0xd2]
imul ecx, ecx, 0x2b
mov eax, dword [rsp + 0x24]
lea eax, [rcx + rax - 0xd2]
movzx eax, ax
cdq
mov ecx, 0x45e
idiv ecx
mov dword [rsp + 0x8c], edx
jmp 0x180121353
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
imul eax, eax, 0x1a
add eax, dword [rsp + 0xe0]
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x8c], eax
ja 0x180121368
jmp 0x18012126a
cmp dword [rsp + 0xf0], 2
jae 0x180121382
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x90], eax
jmp 0x18012138d
mov dword [rsp + 0x90], 2
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x44], eax
jmp 0x1801213a5
mov eax, dword [rsp + 0x44]
sub eax, 1
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x44]
movzx eax, byte [rsp + rax + 0x34]
test eax, eax
je 0x1801213f8
mov eax, dword [rsp + 0x44]
movzx ecx, byte [rsp + rax + 0x34]
lea rax, [0x180050440]
movzx edi, byte [rax + rcx]
mov ecx, dword [rsp + 0x24]
add ecx, 1
mov eax, dword [rsp + 0x44]
imul eax, ecx
xor edx, edx
mov ecx, 0xff
div ecx
mov eax, edi
add eax, edx
mov ecx, eax
lea rax, [0x180050240]
movzx ecx, byte [rax + rcx]
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x44], 0
jne 0x180121401
jmp 0x180121403
jmp 0x18012139a
cmp dword [rsp + 0x48], 0
je 0x18012140f
jmp 0x18012126a
mov eax, dword [rsp + 0x38]
add eax, 1
mov dword [rsp + 0x38], eax
xor eax, eax
jmp 0x18012126a
cmp dword [rsp + 0xf0], 2
jae 0x18012143b
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x94], eax
jmp 0x180121446
mov dword [rsp + 0x94], 2
mov eax, dword [rsp + 0x38]
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x3c], 1
jmp 0x18012147d
mov eax, dword [rsp + 0x44]
add eax, 1
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x44], 2
jae 0x180121738
mov eax, dword [rsp + 0x44]
imul eax, eax, 0x1a
shl eax, 1
mov ecx, eax
mov rax, qword [rsp + 0xe8]
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x24], 1
jmp 0x1801214b8
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x24], eax
ja 0x180121554
mov eax, dword [rsp + 0x24]
movzx eax, byte [rsp + rax + 0x34]
test eax, eax
je 0x1801214f4
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x44]
sub eax, ecx
imul eax, eax, 0x1a
shl eax, 1
mov ecx, eax
mov rax, qword [rsp + 0xe8]
movzx eax, byte [rax + rcx]
test eax, eax
jne 0x1801214f6
jmp 0x1801214ad
mov eax, dword [rsp + 0x24]
movzx ecx, byte [rsp + rax + 0x34]
lea rax, [0x180050440]
movzx edx, byte [rax + rcx]
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x44]
sub eax, ecx
imul eax, eax, 0x1a
shl eax, 1
mov ecx, eax
mov rax, qword [rsp + 0xe8]
movzx ecx, byte [rax + rcx]
lea rax, [0x180050440]
movzx ecx, byte [rax + rcx]
mov eax, edx
add eax, ecx
movsxd rcx, eax
lea rax, [0x180050240]
movzx ecx, byte [rax + rcx]
movzx eax, byte [rsp + 0x28]
xor eax, ecx
mov byte [rsp + 0x28], al
jmp 0x1801214ad
movzx eax, byte [rsp + 0x28]
test eax, eax
je 0x180121733
movzx ecx, byte [rsp + 0x28]
lea rax, [0x180050440]
movzx eax, byte [rax + rcx]
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x40]
mov edx, dword [rsp + 0x40]
add edx, eax
mov ecx, dword [rsp + 0xf0]
mov eax, dword [rsp + 0x44]
add eax, ecx
cmp edx, eax
ja 0x1801216b6
mov eax, 0xff
sub eax, dword [rsp + 0x4c]
mov dword [rsp + 0x54], eax
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x3c]
lea rsi, [rsp + rax + 0x34]
lea rdi, [rsp + 0x50]
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0x24], 0
jmp 0x1801215ca
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x3c]
add eax, ecx
cmp dword [rsp + 0x24], eax
jae 0x18012167f
mov eax, dword [rsp + 0x24]
movzx eax, byte [rsp + rax + 0x34]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x24], eax
jae 0x18012163e
mov eax, dword [rsp + 0x24]
movzx eax, byte [rsp + rax + 0x20]
mov dword [rsp + 0x5c], eax
cmp dword [rsp + 0x5c], 0
je 0x18012163e
mov edx, dword [rsp + 0x24]
movsxd rcx, dword [rsp + 0x5c]
lea rax, [0x180050440]
movzx eax, byte [rax + rcx]
add eax, dword [rsp + 0x4c]
movsxd rcx, eax
lea rax, [0x180050240]
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + rdx + 0x50]
xor ecx, eax
mov eax, dword [rsp + 0x24]
mov byte [rsp + rax + 0x50], cl
cmp dword [rsp + 0x58], 0
je 0x180121671
movsxd rcx, dword [rsp + 0x58]
lea rax, [0x180050440]
movzx eax, byte [rax + rcx]
add eax, dword [rsp + 0x54]
movsxd rdx, eax
lea rax, [0x180050240]
mov ecx, dword [rsp + 0x24]
movzx eax, byte [rax + rdx]
mov byte [rsp + rcx + 0x20], al
jmp 0x18012167a
mov eax, dword [rsp + 0x24]
mov byte [rsp + rax + 0x20], 0
jmp 0x1801215bf
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x3c]
lea rdi, [rsp + rax + 0x34]
lea rsi, [rsp + 0x50]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, dword [rsp + 0xf0]
lea eax, [rcx + rax + 1]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x3c], 0
jmp 0x180121733
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x1801216cb
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x3c]
add eax, ecx
cmp dword [rsp + 0x24], eax
jae 0x180121733
mov ecx, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x24]
sub eax, ecx
mov eax, eax
movzx eax, byte [rsp + rax + 0x20]
test eax, eax
je 0x180121731
mov edx, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x24]
sub eax, ecx
mov eax, eax
movzx ecx, byte [rsp + rax + 0x20]
lea rax, [0x180050440]
movzx eax, byte [rax + rcx]
add eax, dword [rsp + 0x4c]
movsxd rcx, eax
lea rax, [0x180050240]
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + rdx + 0x34]
xor ecx, eax
mov eax, dword [rsp + 0x24]
mov byte [rsp + rax + 0x34], cl
jmp 0x1801216c0
jmp 0x180121467
xor edx, edx
mov eax, dword [rsp + 0xf0]
mov ecx, 2
div ecx
add eax, 1
cmp dword [rsp + 0x40], eax
jbe 0x18012175b
mov eax, 1
jmp 0x180122296
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x24], 0xd2
jmp 0x180121778
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0xff
jae 0x18012190b
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x1801217c8
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0xe0]
lea ecx, [rcx + rax - 0xd2]
imul ecx, ecx, 0x2b
mov eax, dword [rsp + 0x24]
lea eax, [rcx + rax - 0xd2]
movzx eax, ax
cdq
mov ecx, 0x45e
idiv ecx
mov dword [rsp + 0x98], edx
jmp 0x1801217e2
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
imul eax, eax, 0x1a
add eax, dword [rsp + 0xe0]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x100]
cmp dword [rsp + 0x98], eax
jb 0x180121863
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x180121834
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0xe0]
lea ecx, [rcx + rax - 0xd2]
imul ecx, ecx, 0x2b
mov eax, dword [rsp + 0x24]
lea eax, [rcx + rax - 0xd2]
movzx eax, ax
cdq
mov ecx, 0x45e
idiv ecx
mov dword [rsp + 0x9c], edx
jmp 0x18012184e
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
imul eax, eax, 0x1a
add eax, dword [rsp + 0xe0]
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x9c], eax
ja 0x180121863
jmp 0x18012176d
mov dword [rsp + 0x60], 0
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x44], eax
jmp 0x180121880
mov eax, dword [rsp + 0x44]
sub eax, 1
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x44]
movzx eax, byte [rsp + rax + 0x34]
test eax, eax
je 0x1801218d3
mov eax, dword [rsp + 0x44]
movzx ecx, byte [rsp + rax + 0x34]
lea rax, [0x180050440]
movzx edi, byte [rax + rcx]
mov ecx, dword [rsp + 0x24]
add ecx, 1
mov eax, dword [rsp + 0x44]
imul eax, ecx
xor edx, edx
mov ecx, 0xff
div ecx
mov eax, edi
add eax, edx
mov ecx, eax
lea rax, [0x180050240]
movzx ecx, byte [rax + rcx]
mov eax, dword [rsp + 0x60]
xor eax, ecx
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x44], 0
jne 0x1801218dc
jmp 0x1801218de
jmp 0x180121875
cmp dword [rsp + 0x60], 0
jne 0x180121906
cmp dword [rsp + 0x38], 2
jae 0x1801218f9
mov ecx, dword [rsp + 0x38]
movzx eax, byte [rsp + 0x24]
mov byte [rsp + rcx + 0x2c], al
mov eax, dword [rsp + 0x38]
add eax, 1
mov dword [rsp + 0x38], eax
xor eax, eax
jmp 0x18012176d
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x38], eax
je 0x18012191f
mov eax, 1
jmp 0x180122296
mov dword [rsp + 0x44], 0
jmp 0x180121934
mov eax, dword [rsp + 0x44]
add eax, 1
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x44], eax
jae 0x180121a0b
mov eax, dword [rsp + 0x44]
mov byte [rsp + rax + 0x30], 0
mov dword [rsp + 0x24], 0
jmp 0x180121960
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x24], eax
ja 0x180121a06
mov eax, dword [rsp + 0x24]
movzx eax, byte [rsp + rax + 0x34]
test eax, eax
je 0x180121a01
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x44]
sub eax, ecx
imul eax, eax, 0x1a
shl eax, 1
mov ecx, eax
mov rax, qword [rsp + 0xe8]
movzx eax, byte [rax + rcx]
test eax, eax
je 0x180121a01
mov edi, dword [rsp + 0x44]
mov eax, dword [rsp + 0x24]
movzx ecx, byte [rsp + rax + 0x34]
lea rax, [0x180050440]
movzx edx, byte [rax + rcx]
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x44]
sub eax, ecx
imul eax, eax, 0x1a
shl eax, 1
mov ecx, eax
mov rax, qword [rsp + 0xe8]
movzx ecx, byte [rax + rcx]
lea rax, [0x180050440]
movzx ecx, byte [rax + rcx]
mov eax, edx
add eax, ecx
movsxd rcx, eax
lea rax, [0x180050240]
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + rdi + 0x30]
xor ecx, eax
mov eax, dword [rsp + 0x44]
mov byte [rsp + rax + 0x30], cl
jmp 0x180121955
jmp 0x180121929
mov dword [rsp + 0x44], 0
jmp 0x180121a20
mov eax, dword [rsp + 0x44]
add eax, 1
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x38]
cmp dword [rsp + 0x44], eax
jae 0x180122294
mov eax, dword [rsp + 0x44]
movzx eax, byte [rsp + rax + 0x2c]
mov dword [rsp + 0x24], eax
mov dword [rsp + 0x64], 0
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x3c], eax
jmp 0x180121a5b
mov eax, dword [rsp + 0x3c]
sub eax, 1
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x3c]
movzx eax, byte [rsp + rax + 0x30]
test eax, eax
je 0x180121aa1
mov eax, dword [rsp + 0x3c]
movzx ecx, byte [rsp + rax + 0x30]
lea rax, [0x180050440]
movzx eax, byte [rax + rcx]
mov ecx, dword [rsp + 0x24]
add ecx, 1
imul ecx, dword [rsp + 0x3c]
add eax, ecx
mov ecx, eax
lea rax, [0x180050240]
movzx ecx, byte [rax + rcx]
mov eax, dword [rsp + 0x64]
xor eax, ecx
mov dword [rsp + 0x64], eax
cmp dword [rsp + 0x3c], 0
jne 0x180121aaa
jmp 0x180121aac
jmp 0x180121a50
cmp dword [rsp + 0x40], 1
jbe 0x180121f1d
mov dword [rsp + 0x68], 0
mov eax, dword [rsp + 0x40]
sub eax, 1
and eax, 0xfffffffe
mov dword [rsp + 0x3c], eax
jmp 0x180121ada
mov eax, dword [rsp + 0x3c]
sub eax, 2
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x3c]
add eax, 1
mov eax, eax
movzx eax, byte [rsp + rax + 0x34]
test eax, eax
je 0x180121b31
mov eax, dword [rsp + 0x3c]
add eax, 1
mov eax, eax
movzx ecx, byte [rsp + rax + 0x34]
lea rax, [0x180050440]
movzx edx, byte [rax + rcx]
mov ecx, dword [rsp + 0x3c]
add ecx, 1
mov eax, dword [rsp + 0x24]
add eax, 1
imul ecx, eax
mov eax, edx
add eax, ecx
mov ecx, eax
lea rax, [0x180050240]
movzx ecx, byte [rax + rcx]
mov eax, dword [rsp + 0x68]
xor eax, ecx
mov dword [rsp + 0x68], eax
cmp dword [rsp + 0x3c], 0
jne 0x180121b3a
jmp 0x180121b3c
jmp 0x180121acf
cmp dword [rsp + 0x68], 0
jne 0x180121b5e
mov r8d, 0x5b4
lea rdx, [0x18005ed48]
lea rcx, [0x18005ed30]
call fcn.180132028
xor edx, edx
movsxd rcx, dword [rsp + 0x68]
lea rax, [0x180050440]
movzx eax, byte [rax + rcx]
mov edx, 0xff
sub edx, eax
movsxd rcx, dword [rsp + 0x64]
lea rax, [0x180050440]
movzx ecx, byte [rax + rcx]
mov eax, edx
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movsxd rcx, edx
lea rax, [0x180050240]
movzx eax, byte [rax + rcx]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x180121be9
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0xe0]
lea ecx, [rcx + rax - 0xd2]
imul ecx, ecx, 0x2b
mov eax, dword [rsp + 0x24]
lea eax, [rcx + rax - 0xd2]
movzx eax, ax
cdq
mov ecx, 0x45e
idiv ecx
mov eax, edx
shl eax, 1
mov dword [rsp + 0xa0], eax
jmp 0x180121c05
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
imul eax, eax, 0x1a
add eax, dword [rsp + 0xe0]
shl eax, 1
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x70], eax
cmp dword [rsp + 0x70], 0x924
jb 0x180121c35
mov r8d, 0x5b4
lea rdx, [0x18005ed48]
lea rcx, [0x18005ed18]
call fcn.180132028
xor edx, edx
xor eax, eax
test eax, eax
je 0x180121c7d
mov rax, qword [rsp + 0x118]
cmp qword [rax + 0x118], 0
je 0x180121c7d
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x70]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
mov rax, qword [rax + 0x118]
movzx eax, byte [rax + rcx]
test eax, eax
jne 0x180121c7d
mov eax, 1
jmp 0x180122296
xor eax, eax
test eax, eax
je 0x180121dc8
cmp dword [rsp + 0x70], 0x8bc
jae 0x180121dc8
xor edx, edx
mov eax, dword [rsp + 0x70]
mov ecx, 2
div ecx
movzx eax, ax
cdq
mov ecx, 0x2b
idiv ecx
mov dword [rsp + 0x74], edx
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x2b
mov rax, qword [rsp + 0x118]
lea rcx, [rax + rcx + 0x1d44]
mov eax, dword [rsp + 0x74]
movzx eax, byte [rcx + rax]
test eax, eax
jle 0x180121cfb
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x70]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x1414]
test eax, eax
jg 0x180121d49
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x2b
mov rax, qword [rsp + 0x118]
lea rcx, [rax + rcx + 0x1d44]
mov eax, dword [rsp + 0x74]
movzx eax, byte [rcx + rax]
test eax, eax
jne 0x180121dc8
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x70]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x1414]
test eax, eax
jle 0x180121dc8
mov eax, dword [rsp + 0x74]
add eax, eax
mov ecx, eax
mov rax, qword [rsp + 0x118]
lea r8, [rax + rcx + 0x68]
mov eax, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
sub rcx, rax
mov edx, dword [rsp + 0x74]
call fcn.18011d460
mov edx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x74]
lea eax, [rdx + rax*2]
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x68]
test eax, eax
jne 0x180121dc8
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x74]
lea eax, [rcx + rax*2 + 0x56]
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x68]
test eax, eax
jne 0x180121dc8
xor eax, eax
mov eax, 1
jmp 0x180122296
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x70]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x1414]
cmp eax, 0x10
jge 0x180121f0e
mov edx, dword [rsp + 0x70]
movzx ecx, byte [rsp + 0x6c]
mov rax, qword [rsp + 0xd0]
movzx edx, byte [rax + rdx]
xor edx, ecx
mov ecx, dword [rsp + 0x70]
mov rax, qword [rsp + 0xd0]
mov byte [rax + rcx], dl
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x70]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx edx, byte [rax + rcx + 0x1414]
add dl, 1
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x70]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
mov byte [rax + rcx + 0x1414], dl
mov edx, dword [rsp + 0xe0]
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x1a
mov rax, qword [rsp + 0x118]
lea rax, [rax + rcx + 0x1d9a]
movzx edi, byte [rax + rdx]
add dil, 1
mov edx, dword [rsp + 0xe0]
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x1a
mov rax, qword [rsp + 0x118]
lea rax, [rax + rcx + 0x1d9a]
mov byte [rax + rdx], dil
xor eax, eax
mov r8, qword [rsp + 0x118]
mov edx, dword [rsp + 0xd8]
mov ecx, dword [rsp + 0x70]
call fcn.18011a070
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x180121edc
mov rax, qword [rsp + 0x110]
mov dword [rax], 1
xor edx, edx
mov eax, dword [rsp + 0x70]
mov ecx, 2
div ecx
mov rcx, qword [rsp + 0x118]
add rcx, 0x68
mov r9, qword [rsp + 0x118]
mov r8d, eax
mov edx, dword [rsp + 0xd8]
call fcn.1801222b0
jmp 0x180121f18
mov eax, 1
jmp 0x180122296
jmp 0x18012228f
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x180121f63
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0xe0]
lea ecx, [rcx + rax - 0xd2]
imul ecx, ecx, 0x2b
mov eax, dword [rsp + 0x24]
lea eax, [rcx + rax - 0xd2]
movzx eax, ax
cdq
mov ecx, 0x45e
idiv ecx
mov eax, edx
shl eax, 1
mov dword [rsp + 0xa4], eax
jmp 0x180121f7f
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
imul eax, eax, 0x1a
add eax, dword [rsp + 0xe0]
shl eax, 1
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 0x924
jb 0x180121faf
mov r8d, 0x5b4
lea rdx, [0x18005ed48]
lea rcx, [0x18005ed18]
call fcn.180132028
xor edx, edx
xor eax, eax
test eax, eax
je 0x180121ff7
mov rax, qword [rsp + 0x118]
cmp qword [rax + 0x118], 0
je 0x180121ff7
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x78]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
mov rax, qword [rax + 0x118]
movzx eax, byte [rax + rcx]
test eax, eax
jne 0x180121ff7
mov eax, 1
jmp 0x180122296
xor eax, eax
test eax, eax
je 0x180122142
cmp dword [rsp + 0x78], 0x8bc
jae 0x180122142
xor edx, edx
mov eax, dword [rsp + 0x78]
mov ecx, 2
div ecx
movzx eax, ax
cdq
mov ecx, 0x2b
idiv ecx
mov dword [rsp + 0x7c], edx
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x2b
mov rax, qword [rsp + 0x118]
lea rcx, [rax + rcx + 0x1d44]
mov eax, dword [rsp + 0x7c]
movzx eax, byte [rcx + rax]
test eax, eax
jle 0x180122075
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x78]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x1414]
test eax, eax
jg 0x1801220c3
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x2b
mov rax, qword [rsp + 0x118]
lea rcx, [rax + rcx + 0x1d44]
mov eax, dword [rsp + 0x7c]
movzx eax, byte [rcx + rax]
test eax, eax
jne 0x180122142
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x78]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x1414]
test eax, eax
jle 0x180122142
mov eax, dword [rsp + 0x7c]
add eax, eax
mov ecx, eax
mov rax, qword [rsp + 0x118]
lea r8, [rax + rcx + 0x68]
mov eax, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
sub rcx, rax
mov edx, dword [rsp + 0x7c]
call fcn.18011d460
mov edx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x7c]
lea eax, [rdx + rax*2]
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x68]
test eax, eax
jne 0x180122142
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x7c]
lea eax, [rcx + rax*2 + 0x56]
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x68]
test eax, eax
jne 0x180122142
xor eax, eax
mov eax, 1
jmp 0x180122296
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x78]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx eax, byte [rax + rcx + 0x1414]
cmp eax, 0x10
jge 0x180122288
mov edx, dword [rsp + 0x78]
movzx ecx, byte [rsp + 0x64]
mov rax, qword [rsp + 0xd0]
movzx edx, byte [rax + rdx]
xor edx, ecx
mov ecx, dword [rsp + 0x78]
mov rax, qword [rsp + 0xd0]
mov byte [rax + rcx], dl
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x78]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
movzx edx, byte [rax + rcx + 0x1414]
add dl, 1
mov ecx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x78]
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x118]
mov byte [rax + rcx + 0x1414], dl
mov edx, dword [rsp + 0xe0]
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x1a
mov rax, qword [rsp + 0x118]
lea rax, [rax + rcx + 0x1d9a]
movzx edi, byte [rax + rdx]
add dil, 1
mov edx, dword [rsp + 0xe0]
mov ecx, dword [rsp + 0xd8]
imul rcx, rcx, 0x1a
mov rax, qword [rsp + 0x118]
lea rax, [rax + rcx + 0x1d9a]
mov byte [rax + rdx], dil
xor eax, eax
mov r8, qword [rsp + 0x118]
mov edx, dword [rsp + 0xd8]
mov ecx, dword [rsp + 0x78]
call fcn.18011a070
mov eax, dword [rsp + 0x24]
sub eax, 0xd2
cmp eax, 0x2b
jae 0x180122256
mov rax, qword [rsp + 0x110]
mov dword [rax], 1
xor edx, edx
mov eax, dword [rsp + 0x78]
mov ecx, 2
div ecx
mov rcx, qword [rsp + 0x118]
add rcx, 0x68
mov r9, qword [rsp + 0x118]
mov r8d, eax
mov edx, dword [rsp + 0xd8]
call fcn.1801222b0
jmp 0x18012228f
mov eax, 1
jmp 0x180122296
jmp 0x180121a15
xor eax, eax
add rsp, 0xb8
pop rdi
pop rsi
ret