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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x40e036
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.00402bf0
test al, al
je 0x403433
xor al, al
jmp 0x4036bc
mov al, byte [esi + 0xe4]
test al, al
je 0x403444
xor al, al
jmp 0x4036bc
lea ebp, [esi + 0x78]
mov ecx, ebp
call fcn.00404ce0
cmp eax, 0xffffffff
jne 0x40345a
xor al, al
jmp 0x4036bc
mov ecx, esi
call fcn.00402d00
cmp eax, 0xffff
jne 0x40346f
xor al, al
jmp 0x4036bc
mov edi, dword [esp + 0x158]
test edi, edi
je 0x4034b2
lea eax, [esp + 0x28]
push eax
push edi
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x4034ab
mov ebx, dword [esp + 0x150]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.00407a50
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
mov dword [ebx + 0x24], eax
jne 0x4034b9
xor al, al
jmp 0x4036bc
mov ebx, dword [esp + 0x150]
lea ecx, [esi + 0x20]
call fcn.00405930
lea edi, [esi + 0xe8]
push ebx
mov ecx, edi
call fcn.004062f0
lea edx, [esp + 0x14]
mov ecx, esi
push edx
call fcn.00402fe0
mov ecx, eax
call fcn.00407e00
mov eax, dword [esp + 0x14]
mov dword [esp + 0x148], 0
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x403525
mov ecx, esi
call fcn.00402d00
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.00402fe0
mov ecx, eax
call fcn.00407de0
mov al, byte [esi + 0x15c]
mov cl, byte [edi + 0x74]
cmp al, cl
jne 0x403547
mov edi, dword [edi + 0x28]
push 1
mov ecx, edi
call fcn.00407ec0
push 0
mov ecx, edi
call fcn.00407e80
mov ecx, esi
call fcn.00402fe0
mov eax, dword [eax + 0x24]
mov ecx, esi
push eax
call fcn.00404630
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.00404ce0
mov edi, dword [esp + 0x158]
cmp eax, 1
sete dl
push edx
push edi
mov ecx, esi
call fcn.00402fe0
mov ecx, eax
call fcn.00407c90
test al, al
jne 0x40359f
push 0xffffffffffffff95
mov ecx, esi
call fcn.00402c30
push ebp
mov ecx, esi
call fcn.00402fe0
mov ecx, eax
call fcn.00407b30
mov al, byte [esi + 0x15c]
test al, al
je 0x4035cb
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.00402fe0
mov ecx, eax
call fcn.00407de0
test bl, bl
je 0x403623
xor ebx, ebx
lea ecx, [esp + 0x1c]
push ebx
push 0xc
call fcn.00405980
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.00404810
mov ecx, dword [esp + 0x20]
push ebx
push 0xc
push ecx
mov ecx, ebp
call fcn.00405710
lea ecx, [esp + 0x1c]
mov byte [esp + 0x148], bl
call fcn.004059b0
jmp 0x403625
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 0x40365d
mov ecx, esi
call fcn.00402fe0
cmp word [eax + 0xe], bx
je 0x40365d
mov ecx, esi
call fcn.00402fe0
mov word [eax + 0xe], bx
mov ecx, esi
call fcn.00402fe0
cmp word [eax + 0xe], 8
jne 0x40369f
mov al, byte [esi + 4]
test al, al
je 0x40367a
lea eax, [esi + 0xc8]
jmp 0x40367c
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.004086c0
push eax
mov ecx, esi
call fcn.00402fc0
lea ecx, [esp + 0x14]
mov byte [esi + 0xe4], 1
mov dword [esp + 0x148], 0xffffffff
call fcn.0040dad8
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