Function at 0x402ca1
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 4], 1
push ebx
push esi
push edi
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
je 0x40314c
mov ebx, dword [ebp + 8]
push ebx
call fcn.0040291b
test eax, eax
je 0x40314c
push 0x7f02
xor edi, edi
push edi
call dword [sym.imp.USER32.dll_LoadCursorA]
push 1
mov dword [0x4055f0], eax
push ebx
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov dword [0x4055e8], eax
cmp dword [0x4055f0], edi
je 0x40314c
cmp eax, edi
je 0x40314c
cmp dword [ebp + 0xc], edi
jne 0x402d1c
push ebx
call fcn.00403157
test eax, eax
je 0x40314c
xor edi, edi
mov dword [0x405540], ebx
push edi
mov eax, 0x80000000
push ebx
push edi
push edi
push edi
push eax
push edi
push eax
push 0xcf0000
push section..text
push 0x405020
push edi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [section..data], eax
cmp eax, edi
je 0x40314c
push 1
mov eax, dword [section..data]
push eax
xor edi, edi
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov eax, dword [section..data]
mov ecx, dword [0x405540]
mov dword [0x4057b4], eax
mov dword [0x4057b8], edi
mov dword [0x4057bc], edi
mov dword [0x4057ec], ecx
mov dword [0x4057b0], 0x54
call fcn.00401193
call fcn.004026c3
push edi
mov eax, dword [section..data]
push ebx
push 0xf
cmp dword [0x40501c], 1
push eax
push 0x190
sbb eax, eax
push 0x258
push edi
and eax, 0x100000
push edi
add eax, 0x50200104
push eax
push section..text
push 0x401054
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x405004], eax
cmp eax, edi
je 0x40314c
xor ebx, ebx
mov eax, dword [0x40501c]
push ebx
push eax
push 0xc8
push dword [0x405004]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x2d0
push 0x5a
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push dword [0x40500c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push 0x405810
mov dword [0x405810], eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push ebx
mov dword [0x405804], eax
push eax
push 0x30
push dword [0x405004]
call dword [sym.imp.USER32.dll_SendMessageA]
push esi
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
push 1
mov byte [0x405590], bl
push 0x42
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push ebx
mov edi, dword [sym.imp.USER32.dll_PostMessageA]
push ebx
mov dword [0x405644], eax
push 0xc5
push dword [0x405004]
call edi
push dword [0x405050]
call fcn.00402170
mov esi, dword [ebp + 0x10]
push esi
call fcn.004029ee
test eax, eax
jne 0x402fae
push dword [ebp + 0x14]
push esi
call fcn.00402b91
test eax, eax
je 0x402eb3
push ebx
mov eax, dword [section..data]
push ebx
push 0x10
push eax
call edi
mov eax, 1
jmp 0x40314e
xor ebx, ebx
cmp byte [esi], bl
je 0x402fae
push esi
mov dword [ebp - 4], ebx
mov esi, 0x4056a0
push esi
call fcn.00402894
push ebx
push pe_nt_image_headers32
push 3
push ebx
push 3
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x405640], eax
cmp eax, 0xffffffff
jne 0x402f7e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x402f10
cmp eax, 5
je 0x402f54
push 0x30
cmp eax, 0x7b
je 0x402f62
push esi
mov eax, dword [0x405040]
jmp 0x402f6c
push 0x34
mov esi, 0x4056a0
push esi
mov eax, dword [0x405044]
push eax
push dword [0x405064]
push dword [section..data]
call fcn.0040240d
cmp eax, 6
jne 0x402f7e
push 0
push pe_nt_image_headers32
push 2
push 0
push 1
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x405640], eax
jmp 0x402f7e
push 0x30
mov eax, dword [0x4050b0]
push 0x4056a0
jmp 0x402f6c
push 0x4056a0
mov eax, dword [0x405078]
push eax
push dword [0x405064]
push dword [section..data]
call fcn.0040240d
cmp dword [0x405640], 0xffffffff
je 0x402fae
xor esi, esi
push esi
push 0x4056a0
call fcn.004034a4
test al, 0x80
je 0x402fae
push esi
mov eax, dword [section..data]
push esi
push 0x10
push eax
call edi
mov eax, 1
jmp 0x40314e
cmp dword [0x405018], 0
je 0x402fca
push 0xfd0000
mov eax, dword [section..data]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
push dword [ebp + 0x14]
push dword [section..data]
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, 0x405550
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x4050a0]
push edi
call esi
push edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
call ebx
lea edi, [eax + 0x405551]
mov eax, dword [0x405094]
inc eax
push eax
push edi
call esi
push edi
call ebx
lea edi, [eax + edi + 1]
mov eax, dword [0x4050a4]
push eax
push edi
call esi
push edi
call ebx
lea edi, [eax + edi + 1]
push 0x401050
push edi
call esi
push edi
call ebx
xor ebx, ebx
mov byte [eax + edi + 1], bl
mov eax, dword [0x405094]
inc eax
mov byte [0x405600], bl
push eax
push 0x405601
call esi
mov ecx, dword [section..data]
mov dword [0x405674], ebx
mov dword [0x405650], 0x4c
mov dword [0x405654], ecx
mov dword [0x405694], ebx
mov dword [0x405684], ebx
mov dword [0x405680], ebx
mov dword [0x405664], 0x40
mov dword [0x405668], 1
mov dword [0x405670], 0x104
cmp dword [ebp - 4], ebx
je 0x4030af
push ebx
mov esi, 0x405390
push 5
push esi
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x4030af
mov dword [0x40567c], esi
jmp 0x4030b9
mov dword [0x40567c], 0
mov eax, dword [section..data]
xor esi, esi
mov word [0x4055da], si
mov dword [0x4055c4], eax
push 0x40103c
mov dword [0x4055d4], esi
mov dword [0x4055c0], 0x28
mov dword [0x4055cc], 0x10001
mov dword [0x4055e0], esi
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
mov dword [0x4055ec], eax
cmp eax, esi
je 0x40314c
lea eax, [ebp - 8]
lea ecx, [ebp - 4]
push eax
push ecx
push 0xb0
push dword [0x405004]
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [ebp - 8]
push dword [ebp - 4]
push 0xb1
mov eax, dword [0x405004]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0xb7
push dword [0x405004]
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, 1
jmp 0x40314e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10