Function at 0x1801cf6e0
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 [0x180371940]
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 0x1801cf773
mov eax, dword [rsp + 0x268]
neg eax
mov dword [rsp + 0x238], eax
jmp 0x1801cf781
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cf7c9
lea r8, [rsp + 0x54]
lea rdx, [0x180281fc8]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cf7ce
jmp 0x1801d0171
mov dword [rsp + 0x24], 2
movzx eax, word [rsp + 0x54]
cmp eax, 0x5a4d
jne 0x1801d015d
xor eax, eax
test eax, eax
jne 0x1801cf7e6
movzx eax, word [rsp + 0x56]
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cf829
lea r8, [rsp + 0x74]
lea rdx, [0x180281fe0]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cf82e
jmp 0x1801d0171
mov dword [rsp + 0x24], 2
movzx eax, word [rsp + 0x74]
cmp eax, 0x454e
jne 0x1801cfb33
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 0x1801cf86e
mov edx, dword [rsp + 0x84]
mov rcx, qword [rsp + 0x38]
call fcn.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cf8b3
movzx eax, word [rsp + 0x78]
movzx ecx, word [rsp + 0x76]
sub eax, ecx
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.18016e2d0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cf8b8
jmp 0x1801d0171
mov rcx, qword [rsp + 0x38]
call fcn.18016e870
mov word [rsp + 0x88], ax
movzx eax, word [rsp + 0x88]
cmp eax, 0x10
jle 0x1801cf8ea
xor eax, eax
test eax, eax
jne 0x1801cf8d7
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
mov rcx, qword [rsp + 0x38]
call fcn.18016e870
mov word [rsp + 0x94], ax
movzx eax, word [rsp + 0x94]
test eax, eax
jne 0x1801cf90d
jmp 0x1801cf991
mov rcx, qword [rsp + 0x38]
call fcn.18016e870
mov word [rsp + 0x98], ax
movzx eax, word [rsp + 0x94]
cmp eax, 0x8008
jne 0x1801cf96a
movzx eax, word [rsp + 0x98]
mov word [rsp + 0x8c], ax
mov rcx, qword [rsp + 0x38]
call fcn.18016e0a0
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 0x1801cf991
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 0x1801cf8ea
mov rcx, qword [rsp + 0x38]
call fcn.18016e4b0
movzx eax, word [rsp + 0x8c]
test eax, eax
je 0x1801cf9b1
cmp dword [rsp + 0x90], 0
jne 0x1801cf9c4
xor eax, eax
test eax, eax
jne 0x1801cf9b1
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
movzx eax, word [rsp + 0x8c]
imul eax, eax, 0x76
mov rcx, qword [rsp + 0x38]
cmp eax, dword [rcx + 8]
jbe 0x1801cf9ec
xor eax, eax
test eax, eax
jne 0x1801cf9d9
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
movzx eax, word [rsp + 0x8c]
mov rcx, qword [rsp + 0x260]
mov dword [rcx], eax
cmp dword [rsp + 0x268], 0
jge 0x1801cfa0d
jmp 0x1801d0171
movzx eax, word [rsp + 0x8c]
cmp dword [rsp + 0x64], eax
jl 0x1801cfa28
mov dword [rsp + 0x24], 6
jmp 0x1801d0171
lea r8, [rsp + 0x24]
mov edx, 0xb8
mov rcx, qword [rsp + 0x40]
call fcn.1801683e0
mov rcx, qword [rsp + 0x260]
mov qword [rcx + 0xd8], rax
cmp dword [rsp + 0x24], 0
je 0x1801cfa57
jmp 0x1801d0171
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cfa98
mov edx, 0xc
mov rcx, qword [rsp + 0x38]
call fcn.18016e2d0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cfa9d
jmp 0x1801d015d
mov rcx, qword [rsp + 0x38]
call fcn.18016e870
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.18016e870
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.18016e4b0
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x260]
mov rcx, qword [rax + 0xd8]
call fcn.1801cf500
mov dword [rsp + 0x24], eax
jmp 0x1801d0126
movzx eax, word [rsp + 0x74]
cmp eax, 0x4550
jne 0x1801d0126
xor eax, eax
test eax, eax
jne 0x1801cfb43
movzx eax, word [rsp + 0x56]
mov edx, eax
mov rcx, qword [rsp + 0x38]
call fcn.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cfb89
lea r8, [rsp + 0xa8]
lea rdx, [0x180281ff8]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cfb8e
jmp 0x1801d0171
xor eax, eax
test eax, eax
jne 0x1801cfb8e
cmp dword [rsp + 0xa8], 0x4550
jne 0x1801cfbce
movzx eax, word [rsp + 0xac]
cmp eax, 0x14c
jne 0x1801cfbce
movzx eax, word [rsp + 0xb0]
cmp eax, 0xe0
jne 0x1801cfbce
movzx eax, word [rsp + 0xb2]
cmp eax, 0x10b
je 0x1801cfbe1
xor eax, eax
test eax, eax
jne 0x1801cfbce
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
mov rax, qword [rsp + 0x260]
mov dword [rax], 0
xor eax, eax
mov word [rsp + 0x220], ax
jmp 0x1801cfc0e
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 0x1801cfc65
lea r8, [rsp + 0xd8]
lea rdx, [0x180282030]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cfc4b
jmp 0x1801d0171
xor eax, eax
test eax, eax
jne 0x1801cfc4b
mov eax, dword [rsp + 0xe0]
cmp dword [rsp + 0xb4], eax
jne 0x1801cfc63
jmp 0x1801cfc78
jmp 0x1801cfbfb
xor eax, eax
test eax, eax
jne 0x1801cfc65
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
xor eax, eax
test eax, eax
jne 0x1801cfc78
mov edx, dword [rsp + 0xe8]
mov rcx, qword [rsp + 0x38]
call fcn.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cfcbe
lea r8, [rsp + 0x108]
lea rdx, [0x180282050]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cfcc3
jmp 0x1801d0171
mov eax, dword [rsp + 0xe8]
mov dword [rsp + 0x214], eax
xor eax, eax
mov word [rsp + 0x220], ax
jmp 0x1801cfcf0
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 0x1801d0126
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cfd60
lea r8, [rsp + 0x198]
lea rdx, [0x180282070]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cfd65
jmp 0x1801d0171
mov eax, dword [rsp + 0x19c]
and eax, 0x80000000
test eax, eax
jne 0x1801cfd82
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cfdfa
lea r8, [rsp + 0x138]
lea rdx, [0x180282050]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cfdff
jmp 0x1801d0171
xor eax, eax
mov word [rsp + 0x224], ax
jmp 0x1801cfe1e
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 0x1801d0121
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cfe8e
lea r8, [rsp + 0x1b8]
lea rdx, [0x180282070]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cfe93
jmp 0x1801d0171
mov eax, dword [rsp + 0x1bc]
and eax, 0x80000000
test eax, eax
jne 0x1801cfeb0
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cff28
lea r8, [rsp + 0x168]
lea rdx, [0x180282050]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cff2d
jmp 0x1801d0171
xor eax, eax
mov word [rsp + 0x228], ax
jmp 0x1801cff4c
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 0x1801d011c
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801cffbc
lea r8, [rsp + 0x1d8]
lea rdx, [0x180282070]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801cffc1
jmp 0x1801d0171
mov eax, dword [rsp + 0x1bc]
and eax, 0x80000000
test eax, eax
je 0x1801cffde
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
cmp dword [rsp + 0x198], 8
jne 0x1801d0117
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.18016dfd0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1801d0039
lea r8, [rsp + 0x1f8]
lea rdx, [0x180282080]
mov rcx, qword [rsp + 0x38]
call fcn.18016f1c0
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801d003e
jmp 0x1801d0171
xor eax, eax
test eax, eax
jne 0x1801d003e
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
cmp dword [rsp + 0x64], eax
jne 0x1801d0101
lea r8, [rsp + 0x24]
mov edx, 0xb8
mov rcx, qword [rsp + 0x40]
call fcn.1801683e0
mov rcx, qword [rsp + 0x260]
mov qword [rcx + 0xd8], rax
cmp dword [rsp + 0x24], 0
je 0x1801d0087
jmp 0x1801d0171
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.1801cf500
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x1801d00fb
xor eax, eax
test eax, eax
jne 0x1801d00f1
jmp 0x1801d015d
xor eax, eax
test eax, eax
jne 0x1801d00fb
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
inc eax
mov rcx, qword [rsp + 0x260]
mov dword [rcx], eax
jmp 0x1801cff39
jmp 0x1801cfe0b
jmp 0x1801cfcdd
mov rax, qword [rsp + 0x260]
cmp dword [rax], 0
jne 0x1801d0143
xor eax, eax
test eax, eax
jne 0x1801d0133
mov dword [rsp + 0x24], 3
jmp 0x1801d0171
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
cmp dword [rsp + 0x64], eax
jl 0x1801d015d
mov dword [rsp + 0x24], 6
jmp 0x1801d0171
cmp dword [rsp + 0x24], 0
je 0x1801d0171
mov rcx, qword [rsp + 0x260]
call fcn.1801cf420
mov eax, dword [rsp + 0x24]
mov edi, eax
mov rcx, rsp
lea rdx, [0x180282580]
call fcn.180225a10
mov eax, edi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.180225d60
add rsp, 0x250
pop rdi
ret