joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40a2cf
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 4], 0
mov byte [ebp - 0x14], 0x73
mov byte [ebp - 0x13], 0x48
mov byte [ebp - 0x12], 0x41
mov byte [ebp - 0x11], 0x55
mov byte [ebp - 0x10], 0x79
mov byte [ebp - 0xf], 0x6c
mov byte [ebp - 0xe], 0x57
mov byte [ebp - 0xd], 0x49
mov byte [ebp - 0xc], 0x49
mov byte [ebp - 0xb], 0x77
mov byte [ebp - 0xa], 0x45
mov byte [ebp - 9], 0x44
mov byte [ebp - 8], 0x55
mov byte [ebp - 7], 0x4c
mov byte [ebp - 6], 0
lea eax, [ebp - 0x14]
push eax
push 0
push 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1cc]
call edx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40a34c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x78]
call ecx
cmp eax, 0xb7
jne 0x40a347
xor eax, eax
jmp 0x40a34c
mov eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x40a39f
Capabilities:
Contain obfuscated stackstrings

Disassembly:
jmp 0x40a3a2
jmp 0x40a3a5
jmp 0x40a3a8
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
and ecx, 0xffff
mov word [ebp - 4], cx
mov dword [ebp - 0x20], 0
jmp 0x40a3d6
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0xd
jge 0x40a447
movzx eax, word [ebp - 4]
movzx ecx, word [ebp - 4]
sar ecx, 2
xor eax, ecx
movzx edx, word [ebp - 4]
sar edx, 3
xor eax, edx
movzx ecx, word [ebp - 4]
sar ecx, 5
xor eax, ecx
and eax, 1
mov dword [ebp - 0xbc], eax
movzx edx, word [ebp - 4]
sar edx, 1
mov eax, dword [ebp - 0xbc]
shl eax, 0xf
or edx, eax
mov word [ebp - 4], dx
mov cx, word [ebp - 4]
mov word [ebp - 0xac], cx
movzx eax, word [ebp - 0xac]
and eax, 0xff
cdq
mov ecx, 0x7e
idiv ecx
add edx, 1
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0xd0], dl
jmp 0x40a3cd
mov ecx, 1
imul edx, ecx, 0xd
mov byte [ebp + edx - 0xd0], 0
jmp 0x40a45a
jmp 0x40a45d
jmp 0x40a460
push ebx
xor ebx, ebx
test ebx, ebx
jne 0x40a469
je 0x40a46a
invalid
pop ebx
jmp 0x40a46e
push 0xe
lea eax, [ebp - 0x2d4]
push eax
lea ecx, [ebp - 0xd0]
push ecx
call 0x409dff
add esp, 0xc
mov byte [ebp - 0xa8], 0x73
mov byte [ebp - 0xa7], 0
mov byte [ebp - 0xa6], 0x65
mov byte [ebp - 0xa5], 0
mov byte [ebp - 0xa4], 0x72
mov byte [ebp - 0xa3], 0
mov byte [ebp - 0xa2], 0x76
mov byte [ebp - 0xa1], 0
test dword [edi - 1], ebx
invalid
inc dword [eax]
mov byte [ebp - 0xa0], 0x69
mov byte [ebp - 0x9f], 0
mov byte [ebp - 0x9e], 0x63
mov byte [ebp - 0x9d], 0
mov byte [ebp - 0x9c], 0x65
mov byte [ebp - 0x9b], 0
Function at 0x40ae6f
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx]
cmp edx, 0x5a4d
je 0x40ae98
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
cmp dword [edx], 0x4550
je 0x40aeb7
mov eax, dword [ebp - 4]
jmp 0x40afb1
Function at 0x40b0cf
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x64], 0x61
mov byte [ebp - 0x63], 0x64
mov byte [ebp - 0x62], 0x76
mov byte [ebp - 0x61], 0x61
mov byte [ebp - 0x60], 0x70
mov byte [ebp - 0x5f], 0x69
mov byte [ebp - 0x5e], 0x33
mov byte [ebp - 0x5d], 0x32
mov byte [ebp - 0x5c], 0x2e
mov byte [ebp - 0x5b], 0x64
mov byte [ebp - 0x5a], 0x6c
mov byte [ebp - 0x59], 0x6c
mov byte [ebp - 0x58], 0
mov byte [ebp - 0x3c], 0x70
mov byte [ebp - 0x3b], 0x73
mov byte [ebp - 0x3a], 0x61
mov byte [ebp - 0x39], 0x70
mov byte [ebp - 0x38], 0x69
mov byte [ebp - 0x37], 0x2e
mov byte [ebp - 0x36], 0x64
mov byte [ebp - 0x35], 0x6c
mov byte [ebp - 0x34], 0x6c
mov byte [ebp - 0x33], 0
mov byte [ebp - 0x54], 0x6d
mov byte [ebp - 0x53], 0x73
mov byte [ebp - 0x52], 0x76
mov byte [ebp - 0x51], 0x63
mov byte [ebp - 0x50], 0x72
mov byte [ebp - 0x4f], 0x74
mov byte [ebp - 0x4e], 0x2e
mov byte [ebp - 0x4d], 0x64
mov byte [ebp - 0x4c], 0x6c
mov byte [ebp - 0x4b], 0x6c
mov byte [ebp - 0x4a], 0
mov byte [ebp - 0x30], 0x77
mov byte [ebp - 0x2f], 0x69
mov byte [ebp - 0x2e], 0x6e
mov byte [ebp - 0x2d], 0x68
mov byte [ebp - 0x2c], 0x74
mov byte [ebp - 0x2b], 0x74
mov byte [ebp - 0x2a], 0x70
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x48], 0x75
mov byte [ebp - 0x47], 0x73
mov byte [ebp - 0x46], 0x65
mov byte [ebp - 0x45], 0x72
mov byte [ebp - 0x44], 0x33
mov byte [ebp - 0x43], 0x32
mov byte [ebp - 0x42], 0x2e
mov byte [ebp - 0x41], 0x64
mov byte [ebp - 0x40], 0x6c
mov byte [ebp - 0x3f], 0x6c
mov byte [ebp - 0x3e], 0
call fcn.0040b06f
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, 0xd53ea0
mov dword [ebp - 4], eax
push 0x8fecd63f
call fcn.0040afbf
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov dword [ecx], edx
push 0xcef6e822
call fcn.0040afbf
add esp, 4
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 4], ecx
push 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x64]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.0040ae6f
add esp, 0xc
mov edx, dword [ebp - 4]
mov dword [edx + 0x64], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x64]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xcc]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.0040ae6f
add esp, 0xc
mov edx, dword [ebp - 4]
mov dword [edx + 0xcc], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x64]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xd0]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.0040ae6f
add esp, 0xc
mov edx, dword [ebp - 4]
mov dword [edx + 0xd0], eax
lea eax, [ebp - 0x3c]
inc ebp
les edx, [eax - 0x75]
dec ebp
cld
Function at 0x40dc25
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
movzx eax, byte [ecx + 0x13]
push ebx
push esi
push edi
push eax
movzx eax, byte [ecx + 0x12]
mov edi, 0x100
push eax
movzx eax, byte [ecx + 0x11]
xor ebx, ebx
push eax
movzx eax, byte [ecx + 0x10]
push eax
movzx eax, byte [ecx + 0xf]
push eax
movzx eax, byte [ecx + 0xe]
push eax
movzx eax, byte [ecx + 0xd]
mov esi, dword [ebp + 8]
push eax
movzx eax, byte [ecx + 0xc]
push eax
movzx eax, word [ecx + 0xa]
push eax
movzx eax, word [ecx + 8]
push eax
push dword [ecx + 4]
lea eax, [ebp - 0x408]
mov dword [ebp - 0x418], 0x208
push 0x402898
push edi
push eax
mov dword [ebp - 0x410], ebx
call fcn.00404342
add esp, 0x38
test eax, eax
jns 0x40dcac
xor eax, eax
jmp 0x40de30
lea eax, [ebp - 0x408]
push eax
push 0x402854
lea eax, [ebp - 0x208]
push edi
push eax
call fcn.00404342
add esp, 0x10
test eax, eax
js 0x40dca5
lea eax, [ebp - 0x40c]
push eax
push 0x20019
push ecx
lea edx, [ebp - 0x208]
mov ecx, SysReAllocString
call fcn.0040ba30
test eax, eax
jne 0x40de2e
lea eax, [ebp - 0x418]
push eax
push esi
lea eax, [ebp - 0x410]
push eax
push ebx
push ebx
push dword [ebp - 0x40c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov edx, 0x104
push 2
pop eax
mov dword [ebp - 0x414], edi
cmp dword [ebp - 0x410], eax
jne 0x40ddb8
xor ecx, ecx
mov eax, edx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040f189
mov edi, eax
mov dword [esp], 0x104
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x40dd7f
cmp eax, 0x104
jae 0x40dd7f
mov ecx, edi
call fcn.004085ed
mov ecx, 0x104
cmp eax, ecx
jb 0x40dd98
push 0xffffffffffffffff
push edi
push ecx
push esi
call dword [sym.imp.msvcrt.dll_wcsncpy_s]
add esp, 0x10
cmp eax, 0x50
jne 0x40dda5
push edi
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
push dword [ebp - 0x40c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40dca5
push eax
push edi
push ecx
push esi
call dword [sym.imp.msvcrt.dll_wcsncpy_s]
add esp, 0x10
push edi
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
mov edi, dword [ebp - 0x414]
mov edx, 0x104
pop ecx
test esi, esi
je 0x40dddb
push edx
push esi
call dword [sym.imp.msvcrt.dll_wcsnlen]
mov edx, 0x104
pop ecx
pop ecx
cmp eax, edx
je 0x40dddb
lea ecx, [ebp - 0x41c]
test ecx, ecx
je 0x40de15
jmp 0x40dde7
lea eax, [ebp - 0x41c]
test eax, eax
je 0x40de15
mov eax, ebx
test eax, eax
je 0x40de15
push 0x22
pop ecx
cmp word [esi], cx
jne 0x40de15
cmp word [esi + eax*2 - 2], cx
jne 0x40de15
lea ecx, [eax - 2]
lea eax, [esi + 2]
cmp ecx, edx
jb 0x40de08
push 0xffffffffffffffff
jmp 0x40de09
push ecx
push eax
push edx
push esi
call dword [sym.imp.msvcrt.dll_wcsncpy_s]
add esp, 0x10
push dword [ebp - 0x40c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x40de2e
mov ecx, esi
call fcn.004085ed
mov ebx, eax
mov eax, ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040e960
mov esp, ebp
pop ebp
ret 8
Function at 0x40de48
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
lea eax, [ebp - 4]
push esi
push eax
mov esi, 0x20019
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenCurrentUser]
test eax, eax
je 0x40de6c
call fcn.0040ded9
jmp 0x40decf
lea eax, [ebp - 0xc]
push eax
push esi
xor esi, esi
push esi
push 0x402900
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x40de91
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40de65
push ebx
lea eax, [ebp - 0x10]
mov dword [ebp - 8], esi
push eax
lea eax, [ebp - 8]
mov dword [ebp - 0x10], 4
push eax
push esi
push esi
push 0x40293c
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [ebp - 8], esi
push dword [ebp - 0xc]
setne bl
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, bl
pop ebx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x40ded9
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
lea eax, [ebp - 8]
mov dword [ebp - 0xc], 4
push eax
push 0x20019
xor esi, esi
push esi
push 0x402900
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 4], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 4]
push eax
push esi
push esi
push 0x40293c
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [ebp - 4], esi
push dword [ebp - 8]
setne bl
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40e940
Capabilities:
Terminate process

Disassembly:
push 0x5c
push 0x410f70
call fcn.0040f074
and dword [ebp - 0x24], 0
and dword [ebp - 4], 0
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov dword [ebp - 4], 0xfffffffe
xor ebx, ebx
inc ebx
mov dword [ebp - 4], ebx
mov eax, dword fs:[0x18]
mov edi, dword [eax + 4]
xor esi, esi
mov edx, 0x411f30
mov ecx, edi
xor eax, eax
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x40e745
cmp eax, edi
jne 0x40e757
mov esi, ebx
cmp dword [0x411f34], ebx
jne 0x40e764
push 0x1f
call sub.msvcrt.dll__amsg_exit
pop ecx
jmp 0x40e793
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40e72e
cmp dword [0x411f34], 0
jne 0x40e78d
mov dword [0x411f34], ebx
push 0x401034
push 0x401028
call fcn.0040e8e4
pop ecx
pop ecx
test eax, eax
je 0x40e793
jmp 0x40e8cd
mov dword [0x411118], ebx
cmp dword [0x411f34], ebx
jne 0x40e7b6
push 0x401024
push section..text
call sub.msvcrt.dll__initterm
pop ecx
pop ecx
mov dword [0x411f34], 2
test esi, esi
jne 0x40e7c3
xor eax, eax
mov ecx, 0x411f30
xchg dword [ecx], eax
cmp dword [0x411f40], 0
je 0x40e7f1
push 0x411f40
call fcn.0040eea0
pop ecx
test eax, eax
je 0x40e7f1
push 0
push 2
push 0
mov esi, dword [0x411f40]
mov ecx, esi
call dword [0x4122c4]
call esi
mov eax, dword [sym.imp.msvcrt.dll__wcmdln]
mov ecx, dword [eax]
test ecx, ecx
je 0x40e8cd
mov dword [ebp - 0x20], ecx
push 0x20
pop esi
mov edx, dword [ebp - 0x24]
movzx eax, word [ecx]
cmp ax, si
ja 0x40e861
test ax, ax
je 0x40e81a
test edx, edx
jne 0x40e861
movzx eax, word [ecx]
test ax, ax
je 0x40e82f
cmp ax, si
ja 0x40e82f
add ecx, 2
mov dword [ebp - 0x20], ecx
jmp 0x40e81a
test byte [ebp - 0x40], 1
je 0x40e83b
movzx eax, word [ebp - 0x3c]
jmp 0x40e83e
push 0xa
pop eax
push eax
push ecx
push 0
push 0x400000
call main
mov dword [0x411114], eax
cmp dword [0x41112c], 0
jne 0x40e8a9
push eax
call dword [sym.imp.msvcrt.dll_exit]
cmp eax, 0x22
jne 0x40e872
xor eax, eax
test edx, edx
sete al
mov edx, eax
mov dword [ebp - 0x24], edx
add ecx, 2
mov dword [ebp - 0x20], ecx
jmp 0x40e809
cmp dword [0x411118], 0
jne 0x40e8bd
call dword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x411114]
mov dword [ebp - 4], 0xfffffffe
jmp 0x40e8d9
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
call fcn.0040f0bc
ret
call fcn.0040efa8
jmp 0x40e6f8

Function at 0x40ed7f
Capabilities:
Parse pe header

Disassembly:
push 0xc
push 0x410fb8
call fcn.0040f120
xor ecx, ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x40eddf
cmp eax, 0xffffffff
je 0x40eddf
mov dword [ebp - 4], ecx
mov edx, 0x5a4d
cmp word [eax], dx
jne 0x40edd8
mov edx, dword [eax + 0x3c]
test edx, edx
js 0x40edd8
cmp edx, 0x10000000
jae 0x40edd8
add eax, edx
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax]
sub ecx, 0x4550
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
jmp 0x40edd5
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 0xfffffffe
mov eax, ecx
call fcn.0040f165
ret 4
Function at 0x40ee50
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
push esi
push edi
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
movzx ebx, word [ecx + 6]
add eax, 0x18
add eax, ecx
test ebx, ebx
je 0x40ee8e
mov edi, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
cmp edi, esi
jb 0x40ee86
mov ecx, dword [eax + 8]
add ecx, esi
cmp edi, ecx
jb 0x40ee90
inc edx
add eax, 0x28
cmp edx, ebx
jb 0x40ee76
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x40ef70
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
je 0x40ef86
xor eax, eax
pop ebp
ret
mov ecx, dword [eax + 0x3c]
add ecx, eax
xor eax, eax
cmp dword [ecx], 0x4550
jne 0x40efa1
mov edx, 0x10b
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
Function at 0x4017c4
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x404004]
jne 0x4017ce
repz ret
jmp fcn.00401b99

Function at 0xffd110
Capabilities:
Encode data using xor

Disassembly:
jmp 0xffd11a
pushal
call 0xffd120
pop ebp
sub ebp, 0x10
sub ebp, 0xbfd110
jmp 0xffd136
mov eax, 0xbfd110
add eax, ebp
add eax, 0x4c
mov ecx, 0x5b5
mov edx, 0x9fcb4de6
xor byte [eax], dl
inc eax
dec ecx
jne 0xffd14d
jmp 0xffd160
insd dword es:[edi], dx
sub ebp, dword [ebp + 0x6f]
invalid
Function at 0x401f10
Capabilities:
Get disk information
Inspect load icon resource
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x148
push ebx
push esi
push edi
push 0x65
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0xc]
call fcn.00401000
lea ecx, [esp + 0x50]
push 0x104
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x50]
lea ecx, [esp + 0xc]
push edx
call fcn.004012b0
test eax, eax
je 0x402021
lea eax, [esp + 0x50]
push 0x404030
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x402084
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x10]
call fcn.00401290
mov edi, dword [sym.imp.MSVCRT.dll_fseek]
sub eax, 8
push 0
push eax
push esi
call edi
mov ebx, dword [sym.imp.MSVCRT.dll_fread]
push esi
push 1
lea edx, [esp + 0x24]
push 8
push edx
call ebx
mov eax, dword [esp + 0x2c]
push 0
push eax
push esi
call edi
push esi
push 1
lea ecx, [esp + 0x48]
push 0x38
push ecx
call ebx
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x50]
add esp, 0x3c
test eax, eax
mov eax, dword [esp + 0x10]
push edx
push eax
jne 0x401ffe
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401800
jmp 0x402084
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401a90
jmp 0x402084
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, eax
mov esi, 1
xor ebx, ebx
test edi, esi
je 0x40206a
mov dl, bl
lea ecx, [esp + 0x10]
add dl, 0x41
push edx
call sub.MFC42.DLL_CString::operator_1
push 0x40412c
lea ecx, [esp + 0x14]
call fcn.004020e2
lea ecx, [esp + 0xc]
mov eax, dword [esp + 0x10]
push eax
push 0
call fcn.00401cf0
add esi, esi
inc ebx
cmp ebx, 0x1a
jl 0x402039
lea ecx, [esp + 0xc]
call fcn.00401040
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
call fcn.00401030
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10

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

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40de38
nop
mov ecx, 0x6b0f05c9
nop
nop
nop
nop
nop
test eax, eax
nop
nop
je 0x43304e
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x433024
nop
mov eax, section..text_1
nop
mov ebx, 0x4304d8
nop
mov ecx, 0x6274033a
nop
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x433084
nop
nop
nop
nop
xor dword [eax], ecx
nop
add eax, 4
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x43306c
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x431219
Function at 0x40adc0
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1014
call fcn.00404730
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], 0
mov eax, dword [0x4170bc]
cmp ebx, eax
jae 0x40adfb
mov eax, ebx
and eax, 0x1f
mov edx, ebx
sar edx, 5
mov edx, dword [edx*4 + 0x4170c0]
test byte [edx + eax*8 + 4], 1
jne 0x40ae0d
mov dword [0x415c84], 9
or eax, 0xffffffff
jmp 0x40af32
push 1
push 0
push ebx
call fcn.00409fd0
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp eax, 0xffffffff
je 0x40ae37
push 2
push 0
push ebx
call fcn.00409fd0
add esp, 0xc
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
jne 0x40ae3f
or eax, 0xffffffff
jmp 0x40af32
mov eax, dword [ebp + 0xc]
mov esi, eax
sub esi, dword [ebp - 8]
test esi, esi
jle 0x40aee4
lea edx, [ebp - 0x1010]
mov ecx, 0x1000
xor eax, eax
push edi
mov edi, edx
rep stosb byte es:[edi], al
pop edi
mov eax, edx
push 0x8000
push ebx
call fcn.0040b330
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, esi
cmp eax, 0x1000
jb 0x40ae8a
mov dword [ebp - 0x1014], 0x1000
jmp 0x40ae92
mov eax, esi
mov dword [ebp - 0x1014], eax
mov eax, dword [ebp - 0x1014]
push eax
lea eax, [ebp - 0x1010]
push eax
push ebx
call fcn.004086d0
add esp, 0xc
mov edi, eax
cmp eax, 0xffffffff
jne 0x40aecb
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 5
jne 0x40aec5
mov dword [0x415c84], 0xd
or dword [ebp - 4], 0xffffffff
jmp 0x40aed5
mov eax, esi
sub eax, edi
mov esi, eax
test eax, eax
jg 0x40ae75
mov eax, dword [ebp - 0x10]
push eax
push ebx
call fcn.0040b330
add esp, 8
jmp 0x40af20
test esi, esi
jge 0x40af20
push 0
mov eax, dword [ebp + 0xc]
push eax
push ebx
call fcn.00409fd0
add esp, 0xc
push ebx
call fcn.00408b00
pop ecx
push eax
call dword [sym.imp.KERNEL32.DLL_SetEndOfFile]
test eax, eax
setne al
and eax, 1
dec eax
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
jne 0x40af20
mov dword [0x415c84], 0xd
push 0
mov eax, dword [ebp - 0xc]
push eax
push ebx
call fcn.00409fd0
add esp, 0xc
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4015a0
Capabilities:
Terminate process

Disassembly:
call fcn.00401940
jmp fcn.004012d0

Function at 0x4015b0
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x403008]
jne 0x4015ba
repz ret
jmp fcn.004019f0
Function at 0x408f10
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [0x432080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], 0x846a98f2
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
sub eax, 0x846a98f2
je 0x408faa
jmp 0x408f46
mov eax, dword [ebp - 0x2c]
sub eax, 0x90e188ec
je 0x40901c
jmp 0x408f59
mov eax, dword [ebp - 0x2c]
sub eax, 0x2efcea73
je 0x409077
jmp 0x408f6c
mov eax, dword [ebp - 0x2c]
sub eax, 0x45c30225
je 0x409099
jmp 0x408f7f
mov eax, dword [ebp - 0x2c]
sub eax, 0x69428243
je 0x4090a5
jmp 0x408f92
mov eax, dword [ebp - 0x2c]
sub eax, 0x7f3c9100
je 0x408fc8
jmp 0x408fa5
jmp 0x4090b7
mov eax, dword [ebp - 0x28]
push eax
mov ecx, esp
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], 0x7f3c9100
jmp 0x4090b7
mov eax, dword [ebp - 0x18]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 2
mov eax, 0xffffffff
xor eax, 0xd3080236
or edx, ecx
or eax, 0xd3080236
xor edx, 0xffffffff
and edx, eax
mov eax, 0x69428243
mov ecx, 0x90e188ec
cmp edx, 0
cmove eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x4090b7
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov eax, ecx
xor eax, 0xffffffff
mov dword [ebp - 0x30], eax
mov esi, 0xffffffff
xor esi, 2
mov edx, 0xffffffff
xor edx, 0xcec3f902
and eax, 0xcec3f902
and ecx, edx
mov edi, esi
and edi, 0xcec3f902
mov ebx, edx
and ebx, 2
or eax, ecx
mov ecx, dword [ebp - 0x30]
or edi, ebx
xor eax, edi
or ecx, esi
xor ecx, 0xffffffff
or edx, 0xcec3f902
and ecx, edx
or eax, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 0x2efcea73
jmp 0x4090b7
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov dword [ebp - 0x24], 0x45c30225
jmp 0x4090b7
mov dword [ebp - 0x24], 0x69428243
jmp 0x4090b7
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041c160
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x408f30
Function at 0x41ca2b
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x41ca6a
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x41ca6a
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x41ca6a
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x41ca6a
cmp dword [ecx + 0x74], 0xe
jbe 0x41ca6a
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret