Function at 0x402864
Capabilities:
Copy file
Get common file path
Get file attributes
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4d7c
call fcn.004102d0
mov eax, dword [0x42207c]
xor eax, esp
mov dword [esp + 0x4d78], eax
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [esp + 0xfc], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x58], ebx
mov dword [0x4249a8], eax
mov dword [esp + 0x3c], ebx
cmp eax, ebx
jne 0x4028cc
movzx ecx, word [esp + 0xd0]
movzx edx, word [esp + 0x48]
sub ecx, edx
sub ecx, dword [esp + 0xb8]
add ecx, dword [esp + 0x60]
jne 0x4028cc
mov ecx, dword [0x4249ac]
mov dword [esp + 0x14], ecx
mov esi, dword [0x4249b4]
push ebx
push 0x1f4
push 1
push esi
mov edi, eax
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [0x4249a4]
mov ecx, dword [0x4249a0]
lea ecx, [ecx + eax*2 + 0xa]
imul ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [0x4249ac]
add ecx, 0x19
shl ecx, 4
sub ecx, eax
push 0x11
add ecx, edi
push 0x41b628
mov dword [esp + 0x108], ecx
mov dword [0x4249a4], ebx
call dword [sym.imp.WINMM.dll_sndPlaySoundA]
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x188]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [0x4249ac]
inc eax
imul eax, dword [0x4249b0]
push 0x7d
mov dword [0x4249a0], eax
pop eax
push 0xcc0020
push 0xf
push pe_nt_image_headers32
push ebx
push ebx
push eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1ac]
sub eax, dword [esp + 0x1a4]
push eax
mov eax, dword [esp + 0x1ac]
sub eax, dword [esp + 0x1a4]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_StretchBlt]
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetPixel]
push dword [esp + 0x20]
mov edi, dword [sym.imp.MSIMG32.dll_TransparentBlt]
push 0xa
pop esi
push esi
push 5
push ebx
push ebx
push ebx
push ebx
push 0x64
push 0x10e
push 0xc8
push dword [esp + 0x48]
call edi
push dword [esp + 0x20]
push esi
push 5
push ebx
push ebx
push ebx
push esi
push 5
push 0x10e
push 0x190
push dword [esp + 0x48]
call edi
push dword [esp + 0x20]
mov eax, dword [0x4249a4]
mov ecx, dword [0x4249a0]
push esi
push 5
push ebx
push ebx
push ebx
lea eax, [ecx + eax*2 + 0xb]
imul eax, dword [esp + 0x2c]
push esi
push 5
push 0x10e
push 0x258
push dword [esp + 0x48]
mov dword [esp + 0x40], eax
call edi
push dword [esp + 0x20]
push esi
push 5
push ebx
push ebx
push ebx
push esi
push 5
push 0x172
push 0xfa
push dword [esp + 0x48]
call edi
push dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x4249a0]
push esi
push 5
push ebx
sub ecx, eax
imul ecx, dword [ebp + 0x14]
add ecx, dword [esp + 0x110]
push ebx
push ebx
push esi
push 5
push 0x172
push 0x1c2
push dword [esp + 0x48]
lea eax, [eax + ecx - 0x80]
mov dword [esp + 0x40], eax
call edi
push dword [esp + 0x20]
mov dword [esp + 0x10c], 0x76c
push esi
push 5
push ebx
push ebx
push ebx
push esi
push 5
push 0x172
push 0x28a
push dword [esp + 0x48]
call edi
push dword [esp + 0x20]
push esi
push 5
push ebx
push ebx
push ebx
push esi
push 5
push 0x1d6
push 0x12c
push dword [esp + 0x48]
call edi
push dword [esp + 0x20]
push esi
push 5
push ebx
push ebx
push ebx
push esi
push 5
push 0x1d6
push 0x1ec
push dword [esp + 0x48]
call edi
push dword [esp + 0x20]
mov eax, dword [0x4249a4]
mov ecx, dword [0x4249a0]
push esi
push 5
push ebx
push ebx
push ebx
lea eax, [ecx + eax*2 - 0x59]
imul eax, dword [esp + 0x2c]
push esi
push 5
push 0x1d6
push 0x2bc
push ebx
mov dword [esp + 0x40], eax
call edi
push ebx
mov dword [0x4249ac], eax
call fcn.00407b76
pop ecx
push eax
call fcn.004079b8
pop ecx
call fcn.004079ca
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetPixel]
movzx eax, byte [esp + 0x14]
movzx ecx, word [esp + 0x20]
imul ecx, dword [0x4249a4]
cdq
push 0x14
pop edi
idiv edi
mov esi, dword [0x4249ac]
imul ecx, esi
add eax, dword [esp + 0x48]
cmp eax, ecx
mov ecx, dword [0x4249a0]
jne 0x402b59
movzx eax, byte [0x4249a4]
imul eax, ecx
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x4c]
add esi, 0x52
cdq
idiv esi
push 0x13
pop edi
mov esi, eax
movzx eax, word [esp + 0x118]
imul esi, dword [esp + 0x110]
cdq
idiv edi
sub esi, eax
add dword [esp + 0x68], esi
cmp word [0x4249b4], 0x7d
jbe 0x402bb3
mov eax, dword [esp + 0x68]
cdq
push 0x21
pop esi
idiv esi
mov esi, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add esi, eax
sub esi, dword [0x4249b8]
mov eax, dword [esp + 0x5c]
lea eax, [esi + eax - 0x7d]
mov dword [esp + 0x4c], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [esp + 0x44], eax
push ebx
lea eax, [esp + 0xa4]
push eax
xor esi, esi
lea eax, [esp + 0x30]
inc esi
push eax
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
push ebx
call dword [sym.imp.USER32.dll_GetDC]
lea ecx, [esp + 0x18]
push ecx
push eax
mov dword [esp + 0x20], ebx
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x100]
push eax
push edi
call dword [sym.imp.gdiplus.dll_GdipGetDpiX]
fld dword [esp + 0x100]
call fcn.00414ba0
cmp dword [0x4249a0], ebx
jne 0x402c3f
movzx ecx, byte [esp + 0x14]
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, eax
imul ecx, eax
mov dword [esp + 0x1e8], esi
mov dword [esp + 0xb8], ecx
cmp eax, ebx
je 0x402c69
mov byte [esp + 0xb8], bl
mov eax, dword [esp + 0xb8]
mov dword [0x4249b8], eax
cmp dword [0x4249b8], ebx
je 0x402c75
inc dword [esp + 0x14]
add dword [esp + 0x44], 0x76c
mov eax, dword [esp + 0x44]
push edi
mov dword [0x4249b0], eax
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
mov eax, dword [esp + 0x5c]
cdq
push 0x12
pop ecx
idiv ecx
sub eax, dword [esp + 0x48]
add eax, dword [esp + 0x4c]
add eax, dword [esp + 0x1c]
mov dword [0x4249a0], eax
cmp dword [esp + 0x5c], ebx
jg 0x402cbc
mov eax, dword [esp + 0x5c]
sub eax, dword [0x4249b8]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0xfc]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_OpenDesktopA]
movzx edx, byte [esp + 0xb8]
mov dword [esp + 0x40], eax
movzx eax, byte [esp + 0x44]
imul edx, eax
lea ecx, [esp + 0x1e8]
movzx ecx, cx
add edx, ecx
add edx, edi
imul edx, edx, 0x15
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
push 0x15
lea eax, [eax + edx - 0x15]
pop esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x16c], ebx
lea edi, [esp + 0x170]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 2
stosd dword es:[edi], eax
push 2
lea eax, [esp + 0x174]
push eax
push dword [0x4249ac]
call dword [sym.imp.USER32.dll_DrawFrameControl]
dec esi
jne 0x402d09
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_OpenWindowStationW]
mov dword [0x4249b4], eax
lea eax, [esp + 0x500]
test eax, eax
jne 0x402d58
mov eax, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x98], eax
lea ecx, [ecx + 0x42]
xor eax, eax
xor edx, edx
div ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x18], 0xb
mov dword [esp + 0xe0], 0x5e
mov dword [esp + 0xe4], 0x80
mov dword [esp + 0x9c], ebx
lea edi, [eax + ecx]
movzx eax, byte [esp + 0x11c]
mov dword [esp + 0x100], eax
movzx eax, word [0x4249b0]
cmp eax, dword [esp + 0xd0]
jge 0x402dd7
mov eax, dword [esp + 0x14]
cdq
push 0x19
pop ecx
idiv ecx
movzx ecx, byte [0x4249a0]
sub eax, ecx
mov dword [esp + 0x20], eax
jmp 0x402e19
fild dword [esp + 0xd0]
mov eax, dword [esp + 0x40]
fild dword [esp + 0x5c]
add eax, 0x5a
fabs
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
mov dword [esp + 0x50], eax
fidiv dword [esp + 0x50]
fimul dword [esp + 0x68]
fdiv qword [0x41bc30]
fisub dword [0x4249a0]
fsubp st(1)
call fcn.00414ba0
mov dword [esp + 0xd0], eax
lea esi, [esp + 0xa0]
jmp 0x48d948