joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140002280
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
mov r8, rdx
lea rdx, [rax + rcx]
movzx eax, word [rdx + 0x14]
lea rax, [rdx + rax + 0x18]
movzx edx, word [rdx + 6]
test edx, edx
je 0x1400022cc
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop dword [rax + rax]
mov ecx, dword [rax + 0xc]
mov rdx, rcx
cmp rcx, r8
ja 0x1400022c3
add edx, dword [rax + 8]
cmp rdx, r8
ja 0x1400022ce
add rax, 0x28
cmp rax, r9
jne 0x1400022b0
xor eax, eax
ret

Function at 0x1400022d0
Capabilities:
Parse pe header

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x20
mov rbx, rcx
call sym.strlen
cmp rax, 8
ja 0x140002360
mov rdx, qword [0x14001ae00]
xor r12d, r12d
cmp word [rdx], 0x5a4d
jne 0x14000234e
movsxd rax, dword [rdx + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
jne 0x14000234e
cmp word [rax + 0x18], 0x20b
jne 0x14000234e
movzx edx, word [rax + 0x14]
lea r12, [rax + rdx + 0x18]
movzx eax, word [rax + 6]
test eax, eax
je 0x140002360
sub eax, 1
lea rax, [rax + rax*4]
lea rsi, [r12 + rax*8 + 0x28]
jmp 0x140002339
add r12, 0x28
cmp r12, rsi
je 0x140002360
mov r8d, 8
mov rdx, rbx
mov rcx, r12
call sym.strncmp
test eax, eax
jne 0x140002330
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
ret
xor r12d, r12d
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
ret

Function at 0x140002370
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x14001ae00]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x140002390
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x140002398
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140002390
movzx eax, word [r8 + 0x14]
sub rcx, rdx
movzx edx, word [r8 + 6]
lea rax, [r8 + rax + 0x18]
test edx, edx
je 0x1400023e5
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop dword [rax + rax]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x1400023dc
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x140002390
add rax, 0x28
cmp rax, r9
jne 0x1400023c8
xor eax, eax
ret

Function at 0x1400023f0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x14001ae00]
xor r8d, r8d
cmp word [rax], 0x5a4d
jne 0x140002410
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x140002418
mov eax, r8d
ret
cmp word [rax + 0x18], 0x20b
jne 0x140002410
movzx r8d, word [rax + 6]
mov eax, r8d
ret

Function at 0x140002430
Capabilities:
Parse pe header

Disassembly:
mov r8, qword [0x14001ae00]
xor eax, eax
cmp word [r8], 0x5a4d
jne 0x140002450
movsxd rdx, dword [r8 + 0x3c]
add rdx, r8
cmp dword [rdx], 0x4550
je 0x140002458
ret
cmp word [rdx + 0x18], 0x20b
jne 0x140002450
movzx eax, word [rdx + 0x14]
lea rax, [rdx + rax + 0x18]
movzx edx, word [rdx + 6]
test edx, edx
je 0x140002498
sub edx, 1
lea rdx, [rdx + rdx*4]
lea rdx, [rax + rdx*8 + 0x28]
nop dword [rax]
test byte [rax + 0x27], 0x20
je 0x14000248f
test rcx, rcx
je 0x140002450
sub rcx, 1
add rax, 0x28
cmp rax, rdx
jne 0x140002480
xor eax, eax
ret
Function at 0x1400024a0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x14001ae00]
xor r8d, r8d
cmp word [rax], 0x5a4d
jne 0x1400024c0
movsxd rdx, dword [rax + 0x3c]
add rdx, rax
cmp dword [rdx], 0x4550
je 0x1400024c8
mov rax, r8
ret
cmp word [rdx + 0x18], 0x20b
cmove r8, rax
mov rax, r8
ret

Function at 0x1400024e0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rax, qword [0x14001ae00]
xor r8d, r8d
cmp word [rax], 0x5a4d
jne 0x140002500
movsxd rdx, dword [rax + 0x3c]
add rdx, rax
cmp dword [rdx], 0x4550
je 0x140002508
mov eax, r8d
ret
cmp word [rdx + 0x18], 0x20b
jne 0x140002500
sub rcx, rax
movzx eax, word [rdx + 0x14]
lea rax, [rdx + rax + 0x18]
movzx edx, word [rdx + 6]
test edx, edx
je 0x140002500
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x140002544
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x140002558
add rax, 0x28
cmp r9, rax
jne 0x140002530
xor r8d, r8d
mov eax, r8d
ret
mov r8d, dword [rax + 0x24]
not r8d
shr r8d, 0x1f
mov eax, r8d
ret

Function at 0x140002570
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov r11, qword [0x14001ae00]
xor r9d, r9d
cmp word [r11], 0x5a4d
jne 0x140002592
movsxd r8, dword [r11 + 0x3c]
add r8, r11
cmp dword [r8], 0x4550
je 0x1400025a0
mov rax, r9
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140002592
mov eax, dword [r8 + 0x90]
test eax, eax
je 0x140002592
movzx edx, word [r8 + 0x14]
lea rdx, [r8 + rdx + 0x18]
movzx r8d, word [r8 + 6]
test r8d, r8d
je 0x140002592
sub r8d, 1
lea r8, [r8 + r8*4]
lea r10, [rdx + r8*8 + 0x28]
nop dword [rax]
mov r9d, dword [rdx + 0xc]
mov r8, r9
cmp rax, r9
jb 0x1400025ed
add r8d, dword [rdx + 8]
cmp rax, r8
jb 0x140002600
add rdx, 0x28
cmp r10, rdx
jne 0x1400025d8
xor r9d, r9d
mov rax, r9
ret
add rax, r11
jmp 0x14000260f
sub ecx, 1
add rax, 0x14
mov r8d, dword [rax + 4]
test r8d, r8d
jne 0x14000261f
mov edx, dword [rax + 0xc]
test edx, edx
je 0x1400025f6
test ecx, ecx
jg 0x140002608
mov r9d, dword [rax + 0xc]
add r9, r11
mov rax, r9
ret

Function at 0x140003c90
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rsi, qword [0x14001ae80]
mov rax, qword [rsi]
test rax, rax
je 0x140003d20
cmp qword [rax + 0x30], 0
jne 0x140003d40
lea rbx, [0x140019078]
mov qword [rax + 0x30], rbx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
mov rax, qword [rsi]
test rax, rax
je 0x140003cf0
cmp qword [rax + 0x30], 0
jne 0x140003d10
lea rdx, [0x140019078]
mov qword [rax + 0x30], rdx
mov rax, rdx
cmp dword [rax], 0xffffffff
je sym.pthread_tls_init.cold
add rsp, 0x28
pop rbx
pop rsi
ret
call sym.__shmem3_winpthreads_tdm_init_local_region
mov r8, rax
mov rax, qword [rsi]
cmp qword [r8 + 0x30], 0
je 0x140003cd2
test rax, rax
jne 0x140003d10
call sym.__shmem3_winpthreads_tdm_init_local_region
nop dword [rax]
mov rax, qword [rax + 0x30]
jmp 0x140003ce0
call sym.__shmem3_winpthreads_tdm_init_local_region
cmp qword [rax + 0x30], 0
mov rax, qword [rsi]
je 0x140003cb0
test rax, rax
jne 0x140003d40
call sym.__shmem3_winpthreads_tdm_init_local_region
nop dword [rax]
mov rbx, qword [rax + 0x30]
jmp 0x140003cbb
Function at 0x140007910
Capabilities:
Hijack thread execution
Resume thread
Suspend thread

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x20
mov rbx, qword [0x14001ae80]
mov rax, qword [rbx]
mov r12, rcx
mov esi, edx
test rax, rax
je 0x1400079e0
cmp qword [rax + 0x60], 0
jne 0x140007a00
lea rcx, [0x140019068]
mov qword [rax + 0x60], rcx
call sym.pthread_mutex_lock
mov rcx, r12
call sym.__pthread_get_pointer
test rax, rax
je 0x140007a10
cmp qword [rax + 0x1d8], r12
jne 0x140007a10
test byte [rax + 0x40], 0xc
jne 0x140007a10
mov edx, dword [rax + 0xbc]
test edx, edx
jne 0x140007a10
mov rax, qword [rax + 0x28]
sub rax, 1
cmp rax, 0xfffffffffffffffd
ja 0x140007a10
mov rax, qword [rbx]
test rax, rax
je 0x140007a70
cmp qword [rax + 0x60], 0
jne 0x140007a90
lea rcx, [0x140019068]
mov qword [rax + 0x60], rcx
call sym.pthread_mutex_unlock
test esi, esi
je 0x140007aa0
lea edx, [rsi - 2]
cmp edx, 0x15
ja 0x140007aa8
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
jmp sym.pthread_cancel
call sym.__shmem3_winpthreads_tdm_init_local_region
cmp qword [rax + 0x60], 0
mov rax, qword [rbx]
je 0x14000793b
test rax, rax
jne 0x140007a00
call sym.__shmem3_winpthreads_tdm_init_local_region
nop dword [rax]
mov rcx, qword [rax + 0x60]
jmp 0x140007946
mov rax, qword [rbx]
test rax, rax
je 0x140007a40
cmp qword [rax + 0x60], 0
jne 0x140007a60
lea rcx, [0x140019068]
mov qword [rax + 0x60], rcx
call sym.pthread_mutex_unlock
mov eax, 3
add rsp, 0x20
pop rbx
pop rsi
pop r12
ret
call sym.__shmem3_winpthreads_tdm_init_local_region
mov r8, rax
mov rax, qword [rbx]
cmp qword [r8 + 0x60], 0
je 0x140007a1f
test rax, rax
jne 0x140007a60
call sym.__shmem3_winpthreads_tdm_init_local_region
nop dword [rax]
mov rcx, qword [rax + 0x60]
jmp 0x140007a2a
call sym.__shmem3_winpthreads_tdm_init_local_region
cmp qword [rax + 0x60], 0
mov rax, qword [rbx]
je 0x1400079aa
test rax, rax
jne 0x140007a90
call sym.__shmem3_winpthreads_tdm_init_local_region
nop dword [rax]
mov rcx, qword [rax + 0x60]
jmp 0x1400079b5
xor eax, eax
jmp 0x140007a34
mov eax, 0x16
jmp 0x140007a34
Function at 0x140006010
Capabilities:
Check for debugger via api

Disassembly:
sub rsp, 0x38
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea rdx, [rsp + 0x20]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CheckRemoteDebuggerPresent]
mov eax, dword [rsp + 0x20]
add rsp, 0x38
ret

Function at 0x1400062c0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Get system information on windows

Disassembly:
push rdi
sub rsp, 0x80
mov qword [rsp + 0x40], 0
lea rax, [rsp + 0x48]
mov rdi, rax
xor eax, eax
mov ecx, 0x30
rep stosb byte [rdi], al
mov dword [rsp + 0x2c], 0
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x4c]
mov r9d, 0x40
mov r8d, 0x3000
mov edx, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x14000632a
xor eax, eax
jmp 0x140006394
mov rdi, qword [rsp + 0x20]
mov eax, 0xc3
mov ecx, 1
rep stosb byte [rdi], al
mov eax, dword [rsp + 0x4c]
lea r9, [rsp + 0x2c]
mov r8d, 0x140
mov edx, eax
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x14000635f
xor eax, eax
jmp 0x140006394
call qword [rsp + 0x20]
jmp 0x14000637c
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, 1
add rsp, 0x80
pop rdi
ret

Function at 0x1400077b0
Capabilities:
Hide thread from debugger

Disassembly:
sub rsp, 0x88
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x38], send
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea rdx, [0x140012068]
lea rcx, [rsp + 0x40]
call fcn.140003460
mov rcx, rax
call fcn.140006960
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x30], rax
lea rdx, str.NtSetInformationThread
lea rcx, [rsp + 0x58]
call fcn.140007750
mov rcx, rax
call fcn.140007880
mov rdx, rax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x28], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
xor r9d, r9d
xor r8d, r8d
mov edx, send
mov rcx, rax
call qword [rsp + 0x28]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x14000785d
mov dword [rsp + 0x20], 1
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0x88
ret

Function at 0x140007c00
Capabilities:
Check for outputdebugstring error
Print debug messages

Disassembly:
sub rsp, 0x48
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x24], 0
mov dword [rsp + 0x20], 0x29a
call fcn.140007be0
movzx eax, al
test eax, eax
je 0x140007c6f
mov ecx, dword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rdx, str.random
lea rcx, [rsp + 0x28]
call fcn.140007a50
mov rcx, rax
call fcn.140007c90
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, dword [rsp + 0x20]
jne 0x140007c6f
mov dword [rsp + 0x24], 1
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0x48
ret
Function at 0x140007d40
Capabilities:
Get explorer pid

Disassembly:
sub rsp, 0x38
mov dword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_GetShellWindow]
lea rdx, [rsp + 0x20]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [rsp + 0x20]
add rsp, 0x38
ret

Function at 0x140007e30
Capabilities:
Check for peb beingdebugged flag

Disassembly:
sub rsp, 0x18
mov rax, qword gs:[0x60]
mov qword [rsp], rax
mov rax, qword [rsp]
movzx eax, byte [rax + 2]
cmp eax, 1
jne 0x140007e57
mov eax, 1
jmp 0x140007e59
xor eax, eax
add rsp, 0x18
ret

Function at 0x140007e60
Capabilities:
Get process heap flags

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
call fcn.140008060
movzx eax, al
test eax, eax
je 0x140007ea7
mov rax, qword gs:[0x60]
add rax, 0x30
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
add rax, 0x70
mov qword [rsp + 0x28], rax
jmp 0x140007eca
mov rax, qword gs:[0x60]
add rax, 0x30
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
add rax, 0x14
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
add rsp, 0x38
ret

Function at 0x140008080
Capabilities:
Access peb ldr_data
Get kernel32 base address
Get process heap force flags

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
call fcn.140008060
movzx eax, al
test eax, eax
je 0x1400080c7
mov rax, qword gs:[0x60]
add rax, 0x30
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
add rax, 0x74
mov qword [rsp + 0x28], rax
jmp 0x1400080ea
mov rax, qword gs:[0x60]
add rax, 0x30
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
add rax, 0x18
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
add rsp, 0x38
ret

Function at 0x140008140
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x10], 0
mov qword [rsp + 0x18], 0
mov rax, qword gs:[0x30]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x60]
mov qword [rsp + 0x28], rax
mov rax, qword gs:[0x60]
add rax, 0xbc
mov qword [rsp + 0x10], rax
cmp qword [rsp + 0x10], 0
je 0x1400081a6
mov rax, qword [rsp + 0x10]
mov eax, dword [rax]
and eax, 0x70
test eax, eax
je 0x1400081a6
mov dword [rsp + 4], 1
jmp 0x1400081ae
mov dword [rsp + 4], 0
movzx eax, byte [rsp + 4]
mov byte [rsp], al
cmp qword [rsp + 0x18], 0
je 0x1400081d6
mov rax, qword [rsp + 0x18]
mov eax, dword [rax]
and eax, 0x70
test eax, eax
je 0x1400081d6
mov dword [rsp + 8], 1
jmp 0x1400081de
mov dword [rsp + 8], 0
movzx eax, byte [rsp + 8]
mov byte [rsp + 1], al
movzx eax, byte [rsp]
test eax, eax
jne 0x1400081f8
movzx eax, byte [rsp + 1]
test eax, eax
je 0x140008201
mov eax, 1
jmp 0x140008203
xor eax, eax
add rsp, 0x38
ret
Function at 0x1400082e0
Capabilities:
Check for protected handle exception

Disassembly:
sub rsp, 0x58
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0x48], rax
lea rdx, str.Random_name
lea rcx, [rsp + 0x28]
call fcn.140003610
mov rcx, rax
call fcn.140008360
mov r8, rax
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rsp + 0x20], rax
mov r8d, 2
mov edx, 2
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
nop
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140008349
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0x58
ret

Function at 0x1400083c0
Capabilities:
Check for software breakpoints

Disassembly:
sub rsp, 0x28
lea rax, [0x1400083b0]
lea rcx, [fcn.140008380]
sub rax, rcx
mov qword [rsp + 8], rax
lea rax, [fcn.140008380]
mov qword [rsp + 0x10], rax
mov qword [rsp], 0
jmp 0x1400083fb
mov rax, qword [rsp]
inc rax
mov qword [rsp], rax
mov rax, qword [rsp + 8]
cmp qword [rsp], rax
jae 0x140008428
mov rax, qword [rsp]
mov rcx, qword [rsp + 0x10]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax]
cmp eax, 0xcc
jne 0x140008426
mov eax, 1
jmp 0x14000842a
jmp 0x1400083f0
xor eax, eax
add rsp, 0x28
ret

Function at 0x140008750
Capabilities:
Access peb ldr_data

Disassembly:
sub rsp, 0x18
mov rax, qword gs:[0x60]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 8]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x20]
mov qword [rsp], rax
mov rax, qword [rsp]
mov rax, qword [rax + 0x30]
add rax, 0x100000
mov rcx, qword [rsp]
mov qword [rcx + 0x30], rax
add rsp, 0x18
ret

Function at 0x140008ca0
Capabilities:
Get disk size

Disassembly:
sub rsp, 0x48
movabs rax, 0x1400000000
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0
je 0x140008cf7
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
jae 0x140008cf7
mov eax, 1
jmp 0x140008cf9
xor eax, eax
add rsp, 0x48
ret
Function at 0x140008d00
Capabilities:
Get disk size

Disassembly:
push rdi
sub rsp, 0xa0
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x48], 0xffffffffffffffff
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x58], 0
lea rax, [rsp + 0x5c]
mov rdi, rax
xor eax, eax
mov ecx, 4
rep stosb byte [rdi], al
mov dword [rsp + 0x50], 0
movabs rax, 0x1400000000
mov qword [rsp + 0x60], rax
call fcn.14000e540
test eax, eax
jne 0x140008d78
call fcn.140008060
movzx eax, al
test eax, eax
je 0x140008d78
xor eax, eax
jmp 0x140008e50
lea rdx, str..PhysicalDrive0
lea rcx, [rsp + 0x68]
call fcn.140003520
mov rcx, rax
call fcn.140008910
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0xffffffffffffffff
jne 0x140008ddd
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140008e50
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x7405c
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
je 0x140008e41
mov rax, qword [rsp + 0x60]
cmp qword [rsp + 0x58], rax
jge 0x140008e39
mov dword [rsp + 0x40], 1
jmp 0x140008e41
mov dword [rsp + 0x40], 0
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0xa0
pop rdi
ret

Function at 0x1400090b0
Capabilities:
Get memory capacity

Disassembly:
push rdi
sub rsp, 0x80
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x28], 0x40000000
lea rax, [rsp + 0x30]
mov rdi, rax
xor eax, eax
mov ecx, 0x40
rep stosb byte [rdi], al
mov dword [rsp + 0x30], 0x40
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov rax, qword [rsp + 0x28]
cmp qword [rsp + 0x38], rax
jae 0x14000910b
mov dword [rsp + 0x20], 1
jmp 0x140009113
mov dword [rsp + 0x20], 0
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0x80
pop rdi
ret
Function at 0x140009130
Capabilities:
Enumerate disk properties

Disassembly:
sub rsp, 0xe8
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov dword [rsp + 0x50], 0
mov r9d, 2
xor r8d, r8d
xor edx, edx
lea rcx, [0x1400180b8]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0xffffffffffffffff
jne 0x14000917d
xor eax, eax
jmp 0x140009359
mov dword [rsp + 0x68], 0x20
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x4c], 0
mov dword [rsp + 0x48], 0
jmp 0x1400091aa
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
lea r8, [rsp + 0x68]
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x14000930e
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
mov r8d, 1
lea rdx, [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
jne 0x14000923f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14000923b
cmp qword [rsp + 0x40], 0
je 0x14000921f
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [rsp + 0x4c]
shl eax, 1
mov eax, eax
mov edx, eax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x40], rax
jmp 0x14000923d
jmp 0x14000923f
jmp 0x1400091c6
lea rdx, str.vbox
lea rcx, [rsp + 0x88]
call fcn.140008860
mov rcx, rax
call fcn.1400088f0
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x1400092ff
lea rdx, str.vmware
lea rcx, [rsp + 0xa8]
call fcn.140007a50
mov rcx, rax
call fcn.140007c90
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x1400092ff
lea rdx, str.qemu
lea rcx, [rsp + 0x98]
call fcn.140008860
mov rcx, rax
call fcn.1400088f0
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x1400092ff
lea rdx, str.virtual
lea rcx, [rsp + 0xb8]
call fcn.140003400
mov rcx, rax
call fcn.1400051e0
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
je 0x140009309
mov dword [rsp + 0x50], 1
jmp 0x14000930e
jmp 0x1400091a0
cmp qword [rsp + 0x40], 0
je 0x140009321
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14000933c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x103
je 0x14000933c
xor eax, eax
jmp 0x140009359
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
cmp dword [rsp + 0x50], 0
je 0x140009357
mov eax, 1
jmp 0x140009359
xor eax, eax
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0xe8
ret
Function at 0x14000cb20
Capabilities:
Get token membership

Disassembly:
sub rsp, 0x88
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x70], 0
mov byte [rsp + 0x71], 0
mov byte [rsp + 0x72], 0
mov byte [rsp + 0x73], 0
mov byte [rsp + 0x74], 0
mov byte [rsp + 0x75], 5
lea rax, [rsp + 0x68]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9d, 0x220
mov r8d, 0x20
mov dl, 2
lea rcx, [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
jne 0x14000cbaf
xor eax, eax
jmp 0x14000cbe4
mov dword [rsp + 0x60], 0
lea r8, [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0x14000cbd5
mov dword [rsp + 0x60], 0
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0x88
ret
Function at 0x14000e410
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x288
mov rax, qword [0x14001b038]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov qword [rsp + 0x20], 0
mov edx, 0x238
lea rcx, [rsp + 0x30]
call fcn.140006170
xor edx, edx
mov ecx, 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0xffffffffffffffff
jne 0x14000e472
lea rcx, [0x140017ec0]
call fcn.14000e1a0
xor eax, eax
jmp 0x14000e51a
mov dword [rsp + 0x30], 0x238
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
jne 0x14000e4a8
lea rcx, str.Process32First
call fcn.14000e1a0
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x14000e51a
mov rdx, qword [rsp + 0x290]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x14000e4d0
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x38]
jmp 0x14000e51a
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call sub.KERNEL32.dll_Process32NextW
test eax, eax
je 0x14000e50d
mov rdx, qword [rsp + 0x290]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x14000e50b
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x38]
jmp 0x14000e51a
jmp 0x14000e4d0
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14000e9a0
add rsp, 0x288
ret