Function at 0x1800016e0
Capabilities:
Parse pe header

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov eax, dword [0x18000407c]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
sete al
cmp dword [0x180004078], 0xa
setl dl
or dl, al
mov eax, dword [0x18000406c]
lea ebx, [rax - 1]
imul ebx, eax
test bl, 1
sete al
cmp dword [0x180004068], 0xa
mov r12, rcx
setl r8b
or r8b, al
movzx edi, word [rcx]
jmp 0x180001747
xor r15d, r15d
test dl, dl
jne 0x1800017ae
mov eax, 0x10
call fcn.1800024f0
sub rsp, rax
mov r10, rsp
mov eax, 0x10
call fcn.1800024f0
sub rsp, rax
mov rbx, rsp
mov eax, 0x10
call fcn.1800024f0
sub rsp, rax
mov rcx, rsp
mov eax, 0x10
call fcn.1800024f0
sub rsp, rax
mov rsi, rsp
cmp edi, 0x5a4d
jne 0x180001740
movsxd r15, dword [r12 + 0x3c]
cmp dword [r12 + r15], 0x4550
jne 0x180001740
test r8b, r8b
je 0x180001830
add r15, r12
test dl, dl
je 0x180001747
test r15, r15
je 0x180001898
mov eax, dword [r15 + 0x50]
lea edx, [rax + rax*4]
lea eax, [rax + rdx*2]
mov qword [r10], rax
mov dword [rbx], 0x3000
mov dword [rcx], 0x40
mov r9d, dword [rcx]
mov r8d, dword [rbx]
mov rdx, qword [r10]
sub rsp, 0x20
xor ecx, ecx
call qword [0x180004030]
add rsp, 0x20
test rax, rax
je 0x180001a48
mov r14, rax
mov r13, rax
mov qword [0x180004040], r14
movzx r8d, word [r15 + 0x14]
mov ecx, dword [r15 + r8 + 0x2c]
mov dword [rsi], 0
mov edx, dword [rsi]
cmp edx, ecx
jae 0x1800018a2
mov ebx, dword [0x18000407c]
mov edi, dword [0x180004078]
xor edx, edx
jmp 0x18000184a
jmp 0x180001830
mov eax, dword [rsi]
add rdx, 1
cmp eax, ecx
jae 0x1800018a2
cmp edi, 0xa
jl 0x180001860
lea edi, [rbx - 1]
imul edi, ebx
and edi, 1
jne 0x180001889
nop word [rax + rax]
movzx ebx, byte [r12 + rdx]
mov byte [r13 + rdx], bl
add dword [rsi], 1
mov ebx, dword [0x18000407c]
mov edi, dword [0x180004078]
cmp edi, 0xa
jl 0x180001840
lea eax, [rbx - 1]
imul eax, ebx
and eax, 1
je 0x180001840
movzx eax, byte [r12 + rdx]
mov byte [r13 + rdx], al
add dword [rsi], 1
jmp 0x180001860
mov eax, 1
jmp 0x180001ab9
cmp word [r15 + 6], 0
je 0x180001a18
lea r9, [r15 + r8]
add r9, 0x18
xor r8d, r8d
jmp 0x1800018d2
add r8, 1
movzx eax, word [r15 + 6]
cmp r8, rax
jae 0x180001a18
lea r10, [r8 + r8*4]
mov ebx, dword [r9 + r10*8 + 8]
mov edi, dword [r9 + r10*8 + 0xc]
mov dword [rsi], 0
mov eax, dword [rsi]
mov ecx, dword [0x18000407c]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete dl
cmp dword [0x180004078], 0xa
setl cl
or cl, dl
cmp eax, ebx
jae 0x1800019b0
add rdi, r14
test cl, cl
je 0x180001940
nop word cs:[rax + rax]
nop
mov byte [rdi], 0
add dword [rsi], 1
cmp dword [0x180004078], 0xa
jl 0x180001950
mov eax, dword [0x18000407c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001950
mov byte [rdi], 0
add dword [rsi], 1
jmp 0x180001920
mov eax, dword [rsi]
mov cl, 1
jmp 0x180001962
mov eax, dword [rsi]
cmp eax, ebx
jae 0x1800019b0
add rdi, 1
mov byte [rdi], 0
add dword [rsi], 1
cmp dword [0x180004078], 0xa
jl 0x180001960
nop dword [rax]
mov eax, dword [0x18000407c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x180001960
mov byte [rdi], 0
add dword [rsi], 1
mov byte [rdi], 0
add dword [rsi], 1
cmp dword [0x180004078], 0xa
jge 0x180001980
jmp 0x180001960
lea rdx, [r9 + r10*8]
add rdx, 0xc
test cl, cl
je 0x180001a10
nop dword [rax]
mov ebx, dword [r9 + r10*8 + 0x10]
mov edi, dword [r9 + r10*8 + 0x14]
mov eax, dword [rdx]
mov dword [rsi], 0
test cl, cl
je 0x180001a10
mov ecx, dword [rsi]
cmp ecx, ebx
jae 0x1800018c0
add rax, r14
add rdi, r12
xor ecx, ecx
nop dword [rax + rax]
movzx edx, byte [rdi + rcx]
mov byte [rax + rcx], dl
add dword [rsi], 1
mov edx, dword [rsi]
add rcx, 1
cmp edx, ebx
jb 0x1800019f0
jmp 0x1800018c0
mov dword [rsi], 0
jmp 0x1800019c0
cmp dword [0x180004078], 0xa
jl 0x180001a36
mov eax, dword [0x18000407c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001b10
movzx eax, word [r13]
cmp eax, 0x5a4d
jne 0x180001aca
jmp 0x180001a64
mov ecx, dword [0x18000407c]
mov eax, 2
mov edx, dword [0x180004078]
cmp edx, 0xa
jge 0x180001c1d
jmp 0x180001ab9
movsxd rax, dword [r13 + 0x3c]
cmp dword [r13 + rax], 0x4550
jne 0x180001aca
cmp dword [0x180004068], 0xa
jl 0x180001a8d
mov ecx, dword [0x18000406c]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x180001ab0
movzx ecx, word [r13 + rax + 4]
cmp ecx, 0x14c
je 0x180001ab2
movzx ecx, cx
cmp ecx, 0x8664
jne 0x180001aca
mov rax, qword [r13 + rax + 0x30]
jmp 0x180001acc
jmp 0x180001ab0
mov eax, dword [r13 + rax + 0x34]
jmp 0x180001acc
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor eax, eax
mov rdx, r14
sub rdx, rax
sub rsp, 0x20
mov rcx, r13
call fcn.180001c40
mov rcx, r13
call fcn.180001dc0
add rsp, 0x20
mov eax, dword [r15 + 0x28]
cmp dword [0x180004078], 0xa
jl 0x180001bae
mov ecx, dword [0x18000407c]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x180001bae
movzx eax, word [r13]
cmp eax, 0x5a4d
jne 0x180001b72
movsxd rax, dword [r13 + 0x3c]
cmp dword [r13 + rax], 0x4550
jne 0x180001b72
cmp dword [0x180004068], 0xa
jl 0x180001b45
mov ecx, dword [0x18000406c]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x180001b70
movzx ecx, word [r13 + rax + 4]
cmp ecx, 0x14c
je 0x180001ba7
movzx ecx, cx
cmp ecx, 0x8664
jne 0x180001b72
mov rax, qword [r13 + rax + 0x30]
jmp 0x180001b74
jmp 0x180001b70
xor eax, eax
mov rdx, r14
sub rdx, rax
sub rsp, 0x20
mov rcx, r13
call fcn.180001c40
mov rcx, r13
call fcn.180001dc0
add rsp, 0x20
movzx eax, word [r13]
cmp eax, 0x5a4d
je 0x180001a64
jmp 0x180001aca
mov eax, dword [r13 + rax + 0x34]
jmp 0x180001b74
add r14, rax
nop word cs:[rax + rax]
nop dword [rax + rax]
mov rcx, qword [0x180004018]
sub rsp, 0x20
mov edx, 1
mov r8d, r13d
call r14
add rsp, 0x20
mov ecx, dword [0x18000407c]
mov edx, dword [0x180004078]
cmp edx, 0xa
jl 0x180001c12
lea eax, [rcx - 1]
imul eax, ecx
and eax, 1
je 0x180001c12
mov rcx, qword [0x180004018]
sub rsp, 0x20
mov edx, 1
mov r8d, r13d
call r14
add rsp, 0x20
jmp 0x180001bc0
xor eax, eax
cmp edx, 0xa
jl 0x180001ab9
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x180001ab9
nop dword [rax]
jmp 0x180001c30