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

Disassembly:
push 0xffffffffffffffff
push 0x41d2c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
xor ebp, ebp
mov eax, dword [esi + 8]
push edi
mov edi, dword [esp + 0x38]
add eax, 8
mov dword [esp + 0x10], ebx
push eax
mov ecx, edi
call sub.MFC42.DLL_CString::operator
push edi
mov ecx, esi
call fcn.004144f0
test eax, eax
je 0x414492
lea ecx, [esp + 0x38]
call fcn.0041b5bc
mov edx, dword [esi + 8]
cmp ebp, ebx
mov dword [esp + 0x30], ebx
push edi
jne 0x414299
push ecx
add edx, 8
mov ecx, esp
mov dword [esp + 0x2c], esp
jmp 0x4142a3
push ecx
add edx, 0xc
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.00413c90
mov ecx, dword [esi + 8]
mov dword [ecx + 0x58], eax
mov edx, dword [esi + 8]
cmp dword [edx + 0x58], 0xffffffff
jne 0x4142ce
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ecx, dword [esi + 8]
mov dword [ecx + 0x58], eax
mov edx, dword [esi + 8]
mov ecx, dword [edx + 0x58]
cmp ecx, 0xffffffff
je 0x4142f7
mov eax, dword [esi + 0x410]
cmp dword [eax + 0x3a4], 0xffffffff
jne 0x4143bf
mov dword [eax + 0x3a4], ecx
jmp 0x4143bf
lea eax, [esp + 0x14]
push edi
push eax
mov ecx, esi
call fcn.00416260
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x34], 1
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x14]
mov byte [esp + 0x30], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [edi]
cmp dword [eax - 8], ebx
je 0x414390
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ecx, dword [esi + 8]
mov dword [ecx + 0x58], eax
mov edx, dword [esi + 8]
cmp dword [edx + 0x58], 0xffffffff
jne 0x4143b6
lea eax, [esp + 0x1c]
push edi
push eax
mov ecx, esi
call fcn.00416260
lea ecx, [esp + 0x38]
lea edx, [esp + 0x18]
push ecx
push eax
push edx
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_operator_3
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x34], 3
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [edi]
cmp dword [eax - 8], ebx
jne 0x414327
cmp ebp, ebx
jle 0x4143a0
push 0x194
mov ecx, esi
call fcn.00414c20
lea ecx, [esp + 0x38]
mov dword [esp + 0x30], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x4144a4
mov eax, dword [esi + 8]
test byte [eax + 0x58], 0x10
jne 0x414390
mov eax, dword [edi]
mov dword [esp + 0x10], 1
mov ecx, dword [eax - 8]
cmp byte [eax + ecx - 1], 0x5c
jne 0x414403
mov eax, ecx
lea ecx, [esp + 0x20]
dec eax
push eax
push ecx
mov ecx, edi
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 8]
push eax
add ecx, 0x4c
mov byte [esp + 0x34], 4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x20]
mov byte [esp + 0x30], bl
call sub.MFC42.DLL_CString::CString
jmp 0x41440f
mov ecx, dword [esi + 8]
push edi
add ecx, 0x4c
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x38]
cmp dword [edx - 8], ebx
je 0x414445
mov ecx, dword [esi + 8]
lea eax, [esp + 0x38]
push eax
add ecx, 4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.004144f0
test eax, eax
je 0x414445
mov ecx, dword [esi + 8]
lea edx, [esp + 0x38]
push edx
call sub.MFC42.DLL_CString::operator
mov eax, dword [esi + 8]
test byte [eax + 0x58], 0x10
je 0x414470
push ebx
push 0x73
mov ecx, esi
call fcn.00416340
test eax, eax
jne 0x4143a0
push 1
push 0x77
mov ecx, esi
call fcn.00416340
jmp 0x4143a0
cmp dword [eax + 0x54], ebx
je 0x4143a0
mov ecx, esi
call fcn.00416530
test eax, eax
jne 0x4143a0
push 0x190
jmp 0x414399
cmp ebp, ebx
jle 0x4144ae
push 0x190
mov ecx, esi
call fcn.00414c20
jmp 0x4144ac
mov eax, dword [esp + 0x10]
cmp eax, ebx
jne 0x4144c1
cmp ebp, ebx
jne 0x4144d4
mov eax, dword [esi + 8]
mov ebp, 1
add eax, 0xc
push eax
jmp 0x414261
cmp ebp, ebx
jle 0x4144d8
mov esi, dword [esi + 8]
lea ecx, [esi + 0xc]
push ecx
lea ecx, [esi + 8]
call sub.MFC42.DLL_CString::operator
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x24
ret 4