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

Disassembly:
mov eax, 0x13043ee0
call fcn.130251dc
sub esp, 0x26c
push ebx
push esi
push edi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x10], esp
call fcn.130386f8
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
and dword [ebp - 4], 0
and dword [eax], 0
test esi, esi
je 0x13015cfc
cmp byte [esi], 0
je 0x13015cfc
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x13015cfc
push 0x20
push esi
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 1
call fcn.1303a8ab
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 2
call fcn.1303ad02
mov edi, eax
lea esi, [edi + 1]
push esi
call fcn.1302722b
mov ebx, eax
push esi
push 0
push ebx
mov dword [ebp - 0x18], ebx
call fcn.13025750
add esp, 0x10
lea ecx, [ebp - 0x3c]
push edi
push ebx
call fcn.1303ab25
cmp edi, eax
jne 0x13015cb7
push str..esf
push dword [ebp + 8]
call fcn.13025570
pop ecx
test eax, eax
pop ecx
jne 0x13015ccc
push str..ESF
push dword [ebp + 8]
call fcn.13025570
pop ecx
test eax, eax
pop ecx
jne 0x13015ccc
mov esi, ebx
lea edi, [ebp - 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x78], 0xa0
jne 0x13015cb7
cmp word [ebp - 0x76], 1
jne 0x13015cb7
lea esi, [ebx + 0x10]
call fcn.13015d25
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x2c]
call fcn.1303878b
cmp byte [esi], 0xa2
jne 0x13015cb7
mov bl, byte [esi + 1]
inc esi
inc esi
and byte [ebp + 0xb], 0
cmp byte [ebp + 0xb], bl
jae 0x13015bcf
mov al, byte [esi]
inc esi
movzx edi, al
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x178]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x178]
lea ecx, [ebp - 0x2c]
push eax
push dword [ebp - 0x24]
call fcn.1303895c
add esi, edi
inc byte [ebp + 0xb]
jmp 0x13015b99
push 0x400
lea ecx, [ebp - 0x68]
xor ebx, ebx
call fcn.1303fc9c
mov byte [ebp - 4], 3
mov al, byte [esi]
test al, al
je 0x13015c85
test ebx, ebx
jne 0x13015c85
movzx eax, al
inc esi
sub eax, 0xa1
je 0x13015c7d
sub eax, 0xf
je 0x13015c58
dec eax
je 0x13015c47
dec eax
je 0x13015c39
dec eax
jne 0x13015be2
mov al, byte [esi]
inc esi
movzx edi, al
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x278]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x278]
push edi
push eax
lea ecx, [ebp - 0x68]
call fcn.1303fe58
add esi, edi
jmp 0x13015be2
mov al, byte [esi]
inc esi
mov byte [ebp + 0xb], al
push 1
lea eax, [ebp + 0xb]
push eax
jmp 0x13015c70
mov al, byte [esi]
mov ecx, dword [ebp - 0x28]
movzx eax, al
inc esi
mov eax, dword [ecx + eax*4]
push dword [eax - 8]
jmp 0x13015c44
mov al, byte [esi]
inc esi
movzx eax, al
lea eax, [eax + eax*2]
shl eax, 2
push dword [eax + 0x130587e8]
push dword [eax + 0x130587e4]
lea ecx, [ebp - 0x68]
call fcn.1303fe58
jmp 0x13015be2
push 1
pop ebx
jmp 0x13015be2
and byte [ebp - 0x11], 0
lea eax, [ebp - 0x11]
push 1
push eax
lea ecx, [ebp - 0x68]
call fcn.1303fe58
test ebx, ebx
je 0x13015ca8
lea ecx, [ebp - 0x68]
call fcn.1303fce8
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 2
call fcn.1303fcfa
mov ebx, dword [ebp - 0x18]
push ebx
call fcn.13025f43
pop ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c]
call fcn.1303a94b
jmp 0x13015cfc
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 1
mov dword [eax], ebx
call fcn.1303a94b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.1303872b
push 1
pop eax
jmp 0x13015d16
mov ecx, dword [ebp + 0xc]
xor eax, eax
cmp dword [ecx], eax
lea ecx, [ebp - 0x2c]
setne al
or dword [ebp - 4], 0xffffffff
mov esi, eax
call fcn.1303872b
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret