Function at 0x140008874
Capabilities:
Attach user process memory
Find process by pid

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov rax, qword [0x140076ea0]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x80], rdx
xorps xmm0, xmm0
movups xmmword [r11 - 0x68], xmm0
movups xmmword [r11 - 0x58], xmm0
movups xmmword [r11 - 0x48], xmm0
xor r14d, r14d
mov eax, ecx
imul r15, rax, 0xf88
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x90], r15
mov r8d, 0x6d7467
mov rdx, r15
lea r12d, [r14 + 1]
mov ecx, r12d
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rdi, rax
mov qword [rsp + 0x78], rax
mov r13, rax
test rax, rax
je 0x140008c8e
mov r8, r15
xor edx, edx
mov rcx, rax
call fcn.140015340
and qword [rsp + 0x40], r14
xor esi, esi
mov dword [rsp + 0x48], esi
cmp esi, 0x50000
jae 0x140008bf4
mov ecx, esi
lea rdx, [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
test eax, eax
js 0x140008bec
mov r15, qword [rsp + 0x40]
xor bl, bl
test r15, r15
je 0x140008988
mov rcx, r15
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
test al, al
je 0x140008988
mov rcx, qword [0x1400774d0]
add rcx, r15
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
test al, al
je 0x140008988
mov rax, qword [0x1400774d0]
mov rcx, qword [rax + r15]
test rcx, rcx
je 0x140008988
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
movzx ebx, bl
test al, al
cmovne ebx, r12d
test bl, bl
je 0x140008bdc
add r14d, r12d
mov dword [rsp + 0x58], r14d
mov eax, r14d
imul r15, rax, 0xf88
mov dword [r15 + rdi], esi
mov rax, qword [rsp + 0x40]
mov qword [r15 + rdi + 8], rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsGetProcessInheritedFromUniqueProcessId]
mov dword [r15 + rdi + 4], eax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsGetProcessCreateTimeQuadPart]
mov qword [r15 + rdi + 0xf68], rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsIsProtectedProcess]
mov byte [r15 + rdi + 0xf60], al
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsGetProcessSessionId]
mov dword [r15 + rdi + 0xf70], eax
lea rax, [rdi + 0xf80]
add rax, r15
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov rax, qword [sym.imp.ntoskrnl.exe_PsProcessType]
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
mov r9d, 0x10000000
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ObOpenObjectByPointer]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsGetProcessImageFileName]
test rax, rax
je 0x140008a54
lea rdx, [rdi + 0x420]
add rdx, r15
mov rcx, rax
call fcn.14000271c
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsGetProcessWow64Process]
test rax, rax
sete al
mov byte [r15 + r13 + 0xf78], al
xorps xmm0, xmm0
movups xmmword [rsp + 0x98], xmm0
xor r8d, r8d
lea rdx, [rsp + 0x98]
mov ecx, esi
call fcn.14000bee0
cmp eax, 0x80000005
je 0x140008a9f
cmp eax, 0xc0000023
je 0x140008a9f
cmp eax, 0xc0000004
jne 0x140008afc
movzx ebx, word [rsp + 0x98]
lea rdx, [rbx + 0x10]
mov r8d, 0x504d4f4e
mov ecx, r12d
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov qword [rsp + 0x60], rax
mov word [rax + 2], bx
lea r8, [rsp + 0xa8]
mov rdx, rax
mov ecx, esi
call fcn.14000bee0
mov rbx, qword [rsp + 0x60]
test eax, eax
js 0x140008aee
lea rdx, [r13 + 0x10]
add rdx, r15
mov rcx, qword [rbx + 8]
call fcn.14000e694
mov edx, 0x504d4f4e
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
and qword [rsp + 0x68], 0
lea rdx, [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
call sub.ntoskrnl.exe_SeLocateProcessImageName
test eax, eax
js 0x140008b2d
lea rdx, [r13 + 0x218]
add rdx, r15
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx + 8]
call fcn.14000e694
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_PsGetProcessPeb]
mov rbx, rax
test rax, rax
je 0x140008bdc
lea rdx, [rsp + 0xb0]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
mov rdx, qword [rbx + 0x20]
test rdx, rdx
je 0x140008b94
movzx r8d, word [rdx + 0x72]
lea rcx, [r13 + 0x628]
add rcx, r15
mov rdx, qword [rdx + 0x78]
call fcn.140015080
mov rdx, qword [rbx + 0x20]
movzx r8d, word [rdx + 0x62]
lea rcx, [r13 + 0x948]
add rcx, r15
mov rdx, qword [rdx + 0x68]
call fcn.140015080
lea rcx, [rsp + 0xb0]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov r15, qword [rsp + 0x50]
jmp 0x140008be1
mov r15, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
add esi, 4
jmp 0x140008917
cmp r14d, 2
jbe 0x140008c8e
call fcn.14000af4c
mov rsi, rax
test rax, rax
je 0x140008c62
add r14d, r12d
mov ecx, r14d
imul rbx, rcx, 0xf88
and dword [rbx + rdi], 0
mov byte [rbx + rdi + 0xf60], r12b
mov qword [rbx + rdi + 8], rax
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_PsGetProcessCreateTimeQuadPart]
mov qword [rbx + rdi + 0xf68], rax
mov byte [rbx + rdi + 0xf78], r12b
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe_PsGetProcessImageFileName]
test rax, rax
je 0x140008c62
lea rdx, [rdi + 0x420]
add rdx, rbx
mov rcx, rax
call fcn.14000271c
lea eax, [r14 + 1]
mov dword [rdi + 0xf64], eax
mov r8, r15
mov rdx, rdi
mov rcx, qword [rsp + 0x70]
call fcn.140015080
mov edx, 0x6d7467
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
xor eax, eax
jmp 0x140008c93
mov eax, 0xc0000001
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.140014fb0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret