joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140009cc0
Capabilities:
Create directory
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x70
mov rax, qword [0x140015128]
xor rax, rsp
mov qword [rsp + 0x68], rax
lea rsi, [rcx + 0x44c]
mov r12d, 0x104
xor r14d, r14d
mov rdx, rsi
mov ecx, r12d
mov ebx, r14d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
nop dword [rax + rax]
test eax, eax
jne 0x140009d30
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140009ede
mov bpl, 2
mov r13d, 0x1e
xorps xmm0, xmm0
lea rcx, [rsp + 0x20]
xor eax, eax
mov rdi, r14
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x58], rax
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x60], eax
movups xmmword [rsp + 0x48], xmm0
call qword [sym.imp.msvcrt.dll_rand_s]
nop dword [rax + rax]
test eax, eax
jne 0x140009da5
mov eax, dword [rsp + 0x20]
lea r8, str.FSQ__08g
xorps xmm3, xmm3
lea rcx, [rsp + 0x28]
mov rdx, r13
cvtsi2sd xmm3, rax
divsd xmm3, qword [0x140011690]
mulsd xmm3, qword [0x140011688]
movq r9, xmm3
call fcn.14000460c
jmp 0x140009dbe
test bpl, bpl
jne 0x140009dc0
lea r8, str._Tmp_Fsq
mov rdx, r13
lea rcx, [rsp + 0x28]
call fcn.14000460c
mov ebx, eax
test ebx, ebx
js 0x140009ec6
test rsi, rsi
je 0x140009e00
mov rdx, r12
mov rax, rsi
cmp word [rax], r14w
je 0x140009de3
add rax, 2
sub rdx, 1
jne 0x140009dd3
mov rax, rdx
neg rax
sbb ecx, ecx
not ecx
and ecx, 0x80070057
test rdx, rdx
je 0x140009e05
mov rdi, r12
sub rdi, rdx
jmp 0x140009e05
mov ecx, 0x80070057
test ecx, ecx
js 0x140009ec6
mov rcx, r13
lea rax, [rsp + 0x28]
cmp word [rax], r14w
je 0x140009e25
add rax, 2
sub rcx, 1
jne 0x140009e15
mov rax, rcx
neg rax
sbb ebx, ebx
not ebx
and ebx, 0x80070057
test rcx, rcx
je 0x140009e42
mov rdx, r13
sub rdx, rcx
jmp 0x140009e45
mov rdx, r14
mov rax, rcx
neg rax
sbb r8, r8
and r8, rdx
test rcx, rcx
je 0x140009ec6
lea rax, [rdi + 2]
add rax, r8
cmp rax, r12
ja 0x140009ec6
lea r8, [rsp + 0x28]
mov rdx, rsi
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
nop dword [rax + rax]
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x140009edb
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 0xb7
jne 0x140009eb6
test bpl, bpl
jne 0x140009ecb
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 2]
call fcn.14000957c
jmp 0x140009ecb
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x140009ecb
mov ebx, 0x80070057
mov al, bpl
add bpl, 0xff
test al, al
je 0x140009ede
jmp 0x140009d39
mov ebx, r14d
mov eax, ebx
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14000e7b0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
Function at 0x14000b820
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov r14, qword [r8]
xorps xmm0, xmm0
mov esi, r9d
mov rdi, rdx
mov r15, rcx
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
movups xmmword [rbp - 0x20], xmm0
lea edx, [rbx + 1]
movups xmmword [rbp - 0x10], xmm0
call qword [sym.imp.KERNEL32.dll_CreateEventW]
nop dword [rax + rax]
mov rcx, rax
mov qword [rbp - 8], rax
mov eax, dword [rbp + 0x40]
mov dword [rbp - 0x10], eax
test rcx, rcx
je 0x14000b954
lea rax, [rbp - 0x20]
mov r8d, esi
lea r9, [rbp + 0x30]
mov qword [rsp + 0x20], rax
mov rdx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
nop dword [rax + rax]
test eax, eax
jne 0x14000b942
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 0x3e5
jne 0x14000b934
mov rax, qword [rbp - 8]
lea rdx, [rbp - 0x30]
mov qword [rbp - 0x30], rax
lea ecx, [rbx + 2]
mov rax, qword [r15 + 0x28]
or r9d, 0xffffffff
xor r8d, r8d
mov qword [rbp - 0x28], rax
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
nop dword [rax + rax]
test eax, eax
jne 0x14000b91c
xor r9d, r9d
lea r8, [rbp + 0x30]
lea rdx, [rbp - 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
nop dword [rax + rax]
test eax, eax
je 0x14000b928
mov rcx, qword [rbp - 8]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
nop dword [rax + rax]
jmp 0x14000b942
cmp eax, 1
jne 0x14000b928
mov ebx, 0x800704c7
jmp 0x14000b942
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rcx, qword [rbp - 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
jmp 0x14000b959
mov ebx, 0x8007000e
lea r11, [rsp + 0x60]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x14000c368
Capabilities:
Connect socket
Set socket configuration

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push r13
push r14
sub rsp, 0x60
mov rax, qword [0x140015128]
xor rax, rsp
mov qword [rsp + 0x58], rax
xor ebx, ebx
mov ebp, r9d
cmp qword [rcx + 8], 0xffffffffffffffff
mov r14, rdx
mov rsi, rcx
jne 0x14000c4a8
cmp qword [rcx + 0x20], rbx
jne 0x14000c3d0
xor r9d, r9d
lea edx, [rbx + 1]
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
nop dword [rax + rax]
mov qword [rsi + 0x20], rax
test rax, rax
jne 0x14000c3d0
mov ebx, 0x8007000e
jmp 0x14000c4ad
mov edx, 1
lea r13d, [rdx + 0x1f]
mov ecx, r13d
lea r8d, [rdx + 2]
call qword [sym.imp.WS2_32.dll_socket]
nop dword [rax + rax]
mov qword [rsi + 8], rax
cmp rax, 0xffffffffffffffff
je 0x14000c48c
test ebp, ebp
je 0x14000c44f
lea r9, [rsp + 0x30]
mov dword [rsp + 0x30], 1
lea edx, [r13 - 0x1d]
mov dword [rsp + 0x20], 4
mov r8d, 0x80000001
mov rcx, rax
call qword [sym.imp.WS2_32.dll_setsockopt]
nop dword [rax + rax]
cmp eax, 0xffffffff
jne 0x14000c44f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c4ad
movups xmm0, xmmword [0x140011590]
mov rcx, qword [rsi + 8]
lea rdx, [rsp + 0x38]
and dword [rsp + 0x52], 0
mov r8d, 0x1e
movdqu xmmword [rsp + 0x42], xmm0
mov word [rsp + 0x38], r13w
mov qword [rsp + 0x3a], r14
call qword [sym.imp.WS2_32.dll_connect]
nop dword [rax + rax]
cmp eax, 0xffffffff
jne 0x14000c4ad
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x14000c4ad
mov ebx, 0x8000ffff
mov eax, ebx
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14000e7b0
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop rsi
ret
Function at 0x14000eb5c
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14000eba8
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x14000eba0
cmp dword [rcx + 0x3c], edx
jl 0x14000eba0
cmp dword [rcx + 0x3c], 0x10000000
jae 0x14000eba0
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp], rax
cmp dword [rax], 0x4550
cmovne rax, rdx
mov rdx, rax
mov qword [rsp], rax
jmp 0x14000eba8
mov rax, rdx
add rsp, 0x18
ret
Function at 0x1400010d0
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
and dword [rsp + 0x48], 0
mov rdi, rcx
cmp qword [0x140004050], 0
je 0x140001107
test rcx, rcx
je 0x1400011f6
mov eax, dword [0x140004058]
mov dword [rcx], eax
jmp 0x1400011f6
lea rdx, [0x140002740]
lea rcx, [rsp + 0x20]
call fcn.140001734
lea rcx, [rsp + 0x20]
call qword [sym.imp.ntoskrnl.exe_MmGetSystemRoutineAddress]
mov rsi, rax
test rax, rax
je 0x1400011ff
mov r8d, dword [rsp + 0x48]
lea r9, [rsp + 0x48]
xor edx, edx
lea ecx, [rdx + 0xb]
call sub.ntoskrnl.exe_ZwQuerySystemInformation
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x1400011ff
mov edx, eax
xor ecx, ecx
mov r8d, 0x454e4f45
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r8d, dword [rsp + 0x48]
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.140002280
mov r8d, dword [rsp + 0x48]
lea r9, [rsp + 0x48]
mov rdx, rbx
mov ecx, 0xb
call sub.ntoskrnl.exe_ZwQuerySystemInformation
test eax, eax
js 0x1400011e3
mov r8d, dword [rbx]
xor edx, edx
test r8d, r8d
je 0x1400011e3
lea rcx, [rbx + 0x20]
mov r9, qword [rcx - 8]
cmp rsi, r9
jb 0x1400011ad
mov eax, dword [rcx]
add rax, r9
cmp rsi, rax
jb 0x1400011bd
inc edx
add rcx, 0x128
cmp edx, r8d
jb 0x14000119a
jmp 0x1400011e3
mov eax, edx
imul rcx, rax, 0x128
mov rax, qword [rcx + rbx + 0x18]
mov qword [0x140004050], rax
mov eax, dword [rcx + rbx + 0x20]
mov dword [0x140004058], eax
test rdi, rdi
je 0x1400011e3
mov dword [rdi], eax
test rbx, rbx
je 0x1400011f6
mov edx, 0x454e4f45
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov rax, qword [0x140004050]
jmp 0x140001201
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x140001220
Capabilities:
Access pe header

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r15, qword [rsp + 0xa0]
mov rbp, r9
mov r12b, r8b
mov r13, rdx
test r15, r15
jne 0x140001260
mov eax, 0xc000000d
jmp 0x1400012f8
xor ecx, ecx
call fcn.1400010d0
mov rbx, rax
test rax, rax
je 0x1400012f3
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_RtlImageNtHeader]
mov rsi, rax
test rax, rax
jne 0x14000128b
mov eax, 0xc000007b
jmp 0x1400012f8
lea r14, [rax + 0x108]
movzx eax, word [rax + 6]
mov rdi, r14
lea rcx, [rax + rax*4]
lea rax, [r14 + rcx*8]
cmp r14, rax
jae 0x1400012f3
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_RtlInitAnsiString]
mov rdx, rdi
lea rcx, [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_RtlInitAnsiString]
mov r8b, 1
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_RtlCompareString]
test eax, eax
je 0x140001316
movzx eax, word [rsi + 6]
add rdi, 0x28
lea rcx, [rax + rax*4]
lea rax, [r14 + rcx*8]
cmp rdi, rax
jb 0x1400012a6
mov eax, 0xc0000225
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov r9d, dword [rdi + 0xc]
lea rcx, [rsp + 0xa0]
mov eax, dword [rdi + 8]
add r9, rbx
and qword [rsp + 0xa0], 0
mov r8, rbp
mov qword [rsp + 0x28], rcx
mov dl, r12b
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.140001020
test eax, eax
js 0x1400012f8
mov ecx, dword [rsp + 0xa0]
sub ecx, ebx
mov dword [r15], ecx
jmp 0x1400012f8

Function at 0x140001950
Capabilities:
Get system information on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
sub rsp, 0x20
xor ebp, ebp
lea r9, [rax + 0x10]
mov rsi, rcx
mov dword [rax + 0x10], ebp
xor r8d, r8d
xor edx, edx
lea ebx, [rbp + 0xb]
mov ecx, ebx
call sub.ntoskrnl.exe_ZwQuerySystemInformation
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x140001a16
mov edx, eax
xor ecx, ecx
mov r8d, 0x4e554c4c
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r8d, dword [rsp + 0x38]
lea r9, [rsp + 0x38]
mov rdx, rax
mov ecx, ebx
mov rdi, rax
call sub.ntoskrnl.exe_ZwQuerySystemInformation
test eax, eax
js 0x140001a16
mov r8d, dword [rdi]
mov ebx, ebp
mov ecx, ebp
test r8d, r8d
je 0x1400019ff
mov eax, ecx
mov r10, rsi
imul r11, rax, 0x128
lea rax, [rdi + 0x30]
add rax, r11
sub r10, rax
movzx edx, byte [rax]
movzx r9d, byte [rax + r10]
sub edx, r9d
jne 0x1400019ed
inc rax
test r9d, r9d
jne 0x1400019d8
test edx, edx
je 0x1400019fa
inc ecx
cmp ecx, r8d
jb 0x1400019c2
jmp 0x1400019ff
mov rbx, qword [r11 + rdi + 0x18]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
test rbx, rbx
cmove rbx, rbp
mov rax, rbx
jmp 0x140001a18
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x140001b50
Capabilities:
Find process by pid
Print debug messages

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rbx, rcx
mov edi, r9d
lea rcx, [0x140002850]
mov rsi, r8
mov rbp, rdx
call sub.ntoskrnl.exe_DbgPrint
and qword [rsp + 0x40], 0
lea rdx, [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
cmp qword [rsp + 0x40], 0
jne 0x140001ba8
lea rcx, [0x140002870]
call sub.ntoskrnl.exe_DbgPrint
xor eax, eax
jmp 0x140001be5
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r8, qword [rsp + 0x40]
mov r9, rbp
mov rcx, rax
mov rdx, rsi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rdi
call sub.ntoskrnl.exe_MmCopyVirtualMemory
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, 1
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret

Function at 0x140001c00
Capabilities:
Find process by pid

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0x50
and qword [rax - 0x18], 0
mov rsi, rdx
lea rdx, [rax - 0x18]
mov ebx, r9d
mov rdi, r8
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
cmp qword [rsp + 0x40], 0
jne 0x140001c34
xor eax, eax
jmp 0x140001c71
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov rcx, qword [rsp + 0x40]
mov r9, rdi
mov r8, rax
mov rdx, rsi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rbx
call sub.ntoskrnl.exe_MmCopyVirtualMemory
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, 1
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret

Function at 0x140001c90
Capabilities:
Allocate or change rwx memory
Attach user process memory
Find process by pid

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x78], rax
and qword [rsp + 0x30], 0
mov rbx, rdx
lea rdx, [rsp + 0x30]
mov edi, r8d
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
jne 0x140001cd1
xor eax, eax
jmp 0x140001d25
and qword [rsp + 0x38], 0
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x40], rbx
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
lea r9, [rsp + 0x40]
mov dword [rsp + 0x28], edi
xor r8d, r8d
mov dword [rsp + 0x20], 0x1000
lea rdx, [rsp + 0x38]
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwAllocateVirtualMemory]
lea rcx, [rsp + 0x48]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400020c0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140001d50
Capabilities:
Attach user process memory
Find process by pid
Print debug messages

Disassembly:
push rbx
sub rsp, 0x70
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x68], rax
and qword [rsp + 0x20], 0
mov rbx, rdx
lea rdx, [rsp + 0x20]
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x140001dd7
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x30], rbx
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
and qword [rsp + 0x28], 0
lea r8, [rsp + 0x28]
mov r9d, 0x8000
lea rdx, [rsp + 0x30]
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwFreeVirtualMemory]
mov edx, eax
lea rcx, [0x140002880]
call sub.ntoskrnl.exe_DbgPrint
lea rcx, [rsp + 0x38]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1400020c0
add rsp, 0x70
pop rbx
ret

Function at 0x140001df0
Capabilities:
Allocate or change rwx memory
Attach user process memory
Find process by pid
Print debug messages

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x98
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov rbx, rcx
mov ebp, r9d
lea rcx, [0x1400028a0]
mov rsi, r8
mov rdi, rdx
call sub.ntoskrnl.exe_DbgPrint
and qword [rsp + 0x30], 0
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
jne 0x140001e54
lea rcx, [0x140002870]
call sub.ntoskrnl.exe_DbgPrint
xor eax, eax
jmp 0x140001eb3
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rsi
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
lea rax, [rsp + 0x38]
mov r9d, ebp
lea r8, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x48]
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwProtectVirtualMemory]
mov edx, eax
lea rcx, [0x1400028c0]
call sub.ntoskrnl.exe_DbgPrint
lea rcx, [rsp + 0x50]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1400020c0
add rsp, 0x98
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x140001ee0
Capabilities:
Find process by pid
Print debug messages

Disassembly:
push rbx
sub rsp, 0x40
mov rbx, rcx
lea rcx, [0x1400028e0]
call sub.ntoskrnl.exe_DbgPrint
and qword [rsp + 0x58], 0
lea rdx, [rsp + 0x58]
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
jne 0x140001f23
lea rcx, [0x140002870]
call sub.ntoskrnl.exe_DbgPrint
xor eax, eax
jmp 0x140001f76
and qword [rsp + 0x60], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov r9d, 0x1fffff
mov rax, qword [sym.imp.ntoskrnl.exe_PsProcessType]
xor r8d, r8d
mov byte [rsp + 0x28], 0
mov rdx, qword [rax]
mov qword [rsp + 0x20], rdx
xor edx, edx
call qword [sym.imp.ntoskrnl.exe_ObOpenObjectByPointer]
mov edx, eax
lea rcx, [0x140002900]
call sub.ntoskrnl.exe_DbgPrint
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rax, qword [rsp + 0x60]
add rsp, 0x40
pop rbx
ret

Function at 0x140001f90
Capabilities:
Find process by pid

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0x50
and qword [rax - 0x18], 0
mov rsi, rdx
lea rdx, [rax - 0x18]
mov ebx, r9d
mov rdi, r8
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
cmp qword [rsp + 0x40], 0
jne 0x140001fc4
xor eax, eax
jmp 0x140002001
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov r8, qword [rsp + 0x40]
mov r9, rsi
mov rcx, rax
mov rdx, rdi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rbx
call sub.ntoskrnl.exe_MmCopyVirtualMemory
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, 1
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret

Function at 0x140002020
Capabilities:
Find process by pid

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0x50
and qword [rax - 0x18], 0
mov rsi, rdx
lea rdx, [rax - 0x18]
mov ebx, r9d
mov rdi, r8
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
cmp qword [rsp + 0x40], 0
jne 0x140002054
xor eax, eax
jmp 0x140002091
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov rcx, qword [rsp + 0x40]
mov r9, rdi
mov r8, rax
mov rdx, rsi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rbx
call sub.ntoskrnl.exe_MmCopyVirtualMemory
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, 1
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
Function at 0x414a20
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x414bc6
sub rsp, 0x50
mov qword [rsp + 0x48], rbp
lea rbp, [rsp + 0x48]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call fcn.00430b40
xorps xmm15, xmm15
mov r14, qword [0x00598400]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
jne 0x414a8b
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
jmp 0x414aa0
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
sub rcx, rbx
add rax, rbx
mov rbx, rcx
nop
test rbx, rbx
jbe 0x414ac5
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x40], rax
mov rcx, rbx
jmp 0x414ad9
cmp rbx, 0x1000
jae 0x414a95
nop dword [rax]
jmp 0x414b49
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
shr rbx, 1
and rbx, 0xfffffffffffff000
mov qword [rsp + 0x38], rbx
nop
cmp rbx, 0x1000
jae 0x414aed
xor edx, edx
jmp 0x414b40
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call fcn.00430b40
xorps xmm15, xmm15
mov r14, qword [0x00598400]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
sete al
mov rcx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov edx, eax
mov rax, qword [rsp + 0x40]
nop dword [rax]
test dl, dl
jne 0x414acf
jmp 0x414ab4
call fcn.0045fb00
xorps xmm15, xmm15
mov r14, qword [0x00598400]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x30], rax
call fcn.00435080
lea rax, [0x004ac736]
mov ebx, 0x18
call fcn.00435980
mov rax, qword [rsp + 0x38]
call fcn.00435680
lea rax, [0x004ac7f6]
mov ebx, 0x19
call fcn.00435980
mov rax, qword [rsp + 0x30]
nop
call fcn.00435680
call fcn.004352e0
call fcn.00435100
lea rax, [0x004ae9ad]
mov ebx, 0x21
nop dword [rax + rax]
call fcn.00433740
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045bf60
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.00414a20