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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffda0
push ebx
push esi
xor eax, eax
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x7beefe
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x254]
push eax
lea edx, [ebp - 0x258]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
call fcn.005e0b78
lea eax, [ebp - 0x258]
mov edx, 0x7bef18
call fcn.00409b1c
mov eax, dword [ebp - 0x258]
call fcn.0040990c
push eax
call sub.kernel32.dll_FindFirstFileW
mov esi, eax
cmp esi, 0xffffffff
je 0x7beed8
lea eax, [ebp - 4]
lea edx, [ebp - 0x228]
mov ecx, 0x104
call fcn.004099c4
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x7bee07
sub ebx, 4
mov ebx, dword [ebx]
cmp ebx, 9
jl 0x7bee4c
lea eax, [ebp - 0x25c]
push eax
mov ecx, 5
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00409d44
mov eax, dword [ebp - 0x25c]
mov edx, 0x7bef3c
call fcn.00420588
test eax, eax
jne 0x7bee4c
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0xa]
add eax, 0xffffffd0
sub ax, 0xa
setb al
jmp 0x7bee4e
xor eax, eax
test al, al
je 0x7bee65
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0xc]
add eax, 0xffffffd0
sub ax, 0xa
setb al
jmp 0x7bee67
xor eax, eax
test al, al
je 0x7bee7e
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0xe]
add eax, 0xffffffd0
sub ax, 0xa
setb al
jmp 0x7bee80
xor eax, eax
test al, al
je 0x7beebd
mov eax, dword [ebp - 4]
cmp word [eax + 0x10], 0x2e
jne 0x7beebd
lea eax, [ebp - 0x260]
push eax
mov ecx, 3
mov edx, 6
mov eax, dword [ebp - 4]
call fcn.00409d44
mov eax, dword [ebp - 0x260]
call fcn.004215ec
mov edx, dword [ebp + 8]
mov byte [edx + eax - 0x3ec], 1
lea eax, [ebp - 0x254]
push eax
push esi
call sub.kernel32.dll_FindNextFileW
test eax, eax
jne 0x7bede8
push esi
call sub.kernel32.dll_FindClose
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7bef05
lea eax, [ebp - 0x260]
mov edx, 3
call fcn.004088a4
lea eax, [ebp - 4]
call fcn.00408844
ret
Function at 0x7c1244
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
call fcn.007c1118
lea eax, [ebp - 0x18]
push eax
push 0
push 0x4a
mov eax, dword [0x80bcf0]
push eax
call sub.user32.dll_SendMessageW
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx], ecx
call fcn.00406ad8
cmp ebx, 0x6c840001
jne 0x7c12a4
call fcn.004276d0
mov eax, 0xffff0000
and eax, ebx
cmp eax, 0x6c830000
je 0x7c12c8
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x1c], 0
lea edx, [ebp - 0x20]
xor ecx, ecx
mov eax, 0x7c137c
call fcn.0078bcbc
mov word [ebp - 0xa], bx
call sub.kernel32.dll_GetTickCount
mov ebx, eax
call dword [ebp - 8]
call sub.kernel32.dll_GetTickCount
mov edx, eax
sub edx, ebx
cmp edx, 0xa
jb 0x7c131e
mov ebx, eax
mov edx, 1
movzx eax, word [ebp - 0xa]
call fcn.007c1198
mov esi, eax
mov eax, esi
sub ax, 2
je 0x7c131e
dec eax
sub ax, 2
jb 0x7c1332
movzx eax, si
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0
lea edx, [ebp - 0x20]
xor ecx, ecx
mov eax, 0x7c13dc
call fcn.0078bcbc
push 0x4ff
push 0xa
push 0
push 0
push 0
call sub.user32.dll_MsgWaitForMultipleObjects
jmp 0x7c12d3
mov edx, 2
movzx eax, word [ebp - 0xa]
call fcn.007c1198
movzx ebx, ax
mov edx, 3
movzx eax, word [ebp - 0xa]
call fcn.007c1198
movzx eax, ax
shl eax, 0x10
or ebx, eax
mov eax, dword [ebp + 8]
mov dword [eax], ebx
cmp si, 3
sete al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x7c3674
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebx
push esi
push ecx
mov ebx, eax
mov eax, ebx
call fcn.007c36f8
call fcn.004054a0
mov esi, eax
push esp
push 0x40
mov eax, ebx
call fcn.007c36f8
push eax
push esi
call sub.kernel32.dll_VirtualProtect
mov edx, esi
mov eax, ebx
call fcn.007c36a8
mov eax, esi
pop edx
pop esi
pop ebx
ret
Function at 0x7d18bc
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x7d1a0b
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 4]
mov eax, ebx
call fcn.007d16d8
lea eax, [ebp - 8]
call fcn.007d17e8
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x3c
call fcn.00405d9c
mov dword [ebp - 0x48], 0x3c
mov dword [ebp - 0x44], 0x800540
mov eax, 0x7d1a18
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
call fcn.0040990c
mov dword [ebp - 0x38], eax
mov eax, esi
call fcn.0040990c
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
call fcn.0040990c
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 1
lea eax, [ebp - 0x48]
push eax
call sub.shell32.dll_ShellExecuteExW
test eax, eax
jne 0x7d1967
call sub.kernel32.dll_GetLastError
cmp eax, 0x4c7
jne 0x7d195d
call fcn.004276b0
mov eax, 0x7d1a30
call fcn.0078bdb8
cmp dword [ebp - 0x10], 0
jne 0x7d1977
mov eax, 0x7d1a5c
call fcn.0078bc64
xor edx, edx
push ebp
push 0x7d19e9
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.007d13e4
push 0x4ff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x10]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
je 0x7d1985
cmp eax, 0xffffffff
jne 0x7d19b2
mov eax, 0x7d1ab0
call fcn.0078bdb8
call fcn.007d13e4
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_GetExitCodeProcess
test eax, eax
jne 0x7d19d2
mov eax, 0x7d1af0
call fcn.0078bdb8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7d19f0
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle
ret

Function at 0x7d1b18
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x7d1be7
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x7d11b8]
call fcn.007d1c10
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x7d1bc0
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
mov byte [ebp - 0xc], 0
lea edx, [ebp - 0x10]
xor ecx, ecx
mov eax, 0x7d1c00
call fcn.00422b14
mov edx, dword [ebp - 8]
mov eax, dword [0x802ef8]
mov eax, dword [eax]
call fcn.005d40c8
call fcn.007d13e4
call sub.user32.dll_GetFocus
mov edx, dword [0x802ef8]
mov edx, dword [edx]
cmp eax, dword [edx + 0x188]
jne 0x7d1ba3
push 0x7a
call sub.user32.dll_GetKeyState
test ax, ax
jl 0x7d1baa
call sub.user32.dll_WaitMessage
jmp 0x7d1b7d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7d1bc7
mov eax, dword [ebp - 4]
call fcn.00406ad8
ret
Function at 0x7d8020
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
mov ecx, 6
push 0
push 0
dec ecx
jne 0x7d8028
push ecx
push ebx
xor eax, eax
push ebp
push 0x7d8172
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.0078c458
mov edx, dword [ebp - 0x10]
mov eax, 0x80bdb8
call fcn.00408c24
lea eax, [ebp - 0x14]
mov ecx, dword [0x80bdb8]
mov edx, 0x7d818c
call fcn.00409b74
mov eax, dword [ebp - 0x14]
call fcn.00794d1c
mov eax, dword [0x803078]
cmp byte [eax], 0
je 0x7d8083
mov eax, dword [0x80bdb8]
call fcn.00794428
lea edx, [ebp - 0x18]
mov eax, dword [0x80bdb8]
call fcn.005e0b78
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 4]
mov ecx, 0x7d81d4
call fcn.00409b74
push 0
mov eax, dword [ebp - 4]
call fcn.0040990c
push eax
call sub.kernel32.dll_CreateDirectoryW
test eax, eax
jne 0x7d8119
call sub.kernel32.dll_GetLastError
mov ebx, eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov al, 0x3b
call fcn.005e96a4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x30]
call fcn.0042127c
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
lea edx, [ebp - 0x34]
mov eax, ebx
call fcn.005e3170
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], eax
lea edx, [ebp - 0x28]
mov ecx, 2
mov al, 0x70
call fcn.005e9674
mov ecx, dword [ebp - 0x1c]
mov dl, 1
mov eax, dword [0x41a37c]
call fcn.004276dc
call fcn.00407f04
lea eax, [ebp - 8]
call fcn.007adfa4
cmp dword [ebp - 8], 0
je 0x7d814a
lea eax, [ebp - 0xc]
mov ecx, 0x7d81f0
mov edx, dword [ebp - 4]
call fcn.00409b74
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.007d7fc8
mov eax, dword [ebp - 0xc]
call fcn.007adffc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7d8179
lea eax, [ebp - 0x34]
mov edx, 3
call fcn.004088a4
lea eax, [ebp - 0x1c]
mov edx, 7
call fcn.004088a4
ret

Function at 0x7dac08
Capabilities:
Hide graphical window

Disassembly:
mov byte [0x80c0ad], 1
call fcn.0078e288
test al, al
jne 0x7dac5a
push 5
mov eax, dword [0x802ef8]
mov eax, dword [eax]
mov eax, dword [eax + 0x188]
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x802ef8]
mov eax, dword [eax]
mov eax, dword [eax + 0x188]
push eax
call sub.user32.dll_SetForegroundWindow
push 0
push 1
push 1
mov eax, dword [0x802f10]
mov eax, dword [eax + 0x138]
mov cl, 2
xor edx, edx
call fcn.007da9a8
ret

Function at 0x7de524
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 4], eax
mov ecx, 3
lea ebx, [ebp - 8]
lea esi, [ebp - 0xc]
lea edi, [ebp - 4]
movzx eax, byte [esi]
movzx edx, byte [ebx]
sub eax, edx
imul dword [ebp - 0x10]
push ecx
mov ecx, 0xff
cdq
idiv ecx
pop ecx
movzx edx, byte [ebx]
add eax, edx
mov byte [edi], al
inc edi
inc esi
inc ebx
dec ecx
jne 0x7de549
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x7e02d0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
call sub.kernel32.dll_GetTickCount
mov ebx, eax
jmp 0x7e02fc
call sub.kernel32.dll_GetTickCount
sub eax, ebx
cmp eax, 0x3e8
jae 0x7e0305
call fcn.007defbc
mov eax, 0xa
call fcn.005e3584
call fcn.007defbc
call fcn.007e029c
test al, al
jne 0x7e02da
pop ebx
ret

Function at 0x7e0834
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [0x802740]
cmp dword [eax], 0
je 0x7e08df
mov eax, dword [0x802740]
mov eax, dword [eax]
call fcn.0051d134
test al, al
je 0x7e08df
mov eax, dword [0x802740]
mov eax, dword [eax]
cmp byte [eax + 0x215], 0
je 0x7e0889
cmp byte [ebx + 0x3e5], 0
jne 0x7e0889
mov eax, dword [0x802ef8]
mov eax, dword [eax]
mov eax, dword [eax + 0x188]
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x7e088d
xor eax, eax
jmp 0x7e088f
mov al, 1
mov ebx, eax
mov eax, dword [0x802740]
mov eax, dword [eax]
call fcn.0051cd60
push 0xfffffffffffffff0
push eax
call sub.user32.dll_GetWindowLongW
test eax, 0x10000000
setne al
cmp bl, al
je 0x7e08df
test bl, bl
je 0x7e08cb
push 5
mov eax, dword [0x802740]
mov eax, dword [eax]
call fcn.0051cd60
push eax
call sub.user32.dll_ShowWindow
jmp 0x7e08df
push 0
mov eax, dword [0x802740]
mov eax, dword [eax]
call fcn.0051cd60
push eax
call sub.user32.dll_ShowWindow
pop ebx
ret
Function at 0x7e2934
Capabilities:
Copy file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x7e2b22
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.005e21d8
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.0078c2dc
test al, al
jne 0x7e29a1
xor eax, eax
push ebp
push 0x7e2997
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov edx, dword [ebp - 4]
xor eax, eax
call fcn.0078c7d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7e29a1
push 0
mov eax, dword [ebp - 4]
call fcn.0040990c
push eax
mov eax, dword [0x80c158]
call fcn.0040990c
push eax
call sub.kernel32.dll_CopyFileW
test eax, eax
jne 0x7e29d0
mov eax, dword [0x802f10]
mov eax, dword [eax + 0x1c4]
call fcn.007e1e70
push 0x80
mov eax, dword [ebp - 4]
call fcn.0040990c
push eax
call sub.kernel32.dll_SetFileAttributesW
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x807634]
push eax
push 0
mov ecx, 0x7e2b30
mov edx, 0x7e2b34
xor eax, eax
call fcn.0041362c
mov dword [ebp - 8], eax
push 0x7e2030
push 0xfffffffffffffffc
mov eax, dword [ebp - 8]
push eax
call sub.user32.dll_SetWindowLongW
mov dword [0x80c184], eax
xor eax, eax
push ebp
push 0x7e2aeb
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x97
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x802ef8]
mov eax, dword [eax]
mov eax, dword [eax + 0x188]
push eax
call sub.user32.dll_SetWindowPos
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x28]
xor eax, eax
call fcn.005e1ba4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0x11
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x18], 0
lea edx, [ebp - 0x24]
mov ecx, 1
mov eax, 0x7e2b50
call fcn.00422b14
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x2c]
call fcn.005e1a84
mov edx, dword [ebp - 0x2c]
pop eax
call fcn.00409b1c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.007e1f18
mov dword [ebp - 0xc], eax
call fcn.007e1ff4
test al, al
jne 0x7e2acb
push 0x4ff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xc]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
je 0x7e2aa9
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7e2af2
mov eax, dword [ebp - 8]
push eax
call sub.user32.dll_DestroyWindow
ret
Function at 0x7e3ec0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x7e4174
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x802ef8]
mov eax, dword [eax]
mov edx, 0x7e4190
call fcn.005d40c8
push 5
mov eax, dword [0x802ef8]
mov eax, dword [eax]
mov eax, dword [eax + 0x188]
push eax
call sub.user32.dll_ShowWindow
xor edx, edx
push ebp
push 0x7e413b
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.007dae94
lea eax, [ebp - 0x10]
call fcn.005e2050
mov eax, dword [ebp - 0x10]
call fcn.0042263c
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.005e1ba4
mov edx, dword [ebp - 0x14]
mov eax, 0x80c158
call fcn.00408c24
call fcn.007e2200
lea ecx, [ebp - 0x18]
mov edx, 0x7e41b0
mov eax, dword [0x80c158]
call fcn.005e0c64
mov edx, dword [ebp - 0x18]
mov eax, 0x80c15c
call fcn.00408c24
lea ecx, [ebp - 0x1c]
mov edx, 0x7e41c8
mov eax, dword [0x80c158]
call fcn.005e0c64
mov edx, dword [ebp - 0x1c]
mov eax, 0x80c160
call fcn.00408c24
push 2
push 0
push 1
mov ecx, dword [0x80c158]
mov dl, 1
mov eax, dword [0x5e77f8]
call fcn.005e8154
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x7e4018
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 4]
mov edx, dword [ebp - 0x24]
sub edx, 8
mov eax, dword [ebp - 4]
call fcn.005e8114
lea edx, [ebp - 0xc]
mov ecx, 8
mov eax, dword [ebp - 4]
call fcn.005e80ec
cmp dword [ebp - 0xc], 0x67734d49
je 0x7e3ff3
mov cl, 1
xor edx, edx
mov eax, dword [0x80c160]
call fcn.005e9850
jmp 0x7e4002
mov cl, 1
mov edx, dword [ebp - 8]
mov eax, dword [0x80c158]
call fcn.005e9850
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7e401f
mov eax, dword [ebp - 4]
call fcn.00406ad8
ret
Function at 0x30032398
Capabilities:
Terminate process

Disassembly:
push 0x10
push 0x30033f10
call fcn.3003260e
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword fs:[0x18]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], ebx
mov edi, 0x3006be98
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
cmp eax, ebx
je 0x30032188
cmp eax, esi
jne 0x3003217b
xor esi, esi
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x3003218b
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x30032162
xor esi, esi
inc esi
mov eax, dword [0x3006be94]
cmp eax, esi
jne 0x3003219e
push 0x1f
call fcn.301aa000
pop ecx
jmp 0x300321d9
mov eax, dword [0x3006be94]
test eax, eax
jne 0x300321d3
mov dword [0x3006be94], esi
push 0x3000130c
push 0x30001300
call sub.MSVCR80.dll__initterm_e
pop ecx
pop ecx
test eax, eax
je 0x300321d9
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
jmp 0x300322b0
mov dword [0x3006bb50], esi
mov eax, dword [0x3006be94]
cmp eax, esi
jne 0x300321fd
push 0x300012fc
push 0x300012e4
call sub.MSVCR80.dll__initterm
pop ecx
pop ecx
mov dword [0x3006be94], 2
cmp dword [ebp - 0x1c], ebx
jne 0x3003220a
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
cmp dword [0x3006bea4], ebx
je 0x3003222b
push 0x3006bea4
call fcn.300329cc
pop ecx
test eax, eax
je 0x3003222b
push ebx
push 2
push ebx
call dword [0x3006bea4]
mov eax, dword [0x3006bb38]
mov ecx, dword [sym.imp.MSVCR80.dll___winitenv]
mov dword [ecx], eax
push dword [0x3006bb38]
push dword [0x3006bb3c]
push dword [0x3006bb34]
call fcn.3001d9bd
add esp, 0xc
mov dword [0x3006bb4c], eax
cmp dword [0x3006bb40], ebx
jne 0x30032296
push eax
call dword [sym.imp.MSVCR80.dll_exit]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov ecx, dword [ecx]
mov dword [ebp - 0x20], ecx
push eax
push ecx
call sub.MSVCR80.dll__XcptFilter
pop ecx
pop ecx
ret
cmp dword [0x3006bb50], ebx
jne 0x300322a4
call dword [sym.imp.MSVCR80.dll__cexit]
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [0x3006bb4c]
call fcn.30032653
ret
call fcn.30032029
jmp 0x30032140
Function at 0x484ce5
Capabilities:
Encode data using xor

Disassembly:
mov esi, 0x484a08
mov eax, ecx
mov eax, ecx
call fcn.00484d2f
sub ecx, 0xe009c7f9
add ecx, 0xedcb5a71
xor dword [edx], esi
sub ecx, 0x52873c66
mov ecx, 0x7df27639
sub eax, eax
add edx, 2
add ecx, 0x849d4f6c
cmp edx, ebx
jl fcn.00484ce5
inc ecx
sub eax, ecx
ret
Function at 0x408769
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x40c190
cmp edx, dword [eax]
je 0x40878b
add eax, 8
inc ecx
cmp eax, 0x40c220
jl 0x40877c
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x40c190]
jne 0x4088b9
mov eax, dword [0x40cbb0]
cmp eax, 1
je 0x408893
test eax, eax
jne 0x4087bc
cmp dword [0x40c0e4], 1
je 0x408893
cmp edx, 0xfc
je 0x4088b9
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4087f3
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.00409670
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00409490
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x408836
lea eax, [ebp - 0x1a4]
push eax
call fcn.00409490
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x40b45c
push edi
call fcn.00409f00
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.00409670
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.00409680
lea eax, [ebp - 0xa0]
push 0x40b43c
push eax
call fcn.00409680
push dword [esi + 0x40c194]
lea eax, [ebp - 0xa0]
push eax
call fcn.00409680
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.00409e75
add esp, 0x2c
pop edi
jmp 0x4088b9
lea eax, [ebp + 8]
lea esi, [esi + 0x40c194]
push 0
push eax
push dword [esi]
call fcn.00409490
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret

Function at 0x433002
Capabilities:
Encode data using xor

Disassembly:
pushal
nop
nop
nop
call 0x43300c
nop
nop
pop eax
nop
nop
nop
nop
add eax, 0x40a063
sub eax, 0x40a009
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x433030
nop
nop
add eax, 0xc
nop
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
jne 0x43301e
nop
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x431219
Function at 0x401540
Capabilities:
Enumerate process modules

Disassembly:
push 0xffffffffffffffff
push 0x41bdf2
mov eax, dword fs:[0]
push eax
sub esp, 0x41c
mov eax, dword [0x4242c0]
xor eax, esp
mov dword [esp + 0x418], eax
push ebx
push ebp
push edi
mov eax, dword [0x4242c0]
xor eax, esp
push eax
lea eax, [esp + 0x42c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x43c]
xor ebx, ebx
mov dword [esp + 0x434], ebx
mov dword [esp + 0x14], ebx
mov edx, dword [0x41f88c]
mov eax, dword [str._unknown_]
mov ecx, dword [0x41f888]
push 0x1f4
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], eax
mov eax, dword [0x41f890]
mov dword [esp + 0x28], ecx
mov ecx, dword [0x41f894]
lea edx, [esp + 0x38]
push ebx
push edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
call fcn.0040b440
add esp, 0xc
push ebp
push ebx
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
cmp edi, ebx
je 0x401615
lea eax, [esp + 0x1c]
push eax
push 4
lea ecx, [esp + 0x18]
push ecx
push edi
call sub.PSAPI.DLL_EnumProcessModules
test eax, eax
je 0x401654
mov eax, dword [esp + 0x10]
push 0x104
lea edx, [esp + 0x24]
push edx
push eax
push edi
call sub.PSAPI.DLL_GetModuleBaseNameW
jmp 0x401654
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push 0x1fe
lea ecx, [esp + 0x230]
push ecx
push ebx
mov edi, eax
push edi
push ebx
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
lea edx, [esp + 0x228]
push edx
call fcn.00404580
push edi
push str.Error__d_n
call fcn.0040a61e
add esp, 0xc
push ebp
lea eax, [esp + 0x24]
push eax
push str._s_n
call fcn.0040a61e
lea eax, [esp + 0x2c]
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
add esp, 0xc
mov byte [esi + 4], bl
lea edx, [eax + 1]
jmp 0x401680
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401680
sub eax, edx
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.00405790
mov dword [esp + 0x434], ebx
mov dword [esp + 0x14], 1
mov eax, esi
mov ecx, dword [esp + 0x42c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x418]
xor ecx, esp
call fcn.0040a01f
add esp, 0x428
ret
Function at 0x4016d0
Capabilities:
Enumerate process modules

Disassembly:
push 0xffffffffffffffff
push 0x41be28
mov eax, dword fs:[0]
push eax
mov eax, 0x1028
call fcn.00419980
mov eax, dword [0x4242c0]
xor eax, esp
mov dword [esp + 0x1024], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4242c0]
xor eax, esp
push eax
lea eax, [esp + 0x103c]
mov dword fs:[0], eax
lea eax, [esp + 0x18]
push eax
push 0x1000
lea ecx, [esp + 0x24]
xor ebx, ebx
push ecx
mov dword [esp + 0x20], ebx
call sub.PSAPI.DLL_EnumProcesses
test eax, eax
je 0x4017b5
mov ebp, dword [esp + 0x18]
shr ebp, 2
xor edi, edi
cmp ebp, ebx
jbe 0x4017b1
mov edi, edi
mov eax, dword [esp + edi*4 + 0x1c]
cmp eax, ebx
je 0x4017ac
push eax
lea esi, [esp + 0x1020]
call fcn.00401540
add esp, 4
mov dword [esp + 0x1044], ebx
mov edx, esi
call fcn.00404780
test al, al
je 0x40176e
inc dword [esp + 0x14]
mov dword [esp + 0x1044], 0xffffffff
cmp dword [esp + 0x1034], 0x10
jb 0x401793
mov edx, dword [esp + 0x1020]
push edx
call fcn.0040a02e
add esp, 4
mov dword [esp + 0x1034], 0xf
mov dword [esp + 0x1030], ebx
mov byte [esp + 0x1020], bl
inc edi
cmp edi, ebp
jb 0x401740
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x103c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1024]
xor ecx, esp
call fcn.0040a01f
add esp, 0x1034
ret