Function at 0x180028b20
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x1800c4060]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov r12, r8
mov r14, rdx
mov rbx, rcx
test rdx, rdx
je 0x180028d7a
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
xor edx, edx
mov r8d, 0x108
lea rcx, [rsp + 0x50]
call fcn.180042070
mov rdx, r14
mov rcx, rbx
call fcn.180027e00
test rax, rax
je 0x180028d7a
lea r9, [rbp + 0x60]
mov r8d, 0x40
mov rdx, rax
mov rcx, rbx
call fcn.180027f90
test eax, eax
je 0x180028d7a
mov eax, 0x5a4d
cmp word [rbp + 0x60], ax
jne 0x180028d7a
movsxd rdx, dword [rbp + 0x9c]
add rdx, r14
mov rcx, rbx
call fcn.180027e00
test rax, rax
je 0x180028d7a
lea r9, [rsp + 0x50]
mov r8d, 0x108
mov rdx, rax
mov rcx, rbx
call fcn.180027f90
test eax, eax
je 0x180028d7a
cmp dword [rsp + 0x50], 0x4550
jne 0x180028d7a
mov esi, dword [rbp - 0x28]
test esi, esi
je 0x180028d7a
mov eax, dword [rbp - 0x24]
test eax, eax
je 0x180028d7a
mov r15d, eax
mov qword [rsp + 0x40], rax
mov r9d, 4
mov r8d, 0x3000
mov edx, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
mov qword [rsp + 0x38], rsi
lea rax, [r14 + rsi]
mov qword [rsp + 0x30], rax
mov rdx, rax
mov rcx, rbx
call fcn.180027e00
test rax, rax
je 0x180028d69
mov r9, rdi
mov r8d, r15d
mov rdx, rax
mov rcx, rbx
call fcn.180027f90
test eax, eax
je 0x180028d69
mov r15, rdi
sub r15, rsi
mov r13d, dword [rdi + 0x20]
add r13, r15
mov eax, dword [rdi + 0x24]
add rax, r15
mov qword [rsp + 0x20], rax
mov eax, dword [rdi + 0x1c]
add rax, r15
mov qword [rsp + 0x28], rax
xor eax, eax
mov ebx, eax
cmp dword [rdi + 0x18], eax
jbe 0x180028d69
nop word [rax + rax]
mov esi, ebx
mov edx, dword [r13 + rsi*4]
add rdx, r15
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], 0xf
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x180028ce1
lea rcx, [rbp + 0x60]
call fcn.18002d6c0
mov rdx, r12
cmp qword [r12 + 0x18], 0x10
jb 0x180028d03
mov rdx, qword [r12]
lea rcx, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae rcx, qword [rbp + 0x60]
call fcn.18004bf5c
test eax, eax
je 0x180028da6
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x180028d59
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180028d54
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180028e41
call fcn.18003b2f0
inc ebx
cmp ebx, dword [rdi + 0x18]
mov eax, 0
jb 0x180028cc0
mov r8d, 0x8000
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.18003b2d0
mov rbx, qword [rsp + 0x208]
add rsp, 0x1b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rax, qword [rsp + 0x20]
movzx eax, word [rax + rsi*2]
mov rcx, qword [rsp + 0x28]
mov ecx, dword [rcx + rax*4]
cmp ecx, 0x1000
jbe 0x180028ded
lea rbx, [r14 + rcx]
cmp rbx, qword [rsp + 0x30]
jb 0x180028e2e
mov rax, qword [rsp + 0x38]
add rax, r14
add rax, qword [rsp + 0x40]
cmp rbx, rax
ja 0x180028e2e
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ebx, ebx
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x180028e26
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180028e21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180028e41
call fcn.18003b2f0
mov rax, rbx
jmp 0x180028d7c
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x180028def
call fcn.18004cc60
int3