Function at 0x405a60
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd8c
push ebx
push esi
push edi
mov dword [ebp - 8], 0
mov eax, dword [ebp + 0xc]
cmp eax, 0x1771
jl 0x406caa
cmp eax, 0x17b1
jg 0x406caa
jmp dword [eax*4 + 0x4205b8]
mov eax, dword [ebp + 0xc]
cmp eax, 0x3a98
jl 0x406d4b
cmp eax, 0x3b97
jg 0x406d4b
push 0x178b
mov eax, dword [0x440448]
push eax
call fcn.0040dbe0
push eax
mov eax, dword [0x440448]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0x97c], eax
push 0
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x97c]
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
test eax, eax
je 0x406d04
mov ebx, 1
jmp 0x406d06
xor ebx, ebx
cmp ebx, 8
je 0x407108
mov eax, dword [ebp + 0xc]
sub eax, 0x3a98
mov dword [ebp - 0x980], eax
push eax
call fcn.0040bae0
mov dword [ebp - 0x984], eax
push 0
mov eax, dword [ebp - 0x984]
mov eax, dword [eax + 8]
push eax
push 0x222
mov eax, dword [0x440474]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x407108
mov eax, dword [ebp + 0xc]
cmp eax, 0x3e80
jle 0x406e7b
cmp eax, 0x3e90
jg 0x406e7b
lea eax, [ebp - 0x210]
push eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.00409190
lea edx, [ebp - 0x974]
mov ecx, 0x250
xor eax, eax
push edi
mov edi, edx
rep stosb byte es:[edi], al
pop edi
mov eax, edx
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x406e17
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.0040e620
push 1
push 0
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x210]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0040e650
mov dword [ebp - 4], eax
push eax
push str.recent_bookmarks
call fcn.00410190
mov eax, dword [ebp - 4]
cmp dword [eax + 0x338], 0
je 0x406df5
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [0x43f9f0], 0
je 0x407108
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.00407d20
jmp 0x407108
lea ecx, [ebp - 0x51c]
lea edx, [ebp - 0x210]
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x406e26
pop eax
push 0x427efa
lea eax, [ebp - 0x51c]
push eax
call fcn.0041e5f0
add esp, 8
push 0x43d51c
lea eax, [ebp - 0x51c]
push eax
call fcn.0041e5f0
add esp, 8
push 0x30
push 0x428116
lea eax, [ebp - 0x51c]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x407108
cmp dword [ebp + 0x14], 0
jne 0x406f6c
cmp dword [ebp + 0x10], 0
jne 0x406f6c
mov eax, dword [ebp + 0xc]
cmp eax, 0x2af8
jl 0x406f6c
cmp eax, 0x36b0
jg 0x406f6c
call fcn.0040ba40
mov dword [ebp - 0x97c], eax
cmp dword [ebp + 0xc], 0x2af8
jne 0x406ee3
mov edx, dword [ebp - 0x97c]
mov dword [edx + 0x334], 0
push 1
mov eax, dword [ebp - 0x97c]
mov eax, dword [eax + 8]
push eax
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x407108
cmp dword [ebp + 0xc], 0x36b0
jge 0x406f5a
mov edx, dword [ebp - 0x97c]
mov eax, dword [ebp + 0xc]
sub eax, 0x2af8
mov dword [edx + 0x330], eax
mov eax, dword [ebp - 0x97c]
cmp dword [eax + 0x334], 0
je 0x406f23
push 1
mov eax, dword [ebp - 0x97c]
mov eax, dword [eax + 8]
push eax
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x406f33
mov edx, dword [ebp - 0x97c]
mov dword [edx + 0x334], 1
push 0x40c760
mov eax, dword [ebp - 0x97c]
imul edx, dword [eax + 0x330], 0x3e8
push edx
push 1
mov eax, dword [eax + 8]
push eax
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x407108
mov edx, dword [ebp - 0x97c]
or dword [edx + 0x330], 0xffffffff
jmp 0x407108
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040bf10
test eax, eax
je 0x4070d8
push 0x178a
mov eax, dword [0x440448]
push eax
call fcn.0040dbe0
push eax
mov eax, dword [0x440448]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0x980], eax
push 0x1777
mov edx, dword [0x440448]
push edx
call fcn.0040dbe0
push eax
mov eax, dword [ebp - 0x980]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0x97c], eax
push 0
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x97c]
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
test eax, eax
je 0x406fe3
mov ebx, 1
jmp 0x406fe5
xor ebx, ebx
cmp ebx, 8
je 0x407108
mov eax, dword [ebp + 0xc]
sub eax, 0x4268
push eax
call fcn.0040bbe0
mov eax, dword [ebp + 0xc]
sub eax, 0x4268
mov dword [0x43f9e0], eax
push 0x43f3b0
push 0x50
push 0x43f9cc
push str.settings
push str.preferences
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStructW]
push 0x43f3b0
push 0x43f2b0
push str.language
push str.preferences
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [0x43f09c]
push eax
call fcn.004093f0
mov eax, dword [0x43f09c]
push eax
call dword [sym.imp.USER32.dll_DrawMenuBar]
call fcn.0040bd80
call fcn.0040d9a0
call fcn.0040dd70
call fcn.004084d0
call fcn.0040f7c0
call fcn.0040e260
call fcn.0040ba40
mov dword [ebp - 4], eax
test eax, eax
je 0x4070d1
mov eax, dword [ebp - 4]
add eax, 0x114
push eax
push 0x200
push 0x40b
mov eax, dword [0x43bf14]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 4]
push eax
call fcn.0040e830
push eax
push 0x201
push 0x40b
mov eax, dword [0x43bf14]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 7
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
call fcn.0041a480
jmp 0x407108
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov edx, dword [ebp + 0x14]
and edx, 0xffff
shl edx, 0x10
or eax, edx
push eax
push 0x111
mov eax, dword [0x440474]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_DefFrameProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10