Function at 0x41b7d0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56d6f0
mov eax, dword fs:[0]
push eax
mov eax, 0x20270
call fcn.0052c270
mov eax, dword [0x5fc150]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x2022c], eax
mov byte [ebp - 0x20225], 0
test edi, edi
jne 0x41b83c
mov ecx, dword [ebx + 4]
push edi
push edi
push 0x947
call fcn.0040d9f0
mov edi, eax
mov byte [ebp - 0x20225], 1
mov eax, dword [ebp - 0x2022c]
push 0
lea ecx, [ebp - 0x218]
push ecx
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
lea eax, [ebp - 0x218]
push 0x7e
push eax
call fcn.0054422d
add esp, 8
test eax, eax
je 0x41b879
push 0x104
lea eax, [ebp - 0x218]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test esi, esi
je 0x41b8b3
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41b8b3
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41b8b3
push dword [ebp - 0x2022c]
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.0054bd88
add esp, 0xc
lea ecx, [ebp - 0x2027c]
call fcn.00501380
mov dword [ebp - 4], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x20238], eax
mov eax, esi
mov byte [ebp - 0x20234], 3
mov dword [ebp - 0x2023c], 0
test esi, esi
jne 0x41b8eb
lea eax, [ebp - 0x218]
lea ecx, [ebp - 0x2023c]
push ecx
lea ecx, [ebp - 0x2027c]
push ecx
lea ecx, [ebp - 0x20224]
push ecx
push eax
push edi
mov ecx, ebx
call fcn.0041bab0
test al, al
je 0x41ba63
push 0x128
call fcn.0052bd3f
add esp, 4
mov dword [ebp - 0x20230], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x41b945
lea ecx, [ebp - 0x218]
push ecx
push 1
push edi
push dword [ebx + 0x18]
mov ecx, eax
push ebx
call fcn.00418c30
mov edi, eax
jmp 0x41b947
xor edi, edi
mov byte [ebp - 4], 0
mov dword [ebp - 0x20230], edi
mov dword [edi + 0xc], edi
test esi, esi
je 0x41b9a8
cmp word [esi], 0
jne 0x41b962
xor ecx, ecx
jmp 0x41b983
mov ecx, esi
lea eax, [ecx + 2]
mov dword [ebp - 0x2022c], eax
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b970
sub ecx, dword [ebp - 0x2022c]
sar ecx, 1
push ecx
push esi
lea ecx, [edi + 0x98]
call fcn.00406c80
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41b9a8
mov dword [edi + 0x64], 2
xor eax, eax
mov dword [ebp - 0x20244], eax
mov dword [ebp - 0x20240], eax
lea eax, [ebp - 0x20244]
push eax
lea eax, [ebp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
je 0x41b9d7
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x68], eax
mov eax, dword [ebp + 0x1c]
mov dword [edi + 0x6c], eax
lea eax, [ebp - 0x20230]
push eax
lea ecx, [ebx + 0xc]
call fcn.00514e20
inc dword [ebx + 0x1c]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
sub eax, edx
mov ecx, dword [ebx + 0x1c]
dec ecx
sar eax, 2
cmp eax, ecx
ja 0x41ba06
push str.invalid_vector_T__subscript
call fcn.00515a37
mov esi, dword [edx + ecx*4]
cmp byte [esi + 4], 0
mov dword [esi + 0x38], 0xffffffff
je 0x41ba22
mov ecx, dword [esi]
push 0xa
push esi
mov ecx, dword [ecx]
call fcn.00476f10
cmp dword [esi + 0x14], 0
jne 0x41ba3f
mov eax, dword [ebp - 0x2023c]
test eax, eax
je 0x41ba3f
push 0x5883b8
push eax
mov ecx, esi
call fcn.0041cfa0
push dword [ebp - 0x20234]
lea eax, [ebp - 0x2027c]
mov ecx, ebx
push dword [ebp - 0x20238]
push eax
push esi
call fcn.0041d010
add dword [ebx + 0x18], 0x128
jmp 0x41ba7e
cmp byte [ebp - 0x20225], 0
je 0x41ba7c
mov ecx, dword [ebx + 4]
push edi
push 0
push 0x949
call fcn.0040d9f0
xor edi, edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2027c]
call fcn.005013f0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052c233
mov esp, ebp
pop ebp
ret 0x18