Function at 0x409404
Capabilities:
Copy file

Disassembly:
push ebp
push ebx
mov edx, 0xb
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x40940b
mov edx, dword [esp + 0x38]
lea ecx, [esp]
call fcn.0040d060
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 4]
call fcn.0040d060
mov edx, dword [esp + 0x40]
lea ecx, [esp + 8]
call fcn.0040d060
push 0x10
push 0
push 0
push 1
push dword [esp + 0x18]
push 0
call sub.USER32.DLL_LoadImageA
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
je 0x409476
push dword [esp + 0xc]
call sub.USER32.DLL_DestroyIcon
jmp 0x40947d
xor eax, eax
jmp 0x4097cd
push 1
push dword [esp + 8]
push dword [esp + 8]
call sub.KERNEL32.dll_CopyFileA
and eax, eax
je 0x4094ae
mov edx, dword [esp + 4]
push dword [0x43f97c]
call fcn.0041d050
lea eax, [esp + 4]
push eax
call fcn.0041cfd0
jmp 0x4094b5
xor eax, eax
jmp 0x4097cd
push 6
call fcn.004139f0
mov dword [esp + 0x10], eax
push dword [esp + 8]
push 0
call fcn.00416750
and eax, eax
je 0x4097ac
push 6
push dword [esp + 0x14]
push 0
call fcn.00416860
mov ebp, dword [esp + 0x10]
movsx ebx, word [ebp + 4]
add ebx, ebx
shl ebx, 4
add ebx, 6
push ebx
push dword [esp + 0x14]
call fcn.00413c50
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x10]
movsx ebx, word [ebp + 4]
dec ebx
cmp ebx, dword [esp + 0x14]
jl 0x409589
mov eax, dword [esp + 0x14]
cdq
push edx
push eax
push dword [esp + 4]
push dword [esp + 4]
push 0
push 0x10
call fcn.0040d070
mov dword [esp], eax
mov dword [esp + 4], edx
add dword [esp], 6
adc dword [esp + 4], 0
pop eax
pop edx
push edx
push eax
push 0
call fcn.00416cb0
mov ebx, dword [esp + 0x14]
inc ebx
shl ebx, 4
push ebx
mov ebp, dword [esp + 0x14]
push ebp
mov eax, dword [esp + 0x1c]
shl eax, 4
pop ebp
add ebp, eax
lea eax, [ebp + 6]
push eax
push 0
call fcn.00416860
inc dword [esp + 0x14]
jno 0x409512
mov ebx, dword [esp + 0x18]
cmp ebx, 1
jne 0x4095ae
push 1
push dword [esp + 4]
call sub.KERNEL32.dll_BeginUpdateResourceA
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
jmp 0x4095c0
push 0
push dword [esp + 4]
call sub.KERNEL32.dll_BeginUpdateResourceA
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
and ebx, ebx
jne 0x4095d5
mov dword [esp + 0x20], 0
jmp 0x40978f
mov ebp, dword [esp + 0x10]
movsx ebx, word [ebp + 4]
imul ebx, ebx, 0xe
add ebx, 0xc
push ebx
call fcn.004139f0
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x10]
movsx ebx, word [ebp + 4]
dec ebx
cmp ebx, dword [esp + 0x14]
jl 0x409654
push 0xc
mov ebp, dword [esp + 0x28]
push ebp
mov eax, dword [esp + 0x1c]
imul eax, eax, 0xe
pop ebp
add ebp, eax
lea eax, [ebp + 6]
push eax
mov ebp, dword [esp + 0x18]
push ebp
mov eax, dword [esp + 0x20]
shl eax, 4
pop ebp
add ebp, eax
lea eax, [ebp + 6]
push eax
call fcn.00413c90
mov ebx, dword [esp + 0x14]
inc ebx
push ebx
mov ebp, dword [esp + 0x28]
push ebp
mov eax, dword [esp + 0x1c]
imul eax, eax, 0xe
pop ebp
add ebp, eax
pop eax
mov word [ebp + 0x12], ax
inc dword [esp + 0x14]
jno 0x4095f5
mov ebp, dword [esp + 0x24]
mov word [ebp], 0
mov ebp, dword [esp + 0x24]
mov word [ebp + 2], 1
mov ebp, dword [esp + 0x10]
movsx eax, word [ebp + 4]
push eax
mov ebp, dword [esp + 0x28]
pop eax
mov word [ebp + 4], ax
mov ebp, dword [esp + 0x24]
movsx ebx, word [ebp + 4]
imul ebx, ebx, 0xe
add ebx, 6
push ebx
push dword [esp + 0x28]
push 0
push 1
push 0xe
push dword [esp + 0x30]
call sub.KERNEL32.dll_UpdateResourceA
mov dword [esp + 0x20], eax
push dword [esp + 0x24]
call fcn.00413af0
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x10]
movsx ebx, word [ebp + 4]
dec ebx
cmp ebx, dword [esp + 0x14]
jl 0x40976c
mov ebp, dword [esp + 0x10]
push ebp
mov eax, dword [esp + 0x18]
shl eax, 4
pop ebp
add ebp, eax
push dword [ebp + 0xe]
call fcn.004139f0
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x10]
push ebp
mov eax, dword [esp + 0x18]
shl eax, 4
pop ebp
add ebp, eax
mov eax, dword [ebp + 0x12]
cdq
push edx
push eax
push 0
call fcn.00416cb0
mov ebp, dword [esp + 0x10]
push ebp
mov eax, dword [esp + 0x18]
shl eax, 4
pop ebp
add ebp, eax
push dword [ebp + 0xe]
push dword [esp + 0x2c]
push 0
call fcn.00416860
mov ebp, dword [esp + 0x10]
push ebp
mov eax, dword [esp + 0x18]
shl eax, 4
pop ebp
add ebp, eax
push dword [ebp + 0xe]
push dword [esp + 0x2c]
push 0
mov ebx, dword [esp + 0x20]
inc ebx
push ebx
push 3
push dword [esp + 0x30]
call sub.KERNEL32.dll_UpdateResourceA
mov dword [esp + 0x20], eax
inc dword [esp + 0x14]
jno 0x4096c2
push 0
push dword [esp + 0x20]
call sub.KERNEL32.dll_EndUpdateResourceA
mov dword [esp + 0x20], eax
push dword [esp + 0x28]
call fcn.00413af0
mov dword [esp + 0x28], 0
push dword [esp + 0x10]
call fcn.00413af0
mov dword [esp + 0x10], 0
push 0
call fcn.004163b0
jmp 0x4097b4
mov dword [esp + 0x20], 0
mov ebx, dword [esp + 0x20]
and ebx, ebx
jne 0x4097c5
push dword [esp + 4]
call fcn.004160f0
mov eax, dword [esp + 0x20]
jmp 0x4097cd
push dword [esp + 4]
call fcn.0041d140
push dword [esp]
call fcn.0041d140
push dword [esp + 8]
call fcn.0041d140
add esp, 0x2c
pop ebx
pop ebp
ret 0xc