Function at 0x180001000
Capabilities:
Allocate or change rwx memory
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rdi
push r12
push r15
sub rsp, 0x40
mov r12, r9
mov r15, r8
mov rbp, rcx
cmp edx, 0x40
jb 0x18000132c
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x18000132c
movsxd rcx, dword [rcx + 0x3c]
lea eax, [rcx + 0x108]
cmp edx, eax
jl 0x18000132c
cmp dword [rcx + rbp], 0x4550
lea rbx, [rcx + rbp]
jne 0x18000132c
mov eax, 0x2000
test word [rbx + 0x16], ax
jne 0x18000132c
mov eax, 0xf0
cmp word [rbx + 0x14], ax
jne 0x18000132c
lea r9, [rbx + 0x108]
mov r8, rbx
mov rcx, rbp
call fcn.180001780
mov rcx, qword [rsp + 0x88]
mov dword [rcx], eax
test eax, eax
je 0x18000132c
xor ecx, ecx
mov edx, eax
mov r8d, 0x1000
mov qword [rsp + 0x68], r14
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r14, qword [rsp + 0x80]
mov r10, rax
mov qword [r14], rax
test rax, rax
je 0x180001320
movzx r8d, word [rbx + 6]
mov ecx, dword [rbx + 0x54]
mov qword [rsp + 0x60], rsi
xor esi, esi
mov edx, esi
cmp r8d, 8
jb 0x180001208
cmp dword [section..data], 2
jl 0x180001208
movd xmm4, ecx
mov eax, 0xfffffff8
movaps xmmword [rsp + 0x30], xmm6
mov ecx, r8d
pshufd xmm4, xmm4, 0
and rcx, rax
movaps xmmword [rsp + 0x20], xmm7
lea rax, [rbx + 0x16c]
movdqa xmm7, xmmword [0x18000d410]
movdqa xmm5, xmm4
mov r9d, esi
xorps xmm6, xmm6
nop word [rax + rax]
movd xmm1, dword [rax + 0x28]
add edx, 8
movd xmm0, dword [rax - 0x28]
add r9, 8
movd xmm2, dword [rax]
movd xmm3, dword [rax - 0x50]
lea rax, [rax + 0x140]
punpckldq xmm2, xmm1
punpckldq xmm3, xmm0
movdqa xmm0, xmm4
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0xa0]
pminud xmm0, xmm3
movdqa xmm1, xmm3
movd xmm3, dword [rax - 0xf0]
pcmpeqd xmm1, xmm6
pandn xmm1, xmm7
pand xmm0, xmm1
pandn xmm1, xmm4
movdqa xmm4, xmm0
movd xmm0, dword [rax - 0xc8]
punpckldq xmm3, xmm0
por xmm4, xmm1
movd xmm1, dword [rax - 0x78]
movdqa xmm0, xmm5
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
movdqa xmm1, xmm3
pminud xmm0, xmm3
pcmpeqd xmm1, xmm6
pandn xmm1, xmm7
pand xmm0, xmm1
pandn xmm1, xmm5
movdqa xmm5, xmm0
por xmm5, xmm1
cmp r9, rcx
jl 0x180001130
movaps xmm7, xmmword [rsp + 0x20]
pminud xmm4, xmm5
movaps xmm6, xmmword [rsp + 0x30]
movdqa xmm0, xmm4
psrldq xmm0, 8
pminud xmm4, xmm0
movdqa xmm0, xmm4
psrldq xmm0, 4
pminud xmm4, xmm0
movd ecx, xmm4
movsxd r9, edx
cmp r9, r8
jge 0x180001237
lea rax, [r9 + r9*4]
sub r8, r9
lea rdx, [rbx + 0x11c]
lea rdx, [rdx + rax*8]
mov eax, dword [rdx]
test eax, eax
je 0x18000122d
cmp eax, ecx
cmovb ecx, eax
add rdx, 0x28
sub r8, 1
jne 0x180001222
mov r8d, ecx
mov rdx, rbp
mov rcx, r10
call fcn.180002dd0
mov rcx, qword [r14]
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
mov qword [r15], rdx
lea r10, [rdx + 0x108]
xor edx, edx
mov qword [r12], r10
mov r9, qword [r15]
mov r8d, dword [r9 + 0x54]
dec r8d
add r8d, dword [r9 + 0x38]
mov eax, r8d
div dword [r9 + 0x38]
sub r8d, edx
mov ebx, r8d
add rbx, qword [r14]
cmp si, word [r9 + 6]
jae 0x18000131b
mov rdi, rsi
nop dword [rax + rax]
mov eax, dword [r10 + rdi + 0xc]
test eax, eax
je 0x18000129e
mov ebx, eax
add rbx, qword [r14]
mov eax, dword [r10 + rdi + 0x10]
test eax, eax
je 0x1800012ee
mov edx, dword [r10 + rdi + 0x14]
mov r8d, eax
add rdx, rbp
mov rcx, rbx
call fcn.180002dd0
mov r10, qword [r12]
xor edx, edx
mov r9, qword [r15]
mov eax, dword [r10 + rdi + 8]
mov ecx, dword [r10 + rdi + 0x10]
mov r8d, dword [r9 + 0x38]
cmp eax, ecx
jae 0x1800012e1
dec ecx
add ecx, r8d
mov eax, ecx
div r8d
jmp 0x180001301
lea ecx, [r8 - 1]
add ecx, eax
mov eax, ecx
div r8d
jmp 0x180001301
mov ecx, dword [r10 + rdi + 8]
xor edx, edx
dec ecx
add ecx, dword [r9 + 0x38]
mov eax, ecx
div dword [r9 + 0x38]
sub ecx, edx
inc esi
mov eax, ecx
add rdi, 0x28
add rbx, rax
movzx eax, word [r9 + 6]
cmp esi, eax
jl 0x180001290
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
mov eax, 1
jmp 0x18000132e
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r12
pop rdi
ret