Function at 0x140001591
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x40
mov dword [rbp + 0x10], ecx
mov qword [rbp + 0x18], rdx
call dbg.__main
cmp dword [rbp + 0x10], 1
jg 0x1400015c4
lea rax, str.____Usage:_.program.exe__PID__n
mov rcx, rax
call sym.printf
mov eax, 0xffffffff
jmp 0x14000186f
mov rax, qword [rbp + 0x18]
add rax, 8
mov rax, qword [rax]
mov rcx, rax
call sym.atoi
mov dword [0x14000d048], eax
mov eax, dword [0x14000d048]
mov edx, eax
lea rax, str._i__Target_Process:__d_n
mov rcx, rax
call sym.printf
mov eax, dword [0x14000d048]
mov r8d, eax
mov edx, 0
mov ecx, 0x1fffff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [0x14000d040], rax
mov rax, qword [0x14000d040]
test rax, rax
jne 0x140001642
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____Failed_to_Open_Target_Process__Error_Code:_0x_lx_n
mov rcx, rax
call sym.printf
jmp 0x14000183c
lea rax, str.___Opened_Target_Process__n
mov rcx, rax
call sym.printf
lea rax, str._i__Getting_handle_to_kernel32.dll...._n
mov rcx, rax
call sym.printf
lea rax, str.kernel32
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
call rax
mov qword [0x14000d058], rax
mov rax, qword [0x14000d058]
test rax, rax
jne 0x1400016a5
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____Failed_to_get_a_handle_to_kernel32.dll__Error_Code:_0x_lx_n_n
mov rcx, rax
call sym.printf
jmp 0x14000183c
mov rax, qword [0x14000d058]
mov rdx, rax
lea rax, str.___Got_a_handle_to_kernel32.dll__Address_of_kernel32.dll:_0x_p_n
mov rcx, rax
call sym.printf
lea rax, str._i__Getting_address_of_LoadLibraryW..._n
mov rcx, rax
call sym.printf
mov rax, qword [0x14000d058]
lea rdx, str.LoadLibraryW
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x140001711
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____Failed_to_get_a_address_for_LoadLibraryW__Error_Code:_0x_lx_n
mov rcx, rax
call sym.printf
jmp 0x14000183c
mov rax, qword [rbp - 8]
mov rdx, rax
lea rax, str.___Got_a_address_for_LoadLibraryW__Address:_0x_p_n
mov rcx, rax
call sym.printf
mov rdx, qword [0x140008228]
mov rax, qword [0x14000d040]
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 [0x14000d050], rax
mov rax, qword [0x14000d050]
test rax, rax
jne 0x140001789
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____Failed_to_Allocated_Memory_for_DLL__Error_Code:_0x_lx_n
mov rcx, rax
call sym.printf
jmp 0x14000183c
mov rdx, qword [0x14000d050]
mov rax, qword [0x140008228]
mov r8, rdx
mov rdx, rax
lea rax, str.___Allocated_Memory__Mem_Size:__zu_byte__for_DLL_Path__Address:_0x_p_n
mov rcx, rax
call sym.printf
mov rcx, qword [0x140008228]
mov rdx, qword [0x14000d050]
mov rax, qword [0x14000d040]
mov qword [rsp + 0x20], 0
mov r9, rcx
lea r8, str.C:path_toyour_dll.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call rax
test eax, eax
jne 0x140001800
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.____Failed_to_write_dllPath_to_Allocated_Memory_Error_Code:_0x_lx_n
mov rcx, rax
call sym.printf
jmp 0x14000183c
lea rax, str.___Wrote_dllPath_to_Allocated_Memory__n
mov rcx, rax
call sym.printf
mov rdx, qword [0x14000d050]
mov rax, qword [0x14000d040]
mov rcx, qword [rbp - 8]
mov r8, rcx
mov rcx, rax
call sym._DllMainCRTStartup
lea rax, str.___Yupaaaa__Thread_finished_execution__n
mov rcx, rax
call sym.printf
nop
mov rax, qword [0x14000d040]
test rax, rax
je 0x14000186a
lea rax, str._i__Closing_handle_to_process__n
mov rcx, rax
call sym.printf
mov rax, qword [0x14000d040]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, 0
add rsp, 0x40
pop rbp
ret