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

Disassembly:
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
sub esp, 0xa70
push ebp
mov ebp, dword [esp + 0xa88]
push edi
mov edi, dword [esp + 0xa90]
push edi
push ebp
push eax
push ecx
lea edx, [esp + 0x678]
push edx
call fcn.00417120
lea eax, [esp + 0x668]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4173d6
mov eax, dword [esp + 0xa80]
cmp eax, 0x7fffffff
ja 0x4173c6
mov edx, dword [esp + 0xa7c]
lea ecx, [esp + 0x668]
push ecx
push eax
push edx
call fcn.00408ad1
pop edi
mov eax, 1
pop ebp
add esp, 0xa70
ret 0x18
push ebx
push esi
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
mov esi, 1
push esi
call fcn.004172a0
mov ebx, dword [esp + 0x14]
push ebx
push 0x20
lea edx, [esp + 0x20]
push edx
push esi
call fcn.004171a0
push ebp
push 0x104
lea eax, [esp + 0x60]
push eax
call fcn.00408ad1
mov ecx, 0x104
lea eax, [esp + 0x58]
cmp word [eax], 0
je 0x417426
add eax, 2
dec ecx
jne 0x417418
jmp 0x417448
test ecx, ecx
je 0x417448
mov eax, 0x104
sub eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov edx, 0x104
sub edx, eax
push edx
lea eax, [esp + eax*2 + 0x60]
push eax
call fcn.00408ad1
mov edx, dword [esp + 0xa90]
mov eax, dword [esp + 0xa8c]
mov ebp, dword [esp + 0xa88]
push edi
lea ecx, [esp + 0x5c]
push ecx
push edx
push eax
push ebp
lea ecx, [esp + 0x274]
push ecx
call fcn.00417090
lea edx, [esp + 0x260]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x417613
mov edi, dword [esp + 0x10]
mov edi, edi
push ebx
push 0x20
lea eax, [esp + 0x20]
push eax
push esi
call fcn.004171a0
mov ecx, dword [esp + 0xa94]
push ecx
push 0x104
lea edx, [esp + 0x60]
push edx
call fcn.00408ad1
mov ecx, 0x104
lea eax, [esp + 0x58]
mov edi, edi
cmp word [eax], 0
je 0x4174ce
add eax, 2
dec ecx
jne 0x4174c0
jmp 0x4174f0
test ecx, ecx
je 0x4174f0
mov eax, 0x104
sub eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov edx, 0x104
sub edx, eax
push edx
lea eax, [esp + eax*2 + 0x60]
push eax
call fcn.00408ad1
mov ecx, dword [esp + 0xa98]
mov eax, dword [esp + 0xa90]
push ecx
mov ecx, dword [esp + 0xa90]
lea edx, [esp + 0x5c]
push edx
push eax
push ecx
push ebp
lea edx, [esp + 0x274]
push edx
call fcn.00417090
lea eax, [esp + 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add esi, 0xc8
cmp esi, edi
jb 0x417539
lea edi, [edi + edi*4]
inc ebx
shl edi, 1
cmp eax, 0xffffffff
jne 0x417490
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
sub esi, 0x190
push edx
push esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
call fcn.004172a0
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
push ebx
push 0x20
lea eax, [esp + 0x20]
push eax
push esi
call fcn.004171a0
mov ecx, dword [esp + 0xa94]
push ecx
push 0x104
lea edx, [esp + 0x60]
push edx
call fcn.00408ad1
mov ecx, 0x104
lea eax, [esp + 0x58]
cmp word [eax], 0
je 0x4175a4
add eax, 2
dec ecx
jne 0x417596
jmp 0x4175c6
test ecx, ecx
je 0x4175c6
mov eax, 0x104
sub eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov edx, 0x104
sub edx, eax
push edx
lea eax, [esp + eax*2 + 0x60]
push eax
call fcn.00408ad1
mov ecx, dword [esp + 0xa98]
mov eax, dword [esp + 0xa90]
push ecx
mov ecx, dword [esp + 0xa90]
lea edx, [esp + 0x5c]
push edx
push eax
push ecx
push ebp
lea edx, [esp + 0x274]
push edx
call fcn.00417090
lea eax, [esp + 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
inc esi
cmp esi, edi
jne 0x41760a
lea edi, [edi + edi*4]
inc ebx
shl edi, 1
cmp eax, 0xffffffff
jne 0x417568
lea ecx, [esp + 0x260]
push ecx
mov esi, 1
call dword [sym.imp.msvcrt.dll_wcslen]
add esp, 4
cmp eax, 0x104
jb 0x417641
xor esi, esi
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
add esp, 0xa70
ret 0x18
cmp ebp, 0x7fffffff
ja 0x41765f
mov eax, dword [esp + 0xa84]
lea edx, [esp + 0x260]
push edx
push ebp
push eax
call fcn.00408ad1
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
add esp, 0xa70
ret 0x18