joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4e2660
Capabilities:
Hide graphical window

Disassembly:
mov byte [0x50d0a1], 1
call fcn.004b05d4
test al, al
jne 0x4e26b2
push 5
mov eax, dword [0x505e4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x505e4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_SetForegroundWindow
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x124]
mov cl, 2
xor edx, edx
call fcn.004e2544
ret

Function at 0x4e59b8
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 0x4e59dd
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebx
call sub.kernel32.dll_GetTickCount_1
mov ebx, eax
jmp 0x4e775c
call sub.kernel32.dll_GetTickCount_1
sub eax, ebx
cmp eax, 0x3e8
jae 0x4e7765
call fcn.004e6450
mov eax, 0xa
call fcn.00480e5c
call fcn.004e6450
call fcn.004e76fc
test al, al
jne 0x4e773a
pop ebx
ret

Function at 0x4e7c88
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [0x5059f0]
cmp dword [eax], 0
je 0x4e7d33
mov eax, dword [0x5059f0]
mov eax, dword [eax]
call fcn.00463e54
test al, al
je 0x4e7d33
mov eax, dword [0x5059f0]
mov eax, dword [eax]
cmp byte [eax + 0x1e2], 0
je 0x4e7cdd
cmp byte [ebx + 0x389], 0
jne 0x4e7cdd
mov eax, dword [0x505e4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x4e7ce1
xor eax, eax
jmp 0x4e7ce3
mov al, 1
mov ebx, eax
push 0xfffffffffffffff0
mov eax, dword [0x5059f0]
mov eax, dword [eax]
call fcn.00463aa8
push eax
call sub.user32.dll_GetWindowLongW
test eax, 0x10000000
setne al
cmp bl, al
je 0x4e7d33
test bl, bl
je 0x4e7d1f
push 5
mov eax, dword [0x5059f0]
mov eax, dword [eax]
call fcn.00463aa8
push eax
call sub.user32.dll_ShowWindow
jmp 0x4e7d33
push 0
mov eax, dword [0x5059f0]
mov eax, dword [eax]
call fcn.00463aa8
push eax
call sub.user32.dll_ShowWindow
pop ebx
ret
Function at 0x4e7de4
Capabilities:
Get system information on windows

Disassembly:
push ebx
push esi
add esp, 0xffffffd8
mov byte [0x50d05a], 0
push 0x4e7ecc
call sub.kernel32.dll_GetModuleHandleW_2
mov ebx, eax
push 0x4e7ee8
push ebx
call fcn.00409620
test eax, eax
je 0x4e7e70
lea edx, [esp + 4]
push edx
call eax
push 0x4e7f10
push ebx
call fcn.00409620
mov esi, eax
test esi, esi
je 0x4e7e7a
push esp
call sub.kernel32.dll_GetCurrentProcess
push eax
call esi
test eax, eax
je 0x4e7e7a
cmp dword [esp], 0
je 0x4e7e7a
call fcn.004ad478
test al, al
je 0x4e7e7a
push 0x4e7f30
push ebx
call fcn.00409620
test eax, eax
je 0x4e7e7a
push 0x4e7f64
push 0x4e7f84
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409620
test eax, eax
je 0x4e7e7a
mov byte [0x50d05a], 1
jmp 0x4e7e7a
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_GetSystemInfo_1
movzx eax, word [esp + 4]
sub ax, 1
jb 0x4e7e99
sub ax, 5
je 0x4e7ea2
sub ax, 3
je 0x4e7eab
sub ax, 3
je 0x4e7eb4
jmp 0x4e7ebd
mov byte [0x5054f4], 1
jmp 0x4e7ec4
mov byte [0x5054f4], 3
jmp 0x4e7ec4
mov byte [0x5054f4], 2
jmp 0x4e7ec4
mov byte [0x5054f4], 4
jmp 0x4e7ec4
mov byte [0x5054f4], 0
add esp, 0x28
pop esi
pop ebx
ret

Function at 0x4e7fa0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push 0
push 1
lea eax, [ebp - 4]
push eax
mov ecx, 0x4e8010
mov edx, 0x80000002
xor eax, eax
call fcn.0047fefc
test eax, eax
jne 0x4e8009
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 0x4e8064
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x4e8000
cmp dword [ebp - 0xc], 4
jne 0x4e8000
cmp dword [ebp - 8], 4
jne 0x4e8000
movzx eax, word [ebp - 0x10]
mov word [0x50d070], ax
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey_1
mov esp, ebp
pop ebp
ret

Function at 0x4e820c
Capabilities:
Check os version

Disassembly:
add esp, 0xfffffdd0
mov dword [esp], 0x114
push esp
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x4e82bb
movzx eax, byte [esp + 4]
shl eax, 0x18
movzx edx, byte [esp + 8]
shl edx, 0x10
or eax, edx
movzx edx, word [esp + 0xc]
or eax, edx
mov dword [0x50d06c], eax
cmp byte [0x50d059], 0
je 0x4e82bb
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x4e82ac
mov dword [esp + 0x114], 0x11c
lea eax, [esp + 0x114]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x4e82bb
movzx eax, byte [esp + 0x228]
shl eax, 8
movzx edx, byte [esp + 0x22a]
or ax, dx
mov word [0x50d070], ax
movzx eax, byte [esp + 0x22e]
mov byte [0x50d072], al
movzx eax, word [esp + 0x22c]
mov word [0x50d074], ax
jmp 0x4e82bb
cmp eax, 4
jne 0x4e82bb
call fcn.004e7fa0
call fcn.004e807c
add esp, 0x230
ret
Function at 0x4f36c0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ecx
mov esi, edx
mov ebx, eax
mov edi, dword [ebp + 0xc]
xor eax, eax
push ebp
push 0x4f3892
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
lea eax, [ebp - 4]
mov ecx, 0x200
xor edx, edx
call fcn.00406584
push 0
movzx eax, byte [ebp + 8]
mov eax, dword [eax*4 + 0x505980]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004064d4
mov ecx, eax
mov edx, esi
mov eax, ebx
call fcn.0047fefc
test eax, eax
jne 0x4f3877
xor eax, eax
push ebp
push 0x4f386c
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [edi + 4]
mov eax, dword [edi]
xor ecx, ecx
call fcn.0048b488
xor ebx, ebx
mov esi, dword [ebp - 4]
test esi, esi
je 0x4f3751
sub esi, 4
mov esi, dword [esi]
mov dword [ebp - 0x18], esi
cmp byte [ebp + 8], 0
je 0x4f377e
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 4]
call fcn.00406eb8
push eax
push ebx
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_RegEnumKeyExW
mov dword [ebp - 0x1c], eax
jmp 0x4f37a0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 4]
call fcn.00406eb8
push eax
push ebx
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_RegEnumValueW
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, 1
jb 0x4f3816
sub eax, 0xe9
je 0x4f37ba
sub eax, 0x19
je 0x4f3855
jmp 0x4f380f
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x4f37d1
mov eax, dword [ebp - 0x20]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x10000
jl 0x4f37e4
call fcn.00404b68
jmp 0x4f3877
mov eax, dword [ebp - 4]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x4f37fb
mov eax, dword [ebp - 0x24]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
add ecx, ecx
lea eax, [ebp - 4]
xor edx, edx
call fcn.00406584
jmp 0x4f3745
call fcn.00404b68
jmp 0x4f3877
lea ecx, [ebx + 1]
mov edx, dword [edi + 4]
mov eax, dword [edi]
call fcn.0048b488
lea eax, [ebp - 4]
call fcn.00406eb8
mov edx, eax
lea eax, [ebp - 8]
mov ecx, dword [ebp - 0x18]
call fcn.00406584
lea ecx, [ebp - 0x30]
mov eax, edi
mov edx, ebx
call fcn.0049c5f8
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 8]
call fcn.00489624
inc ebx
jmp 0x4f3745
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f3873
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f3899
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret
Function at 0x4f93a4
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 8], ebx
mov esi, ecx
mov dword [ebp - 4], edx
mov edi, eax
xor eax, eax
push ebp
push 0x4f9428
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x4f9410
mov ebx, esi
test ebx, ebx
je 0x4f93d6
sub ebx, 4
mov ebx, dword [ebx]
inc ebx
mov eax, ebx
add eax, eax
push eax
mov eax, esi
call fcn.004064d4
push eax
push 1
push 0
lea eax, [ebp - 8]
mov ecx, dword [ebp - 4]
mov edx, 0x4f9444
call fcn.00406914
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
push edi
call sub.advapi32.dll_RegSetValueExW
test eax, eax
sete al
mov ebx, eax
jmp 0x4f9412
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f942f
lea eax, [ebp - 8]
call fcn.00406438
ret

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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4fd21c
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4fd238
push ebx
push 0x4fd248
push esi
lea eax, [ebp - 4]
mov edx, 4
call fcn.004069f8
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x44
call fcn.00403540
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.004064d4
push eax
push 0
call sub.kernel32.dll_CreateProcessW
test eax, eax
jne 0x4fd1fa
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x1a8]
call fcn.004fd0cc
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 0x4fd223
lea eax, [ebp - 4]
call fcn.00406438
ret
Function at 0x4fdbbc
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 0x4fddaa
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.0047faa4
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.004ae620
test al, al
jne 0x4fdc29
xor eax, eax
push ebp
push 0x4fdc1f
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov edx, dword [ebp - 4]
xor eax, eax
call fcn.004aeb10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4fdc29
push 0
mov eax, dword [ebp - 4]
call fcn.004064d4
push eax
mov eax, dword [0x50d164]
call fcn.004064d4
push eax
call sub.kernel32.dll_CopyFileW
test eax, eax
jne 0x4fdc58
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x1a4]
call fcn.004fd0cc
push 0x80
mov eax, dword [ebp - 4]
call fcn.004064d4
push eax
call sub.kernel32.dll_SetFileAttributesW
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x509b50]
push eax
push 0
mov ecx, 0x4fddb8
mov edx, 0x4fddbc
xor eax, eax
call fcn.0040a124
mov dword [ebp - 8], eax
push 0x4fd28c
push 0xfffffffffffffffc
mov eax, dword [ebp - 8]
push eax
call sub.user32.dll_SetWindowLongW
mov dword [0x50d190], eax
xor eax, eax
push ebp
push 0x4fdd73
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x97
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x505e4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_SetWindowPos
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x28]
xor eax, eax
call fcn.0047f478
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, 0x4fddd8
call fcn.0040e2c8
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x2c]
call fcn.0047f358
mov edx, dword [ebp - 0x2c]
pop eax
call fcn.00406854
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.004fd174
mov dword [ebp - 0xc], eax
call fcn.004fd250
test al, al
jne 0x4fdd53
push 0xff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xc]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
je 0x4fdd31
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fdd7a
mov eax, dword [ebp - 8]
push eax
call sub.user32.dll_DestroyWindow
ret
Function at 0x4ff0e4
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 0x4ff39e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x505e4c]
mov eax, dword [eax]
mov edx, 0x4ff3b8
call fcn.0047bfc0
push 5
mov eax, dword [0x505e4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_ShowWindow
xor edx, edx
push ebp
push 0x4ff365
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.004e28ec
lea eax, [ebp - 0x10]
call fcn.0047f91c
mov eax, dword [ebp - 0x10]
call fcn.0040dd74
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.0047f478
mov edx, dword [ebp - 0x14]
mov eax, 0x50d164
call fcn.00406448
call fcn.004fd484
lea ecx, [ebp - 0x18]
mov edx, 0x4ff3d8
mov eax, dword [0x50d164]
call fcn.0047e55c
mov edx, dword [ebp - 0x18]
mov eax, 0x50d168
call fcn.00406448
lea ecx, [ebp - 0x1c]
mov edx, 0x4ff3f0
mov eax, dword [0x50d164]
call fcn.0047e55c
mov edx, dword [ebp - 0x1c]
mov eax, 0x50d16c
call fcn.00406448
push 2
push 0
push 1
mov ecx, dword [0x50d164]
mov dl, 1
mov eax, dword [0x4aab8c]
call fcn.004aaecc
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4ff23c
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.004aae8c
lea edx, [ebp - 0xc]
mov ecx, 8
mov eax, dword [ebp - 4]
call fcn.004aae64
cmp dword [ebp - 0xc], 0x67734d49
je 0x4ff217
mov cl, 1
xor edx, edx
mov eax, dword [0x50d16c]
call fcn.004ac214
jmp 0x4ff226
mov cl, 1
mov edx, dword [ebp - 8]
mov eax, dword [0x50d164]
call fcn.004ac214
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff243
mov eax, dword [ebp - 4]
call fcn.00404098
ret
Function at 0x4ff548
Capabilities:
Delete file
Enumerate files on windows
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffda0
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x260], edx
mov dword [ebp - 0x25c], edx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4ff68b
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x25c]
mov ecx, 0x4ff6a4
mov edx, ebx
call fcn.00406914
mov eax, dword [ebp - 0x25c]
call fcn.004064d4
push eax
call sub.kernel32.dll_FindFirstFileW_1
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
je 0x4ff665
xor eax, eax
push ebp
push 0x4ff65e
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4ff6c0
lea eax, [ebp - 0x22c]
mov ecx, 5
call fcn.0040dff4
test eax, eax
jne 0x4ff62f
test byte [ebp - 0x258], 0x10
jne 0x4ff62f
lea eax, [ebp - 0x260]
lea edx, [ebp - 0x22c]
mov ecx, 0x104
call fcn.00406640
mov ecx, dword [ebp - 0x260]
lea eax, [ebp - 4]
mov edx, ebx
call fcn.00406914
mov esi, dword [ebp - 0x258]
test esi, 1
je 0x4ff621
and esi, 0xfffffffe
push esi
mov eax, dword [ebp - 4]
call fcn.004064d4
push eax
call sub.kernel32.dll_SetFileAttributesW
mov eax, dword [ebp - 4]
call fcn.004064d4
push eax
call sub.kernel32.dll_DeleteFileW
lea eax, [ebp - 0x258]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_FindNextFileW
test eax, eax
jne 0x4ff5b9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff665
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_FindClose_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff692
lea eax, [ebp - 0x260]
mov edx, 2
call fcn.00406440
lea eax, [ebp - 4]
call fcn.00406438
ret
Function at 0x4ff6cc
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 - 4], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x4ff7cc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
xor edx, edx
call fcn.00406448
lea edx, [ebp - 4]
mov eax, dword [ebp - 0xc]
call fcn.0047ea00
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, 0x4ff7e8
call fcn.0040e2c8
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00406914
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetFileAttributesW
mov esi, eax
cmp esi, 0xffffffff
je 0x4ff76c
test esi, 0x10
jne 0x4ff79c
test esi, 1
je 0x4ff76c
and esi, 0xfffffffe
push esi
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_SetFileAttributesW
push 1
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
mov eax, dword [ebp - 0xc]
call fcn.004064d4
push eax
call sub.kernel32.dll_MoveFileExW
test eax, eax
je 0x4ff796
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00406448
jmp 0x4ff7a9
inc edi
cmp edi, 0xa
je 0x4ff7a9
inc ebx
cmp ebx, 0x3e8
jne 0x4ff70d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ff7d3
lea eax, [ebp - 0x14]
call fcn.00406438
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret
Function at 0x514293
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov byte [esp + 4], ah
lea esp, [esp + 0x10]
jne 0x51431b
pushal
pushfd
pushfd
mov byte [esp], 0xa0
lea esp, [esp + 0x28]
jmp loc.004aba12
adc al, 0xb4
bts ax, bp
mov eax, ebx
pushfd
mov dword [esp], ebp
push 0xe3e45b5f
sub edx, edx
bt di, di
div edi
cwde
lahf
add edx, dword [ebp + 0x10]
shl ah, 6
sub al, al
movzx eax, byte [edx]
bt dx, di
stc
xor byte [esi], al
push 0xaaa8f9bb
pushal
push 0xcd366f02
call fcn.00514260
Function at 0x401589
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x52707c]
jne 0x401593
repz ret
jmp fcn.0040229b

Function at 0x404f17
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x52707c]
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.00403307
and dword [ebp - 0x14], 0
cmp dword [0x5296cc], 0
mov dword [ebp - 0x18], eax
jne 0x404fca
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x405072
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x405072
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x5296cc], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x5296d0], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x5296d4], eax
call edi
push eax
call esi
mov dword [0x5296dc], eax
test eax, eax
je 0x404fca
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x5296d8], eax
mov eax, dword [0x5296d8]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x405023
cmp dword [0x5296dc], ecx
je 0x405023
push eax
call esi
push dword [0x5296dc]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x405023
test ebx, ebx
je 0x405023
call edi
test eax, eax
je 0x40501a
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40501a
test byte [ebp - 8], 1
jne 0x405023
or dword [ebp + 0x10], 0x200000
jmp 0x405056
mov eax, dword [0x5296d0]
cmp eax, dword [ebp - 0x18]
je 0x405056
push eax
call esi
test eax, eax
je 0x405056
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x405056
mov eax, dword [0x5296d4]
cmp eax, dword [ebp - 0x18]
je 0x405056
push eax
call esi
test eax, eax
je 0x405056
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x5296cc]
call esi
test eax, eax
je 0x405072
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x405074
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401589
leave
ret
Function at 0x51f0b0
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jle 0x51f11d
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 4], 0x269eb9
add dword [ebp - 4], 0x14
sub dword [ebp - 4], 0xa
mov eax, dword [0x529750]
imul eax, eax, 0x343fd
add eax, dword [ebp - 4]
push 0
mov dword [0x529750], eax
shr eax, 0x10
xor byte [esi + edi], al
call dword [sym.imp.KERNEL32.dll_FindAtomA]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindFirstChangeNotificationW]
push str.wezopizusumo
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
inc esi
cmp esi, dword [ebp + 8]
jl 0x51f0c3
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x6c7550
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x1e1000]
push edi
or ebp, 0xffffffff
jmp 0x6c7572
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x6c7579
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6c7568
mov eax, 1
add ebx, ebx
jne 0x6c758b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x6c759c
jne 0x6c75bb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6c75bb
dec eax
add ebx, ebx
jne 0x6c75a8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x6c7580
add ebx, ebx
jne 0x6c75b7
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x6c760d
xor ecx, ecx
sub eax, 3
jb 0x6c75d3
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x6c7642
sar eax, 1
mov ebp, eax
jmp 0x6c75de
add ebx, ebx
jne 0x6c75de
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6c75ac
inc ecx
add ebx, ebx
jne 0x6c75ec
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6c75ac
add ebx, ebx
jne 0x6c75f9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x6c75ee
jne 0x6c760a
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x6c75ee
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x6c762c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x6c761e
jmp 0x6c756e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x6c762c
add edi, ecx
jmp 0x6c756e
pop esi
mov edi, esi
mov ecx, 0xcb36
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x6c764a
cmp byte [edi], 0x38
jne 0x6c764a
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x6c764f
lea edi, [esi + 0x2c3000]
mov eax, dword [edi]
or eax, eax
je 0x6c76be
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x2e1d0c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x2e1e9c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x6c767c
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x2e1ea4]
or eax, eax
je 0x6c76b8
mov dword [ebx], eax
add ebx, 4
jmp 0x6c7699
call dword [esi + 0x2e1ea0]
mov ebp, dword [esi + 0x2e1ea8]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x21f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x6c76f2
sub esp, 0xffffff80
jmp 0x5d4fac