joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140003950
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
xor r14d, r14d
mov dword [rsp + 0x28], 0x40
mov eax, 0x1000
mov qword [rbp + 0x30], r14
mov rdi, rdx
mov qword [rbp + 0x38], rax
mov rsi, rcx
mov qword [rbp - 0x44], r14
lea rdx, [rbp + 0x30]
mov qword [rbp - 0x30], r14
or rcx, 0xffffffffffffffff
mov qword [rbp - 0x24], r14
lea r9, [rbp + 0x38]
mov qword [rbp - 0x14], r14
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov dword [rbp - 0x50], 0x28ec8348
mov dword [rbp - 0x4c], 0x48c93148
mov dword [rbp - 0x48], 0xb849d231
mov qword [rbp - 0x3c], 0xb949
mov dword [rbp - 0x34], 0xb8480000
mov dword [rbp - 0x28], 0xba48d0ff
mov dword [rbp - 0x1c], 0x1e7e02c7
mov dword [rbp - 0x18], 0xba48c037
mov dword [rbp - 0xc], 0x83480289
mov word [rbp - 8], 0x28c4
call qword [sym.imp.ntoskrnl.exe_ZwAllocateVirtualMemory]
test eax, eax
js 0x140003aa3
mov rbx, qword [rbp + 0x30]
mov rdx, rdi
add rbx, 0x200
mov rcx, rbx
mov dword [rbx], 0x3d00000
mov rax, qword [rbp + 0x30]
add rax, 0x210
mov qword [rbx + 8], rax
call fcn.140005474
mov rcx, qword [rbp + 0x30]
movaps xmm0, xmmword [rbp - 0x50]
movaps xmm1, xmmword [rbp - 0x40]
movzx eax, word [rbp - 8]
movups xmmword [rcx], xmm0
movaps xmm0, xmmword [rbp - 0x30]
movups xmmword [rcx + 0x10], xmm1
movaps xmm1, xmmword [rbp - 0x20]
movups xmmword [rcx + 0x20], xmm0
movsd xmm0, qword [rbp - 0x10]
movups xmmword [rcx + 0x30], xmm1
movsd qword [rcx + 0x40], xmm0
mov word [rcx + 0x48], ax
mov byte [rcx + 0x4a], 0xc3
mov rax, qword [rbp + 0x30]
mov qword [rax + 0xc], rbx
mov rcx, qword [rbp + 0x30]
lea rax, [rcx + 0x5e0]
mov qword [rcx + 0x16], rax
mov rax, qword [rbp + 0x30]
mov qword [rax + 0x20], rsi
mov rcx, qword [rbp + 0x30]
lea rax, [rcx + 0x5e8]
mov qword [rcx + 0x2c], rax
mov rcx, qword [rbp + 0x30]
lea rax, [rcx + 0x5ec]
mov qword [rcx + 0x3c], rax
mov rax, qword [rbp + 0x30]
jmp 0x140003aa5
xor eax, eax
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret

Function at 0x140003aec
Capabilities:
Find process by pid

Disassembly:
sub rsp, 0x28
and qword [rsp + 0x38], 0
lea rdx, [rsp + 0x38]
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
test eax, eax
js 0x140003b10
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rax, qword [rsp + 0x38]
add rsp, 0x28
ret
Function at 0x140003e10
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x150
mov rax, qword [0x140009010]
xor rax, rsp
mov qword [rsp + 0x140], rax
xor edx, edx
lea rcx, [rsp + 0x24]
mov r8d, 0x118
xor ebx, ebx
call fcn.1400068c0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x11c
call qword [sym.imp.ntoskrnl.exe_RtlGetVersion]
test eax, eax
je 0x140003e5d
xor eax, eax
jmp 0x140003f08
cmp dword [rsp + 0x24], 6
jne 0x140003e94
cmp dword [rsp + 0x28], 1
jne 0x140003f06
cmp dword [rsp + 0x2c], 0x1b58
jne 0x140003e83
mov ebx, 2
jmp 0x140003f06
cmp dword [rsp + 0x2c], 0x1db0
jb 0x140003f06
mov ebx, 1
jmp 0x140003f06
cmp dword [rsp + 0x24], 0xa
jne 0x140003f06
cmp dword [rsp + 0x28], ebx
jne 0x140003f06
mov eax, dword [rsp + 0x2c]
cmp eax, 0x3ad7
jne 0x140003eb3
mov ebx, 3
jmp 0x140003f06
cmp eax, 0x3fab
jne 0x140003ec1
mov ebx, 4
jmp 0x140003f06
cmp eax, 0x42ee
jne 0x140003ecf
mov ebx, 5
jmp 0x140003f06
cmp eax, 0x4563
jne 0x140003edd
mov ebx, 6
jmp 0x140003f06
cmp eax, 0x47ba
jne 0x140003eeb
mov ebx, 7
jmp 0x140003f06
cmp eax, 0x47bb
jne 0x140003ef9
mov ebx, 8
jmp 0x140003f06
cmp eax, 0x4a61
mov ecx, 9
cmovae ebx, ecx
mov eax, ebx
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140006680
add rsp, 0x150
pop rbx
ret

Function at 0x140003f24
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x60
mov eax, 0x1000
mov dword [rsp + 0x28], 0x40
mov rsi, rdx
mov qword [rbp + 0x38], rax
mov rdi, rcx
mov dword [rsp + 0x20], eax
xor ebx, ebx
mov dword [rbp - 0x30], 0x68
lea rdx, [rbp + 0x30]
mov qword [rbp + 0x30], rbx
or rcx, 0xffffffffffffffff
mov dword [rbp - 0x1c], ebx
lea r9, [rbp + 0x38]
mov dword [rbp - 0x2c], 0x6800
xor r8d, r8d
mov dword [rbp - 0x28], 0x6a0000
mov dword [rbp - 0x24], 0xe8006a
mov dword [rbp - 0x20], 0xba000000
mov dword [rbp - 0x18], 0x1e7e02c7
mov dword [rbp - 0x14], 0xbac037
mov dword [rbp - 0x10], 0x89000000
mov dword [rbp - 0xc], 0x4c202
call qword [sym.imp.ntoskrnl.exe_ZwAllocateVirtualMemory]
test eax, eax
js 0x140004043
movzx eax, word [rsi]
mov rbx, qword [rbp + 0x30]
add rbx, 0x200
mov word [rbx], ax
movzx eax, word [rsi + 2]
mov word [rbx + 2], ax
mov eax, dword [rbp + 0x30]
add eax, 0x210
mov dword [rbx + 4], eax
movzx r8d, word [rsi]
mov rdx, qword [rsi + 8]
mov ecx, eax
call fcn.1400069c0
mov rax, qword [rbp + 0x30]
movups xmm0, xmmword [rbp - 0x30]
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rax], xmm0
movsd xmm0, qword [rbp - 0x10]
movups xmmword [rax + 0x10], xmm1
movsd qword [rax + 0x20], xmm0
mov rcx, qword [rbp + 0x30]
lea eax, [rcx + 0x5e0]
mov dword [rcx + 1], eax
mov rax, qword [rbp + 0x30]
mov dword [rax + 6], ebx
mov rax, qword [rbp + 0x30]
sub edi, eax
sub edi, 0x13
mov dword [rax + 0xf], edi
mov rcx, qword [rbp + 0x30]
lea eax, [rcx + 0x5e8]
mov dword [rcx + 0x14], eax
mov rcx, qword [rbp + 0x30]
lea eax, [rcx + 0x5ec]
mov dword [rcx + 0x1f], eax
mov rax, qword [rbp + 0x30]
jmp 0x140004045
xor eax, eax
mov rbx, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret
Function at 0x140004058
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x140009010]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rbx, rcx
mov qword [rsp + 0x38], rcx
xor sil, sil
mov byte [rsp + 0x20], sil
cmp qword [rcx], 0
jbe 0x140004192
mov rax, qword [rcx + 8]
mov r15d, 1
sub rax, r15
movabs rcx, 0x7ffffffffffe
cmp rax, rcx
ja 0x140004192
cmp qword [rbx + 0x28], 0
jbe 0x140004192
cmp byte [0x140009050], sil
je 0x140004192
mov rcx, rbx
call fcn.140004a7c
test al, al
je 0x14000417e
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r14, rax
mov qword [rsp + 0x28], rax
mov rcx, qword [rbx]
call fcn.140003aec
mov rdi, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140004179
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
cmp rax, r14
je 0x140004128
lea rdx, [rsp + 0x40]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
nop
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_PsGetProcessWow64Process]
test rax, rax
setne r8b
mov rdx, qword [rbx + 8]
mov rcx, rdi
call fcn.140001f1c
movzx esi, sil
test eax, eax
cmovns esi, r15d
mov byte [rsp + 0x20], sil
jmp 0x140004169
cmp rdi, r14
je 0x140004179
lea rcx, [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
call fcn.1400050d0
test sil, sil
je 0x14000418d
mov rcx, qword [rbx + 0x28]
mov dword [rcx], 0x23ff
mov al, sil
jmp 0x140004194
xor al, al
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140006680
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x140004c58
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x140009010]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov r14, rcx
mov qword [rsp + 0x70], rcx
mov byte [rsp + 0x40], 0
cmp qword [rcx], 0
jbe 0x140004e66
mov rax, qword [rcx + 8]
mov ebx, 1
sub rax, rbx
movabs rcx, 0x7ffffffffffe
cmp rax, rcx
ja 0x140004e66
cmp qword [r14 + 0x28], 0
jbe 0x140004e66
cmp byte [0x140009050], 0
je 0x140004e66
lea edx, [rbx + 7]
xor ecx, ecx
mov r8d, 0x726574
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r15, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140004e66
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
test al, al
je 0x140004e66
xor eax, eax
mov qword [r15], rax
mov rcx, r14
call fcn.140004a7c
test al, al
je 0x140004e44
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r13, rax
mov qword [rsp + 0x60], rax
mov rcx, qword [r14]
call fcn.140003aec
mov r12, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140004e3f
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x98], xmm0
cmp rax, r13
je 0x140004d6f
lea rdx, [rsp + 0x78]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
nop
mov r8d, ebx
mov rdx, rbx
mov rcx, qword [r14 + 8]
call qword [sym.imp.ntoskrnl.exe_ProbeForRead]
cmp qword [0x1400090e8], 0
je 0x140004e19
mov rax, qword [r14 + 8]
mov qword [rsp + 0x50], rax
mov edx, 0x30
xor ecx, ecx
mov r8d, 0x696e666f
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rdx, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140004e19
mov r8, qword gs:[0x188]
mov edi, dword [0x14000911c]
add rdi, r8
mov bl, byte [rdi]
mov byte [rdi], 0
mov rax, qword [0x1400090e8]
and qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x30
mov r9, rdx
xor r8d, r8d
mov rdx, qword [rsp + 0x50]
or rcx, 0xffffffffffffffff
mov r10, qword [0x1400082d8]
call r10
mov byte [rdi], bl
mov rcx, qword [rsp + 0x48]
test eax, eax
js 0x140004e11
mov eax, dword [rcx + 0x24]
mov qword [r15], rax
mov byte [rsp + 0x40], 1
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
jmp 0x140004e2f
cmp r12, r13
je 0x140004e3f
lea rcx, [rsp + 0x78]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
call fcn.1400050d0
cmp byte [rsp + 0x40], 0
je 0x140004e55
mov rcx, qword [r14 + 0x28]
mov rax, qword [r15]
mov qword [rcx], rax
xor edx, edx
mov rcx, r15
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov al, byte [rsp + 0x40]
jmp 0x140004e68
xor al, al
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140006680
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
Function at 0x140004e98
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x140009010]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rsi, rcx
mov qword [rsp + 0x58], rcx
xor bl, bl
mov byte [rsp + 0x30], bl
cmp qword [rcx], 0
jbe 0x14000509d
mov rax, qword [rcx + 8]
dec rax
movabs rcx, 0x7ffffffffffe
cmp rax, rcx
ja 0x14000509d
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x14000509d
cmp qword [rsi + 0x28], 0
jbe 0x14000509d
cmp byte [0x140009050], bl
je 0x14000509d
xor ecx, ecx
mov r8d, 0x44617461
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r14, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14000509d
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
test al, al
je 0x14000509d
mov r8, qword [rsi + 0x10]
xor edx, edx
mov rcx, r14
call fcn.1400068c0
mov rcx, rsi
call fcn.140004a7c
test al, al
je 0x14000507a
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r13, rax
mov qword [rsp + 0x40], rax
mov rcx, qword [rsi]
call fcn.140003aec
mov r15, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140005075
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
cmp rax, r13
je 0x140004fb9
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
and qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rsi + 0x10]
mov rcx, qword [rsi + 8]
call qword [sym.imp.ntoskrnl.exe_IoAllocateMdl]
mov r12, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140005065
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_MmProbeAndLockPages]
mov dword [rsp + 0x28], 0x10
and dword [rsp + 0x20], 0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 1]
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_MmMapLockedPagesSpecifyCache]
mov rbx, rax
mov r8, qword [rsi + 0x10]
mov rdx, rax
mov rcx, r14
call fcn.1400069c0
mov rdx, r12
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_MmUnmapLockedPages]
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_MmUnlockPages]
mov bl, 1
mov byte [rsp + 0x30], bl
jmp 0x14000505c
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_IoFreeMdl]
cmp r15, r13
je 0x140005075
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
call fcn.1400050d0
test bl, bl
je 0x14000508e
mov r8, qword [rsi + 0x10]
mov rdx, r14
mov rcx, qword [rsi + 0x28]
call fcn.1400069c0
xor edx, edx
mov rcx, r14
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov al, bl
jmp 0x14000509f
xor al, al
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140006680
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
Function at 0x140005144
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r12
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x140009010]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov rdi, rcx
mov qword [rsp + 0x70], rcx
xor r14b, r14b
mov byte [rsp + 0x40], r14b
cmp qword [rcx], 0
jbe 0x140005319
cmp qword [rcx + 8], 0
jbe 0x140005319
cmp qword [rcx + 0x28], 0
jbe 0x140005319
cmp byte [0x140009050], r14b
je 0x140005319
call fcn.140004a7c
test al, al
je 0x140005305
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r15, rax
mov qword [rsp + 0x60], rax
mov rcx, qword [rdi]
call fcn.140003aec
mov rsi, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140005300
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_PsGetProcessWow64Process]
and qword [rsp + 0x50], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x98], xmm0
cmp rsi, r15
je 0x140005219
lea rdx, [rsp + 0x78]
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
nop
cmp qword [rdi + 0x10], 0
jne 0x14000529e
mov dword [rsp + 0x44], 0xc0000001
and qword [rsp + 0x48], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
and qword [rsp + 0x20], 0
mov r9d, 0x1fffff
xor r8d, r8d
mov edx, 0x200
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe_ObOpenObjectByPointer]
mov r12d, 1
cmp qword [rdi + 0x18], r12
sete r9b
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 8]
call fcn.140002ab8
movzx r14d, r14b
cmp dword [rsp + 0x44], 0
cmovge r14d, r12d
mov byte [rsp + 0x40], r14b
jmp 0x1400052a4
mov r12d, 1
cmp r14b, r12b
jne 0x1400052da
cmp qword [rsp + 0x50], 0
je 0x1400052da
cmp qword [rdi + 0x18], r12
jne 0x1400052da
mov qword [rsp + 0x58], 0x1000
mov r9d, 0x8000
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwFreeVirtualMemory]
jmp 0x1400052f0
cmp rsi, r15
je 0x140005300
lea rcx, [rsp + 0x78]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
call fcn.1400050d0
test r14b, r14b
je 0x140005314
mov rcx, qword [rdi + 0x28]
mov dword [rcx], 0x23ff
mov al, r14b
jmp 0x14000531b
xor al, al
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140006680
lea r11, [rsp + 0xb0]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop r12
ret
Function at 0x140005c60
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x140009010]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov r14, rcx
mov qword [rsp + 0x60], rcx
mov byte [rsp + 0x30], 0
cmp qword [rcx], 0
jbe 0x140005e4f
mov rax, qword [rcx + 8]
dec rax
movabs rcx, 0x7ffffffffffe
cmp rax, rcx
ja 0x140005e4f
cmp qword [r14 + 0x28], 0
jbe 0x140005e4f
cmp qword [r14 + 0x10], 0
jbe 0x140005e4f
cmp byte [0x140009050], 0
je 0x140005e4f
mov edx, 8
xor ecx, ecx
mov r8d, 0x726574
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r15, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140005e4f
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
test al, al
je 0x140005e4f
xor eax, eax
mov qword [r15], rax
mov rcx, r14
call fcn.140004a7c
test al, al
je 0x140005e2d
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r13, rax
mov qword [rsp + 0x50], rax
mov rcx, qword [r14]
call fcn.140003aec
mov r12, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140005e28
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
cmp rax, r13
je 0x140005d7c
lea rdx, [rsp + 0x68]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
nop
mov r8d, 1
mov rdx, qword [r14 + 0x10]
mov rcx, qword [r14 + 8]
call qword [sym.imp.ntoskrnl.exe_ProbeForRead]
cmp qword [0x1400090f0], 0
je 0x140005e02
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x38], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x40], rax
mov rcx, qword gs:[0x188]
mov edi, dword [0x14000911c]
add rdi, rcx
mov bl, byte [rdi]
mov byte [rdi], 0
mov rax, qword [0x1400090f0]
lea rcx, [rsp + 0x34]
mov qword [rsp + 0x20], rcx
mov r9d, dword [r14 + 0x18]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x40]
or rcx, 0xffffffffffffffff
mov r10, qword [0x1400082d8]
call r10
mov byte [rdi], bl
test eax, eax
js 0x140005e02
mov eax, dword [rsp + 0x34]
mov qword [r15], rax
mov byte [rsp + 0x30], 1
jmp 0x140005e18
cmp r12, r13
je 0x140005e28
lea rcx, [rsp + 0x68]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
call fcn.1400050d0
cmp byte [rsp + 0x30], 0
je 0x140005e3e
mov rcx, qword [r14 + 0x28]
mov rax, qword [r15]
mov qword [rcx], rax
xor edx, edx
mov rcx, r15
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov al, byte [rsp + 0x30]
jmp 0x140005e51
xor al, al
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.140006680
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
Function at 0x140005e80
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x140009010]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rsi, rcx
mov qword [rsp + 0x58], rcx
xor bl, bl
mov byte [rsp + 0x30], bl
cmp qword [rcx], 0
jbe 0x140006081
mov rax, qword [rcx + 8]
dec rax
movabs rcx, 0x7ffffffffffe
cmp rax, rcx
ja 0x140006081
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x140006081
cmp qword [rsi + 0x28], 0
jbe 0x140006081
cmp byte [0x140009050], bl
je 0x140006081
xor ecx, ecx
mov r8d, 0x44617461
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r14, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x140006081
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
test al, al
je 0x140006081
mov r8, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
mov rcx, r14
call fcn.1400069c0
mov rcx, rsi
call fcn.140004a7c
test al, al
je 0x140006064
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r13, rax
mov qword [rsp + 0x40], rax
mov rcx, qword [rsi]
call fcn.140003aec
mov r15, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14000605f
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
cmp rax, r13
je 0x140005fa3
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
and qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rsi + 0x10]
mov rcx, qword [rsi + 8]
call qword [sym.imp.ntoskrnl.exe_IoAllocateMdl]
mov r12, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14000604f
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_MmProbeAndLockPages]
mov dword [rsp + 0x28], 0x10
and dword [rsp + 0x20], 0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 1]
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_MmMapLockedPagesSpecifyCache]
mov rbx, rax
mov r8, qword [rsi + 0x10]
mov rdx, r14
mov rcx, rax
call fcn.1400069c0
mov rdx, r12
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_MmUnmapLockedPages]
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_MmUnlockPages]
mov bl, 1
mov byte [rsp + 0x30], bl
jmp 0x140006046
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_IoFreeMdl]
cmp r15, r13
je 0x14000605f
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
call fcn.1400050d0
test bl, bl
je 0x140006072
mov rcx, qword [rsi + 0x28]
mov dword [rcx], 0x23ff
xor edx, edx
mov rcx, r14
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov al, bl
jmp 0x140006083
xor al, al
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140006680
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
Function at 0x1400064b0
Capabilities:
Find process by pid

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x20
and qword [rsp + 0x40], 0
lea rdx, [rsp + 0x40]
mov rsi, rcx
mov rcx, qword [rcx]
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
test eax, eax
js 0x14000652d
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov edi, 4
lea rdx, [rsp + 0x48]
mov ecx, edi
mov ebp, edi
call qword [sym.imp.ntoskrnl.exe_PsLookupThreadByThreadId]
test eax, eax
js 0x140006522
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140006522
call qword [sym.imp.ntoskrnl.exe_IoThreadToProcess]
mov rcx, qword [rsp + 0x48]
mov rbx, rax
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rcx, qword [rsp + 0x40]
cmp rbx, rcx
je 0x14000653f
add edi, 4
cmp edi, 0x100000
jb 0x1400064e7
mov eax, 0xc0000001
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop rdi
pop rsi
pop rbp
ret
mov rax, qword [rsi]
mov qword [0x140009068], rax
xor eax, eax
mov qword [0x140009078], rcx
mov qword [0x140009070], rbp
jmp 0x140006532
Function at 0x140005c08
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140005c52
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140005c52
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140005c52
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140005c52
cmp dword [rcx + 0x84], 0xe
jbe 0x140005c52
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140005c54
xor al, al
add rsp, 0x28
ret