joyce8/EMBER2024-capa huggingface dataset:
Function at 0x425005
Capabilities:
Encode data using xor

Disassembly:
in eax, 0x4d
in al, 0xf8
fcmovbe st(0), st(5)
xchg ebp, eax
sub dword [ebx + 0x5f25254], edx
push 0xffffffffffffffd1
adc byte [edx + 0x6726903e], 0x67
mov cl, 0xf0
inc esi
add dh, byte [ebp + eax*8 + 9]
mov esi, 0xa8375789
inc ebp
mov dword [0x1385d2f7], eax
je 0x425058
add dword [esi - 0x3d3d5e1d], esp
push ebx
sal dword [ecx], cl
mov al, byte [0xa3864532]
pop ebp
adc ch, byte [ecx]
out dx, al
xor al, byte [ebp - 0x7a]
mov dword [0xee29125d], eax
imul edx, dword [ebx - 0x4b], 0xfffffff0
in al, 0x96
mov dword [0xd5eeb89c], eax
jecxz 0x424fb5
xchg ebx, eax
inc esp
sal byte [edx + 0x1a], cl
xchg esi, eax
les edx, [ecx - 0x2e7b6294]
jne 0x42500d
enter 0x3f9d, 0xffffffffffffffd5
ja 0x424fe9
int 0x99
mov eax, dword [0x84b69357]
into
invalid
outsb dx, byte [esi]
pop edi
mov ebx, 0xc4fe4923
outsd dx, dword [esi]
invalid
test dl, al
inc ebp
jle 0x425056
push ss
test ah, bl
xchg edx, eax
xor dword [edx + 0x50], ecx
xchg ebp, eax
add ax, 0x19d4
inc esp
mov al, 0x13
jae 0x42503f
jl 0x4250d1
test dword [ebx + 0x10c7618c], edi
fdivr qword ss:[ecx + 0xc]
popal
invalid
adc byte [esi], dh
fdivr qword [ecx + 0xc]
movsd dword es:[edi], dword [esi]
lcall 0x80e5, 0xd596ac08
dec edi
jl 0x425057
loopne 0x425030
nop
add al, 0xcb
push 0x64
nop
salc
dec esp
sub dword [edi + 4], ebx
ja 0x42501b
ror byte [eax - 0x2b52f37c], 1
sbb byte [ecx + 0x7d], cl
and dword [ebx + ecx*8], ecx
add dword [esi - 0x37], 0x4fcfdc30
and eax, 0xe490cab3
jge 0x42503b
pushfd
inc esp
daa
test byte [0x6e94b2b2], cl
adc eax, 0x76840445
inc ebx
mov edx, 0xc250ed5d
int3
pop eax
add byte [ecx], dl
fld dword [ecx + 0x1cb918eb]
push 0xf49a1810
xchg ecx, eax
adc al, 0xbc
aad 0x5f
add al, 1
mov al, byte [0x198c2e1c]
or al, 0x74
xchg esi, eax
rcr dword [edi + edx*8 + 0x72], cl
cmp cl, byte [edx + ebx*2 + 0x66]
dec ebx
mov ebp, 0x8d11577b
wait
invalid
Function at 0x4c665a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x4ce488
cmp edx, dword [eax]
je 0x4c667c
add eax, 8
inc ecx
cmp eax, 0x4ce518
jl 0x4c666d
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x4ce488]
jne 0x4c67aa
mov eax, dword [0x4d2b6c]
cmp eax, 1
je 0x4c6784
test eax, eax
jne 0x4c66ad
cmp dword [0x4ce3cc], 1
je 0x4c6784
cmp edx, 0xfc
je 0x4c67aa
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4c66e4
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.004c6d70
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.004c6fa0
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4c6727
lea eax, [ebp - 0x1a4]
push eax
call fcn.004c6fa0
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4cab20
push edi
call fcn.004c8770
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.004c6d70
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004c6d80
lea eax, [ebp - 0xa0]
push 0x4cab00
push eax
call fcn.004c6d80
push dword [esi + 0x4ce48c]
lea eax, [ebp - 0xa0]
push eax
call fcn.004c6d80
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.004c86e4
add esp, 0x2c
pop edi
jmp 0x4c67aa
lea eax, [ebp + 8]
lea esi, [esi + 0x4ce48c]
push 0
push eax
push dword [esi]
call fcn.004c6fa0
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 0x638c28ca
Capabilities:
Access peb ldr_data
Get process heap flags
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x38
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
mov dword [ebp - 0x1c], eax
test byte [0x638c7018], 8
jne 0x638c29f8
mov eax, dword [0x638d4020]
test eax, eax
je 0x638c2a3b
mov dword [esp + 4], 0x65
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
sub esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
je 0x638c2a55
mov ecx, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x28], ecx
call ecx
sub esp, 0x18
mov edx, eax
lea eax, [eax + eax]
mov dword [ebp - 0x24], edx
mov edi, dword fs:[0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x638c2a55
mov edx, dword [ebp - 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0
mov dword [esp + 0x14], edx
mov dword [esp], 0
mov ecx, dword [ebp - 0x28]
call ecx
mov eax, dword [ebp - 0x1c]
sub esp, 0x18
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
call eax
sub esp, 8
mov ebx, eax
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, ebx
sub esp, 0xc
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 8
mov eax, ebx
call fcn.638c2260
mov edi, dword [ebp - 0x1c]
mov dword [esp + 0xc], str._s__d_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x638c93fc
mov dword [esp + 4], 0x638c7018
mov dword [esp + 0x14], edi
mov dword [esp], 3
call fcn.638c24d0
mov eax, dword [0x638d4020]
test eax, eax
jne 0x638c28f6
mov dword [esp], str.ieframe.dll
call dword [sym.imp.kernel32.dll_LoadLibraryW]
sub esp, 4
mov dword [0x638d4020], eax
jmp 0x638c28f6
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
Function at 0x638c30ea
Capabilities:
Query or enumerate registry value

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x878
mov eax, dword [ecx + 8]
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov dword [ebp - 0x84c], eax
mov ecx, dword [ecx + 0x14]
test byte [0x638c7018], 8
jne 0x638c31c0
test ebx, ebx
je 0x638c31ab
mov dword [ebp - 0x840], 0x824
lea eax, [ebp - 0x840]
lea ecx, [ebp - 0x83c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov dword [esp], edi
call dword [sym.imp.shlwapi.dll_SHRegGetUSValueA]
sub esp, 0x20
test eax, eax
jne 0x638c3250
lea ecx, [ebp - 0x83c]
mov eax, ecx
cmp esi, 1
ja 0x638c31a1
jmp 0x638c3239
sub esi, 1
add ebx, 1
add eax, 1
mov byte [ebx - 1], dl
cmp esi, 1
je 0x638c31a8
movzx edx, byte [eax]
test dl, dl
jne 0x638c3190
mov byte [ebx], 0
xor eax, eax
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x18
mov eax, edx
mov dword [ebp - 0x854], edx
mov dword [ebp - 0x858], ecx
call fcn.638c2260
mov dword [ebp - 0x850], eax
mov eax, edi
call fcn.638c2260
mov ecx, dword [ebp - 0x858]
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp - 0x84c]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0x850]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.__s___s___ld___p___ld___ld__n
mov dword [esp + 8], str.URLSubRegQueryA
mov dword [esp + 0x14], ecx
mov dword [esp + 4], 0x638c7018
mov dword [esp], 3
call fcn.638c24d0
mov edx, dword [ebp - 0x854]
jmp 0x638c311b
test esi, esi
je 0x638c31ab
jmp 0x638c31a8
mov eax, 0x80004005
jmp 0x638c31ad
Function at 0x638c399a
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x38
mov esi, dword [ecx]
mov ebx, dword [ecx + 4]
mov edi, dword [ecx + 8]
test byte [0x638c7018], 8
jne 0x638c3aa0
test ebx, ebx
je 0x638c3a59
mov ecx, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x20], ecx
call ecx
mov edx, eax
sub esp, 0x18
mov dword [ebp - 0x1c], edx
add edx, edx
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x1c]
sub esp, 0xc
mov dword [esp + 0x14], edx
mov dword [ebp - 0x1c], eax
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, dword [ebp - 0x20]
call ecx
mov ebx, dword [ebp - 0x1c]
sub esp, 0x18
test byte [0x638c7018], 1
jne 0x638c3ae0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
xor eax, eax
sub esp, 0xc
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
mov eax, ebx
call fcn.638c2260
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__ld___s___ld__n
mov dword [esp + 8], str.SHRestricted2A
mov dword [esp + 4], 0x638c7018
mov dword [esp], 3
call fcn.638c24d0
jmp 0x638c39b9
mov eax, ebx
call fcn.638c2020
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__ld__s__ld__stub_n
mov dword [esp + 8], str.SHRestricted2W
mov dword [esp + 4], 0x638c7018
mov dword [esp], 0
call fcn.638c24d0
jmp 0x638c3a62
Function at 0x638c3d40
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x38
mov esi, dword [ecx]
mov ebx, dword [ecx + 4]
test byte [0x638c7018], 8
jne 0x638c3e48
test ebx, ebx
je 0x638c3e05
mov ecx, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x20], ecx
call ecx
mov edx, eax
sub esp, 0x18
lea edi, [edx + edx]
mov dword [ebp - 0x1c], edx
mov eax, dword fs:[0x18]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x1c]
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], ebx
mov ebx, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, dword [ebp - 0x20]
call ecx
sub esp, 0x18
test byte [0x638c7018], 1
jne 0x638c3e80
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
xor eax, eax
sub esp, 0xc
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 8
mov eax, ebx
call fcn.638c2260
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.__p__s__n
mov dword [esp + 8], str.DoOrganizeFavDlg
mov dword [esp + 4], 0x638c7018
mov dword [esp], 3
call fcn.638c24d0
jmp 0x638c3d66
mov eax, ebx
call fcn.638c2020
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.__p__s__stub_n
mov dword [esp + 8], str.DoOrganizeFavDlgW
mov dword [esp + 4], 0x638c7018
mov dword [esp], 0
call fcn.638c24d0
jmp 0x638c3e0e
Function at 0x638c5f70
Capabilities:
Query environment variable

Disassembly:
push edi
push esi
mov esi, eax
push ebx
mov ebx, edx
sub esp, 0x220
mov eax, dword [0x638d40e0]
test eax, eax
je 0x638c6018
mov dword [esp], ebx
call eax
sub esp, 4
test eax, eax
mov dword [ebx + 8], eax
jns 0x638c5fa8
mov eax, dword [ebx]
add esp, 0x220
pop ebx
pop esi
pop edi
ret
lea edi, [esp + 0x18]
mov dword [esp + 8], 0x104
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_GetModuleFileNameW]
mov eax, dword [ebx]
sub esp, 0xc
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], str.MODULE
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0xc
mov dword [esp + 8], 0x104
mov dword [esp + 4], edi
mov dword [esp], str.SystemRoot
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
mov eax, dword [ebx]
sub esp, 0xc
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], str.SystemRoot
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0xc
jmp 0x638c5f99
mov dword [esp], str.atl100.dll
call dword [sym.imp.kernel32.dll_LoadLibraryW]
sub esp, 4
test eax, eax
je 0x638c604d
mov dword [esp + 4], 0x638d03b0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
sub esp, 8
mov dword [0x638d40e0], eax
test eax, eax
jne 0x638c5f8a
mov dword [ebx + 8], 0x80004002
xor eax, eax
jmp 0x638c5f9b
Function at 0x406760
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push 0xffffffffffffffff
push 0x42ea2b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, dword [esp + 0x18]
push edi
lea ecx, [esi + 4]
mov dword [esi], 0x40468c
call fcn.0040794b
push 4
mov dword [esp + 0x18], 0
call fcn.00408a64
mov edi, eax
add esp, 4
test edi, edi
je 0x4067d4
push ebx
call fcn.00407746
mov dword [edi], eax
call fcn.00407505
push 0
lea ecx, [esp + 0x10]
mov ebx, eax
call fcn.0040790c
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
jae 0x4067c8
inc eax
mov dword [ebx + 4], eax
lea ecx, [esp + 0xc]
call fcn.00407934
pop ebx
jmp 0x4067d6
xor edi, edi
mov dword [esi + 0x38], edi
lea eax, [esi + 8]
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x18]
mov dword [esi + 0x20], ecx
lea edx, [esi + 0x1c]
mov dword [esi + 0x24], edx
lea eax, [esi + 0xc]
mov dword [esi + 0x14], eax
lea ecx, [esi + 0x28]
mov dword [esi + 0x30], ecx
lea edx, [esi + 0x2c]
mov dword [esi + 0x34], edx
mov dword [eax], 0
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov edx, dword [esi + 0x10]
mov dword [edx], 0
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0
mov ecx, dword [esp + 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 4

Function at 0x40963b
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x432354]
jne 0x409645
repz ret
jmp fcn.0040dc8c
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 0x431000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
mov ebx, 0x40915c
nop
mov ecx, 0x2df97e7d
nop
nop
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x43104e
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x431024
nop
nop
mov eax, section..data
nop
nop
mov ebx, 0x42f3f8
nop
mov ecx, 0x4500c9e
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x431084
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x43106c
popal
nop
nop
nop
nop
nop
jmp 0x401219
Function at 0x401f53
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov edx, dword [esp + 0xc]
push edi
mov edi, dword [esp + 0xc]
test edi, edi
je 0x401f98
push ebx
mov ebx, dword [esp + 0xc]
push ebp
push esi
movzx eax, byte [ebx]
dec edi
movzx esi, dl
xor esi, eax
inc ebx
push 8
shr edx, 8
pop ebp
mov ecx, esi
mov eax, esi
shr ecx, 1
mov esi, ecx
xor esi, 0xedb88320
and al, 1
cmove esi, ecx
sub ebp, 1
jne 0x401f77
xor edx, esi
test edi, edi
jne 0x401f67
pop esi
pop ebp
pop ebx
mov eax, edx
pop edi
ret 0xc

Function at 0x402bc1
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
lea eax, [ebp - 0x50]
push esi
push eax
push 0x50
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x50]
push eax
call fcn.0040103c
push 0x50
push str.DEBUG.TXT
lea eax, [ebp - 0x50]
push eax
call fcn.00408054
push 2
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
mov esi, eax
cmp esi, 0xffffffff
jne 0x402c13
push 0
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll__lcreat]
mov esi, eax
cmp esi, 0xffffffff
je 0x402c32
push 2
push 0
push esi
call dword [sym.imp.KERNEL32.dll__llseek]
push dword [ebp + 0xc]
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll__lwrite]
push esi
call dword [sym.imp.KERNEL32.dll__lclose]
pop esi
leave
ret 8
Function at 0x403150
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
cmp dword [ebp + 8], 0
mov byte [ebp - 0x50], 0
je 0x403175
push 0x50
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowTextA]
cmp byte [ebp - 0x50], 0
jne 0x403189
push 0x50
lea eax, [ebp - 0x50]
push eax
push 0x50
push dword [0x4303b4]
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [ebp + 0x10]
mov ecx, eax
or ecx, 0x30
and al, 0x70
lea eax, [ebp - 0x50]
cmovne ecx, dword [ebp + 0x10]
or ecx, 0x2000
push ecx
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MessageBoxA]
leave
ret 0xc

Function at 0x4031cc
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
push 2
pop esi
push dword [ebp + 0xc]
call fcn.00403ef2
push 0x35
lea ebx, [eax*2 + 2]
lea eax, [ebx + 0xa0]
push eax
call fcn.00401224
mov edi, eax
test edi, edi
je 0x403253
push edi
push dword [ebp + 0xc]
lea esi, [edi + ebx]
call fcn.00407514
mov ebx, dword [ebp + 8]
xor eax, eax
mov word [esi], ax
test ebx, ebx
je 0x403222
push 0x50
push esi
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextW]
movzx eax, word [esi]
test ax, ax
jne 0x403233
push 0x50
push esi
push 0x50
push dword [0x4303b4]
call dword [sym.imp.USER32.dll_LoadStringW]
mov eax, dword [ebp + 0x10]
mov ecx, eax
or ecx, 0x30
and al, 0x70
cmovne ecx, dword [ebp + 0x10]
or ecx, 0x2000
push ecx
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, eax
push edi
call fcn.00403dae
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret 0xc

Function at 0x4037d2
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
lea eax, [ebp - 0xc]
push esi
push eax
movzx eax, word [ebp + 0x10]
push 0x428710
push eax
call fcn.00405ec0
mov esi, eax
test esi, esi
je 0x40381a
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 4], eax
test eax, eax
je 0x403813
push 0
lea eax, [ebp - 0xc]
push eax
push 2
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040381f
push esi
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop esi
leave
ret 0xc

Function at 0x404273
Capabilities:
Get graphical window text

Disassembly:
push ebx
push ebp
push esi
xor esi, esi
push edi
cmp dword [esp + 0x18], esi
je 0x404291
push dword [esp + 0x18]
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
jmp 0x404295
mov ebx, dword [esp + 0x14]
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
push 0x5c
lea ebp, [eax + 2]
imul eax, ebp, 6
push eax
call fcn.00401224
mov edi, eax
test edi, edi
je 0x4042d4
push ebp
push edi
push ebx
lea esi, [edi + ebp*2]
call dword [sym.imp.USER32.dll_GetWindowTextW]
push esi
xor eax, eax
push edi
mov dword [esi - 2], eax
call fcn.004073ca
push dword [esp + 0x1c]
push esi
call fcn.0040294f
mov esi, eax
push edi
call fcn.00403dae
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
ret 0xc
Function at 0x40435d
Capabilities:
Get file attributes

Disassembly:
push esi
push edi
push 0x1b
push dword [esp + 0x10]
or edi, 0xffffffff
call fcn.004075f0
mov esi, eax
test esi, esi
je 0x404386
push 0x5c
push 0x2f
push esi
call fcn.0040203f
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
push esi
call fcn.00403dae
mov eax, edi
pop edi
pop esi
ret 4