joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100984f0
Capabilities:
Enumerate processes via ntquerysysteminformation
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], ecx
xor edi, edi
add ebx, 0x1000
push ebx
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
lea eax, [ebp - 0x10]
push eax
push ebx
push esi
push 5
call dword [sym.imp.ntdll.dll_NtQuerySystemInformation]
mov dword [ebp - 8], eax
cmp eax, 0xc0000004
jne 0x1009854a
test esi, esi
je 0x10098503
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x10098503
mov ebx, dword [ebp - 4]
test eax, eax
je 0x10098570
test esi, esi
je 0x100985ab
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
test esi, esi
je 0x1009858b
test ebx, ebx
je 0x10098580
mov eax, dword [ecx + 0x44]
mov dword [ebx + edi*4], eax
mov eax, dword [ecx]
inc edi
test eax, eax
je 0x1009858b
add ecx, eax
jne 0x10098576
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x10098594
mov dword [eax], edi
test esi, esi
je 0x100985a9
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10098760
Capabilities:
Enumerate processes via ntquerysysteminformation
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
xor esi, esi
mov dword [ebp - 0xc], edx
push edi
mov dword [ebp - 8], ecx
xor ebx, ebx
add esi, 0x1000
push esi
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
lea eax, [ebp - 0x14]
push eax
push esi
push edi
push 5
mov dword [ebp - 0x10], edi
call dword [sym.imp.ntdll.dll_NtQuerySystemInformation]
mov dword [ebp - 4], eax
cmp eax, 0xc0000004
jne 0x100987bd
test edi, edi
je 0x10098773
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x10098773
test eax, eax
je 0x100987e4
test edi, edi
je 0x10098868
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, edi
test edi, edi
je 0x10098848
mov edi, dword [ebp - 8]
lea ecx, [ecx]
mov edx, dword [esi + 0x3c]
test edx, edx
je 0x1009883b
mov eax, edi
lea ecx, [eax + 2]
mov dword [ebp - 8], ecx
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10098800
sub eax, dword [ebp - 8]
movzx ecx, word [esi + 0x38]
sar eax, 1
shr ecx, 1
cmp ecx, eax
jne 0x1009883b
push ecx
push edx
push edi
call fcn.101a8209
add esp, 0xc
test eax, eax
jne 0x1009883b
cmp ebx, 0x104
jae 0x1009883b
mov ecx, dword [ebp - 0xc]
mov eax, dword [esi + 0x44]
mov dword [ecx + ebx*4], eax
inc ebx
mov eax, dword [esi]
test eax, eax
je 0x10098845
add esi, eax
jne 0x100987f0
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
test eax, eax
je 0x10098851
mov dword [eax], ebx
test edi, edi
je 0x10098866
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x10099570
Capabilities:
Acquire debug privileges
Terminate process

Disassembly:
push esi
mov esi, ecx
push edi
mov edi, 0xc0000001
cmp esi, 4
ja 0x10099583
pop edi
xor eax, eax
pop esi
ret
mov edx, 1
mov ecx, str.SeDebugPrivilege
call fcn.10097e20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp esi, eax
jne 0x100995a4
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
jmp 0x100995b2
push esi
mov ecx, 1
call fcn.10097ac0
add esp, 4
mov esi, eax
test esi, esi
je 0x100995ca
push 1
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov ecx, str.SeDebugPrivilege
call fcn.10097e20
mov eax, edi
pop edi
pop esi
ret
Function at 0x1009a240
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ecx
movzx eax, word [ecx + 0x14]
push ebx
movzx ebx, word [ecx + 6]
add eax, 0x18
push esi
add eax, ecx
mov dword [ebp - 4], edx
xor esi, esi
push edi
test ebx, ebx
je 0x1009a278
mov edi, dword [ebp + 8]
mov edx, dword [eax + 0xc]
cmp edi, edx
jb 0x1009a270
mov ecx, dword [eax + 0x10]
add ecx, edx
cmp edi, ecx
jb 0x1009a281
inc esi
add eax, 0x28
cmp esi, ebx
jb 0x1009a260
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax + 0x14]
sub eax, edx
add eax, dword [ebp - 4]
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1009ae30
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101ea832
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x102683e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push esi
mov dword [ebp - 0x234], 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1009ae82
test al, 0x10
je 0x1009ae82
mov eax, 1
jmp 0x1009af9a
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.101a01b0
lea ecx, [ebp - 0x218]
add esp, 0xc
mov eax, ecx
mov edx, 0x104
sub esi, eax
nop
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x1009aece
movzx eax, word [esi + ecx]
test ax, ax
je 0x1009aece
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x1009aeb0
jmp 0x1009aed2
test edx, edx
jne 0x1009aed5
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
sub esp, 0x18
xor eax, eax
mov edx, esp
mov dword [edx + 0x14], 7
mov dword [edx + 0x10], 0
mov word [edx], ax
cmp word [ebp - 0x218], ax
jne 0x1009af0c
xor ecx, ecx
jmp 0x1009af24
lea ecx, [ebp - 0x218]
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1009af15
sub ecx, esi
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
mov ecx, edx
push eax
call fcn.10003c10
lea ecx, [ebp - 0x230]
call fcn.1009ada0
add esp, 0x18
mov dword [ebp - 4], 0
cmp dword [eax + 0x14], 8
mov dword [ebp - 0x234], 1
jb 0x1009af5a
mov eax, dword [eax]
mov ecx, eax
call fcn.1009ae30
test eax, eax
je 0x1009af7f
push 0
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x1009af7f
mov esi, 1
jmp 0x1009af81
xor esi, esi
cmp dword [ebp - 0x21c], 8
jb 0x1009af98
push dword [ebp - 0x230]
call fcn.101a02f0
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101a0193
mov esp, ebp
pop ebp
ret
Function at 0x1009b410
Capabilities:
Get file size
Parse pe header
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x10251b38
push 0x101afc70
mov eax, dword fs:[0]
push eax
sub esp, 0x154
mov eax, dword [0x102683e0]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov ebx, edx
mov dword [ebp - 0x15c], ebx
mov edi, ecx
xor esi, esi
mov dword [ebp - 0x158], esi
mov dword [ebp - 0x160], esi
xor eax, eax
mov word [ebp - 0x5c], ax
push 0x3e
push eax
lea eax, [ebp - 0x5a]
push eax
call fcn.101a01b0
mov dword [ebp - 0x154], esi
push 0xf4
push esi
lea eax, [ebp - 0x150]
push eax
call fcn.101a01b0
add esp, 0x18
test ebx, ebx
jne 0x1009b496
xor eax, eax
jmp 0x1009b56e
push 0
push 0
push 3
push 0
push 3
push 0x100001
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 0x164], ebx
cmp ebx, 0xffffffff
je 0x1009b56c
lea eax, [ebp - 0x160]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0x40
jb 0x1009b560
push 0
push 0
push 0
push ebx
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call edi
push 0
lea eax, [ebp - 0x158]
push eax
push 0x40
lea eax, [ebp - 0x5c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1009b560
mov eax, 0x5a4d
cmp word [ebp - 0x5c], ax
jne 0x1009b560
push 0
push 0
push dword [ebp - 0x20]
push ebx
call edi
push 0
lea eax, [ebp - 0x158]
push eax
push 0xf8
lea eax, [ebp - 0x154]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1009b560
cmp dword [ebp - 0x154], 0x4550
jne 0x1009b560
mov dword [ebp - 4], esi
mov ecx, 0x3e
lea esi, [ebp - 0x154]
mov edi, dword [ebp - 0x15c]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 0xfffffffe
call fcn.1009b590
cmp ebx, 0xffffffff
je 0x1009b56c
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.101a0193
mov esp, ebp
pop ebp
ret
Function at 0x1009b5a0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x102683e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x10231fb4]
push ebx
push esi
mov dword [ebp - 0xc], eax
mov ebx, edx
mov ax, word [0x10231fb8]
mov esi, ecx
push edi
mov word [ebp - 8], ax
xor eax, eax
push 0x7e
push eax
mov word [ebp - 0x8c], ax
lea eax, [ebp - 0x8a]
push eax
mov dword [ebp - 0x90], ebx
call fcn.101a01b0
add esp, 0xc
test ebx, ebx
je 0x1009b650
mov edi, dword [ebp + 8]
test edi, edi
je 0x1009b650
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x1009b650
xor esi, esi
push 0x40
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
lea eax, [ebp - 0x8c]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1009b620
sub eax, edx
sar eax, 1
je 0x1009b646
push eax
lea eax, [ebp - 0x8c]
push eax
push ebx
call fcn.101a8209
add esp, 0xc
test eax, eax
je 0x1009b663
inc word [ebp - 0xc]
inc esi
cmp esi, 0x19
jle 0x1009b601
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a0193
mov esp, ebp
pop ebp
ret
cmp edi, 0x7fffffff
ja 0x1009b67e
push ecx
lea eax, [ebp - 0xc]
mov edx, edi
push eax
push ecx
mov ecx, dword [ebp - 0x90]
call fcn.10013d00
lea esi, [ebp - 0x8c]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x1009b687
push ecx
sub esi, ecx
lea eax, [ebp - 0x94]
mov ecx, dword [ebp - 0x90]
mov edx, edi
push eax
sar esi, 1
call fcn.1009a4c0
test eax, eax
js 0x1009b6cd
push ecx
lea eax, [ebx + esi*2]
push eax
mov eax, dword [ebp - 0x94]
sub edi, eax
push ecx
mov ecx, dword [ebp - 0x90]
mov edx, edi
lea ecx, [ecx + eax*2]
call fcn.1009a530
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101a0193
mov esp, ebp
pop ebp
ret

Function at 0x1009fad0
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
push 0
push 0x80
push 3
push 0
push 1
mov esi, edx
mov dword [ebp - 4], 0
push SysReAllocStringLen
push ecx
mov dword [eax], 0
mov dword [esi], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x1009fb16
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
je 0x1009fb6b
push 0x10277e4a
push edi
call fcn.101a88fa
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x1009fb84
push 0
push dword [ebp + 8]
push edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1009fb6b
mov eax, dword [ebp + 8]
cmp dword [eax], edi
jne 0x1009fb6b
push ebx
mov dword [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esi]
test edi, edi
je 0x1009fb84
push edi
call fcn.101a1ad1
add esp, 4
test edi, edi
je 0x1009fb84
mov dword [esi], 0x8123
push ebx
mov dword [esi], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100a1ca0
Capabilities:
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101eac3d
mov eax, dword fs:[0]
push eax
sub esp, 0x230
mov eax, dword [0x102683e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov bl, dl
mov esi, ecx
mov dword [ebp - 0x21c], 0
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov dword [ebp - 0x220], esi
mov word [esi], ax
push 0x208
mov dword [ebp - 4], eax
push eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x21c], 1
push eax
call fcn.101a01b0
add esp, 0xc
mov ecx, 0x1a
test bl, bl
mov eax, 0x23
cmovne eax, ecx
push 1
push eax
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x100a1da9
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x238]
call fcn.100031d0
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
mov dword [ebp - 4], 1
call fcn.10004000
mov byte [ebp - 4], 0
cmp dword [ebp - 0x224], 8
jb 0x100a1d7b
push dword [ebp - 0x238]
call fcn.101a02f0
add esp, 4
push 0x2c
mov ecx, esi
push str.9CC84E23_75A4_41F9_82B5_67F4FD9E78A7Common
call fcn.10003b30
mov ecx, esi
call fcn.100a1dd0
test al, al
jne 0x100a1d9b
mov ecx, esi
call fcn.100a1ee0
push 0xa
push 0x102321b0
mov ecx, esi
call fcn.10003b30
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101a0193
mov esp, ebp
pop ebp
ret
Function at 0x100a2fe0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push esi
test edx, edx
je 0x100a30e2
mov esi, dword [ebp + 8]
test esi, esi
jle 0x100a30e2
not ecx
cmp esi, 8
jl 0x100a30c2
push edi
mov edi, esi
shr edi, 3
mov eax, edi
neg eax
lea esi, [esi + eax*8]
nop
movzx eax, byte [edx]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
movzx eax, byte [edx + 1]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
movzx eax, byte [edx + 2]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
movzx eax, byte [edx + 3]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
movzx eax, byte [edx + 4]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
movzx eax, byte [edx + 5]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
movzx eax, byte [edx + 6]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
movzx eax, byte [edx + 7]
add edx, 8
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
dec edi
jne 0x100a3010
pop edi
test esi, esi
je 0x100a30e0
movzx eax, byte [edx]
lea edx, [edx + 1]
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x102296e0]
dec esi
jne 0x100a30c6
not ecx
mov eax, ecx
pop esi
pop ebp
ret
Function at 0x100a3470
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2aa8
call fcn.101ae1b0
mov eax, dword [0x102683e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
mov ebx, ecx
push 0x206
push eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push eax
call fcn.101a01b0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100a34c3
sub ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x100a3509
mov eax, 0x5c
cmp ax, word [ebp + ecx*2 - 0x20e]
je 0x100a3509
mov word [ebp + ecx*2 - 0x20c], ax
lea eax, [ecx*2 + 2]
cmp eax, 0x208
jae 0x100a36b1
xor ecx, ecx
mov word [ebp + eax - 0x20c], cx
push 0x104
push str.iphlpapi.dll
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.101a7aea
add esp, 0x10
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x2aa8], eax
test eax, eax
jne 0x100a354f
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a0193
mov esp, ebp
pop ebp
ret
push str.GetAdaptersInfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x100a3658
lea ecx, [ebp - 0x2a90]
mov dword [ebp - 0x2a90], 0x2880
push ecx
lea ecx, [ebp - 0x2a8c]
push ecx
call eax
test eax, eax
jne 0x100a3658
mov eax, ebx
mov dword [ebp - 0x2aa0], 3
lea ecx, [ebp - 0x2a98]
push esi
sub eax, ecx
push edi
lea edi, [ebp - 0x2a8c]
mov dword [ebp - 0x2aa4], eax
lea ecx, [edi + 8]
call fcn.100a36c0
mov dword [ebp - 0x2a9c], eax
xor eax, eax
mov dword [ebp - 0x2a98], eax
xor ecx, ecx
mov word [ebp - 0x2a94], ax
mov eax, dword [ebp - 0x2aa4]
lea esp, [esp]
lea esi, [ebp - 0x2a98]
add esi, ecx
mov dl, byte [eax + esi]
cmp dl, byte [esi]
jne 0x100a35ed
inc ecx
cmp ecx, 6
jb 0x100a35d0
mov ecx, dword [ebp - 0x2a9c]
jmp 0x100a360b
mov eax, dword [edi + 0x1a0]
cmp eax, 6
je 0x100a35fd
cmp eax, 0x17
jne 0x100a364c
mov ecx, dword [ebp - 0x2a9c]
cmp dword [ebp - 0x2aa0], ecx
jle 0x100a364c
movzx eax, byte [edi + 0x194]
mov byte [ebx], al
movzx eax, byte [edi + 0x195]
mov byte [ebx + 1], al
movzx eax, byte [edi + 0x196]
mov byte [ebx + 2], al
movzx eax, byte [edi + 0x197]
mov byte [ebx + 3], al
movzx eax, byte [edi + 0x198]
mov byte [ebx + 4], al
movzx eax, byte [edi + 0x199]
mov byte [ebx + 5], al
mov dword [ebp - 0x2aa0], ecx
mov edi, dword [edi]
test edi, edi
jne 0x100a35a7
pop edi
pop esi
push dword [ebp - 0x2aa8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
xor edx, edx
mov dword [ebp - 0x2a98], eax
mov word [ebp - 0x2a94], ax
lea eax, [ebp - 0x2a98]
sub ebx, eax
lea ecx, [ecx]
lea ecx, [ebp - 0x2a98]
add ecx, edx
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x100a3699
inc edx
cmp edx, 6
jb 0x100a3680
mov cl, 1
jmp 0x100a369b
xor cl, cl
xor eax, eax
test cl, cl
mov ecx, dword [ebp - 4]
sete al
xor ecx, ebp
pop ebx
call fcn.101a0193
mov esp, ebp
pop ebp
ret
call fcn.101a8017
int3
Function at 0x100a36c0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x102683e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [ebp - 0x11c]
push edi
push eax
push 0x20019
push 0
push str.SystemCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318
push reloc.OLEAUT32.dll_SysReAllocString
mov edi, ecx
mov dword [ebp - 0x114], 0x104
mov ebx, 3
mov dword [ebp - 0x110], 1
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x10c], 0
call esi
test eax, eax
jne 0x100a388e
push edi
push str._sConnection
push 0xffffffffffffffff
lea eax, [ebp - 0x108]
push 0x103
push eax
call fcn.101a87ab
add esp, 0x14
lea eax, [ebp - 0x118]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x11c]
call esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x100a3886
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x10c]
mov dword [ebp - 0x110], 4
push eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x114], 4
push eax
push 0
push str.MediaSubType
push dword [ebp - 0x118]
call edi
test eax, eax
jne 0x100a387e
push 0x104
push eax
lea eax, [ebp - 0x108]
mov dword [ebp - 0x110], 1
push eax
mov dword [ebp - 0x114], 0x103
call fcn.101a01b0
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x110]
push eax
push 0
push str.PnpInstanceID
push dword [ebp - 0x118]
call edi
test eax, eax
jne 0x100a387e
mov eax, dword [ebp - 0x10c]
cmp eax, 1
jne 0x100a386f
push ebx
lea eax, [ebp - 0x108]
push 0x10232318
push eax
call fcn.101aeda0
add esp, 0xc
test eax, eax
jne 0x100a383d
xor ebx, ebx
jmp 0x100a387e
mov eax, dword [ebp - 0x10c]
cmp eax, 1
jne 0x100a386f
push 3
lea eax, [ebp - 0x108]
push 0x10232318
push eax
call fcn.101aeda0
add esp, 0xc
test eax, eax
je 0x100a3869
mov ebx, 2
jmp 0x100a387e
mov eax, dword [ebp - 0x10c]
xor ebx, ebx
cmp eax, 2
setne bl
lea ebx, [ebx*2 + 1]
push dword [ebp - 0x118]
call esi
push dword [ebp - 0x11c]
call esi
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101a0193
mov esp, ebp
pop ebp
ret
Function at 0x100a4dc0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x102683e0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 0x10]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
test eax, eax
je 0x100a4e10
push dword [ebp + 0xc]
push eax
call fcn.100a4c60
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x10]
shr ecx, 3
mov dword [ebp - 0x10], eax
and ecx, 0x3f
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xc], eax
mov eax, 0x38
cmp ecx, 0x38
jb 0x100a4e34
mov eax, 0x78
sub eax, ecx
mov ecx, esi
push eax
push 0x102323e8
call fcn.100a4c60
push 8
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
call fcn.100a4c60
movdqu xmm0, xmmword [esi]
mov ecx, dword [ebp - 8]
xor ecx, ebp
movdqu xmmword [edi], xmm0
pop edi
pop esi
call fcn.101a0193
mov esp, ebp
pop ebp
ret 0xc

Function at 0x100a6cc0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
mov eax, dword [0x102683e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push edi
mov dword [ebp - 0x418], eax
mov ebx, ecx
push 0x105
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x104
lea eax, [ebp - 0x414]
push str.SHELL32.DLL
push eax
call fcn.101e069b
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
jne 0x100a6d42
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x100a6d92
movzx eax, ax
pop edi
or eax, 0x80070000
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101a0193
mov esp, ebp
pop ebp
ret 4
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SHGetImageList
push edi
call esi
test eax, eax
jne 0x100a6d78
push 0x2d7
push edi
call esi
test eax, eax
jne 0x100a6d78
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x100a6d88
movzx esi, si
or esi, 0x80070000
jmp 0x100a6d88
push dword [ebp - 0x418]
push 0x1020f8ac
push ebx
call eax
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.101a0193
mov esp, ebp
pop ebp
ret 4