joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401030
Capabilities:
Write file on windows

Disassembly:
push edi
mov edi, ecx
mov eax, dword [edi + 0x14]
cmp eax, 0xffffffff
jne 0x401041
xor eax, eax
pop edi
ret 0xc
cmp dword [esp + 0x10], 0
push esi
mov esi, dword [esp + 0x10]
je 0x401059
push 0
push 0
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [esp + 0xc]
mov edx, dword [edi + 0x14]
push 0
lea eax, [esp + 0x18]
push eax
push esi
push ecx
push edx
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
and eax, dword [esp + 0x14]
pop esi
pop edi
ret 0xc

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

Disassembly:
add ecx, 4
call fcn.00401ad0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
setne al
ret

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

Disassembly:
add ecx, 4
call fcn.00401ad0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4010cb
test al, 0x10
jne 0x4010cb
mov al, 1
ret
xor al, al
ret

Function at 0x401440
Capabilities:
Create directory

Disassembly:
push esi
mov esi, ecx
call fcn.00401090
test al, al
je 0x401450
mov al, 1
pop esi
ret
push ebp
push edi
add esi, 4
push 0
mov ecx, esi
mov ebp, 0x32
call fcn.00401ad0
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push eax
call edi
test eax, eax
jne 0x401494
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
dec ebp
js 0x40148e
push 0xa
call ebx
push 0
mov ecx, esi
call fcn.00401ad0
push eax
call edi
test eax, eax
je 0x401477
pop ebx
cmp ebp, 0xffffffff
je 0x4014a8
push 0
mov ecx, esi
call fcn.00401ad0
push eax
push 1
push 8
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
xor eax, eax
pop edi
cmp ebp, 0xffffffff
pop ebp
setne al
pop esi
ret

Function at 0x401580
Capabilities:
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x410cd8
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
mov eax, dword [0x416060]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esi + 4]
call fcn.00401b20
test al, al
je 0x4015c5
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x14
ret
lea eax, [esp + 8]
push eax
mov ecx, esi
call fcn.004010d0
lea ecx, [esp + 8]
mov dword [esp + 0x18], 0
call fcn.00401ad0
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
lea ecx, [esp + 8]
mov esi, eax
mov dword [esp + 0x18], 0xffffffff
call fcn.00401aa0
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x14
ret
Function at 0x4018e0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x410dd1
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
mov eax, dword [0x416060]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
push 0x100
lea ecx, [esp + 0x10]
mov dword [esp + 0xc], 0
call fcn.00401a40
lea ecx, [esp + 0xc]
mov dword [esp + 0x1c], 1
call fcn.00401ad0
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0xffffffffffffffff
lea ecx, [esp + 0x10]
call fcn.00401cf0
cmp byte [eax], 0x5c
je 0x401955
push 0x4122f8
lea ecx, [esp + 0x10]
call fcn.00402030
lea ecx, [esp + 0xc]
call fcn.00401ad0
mov esi, dword [esp + 0x24]
push eax
mov ecx, esi
call fcn.00401850
lea ecx, [esp + 0xc]
mov dword [esp + 8], 1
mov byte [esp + 0x1c], 0
call fcn.00401aa0
mov eax, esi
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x18
ret

Function at 0x4019a0
Capabilities:
Set current directory

Disassembly:
push 0xffffffffffffffff
push 0x410e11
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x416060]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x2c]
push edi
mov dword [esp + 0x28], ebx
call fcn.004018e0
add esp, 4
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], 1
call fcn.00401190
mov ecx, eax
mov dword [esp + 0x24], 1
call fcn.00401ad0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 0x14]
mov byte [esp + 0x24], bl
call fcn.00401aa0
mov eax, edi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x18
ret 4

Function at 0x402120
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x410e3b
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x416060]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 8], esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esi + 0x10], ecx
mov eax, 0x100
push 0x400
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0x65
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], eax
call fcn.00403d32
push 0x194
push 0
push eax
mov dword [esi + 0x14], eax
call fcn.00403e80
fld dword [0x412394]
fstp dword [esi + 0x2c]
push 1
fld dword [0x412390]
mov dword [esp + 0x28], 0
fstp dword [esi + 0x30]
mov dword [esi], 0
call fcn.004047f6
mov dword [esi + 4], eax
mov dword [esi + 8], eax
add esp, 0x14
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret 4
Function at 0x403540
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x20c
mov eax, dword [0x416060]
xor eax, esp
mov dword [esp + 0x208], eax
push ebx
push esi
push edi
mov edi, dword [esp + 0x21c]
xor ebx, ebx
mov esi, ecx
cmp edi, ebx
jne 0x40356d
xor eax, eax
jmp 0x4036b0
lea edx, [esp + 0x110]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x403578
push ebp
lea eax, [esp + 0x114]
push 0x5c
push eax
call fcn.00405380
add esp, 8
lea ecx, [esp + 0x10]
push ecx
mov byte [eax], bl
push 0x104
mov byte [esp + 0x18], bl
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov ebp, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea edx, [esp + 0x114]
push edx
call ebp
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [esi + 0x108], eax
cmp eax, ebx
je 0x4036a6
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x41274c
push eax
call edi
cmp eax, ebx
jne 0x403618
mov eax, dword [esi + 0x108]
push 0x412744
push eax
call edi
cmp eax, ebx
jne 0x403618
mov ecx, dword [esi + 0x108]
push str.Main
push ecx
call edi
cmp eax, ebx
jne 0x403618
mov edx, dword [esi + 0x108]
push str.buzzmain
push edx
call edi
cmp eax, ebx
je 0x403693
push 0x403260
call eax
add esp, 4
mov dword [esi + 0x10c], eax
cmp eax, ebx
je 0x403693
cmp dword [eax], 0x56737450
jne 0x40368d
fldz
push ecx
fstp dword [esp]
push ebx
push ebx
push ebx
push 0x16
push eax
mov eax, dword [eax + 4]
call eax
fldz
add esp, 0x18
push ecx
fstp dword [esp]
push ebx
push ebx
push ebx
cmp eax, 0x4e764566
jne 0x403676
mov esi, dword [esi + 0x10c]
mov ecx, dword [esi + 4]
push ebx
push esi
call ecx
add esp, 0x18
lea edx, [esp + 0x10]
push edx
call ebp
mov eax, 1
jmp 0x4036af
mov eax, dword [esi + 0x10c]
push 1
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x18
mov dword [esi + 0x10c], ebx
mov dword [esi + 0x10c], ebx
mov ecx, dword [esi + 0x108]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0x108], ebx
lea edx, [esp + 0x10]
push edx
call ebp
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x214]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403c6f
add esp, 0x20c
ret 4

Function at 0x403c6f
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x416060]
jne 0x403c79
repz ret
jmp fcn.0040729c
Function at 0x40c08c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x416060]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.00406d41
and dword [ebp - 0x14], 0
cmp dword [0x4183fc], 0
mov dword [ebp - 0x18], eax
jne 0x40c13f
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x40c1e7
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x40c1e7
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x4183fc], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x418400], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x418404], eax
call edi
push eax
call esi
mov dword [0x41840c], eax
test eax, eax
je 0x40c13f
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x418408], eax
mov eax, dword [0x418408]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x40c198
cmp dword [0x41840c], ecx
je 0x40c198
push eax
call esi
push dword [0x41840c]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x40c198
test ebx, ebx
je 0x40c198
call edi
test eax, eax
je 0x40c18f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40c18f
test byte [ebp - 8], 1
jne 0x40c198
or dword [ebp + 0x10], 0x200000
jmp 0x40c1cb
mov eax, dword [0x418400]
cmp eax, dword [ebp - 0x18]
je 0x40c1cb
push eax
call esi
test eax, eax
je 0x40c1cb
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40c1cb
mov eax, dword [0x418404]
cmp eax, dword [ebp - 0x18]
je 0x40c1cb
push eax
call esi
test eax, eax
je 0x40c1cb
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x4183fc]
call esi
test eax, eax
je 0x40c1e7
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x40c1e9
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00403c6f
leave
ret
Function at 0x8e1a7f
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x198]
sub esp, 0x218
mov eax, dword [0x911c20]
xor eax, ebp
mov dword [ebp + 0x194], eax
push esi
xor eax, eax
xor esi, esi
push 0x206
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x72]
push esi
push eax
mov dword [ebp - 0x7c], esi
call fcn.008f52d0
add esp, 0xc
mov dword [ebp - 0x78], esi
cmp ebx, esi
je 0x8e1b31
push edi
mov edi, 0x90b86c
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x8e1aca
sub eax, edx
sar eax, 1
je 0x8e1b30
lea eax, [ebp - 0x74]
push eax
mov esi, 0x104
push esi
call dword [fcn.00908234]
push edi
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.008f2ef7
push 0x90b888
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.008f344b
add esp, 0x18
cmp dword [ebp - 0x78], 0
je 0x8e1b30
push dword [ebp - 0x78]
xor esi, esi
inc esi
push esi
push 0x200
push ebx
call fcn.008f373e
push dword [ebp - 0x78]
call fcn.008f37d2
add esp, 0x14
mov dword [ebp - 0x7c], esi
pop edi
mov ecx, dword [ebp + 0x194]
mov eax, dword [ebp - 0x7c]
xor ecx, ebp
pop esi
call fcn.008f2ee8
add ebp, 0x198
leave
ret

Function at 0x8e1b4a
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x198]
sub esp, 0x218
mov eax, dword [0x911c20]
xor eax, ebp
mov dword [ebp + 0x194], eax
push esi
xor eax, eax
xor esi, esi
push 0x206
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x72]
push esi
push eax
mov dword [ebp - 0x7c], esi
call fcn.008f52d0
add esp, 0xc
mov dword [ebp - 0x78], esi
cmp ebx, esi
je 0x8e1c25
push edi
mov edi, 0x90b7b8
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x8e1b99
sub eax, edx
sar eax, 1
je 0x8e1c24
cmp dword [0x912fbc], 3
mov esi, 0x104
lea eax, [ebp - 0x74]
jne 0x8e1bd6
push esi
push eax
call dword [0x908214]
push 0x90b890
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.008f2ef7
add esp, 0xc
jmp 0x8e1bde
push eax
push esi
call dword [fcn.00908234]
push edi
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.008f2ef7
push 0x90b888
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.008f344b
add esp, 0x18
cmp dword [ebp - 0x78], 0
je 0x8e1c24
push dword [ebp - 0x78]
xor esi, esi
inc esi
push esi
push 0x200
push ebx
call fcn.008f373e
push dword [ebp - 0x78]
call fcn.008f37d2
add esp, 0x14
mov dword [ebp - 0x7c], esi
pop edi
mov ecx, dword [ebp + 0x194]
mov eax, dword [ebp - 0x7c]
xor ecx, ebp
pop esi
call fcn.008f2ee8
add ebp, 0x198
leave
ret
Function at 0x8e22c1
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x194]
sub esp, 0x214
mov eax, dword [0x911c20]
xor eax, ebp
mov dword [ebp + 0x190], eax
push esi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x78], ax
lea eax, [ebp - 0x76]
push eax
xor esi, esi
call fcn.008f52d0
add esp, 0xc
test edi, edi
je 0x8e2387
and dword [ebp - 0x7c], esi
mov ecx, 0x90b768
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x8e230c
sub eax, esi
sar eax, 1
je 0x8e2330
push 0x90b904
push ecx
lea eax, [ebp - 0x7c]
push eax
call fcn.008f344b
add esp, 0xc
jmp 0x8e2364
lea eax, [ebp - 0x78]
push eax
mov esi, 0x104
push esi
call dword [fcn.00908234]
push 0x90b86c
lea eax, [ebp - 0x78]
push esi
push eax
call fcn.008f2ef7
push 0x90b904
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.008f344b
add esp, 0x18
xor esi, esi
inc esi
cmp dword [ebp - 0x7c], 0
je 0x8e2387
push dword [ebp - 0x7c]
push esi
push 0x200
push edi
call fcn.008f3a11
push dword [ebp - 0x7c]
call fcn.008f37d2
add esp, 0x14
mov ecx, dword [ebp + 0x190]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.008f2ee8
add ebp, 0x194
leave
ret

Function at 0x8e239f
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push edi
push 0x90b888
push dword [ebp + 8]
lea eax, [ebp - 4]
xor edi, edi
push eax
mov dword [ebp - 4], edi
call fcn.008f344b
add esp, 0xc
test eax, eax
je 0x8e23c9
xor eax, eax
jmp 0x8e244c
push ebx
push esi
push 2
push edi
push dword [ebp - 4]
call fcn.008f3b1d
push dword [ebp - 4]
call fcn.008f3d3f
push edi
push edi
push dword [ebp - 4]
mov esi, eax
call fcn.008f3b1d
lea eax, [esi + 0x32]
push eax
mov dword [ebp - 8], eax
call fcn.008f3dfc
push dword [ebp - 4]
mov edi, eax
push 1
push esi
push edi
call fcn.008f373e
push dword [ebp - 4]
call fcn.008f37d2
push 0x32
lea ebx, [edi + esi]
call fcn.008e244f
push 0x90b904
push dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
call fcn.008f344b
add esp, 0x44
pop esi
pop ebx
test eax, eax
jne 0x8e23c2
push dword [ebp - 4]
push 1
push dword [ebp - 8]
push edi
call fcn.008f3a11
push dword [ebp - 4]
call fcn.008f37d2
xor eax, eax
add esp, 0x14
inc eax
pop edi
leave
ret
Function at 0x8e3be8
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xf90]
mov eax, 0x1010
call fcn.008f7780
mov eax, dword [0x911c20]
xor eax, ebp
mov dword [ebp + 0xf8c], eax
mov eax, dword [ebp + 0xf98]
push ebx
push esi
mov esi, dword [0x9083f4]
xor ebx, ebx
push ebx
mov dword [ebp - 0x7c], eax
push 4
lea eax, [ebp - 0x78]
push eax
push dword [edi]
call esi
cmp eax, 4
je 0x8e3c2e
xor eax, eax
jmp 0x8e3c76
cmp dword [ebp - 0x78], ebx
jbe 0x8e3c65
push 0
push 0x1000
lea eax, [ebp - 0x74]
push eax
push dword [edi]
call esi
mov dword [ebp - 0x80], eax
test eax, eax
je 0x8e3c65
mov ecx, dword [ebp - 0x7c]
push dword [ecx]
push eax
lea eax, [ebp - 0x74]
push 1
push eax
call fcn.008f3a11
add ebx, dword [ebp - 0x80]
add esp, 0x10
cmp ebx, dword [ebp - 0x78]
jb 0x8e3c33
mov eax, dword [ebp - 0x7c]
push dword [eax]
call fcn.008f37d2
cmp ebx, dword [ebp - 0x78]
pop ecx
sbb eax, eax
inc eax
mov ecx, dword [ebp + 0xf8c]
pop esi
xor ecx, ebp
pop ebx
call fcn.008f2ee8
add ebp, 0xf90
leave
ret

Function at 0x8e5392
Capabilities:
Hash data using sha1

Disassembly:
and dword [eax + 4], 0
and dword [eax], 0
mov dword [eax + 8], 0x67452301
mov dword [eax + 0xc], 0xefcdab89
mov dword [eax + 0x10], 0x98badcfe
mov dword [eax + 0x14], 0x10325476
mov dword [eax + 0x18], 0xc3d2e1f0
ret

Function at 0x8e5526
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xff0]
mov eax, 0x1070
call fcn.008f7780
mov eax, dword [0x911c20]
xor eax, ebp
mov dword [ebp + 0xfec], eax
mov eax, dword [ebp + 0xff8]
push esi
push edi
push 0x90b888
push eax
lea eax, [ebp - 0x18]
mov esi, ecx
xor edi, edi
push eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], edi
call fcn.008f344b
add esp, 0xc
cmp dword [ebp - 0x18], edi
jne 0x8e5581
mov edi, esi
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
jmp 0x8e5614
push ebx
push 2
push edi
push dword [ebp - 0x18]
call fcn.008f3b1d
push dword [ebp - 0x18]
call fcn.008f3d3f
push edi
push edi
push dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
call fcn.008f3b1d
lea eax, [ebp - 0x80]
call fcn.008e5392
push dword [ebp - 0x18]
mov esi, 0x1000
push esi
lea eax, [ebp - 0x14]
push 1
push eax
call fcn.008f373e
mov ebx, eax
add esp, 0x2c
cmp ebx, edi
jbe 0x8e55ee
push ebx
lea edi, [ebp - 0x80]
lea ecx, [ebp - 0x14]
call fcn.008e53bd
push dword [ebp - 0x18]
add dword [ebp - 0x1c], ebx
push esi
lea eax, [ebp - 0x14]
push 1
push eax
call fcn.008f373e
mov ebx, eax
add esp, 0x14
test ebx, ebx
ja 0x8e55c7
mov edi, dword [ebp - 0x20]
push edi
lea esi, [ebp - 0x80]
call fcn.008e5456
push dword [ebp - 0x18]
call fcn.008f37d2
mov eax, dword [ebp - 0x1c]
pop ecx
pop ecx
pop ebx
cmp eax, dword [ebp - 0x24]
jb 0x8e5573
xor eax, eax
inc eax
mov ecx, dword [ebp + 0xfec]
pop edi
xor ecx, ebp
pop esi
call fcn.008f2ee8
add ebp, 0xff0
leave
ret
Function at 0x8e6db7
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push edi
mov edi, edx
test ecx, ecx
jne 0x8e6dc2
xor eax, eax
pop edi
ret
push esi
not eax
mov edx, 0xff
cmp edi, 8
jb 0x8e6e74
mov esi, edi
shr esi, 3
push ebx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x90ce38]
inc ecx
sub edi, 8
dec esi
jne 0x8e6dd9
pop ebx
test edi, edi
je 0x8e6e8d
movzx esi, byte [ecx]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x90ce38]
inc ecx
dec edi
jne 0x8e6e78
pop esi
not eax
pop edi
ret

Function at 0x8e6e92
Capabilities:
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
mov eax, dword [ecx]
movsx edx, dl
xor edx, eax
push esi
mov esi, 0xff
and edx, esi
mov edx, dword [edx*4 + 0x90ce38]
shr eax, 8
xor edx, eax
mov eax, dword [ecx + 8]
mov dword [ecx], edx
movzx edx, dl
add edx, dword [ecx + 4]
imul edx, edx, 0x8088405
inc edx
mov dword [ecx + 4], edx
shr edx, 0x18
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x90ce38]
pop esi
mov dword [ecx + 8], eax
ret
Function at 0x10003626
Capabilities:
Query or enumerate registry key

Disassembly:
sub esp, 0x11c
mov eax, dword [0x10041024]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
mov ebx, dword [esp + 0x124]
push ebp
push esi
push edi
mov edi, ecx
xor ebp, ebp
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov eax, dword [edi + 4]
or eax, 0x2001f
push eax
push ebx
push dword [edi]
call fcn.1002948d
mov esi, eax
test esi, esi
jne 0x100036d5
lea eax, [esp + 0x20]
push eax
push ebp
push ebp
push ebp
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x3c]
push eax
push ebp
mov ebp, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
jmp 0x100036b0
lea eax, [esp + 0x28]
push eax
call fcn.10003626
mov esi, eax
test esi, esi
jne 0x100036d5
lea eax, [esp + 0x20]
xor ecx, ecx
push eax
push ecx
push ecx
push ecx
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x3c]
push eax
push ecx
push dword [esp + 0x30]
mov dword [esp + 0x30], 0x100
call ebp
lea ecx, [esp + 0x14]
test eax, eax
je 0x1000368b
call fcn.10002ded
push ebx
mov ecx, edi
call fcn.10002e76
mov esi, eax
lea ecx, [esp + 0x14]
call fcn.10002ded
mov ecx, dword [esp + 0x128]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000be90
add esp, 0x11c
ret 4
Function at 0x10005a24
Capabilities:
Create process on windows

Disassembly:
sub esp, 0x974
mov eax, dword [0x10041024]
xor eax, esp
mov dword [esp + 0x970], eax
push ebx
push ebp
xor ebp, ebp
mov ebx, 0x400
push esi
mov esi, dword [esp + 0x99c]
inc ebp
push edi
mov edi, dword [esp + 0x988]
test esi, esi
jne 0x10005a7b
push ebx
lea eax, [esp + 0x584]
push eax
push ebp
push edi
call fcn.10008e4e
add esp, 0x10
test eax, eax
je 0x10005a7b
mov eax, str._s_ssvagent.exe
lea esi, [esp + 0x580]
jmp 0x10005a90
test edi, edi
jne 0x10005be0
test esi, esi
je 0x10005be0
mov eax, str._s_bin_ssvagent.exe
push esi
push eax
lea eax, [esp + 0x188]
push ebx
push eax
call fcn.10004e7f
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x194]
push eax
call fcn.1002948d
add esp, 0x18
test eax, eax
jne 0x10005be0
cmp dword [esp + 0x98c], 0
mov ecx, str.__new
mov byte [esp + 0x7c], al
mov ebx, 0x104
mov eax, str.__old
cmovne eax, ecx
push eax
lea eax, [esp + 0x80]
push ebx
push eax
call fcn.1002948d
mov edi, dword [esp + 0x99c]
add esp, 0xc
mov esi, dword [esp + 0x99c]
test edi, edi
jne 0x10005b03
test esi, esi
je 0x10005b19
push str.__high
lea eax, [esp + 0x80]
push ebx
push eax
call fcn.1002948d
add esp, 0xc
cmp dword [esp + 0x998], 0
je 0x10005b39
push str.__settreatas
lea eax, [esp + 0x80]
push ebx
push eax
call fcn.1002948d
add esp, 0xc
test esi, esi
je 0x10005b53
push str.__regdeploy
lea eax, [esp + 0x80]
push ebx
push eax
call fcn.1002948d
add esp, 0xc
push 0x3c
pop esi
push esi
lea eax, [esp + 0x14]
push 0
push eax
call fcn.1000de50
add esp, 0xc
mov dword [esp + 0x10], esi
lea eax, [esp + 0x7c]
mov dword [esp + 0x24], eax
test edi, edi
je 0x10005b8b
call fcn.1002948d
test eax, eax
mov ecx, str.runas
cmove ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x994], 0
push 0x40
pop ecx
cmovne eax, ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], eax
lea eax, [esp + 0x180]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
test eax, eax
je 0x10005be0
cmp dword [esp + 0x48], 0
je 0x10005bdc
push 0xffffffffffffffff
push dword [esp + 0x4c]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
push dword [esp + 0x48]
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, ebp
jmp 0x10005be2
xor eax, eax
mov ecx, dword [esp + 0x980]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000be90
add esp, 0x974
ret