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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x417cc6
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 1
call fcn.004087c0
test al, al
je 0x409003
xor al, al
jmp 0x40928c
mov al, byte [esi + 0xe4]
test al, al
je 0x409014
xor al, al
jmp 0x40928c
lea ebp, [esi + 0x78]
mov ecx, ebp
call fcn.0040a8b0
cmp eax, 0xffffffff
jne 0x40902a
xor al, al
jmp 0x40928c
mov ecx, esi
call fcn.004088d0
cmp eax, 0xffff
jne 0x40903f
xor al, al
jmp 0x40928c
mov edi, dword [esp + 0x158]
test edi, edi
je 0x409082
lea eax, [esp + 0x28]
push eax
push edi
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x40907b
mov ebx, dword [esp + 0x150]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.0040d620
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
mov dword [ebx + 0x24], eax
jne 0x409089
xor al, al
jmp 0x40928c
mov ebx, dword [esp + 0x150]
lea ecx, [esi + 0x20]
call fcn.0040b500
lea edi, [esi + 0xe8]
push ebx
mov ecx, edi
call fcn.0040bec0
lea edx, [esp + 0x14]
mov ecx, esi
push edx
call fcn.00408bb0
mov ecx, eax
call fcn.0040d9d0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x148], 0
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x4090f5
mov ecx, esi
call fcn.004088d0
push eax
lea ecx, [esp + 0x18]
push str.file_i
push ecx
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, esi
push edx
call fcn.00408bb0
mov ecx, eax
call fcn.0040d9b0
mov al, byte [esi + 0x15c]
mov cl, byte [edi + 0x74]
cmp al, cl
jne 0x409117
mov edi, dword [edi + 0x28]
push 1
mov ecx, edi
call fcn.0040da90
push 0
mov ecx, edi
call fcn.0040da50
mov ecx, esi
call fcn.00408bb0
mov eax, dword [eax + 0x24]
mov ecx, esi
push eax
call fcn.0040a200
mov edi, dword [esi + 0x10]
mov byte [esp + 0x13], al
test edi, edi
setne bl
mov byte [esp + 0x18], bl
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.0040a8b0
mov edi, dword [esp + 0x158]
cmp eax, 1
sete dl
push edx
push edi
mov ecx, esi
call fcn.00408bb0
mov ecx, eax
call fcn.0040d860
test al, al
jne 0x40916f
push 0xffffffffffffff95
mov ecx, esi
call fcn.00408800
push ebp
mov ecx, esi
call fcn.00408bb0
mov ecx, eax
call fcn.0040d700
mov al, byte [esi + 0x15c]
test al, al
je 0x40919b
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.00408bb0
mov ecx, eax
call fcn.0040d9b0
test bl, bl
je 0x4091f3
xor ebx, ebx
lea ecx, [esp + 0x1c]
push ebx
push 0xc
call fcn.0040b550
mov eax, dword [esp + 0x150]
xor edx, edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x148], 1
mov dx, word [eax + 0x10]
push ecx
shl edx, 0x10
push edx
mov ecx, esi
call fcn.0040a3e0
mov ecx, dword [esp + 0x20]
push ebx
push 0xc
push ecx
mov ecx, ebp
call fcn.0040b2e0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x148], bl
call fcn.0040b580
jmp 0x4091f5
xor ebx, ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x2c], ebx
mov eax, dword [esi + 0x74]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x34], eax
mov al, byte [esp + 0x13]
test al, al
mov dword [esi + 0x30], ebx
mov dword [esi + 0x3c], ebx
je 0x40922d
mov ecx, esi
call fcn.00408bb0
cmp word [eax + 0xe], bx
je 0x40922d
mov ecx, esi
call fcn.00408bb0
mov word [eax + 0xe], bx
mov ecx, esi
call fcn.00408bb0
cmp word [eax + 0xe], 8
jne 0x40926f
mov al, byte [esi + 4]
test al, al
je 0x40924a
lea eax, [esi + 0xc8]
jmp 0x40924c
xor eax, eax
push 0x38
push str.1.1.3
push ebx
push 8
push 0xfffffffffffffff1
push 8
lea edx, [esi + 0x28]
push edi
push edx
mov dword [esi + 0x50], eax
call fcn.0040e290
push eax
mov ecx, esi
call fcn.00408b90
lea ecx, [esp + 0x14]
mov byte [esi + 0xe4], 1
mov dword [esp + 0x148], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov al, 1
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x13c
ret 0xc