Function at 0x40c525
Capabilities:
Delete file
Inspect load icon resource

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x28
push esi
push ebx
push edi
cmp esi, ebx
je 0x40c53e
mov dword [ebp - 4], ecx
sub ecx, dword [ebp - 4]
sbb dword [ebp - 4], 1
movsx edx, al
mov al, byte [ebp - 8]
mov byte [0x40e005], bh
xor dword [ebp - 4], 0x180
mov edi, dword [section..data]
mov dword [0x40e02c], eax
sub dword [ebp - 4], esi
mov dword [0x40e028], 0
mov di, word [0x40e020]
adc dword [ebp - 4], 0x33e2d8
xor dword [0x40e028], ecx
push 0x401140
push 0x401154
call sub.ole32.dll_IsEqualGUID
mov word [ebp - 0xc], si
mov word [ebp - 0xc], cx
push 0x40e030
call sub.gdi32.dll_CreatePalette
call sub.KERNEL32.DLL_GetTickCount
mov byte [ebp - 8], bl
mov byte [ebp - 8], 0x9c
push 0
lea eax, [ebp - 4]
push eax
call sub.ole32.dll_CreateBindCtx
mov esi, dword [ebp - 4]
push 0x401168
call sub.msvcrt.dll_strlen
pop ecx
mov byte [ebp - 0x10], 0x70
lea eax, [ebp - 0x28]
push eax
push 0x18
push dword [0x40e034]
call sub.gdi32.dll_GetObjectA
mov edi, dword [ebp - 4]
sbb dword [ebp - 4], ecx
call sub.KERNEL32.DLL_GetACP
nop
call sub.USER32.dll_GetFocus
mov ebx, dword [section..data]
call sub.KERNEL32.DLL_GetOEMCP
mov dword [0x40e00c], ecx
push 0x263a78
call sub.msvcrt.dll_srand
pop ecx
mov dword [0x40e00c], 0x6bfb50
push 1
call sub.msvcrt.dll_srand
pop ecx
adc dword [ebp - 4], esi
mov eax, dword [ebp - 4]
push 0x40117c
push 0x401190
call sub.ole32.dll_IsEqualGUID
adc eax, edi
mov byte [ebp - 0x10], 0xff
cmp eax, 0x22bb8a05
jg 0x40c640
mov dword [ebp - 4], 1
add ecx, dword [ebp - 4]
or esi, ebx
push 0x32c
call sub.msvcrt.dll_srand
pop ecx
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
push 0x40e038
push 0x18
push dword [0x40e050]
call sub.gdi32.dll_GetObjectA
and ebx, dword [ebp - 4]
and esi, edi
call fcn.0040c41b
mov esi, dword [ebp - 4]
call sub.msvcrt.dll_rand
test al, 0xcb
jne 0x40c685
mov byte [ebp - 8], ah
xor dword [0x40e030], eax
call sub.msvcrt.dll_rand
call sub.msvcrt.dll_rand
xor dword [ebp - 4], edi
sub dword [ebp - 4], 1
mov byte [ebp - 8], ch
push 0x4011a4
push dword [0x40e054]
call sub.USER32.dll_LoadIconA
mov dword [0x40e028], 0x124
adc ecx, dword [ebp - 4]
mov dword [ebp - 4], edi
push 0x4011b8
push dword [0x40e058]
call sub.USER32.dll_LoadCursorA
mov esi, dword [ebp - 4]
lea eax, [ebp - 0x28]
push eax
push 0x18
push dword [0x40e05c]
call sub.gdi32.dll_GetObjectA
mov word [0x40e020], 0
call fcn.0040c832
test al, 0x53
jne 0x40c701
push 0
push section..data
call sub.ole32.dll_CreateBindCtx
mov dword [0x40e060], 0
mov dword [0x40e064], edi
mov dword [ebp - 4], edx
push 0x4011cc
push 0x4011dc
call sub.ole32.dll_IsEqualGUID
mov dword [ebp - 4], 0
mov al, byte [ebp - 0x10]
push 0x4011f0
call sub.msvcrt.dll_printf
pop ecx
add word [0x40e020], si
mov dword [0x40e030], 0x48
adc al, byte [0x40e006]
push 1
call sub.msvcrt.dll_srand
pop ecx
and dword [0x40e028], 1
mov byte [ebp - 8], bl
mov word [ebp - 0xc], si
mov byte [ebp - 0x10], al
call sub.KERNEL32.DLL_GetOEMCP
mov dword [0x40e068], 0x2ac
call fcn.0040c41b
adc eax, dword [0x40e018]
sub byte [0x40e005], cl
cmp eax, 0x9be3d29f
jp 0x40c795
adc dword [0x40e06c], esi
push 0xb5cf0
call sub.msvcrt.dll_srand
pop ecx
mov dword [0x40e064], 0x2dfa20
mov edi, dword [ebp - 4]
sub dword [ebp - 4], 0x5f4130
mov esi, dword [0x40e030]
add byte [0x40e007], 0xf4
mov dword [0x40e00c], esi
mov word [0x40e020], ax
push 0x401204
push 0x401218
call sub.ole32.dll_IsEqualGUID
mov ebx, dword [0x40e030]
call sub.KERNEL32.DLL_GetOEMCP
mov word [0x40e020], si
push 0x40122c
call sub.msvcrt.dll_printf
pop ecx
sbb dword [ebp - 4], esi
call fcn.0040c832
push 0x401240
call sub.msvcrt.dll_remove
xor word [0x40e022], 0xffff
mov dword [0x40e070], 0x40c8fc
push 0x40e074
call sub.ole32.dll_OleRun
pop edi
pop ebx
pop esi
leave
ret