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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x42caa0
push eax
mov dword fs:[0], esp
sub esp, 0x20
cmp byte [0x4395bd], 0
push ebx
push ebp
push esi
push edi
mov edi, ecx
push edi
jne 0x41161d
lea esi, [esp + 0x28]
call fcn.0040ef80
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esi, eax
mov eax, dword [esp + 0x24]
push eax
call fcn.004259b6
add esp, 4
mov eax, esi
jmp 0x411628
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x411631
cmp eax, 0xffffffff
je 0x411631
test al, 0x10
jne 0x411687
mov eax, edi
call fcn.004139c0
test al, al
jne 0x411816
mov eax, edi
call fcn.00413bf0
push edi
lea edi, [esp + 0x1c]
mov dword [esp + 0x18], eax
call fcn.0040e7d0
mov ecx, edi
mov dword [esp + 0x38], 0
call fcn.0040ed70
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
test eax, eax
js 0x4116a8
lea ecx, [ebx - 1]
cmp eax, ecx
jne 0x4116a8
cmp ebx, 1
jne 0x41169c
mov ecx, edi
push ecx
call fcn.004259b6
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov ebx, ecx
xor edx, edx
mov dword [esp + 0x1c], ebx
mov word [edi + ecx*2], dx
lea eax, [esp + 0x18]
push eax
lea esi, [esp + 0x28]
call fcn.0040e8d0
mov byte [esp + 0x38], 1
mov esi, ebx
call fcn.00411460
test al, al
jne 0x411765
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebp
cmp eax, 0xb7
je 0x411800
test ebx, ebx
je 0x411800
movzx ecx, word [edi + ebx*2 - 2]
lea eax, [edi + ebx*2 - 2]
cmp ecx, 0x5c
je 0x41170d
cmp cx, 0x2f
je 0x41170d
cmp eax, edi
je 0x411800
movzx ecx, word [eax - 2]
sub eax, 2
cmp ecx, 0x5c
jne 0x4116f3
sub eax, edi
sar eax, 1
mov esi, eax
js 0x411800
test esi, esi
je 0x411800
cmp esi, 1
jne 0x41173b
movzx eax, word [edi]
cmp eax, 0x5c
je 0x4117f2
cmp eax, 0x2f
je 0x4117f2
lea ecx, [esi + 1]
cmp dword [esp + 0x14], ecx
jae 0x4117f9
cmp esi, ebx
jae 0x411758
mov ebx, esi
xor edx, edx
mov dword [esp + 0x1c], ebx
mov word [edi + esi*2], dx
call fcn.00411460
test al, al
je 0x4116d0
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
cmp esi, ebp
jge 0x4117c8
movzx eax, word [ebx + esi*2 + 2]
lea edx, [ebx + esi*2 + 2]
mov ecx, edx
test ax, ax
je 0x4117a3
cmp ax, 0x5c
je 0x41179d
cmp ax, 0x2f
je 0x41179d
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x411781
mov esi, ebp
jmp 0x4117ab
sub ecx, edx
sar ecx, 1
jns 0x4117a7
mov esi, ebp
jmp 0x4117ab
lea esi, [esi + ecx + 1]
push ebx
lea edi, [esp + 0x1c]
call fcn.0040ea50
mov edi, dword [esp + 0x18]
mov eax, edi
call fcn.00411400
test al, al
je 0x4117ef
cmp esi, ebp
jl 0x411771
push ebx
call fcn.004259b6
add esp, 4
push edi
call fcn.004259b6
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
push ebx
jmp 0x411805
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x411805
mov edx, dword [esp + 0x24]
push edx
jmp 0x411805
mov eax, dword [esp + 0x24]
push eax
call fcn.004259b6
add esp, 4
push edi
call fcn.004259b6
add esp, 4
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
xor al, al
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret