Function at 0x140001840
Capabilities:
Allocate or change rwx memory
Get system information on windows
Inject apc

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x140022008]
xor rax, rsp
mov qword [rsp + 0x50], rax
cmp dword [0x140023d24], 0
mov rdi, r8
mov rbp, rdx
mov rsi, rcx
jne 0x140001892
lea rcx, [0x140023d20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [0x140023d24], 0
jne 0x140001892
lea rcx, str.InjectDllViaQueuedAPC:_Failed_to_obtain_system_page_size
call fcn.140001320
xor eax, eax
jmp 0x140001a6f
mov qword [rsp + 0x98], rbx
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], 0
jne 0x1400018a1
add rbx, 1
jne 0x1400018bc
lea rcx, str.InjectDllViaQueuedAPC:_Dll_argument_bad._n
jmp 0x140001a60
xor eax, eax
lea rcx, str.kernel32
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, [0x14001e248]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.kernel32
mov qword [rsp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, [0x14001e268]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
je 0x140001a59
test rax, rax
je 0x140001a59
mov r8d, dword [0x140023d24]
xor edx, edx
mov r9d, 0x3000
mov dword [rsp + 0x20], 0x40
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x14000195c
lea rcx, str.InjectDllViaQueuedAPC:_Failed_to_allocate_buffer_in_target
call fcn.140001320
jmp 0x140001a65
lea rcx, [rsp + 0x30]
mov r9, rbx
mov qword [rsp + 0x20], rcx
mov r8, rdi
mov rcx, rsi
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001a4b
mov rcx, qword [rsp + 0x30]
cmp rcx, rbx
jne 0x140001a4b
mov rbx, qword [rsp + 0x48]
lea rax, [rsp + 0x30]
add rbx, rcx
mov qword [rsp + 0x20], rax
mov rdx, rbx
lea r8, [rsp + 0x38]
mov r9d, 0x18
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001a3d
cmp qword [rsp + 0x30], 0x18
jne 0x140001a3d
lea rax, [rsp + 0x30]
mov r9d, pe_nt_image_headers64
lea r8, [0x140001810]
mov qword [rsp + 0x20], rax
lea rdx, [rbx + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x140001a2f
cmp qword [rsp + 0x30], 0x100
jne 0x140001a2f
mov r8, rbx
lea rcx, [rbx + 0x18]
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_QueueUserAPC]
test eax, eax
jne 0x140001a1c
lea rcx, str.InjectDllViaQueuedAPC:_QueueUserAPC_failed
call fcn.140001320
jmp 0x140001a65
lea rcx, str.InjectDllViaQueuedAPC:_APC_injection_queued._n
call fcn.1400011f0
mov eax, 1
jmp 0x140001a67
lea rcx, str.InjectDllViaQueuedAPC:_Failed_to_write_to_RemoteFuncAddress_in_target
call fcn.140001320
jmp 0x140001a65
lea rcx, str.InjectDllViaQueuedAPC:_Failed_to_write_to_PointersAddress_in_target
call fcn.140001320
jmp 0x140001a65
lea rcx, str.InjectDllViaQueuedAPC:_Failed_to_write_to_DllPath_in_target
call fcn.140001320
jmp 0x140001a65
lea rcx, str.InjectDllViaQueuedAPC:_Failed_to_get_function_pointers._n
call fcn.1400011f0
xor eax, eax
mov rbx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140003c30
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret