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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rbx, rdx
mov r13, rcx
movsxd r15, dword [rdx + 0x3c]
add r15, rdx
mov edx, dword [r15 + 0x50]
mov qword [rcx + 0x18], rdx
xor ecx, ecx
lea r9d, [rcx + 4]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
movzx eax, word [r15 + 6]
movzx r8d, word [r15 + 0x14]
add r8, 0x28
xor ecx, ecx
cmp cx, ax
jae 0x1800063e0
add r8, r15
mov r9d, eax
nop
mov edx, dword [r8 - 4]
add rdx, rdi
movsxd rax, dword [r8]
test eax, eax
jne 0x1800063ac
movsxd rax, dword [r8 - 8]
test rax, rax
js 0x1800063d6
nop word [rax + rax]
sub rax, 1
mov byte [rax + rdx], 0
jns 0x1800063a0
jmp 0x1800063d6
mov rcx, rax
test eax, eax
js 0x1800063d6
nop dword [rax]
nop word [rax + rax]
dec rcx
mov eax, dword [r8 + 4]
add rax, rcx
movzx eax, byte [rax + rbx]
mov byte [rcx + rdx], al
test rcx, rcx
jns 0x1800063c0
add r8, 0x28
sub r9, 1
jne 0x180006380
mov eax, dword [r15 + 0x28]
add rax, rdi
mov qword [r13 + 8], rax
mov qword [r13 + 0x10], rdi
mov eax, dword [r15 + 0x88]
add rax, rdi
mov ecx, dword [rax + 0x18]
test ecx, ecx
je 0x1800064c4
mov r14d, dword [rax + 0xc]
add r14, rdi
mov r12d, dword [rax + 0x1c]
add r12, rdi
mov ebx, dword [rax + 0x24]
add rbx, rdi
mov esi, dword [rax + 0x20]
add rsi, rdi
mov ebp, ecx
mov eax, dword [rsi]
add rax, rdi
mov qword [rsp + 0xb0], rax
movzx eax, word [rbx]
mov ecx, dword [r12 + rax*4]
add rcx, rdi
mov qword [rsp + 0xa0], rcx
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x30]
call fcn.180006c70
nop
mov r8, rax
lea rdx, [rsp + 0x20]
lea rcx, [r13 + 0x20]
call fcn.180006cb0
nop
lea rcx, [rsp + 0x30]
call fcn.1800067a0
mov rcx, qword [rsp + 0xb0]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rcx + r8], 0
jne 0x180006485
xor edx, edx
call sub.msvcrt.dll_memset
add rsi, 4
add rbx, 2
sub rbp, 1
jne 0x180006420
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [r14 + r8], 0
jne 0x1800064b0
xor edx, edx
mov rcx, r14
call sub.msvcrt.dll_memset
mov ebx, dword [r15 + 0x90]
add rbx, rdi
mov qword [rsp + 0xb0], rbx
cmp dword [rbx], 0
je 0x1800065b9
nop
mov r12d, dword [rbx + 0xc]
add r12, rdi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r13, rax
test rax, rax
je 0x1800065b9
mov r14d, dword [rbx]
add r14, rdi
mov esi, dword [rbx + 0x10]
add rsi, rdi
mov rcx, qword [r14]
test rcx, rcx
je 0x180006587
cmp qword [rsi], 0
je 0x18000657f
test rcx, rcx
js 0x180006558
lea rbx, [rcx + rdi]
lea rdx, [rbx + 2]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rbx + r8 + 2], 0
jne 0x180006540
xor edx, edx
lea rcx, [rbx + 2]
call sub.msvcrt.dll_memset
jmp 0x180006567
movzx edx, cx
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
test rbp, rbp
je 0x18000657f
mov qword [rsi], rbp
add rsi, 8
add r14, 8
mov rcx, qword [r14]
test rcx, rcx
jne 0x180006510
mov rbx, qword [rsp + 0xb0]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [r12 + r8], 0
jne 0x180006590
xor edx, edx
mov rcx, r12
call sub.msvcrt.dll_memset
add rbx, 0x14
mov qword [rsp + 0xb0], rbx
cmp dword [rbx], 0
jne 0x1800064e0
mov r11d, dword [r15 + 0xb0]
add r11, rdi
mov eax, dword [r11 + 4]
test eax, eax
je 0x180006679
nop
mov ebx, eax
lea r10, [r11 + 8]
mov r8d, dword [r11]
add r8, rdi
lea r9, [rbx - 8]
shr r9, 1
test r9d, r9d
je 0x18000666a
nop dword [rax]
dec r9d
movzx edx, word [r10]
movzx ecx, dx
movzx eax, dx
shr ax, 0xc
cmp ax, 0xa
jne 0x18000661e
and edx, 0xfff
mov rax, qword [rdx + r8]
sub rax, qword [r15 + 0x30]
add rax, rdi
mov qword [rdx + r8], rax
jmp 0x180006661
cmp ax, 3
jne 0x180006636
and ecx, 0xfff
mov eax, edi
sub eax, dword [r15 + 0x30]
add dword [rcx + r8], eax
jmp 0x180006661
cmp ax, 1
jne 0x180006648
mov eax, edi
sub eax, dword [r15 + 0x30]
shr rax, 0x10
jmp 0x180006656
cmp ax, 2
jne 0x180006661
movzx eax, di
sub ax, word [r15 + 0x30]
and ecx, 0xfff
add word [rcx + r8], ax
add r10, 2
test r9d, r9d
jne 0x1800065f0
add r11, rbx
mov eax, dword [r11 + 4]
test eax, eax
jne 0x1800065d0
movzx esi, word [r15 + 6]
movzx ebx, word [r15 + 0x14]
add rbx, 0x20
lea r9, [rsp + 0xb0]
mov edx, 0x400
mov r8d, 0x40
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
xor eax, eax
cmp ax, si
jae 0x1800066e3
add rbx, r15
mov ebp, 4
test dword [rbx + 0x1c], 0x20000000
mov r8d, 0x40
cmove r8d, ebp
mov edx, dword [rbx]
mov ecx, dword [rbx + 4]
add rcx, rdi
lea r9, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
lea rbx, [rbx + 0x28]
sub rsi, 1
jne 0x1800066b2
xor edx, edx
mov r8d, 0x400
mov rcx, rdi
call sub.msvcrt.dll_memset
xor eax, eax
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret