Function at 0x419680
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x437fd0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x98
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x14], ecx
push edi
mov ecx, 0x1a
xor eax, eax
lea edi, [ebp - 0xa0]
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
mov ecx, dword [esi + 0xc]
xor ebx, ebx
mov dword [ebp - 0x90], ecx
mov eax, dword [edi + 0x74]
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
call fcn.004096c0
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x1c]
cmp eax, ebx
jne 0x4196f0
mov eax, 0x44e4fc
push eax
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString_1
mov esi, dword [esi + 0x1c]
mov dword [ebp - 4], ebx
cmp esi, ebx
jne 0x419708
mov esi, 0x44e4fc
push esi
call fcn.00405140
add esp, 4
test eax, eax
jne 0x41972b
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
jmp 0x419c7f
mov edi, dword [edi + 0xc]
xor edx, edx
mov dword [ebp - 0x37], edx
cmp edi, ebx
mov dword [ebp - 0x33], edx
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x2f], edx
mov word [ebp - 0x2b], dx
mov byte [ebp - 0x29], dl
jne 0x419755
mov edi, 0x44e4fc
cmp edi, ebx
jne 0x419755
xor esi, esi
jmp 0x419784
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebx, [eax + eax + 2]
mov eax, ebx
add eax, 3
and al, 0xfc
call fcn.0042a4e0
mov esi, esp
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push edi
push 0
push 0
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x419832
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x419832
mov ecx, eax
mov ebx, dword [ecx + 0xc]
test ebx, ebx
jne 0x4197b7
mov ebx, 0x44e4fc
test ebx, ebx
jne 0x4197b7
xor esi, esi
jmp 0x4197e6
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and al, 0xfc
call fcn.0042a4e0
mov esi, esp
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 0
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
call fcn.00402680
add esp, 4
test eax, eax
je 0x419810
mov edx, dword [ebp + 0xc]
mov ecx, 0x10
lea edi, [ebp - 0x38]
xor eax, eax
lea esi, [edx + 0x7d]
repe cmpsb byte [esi], byte es:[edi]
je 0x41980c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x419832
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00418cb0
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
jmp 0x419c7f
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
push ecx
mov ecx, ebx
call fcn.004172f0
mov esi, eax
test esi, esi
mov dword [ebp - 0x1c], esi
jl 0x41985f
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, esi
jmp 0x419c7f
mov edx, dword [ebp - 0x10]
lea ecx, [ebx + 0x474]
push edx
push 0
call fcn.00429af0
test eax, eax
jge 0x41988a
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, esi
jmp 0x419c7f
cmp eax, 1
je 0x419c5b
cmp eax, 2
je 0x419c5b
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
cmp byte [eax + 0x7c], 0x46
je 0x419958
push esi
mov ecx, ebx
call fcn.004193a0
test eax, eax
je 0x4198d1
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x419c7f
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4198e1
mov eax, 0x44e4fc
test eax, eax
je 0x4198e7
cmp word [eax], 0
jne 0x4198f3
push esi
mov ecx, ebx
call fcn.00419360
test eax, eax
je 0x419958
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x419958
push esi
mov ecx, ebx
call fcn.004193d0
mov esi, dword [esi + 0x1c]
test esi, esi
mov ebx, esi
jne 0x419910
mov ebx, 0x44e4fc
test ebx, ebx
jne 0x419918
xor esi, esi
jmp 0x419947
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and al, 0xfc
call fcn.0042a4e0
mov esi, esp
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 0
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [ebp - 0x14]
push 0
push esi
call fcn.0041f800
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x20]
push eax
push 1
mov dword [eax + 0x24], 1
call fcn.004093d0
mov ecx, dword [ebp + 0xc]
mov edi, eax
cmp byte [ecx + 0x7c], 0x46
jne 0x419b0b
test edi, edi
mov dword [ebp - 0x9c], 0x186a4
je 0x4199c1
cmp edi, 2
je 0x4199c1
mov edi, ecx
push edi
call fcn.00409a60
add esp, 4
cmp eax, 5
jne 0x4199c1
mov esi, dword [esi + 0x30]
test esi, esi
mov eax, esi
jne 0x4199ad
mov eax, 0x44e4fc
push eax
lea ecx, [ebx + 0x5cc]
call fcn.004015e0
test eax, eax
je 0x419a7a
mov edx, dword [ebp - 0x10]
xor edi, edi
push edx
push edi
mov ecx, ebx
call fcn.00416b20
cmp eax, edi
jne 0x419a48
mov edx, 0x44a0ec
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x94], edi
mov esi, 0x28
lea eax, [ebp - 0x88]
sub edx, ecx
mov cl, byte [edx + eax]
test cl, cl
je 0x419a00
mov byte [eax], cl
inc eax
dec esi
jne 0x4199f1
jmp 0x419a04
cmp esi, edi
jne 0x419a05
dec eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
push edi
push 0x449e84
mov byte [eax], 0
push 0x449edc
push edx
lea eax, [ebp - 0xa4]
push 0x44a080
push eax
push ecx
mov ecx, ebx
call fcn.00415410
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0xa4]
push edx
push eax
mov ecx, ebx
call fcn.0041f800
mov dword [ebp - 0x1c], edi
jmp 0x419c6d
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp + 0xc]
push edi
push 0x44a0fc
push 0x449edc
push ecx
lea edx, [ebp - 0xa4]
push 0x44a080
push edx
push eax
mov ecx, ebx
call fcn.00415410
mov dword [ebp - 0x1c], 1
jmp 0x419c6d
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x18]
push edx
push eax
call fcn.004094f0
mov ecx, dword [ebp - 0x18]
mov edx, 0x4410b4
mov dword [ebp - 0x94], ecx
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x9c], 0x186a4
mov esi, 0x28
lea eax, [ebp - 0x88]
sub edx, ecx
mov cl, byte [edx + eax]
test cl, cl
je 0x419ac8
mov byte [eax], cl
inc eax
dec esi
jne 0x419ab9
jmp 0x419acc
test esi, esi
jne 0x419acd
dec eax
mov edx, dword [ebp - 0x10]
push 0
push 0x449e84
mov byte [eax], 0
push 0x44a190
push edx
lea eax, [ebp - 0xa4]
push 0x44a180
push eax
push edi
mov ecx, ebx
call fcn.00415410
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0xa4]
push ecx
push edx
mov ecx, ebx
call fcn.0041f800
jmp 0x419c6d
test edi, edi
je 0x419b9e
cmp edi, 2
je 0x419b9e
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x24]
push eax
lea edx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov dword [ebp - 0x9c], 0x186b9
call fcn.004094f0
mov eax, dword [ebp - 0x18]
mov edx, 0x44a154
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x94], eax
mov esi, 0x28
lea eax, [ebp - 0x88]
sub edx, ecx
mov cl, byte [edx + eax]
test cl, cl
je 0x419b6a
mov byte [eax], cl
inc eax
dec esi
jne 0x419b5b
jmp 0x419b6e
test esi, esi
jne 0x419b6f
dec eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
push 0
push 0x449e84
mov byte [eax], 0
push 0x44a13c
push edx
lea eax, [ebp - 0xa4]
push 0x44a148
push eax
push ecx
mov ecx, ebx
call fcn.00415410
jmp 0x419c6d
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x9c], 0x186b9
cmp eax, 5
je 0x419bb5
cmp eax, 6
jne 0x419c01
mov esi, dword [esi + 0x1c]
test esi, esi
mov eax, esi
jne 0x419bc3
mov eax, 0x44e4fc
push eax
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [ebx + 0x1250]
lea ecx, [ebx + 0x1248]
lea edx, [ebp + 8]
mov byte [ebp - 4], 1
push edx
push eax
call sub.MFC42.DLL_CStringArray::SetAtGrow
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
call fcn.00403da0
mov dword [ebx + 0x404], 1
test edi, edi
jne 0x419c2d
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
push edi
push 0x4431a4
push 0x44a13c
push eax
lea ecx, [ebp - 0xa4]
push 0x44a148
push ecx
push edx
mov ecx, ebx
call fcn.00415410
jmp 0x419c6d
cmp edi, 2
jne 0x419c6d
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
push 0
push 0x44a0fc
push 0x44a13c
push eax
lea ecx, [ebp - 0xa4]
push 0x44a148
push ecx
push edx
mov ecx, ebx
call fcn.00415410
jmp 0x419c6d
mov eax, dword [ebp + 0xc]
push 0
push 0x186a3
push eax
mov ecx, ebx
call fcn.00419e60
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xb0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10