Function at 0x1801ec080
Capabilities:
Inspect section memory permissions

Disassembly:
jmp 0x1801ec080
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, 0x53e8
call fcn.180005520
sub rsp, rax
lea rdi, [rsp + 0x40]
mov ecx, 0x14ea
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x5400]
mov rax, qword [0x1805a6200]
xor rax, rsp
mov qword [rsp + 0x53d0], rax
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x5400]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
xor eax, eax
mov word [rsp + 0x6c], ax
xor eax, eax
mov word [rsp + 0x70], ax
xor eax, eax
mov word [rsp + 0x74], ax
xor eax, eax
mov word [rsp + 0x78], ax
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x5418]
lea rax, [rax + rcx*2]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x98]
sub rax, 2
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xb8], 0
mov dword [rsp + 0xbc], 0
mov dword [rsp + 0xc4], 0
lea rax, [rsp + 0x170]
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x2a8]
lea rcx, [rsp + 0x2c0]
mov qword [rax + 0x30], rcx
cmp qword [rsp + 0x5410], 0xffffffffffffffff
jne 0x1801ec1b5
mov rcx, qword [rsp + 0x5408]
call fcn.18001ad90
mov qword [rsp + 0x5410], rax
mov dword [rsp + 0x44], 1
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x5410]
lea rax, [rax + rcx*2]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x5420]
and eax, 0x1fff9fc0
test eax, eax
je 0x1801ec1fb
mov eax, 0xffffffde
jmp 0x1801eeac6
cmp qword [rsp + 0x5400], 0
je 0x1801ec21c
cmp qword [rsp + 0x5408], 0
je 0x1801ec21c
cmp qword [rsp + 0x5428], 0
jne 0x1801ec226
mov eax, 0xffffffcd
jmp 0x1801eeac6
mov rax, qword [rsp + 0x5410]
cmp qword [rsp + 0x5418], rax
jbe 0x1801ec242
mov eax, 0xffffffdf
jmp 0x1801eeac6
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x50], 0x50435245
je 0x1801ec25a
mov eax, 0xffffffe1
jmp 0x1801eeac6
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 7
cmp eax, 2
je 0x1801ec274
mov eax, 0xffffffe0
jmp 0x1801eeac6
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x30000
xor edx, edx
mov ecx, 0x4000
div ecx
mov ecx, dword [rsp + 0x5420]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0x5420], eax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x58]
and eax, 0x80000
test eax, eax
je 0x1801ec2ba
mov dword [rsp + 0x5310], 1
jmp 0x1801ec2c5
mov dword [rsp + 0x5310], 0
mov eax, dword [rsp + 0x5310]
mov dword [rsp + 0xb8], eax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x58]
and eax, 0x4000000
test eax, eax
je 0x1801ec2f1
mov dword [rsp + 0x5314], 1
jmp 0x1801ec2fc
mov dword [rsp + 0x5314], 0
mov eax, dword [rsp + 0x5314]
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x58]
and eax, 0x20000
test eax, eax
je 0x1801ec328
mov dword [rsp + 0x5318], 1
jmp 0x1801ec333
mov dword [rsp + 0x5318], 0
mov eax, dword [rsp + 0x5318]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x5420]
and eax, 0x20
test eax, eax
je 0x1801ec35c
mov dword [rsp + 0x531c], 2
jmp 0x1801ec390
mov eax, dword [rsp + 0x5420]
and eax, 0x10
test eax, eax
je 0x1801ec377
mov dword [rsp + 0x5320], 1
jmp 0x1801ec382
mov dword [rsp + 0x5320], 0
mov eax, dword [rsp + 0x5320]
mov dword [rsp + 0x531c], eax
mov rax, qword [rsp + 0x2a8]
movzx ecx, word [rsp + 0x531c]
mov word [rax + 0x80], cx
mov rax, qword [rsp + 0x2a8]
movzx eax, word [rax + 0x80]
test eax, eax
je 0x1801ec3de
mov rax, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x5420]
mov eax, dword [rax + 0x58]
or eax, ecx
and eax, 0x20000000
test eax, eax
je 0x1801ec3de
mov eax, 0xffffffde
jmp 0x1801eeac6
cmp qword [rsp + 0x5430], 0
je 0x1801ec413
mov rax, qword [rsp + 0x5430]
cmp qword [rax + 0x38], 0xffffffffffffffff
je 0x1801ec413
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x58]
and eax, 0x800000
test eax, eax
jne 0x1801ec413
mov eax, 0xffffffc8
jmp 0x1801eeac6
mov rax, qword [rsp + 0x5428]
movzx eax, byte [rax + 0x49]
and eax, 1
test eax, eax
je 0x1801ec463
mov rax, qword [rsp + 0x5428]
mov rdx, qword [rax + 0x10]
mov rax, qword [rsp + 0x5428]
mov rcx, qword [rax + 0x20]
mov rax, qword [rsp + 0x5428]
call qword [rax + 8]
mov rax, qword [rsp + 0x5428]
movzx eax, byte [rax + 0x49]
and eax, 0xfffffffe
mov rcx, qword [rsp + 0x5428]
mov byte [rcx + 0x49], al
mov rax, qword [rsp + 0x5428]
mov qword [rax + 0x20], 0
mov rax, qword [rsp + 0x5428]
mov qword [rax + 0x40], 0
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5408]
mov qword [rax + 0xa0], rcx
cmp dword [rsp + 0xb8], 0
je 0x1801ec7eb
mov eax, dword [rsp + 0x5420]
and eax, 0x40000000
test eax, eax
je 0x1801ec4c6
cmp dword [rsp + 0xc0], 0
je 0x1801ec7eb
mov dword [rsp + 0x52c4], 0
cmp dword [rsp + 0xc0], 0
je 0x1801ec527
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801ec525
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801ec525
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x52c4], 1
jmp 0x1801ec4db
jmp 0x1801ec56f
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801ec56f
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801ec56f
cmp qword [rsp + 0x5418], 0
jbe 0x1801ec565
mov eax, 0xffffffdc
jmp 0x1801eeac6
mov eax, 0xffffffe6
jmp 0x1801eeac6
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x98]
mov qword [rax + 0xa0], rcx
cmp dword [rsp + 0x52c4], 0
jne 0x1801ec663
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x7c]
mov dword [rsp + 0x52c8], eax
jmp 0x1801ec5b6
mov eax, dword [rsp + 0x52c8]
dec eax
mov dword [rsp + 0x52c8], eax
cmp dword [rsp + 0x52c8], 0
jbe 0x1801ec663
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5408]
cmp qword [rax + 0xa0], rcx
jbe 0x1801ec663
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa0]
sub rax, 2
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0xa0], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5408]
cmp qword [rax + 0xa0], rcx
jbe 0x1801ec65e
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa0]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801ec65e
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa0]
sub rax, 2
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0xa0], rax
jmp 0x1801ec603
jmp 0x1801ec5a6
mov rax, qword [rsp + 0x5428]
add rax, 0x40
mov rcx, qword [rsp + 0x2a8]
mov rdx, qword [rsp + 0x5408]
mov rcx, qword [rcx + 0xa0]
sub rcx, rdx
sar rcx, 1
mov rdx, qword [rsp + 0x5410]
sub rdx, rcx
mov rcx, rdx
mov r8, rax
mov rdx, rcx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rax + 0xa0]
call fcn.180007b60
mov rcx, qword [rsp + 0x5428]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x5428]
cmp dword [rax + 0x4c], 0
jne 0x1801ec6d2
jmp 0x1801ec7eb
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5408]
mov rax, qword [rax + 0xa0]
sub rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x5428]
add rax, qword [rcx + 0x40]
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x40], rax
cmp dword [rsp + 0xc0], 0
je 0x1801ec71f
mov rax, qword [rsp + 0x5428]
cmp dword [rax + 0x4c], 0
jle 0x1801ec72f
mov rax, qword [rsp + 0x5428]
mov eax, dword [rax + 0x4c]
jmp 0x1801eeac6
mov rax, qword [rsp + 0x5428]
mov rax, qword [rax + 0x40]
mov rcx, qword [rsp + 0x5408]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x98]
cmp qword [rsp + 0x88], rax
jae 0x1801ec7d9
mov rax, qword [rsp + 0x88]
add rax, 2
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0xa0], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x98]
cmp qword [rax + 0xa0], rcx
jae 0x1801ec7d7
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa0]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801ec7d7
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa0]
add rax, 2
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0xa0], rax
jmp 0x1801ec77c
jmp 0x1801ec7e6
mov dword [rsp + 0xc4], 2
jmp 0x1801ec7eb
jmp 0x1801ec663
cmp qword [rsp + 0x5430], 0
jne 0x1801ec81b
lea rax, [0x1804e79a0]
mov qword [rsp + 0x5430], rax
mov rdi, qword [rsp + 0x2a8]
mov rsi, qword [rsp + 0x50]
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
jmp 0x1801ec832
mov rdi, qword [rsp + 0x2a8]
mov rsi, qword [rsp + 0x5430]
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x5420]
mov eax, dword [rax + 0x58]
or eax, ecx
and eax, 0x80000000
test eax, eax
je 0x1801ec859
mov dword [rsp + 0x5324], 1
jmp 0x1801ec864
mov dword [rsp + 0x5324], 0
mov eax, dword [rsp + 0x5324]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x58]
and eax, 0x100
test eax, eax
je 0x1801ec88d
mov dword [rsp + 0x5328], 1
jmp 0x1801ec898
mov dword [rsp + 0x5328], 0
mov eax, dword [rsp + 0x5328]
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x200
test eax, eax
je 0x1801ec8c1
mov dword [rsp + 0x532c], 1
jmp 0x1801ec8cc
mov dword [rsp + 0x532c], 0
mov eax, dword [rsp + 0x532c]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x5430]
cmp qword [rax + 0x38], 0xffffffffffffffff
jne 0x1801ec8f8
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x5330], rax
jmp 0x1801ec918
mov rax, qword [rsp + 0x5430]
mov rax, qword [rax + 0x38]
mov rcx, qword [rsp + 0x5408]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x5330], rax
mov rax, qword [rsp + 0x5330]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x2a8]
lea rcx, [rsp + 0xe0]
mov qword [rax + 0x110], rcx
mov dword [rsp + 0xe0], 2
mov rax, qword [rsp + 0x5408]
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov qword [rsp + 0x108], rax
mov dword [rsp + 0x148], 0
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5430]
mov rcx, qword [rcx + 0x18]
mov qword [rax + 0x120], rcx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5430]
mov rcx, qword [rcx + 0x20]
mov qword [rax + 0x118], rcx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5408]
mov qword [rax + 0x98], rcx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5418]
mov qword [rax + 0x70], rcx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x88]
mov qword [rax + 0xa8], rcx
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x1000
test eax, eax
je 0x1801eca1c
mov dword [rsp + 0x5338], 1
jmp 0x1801eca27
mov dword [rsp + 0x5338], 0
mov rax, qword [rsp + 0x2a8]
mov ecx, dword [rsp + 0x5338]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x7c]
test eax, eax
jg 0x1801eca64
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x2000
test eax, eax
jne 0x1801eca64
mov dword [rsp + 0x533c], 0
jmp 0x1801eca6f
mov dword [rsp + 0x533c], 1
mov rax, qword [rsp + 0x2a8]
mov ecx, dword [rsp + 0x533c]
mov dword [rax + 0x54], ecx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x50]
mov ecx, dword [rcx + 0x58]
mov dword [rax + 0xf0], ecx
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0xf8], 0
mov rax, qword [rsp + 0x2a8]
mov qword [rax + 0xd0], 0
mov rax, qword [rsp + 0x2a8]
mov qword [rax + 0xc8], 0
mov rax, qword [rsp + 0x50]
add rax, 0x88
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x88], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x50]
movzx ecx, word [rcx + 0x86]
mov word [rax + 0x84], cx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x50]
movzx ecx, word [rcx + 0x84]
mov word [rax + 0x86], cx
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x86]
mov rcx, qword [rsp + 0x50]
movzx ecx, word [rcx + 0x84]
imul eax, ecx
cdqe
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x88]
lea rax, [rcx + rax*2]
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x90], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x50]
movzx ecx, word [rcx + 0x78]
mov word [rax + 0x82], cx
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0xfc], 0
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x7a]
mov dword [rsp + 0x5340], eax
mov eax, dword [rsp + 0x5340]
dec eax
mov dword [rsp + 0x5340], eax
cmp dword [rsp + 0x5340], 5
ja case.default.0x1801ecbcf
movsxd rax, dword [rsp + 0x5340]
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0x1eeaf8]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0x100], 1
mov eax, 2
imul rax, rax, 0
mov ecx, 0xd
mov rdx, qword [rsp + 0x2a8]
mov word [rdx + rax + 0x104], cx
jmp 0x1801eccef
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0x100], 1
mov eax, 2
imul rax, rax, 0
mov ecx, 0xa
mov rdx, qword [rsp + 0x2a8]
mov word [rdx + rax + 0x104], cx
jmp 0x1801eccef
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0x100], 1
mov eax, 2
imul rax, rax, 0
xor ecx, ecx
mov rdx, qword [rsp + 0x2a8]
mov word [rdx + rax + 0x104], cx
jmp 0x1801eccef
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0x100], 2
mov eax, 2
imul rax, rax, 0
mov ecx, 0xd
mov rdx, qword [rsp + 0x2a8]
mov word [rdx + rax + 0x104], cx
mov eax, 2
imul rax, rax, 1
mov ecx, 0xa
mov rdx, qword [rsp + 0x2a8]
mov word [rdx + rax + 0x104], cx
jmp 0x1801eccef
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0xfc], 1
jmp 0x1801eccef
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0xfc], 2
jmp 0x1801eccef
mov eax, 0xffffffd4
jmp 0x1801eeac6
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x80]
shl eax, 1
cdqe
lea rax, [rax*8 + 0x80]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x5430]
mov rcx, qword [rsp + 0x50]
mov ecx, dword [rcx + 0x64]
cmp dword [rax + 0x40], ecx
jae 0x1801ecd38
mov rax, qword [rsp + 0x5430]
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x5344], eax
jmp 0x1801ecd47
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x64]
mov dword [rsp + 0x5344], eax
mov eax, dword [rsp + 0x5344]
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x38], rax
mov rax, qword [rsp + 0x5430]
mov rcx, qword [rsp + 0x50]
mov ecx, dword [rcx + 0x68]
cmp dword [rax + 0x44], ecx
jae 0x1801ecd83
mov rax, qword [rsp + 0x5430]
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x5348], eax
jmp 0x1801ecd92
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x68]
mov dword [rsp + 0x5348], eax
mov rax, qword [rsp + 0x2a8]
mov ecx, dword [rsp + 0x5348]
mov dword [rax + 0x40], ecx
mov rax, qword [rsp + 0x5430]
mov rcx, qword [rsp + 0x50]
mov ecx, dword [rcx + 0x6c]
cmp dword [rax + 0x48], ecx
jae 0x1801ecdcd
mov rax, qword [rsp + 0x5430]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x534c], eax
jmp 0x1801ecddc
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x6c]
mov dword [rsp + 0x534c], eax
mov rax, qword [rsp + 0x2a8]
mov ecx, dword [rsp + 0x534c]
mov dword [rax + 0x44], ecx
cmp qword [rsp + 0xc8], 0x800
ja 0x1801ece3d
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x30]
mov qword [rax + 0x20], rcx
xor edx, edx
mov eax, 0x5000
div qword [rsp + 0xc8]
imul rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x18], rax
jmp 0x1801ecf10
imul rax, qword [rsp + 0xc8], 0xa
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x18], rax
xor edx, edx
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0x18]
mov ecx, 0x400
div rcx
mov rcx, qword [rsp + 0x2a8]
cmp rax, qword [rcx + 0x38]
jbe 0x1801ecec9
mov rax, qword [rsp + 0x2a8]
imul rax, qword [rax + 0x38], 0x400
cmp qword [rsp + 0xc8], rax
jbe 0x1801ece9a
mov eax, 0xffffffc1
jmp 0x1801eeac6
mov rax, qword [rsp + 0x2a8]
imul rax, qword [rax + 0x38], 0x400
xor edx, edx
div qword [rsp + 0xc8]
imul rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rax + 0x10]
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0x2a8]
call qword [rax]
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x2a8]
cmp qword [rax + 0x20], 0
jne 0x1801ecf10
mov eax, 0xffffffd0
jmp 0x1801eeac6
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0x20]
mov rcx, qword [rsp + 0x2a8]
add rax, qword [rcx + 0x18]
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x28], rax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x80]
shl eax, 1
cdqe
shl rax, 3
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x20]
add rcx, 0x80
mov r8, rax
mov edx, 0xff
call fcn.180013180
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x18]
mov qword [rax + 0x58], rcx
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x18]
add rax, 0x100
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x60], rax
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x18]
add rax, 0x340
mov rcx, qword [rsp + 0x2a8]
mov qword [rcx + 0x68], rax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x10
test eax, eax
je 0x1801ed0dd
mov dword [rsp + 0x60], 1
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x70]
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
mov word [rsp + 0x6c], ax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x20
test eax, eax
je 0x1801ed0db
movzx eax, word [rsp + 0x6c]
cmp eax, 0xff
ja 0x1801ed023
movzx eax, word [rsp + 0x6c]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x60]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x5350], eax
jmp 0x1801ed02f
movzx eax, word [rsp + 0x6c]
mov dword [rsp + 0x5350], eax
movzx eax, word [rsp + 0x5350]
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x6c]
cmp eax, 0x7f
jle 0x1801ed0db
cmp dword [rsp + 0xb8], 0
jne 0x1801ed05e
cmp dword [rsp + 0xbc], 0
je 0x1801ed0db
movzx eax, word [rsp + 0x6c]
mov dword [rsp + 0x5354], eax
movzx ecx, word [rsp + 0x6c]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdqe
lea rcx, [0x1804eb200]
movzx eax, word [rcx + rax*2]
imul eax, eax, 0x80
mov dword [rsp + 0x5358], eax
movzx ecx, word [rsp + 0x6c]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
and eax, 0x7f
sub eax, edx
mov ecx, dword [rsp + 0x5358]
add ecx, eax
mov eax, ecx
cdqe
lea rcx, [0x1804ef600]
movzx eax, word [rcx + rax*2]
imul rax, rax, 0xc
lea rcx, [0x1804e8340]
mov edx, dword [rsp + 0x5354]
add edx, dword [rcx + rax + 4]
mov eax, edx
mov word [rsp + 0x70], ax
jmp 0x1801ed101
cmp dword [rsp + 0x68], 0
jne 0x1801ed101
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x40
test eax, eax
je 0x1801ed101
mov rax, qword [rsp + 0x50]
add rax, 0x28
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x80
test eax, eax
je 0x1801ed22d
mov dword [rsp + 0x64], 1
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0x74]
mov word [rsp + 0x78], ax
movzx eax, word [rsp + 0x78]
mov word [rsp + 0x74], ax
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x100
test eax, eax
je 0x1801ed22d
movzx eax, word [rsp + 0x74]
cmp eax, 0xff
ja 0x1801ed175
movzx eax, word [rsp + 0x74]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x60]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x535c], eax
jmp 0x1801ed181
movzx eax, word [rsp + 0x74]
mov dword [rsp + 0x535c], eax
movzx eax, word [rsp + 0x535c]
mov word [rsp + 0x78], ax
movzx eax, word [rsp + 0x74]
cmp eax, 0x7f
jle 0x1801ed22d
cmp dword [rsp + 0xb8], 0
jne 0x1801ed1b0
cmp dword [rsp + 0xbc], 0
je 0x1801ed22d
movzx eax, word [rsp + 0x74]
mov dword [rsp + 0x5360], eax
movzx ecx, word [rsp + 0x74]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdqe
lea rcx, [0x1804eb200]
movzx eax, word [rcx + rax*2]
imul eax, eax, 0x80
mov dword [rsp + 0x5364], eax
movzx ecx, word [rsp + 0x74]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
and eax, 0x7f
sub eax, edx
mov ecx, dword [rsp + 0x5364]
add ecx, eax
mov eax, ecx
cdqe
lea rcx, [0x1804ef600]
movzx eax, word [rcx + rax*2]
imul rax, rax, 0xc
lea rcx, [0x1804e8340]
mov edx, dword [rsp + 0x5360]
add edx, dword [rcx + rax + 4]
mov eax, edx
mov word [rsp + 0x78], ax
mov qword [rsp + 0xb0], 0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0x4c], 0
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x58]
and eax, 0x10000
test eax, eax
jne 0x1801ee008
cmp dword [rsp + 0x5c], 0
je 0x1801ed610
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x52d8], rax
cmp dword [rsp + 0xb8], 0
je 0x1801ed46c
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x52d8], rax
jae 0x1801ed467
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 0
je 0x1801ed34f
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa8]
cmp qword [rsp + 0x52d8], rax
jae 0x1801ed331
mov rax, qword [rsp + 0x2a8]
add rax, 0x100
mov ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x2a8]
mov r8, qword [rax + 0xa8]
mov rax, qword [rsp + 0x2a8]
mov edx, dword [rax + 0xfc]
mov rcx, qword [rsp + 0x52d8]
call fcn.180018e00
test eax, eax
je 0x1801ed331
mov dword [rsp + 0x5368], 1
jmp 0x1801ed33c
mov dword [rsp + 0x5368], 0
mov eax, dword [rsp + 0x5368]
mov dword [rsp + 0x536c], eax
jmp 0x1801ed407
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
shl rax, 1
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0xa8]
sub rcx, rax
mov rax, rcx
cmp qword [rsp + 0x52d8], rax
ja 0x1801ed3ee
mov rax, qword [rsp + 0x52d8]
movzx eax, word [rax]
mov ecx, 2
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801ed3ee
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0x100], 1
je 0x1801ed3e1
mov rax, qword [rsp + 0x52d8]
movzx eax, word [rax + 2]
mov ecx, 2
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801ed3ee
mov dword [rsp + 0x5370], 1
jmp 0x1801ed3f9
mov dword [rsp + 0x5370], 0
mov eax, dword [rsp + 0x5370]
mov dword [rsp + 0x536c], eax
cmp dword [rsp + 0x536c], 0
jne 0x1801ed467
mov rax, qword [rsp + 0x52d8]
add rax, 2
mov qword [rsp + 0x52d8], rax
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x52d8], rax
jae 0x1801ed462
mov rax, qword [rsp + 0x52d8]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801ed462
mov rax, qword [rsp + 0x52d8]
add rax, 2
mov qword [rsp + 0x52d8], rax
jmp 0x1801ed296
jmp 0x1801ed600
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x52d8], rax
jae 0x1801ed600
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 0
je 0x1801ed525
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa8]
cmp qword [rsp + 0x52d8], rax
jae 0x1801ed507
mov rax, qword [rsp + 0x2a8]
add rax, 0x100
mov ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x2a8]
mov r8, qword [rax + 0xa8]
mov rax, qword [rsp + 0x2a8]
mov edx, dword [rax + 0xfc]
mov rcx, qword [rsp + 0x52d8]
call fcn.180018e00
test eax, eax
je 0x1801ed507
mov dword [rsp + 0x5374], 1
jmp 0x1801ed512
mov dword [rsp + 0x5374], 0
mov eax, dword [rsp + 0x5374]
mov dword [rsp + 0x5378], eax
jmp 0x1801ed5dd
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
shl rax, 1
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0xa8]
sub rcx, rax
mov rax, rcx
cmp qword [rsp + 0x52d8], rax
ja 0x1801ed5c4
mov rax, qword [rsp + 0x52d8]
movzx eax, word [rax]
mov ecx, 2
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801ed5c4
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0x100], 1
je 0x1801ed5b7
mov rax, qword [rsp + 0x52d8]
movzx eax, word [rax + 2]
mov ecx, 2
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801ed5c4
mov dword [rsp + 0x537c], 1
jmp 0x1801ed5cf
mov dword [rsp + 0x537c], 0
mov eax, dword [rsp + 0x537c]
mov dword [rsp + 0x5378], eax
cmp dword [rsp + 0x5378], 0
jne 0x1801ed600
mov rax, qword [rsp + 0x52d8]
add rax, 2
mov qword [rsp + 0x52d8], rax
jmp 0x1801ed46c
mov rax, qword [rsp + 0x52d8]
mov qword [rsp + 0x88], rax
cmp dword [rsp + 0x58], 0
je 0x1801ed780
cmp dword [rsp + 0x60], 0
jne 0x1801ed62e
cmp qword [rsp + 0x48], 0
je 0x1801ed77b
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801ed64d
mov dword [rsp + 0x5380], 1
jmp 0x1801ed658
mov dword [rsp + 0x5380], 0
mov eax, dword [rsp + 0x5380]
mov dword [rsp + 0x52e0], eax
cmp dword [rsp + 0x52e0], 0
je 0x1801ed764
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
mov word [rsp + 0x52e4], ax
cmp dword [rsp + 0x60], 0
je 0x1801ed6bd
movzx eax, word [rsp + 0x52e4]
movzx ecx, word [rsp + 0x6c]
cmp eax, ecx
je 0x1801ed6b0
movzx eax, word [rsp + 0x52e4]
movzx ecx, word [rsp + 0x70]
cmp eax, ecx
jne 0x1801ed6bd
mov dword [rsp + 0x5384], 1
jmp 0x1801ed6c8
mov dword [rsp + 0x5384], 0
mov eax, dword [rsp + 0x5384]
mov dword [rsp + 0x52e0], eax
cmp dword [rsp + 0x52e0], 0
jne 0x1801ed764
cmp qword [rsp + 0x48], 0
je 0x1801ed764
movzx eax, word [rsp + 0x52e4]
cmp eax, 0xff
jle 0x1801ed708
mov eax, 0xff
mov word [rsp + 0x52e4], ax
movzx eax, word [rsp + 0x52e4]
cdq
and edx, 7
add eax, edx
sar eax, 3
cdqe
mov rcx, qword [rsp + 0x48]
movzx eax, byte [rcx + rax]
movzx ecx, word [rsp + 0x52e4]
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, edx
and eax, ecx
test eax, eax
je 0x1801ed74b
mov dword [rsp + 0x5388], 1
jmp 0x1801ed756
mov dword [rsp + 0x5388], 0
mov eax, dword [rsp + 0x5388]
mov dword [rsp + 0x52e0], eax
cmp dword [rsp + 0x52e0], 0
jne 0x1801ed77b
mov dword [rsp + 0x40], 0
jmp 0x1801ee554
jmp 0x1801eddbf
cmp dword [rsp + 0x60], 0
je 0x1801ed872
movzx eax, word [rsp + 0x6c]
movzx ecx, word [rsp + 0x70]
cmp eax, ecx
je 0x1801ed7f8
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801ed7f6
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
mov word [rsp + 0x52e8], ax
movzx eax, word [rsp + 0x52e8]
movzx ecx, word [rsp + 0x6c]
cmp eax, ecx
je 0x1801ed7f6
movzx eax, word [rsp + 0x52e8]
movzx ecx, word [rsp + 0x70]
cmp eax, ecx
je 0x1801ed7f6
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x1801ed799
jmp 0x1801ed834
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801ed834
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
movzx ecx, word [rsp + 0x6c]
cmp eax, ecx
je 0x1801ed834
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x1801ed7f8
mov rax, qword [rsp + 0x2a8]
movzx eax, word [rax + 0x80]
test eax, eax
jne 0x1801ed86d
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa8]
cmp qword [rsp + 0x98], rax
jb 0x1801ed86d
mov dword [rsp + 0x40], 0
jmp 0x1801ee554
jmp 0x1801eddbf
cmp dword [rsp + 0x68], 0
je 0x1801edcef
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0x98]
mov rcx, qword [rsp + 0x5418]
lea rax, [rax + rcx*2]
cmp qword [rsp + 0x98], rax
jbe 0x1801edcea
cmp dword [rsp + 0xb8], 0
je 0x1801edab7
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801edab2
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 0
je 0x1801ed96d
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0x98]
cmp qword [rsp + 0x98], rax
jbe 0x1801ed94f
mov rax, qword [rsp + 0x2a8]
add rax, 0x100
mov ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x2a8]
mov r8, qword [rax + 0x98]
mov rax, qword [rsp + 0x2a8]
mov edx, dword [rax + 0xfc]
mov rcx, qword [rsp + 0x98]
call fcn.180002f00
test eax, eax
je 0x1801ed94f
mov dword [rsp + 0x538c], 1
jmp 0x1801ed95a
mov dword [rsp + 0x538c], 0
mov eax, dword [rsp + 0x538c]
mov dword [rsp + 0x5390], eax
jmp 0x1801eda52
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x98]
lea rax, [rcx + rax*2]
cmp qword [rsp + 0x98], rax
jb 0x1801eda39
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
shl rax, 1
mov rcx, qword [rsp + 0x98]
sub rcx, rax
mov rax, rcx
movzx eax, word [rax]
mov ecx, 2
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801eda39
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0x100], 1
je 0x1801eda2c
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
shl rax, 1
mov rcx, qword [rsp + 0x98]
sub rcx, rax
mov rax, rcx
movzx eax, word [rax + 2]
mov ecx, 2
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801eda39
mov dword [rsp + 0x5394], 1
jmp 0x1801eda44
mov dword [rsp + 0x5394], 0
mov eax, dword [rsp + 0x5394]
mov dword [rsp + 0x5390], eax
cmp dword [rsp + 0x5390], 0
jne 0x1801edab2
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801edaad
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801edaad
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x1801ed8b4
jmp 0x1801edc78
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801edc78
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 0
je 0x1801edb70
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0x98]
cmp qword [rsp + 0x98], rax
jbe 0x1801edb52
mov rax, qword [rsp + 0x2a8]
add rax, 0x100
mov ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x2a8]
mov r8, qword [rax + 0x98]
mov rax, qword [rsp + 0x2a8]
mov edx, dword [rax + 0xfc]
mov rcx, qword [rsp + 0x98]
call fcn.180002f00
test eax, eax
je 0x1801edb52
mov dword [rsp + 0x5398], 1
jmp 0x1801edb5d
mov dword [rsp + 0x5398], 0
mov eax, dword [rsp + 0x5398]
mov dword [rsp + 0x539c], eax
jmp 0x1801edc55
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x98]
lea rax, [rcx + rax*2]
cmp qword [rsp + 0x98], rax
jb 0x1801edc3c
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
shl rax, 1
mov rcx, qword [rsp + 0x98]
sub rcx, rax
mov rax, rcx
movzx eax, word [rax]
mov ecx, 2
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801edc3c
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0x100], 1
je 0x1801edc2f
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
shl rax, 1
mov rcx, qword [rsp + 0x98]
sub rcx, rax
mov rax, rcx
movzx eax, word [rax + 2]
mov ecx, 2
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801edc3c
mov dword [rsp + 0x53a0], 1
jmp 0x1801edc47
mov dword [rsp + 0x53a0], 0
mov eax, dword [rsp + 0x53a0]
mov dword [rsp + 0x539c], eax
cmp dword [rsp + 0x539c], 0
jne 0x1801edc78
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x1801edab7
mov eax, 2
imul rax, rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x98]
movzx eax, word [rcx + rax]
cmp eax, 0xd
jne 0x1801edcea
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 1
je 0x1801edcb4
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 2
jne 0x1801edcea
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801edcea
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
cmp eax, 0xa
jne 0x1801edcea
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x1801eddbf
cmp qword [rsp + 0x48], 0
je 0x1801eddbf
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801edd86
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
mov dword [rsp + 0x52ec], eax
cmp dword [rsp + 0x52ec], 0xff
jbe 0x1801edd37
mov dword [rsp + 0x52ec], 0xff
xor edx, edx
mov eax, dword [rsp + 0x52ec]
mov ecx, 8
div ecx
mov eax, eax
mov rcx, qword [rsp + 0x48]
movzx eax, byte [rcx + rax]
mov ecx, dword [rsp + 0x52ec]
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, edx
and eax, ecx
test eax, eax
je 0x1801edd6d
jmp 0x1801edd86
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x1801edcfb
mov rax, qword [rsp + 0x2a8]
movzx eax, word [rax + 0x80]
test eax, eax
jne 0x1801eddbf
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa8]
cmp qword [rsp + 0x98], rax
jb 0x1801eddbf
mov dword [rsp + 0x40], 0
jmp 0x1801ee554
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa8]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x2a8]
movzx eax, word [rax + 0x80]
test eax, eax
jne 0x1801ee008
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x50]
movzx ecx, word [rcx + 0x7e]
cmp rax, rcx
jge 0x1801ede21
mov dword [rsp + 0x40], 0
jmp 0x1801ee554
cmp dword [rsp + 0x60], 0
je 0x1801ede35
mov dword [rsp + 0x53a4], 1
jmp 0x1801ede40
mov dword [rsp + 0x53a4], 0
movsxd rax, dword [rsp + 0x53a4]
mov rcx, qword [rsp + 0x98]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x52f0], rax
cmp dword [rsp + 0x64], 0
je 0x1801ee008
mov rax, qword [rsp + 0xa0]
cmp qword [rsp + 0x52f0], rax
jbe 0x1801ee008
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov qword [rsp + 0x52f8], rax
cmp qword [rsp + 0x52f8], 0x7d0
jb 0x1801edec9
cmp dword [rsp + 0x58], 0
jne 0x1801ee008
cmp qword [rsp + 0x52f8], 0x1e8480
jae 0x1801ee008
movzx eax, word [rsp + 0x74]
movzx ecx, word [rsp + 0x78]
cmp eax, ecx
je 0x1801edf48
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x52f0], rax
jae 0x1801edf43
mov rax, qword [rsp + 0x52f0]
movzx eax, word [rax]
mov dword [rsp + 0x5300], eax
mov rax, qword [rsp + 0x52f0]
add rax, 2
mov qword [rsp + 0x52f0], rax
movzx eax, word [rsp + 0x74]
cmp dword [rsp + 0x5300], eax
je 0x1801edf2b
movzx eax, word [rsp + 0x78]
cmp dword [rsp + 0x5300], eax
jne 0x1801edf41
mov rax, qword [rsp + 0x52f0]
sub rax, 2
mov qword [rsp + 0x52f0], rax
jmp 0x1801edf43
jmp 0x1801eded7
jmp 0x1801edfd9
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x52f0], rax
jae 0x1801edfd9
mov rax, qword [rsp + 0x52f0]
movzx eax, word [rax]
mov dword [rsp + 0x53a8], eax
movzx eax, word [rsp + 0x74]
mov dword [rsp + 0x53ac], eax
mov rax, qword [rsp + 0x52f0]
add rax, 2
mov qword [rsp + 0x52f0], rax
mov eax, dword [rsp + 0x53ac]
cmp dword [rsp + 0x53a8], eax
jne 0x1801edfa9
mov dword [rsp + 0x53b0], 1
jmp 0x1801edfb4
mov dword [rsp + 0x53b0], 0
cmp dword [rsp + 0x53b0], 0
je 0x1801edfd4
mov rax, qword [rsp + 0x52f0]
sub rax, 2
mov qword [rsp + 0x52f0], rax
jmp 0x1801edfd9
jmp 0x1801edf48
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x52f0], rax
jb 0x1801edff8
mov dword [rsp + 0x40], 0
jmp 0x1801ee554
mov rax, qword [rsp + 0x52f0]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x98], rax
jbe 0x1801ee027
mov dword [rsp + 0x40], 0
jmp 0x1801ee554
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x98]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov qword [rsp + 0x110], rax
mov eax, dword [rsp + 0x148]
or eax, 1
mov dword [rsp + 0x148], eax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x98]
mov qword [rax + 0xb8], rcx
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x98]
mov qword [rax + 0xc0], rcx
mov eax, dword [rsp + 0xc4]
mov ecx, dword [rsp + 0x5420]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x2a8]
mov dword [rcx + 0xec], eax
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0x48], 0
mov rax, qword [rsp + 0x2a8]
mov qword [rax + 0x78], 0
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0xf4], 0
mov rax, qword [rsp + 0x5428]
add rax, 0x50
mov rcx, qword [rsp + 0x2a8]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x50]
movzx ecx, word [rcx + 0x80]
mov word [rsp + 0x20], cx
mov rcx, qword [rsp + 0x5428]
movzx r9d, word [rcx + 0x4a]
mov r8, rax
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rax + 0x90]
mov rcx, qword [rsp + 0x98]
call fcn.1801ef3f0
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0x4c], 0
je 0x1801ee17f
cmp qword [rsp + 0xa8], 0
jne 0x1801ee17f
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xb8]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb0], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x53b4], eax
cmp dword [rsp + 0x53b4], 0xfffffc1e
jg 0x1801ee1d8
cmp dword [rsp + 0x53b4], 0xfffffc1e
je 0x1801ee1f4
cmp dword [rsp + 0x53b4], 0xfffffc1b
je 0x1801ee2c9
cmp dword [rsp + 0x53b4], 0xfffffc1c
je 0x1801ee25a
cmp dword [rsp + 0x53b4], 0xfffffc1d
je 0x1801ee225
jmp 0x1801ee2d6
cmp dword [rsp + 0x53b4], 0xfffffc1f
je 0x1801ee25a
cmp dword [rsp + 0x53b4], 0
je 0x1801ee25a
jmp 0x1801ee2d6
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x52d0], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x2a8]
mov ecx, dword [rcx + 0xf4]
mov dword [rax + 0xf8], ecx
jmp 0x1801ee2db
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x98]
cmp qword [rax + 0xe0], rcx
jbe 0x1801ee25a
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xe0]
mov qword [rsp + 0x52d0], rax
jmp 0x1801ee2db
mov rax, qword [rsp + 0x2a8]
mov dword [rax + 0xf8], 0
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x52d0], rax
cmp dword [rsp + 0xb8], 0
je 0x1801ee2c7
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x52d0], rax
jae 0x1801ee2c7
mov rax, qword [rsp + 0x52d0]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801ee2c7
mov rax, qword [rsp + 0x52d0]
add rax, 2
mov qword [rsp + 0x52d0], rax
jmp 0x1801ee2db
mov dword [rsp + 0x40], 0
jmp 0x1801ee554
jmp 0x1801ee554
mov dword [rsp + 0x40], 0
cmp dword [rsp + 0x5c], 0
je 0x1801ee458
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 0
je 0x1801ee391
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xa8]
cmp qword [rsp + 0x98], rax
jae 0x1801ee373
mov rax, qword [rsp + 0x2a8]
add rax, 0x100
mov ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x20], ecx
mov r9, rax
mov rax, qword [rsp + 0x2a8]
mov r8, qword [rax + 0xa8]
mov rax, qword [rsp + 0x2a8]
mov edx, dword [rax + 0xfc]
mov rcx, qword [rsp + 0x98]
call fcn.180018e00
test eax, eax
je 0x1801ee373
mov dword [rsp + 0x53b8], 1
jmp 0x1801ee37e
mov dword [rsp + 0x53b8], 0
mov eax, dword [rsp + 0x53b8]
mov dword [rsp + 0x53bc], eax
jmp 0x1801ee449
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x100]
shl rax, 1
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0xa8]
sub rcx, rax
mov rax, rcx
cmp qword [rsp + 0x98], rax
ja 0x1801ee430
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
mov ecx, 2
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801ee430
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0x100], 1
je 0x1801ee423
mov rax, qword [rsp + 0x98]
movzx eax, word [rax + 2]
mov ecx, 2
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x2a8]
movzx ecx, word [rdx + rcx + 0x104]
cmp eax, ecx
jne 0x1801ee430
mov dword [rsp + 0x53c0], 1
jmp 0x1801ee43b
mov dword [rsp + 0x53c0], 0
mov eax, dword [rsp + 0x53c0]
mov dword [rsp + 0x53bc], eax
cmp dword [rsp + 0x53bc], 0
je 0x1801ee458
jmp 0x1801ee554
mov rax, qword [rsp + 0x52d0]
mov qword [rsp + 0x98], rax
cmp dword [rsp + 0x58], 0
jne 0x1801ee481
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jbe 0x1801ee486
jmp 0x1801ee554
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x5418]
lea rax, [rax + rcx*2]
cmp qword [rsp + 0x98], rax
jbe 0x1801ee53c
mov eax, 2
imul rax, rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x98]
movzx eax, word [rcx + rax]
cmp eax, 0xd
jne 0x1801ee53c
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0x98], rax
jae 0x1801ee53c
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
cmp eax, 0xa
jne 0x1801ee53c
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x60]
and eax, 0x800
test eax, eax
jne 0x1801ee53c
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 1
je 0x1801ee528
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0xfc], 2
je 0x1801ee528
mov rax, qword [rsp + 0x2a8]
cmp dword [rax + 0x100], 2
jne 0x1801ee53c
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x2a8]
mov qword [rax + 0xc8], 0
jmp 0x1801ed258
cmp dword [rsp + 0xb8], 0
je 0x1801ee702
mov rax, qword [rsp + 0x90]
cmp qword [rsp + 0x88], rax
je 0x1801ee702
cmp dword [rsp + 0x40], 0
je 0x1801ee58a
cmp dword [rsp + 0x40], 0xfffffffe
jne 0x1801ee702
mov rax, qword [rsp + 0x88]
add rax, 2
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x90]
cmp qword [rsp + 0x98], rax
jae 0x1801ee5dd
mov rax, qword [rsp + 0x98]
movzx eax, word [rax]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x1801ee5dd
mov rax, qword [rsp + 0x98]
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x1801ee59e
mov rax, qword [rsp + 0x90]
cmp qword [rsp + 0x98], rax
jb 0x1801ee5fc
mov dword [rsp + 0x40], 0
jmp 0x1801ee702
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x98]
mov qword [rax + 0xa0], rcx
mov rax, qword [rsp + 0x5428]
add rax, 0x40
mov rcx, qword [rsp + 0x5408]
mov rdx, qword [rsp + 0x98]
sub rdx, rcx
mov rcx, rdx
sar rcx, 1
mov rdx, qword [rsp + 0x5410]
sub rdx, rcx
mov rcx, rdx
mov r8, rax
mov rdx, rcx
mov rcx, qword [rsp + 0x98]
call fcn.180007b60
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
jne 0x1801ee69d
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x88]
mov qword [rax + 0xa8], rcx
mov dword [rsp + 0xc4], 1
jmp 0x1801ed22d
cmp dword [rsp + 0x40], 0
jge 0x1801ee6fd
mov rax, qword [rsp + 0x5428]
mov rax, qword [rax + 0x40]
mov rcx, qword [rsp + 0x98]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x88]
mov qword [rax + 0xa8], rcx
mov rax, qword [rsp + 0x98]
cmp qword [rsp + 0x88], rax
jbe 0x1801ee6fd
mov dword [rsp + 0xc4], 3
jmp 0x1801ed22d
jmp 0x1801ee58a
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0x30]
cmp qword [rax + 0x20], rcx
je 0x1801ee73f
mov rax, qword [rsp + 0x2a8]
mov rdx, qword [rax + 0x10]
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rax + 0x20]
mov rax, qword [rsp + 0x2a8]
call qword [rax + 8]
mov rax, qword [rsp + 0x5428]
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x18], rcx
mov rax, qword [rsp + 0x5428]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0xc8]
mov qword [rax + 0x28], rcx
mov rax, qword [rsp + 0x5428]
mov byte [rax + 0x48], 0
cmp dword [rsp + 0x40], 1
jne 0x1801ee96e
mov rax, qword [rsp + 0x5428]
movzx eax, word [rax + 0x4a]
shl eax, 1
mov rcx, qword [rsp + 0x2a8]
cmp dword [rcx + 0x78], eax
jl 0x1801ee7aa
mov dword [rsp + 0x53c4], 0
jmp 0x1801ee7c3
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax + 0x78]
cdq
sub eax, edx
sar eax, 1
inc eax
mov dword [rsp + 0x53c4], eax
mov rax, qword [rsp + 0x5428]
mov ecx, dword [rsp + 0x53c4]
mov dword [rax + 0x4c], ecx
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x98]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x5408]
mov rax, qword [rax + 0xb8]
sub rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x30], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0xb0]
cmp qword [rax + 0xc0], rcx
jbe 0x1801ee85c
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xc0]
mov qword [rsp + 0x53c8], rax
jmp 0x1801ee873
mov rax, qword [rsp + 0x2a8]
mov rax, qword [rax + 0xb0]
mov qword [rsp + 0x53c8], rax
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x53c8]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x38], rax
mov eax, dword [rsp + 0x5420]
and eax, 0x4000
test eax, eax
je 0x1801ee94a
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x5410]
add rcx, rax
mov rax, rcx
shl rax, 1
mov qword [rsp + 0x5410], rax
mov rax, qword [rsp + 0x5428]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rsp + 0x5410]
mov rax, qword [rsp + 0x5428]
call qword [rax]
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x5428]
cmp qword [rax + 0x20], 0
jne 0x1801ee90d
mov eax, 0xffffffd0
jmp 0x1801eeac6
mov r8, qword [rsp + 0x5410]
mov rdx, qword [rsp + 0x5408]
mov rax, qword [rsp + 0x5428]
mov rcx, qword [rax + 0x20]
call fcn.18000cf00
mov rax, qword [rsp + 0x5428]
movzx eax, byte [rax + 0x49]
or eax, 1
mov rcx, qword [rsp + 0x5428]
mov byte [rcx + 0x49], al
jmp 0x1801ee95e
mov rax, qword [rsp + 0x5428]
mov rcx, qword [rsp + 0x5408]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x5428]
mov eax, dword [rax + 0x4c]
jmp 0x1801eeac6
mov rax, qword [rsp + 0x5428]
mov rcx, qword [rsp + 0x2a8]
mov rcx, qword [rcx + 0xd0]
mov qword [rax + 0x28], rcx
cmp dword [rsp + 0x40], 0
je 0x1801ee9ab
cmp dword [rsp + 0x40], 0xfffffffe
je 0x1801ee9ab
mov rax, qword [rsp + 0x5428]
mov ecx, dword [rsp + 0x40]
mov dword [rax + 0x4c], ecx
jmp 0x1801eeabb
cmp qword [rsp + 0xb0], 0
je 0x1801eeaac
mov rax, qword [rsp + 0x5428]
mov rcx, qword [rsp + 0x5408]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0xb0]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x5428]
mov qword [rdx + rcx + 0x50], rax
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x5428]
mov qword [rdx + rcx + 0x50], rax
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0xb0]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0xa8]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x30], rax
mov rax, qword [rsp + 0x5408]
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov rcx, qword [rsp + 0x5428]
mov qword [rcx + 0x38], rax
mov rax, qword [rsp + 0x5428]
mov dword [rax + 0x4c], 0xfffffffe
jmp 0x1801eeabb
mov rax, qword [rsp + 0x5428]
mov dword [rax + 0x4c], 0xffffffff
mov rax, qword [rsp + 0x5428]
mov eax, dword [rax + 0x4c]
mov rdi, rax
mov rcx, rsp
lea rdx, [0x1804dbd20]
call fcn.180014e20
mov rax, rdi
mov rcx, qword [rsp + 0x53d0]
xor rcx, rsp
call fcn.18000ce90
add rsp, 0x53e8
pop rdi
pop rsi
ret