joyce8/EMBER2024-capa huggingface dataset:
Function at 0x53ec20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x53ed7a
push rbp
mov rbp, rsp
add rsp, 0xffffffffffffff80
movabs rdx, 0x1b508c121b2c6418
mov qword [rsp + 0x54], rdx
movabs rdx, 0x19f06e35f14066f8
mov qword [rsp + 0x5c], rdx
movabs rdx, 0xb708c7f619f06e35
mov qword [rsp + 0x60], rdx
movabs rdx, 0xd12bc3518756c2a
mov qword [rsp + 0x68], rdx
movabs rdx, 0xcf3a5a03f6160a0c
mov qword [rsp + 0x70], rdx
movabs rdx, 0x6595c8f046e5d39b
mov qword [rsp + 0x78], rdx
movabs rdx, 0x17110b0b1f101203
mov qword [rsp + 0x1c], rdx
movabs rdx, 0x520232918022020
mov qword [rsp + 0x24], rdx
movabs rdx, 0xc021703250c2419
mov qword [rsp + 0x2c], rdx
movabs rdx, 0xc00140725130428
mov qword [rsp + 0x34], rdx
movabs rdx, 0xe230c1e2a2a1113
mov qword [rsp + 0x3c], rdx
movabs rdx, 0x2a081b0a1c2919
mov qword [rsp + 0x44], rdx
movabs rdx, 0xb1a201c1e261d0f
mov qword [rsp + 0x4c], rdx
xor eax, eax
jmp 0x53ed18
movzx r9d, byte [rsp + rsi + 0x54]
lea edx, [r9 + rdx]
lea edx, [rdx + 0x19]
mov byte [rsp + rdi + 0x54], dl
mov byte [rsp + rsi + 0x54], r8b
add rax, 2
cmp rax, 0x38
jge 0x53ed4a
movzx edx, byte [rsp + rax + 0x1c]
movzx esi, byte [rsp + rax + 0x1d]
mov edi, edx
xor edx, esi
add edx, eax
cmp rdi, 0x2c
jae 0x53ed6d
movzx r8d, byte [rsp + rdi + 0x54]
lea r8d, [r8 + rdx]
lea r8d, [r8 + 0x19]
cmp rsi, 0x2c
jb 0x53ecfe
jmp 0x53ed61
xor eax, eax
lea rbx, [rsp + 0x54]
mov ecx, 0x2c
call fcn.00448840
sub rsp, 0xffffffffffffff80
pop rbp
ret
mov eax, esi
mov ecx, 0x2c
call fcn.0045b700
mov eax, edi
mov ecx, 0x2c
call fcn.0045b700
nop
call fcn.00459420
nop
jmp fcn.0053ec20

Function at 0x53f020
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x53f0d8
push rbp
mov rbp, rsp
sub rsp, 0x30
movabs rdx, 0x756561dda2a696dc
mov qword [rsp + 0x28], rdx
movabs rdx, 0x107020304030600
mov qword [rsp + 0x1e], rdx
mov word [rsp + 0x26], 0x606
xor eax, eax
jmp 0x53f075
movzx r9d, byte [rsp + rsi + 0x28]
lea edx, [r9 + rdx]
lea edx, [rdx - 0x3e]
mov byte [rsp + rdi + 0x28], dl
mov byte [rsp + rsi + 0x28], r8b
add rax, 2
cmp rax, 0xa
jge 0x53f0a8
movzx edx, byte [rsp + rax + 0x1e]
movzx esi, byte [rsp + rax + 0x1f]
mov edi, edx
xor edx, esi
add edx, eax
cmp rdi, 8
jae 0x53f0cb
movzx r8d, byte [rsp + rdi + 0x28]
lea r8d, [r8 + rdx]
lea r8d, [r8 - 0x3e]
nop
cmp rsi, 8
jb 0x53f05b
jmp 0x53f0bf
xor eax, eax
lea rbx, [rsp + 0x28]
mov ecx, 8
call fcn.00448840
add rsp, 0x30
pop rbp
ret
mov eax, esi
mov ecx, 8
call fcn.0045b700
mov eax, edi
mov ecx, 8
call fcn.0045b700
nop
call fcn.00459420
nop dword [rax]
jmp fcn.0053f020
Function at 0x14325c000
Capabilities:
Decompress data using aplib

Disassembly:
jmp 0x14325c00a
jmp 0x14325e00f
jmp fcn.141f23058
Function at 0x140001e20
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x288
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov qword [rsp + 0x20], 0
mov edx, 0x238
lea rcx, [rsp + 0x30]
call fcn.140001110
xor edx, edx
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0xffffffffffffffff
jne 0x140001e7b
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x140001f28
mov dword [rsp + 0x30], 0x238
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
jne 0x140001eb2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x28]
jmp 0x140001f28
mov rdx, qword [rsp + 0x290]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x140001eda
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x38]
jmp 0x140001f28
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
je 0x140001f18
mov rdx, qword [rsp + 0x290]
lea rcx, [rsp + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x140001f16
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x38]
jmp 0x140001f28
jmp 0x140001eda
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x42b
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x288
ret
Function at 0x140001f40
Capabilities:
Connect to wmi namespace via wbemlocator

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x98
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 0
jge 0x140001f73
call qword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x14000217b
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0xffffffff
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeSecurity]
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 0
jge 0x140001fc8
call qword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x14000217b
mov rcx, qword [rsp + 0xa8]
call fcn.1400019a0
mov qword [rsp + 0x20], rax
lea r9, [0x140013a30]
mov r8d, 1
xor edx, edx
lea rcx, [0x1400106b0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 0
jge 0x14000200e
call qword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x14000217b
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax]
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x78], rax
lea rdx, str.ROOTCIMV2
lea rcx, [rsp + 0x80]
call fcn.140001750
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x60]
call fcn.140001800
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
call qword [rsp + 0x78]
mov dword [rsp + 0x50], eax
lea rcx, [rsp + 0x80]
call fcn.1400017e0
cmp dword [rsp + 0x50], 0
jge 0x1400020ec
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rcx]
mov rax, qword [rax]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x14000217b
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0xa
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 0
jge 0x140002176
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xa0]
mov rcx, qword [rcx]
mov rax, qword [rax]
call qword [rax + 0x10]
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rcx]
mov rax, qword [rax]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x14000217b
mov eax, 1
add rsp, 0x98
ret
Function at 0x140002390
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x850
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0x840], rax
mov qword [rsp + 0x30], 0
lea rax, [rsp + 0x40]
mov rdi, rax
xor eax, eax
mov ecx, 0x800
rep stosb byte [rdi], al
mov dword [rsp + 0x38], 0x104
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, qword [rsp + 0x868]
mov rcx, qword [rsp + 0x860]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140002473
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rsp + 0x870]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140002468
mov rdx, qword [rsp + 0x878]
lea rcx, [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
je 0x140002468
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x140002475
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rcx, qword [rsp + 0x840]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x850
pop rdi
ret

Function at 0x140002540
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0xffffffff
je 0x140002574
mov eax, dword [rsp + 0x20]
and eax, 0x10
test eax, eax
jne 0x140002574
mov dword [rsp + 0x24], 1
jmp 0x14000257c
mov dword [rsp + 0x24], 0
mov eax, dword [rsp + 0x24]
add rsp, 0x38
ret

Function at 0x140002590
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0xffffffff
je 0x1400025c4
mov eax, dword [rsp + 0x20]
and eax, 0x10
test eax, eax
je 0x1400025c4
mov dword [rsp + 0x24], 1
jmp 0x1400025cc
mov dword [rsp + 0x24], 0
mov eax, dword [rsp + 0x24]
add rsp, 0x38
ret
Function at 0x1400025e0
Capabilities:
Get mac address on windows

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x48], 0x2c0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, 0x2c0
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x140002636
mov eax, 0xffffffff
jmp 0x14000273f
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.IPHLPAPI.DLL_GetAdaptersInfo]
cmp eax, 0x6f
jne 0x14000269e
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [rsp + 0x28]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov qword [rsp + 0x40], rax
mov r8, qword [rsp + 0x38]
xor edx, edx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x14000269e
mov eax, 1
jmp 0x14000273f
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.IPHLPAPI.DLL_GetAdaptersInfo]
test eax, eax
jne 0x14000273b
mov dword [rsp + 0x20], 0
jmp 0x1400026ca
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 4
jge 0x1400026ea
movsxd rax, dword [rsp + 0x20]
movsxd rcx, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x70]
movzx eax, byte [rdx + rax*2]
mov byte [rsp + rcx + 0x4c], al
jmp 0x1400026c0
cmp qword [rsp + 0x28], 0
je 0x14000273b
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x194], 6
jne 0x14000272c
mov rax, qword [rsp + 0x28]
add rax, 0x198
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x4c]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14000272c
mov dword [rsp + 0x30], 1
jmp 0x14000273b
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
jmp 0x1400026ea
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x68
ret

Function at 0x140002a90
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 0x140002e50
Capabilities:
Get number of processor cores
Reference wmi statements

Disassembly:
sub rsp, 0x108
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xb8], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x34], 0
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xc8]
call fcn.140001f40
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
je 0x140003078
lea rdx, str.SELECT__FROM_Win32_Processor
lea rcx, [rsp + 0x78]
call fcn.1400030a0
mov rcx, rax
call fcn.1400030d0
mov r9, rax
lea r8, [rsp + 0xb8]
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xc8]
call fcn.140002190
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
je 0x140003078
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0xd8], 0
cmp qword [rsp + 0xb8], 0
je 0x140003030
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc0]
mov r8d, 1
mov edx, 0xffffffff
mov rcx, qword [rsp + 0xb8]
call qword [rsp + 0x40]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0xd8], 0
jne 0x140002f82
jmp 0x140003030
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x50], rax
lea rdx, str.NumberOfCores
lea rcx, [rsp + 0x58]
call fcn.140002d10
mov rcx, rax
call fcn.1400030f0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0xe0]
xor r8d, r8d
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xc0]
call qword [rsp + 0x50]
mov dword [rsp + 0x38], eax
movzx eax, word [rsp + 0xe0]
cmp eax, 1
je 0x14000302b
cmp dword [rsp + 0xe8], 2
jae 0x140003007
mov dword [rsp + 0x34], 1
jmp 0x140003030
lea rcx, [rsp + 0xe0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xc0]
call qword [rax + 0x10]
jmp 0x140002f20
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xb8]
call qword [rax + 0x10]
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xc8]
call qword [rax + 0x10]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xd0]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0xf8]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x108
ret
Function at 0x140003160
Capabilities:
Get disk size

Disassembly:
push rdi
sub rsp, 0xa0
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x48], 0xffffffffffffffff
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x88], 0
lea rax, [rsp + 0x8c]
mov rdi, rax
xor eax, eax
mov ecx, 4
rep stosb byte [rdi], al
mov dword [rsp + 0x80], 0
movabs rax, 0x1400000000
mov qword [rsp + 0x50], rax
call fcn.140002970
test eax, eax
jne 0x1400031e1
call fcn.140001ba0
movzx eax, al
test eax, eax
je 0x1400031e1
xor eax, eax
jmp 0x1400032c2
lea rdx, str..PhysicalDrive0
lea rcx, [rsp + 0x58]
call fcn.1400032e0
mov rcx, rax
call fcn.140003310
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 0x140003246
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x1400032c2
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x88]
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 0x1400032b3
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0x88], rax
jge 0x1400032ab
mov dword [rsp + 0x40], 1
jmp 0x1400032b3
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.14000e450
add rsp, 0xa0
pop rdi
ret
Function at 0x140003330
Capabilities:
Enumerate disk properties

Disassembly:
sub rsp, 0xd8
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0x4c], 0
mov r9d, 2
xor r8d, r8d
xor edx, edx
lea rcx, [0x1400106a0]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0xffffffffffffffff
jne 0x14000337d
xor eax, eax
jmp 0x14000356b
mov dword [rsp + 0xa8], 0x20
mov qword [rsp + 0x40], 0
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0x48], 0
jmp 0x1400033b0
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
lea r8, [rsp + 0xa8]
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x140003520
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xa4]
mov r8d, 1
lea rdx, [rsp + 0xa8]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
jne 0x14000345a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140003453
cmp qword [rsp + 0x40], 0
je 0x140003434
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [rsp + 0xa0]
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 0x140003455
jmp 0x14000345a
jmp 0x1400033cf
lea rdx, str.vbox
lea rcx, [rsp + 0x58]
call fcn.140003110
mov rcx, rax
call fcn.140003140
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140003511
lea rdx, str.vmware
lea rcx, [rsp + 0x78]
call fcn.140003590
mov rcx, rax
call fcn.1400035c0
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140003511
lea rdx, str.qemu
lea rcx, [rsp + 0x68]
call fcn.140003110
mov rcx, rax
call fcn.140003140
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140003511
lea rdx, str.virtual
lea rcx, [rsp + 0x88]
call fcn.1400035e0
mov rcx, rax
call fcn.140003610
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
je 0x14000351b
mov dword [rsp + 0x4c], 1
jmp 0x140003520
jmp 0x1400033a6
cmp qword [rsp + 0x40], 0
je 0x140003533
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14000354e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x103
je 0x14000354e
xor eax, eax
jmp 0x14000356b
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
cmp dword [rsp + 0x4c], 0
je 0x140003569
mov eax, 1
jmp 0x14000356b
xor eax, eax
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.14000e450
add rsp, 0xd8
ret
Function at 0x140003630
Capabilities:
Get memory capacity

Disassembly:
push rdi
sub rsp, 0x80
mov rax, qword [0x140017040]
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 0x14000368b
mov dword [rsp + 0x20], 1
jmp 0x140003693
mov dword [rsp + 0x20], 0
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x80
pop rdi
ret

Function at 0x1400036b0
Capabilities:
Get disk size

Disassembly:
sub rsp, 0x58
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0x40], rax
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 0x140003716
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
jae 0x140003716
mov eax, 1
jmp 0x140003718
xor eax, eax
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x58
ret

Function at 0x140003730
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub rsp, 0x38
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x24], 0
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x28], 0xea60
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x20], eax
mov ecx, dword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x24]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x28]
sub eax, 0x3e8
cmp dword [rsp + 0x2c], eax
jbe 0x140003797
xor eax, eax
jmp 0x14000379c
mov eax, 1
add rsp, 0x38
ret
Function at 0x140003e10
Capabilities:
Get common file path

Disassembly:
push rdi
sub rsp, 0x4f0
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0x4e0], rax
lea rax, str.system32driversVBoxMouse.sys
mov qword [rsp + 0x30], rax
lea rax, str.system32driversVBoxGuest.sys
mov qword [rsp + 0x38], rax
lea rax, str.system32driversVBoxSF.sys
mov qword [rsp + 0x40], rax
lea rax, str.system32driversVBoxVideo.sys
mov qword [rsp + 0x48], rax
lea rax, str.system32_vboxdisp.dll
mov qword [rsp + 0x50], rax
lea rax, str.system32_vboxhook.dll
mov qword [rsp + 0x58], rax
lea rax, str.system32_vboxmrxnp.dll
mov qword [rsp + 0x60], rax
lea rax, str.system32_vboxogl.dll
mov qword [rsp + 0x68], rax
lea rax, str.system32_vboxoglarrayspu.dll
mov qword [rsp + 0x70], rax
lea rax, str.system32_vboxoglcrutil.dll
mov qword [rsp + 0x78], rax
lea rax, str.system32_vboxoglerrorspu.dll
mov qword [rsp + 0x80], rax
lea rax, str.system32_vboxoglfeedbackspu.dll
mov qword [rsp + 0x88], rax
lea rax, str.system32_vboxoglpackspu.dll
mov qword [rsp + 0x90], rax
lea rax, str.system32_vboxoglpassthroughspu.dll
mov qword [rsp + 0x98], rax
lea rax, str.system32_vboxservice.exe
mov qword [rsp + 0xa0], rax
lea rax, str.system32_vboxtray.exe
mov qword [rsp + 0xa8], rax
lea rax, str.system32VBoxControl.exe
mov qword [rsp + 0xb0], rax
mov eax, SafeArrayGetLBound
mov word [rsp + 0x24], ax
movzx eax, word [0x1400107e4]
mov word [rsp + 0xc0], ax
lea rax, [rsp + 0xc2]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
movzx eax, word [0x1400108a8]
mov word [rsp + 0x2d0], ax
lea rax, [rsp + 0x2d2]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
mov edx, 0x104
lea rcx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov dword [rsp + 0x20], 0
jmp 0x140003f83
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movzx eax, word [rsp + 0x24]
cmp dword [rsp + 0x20], eax
jge 0x140003fc5
movsxd rax, dword [rsp + 0x20]
mov r8, qword [rsp + rax*8 + 0x30]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
lea rcx, [rsp + 0x2d0]
call fcn.140002540
test eax, eax
je 0x140003fc3
mov al, 1
jmp 0x140003fc7
jmp 0x140003f79
xor al, al
mov rcx, qword [rsp + 0x4e0]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x4f0
pop rdi
ret
Function at 0x140003fe0
Capabilities:
Get common file path
Get program files directory
Query environment variable

Disassembly:
push rsi
push rdi
sub rsp, 0x668
mov rax, qword [0x140017040]
xor rax, rsp
mov qword [rsp + 0x650], rax
movzx eax, word [0x1400124d4]
mov word [rsp + 0x20], ax
lea rax, [rsp + 0x22]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
lea rax, [rsp + 0x230]
lea rcx, str.oracle_virtualbox_guest_additions_
mov rdi, rax
mov rsi, rcx
mov ecx, 0x46
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x276]
mov rdi, rax
xor eax, eax
mov ecx, 0x1c2
rep stosb byte [rdi], al
call fcn.140002310
test eax, eax
je 0x14000406f
mov r8d, 0x104
lea rdx, [rsp + 0x440]
lea rcx, [0x140012528]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
jmp 0x140004088
xor r9d, r9d
mov r8d, 0x26
lea rdx, [rsp + 0x440]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea r8, [rsp + 0x230]
lea rdx, [rsp + 0x440]
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
lea rcx, [rsp + 0x20]
call fcn.140002590
mov rcx, qword [rsp + 0x650]
xor rcx, rsp
call fcn.14000e450
add rsp, 0x668
pop rdi
pop rsi
ret