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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xb0
xor r12d, r12d
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x27], r12
mov ecx, Ordinal_26
call fcn.14012fbb4
movabs rbx, 0x1fffffffffff
mov qword [rax], rbx
mov qword [rax + 8], r12
lea rcx, [rbp + 0x17]
mov qword [rax + 0x10], rcx
mov qword [rbp + 0x67], rax
lea rcx, [rbp - 0x11]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
mov r9, rax
lea r8, [0x14004b3d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 0x19], rax
test rax, rax
je 0x140049e60
mov ecx, Ordinal_26
call fcn.14012fbb4
movabs rdi, 0x3ffffffffffe
mov qword [rax], rdi
mov qword [rax + 8], rbx
lea rcx, [rbp + 0x17]
mov qword [rax + 0x10], rcx
mov qword [rbp + 0x67], rax
lea rcx, [rbp - 0x21]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
mov r9, rax
lea r8, [0x14004b3d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 0x29], rax
test rax, rax
je 0x140049e50
mov ecx, Ordinal_26
call fcn.14012fbb4
movabs rbx, 0x5ffffffffffd
mov qword [rax], rbx
mov qword [rax + 8], rdi
lea rcx, [rbp + 0x17]
mov qword [rax + 0x10], rcx
mov qword [rbp + 0x67], rax
lea rcx, [rbp - 0x31]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
mov r9, rax
lea r8, [0x14004b3d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 0x39], rax
test rax, rax
je 0x140049e40
mov ecx, Ordinal_26
call fcn.14012fbb4
movabs rcx, 0x7fffffffffff
mov qword [rax], rcx
mov qword [rax + 8], rbx
lea rcx, [rbp + 0x17]
mov qword [rax + 0x10], rcx
mov qword [rbp + 0x67], rax
lea rcx, [rbp - 0x41]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
mov r9, rax
lea r8, [0x14004b3d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 0x49], rax
test rax, rax
je 0x140049e30
cmp dword [rbp - 0x11], r12d
je 0x140049e24
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp - 0x11], eax
je 0x140049e18
movaps xmm0, xmmword [rbp - 0x19]
movdqa xmmword [rbp - 9], xmm0
xor edx, edx
lea rcx, [rbp - 9]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x140049e0c
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x19], xmm0
cmp dword [rbp - 0x21], eax
je 0x140049e24
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp - 0x21], eax
je 0x140049e18
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 9], xmm0
xor edx, edx
lea rcx, [rbp - 9]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x140049e0c
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x29], xmm0
cmp dword [rbp - 0x31], eax
je 0x140049e24
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp - 0x31], eax
je 0x140049e18
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 9], xmm0
xor edx, edx
lea rcx, [rbp - 9]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x140049e0c
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x39], xmm0
cmp dword [rbp - 0x41], eax
je 0x140049e24
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp - 0x41], eax
je 0x140049e18
movaps xmm0, xmmword [rbp - 0x49]
movdqa xmmword [rbp - 9], xmm0
xor edx, edx
lea rcx, [rbp - 9]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x140049e0c
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x49], xmm0
mov rdi, qword [rbp + 0x17]
mov r15, qword [rbp + 0x1f]
cmp rdi, r15
je 0x140049d75
xorps xmm0, xmm0
movdqu xmmword [rbp - 9], xmm0
mov qword [rbp + 7], r12
mov edx, 8
lea rcx, [rbp - 9]
call fcn.14004b280
mov rsi, qword [rbp - 9]
lea rbx, [rsi + 8]
mov r8, rbx
sub r8, rsi
xor edx, edx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memset
mov qword [rbp - 1], rbx
mov rbx, qword [rdi]
mov rax, qword [0x14034b450]
test rax, rax
jne 0x140049c3e
mov ecx, reloc.WS2_32.dll_recv
call fcn.14012fbb4
mov qword [rbp + 0x6f], rax
mov dword [rax + 8], r12d
mov qword [0x14034b450], rax
lea rcx, [rbp + 0x67]
mov qword [rsp + 0x20], rcx
mov r9d, 0x40
mov r8d, 8
mov rdx, rbx
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rbx, qword [rdi]
mov rax, qword [0x14034b450]
test rax, rax
jne 0x140049c87
mov ecx, reloc.WS2_32.dll_recv
call fcn.14012fbb4
mov qword [rbp + 0x6f], rax
mov dword [rax + 8], r12d
mov qword [0x14034b450], rax
mov qword [rsp + 0x20], r12
mov r9d, 8
mov r8, rsi
lea rdx, [rbx + 0x2c]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rbx, qword [rdi]
mov rax, qword [0x14034b450]
test rax, rax
jne 0x140049cca
mov ecx, reloc.WS2_32.dll_recv
call fcn.14012fbb4
mov qword [rbp + 0x6f], rax
mov dword [rax + 8], r12d
mov qword [0x14034b450], rax
mov qword [rsp + 0x20], r12
mov r9d, 8
mov r8, rsi
lea rdx, [rbx + 0x28]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov ebx, dword [rbp + 0x67]
mov r14, qword [rdi]
mov rax, qword [0x14034b450]
test rax, rax
jne 0x140049d10
mov ecx, reloc.WS2_32.dll_recv
call fcn.14012fbb4
mov qword [rbp + 0x6f], rax
mov dword [rax + 8], r12d
mov qword [0x14034b450], rax
lea rcx, [rbp + 0x67]
mov qword [rsp + 0x20], rcx
mov r9d, ebx
mov r8d, 8
mov rdx, r14
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
nop
test rsi, rsi
je 0x140049d64
mov rdx, qword [rbp + 7]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x140049d5c
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140049d82
mov rcx, rsi
call fcn.14012ff00
add rdi, 8
cmp rdi, r15
jne 0x140049be0
mov rdi, qword [rbp + 0x17]
cmp dword [rbp - 0x41], 0
je 0x140049d89
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
cmp dword [rbp - 0x31], 0
je 0x140049d96
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
cmp dword [rbp - 0x21], 0
je 0x140049da3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
cmp dword [rbp - 0x11], 0
je 0x140049db0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
test rdi, rdi
je 0x140049df0
mov rdx, qword [rbp + 0x27]
sub rdx, rdi
and rdx, 0xfffffffffffffff8
mov rax, rdi
cmp rdx, 0x1000
jb 0x140049de8
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140049de8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rdi
call fcn.14012ff00
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov ecx, 2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp - 0x41], r12d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp - 0x31], r12d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp - 0x21], r12d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp - 0x11], r12d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3