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

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2c]
xor ebx, ebx
push edi
xor ebp, ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], 0xffffffff
call fcn.0040dba0
add esp, 4
test eax, eax
jne 0x410629
mov esi, dword [esp + 0x28]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41061e
push ebx
push esi
call fcn.004118d0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x14
ret
push edi
call fcn.00423e84
lea eax, [edi + eax*2 - 2]
add esp, 4
mov ecx, eax
sub eax, 2
cmp ecx, edi
jbe 0x41064e
cmp word [eax], 0x2f
je 0x41064e
mov edx, eax
sub eax, 2
cmp edx, edi
ja 0x41063f
lea esi, [eax + 2]
test ebx, ebx
mov ax, word [esi]
mov word [esi], 0
mov dword [esp + 0x1c], eax
je 0x410669
mov cx, word [esp + 0x18]
mov word [ebx], cx
mov edx, dword [esp + 0x28]
mov ebx, esi
push edx
mov dword [esp + 0x1c], eax
call fcn.00410890
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x410688
cmp esi, edi
ja 0x410629
mov dword [esp + 0x2c], esi
add esi, 2
push 0x2f
push esi
call fcn.00424e6b
mov esi, eax
add esp, 8
test esi, esi
mov dword [esp + 0x18], esi
je 0x4106ce
mov word [esi], 0
add esi, 2
push esi
mov dword [esp + 0x1c], esi
call fcn.00423e84
mov edi, eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.00423e84
add esp, 8
lea eax, [edi + eax + 0x101]
jmp 0x4106e0
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00423e84
add esp, 4
add eax, 0x100
mov edi, dword [esp + 0x14]
test edi, edi
je 0x410822
lea edx, [eax + eax]
push edx
call fcn.004231a0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x410822
mov eax, dword [esp + 0x28]
push eax
push ebp
call fcn.00423e5f
push ebp
call fcn.00423e84
add esp, 0xc
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x410726
mov cx, word [esp + 0x1c]
mov word [ebx], cx
mov edx, dword [esp + 0x2c]
push edx
call fcn.0040dba0
add esp, 4
test eax, eax
jne 0x410744
mov dword [esp + 0x10], 0xffffffff
jmp 0x410846
push edi
call fcn.004109e0
mov esi, eax
add esp, 4
test esi, esi
je 0x410842
push 0x4379f8
push esi
call fcn.00424f14
add esp, 8
test eax, eax
je 0x41080d
push 0x437c6c
push esi
call fcn.00424f14
add esp, 8
test eax, eax
je 0x41080d
mov eax, dword [esp + 0x2c]
push 0
push esi
push eax
call fcn.0040e0f0
add esp, 0xc
test eax, eax
je 0x41080d
mov ecx, dword [esp + 0x28]
push esi
lea edi, [ebp + ecx*2]
push edi
call fcn.00423e5f
mov ebx, dword [esp + 0x20]
add esp, 8
test ebx, ebx
je 0x4107da
push ebp
call fcn.00423e84
lea esi, [ebp + eax*2]
push ebx
mov word [esi], 0x2f
add esi, 2
push esi
call fcn.00423e5f
push esi
push ebp
call fcn.004105d0
add esp, 0x14
mov dword [esp + 0x10], eax
jmp 0x4107f1
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
push eax
push 0
push ebp
call fcn.004114a0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
mov word [edi], 0
jne 0x410804
mov dword [esp + 0x20], 1
jmp 0x410809
cmp eax, 0xffffffff
jne 0x41083e
mov edi, dword [esp + 0x14]
push edi
call fcn.004109e0
mov esi, eax
add esp, 4
test esi, esi
jne 0x410757
jmp 0x410842
test ebx, ebx
je 0x41082e
mov cx, word [esp + 0x1c]
mov word [ebx], cx
mov eax, edi
neg eax
sbb eax, eax
and eax, 5
dec eax
mov dword [esp + 0x10], eax
jmp 0x410846
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
test edi, edi
je 0x410853
push edi
call fcn.004109c0
add esp, 4
test esi, esi
je 0x41085d
mov word [esi - 2], 0x2f
test ebp, ebp
je 0x41086a
push ebp
call fcn.00423252
add esp, 4
cmp dword [esp + 0x10], 0xffffffff
jne 0x410881
mov eax, dword [esp + 0x20]
test eax, eax
je 0x410881
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret