Function at 0x406e80
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x436f74
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x31c
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x324], 0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4070d5
mov ecx, dword [esp + 0x32c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
push eax
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [esp + 8]
push 0x441e38
push edx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x4070c4
mov dword [esp], eax
lea eax, [esp]
push eax
push 0x441e28
push 0x17
push 0
push 0x43aff4
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x4070ae
mov dword [esp + 4], 0
mov eax, dword [esp]
lea edx, [esp + 4]
push edx
push 0x43b004
mov ecx, dword [eax]
push eax
mov byte [esp + 0x330], 3
call dword [ecx]
test eax, eax
jl 0x407098
mov eax, dword [esp + 0x32c]
push esi
push edi
push 0xffffffffffffffff
push eax
call fcn.00408a90
mov esi, eax
add esp, 8
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xc]
push 0
push esi
push eax
mov ecx, dword [eax]
mov byte [esp + 0x338], 4
call dword [ecx + 0x14]
push esi
mov edi, eax
mov byte [esp + 0x330], 3
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test edi, edi
pop edi
pop esi
jl 0x407098
mov eax, dword [esp]
push 1
push 0
push eax
mov edx, dword [eax]
call dword [edx + 0x4c]
test eax, eax
jl 0x407098
mov eax, dword [esp]
push 4
push 0
lea edx, [esp + 0x11c]
mov ecx, dword [eax]
push 0x104
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
jl 0x406fd2
mov ecx, dword [esp + 0x330]
lea eax, [esp + 0x114]
push eax
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp]
lea edx, [esp + 0x10]
push 0x104
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
test eax, eax
jl 0x406ffb
mov ecx, dword [esp + 0x334]
lea eax, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp]
lea edx, [esp + 0x218]
push 0x104
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
test eax, eax
jl 0x40702a
mov ecx, dword [esp + 0x338]
lea eax, [esp + 0x218]
push eax
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 4]
mov byte [esp + 0x324], 2
test eax, eax
je 0x407040
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp]
mov byte [esp + 0x324], 1
test eax, eax
je 0x407056
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 8]
mov byte [esp + 0x324], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x32c]
mov dword [esp + 0x324], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
mov ecx, dword [esp + 0x31c]
mov dword fs:[0], ecx
add esp, 0x328
ret
mov eax, dword [esp + 4]
mov byte [esp + 0x324], 2
test eax, eax
je 0x4070ae
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp]
mov byte [esp + 0x324], 1
test eax, eax
je 0x4070c4
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 8]
mov byte [esp + 0x324], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x32c]
mov dword [esp + 0x324], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x31c]
xor eax, eax
mov dword fs:[0], ecx
add esp, 0x328
ret