Function at 0x415b17
Capabilities:
Check if file exists

Disassembly:
push ebp
sub esp, 0x208
lea ebp, [esp - 4]
mov eax, dword [0x433028]
xor eax, ebp
mov dword [ebp + 0x208], eax
push 0x4c
mov eax, 0x419187
call fcn.0041805c
push 0xffffffffffffffff
lea ecx, [edi + 0xd4]
push 0
call sub.mfc90u.dll_CStringArray::SetSize
push 5
pop eax
push 1
push str.chkSkipPersonalFolders
mov ebx, 0x434888
push str.Advanced
mov ecx, ebx
mov dword [ebp - 0x58], 0x10
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], 0xd
mov dword [ebp - 0x48], 0x27
mov dword [ebp - 0x44], 0xe
mov dword [ebp - 0x40], 0x19
mov dword [ebp - 0x3c], 0x2e
mov dword [ebp - 0x38], 0x1f
mov dword [ebp - 0x34], 0x35
mov dword [ebp - 0x30], 0x37
mov dword [ebp - 0x2c], 0x30
mov dword [ebp - 0x28], 0x2f
mov dword [ebp - 0x24], 0x26
mov dword [ebp - 0x20], 0x2a
call sub.mfc90u.dll_CWinApp::GetProfileIntW
test eax, eax
je 0x415cc0
and dword [ebp - 0x10], 0
push 0x208
xor esi, esi
lea eax, [ebp]
push esi
push eax
call sub.MSVCR90.dll_memset
mov eax, dword [ebp - 0x10]
add esp, 0xc
push dword [ebp + eax*4 - 0x58]
lea eax, [ebp]
push eax
call fcn.00413c2d
lea eax, [ebp]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x415bfc
sub eax, edx
sar eax, 1
je 0x415cb3
lea eax, [ebp]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415cb3
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x14]
call dword [0x424498]
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], esi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::MakeLower]
cmp dword [edi + 0xb4], 0
jle 0x415c79
test esi, esi
jl 0x415e2b
cmp esi, dword [edi + 0xb4]
jge 0x415e2b
mov eax, dword [edi + 0xb0]
push 0
push dword [ebp - 0x14]
lea ecx, [eax + esi*4]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
test eax, eax
jge 0x415ca6
inc esi
cmp esi, dword [edi + 0xb4]
jl 0x415c44
lea eax, [ebp - 0x18]
push 0x2a
push eax
lea esi, [ebp - 0x14]
call fcn.00403573
pop ecx
pop ecx
lea ecx, [edi + 0xd4]
mov byte [ebp - 4], 1
mov edx, dword [ecx + 8]
push eax
push edx
call sub.mfc90u.dll_CStringArray::SetAtGrow
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xb
jb 0x415bd2
push 1
push str.chkSkipSystemFolders
push str.Advanced
mov ecx, ebx
call sub.mfc90u.dll_CWinApp::GetProfileIntW
test eax, eax
je 0x415e08
xor ebx, ebx
mov esi, dword [ebp + ebx*4 - 0x2c]
cmp esi, 0x2a
jne 0x415cf4
call dword [sym.imp.pcoshelper.dll_Ordinal_1175]
test al, al
je 0x415dfe
push 0x208
lea eax, [ebp]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push esi
lea eax, [ebp]
push eax
call fcn.00413c2d
lea eax, [ebp]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x415d17
sub eax, edx
sar eax, 1
je 0x415dfe
lea eax, [ebp]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415dfe
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x10]
call dword [0x424498]
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 2
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::MakeLower]
cmp esi, 0x26
jne 0x415d85
call dword [sym.imp.pcoshelper.dll_Ordinal_1175]
test al, al
je 0x415d85
push 0x4263a8
push str.__x86_
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Replace]
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Trim]
xor esi, esi
cmp dword [edi + 0xb4], esi
jle 0x415dc4
test esi, esi
jl 0x415e2b
cmp esi, dword [edi + 0xb4]
jge 0x415e2b
mov eax, dword [edi + 0xb0]
push 0
push dword [ebp - 0x10]
lea ecx, [eax + esi*4]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
test eax, eax
jge 0x415df1
inc esi
cmp esi, dword [edi + 0xb4]
jl 0x415d8f
lea eax, [ebp - 0x18]
push 0x2a
push eax
lea esi, [ebp - 0x10]
call fcn.00403573
pop ecx
pop ecx
lea ecx, [edi + 0xd4]
mov byte [ebp - 4], 3
mov edx, dword [ecx + 8]
push eax
push edx
call sub.mfc90u.dll_CStringArray::SetAtGrow
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
inc ebx
cmp ebx, 4
jb 0x415cdd
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x208]
xor ecx, ebp
call fcn.004179ba
add ebp, 0x20c
leave
ret
call fcn.004174a2
int3