Function at 0x1801c9670
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x250
lea rdi, [rsp + 0x20]
mov ecx, 0x8c
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x260]
mov rax, qword [0x1803dc740]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov rax, qword [rsp + 0x260]
mov rax, qword [rax + 0xa0]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x260]
mov rax, qword [rax + 0x98]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x260]
mov qword [rax + 0xd8], 0
cmp dword [rsp + 0x268], 0
jge 0x1801c9703
mov eax, dword [rsp + 0x268]
neg eax
mov dword [rsp + 0x238], eax
jmp 0x1801c9711
mov eax, dword [rsp + 0x268]
mov dword [rsp + 0x238], eax
mov eax, dword [rsp + 0x238]
and eax, 0xffff
mov dword [rsp + 0x64], eax
xor edx, edx
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9759
lea r8, [rsp + 0x54]
lea rdx, [0x1802e0648]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c975e
jmp 0x1801ca101
mov dword [rsp + 0x24], 2
movzx eax, word [rsp + 0x54]
cmp eax, 0x5a4d
jne 0x1801ca0ed
xor eax, eax
test eax, eax
jne 0x1801c9776
movzx eax, word [rsp + 0x56]
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c97b9
lea r8, [rsp + 0x74]
lea rdx, [0x1802e0660]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c97be
jmp 0x1801ca101
mov dword [rsp + 0x24], 2
movzx eax, word [rsp + 0x74]
cmp eax, 0x454e
jne 0x1801c9ac3
movzx eax, word [rsp + 0x56]
movzx ecx, word [rsp + 0x76]
add eax, ecx
mov dword [rsp + 0x84], eax
xor eax, eax
mov word [rsp + 0x8c], ax
mov dword [rsp + 0x90], 0
xor eax, eax
test eax, eax
jne 0x1801c97fe
mov edx, dword [rsp + 0x84]
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9843
movzx eax, word [rsp + 0x78]
movzx ecx, word [rsp + 0x76]
sub eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180168260
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9848
jmp 0x1801ca101
mov rcx, qword [rsp + 0x38]
call fcn.180168800
mov word [rsp + 0x88], ax
movzx eax, word [rsp + 0x88]
cmp eax, 0x10
jle 0x1801c987a
xor eax, eax
test eax, eax
jne 0x1801c9867
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
mov rcx, qword [rsp + 0x38]
call fcn.180168800
mov word [rsp + 0x94], ax
movzx eax, word [rsp + 0x94]
test eax, eax
jne 0x1801c989d
jmp 0x1801c9921
mov rcx, qword [rsp + 0x38]
call fcn.180168800
mov word [rsp + 0x98], ax
movzx eax, word [rsp + 0x94]
cmp eax, 0x8008
jne 0x1801c98fa
movzx eax, word [rsp + 0x98]
mov word [rsp + 0x8c], ax
mov rcx, qword [rsp + 0x38]
call fcn.180168030
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x38]
mov rdx, qword [rdx + 0x40]
mov rcx, qword [rcx + 0x38]
sub rcx, rdx
lea eax, [rax + rcx + 4]
mov dword [rsp + 0x90], eax
jmp 0x1801c9921
movzx eax, word [rsp + 0x98]
imul eax, eax, 0xc
add eax, 4
cdqe
mov rcx, qword [rsp + 0x38]
add rax, qword [rcx + 0x38]
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x38], rax
jmp 0x1801c987a
mov rcx, qword [rsp + 0x38]
call fcn.180168440
movzx eax, word [rsp + 0x8c]
test eax, eax
je 0x1801c9941
cmp dword [rsp + 0x90], 0
jne 0x1801c9954
xor eax, eax
test eax, eax
jne 0x1801c9941
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
movzx eax, word [rsp + 0x8c]
imul eax, eax, 0x76
mov rcx, qword [rsp + 0x38]
cmp eax, dword [rcx + 8]
jbe 0x1801c997c
xor eax, eax
test eax, eax
jne 0x1801c9969
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
movzx eax, word [rsp + 0x8c]
mov rcx, qword [rsp + 0x260]
mov dword [rcx], eax
cmp dword [rsp + 0x268], 0
jge 0x1801c999d
jmp 0x1801ca101
movzx eax, word [rsp + 0x8c]
cmp dword [rsp + 0x64], eax
jl 0x1801c99b8
mov dword [rsp + 0x24], 6
jmp 0x1801ca101
lea r8, [rsp + 0x24]
mov edx, 0xb8
mov rcx, qword [rsp + 0x40]
call fcn.180162370
mov rcx, qword [rsp + 0x260]
mov qword [rcx + 0xd8], rax
cmp dword [rsp + 0x24], 0
je 0x1801c99e7
jmp 0x1801ca101
imul eax, dword [rsp + 0x64], 0xc
mov ecx, dword [rsp + 0x90]
add ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9a28
mov edx, 0xc
mov rcx, qword [rsp + 0x38]
call fcn.180168260
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9a2d
jmp 0x1801ca0ed
mov rcx, qword [rsp + 0x38]
call fcn.180168800
movzx eax, ax
movzx ecx, word [rsp + 0x88]
shl eax, cl
mov rcx, qword [rsp + 0x260]
mov rcx, qword [rcx + 0xd8]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x38]
call fcn.180168800
movzx eax, ax
movzx ecx, word [rsp + 0x88]
shl eax, cl
mov rcx, qword [rsp + 0x260]
mov rcx, qword [rcx + 0xd8]
mov dword [rcx + 0xa8], eax
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x38]
add rax, 8
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x38], rax
mov rcx, qword [rsp + 0x38]
call fcn.180168440
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x260]
mov rcx, qword [rax + 0xd8]
call fcn.1801c9490
mov dword [rsp + 0x24], eax
jmp 0x1801ca0b6
movzx eax, word [rsp + 0x74]
cmp eax, 0x4550
jne 0x1801ca0b6
xor eax, eax
test eax, eax
jne 0x1801c9ad3
movzx eax, word [rsp + 0x56]
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9b19
lea r8, [rsp + 0xa8]
lea rdx, [0x1802e0678]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9b1e
jmp 0x1801ca101
xor eax, eax
test eax, eax
jne 0x1801c9b1e
cmp dword [rsp + 0xa8], 0x4550
jne 0x1801c9b5e
movzx eax, word [rsp + 0xac]
cmp eax, 0x14c
jne 0x1801c9b5e
movzx eax, word [rsp + 0xb0]
cmp eax, 0xe0
jne 0x1801c9b5e
movzx eax, word [rsp + 0xb2]
cmp eax, 0x10b
je 0x1801c9b71
xor eax, eax
test eax, eax
jne 0x1801c9b5e
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
mov rax, qword [rsp + 0x260]
mov dword [rax], 0
xor eax, eax
mov word [rsp + 0x220], ax
jmp 0x1801c9b9e
movzx eax, word [rsp + 0x220]
inc ax
mov word [rsp + 0x220], ax
movzx eax, word [rsp + 0x220]
movzx ecx, word [rsp + 0xae]
cmp eax, ecx
jge 0x1801c9bf5
lea r8, [rsp + 0xd8]
lea rdx, [0x1802e06b0]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9bdb
jmp 0x1801ca101
xor eax, eax
test eax, eax
jne 0x1801c9bdb
mov eax, dword [rsp + 0xe0]
cmp dword [rsp + 0xb4], eax
jne 0x1801c9bf3
jmp 0x1801c9c08
jmp 0x1801c9b8b
xor eax, eax
test eax, eax
jne 0x1801c9bf5
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
xor eax, eax
test eax, eax
jne 0x1801c9c08
mov edx, dword [rsp + 0xe8]
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9c4e
lea r8, [rsp + 0x108]
lea rdx, [0x1802e06d0]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9c53
jmp 0x1801ca101
mov eax, dword [rsp + 0xe8]
mov dword [rsp + 0x214], eax
xor eax, eax
mov word [rsp + 0x220], ax
jmp 0x1801c9c80
movzx eax, word [rsp + 0x220]
inc ax
mov word [rsp + 0x220], ax
movzx eax, word [rsp + 0x220]
movzx ecx, word [rsp + 0x114]
movzx edx, word [rsp + 0x116]
add ecx, edx
cmp eax, ecx
jge 0x1801ca0b6
movzx eax, word [rsp + 0x220]
mov ecx, dword [rsp + 0x214]
lea eax, [rcx + rax*8 + 0x10]
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9cf0
lea r8, [rsp + 0x198]
lea rdx, [0x1802e06f0]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9cf5
jmp 0x1801ca101
mov eax, dword [rsp + 0x19c]
and eax, 0x80000000
test eax, eax
jne 0x1801c9d12
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
mov eax, dword [rsp + 0x19c]
btr eax, 0x1f
mov dword [rsp + 0x19c], eax
mov eax, dword [rsp + 0x19c]
mov ecx, dword [rsp + 0xe8]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x218], eax
mov eax, dword [rsp + 0x19c]
mov ecx, dword [rsp + 0xe8]
add ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9d8a
lea r8, [rsp + 0x138]
lea rdx, [0x1802e06d0]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9d8f
jmp 0x1801ca101
xor eax, eax
mov word [rsp + 0x224], ax
jmp 0x1801c9dae
movzx eax, word [rsp + 0x224]
inc ax
mov word [rsp + 0x224], ax
movzx eax, word [rsp + 0x224]
movzx ecx, word [rsp + 0x144]
movzx edx, word [rsp + 0x146]
add ecx, edx
cmp eax, ecx
jge 0x1801ca0b1
movzx eax, word [rsp + 0x224]
mov ecx, dword [rsp + 0x218]
lea eax, [rcx + rax*8 + 0x10]
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9e1e
lea r8, [rsp + 0x1b8]
lea rdx, [0x1802e06f0]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9e23
jmp 0x1801ca101
mov eax, dword [rsp + 0x1bc]
and eax, 0x80000000
test eax, eax
jne 0x1801c9e40
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
mov eax, dword [rsp + 0x1bc]
btr eax, 0x1f
mov dword [rsp + 0x1bc], eax
mov eax, dword [rsp + 0x1bc]
mov ecx, dword [rsp + 0xe8]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x21c], eax
mov eax, dword [rsp + 0x1bc]
mov ecx, dword [rsp + 0xe8]
add ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9eb8
lea r8, [rsp + 0x168]
lea rdx, [0x1802e06d0]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9ebd
jmp 0x1801ca101
xor eax, eax
mov word [rsp + 0x228], ax
jmp 0x1801c9edc
movzx eax, word [rsp + 0x228]
inc ax
mov word [rsp + 0x228], ax
movzx eax, word [rsp + 0x228]
movzx ecx, word [rsp + 0x174]
movzx edx, word [rsp + 0x176]
add ecx, edx
cmp eax, ecx
jge 0x1801ca0ac
movzx eax, word [rsp + 0x228]
mov ecx, dword [rsp + 0x21c]
lea eax, [rcx + rax*8 + 0x10]
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9f4c
lea r8, [rsp + 0x1d8]
lea rdx, [0x1802e06f0]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9f51
jmp 0x1801ca101
mov eax, dword [rsp + 0x1bc]
and eax, 0x80000000
test eax, eax
je 0x1801c9f6e
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
cmp dword [rsp + 0x198], 8
jne 0x1801ca0a7
mov eax, dword [rsp + 0x1dc]
mov ecx, dword [rsp + 0x214]
add ecx, eax
mov eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.180167f60
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801c9fc9
lea r8, [rsp + 0x1f8]
lea rdx, [0x1802e0700]
mov rcx, qword [rsp + 0x38]
call fcn.180169150
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801c9fce
jmp 0x1801ca101
xor eax, eax
test eax, eax
jne 0x1801c9fce
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
cmp dword [rsp + 0x64], eax
jne 0x1801ca091
lea r8, [rsp + 0x24]
mov edx, 0xb8
mov rcx, qword [rsp + 0x40]
call fcn.180162370
mov rcx, qword [rsp + 0x260]
mov qword [rcx + 0xd8], rax
cmp dword [rsp + 0x24], 0
je 0x1801ca017
jmp 0x1801ca101
mov eax, dword [rsp + 0x1f8]
mov ecx, dword [rsp + 0xe8]
add ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0xe0]
mov rcx, qword [rsp + 0x260]
mov rcx, qword [rcx + 0xd8]
mov dword [rcx], eax
mov rax, qword [rsp + 0x260]
mov rax, qword [rax + 0xd8]
mov ecx, dword [rsp + 0x1fc]
mov dword [rax + 0xa8], ecx
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x260]
mov rcx, qword [rax + 0xd8]
call fcn.1801c9490
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801ca08b
xor eax, eax
test eax, eax
jne 0x1801ca081
jmp 0x1801ca0ed
xor eax, eax
test eax, eax
jne 0x1801ca08b
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
inc eax
mov rcx, qword [rsp + 0x260]
mov dword [rcx], eax
jmp 0x1801c9ec9
jmp 0x1801c9d9b
jmp 0x1801c9c6d
mov rax, qword [rsp + 0x260]
cmp dword [rax], 0
jne 0x1801ca0d3
xor eax, eax
test eax, eax
jne 0x1801ca0c3
mov dword [rsp + 0x24], 3
jmp 0x1801ca101
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
cmp dword [rsp + 0x64], eax
jl 0x1801ca0ed
mov dword [rsp + 0x24], 6
jmp 0x1801ca101
cmp dword [rsp + 0x24], 0
je 0x1801ca101
mov rcx, qword [rsp + 0x260]
call fcn.1801c93b0
mov eax, dword [rsp + 0x24]
mov edi, eax
mov rcx, rsp
lea rdx, [0x1802e0c00]
call fcn.180220850
mov eax, edi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.18021fab0
add rsp, 0x250
pop rdi
ret