joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4718b0
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffea4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ecx
mov edi, edx
mov esi, eax
mov ebx, dword [ebp + 8]
xor eax, eax
push ebp
push 0x471aac
push dword fs:[eax]
mov dword fs:[eax], esp
push esi
push edi
push dword [ebp - 4]
lea eax, [ebp - 8]
mov edx, 3
call fcn.0040377c
xor eax, eax
mov dword [ebx + 4], eax
xor eax, eax
mov dword [ebx], eax
lea eax, [ebp - 0x154]
push eax
mov eax, dword [ebp - 8]
call fcn.00403880
push eax
call sub.kernel32.dll_FindFirstFileA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x47196b
mov eax, dword [ebp - 0x154]
test al, 0x10
jne 0x47194e
cmp byte [ebp + 0x10], 0
je 0x471932
test al, 2
jne 0x47194e
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0x14]
mov eax, ebx
call fcn.00430094
lea eax, [ebp - 0x154]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x47191e
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindClose
cmp byte [ebp + 0xc], 0
je 0x471a86
lea eax, [ebp - 0x154]
push eax
mov edx, esi
lea eax, [ebp - 0x158]
call fcn.004035dc
lea eax, [ebp - 0x158]
mov edx, edi
call fcn.004036c4
lea eax, [ebp - 0x158]
mov edx, 0x471ac4
call fcn.004036c4
mov eax, dword [ebp - 0x158]
call fcn.00403880
push eax
call sub.kernel32.dll_FindFirstFileA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x471a86
xor eax, eax
push ebp
push 0x471a7f
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x154]
call fcn.0046fabc
test al, al
je 0x471a50
mov eax, dword [ebp + 0x14]
push eax
mov al, byte [ebp + 0x10]
push eax
mov al, byte [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
mov edx, edi
lea eax, [ebp - 0x158]
call fcn.004035dc
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x128]
mov ecx, 0x104
call fcn.004036a4
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 0x158]
call fcn.004036c4
lea eax, [ebp - 0x158]
mov edx, 0x471ad0
call fcn.004036c4
mov edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 4]
mov eax, esi
call fcn.004718b0
pop ecx
lea edx, [ebp - 0x14]
mov eax, ebx
call fcn.00430094
lea eax, [ebp - 0x154]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x4719d2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471a86
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindClose
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471ab3
lea eax, [ebp - 0x15c]
mov edx, 2
call fcn.00403568
lea eax, [ebp - 8]
call fcn.00403548
ret
Function at 0x4731f0
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov ebx, edx
mov byte [ebp - 1], al
xor eax, eax
push ebp
push 0x47347d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x473494
call fcn.00454db4
cmp dword [0x48a234], 0
je 0x4732f9
cmp byte [ebp - 1], 0
jne 0x4732f9
test bl, bl
je 0x473298
xor eax, eax
push ebp
push 0x473278
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
mov eax, dword [0x48a22c]
push eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0xb
lea ecx, [ebp - 0xc]
mov edx, 0x4734b4
mov eax, dword [0x48a234]
call fcn.00484208
mov dword [0x48a22c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x473298
xor eax, eax
push ebp
push 0x4732cf
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
xor eax, eax
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0xb
lea ecx, [ebp - 0xc]
mov edx, 0x473508
mov eax, dword [0x48a234]
call fcn.00484070
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4732ef
mov eax, dword [0x48a234]
call fcn.00402ca0
mov eax, dword [0x48a210]
mov edx, dword [eax]
call dword [edx + 0x10]
mov esi, eax
dec esi
test esi, esi
jl 0x473328
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x10]
mov edx, ebx
mov eax, dword [0x48a210]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x10]
call fcn.00407030
inc ebx
dec esi
jne 0x47330d
mov eax, dword [0x48a210]
mov edx, dword [eax]
call dword [edx + 0x38]
mov eax, dword [0x48a214]
mov edx, dword [eax]
call dword [edx + 0x10]
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x473367
lea ecx, [ebp - 0x10]
mov edx, ebx
mov eax, dword [0x48a214]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x10]
call fcn.00403880
push eax
call sub.kernel32.dll_RemoveDirectoryA
dec ebx
cmp ebx, 0xffffffff
jne 0x473344
mov eax, dword [0x48a214]
mov edx, dword [eax]
call dword [edx + 0x38]
call fcn.00463c8c
cmp dword [0x48a2b4], 0
je 0x47338a
mov eax, dword [0x48a2b4]
push eax
call sub.kernel32.dll_FreeLibrary
cmp dword [0x48a2b0], 0
je 0x47339e
mov eax, dword [0x48a2b0]
push eax
call sub.kernel32.dll_FreeLibrary
call fcn.0046f638
cmp dword [0x489fc8], 0
je 0x4733f9
cmp byte [0x489ed0], 0
je 0x4733bc
xor eax, eax
call fcn.004546d8
push 1
push 0
push 0
push 0
mov cl, 1
mov dl, 1
mov eax, dword [0x489fc8]
call fcn.004516f8
test al, al
jne 0x4733f9
mov edx, 0x473554
lea eax, [ebp - 0x10]
call fcn.004035dc
lea eax, [ebp - 0x10]
mov edx, dword [0x489fc8]
call fcn.004036c4
mov eax, dword [ebp - 0x10]
call fcn.00454db4
cmp byte [0x48a1f9], 0
je 0x473422
cmp byte [ebp - 1], 0
jne 0x473422
cmp byte [0x489ed0], 0
je 0x473422
mov eax, 0x473584
call fcn.00454db4
mov byte [0x48a1f9], 0
call fcn.00454464
cmp byte [0x48a1f9], 0
je 0x473467
cmp byte [ebp - 1], 0
jne 0x473467
mov eax, 0x4735d4
call fcn.00454db4
cmp byte [0x489f44], 0
je 0x473462
push 0
push 0x2710
push 0x496
mov eax, dword [0x489f48]
push eax
call sub.user32.dll_SendMessageA
jmp 0x473467
call fcn.00452a40
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x473484
lea eax, [ebp - 0x10]
call fcn.00403548
ret
Function at 0x474ddc
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, eax
cmp dword [0x489f14], 0
je 0x474e73
mov eax, dword [0x489f14]
call fcn.0041855c
test al, al
je 0x474e73
mov eax, dword [0x489f14]
cmp byte [eax + 0xc7], 0
je 0x474e23
cmp byte [ebx + 0x1b5], 0
jne 0x474e23
mov eax, dword [0x489628]
mov eax, dword [eax + 0x20]
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x474e27
xor eax, eax
jmp 0x474e29
mov al, 1
mov ebx, eax
push 0xfffffffffffffff0
mov eax, dword [0x489f14]
call fcn.004183c4
push eax
call sub.user32.dll_GetWindowLongA
test eax, 0x10000000
setne al
cmp bl, al
je 0x474e73
test bl, bl
je 0x474e61
push 5
mov eax, dword [0x489f14]
call fcn.004183c4
push eax
call sub.user32.dll_ShowWindow
jmp 0x474e73
push 0
mov eax, dword [0x489f14]
call fcn.004183c4
push eax
call sub.user32.dll_ShowWindow
pop ebx
ret

Function at 0x474f1c
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x474f88
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x474f83
mov dword [ebp - 8], 4
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0x474fb4
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
jne 0x474f7a
cmp dword [ebp - 0xc], 4
jne 0x474f7a
cmp dword [ebp - 8], 4
jne 0x474f7a
mov ax, word [ebp - 0x10]
mov word [0x48a204], ax
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
mov esp, ebp
pop ebp
ret

Function at 0x474fc0
Capabilities:
Check os version

Disassembly:
add esp, 0xfffffed0
mov dword [esp], 0x94
push esp
call sub.kernel32.dll_GetVersionExA
test eax, eax
je 0x47504f
xor eax, eax
mov al, byte [esp + 4]
shl eax, 0x18
xor edx, edx
mov dl, byte [esp + 8]
shl edx, 0x10
or eax, edx
movzx edx, word [esp + 0xc]
or eax, edx
mov dword [0x48a200], eax
cmp byte [0x48a1f3], 0
je 0x47504f
mov eax, dword [esp + 4]
cmp eax, 5
jl 0x475045
mov dword [esp + 0x94], 0x9c
lea eax, [esp + 0x94]
push eax
call sub.kernel32.dll_GetVersionExA
test eax, eax
je 0x47504f
xor eax, eax
mov al, byte [esp + 0x128]
shl eax, 8
xor edx, edx
mov dl, byte [esp + 0x12a]
or ax, dx
mov word [0x48a204], ax
jmp 0x47504f
cmp eax, 4
jne 0x47504f
call fcn.00474f1c
add esp, 0x130
ret
Function at 0x47d864
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov esi, ecx
mov edi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x47d9fc
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
lea eax, [ebp - 0xc]
mov ecx, 0x200
xor edx, edx
call fcn.00403628
lea eax, [ebp - 8]
push eax
xor eax, eax
mov al, byte [ebp + 8]
mov eax, dword [eax*4 + 0x488e78]
push eax
push 0
mov eax, edi
call fcn.00403880
push eax
push ebx
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x47d9e1
xor edx, edx
push ebp
push 0x47d9d6
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [esi]
xor ecx, ecx
mov edx, dword [esi + 4]
call fcn.00436cec
xor ebx, ebx
mov eax, dword [ebp - 0xc]
call fcn.004036bc
mov dword [ebp - 0x14], eax
cmp byte [ebp + 8], 0
je 0x47d913
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xc]
call fcn.0040388c
push eax
push ebx
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegEnumKeyExA
jmp 0x47d932
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xc]
call fcn.0040388c
push eax
push ebx
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegEnumValueA
sub eax, 1
jb 0x47d980
sub eax, 0xe9
je 0x47d945
sub eax, 0x19
je 0x47d9bf
jmp 0x47d979
mov eax, dword [ebp - 0xc]
call fcn.004036bc
cmp eax, 0x10000
jl 0x47d95e
call fcn.00403304
jmp 0x47d9e1
mov eax, dword [ebp - 0xc]
call fcn.004036bc
mov ecx, eax
add ecx, ecx
lea eax, [ebp - 0xc]
xor edx, edx
call fcn.00403628
jmp 0x47d8e1
call fcn.00403304
jmp 0x47d9e1
lea ecx, [ebx + 1]
mov eax, dword [esi]
mov edx, dword [esi + 4]
call fcn.00436cec
lea eax, [ebp - 0xc]
call fcn.0040388c
mov edx, eax
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
call fcn.00403628
lea ecx, [ebp - 0x20]
mov eax, esi
mov edx, ebx
call fcn.00443384
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x10]
call fcn.00435ca4
inc ebx
jmp 0x47d8e1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47d9dd
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47da03
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00403568
ret
Function at 0x48255c
Capabilities:
Get installed programs

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov esi, ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov edi, dword [ebp + 8]
xor eax, eax
push ebp
push 0x482670
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, edi
mov edx, esi
call fcn.004035dc
test ebx, ebx
je 0x482655
lea edx, [ebp - 0xc]
mov eax, ebx
call fcn.0046c598
mov esi, 2
mov ebx, 0x488e80
lea eax, [ebp - 8]
push eax
push 1
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, 0x482688
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0xb
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0xb
lea edx, [ebp - 0x20]
mov ecx, 1
mov eax, 0x4826c4
call fcn.00407ad4
mov eax, dword [ebp - 0x10]
call fcn.00403880
push eax
mov eax, dword [ebx]
push eax
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x48264b
xor eax, eax
push ebp
push 0x482644
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4826d8
lea eax, [ebp - 0x10]
call fcn.004035dc
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
call fcn.004036c4
mov eax, dword [ebp - 0x10]
call fcn.00403880
mov edx, eax
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.0042dbd0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x482655
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
ret
add ebx, 4
dec esi
jne 0x4825aa
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x482677
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00403568
ret

Function at 0x485974
Capabilities:
Create process on windows
Create process suspended

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x485a17
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x485a30
push ebx
push 0x485a3c
push esi
lea eax, [ebp - 4]
mov edx, 4
call fcn.0040377c
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x44
call fcn.00402a64
mov dword [ebp - 0x48], 0x44
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00403880
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
jne 0x4859f5
mov eax, dword [0x489cf4]
call fcn.004858cc
mov eax, dword [ebp - 0x54]
push eax
call sub.kernel32.dll_CloseHandle_1
mov ebx, dword [ebp - 0x58]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x485a1e
lea eax, [ebp - 4]
call fcn.00403548
ret
Function at 0x48720c
Capabilities:
Enumerate files on windows
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 8], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x48734a
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x148]
push eax
mov edx, ebx
lea eax, [ebp - 0x14c]
call fcn.004035dc
lea eax, [ebp - 0x14c]
mov edx, 0x487360
call fcn.004036c4
mov eax, dword [ebp - 0x14c]
call fcn.00403880
push eax
call sub.kernel32.dll_FindFirstFileA
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x487329
xor eax, eax
push ebp
push 0x487322
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x487370
lea eax, [ebp - 0x11c]
mov ecx, 5
call fcn.00407638
test eax, eax
jne 0x4872f3
test byte [ebp - 0x148], 0x10
jne 0x4872f3
lea eax, [ebp - 0x14c]
lea edx, [ebp - 0x11c]
mov ecx, 0x104
call fcn.004036a4
mov ecx, dword [ebp - 0x14c]
lea eax, [ebp - 8]
mov edx, ebx
call fcn.00403708
mov esi, dword [ebp - 0x148]
test esi, 1
je 0x4872eb
and esi, 0xfffffffe
push esi
mov eax, dword [ebp - 8]
call fcn.00403880
push eax
call sub.kernel32.dll_SetFileAttributesA
mov eax, dword [ebp - 8]
call fcn.00407030
lea eax, [ebp - 0x148]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x487283
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x487329
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FindClose
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x487351
lea eax, [ebp - 0x14c]
call fcn.00403548
lea eax, [ebp - 8]
call fcn.00403548
ret
Function at 0x487378
Capabilities:
Check if file exists
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x48746e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call fcn.00403548
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0042c9dc
xor edi, edi
xor ebx, ebx
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x18], 0
lea edx, [ebp - 0x1c]
xor ecx, ecx
mov eax, 0x487484
call fcn.00407ad4
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00403708
mov eax, dword [ebp - 0x10]
call fcn.00403880
push eax
call sub.kernel32.dll_GetFileAttributesA
mov esi, eax
cmp esi, 0xffffffff
je 0x487416
test esi, 0x10
jne 0x487446
test esi, 1
je 0x487416
and esi, 0xfffffffe
push esi
mov eax, dword [ebp - 0x10]
call fcn.00403880
push eax
call sub.kernel32.dll_SetFileAttributesA
push 1
mov eax, dword [ebp - 0x10]
call fcn.00403880
push eax
mov eax, dword [ebp - 4]
call fcn.00403880
push eax
call sub.kernel32.dll_MoveFileExA
test eax, eax
je 0x487440
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.004035dc
jmp 0x487453
inc edi
cmp edi, 0xa
je 0x487453
inc ebx
cmp ebx, 0x3e8
jne 0x4873b7
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x487475
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00403568
ret
Function at 0x487530
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x48771c
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x18]
mov eax, 1
call fcn.0042d404
mov eax, dword [ebp - 0x18]
mov edx, 0x487734
call fcn.00406af4
test eax, eax
jne 0x487701
push 0x48773c
push 0
push 0
call sub.kernel32.dll_CreateMutexA
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x487590
push 0xffffffffffffffff
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor eax, eax
push ebp
push 0x4876fa
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.0042d404
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x10]
mov edx, 0x48775c
call fcn.0042c654
mov eax, dword [ebp - 0x10]
call fcn.0042cdb0
test al, al
je 0x4876a5
push 2
push 0
push 1
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, 0x44fb98
call fcn.0044fc34
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x48769e
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x487678
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0044ffd0
mov eax, dword [ebp - 0xc]
call fcn.004036bc
cmp eax, 3
jle 0x487678
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0x5b
jne 0x487678
mov eax, dword [ebp - 0xc]
cmp byte [eax + 2], 0x5d
jne 0x487678
lea eax, [ebp - 0x14]
push eax
mov ecx, 0x7fffffff
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.004038c0
xor eax, eax
push ebp
push 0x48766e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
mov al, byte [eax + 1]
sub al, 0x73
je 0x487650
dec al
je 0x48765c
jmp 0x487664
mov dl, 1
mov eax, dword [ebp - 0x14]
call fcn.00453198
jmp 0x487664
mov eax, dword [ebp - 0x14]
call fcn.00454020
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x487678
mov eax, dword [ebp - 8]
call fcn.0044ffc0
test al, al
je 0x4875f3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4876a5
mov eax, dword [ebp - 8]
call fcn.00402ca0
ret
mov eax, dword [ebp - 0x10]
call fcn.00407030
xor eax, eax
push ebp
push 0x4876ca
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00487494
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4876d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x487701
cmp dword [ebp - 4], 0
je 0x4876f9
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_ReleaseMutex
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x487723
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.00403568
ret
Function at 0x40a15c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov word [ebp + 0xc], ax
mov ebx, 0x19826993
mov eax, ebx
mul ebx
mov dword [ebp - 0x10], eax
mov ebx, eax
xor esi, esi
mov eax, ebx
mul ebx
mov dword [ebp - 0x14], eax
mov ebx, eax
mov word [ebp - 0xc], 0
jmp 0x40a272
mov eax, ebx
xor eax, ebx
mov ebx, eax
mov eax, dword [ebp + 8]
add eax, esi
push eax
call fcn.00405066
pop ecx
mov edx, eax
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
jne 0x40a1b3
mov byte [ebp - 2], 0
jmp 0x40a1dd
call fcn.0040ddd8
mov dword [ebp - 0x18], eax
mov eax, 0x7fff
mov edi, 7
movzx edx, byte [ebp - 1]
mov ecx, edi
sub ecx, edx
cdq
idiv ecx
mov ecx, eax
mov eax, dword [ebp - 0x18]
cdq
idiv ecx
mov edx, eax
mov byte [ebp - 2], dl
mov eax, dword [ebp + 8]
mov al, byte [esi + eax]
cmp al, 0x70
jb 0x40a1fc
cmp al, 0x7f
ja 0x40a1fc
mov eax, dword [ebp + 8]
add eax, esi
inc eax
movzx edx, byte [eax]
movzx ecx, byte [ebp - 2]
sub edx, ecx
mov byte [eax], dl
mov eax, dword [ebp + 8]
movzx eax, byte [esi + eax]
cmp eax, 0xe2
jne 0x40a21b
mov eax, dword [ebp + 8]
add eax, esi
inc eax
movzx edx, byte [eax]
movzx ecx, byte [ebp - 2]
sub edx, ecx
mov byte [eax], dl
mov eax, ebx
sub eax, ebx
mov ebx, eax
push 8
push 0x90
lea eax, [ebp - 0xa]
push eax
call fcn.0040ddc0
movzx eax, byte [ebp - 1]
push eax
mov eax, dword [ebp + 8]
add eax, esi
push eax
lea eax, [ebp - 0xa]
movzx edx, byte [ebp - 2]
add eax, edx
push eax
call fcn.0040ddb4
mov eax, ebx
sub eax, ebx
mov ebx, eax
push 6
lea eax, [ebp - 0xa]
push eax
mov eax, dword [ebp + 8]
add eax, esi
push eax
call fcn.0040ddb4
add esp, 0x24
mov eax, ebx
add eax, ebx
mov ebx, eax
add esi, 6
inc word [ebp - 0xc]
movzx eax, word [ebp + 0xc]
dec eax
cmp esi, eax
jb 0x40a190
pop edi
pop esi
pop ebx
leave
ret

Function at 0x432000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43200c
nop
pop eax
nop
nop
nop
nop
nop
add eax, 0x40729f
sub eax, 0x407245
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
jl 0x432030
nop
nop
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
jne 0x43201e
nop
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x431219
Function at 0x10018500
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
mov eax, dword [0x100fd640]
xor eax, esp
mov dword [esp + 0x11c], eax
cmp word [0x100fddb8], 0
push ebx
jne 0x10018722
push esi
push 0x11c
lea eax, [esp + 0xc]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [esp + 8]
push ecx
mov dword [esp + 0xc], 0x11c
call dword [sym.imp.kernel32.dll_GetVersionExW]
push str._I__OS_Version_
push 0
push 3
mov esi, eax
call fcn.1007da87
add esp, 0xc
test esi, esi
pop esi
je 0x10018706
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp eax, 2
jne 0x100186f1
cmp ecx, 4
jbe 0x100186f1
mov eax, dword [esp + 0xc]
mov ebx, 1
cmp ecx, 6
jb 0x10018628
test eax, eax
jne 0x100185de
cmp byte [esp + 0x11e], bl
jne 0x100185bc
push str.OS_VISTA_n
push eax
push 3
call fcn.1007da87
add esp, 0xc
mov word [0x100fddb8], bx
jmp 0x10018722
push str.OS_WINSERV_2008_n
push 0
push 3
call fcn.1007da87
mov edx, 2
add esp, 0xc
mov word [0x100fddb8], dx
jmp 0x10018722
cmp eax, ebx
jb 0x10018628
cmp byte [esp + 0x11e], bl
jne 0x10018606
push str.OS_WINDOWS7_or_newer_n
push 0
push 3
call fcn.1007da87
add esp, 0xc
mov eax, 0x20
jmp 0x1001871c
push str.OS_WINSERV_2008R2_or_newer_n
push 0
push 3
call fcn.1007da87
mov ecx, 0x40
add esp, 0xc
mov word [0x100fddb8], cx
jmp 0x10018722
cmp ecx, 5
jne 0x100186d0
cmp eax, 2
jne 0x1001867c
cmp byte [esp + 0x11e], bl
jne 0x10018661
push str.OS_WINXP_64_n
push 0
push 3
call fcn.1007da87
mov edx, 8
add esp, 0xc
mov word [0x100fddb8], dx
jmp 0x10018722
push str.OS_WINSERV_2003_n
push 0
push 3
call fcn.1007da87
add esp, 0xc
mov eax, 0x10
jmp 0x1001871c
cmp eax, ebx
jne 0x100186d0
push str.OS_WINXP
push 0
push 3
call fcn.1007da87
add esp, 0xc
test dword [esp + 0x11c], 0x200
mov ecx, 4
mov word [0x100fddb8], cx
je 0x100186bd
push str.Home_n
push 0
push 3
call fcn.1007da87
add esp, 0xc
jmp 0x10018722
push str.Pro_n
push 0
push 3
call fcn.1007da87
add esp, 0xc
jmp 0x10018722
push eax
push ecx
push str.OS_UNKNOWN:_dwMajorVersion_d_dwMinorVersion_d_n
push 0
push 3
call fcn.1007da87
mov edx, 0xff80
add esp, 0x14
mov word [0x100fddb8], dx
jmp 0x10018722
push ecx
push eax
push str.OS_UNKNOWN:_dwPlatformId_d_dwMajorVersion_d_n
push 0
push 3
call fcn.1007da87
add esp, 0x14
jmp 0x10018717
push str.OS_UNKNOWN:_GetVersionEx_failed_n
push 0
push 3
call fcn.1007da87
add esp, 0xc
mov eax, 0xff80
mov word [0x100fddb8], ax
movzx ecx, word [esp + 0x128]
movzx eax, word [0x100fddb8]
and eax, ecx
mov ecx, dword [esp + 0x120]
pop ebx
xor ecx, esp
call fcn.100b4c22
add esp, 0x120
ret