Function at 0x180038b00
Capabilities:
Inspect section memory permissions

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
mov eax, 0x7ae8
call fcn.180016ca0
sub rsp, rax
mov dword [rsp + 0x128], 0
mov rax, qword [rsp + 0x7b00]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0xac], 0
mov dword [rsp + 0x124], 0
mov dword [rsp + 0xf4], 0
mov dword [rsp + 0xfc], 0
mov byte [rsp + 0x58], 0
mov byte [rsp + 0x68], 0
mov byte [rsp + 0x59], 0
mov byte [rsp + 0x69], 0
mov qword [rsp + 0xd8], 0
lea rax, [rsp + 0x230]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x2e0]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe0]
mov qword [rax], 0
mov rax, qword [rsp + 0xe0]
mov dword [rax + 8], 0x1e00
mov rax, qword [rsp + 0xe0]
mov dword [rax + 0xc], 0x1dfc
cmp qword [rsp + 0x7b10], 0xffffffffffffffff
jne 0x180038bfc
mov rcx, qword [rsp + 0x7b08]
call fcn.1800b4910
mov qword [rsp + 0x7b10], rax
mov dword [rsp + 0x128], 1
mov eax, dword [rsp + 0x7b20]
and eax, 0x1fffbf00
test eax, eax
je 0x180038c16
mov eax, 0xffffffde
jmp 0x18003a967
cmp qword [rsp + 0x70], 0
je 0x180038c3f
cmp qword [rsp + 0x7b08], 0
je 0x180038c3f
cmp qword [rsp + 0x7b38], 0
je 0x180038c3f
cmp qword [rsp + 0x7b28], 0
jne 0x180038c49
mov eax, 0xffffffcd
jmp 0x18003a967
cmp qword [rsp + 0x7b40], 0x14
jae 0x180038c5e
mov eax, 0xffffffd5
jmp 0x18003a967
mov rax, qword [rsp + 0x7b10]
cmp qword [rsp + 0x7b18], rax
jbe 0x180038c7a
mov eax, 0xffffffdf
jmp 0x18003a967
mov eax, dword [rsp + 0x7b20]
and eax, 0x30
test eax, eax
je 0x180038cac
mov rax, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x7b20]
mov eax, dword [rax + 0x58]
or eax, ecx
and eax, 0x20000000
test eax, eax
je 0x180038cac
mov eax, 0xffffffde
jmp 0x18003a967
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x4000000
test eax, eax
je 0x180038cc7
mov eax, 0xffffffbe
jmp 0x18003a967
mov rax, qword [rsp + 0x70]
cmp dword [rax + 0x50], 0x50435245
je 0x180038cdf
mov eax, 0xffffffe1
jmp 0x18003a967
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 7
cmp eax, 1
je 0x180038cf9
mov eax, 0xffffffe0
jmp 0x18003a967
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x30000
xor edx, edx
mov ecx, 0x4000
div ecx
mov ecx, dword [rsp + 0x7b20]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0x7b20], eax
mov eax, dword [rsp + 0x7b20]
and eax, 0x40
test eax, eax
je 0x180038daa
mov eax, 4
imul rax, rax, 0
mov rcx, qword [rsp + 0x7b38]
mov eax, dword [rcx + rax]
and eax, 0xfffffffe
test eax, eax
jne 0x180038da0
mov eax, 4
imul rax, rax, 1
mov rcx, qword [rsp + 0x7b38]
cmp dword [rcx + rax], 1
jl 0x180038da0
mov eax, 4
imul rax, rax, 1
mov qword [rsp + 0x1b8], rax
mov rcx, qword [rsp + 0x7b40]
sub rcx, 2
xor edx, edx
mov rax, rcx
mov ecx, 3
div rcx
mov rcx, qword [rsp + 0x7b38]
mov rdx, qword [rsp + 0x1b8]
cmp dword [rcx + rdx], eax
jle 0x180038daa
mov eax, 0xffffffda
jmp 0x18003a967
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x80000
test eax, eax
je 0x180038dc8
mov dword [rsp + 0x13c], 1
jmp 0x180038dd3
mov dword [rsp + 0x13c], 0
mov eax, dword [rsp + 0x13c]
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0x7b18]
mov rcx, qword [rsp + 0x7b08]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x7b10]
mov rcx, qword [rsp + 0x7b08]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x60]
dec rax
mov qword [rsp + 0x1a0], rax
mov eax, dword [rsp + 0x7b20]
and eax, 0x80000040
test eax, eax
jne 0x180038e58
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x80000000
test eax, eax
jne 0x180038e58
mov dword [rsp + 0x140], 0
jmp 0x180038e63
mov dword [rsp + 0x140], 1
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x200
test eax, eax
je 0x180038e8f
mov dword [rsp + 0x144], 1
jmp 0x180038e9a
mov dword [rsp + 0x144], 0
mov eax, dword [rsp + 0x144]
mov dword [rsp + 0x100], eax
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x100
test eax, eax
je 0x180038ec6
mov dword [rsp + 0x148], 1
jmp 0x180038ed1
mov dword [rsp + 0x148], 0
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0x12c], eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x50]
lea rcx, [rsp + 0x1c0]
mov qword [rax + 0x88], rcx
mov dword [rsp + 0x1c0], 2
mov rax, qword [rsp + 0x7b08]
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x7b08]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x1e8], rax
mov dword [rsp + 0x228], 0
mov dword [rsp + 0x1c8], 1
mov dword [rsp + 0x1cc], 0
mov qword [rsp + 0x1d8], 0
cmp qword [rsp + 0x7b30], 0
jne 0x180038fc5
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x98], 0
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x70]
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x50]
mov ecx, dword [0x1800c8504]
mov dword [rax + 0x60], ecx
mov rax, qword [rsp + 0x50]
mov ecx, dword [0x1800c8508]
mov dword [rax + 0x64], ecx
mov eax, dword [0x1800c8500]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x50], rax
jmp 0x18003908f
mov rax, qword [rsp + 0x7b30]
cmp qword [rax + 0x48], 0xffffffffffffffff
je 0x180039011
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x800000
test eax, eax
jne 0x180038fef
mov eax, 0xffffffc8
jmp 0x18003a967
mov rax, qword [rsp + 0x7b30]
mov rax, qword [rax + 0x48]
mov rcx, qword [rsp + 0x7b08]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b30]
mov rcx, qword [rcx + 0x28]
mov qword [rax + 0x98], rcx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b30]
mov rcx, qword [rcx + 0x30]
mov qword [rax + 0x90], rcx
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x7b30]
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b30]
mov ecx, dword [rcx + 0x54]
mov dword [rax + 0x60], ecx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b30]
mov ecx, dword [rcx + 0x58]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x7b30]
mov eax, dword [rax + 0x50]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x50], rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x68]
cmp dword [rax + 0x60], ecx
jbe 0x1800390b1
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x68]
mov dword [rax + 0x60], ecx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x6c]
cmp dword [rax + 0x64], ecx
jbe 0x1800390d3
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x6c]
mov dword [rax + 0x64], ecx
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x64]
mov rcx, qword [rsp + 0x50]
cmp qword [rcx + 0x50], rax
jbe 0x1800390f7
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x64]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x50], rax
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 0x86]
mov rcx, qword [rsp + 0x70]
movzx ecx, word [rcx + 0x84]
imul eax, ecx
cdqe
mov rcx, qword [rsp + 0x70]
lea rax, [rcx + rax + 0x88]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov rcx, qword [rcx + 0x18]
mov qword [rax + 0x40], rcx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b08]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x80]
mov qword [rax + 0x28], rcx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b18]
mov qword [rax + 0x48], rcx
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 0x7c]
test eax, eax
jg 0x18003919a
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x2000
test eax, eax
jne 0x18003919a
mov dword [rsp + 0x14c], 0
jmp 0x1800391a5
mov dword [rsp + 0x14c], 1
mov rax, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x14c]
mov dword [rax + 0x7c], ecx
mov rax, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x7b20]
mov dword [rax + 0x6c], ecx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x58]
mov dword [rax + 0x70], ecx
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x68], 0
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x58], 0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
movzx ecx, word [rcx + 0x78]
mov word [rax + 0x84], cx
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x74], 0
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 0x7a]
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xb8]
dec eax
mov dword [rsp + 0xb8], eax
cmp dword [rsp + 0xb8], 5
ja case.default.0x180039254
movsxd rax, dword [rsp + 0xb8]
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0x3a974]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x78], 1
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
mov byte [rcx + rax + 0x80], 0xd
jmp 0x180039328
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x78], 1
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
mov byte [rcx + rax + 0x80], 0xa
jmp 0x180039328
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x78], 1
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
mov byte [rcx + rax + 0x80], 0
jmp 0x180039328
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x78], 2
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x50]
mov byte [rcx + rax + 0x80], 0xd
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x50]
mov byte [rcx + rax + 0x80], 0xa
jmp 0x180039328
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x74], 1
jmp 0x180039328
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x74], 2
jmp 0x180039328
mov eax, 0xffffffd4
jmp 0x18003a967
cmp dword [rsp + 0x88], 0
je 0x1800394be
mov eax, dword [rsp + 0x7b20]
and eax, 0x40000000
test eax, eax
jne 0x1800394be
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xb0], rax
cmp qword [rsp + 0x7b18], 0
jbe 0x180039424
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x180039393
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
and eax, 0xc0
cmp eax, 0x80
jne 0x180039393
mov eax, 0xffffffdc
jmp 0x18003a967
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 0x7c]
mov dword [rsp + 0xbc], eax
jmp 0x1800393b5
mov eax, dword [rsp + 0xbc]
dec eax
mov dword [rsp + 0xbc], eax
cmp dword [rsp + 0xbc], 0
jbe 0x180039424
mov rax, qword [rsp + 0x7b08]
cmp qword [rsp + 0xb0], rax
jbe 0x180039424
mov rax, qword [rsp + 0xb0]
dec rax
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x7b08]
cmp qword [rsp + 0xb0], rax
jbe 0x180039422
mov rax, qword [rsp + 0xb0]
movzx eax, byte [rax]
and eax, 0xc0
cmp eax, 0x80
jne 0x180039422
mov rax, qword [rsp + 0xb0]
dec rax
mov qword [rsp + 0xb0], rax
jmp 0x1800393e4
jmp 0x1800393a5
mov rax, qword [rsp + 0x7b28]
add rax, 0x40
mov rcx, qword [rsp + 0x7b08]
mov rdx, qword [rsp + 0xb0]
sub rdx, rcx
mov rcx, rdx
mov rdx, qword [rsp + 0x7b10]
sub rdx, rcx
mov rcx, rdx
mov r8, rax
mov rdx, rcx
mov rcx, qword [rsp + 0xb0]
call fcn.1800bbe40
mov rcx, qword [rsp + 0x7b28]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x7b28]
cmp dword [rax + 0x4c], 0
je 0x1800394be
mov rax, qword [rsp + 0x7b08]
mov rcx, qword [rsp + 0xb0]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x7b28]
add rax, qword [rcx + 0x40]
mov rcx, qword [rsp + 0x7b28]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x7b28]
mov eax, dword [rax + 0x4c]
jmp 0x18003a967
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x10
test eax, eax
je 0x1800395ca
mov dword [rsp + 0xac], 1
mov rax, qword [rsp + 0x70]
movzx eax, byte [rax + 0x70]
mov byte [rsp + 0x68], al
movzx eax, byte [rsp + 0x68]
mov byte [rsp + 0x58], al
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x20
test eax, eax
je 0x1800395c8
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x40]
movzx ecx, byte [rsp + 0x58]
movzx eax, byte [rax + rcx + 0x100]
mov byte [rsp + 0x68], al
movzx eax, byte [rsp + 0x58]
cmp eax, 0x7f
jle 0x1800395c8
cmp dword [rsp + 0x88], 0
jne 0x1800395c8
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x20000
test eax, eax
je 0x1800395c8
movzx eax, byte [rsp + 0x58]
mov dword [rsp + 0x178], eax
movzx ecx, byte [rsp + 0x58]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdqe
lea rcx, [0x1800cb070]
movzx eax, word [rcx + rax*2]
imul eax, eax, 0x80
mov dword [rsp + 0x174], eax
movzx ecx, byte [rsp + 0x58]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
and eax, 0x7f
sub eax, edx
mov ecx, dword [rsp + 0x174]
add ecx, eax
mov eax, ecx
cdqe
lea rcx, [0x1800d23f0]
movzx eax, word [rcx + rax*2]
imul rax, rax, 0xc
lea rcx, [0x1800cf470]
mov edx, dword [rsp + 0x178]
add edx, dword [rcx + rax + 4]
mov eax, edx
mov byte [rsp + 0x68], al
jmp 0x1800395f4
cmp dword [rsp + 0x100], 0
jne 0x1800395f4
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x40
test eax, eax
je 0x1800395f4
mov rax, qword [rsp + 0x70]
add rax, 0x28
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x80
test eax, eax
je 0x180039702
mov dword [rsp + 0x124], 1
mov rax, qword [rsp + 0x70]
movzx eax, byte [rax + 0x74]
mov byte [rsp + 0x69], al
movzx eax, byte [rsp + 0x69]
mov byte [rsp + 0x59], al
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x100
test eax, eax
je 0x180039702
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x40]
movzx ecx, byte [rsp + 0x59]
movzx eax, byte [rax + rcx + 0x100]
mov byte [rsp + 0x69], al
movzx eax, byte [rsp + 0x59]
cmp eax, 0x7f
jle 0x180039702
cmp dword [rsp + 0x88], 0
jne 0x180039702
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x20000
test eax, eax
je 0x180039702
movzx eax, byte [rsp + 0x59]
mov dword [rsp + 0x170], eax
movzx ecx, byte [rsp + 0x59]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdqe
lea rcx, [0x1800cb070]
movzx eax, word [rcx + rax*2]
imul eax, eax, 0x80
mov dword [rsp + 0x17c], eax
movzx ecx, byte [rsp + 0x59]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
and eax, 0x7f
sub eax, edx
mov ecx, dword [rsp + 0x17c]
add ecx, eax
mov eax, ecx
cdqe
lea rcx, [0x1800d23f0]
movzx eax, word [rcx + rax*2]
imul rax, rax, 0xc
lea rcx, [0x1800cf470]
mov edx, dword [rsp + 0x170]
add edx, dword [rcx + rax + 4]
mov eax, edx
mov byte [rsp + 0x69], al
mov rax, qword [rsp + 0x7b28]
movzx eax, byte [rax + 0x49]
and eax, 1
test eax, eax
je 0x180039752
mov rax, qword [rsp + 0x7b28]
mov rdx, qword [rax + 0x10]
mov rax, qword [rsp + 0x7b28]
mov rcx, qword [rax + 0x20]
mov rax, qword [rsp + 0x7b28]
call qword [rax + 8]
mov rax, qword [rsp + 0x7b28]
movzx eax, byte [rax + 0x49]
and eax, 0xfffffffe
mov rcx, qword [rsp + 0x7b28]
mov byte [rcx + 0x49], al
mov rax, qword [rsp + 0x7b28]
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x18], rcx
mov rax, qword [rsp + 0x7b28]
mov qword [rax + 0x20], 0
mov rax, qword [rsp + 0x7b28]
mov qword [rax + 0x28], 0
mov rax, qword [rsp + 0x7b28]
mov byte [rax + 0x48], 1
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x58]
and eax, 0x10000
test eax, eax
jne 0x18003a475
mov eax, dword [rsp + 0x7b20]
and eax, 0x40
test eax, eax
jne 0x18003a475
cmp dword [rsp + 0x12c], 0
je 0x180039ae0
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x90], rax
cmp dword [rsp + 0x88], 0
je 0x180039979
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x90], rax
jae 0x180039974
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 0
je 0x180039877
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x28]
cmp qword [rsp + 0x90], rax
jae 0x180039859
mov rax, qword [rsp + 0x50]
add rax, 0x78
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + 0x28]
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0x74]
mov rcx, qword [rsp + 0x90]
call fcn.1800b2200
test eax, eax
je 0x180039859
mov dword [rsp + 0x150], 1
jmp 0x180039864
mov dword [rsp + 0x150], 0
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x158], eax
jmp 0x180039914
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x28]
sub rcx, rax
mov rax, rcx
cmp qword [rsp + 0x90], rax
ja 0x1800398fb
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax]
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x1800398fb
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x78], 1
je 0x1800398ee
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax + 1]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x1800398fb
mov dword [rsp + 0x154], 1
jmp 0x180039906
mov dword [rsp + 0x154], 0
mov eax, dword [rsp + 0x154]
mov dword [rsp + 0x158], eax
cmp dword [rsp + 0x158], 0
jne 0x180039974
mov rax, qword [rsp + 0x90]
inc rax
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x90], rax
jae 0x18003996f
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax]
and eax, 0xc0
cmp eax, 0x80
jne 0x18003996f
mov rax, qword [rsp + 0x90]
inc rax
mov qword [rsp + 0x90], rax
jmp 0x180039931
jmp 0x1800397df
jmp 0x180039ad0
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x90], rax
jae 0x180039ad0
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 0
je 0x180039a11
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x28]
cmp qword [rsp + 0x90], rax
jae 0x1800399f3
mov rax, qword [rsp + 0x50]
add rax, 0x78
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + 0x28]
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0x74]
mov rcx, qword [rsp + 0x90]
call fcn.1800b2200
test eax, eax
je 0x1800399f3
mov dword [rsp + 0x15c], 1
jmp 0x1800399fe
mov dword [rsp + 0x15c], 0
mov eax, dword [rsp + 0x15c]
mov dword [rsp + 0x164], eax
jmp 0x180039aae
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x28]
sub rcx, rax
mov rax, rcx
cmp qword [rsp + 0x90], rax
ja 0x180039a95
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax]
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x180039a95
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x78], 1
je 0x180039a88
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax + 1]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x180039a95
mov dword [rsp + 0x160], 1
jmp 0x180039aa0
mov dword [rsp + 0x160], 0
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x164], eax
cmp dword [rsp + 0x164], 0
jne 0x180039ad0
mov rax, qword [rsp + 0x90]
inc rax
mov qword [rsp + 0x90], rax
jmp 0x180039979
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x80], rax
cmp dword [rsp + 0xc0], 0
je 0x180039c24
cmp dword [rsp + 0xac], 0
jne 0x180039b07
cmp qword [rsp + 0xd8], 0
je 0x180039c1f
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x180039b23
mov dword [rsp + 0xe8], 1
jmp 0x180039b2e
mov dword [rsp + 0xe8], 0
mov eax, dword [rsp + 0xe8]
mov dword [rsp + 0xa8], eax
cmp dword [rsp + 0xa8], 0
je 0x180039c10
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov byte [rsp + 0x78], al
cmp dword [rsp + 0xac], 0
je 0x180039b89
movzx eax, byte [rsp + 0x78]
movzx ecx, byte [rsp + 0x58]
cmp eax, ecx
je 0x180039b7c
movzx eax, byte [rsp + 0x78]
movzx ecx, byte [rsp + 0x68]
cmp eax, ecx
jne 0x180039b89
mov dword [rsp + 0xec], 1
jmp 0x180039b94
mov dword [rsp + 0xec], 0
mov eax, dword [rsp + 0xec]
mov dword [rsp + 0xa8], eax
cmp dword [rsp + 0xa8], 0
jne 0x180039c10
cmp qword [rsp + 0xd8], 0
je 0x180039c10
movzx eax, byte [rsp + 0x78]
cdq
and edx, 7
add eax, edx
sar eax, 3
cdqe
mov rcx, qword [rsp + 0xd8]
movzx eax, byte [rcx + rax]
movzx ecx, byte [rsp + 0x78]
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, edx
and eax, ecx
test eax, eax
je 0x180039bf7
mov dword [rsp + 0xf0], 1
jmp 0x180039c02
mov dword [rsp + 0xf0], 0
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0xa8], eax
cmp dword [rsp + 0xa8], 0
jne 0x180039c1f
jmp 0x18003a903
jmp 0x18003a256
cmp dword [rsp + 0xac], 0
je 0x180039e49
movzx eax, byte [rsp + 0x58]
movzx ecx, byte [rsp + 0x68]
cmp eax, ecx
je 0x180039ddf
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xc8], 0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x180], rax
cmp dword [rsp + 0xf4], 0
jne 0x180039ce3
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x58]
mov r8, rax
mov edx, ecx
mov rcx, qword [rsp + 0x60]
call fcn.1800bd850
mov qword [rsp + 0xd0], rax
cmp qword [rsp + 0xd0], 0
jne 0x180039cc8
mov dword [rsp + 0xf4], 1
jmp 0x180039ce3
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xd0]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x180], rax
cmp dword [rsp + 0xfc], 0
jne 0x180039d4a
movzx eax, byte [rsp + 0x68]
mov r8, qword [rsp + 0x180]
mov edx, eax
mov rcx, qword [rsp + 0x60]
call fcn.1800bd850
mov qword [rsp + 0xc8], rax
cmp qword [rsp + 0xc8], 0
jne 0x180039d31
cmp qword [rsp + 0xd0], 0
jne 0x180039d31
mov dword [rsp + 0xf8], 1
jmp 0x180039d3c
mov dword [rsp + 0xf8], 0
mov eax, dword [rsp + 0xf8]
mov dword [rsp + 0xfc], eax
cmp qword [rsp + 0xd0], 0
jne 0x180039d91
cmp qword [rsp + 0xc8], 0
jne 0x180039d72
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x188], rax
jmp 0x180039d82
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x60], rax
jmp 0x180039ddd
cmp qword [rsp + 0xc8], 0
je 0x180039dc0
mov rax, qword [rsp + 0xc8]
cmp qword [rsp + 0xd0], rax
jb 0x180039dc0
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x190], rax
jmp 0x180039dd0
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x60], rax
jmp 0x180039e20
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x58]
mov r8, rax
mov edx, ecx
mov rcx, qword [rsp + 0x60]
call fcn.1800bd850
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 0
jne 0x180039e20
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x6c]
and eax, 0x30
test eax, eax
jne 0x180039e44
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x28]
cmp qword [rsp + 0x60], rax
jb 0x180039e44
jmp 0x18003a903
jmp 0x18003a256
cmp dword [rsp + 0x100], 0
je 0x18003a1bd
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x20]
add rax, qword [rsp + 0x7b18]
cmp qword [rsp + 0x60], rax
jbe 0x18003a1b8
cmp dword [rsp + 0x88], 0
je 0x18003a00d
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x18003a008
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 0
je 0x180039f10
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x20]
cmp qword [rsp + 0x60], rax
jbe 0x180039ef2
mov rax, qword [rsp + 0x50]
add rax, 0x78
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + 0x20]
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0x74]
mov rcx, qword [rsp + 0x60]
call fcn.1800b1e00
test eax, eax
je 0x180039ef2
mov dword [rsp + 0x104], 1
jmp 0x180039efd
mov dword [rsp + 0x104], 0
mov eax, dword [rsp + 0x104]
mov dword [rsp + 0x10c], eax
jmp 0x180039fba
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x50]
add rax, qword [rcx + 0x20]
cmp qword [rsp + 0x60], rax
jb 0x180039fa1
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
movzx eax, byte [rax]
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x180039fa1
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x78], 1
je 0x180039f94
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
movzx eax, byte [rax + 1]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x180039fa1
mov dword [rsp + 0x108], 1
jmp 0x180039fac
mov dword [rsp + 0x108], 0
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x10c], eax
cmp dword [rsp + 0x10c], 0
jne 0x18003a008
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x18003a003
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
and eax, 0xc0
cmp eax, 0x80
jne 0x18003a003
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x180039fd1
jmp 0x180039e81
jmp 0x18003a162
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x18003a162
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 0
je 0x18003a09c
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x20]
cmp qword [rsp + 0x60], rax
jbe 0x18003a07e
mov rax, qword [rsp + 0x50]
add rax, 0x78
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + 0x20]
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0x74]
mov rcx, qword [rsp + 0x60]
call fcn.1800b1e00
test eax, eax
je 0x18003a07e
mov dword [rsp + 0x110], 1
jmp 0x18003a089
mov dword [rsp + 0x110], 0
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x118], eax
jmp 0x18003a146
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x50]
add rax, qword [rcx + 0x20]
cmp qword [rsp + 0x60], rax
jb 0x18003a12d
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
movzx eax, byte [rax]
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x18003a12d
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x78], 1
je 0x18003a120
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
movzx eax, byte [rax + 1]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x18003a12d
mov dword [rsp + 0x114], 1
jmp 0x18003a138
mov dword [rsp + 0x114], 0
mov eax, dword [rsp + 0x114]
mov dword [rsp + 0x118], eax
cmp dword [rsp + 0x118], 0
jne 0x18003a162
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x18003a00d
mov eax, 1
imul rax, rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax]
cmp eax, 0xd
jne 0x18003a1b8
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 1
je 0x18003a18f
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 2
jne 0x18003a1b8
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x18003a1b8
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
cmp eax, 0xa
jne 0x18003a1b8
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x18003a256
cmp qword [rsp + 0xd8], 0
je 0x18003a256
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x18003a232
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov dword [rsp + 0x11c], eax
xor edx, edx
mov eax, dword [rsp + 0x11c]
mov ecx, 8
div ecx
mov eax, eax
mov rcx, qword [rsp + 0xd8]
movzx eax, byte [rcx + rax]
mov ecx, dword [rsp + 0x11c]
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, edx
and eax, ecx
test eax, eax
je 0x18003a223
jmp 0x18003a232
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x18003a1cc
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x6c]
and eax, 0x30
test eax, eax
jne 0x18003a256
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x28]
cmp qword [rsp + 0x60], rax
jb 0x18003a256
jmp 0x18003a903
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x6c]
and eax, 0x30
test eax, eax
jne 0x18003a475
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x70]
movzx ecx, word [rcx + 0x7e]
cmp rax, rcx
jge 0x18003a2a0
jmp 0x18003a903
cmp dword [rsp + 0xac], 0
je 0x18003a2b7
mov dword [rsp + 0x120], 1
jmp 0x18003a2c2
mov dword [rsp + 0x120], 0
movsxd rax, dword [rsp + 0x120]
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xa0], rax
cmp dword [rsp + 0x124], 0
je 0x18003a475
mov rax, qword [rsp + 0x1a0]
cmp qword [rsp + 0xa0], rax
jbe 0x18003a475
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x198], rax
cmp qword [rsp + 0x198], 0x1388
jb 0x18003a34a
cmp dword [rsp + 0xc0], 0
jne 0x18003a475
cmp qword [rsp + 0x198], 0x4c4b40
jae 0x18003a475
movzx eax, byte [rsp + 0x59]
movzx ecx, byte [rsp + 0x69]
cmp eax, ecx
je 0x18003a3fe
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x168], rax
mov rax, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x59]
mov r8, rax
mov edx, ecx
mov rcx, qword [rsp + 0x168]
call fcn.1800bd850
mov qword [rsp + 0xa0], rax
cmp qword [rsp + 0xa0], 0
jne 0x18003a3fc
mov rax, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x69]
mov r8, rax
mov edx, ecx
mov rcx, qword [rsp + 0x168]
call fcn.1800bd850
mov qword [rsp + 0xa0], rax
cmp qword [rsp + 0xa0], 0
jne 0x18003a3fc
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xa0], rax
jmp 0x18003a44e
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x59]
mov r8, rax
mov edx, ecx
mov rcx, qword [rsp + 0xa0]
call fcn.1800bd850
mov qword [rsp + 0xa0], rax
cmp qword [rsp + 0xa0], 0
jne 0x18003a44e
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0xa0], rax
jb 0x18003a465
jmp 0x18003a903
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0x1a8]
cmp qword [rsp + 0x60], rax
jbe 0x18003a489
jmp 0x18003a903
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x30], rcx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x38], rcx
mov rax, qword [rsp + 0x50]
mov qword [rax + 0xa0], 0
mov rax, qword [rsp + 0x7b28]
movzx eax, word [rax + 0x4a]
shl eax, 1
mov rcx, qword [rsp + 0x7b28]
add rcx, 0x50
lea rdx, [rsp + 0x2e0]
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x40], 0
mov edx, dword [rsp + 0x7b40]
mov dword [rsp + 0x38], edx
mov rdx, qword [rsp + 0x7b38]
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9, qword [rsp + 0x7b18]
mov r8, qword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rsp + 0x50]
call fcn.18003a9a0
mov dword [rsp + 0x98], eax
cmp dword [rsp + 0x98], 0xffffffff
jne 0x18003a544
cmp dword [rsp + 0xc0], 0
je 0x18003a70e
cmp dword [rsp + 0x98], 0xfffffffe
jne 0x18003a5b3
mov rax, qword [rsp + 0x7b28]
movzx eax, word [rax + 0x4a]
test eax, eax
jle 0x18003a5b3
mov rax, qword [rsp + 0x7b08]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x7b28]
mov qword [rdx + rcx + 0x50], rax
mov rax, qword [rsp + 0x7b08]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x7b28]
mov qword [rdx + rcx + 0x50], rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b08]
mov rax, qword [rax + 0x30]
sub rax, rcx
mov rcx, qword [rsp + 0x7b28]
mov qword [rcx + 0x30], rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x7b08]
mov rax, qword [rax + 0x38]
sub rax, rcx
mov rcx, qword [rsp + 0x7b28]
mov qword [rcx + 0x38], rax
mov rax, qword [rsp + 0x7b08]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x7b28]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x7b28]
mov ecx, dword [rsp + 0x98]
mov dword [rax + 0x4c], ecx
cmp dword [rsp + 0x98], 0
jl 0x18003a6e1
mov eax, dword [rsp + 0x7b20]
and eax, 0x4000
test eax, eax
je 0x18003a6e1
movsxd rax, dword [rsp + 0x128]
mov rcx, qword [rsp + 0x7b10]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x7b10], rax
mov rax, qword [rsp + 0x7b28]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rsp + 0x7b10]
mov rax, qword [rsp + 0x7b28]
call qword [rax]
mov rcx, qword [rsp + 0x7b28]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x7b28]
cmp qword [rax + 0x20], 0
jne 0x18003a6a7
mov eax, 0xffffffd0
jmp 0x18003a967
mov rax, qword [rsp + 0x7b28]
mov rdi, qword [rax + 0x20]
mov rsi, qword [rsp + 0x7b08]
mov rcx, qword [rsp + 0x7b10]
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x7b28]
movzx eax, byte [rax + 0x49]
or eax, 1
mov rcx, qword [rsp + 0x7b28]
mov byte [rcx + 0x49], al
jmp 0x18003a709
cmp dword [rsp + 0x98], 0
jge 0x18003a6f5
cmp dword [rsp + 0x98], 0xfffffffe
jne 0x18003a709
mov rax, qword [rsp + 0x7b28]
mov rcx, qword [rsp + 0x7b08]
mov qword [rax + 0x20], rcx
jmp 0x18003a90e
cmp dword [rsp + 0x12c], 0
je 0x18003a83b
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 0
je 0x18003a798
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x28]
cmp qword [rsp + 0x60], rax
jae 0x18003a77a
mov rax, qword [rsp + 0x50]
add rax, 0x78
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + 0x28]
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0x74]
mov rcx, qword [rsp + 0x60]
call fcn.1800b2200
test eax, eax
je 0x18003a77a
mov dword [rsp + 0x130], 1
jmp 0x18003a785
mov dword [rsp + 0x130], 0
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x138], eax
jmp 0x18003a82c
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x78]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x28]
sub rcx, rax
mov rax, rcx
cmp qword [rsp + 0x60], rax
ja 0x18003a813
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x18003a813
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x78], 1
je 0x18003a806
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
movzx ecx, byte [rdx + rcx + 0x80]
cmp eax, ecx
jne 0x18003a813
mov dword [rsp + 0x134], 1
jmp 0x18003a81e
mov dword [rsp + 0x134], 0
mov eax, dword [rsp + 0x134]
mov dword [rsp + 0x138], eax
cmp dword [rsp + 0x138], 0
je 0x18003a83b
jmp 0x18003a903
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
cmp dword [rsp + 0x88], 0
je 0x18003a884
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x18003a884
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
and eax, 0xc0
cmp eax, 0x80
jne 0x18003a884
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x18003a852
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jbe 0x18003a895
jmp 0x18003a903
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax - 1]
cmp eax, 0xd
jne 0x18003a8fe
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x60], rax
jae 0x18003a8fe
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
cmp eax, 0xa
jne 0x18003a8fe
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x60]
and eax, 0x800
test eax, eax
jne 0x18003a8fe
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 1
je 0x18003a8f1
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x74], 2
je 0x18003a8f1
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x78], 2
jne 0x18003a8fe
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x18003978f
mov dword [rsp + 0x98], 0xffffffff
mov rax, qword [rsp + 0xe0]
cmp qword [rax], 0
je 0x18003a960
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax]
mov qword [rsp + 0x1b0], rax
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x1b0]
mov rcx, qword [rcx]
mov qword [rax], rcx
mov rax, qword [rsp + 0x50]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x50]
call qword [rax + 8]
jmp 0x18003a90e
mov eax, dword [rsp + 0x98]
add rsp, 0x7ae8
pop rdi
pop rsi
ret