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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov ebx, dword [ebp + 8]
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esp + 0x30], eax
mov edi, 0x1126
push ebx
call fcn.005a27a0
add esp, 4
test al, al
je 0x5a28f1
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.00512ee3
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
lea esi, [esp + 0x18]
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov ecx, ebx
mov edx, esi
call fcn.005a2b00
mov ebx, eax
mov ecx, esi
call fcn.004da8c0
mov bh, al
mov ecx, esi
mov edx, esi
call fcn.005a2ba0
test bh, bh
jne 0x5a2942
test bl, bl
jne 0x5a2942
mov edi, 0x7b
test al, al
jne 0x5a2942
cmp byte [esp + 0x23], 0
jns 0x5a28dc
push dword [esp + 0x18]
call fcn.0050fc7c
add esp, 4
jmp 0x5a28dc
mov byte [esp + 3], bh
test bh, bh
je 0x5a2a5d
xor ebx, ebx
dec ebx
lea edi, [esp + 0x24]
mov dword [esp + 4], 0
lea ecx, [esp + 0xc]
push edi
push ebx
push 0
push esi
call fcn.0040e560
cmp byte [esp + 0x23], 0
jns 0x5a297e
push dword [esp + 0x18]
call fcn.0050fc7c
add esp, 4
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
movsd xmm0, qword [esp + 0xc]
movsd qword [esp + 0x18], xmm0
cmp byte [esp + 0x23], 0
mov eax, esi
jns 0x5a299f
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x5a29cf
bt eax, 0xa
jb 0x5a2a40
mov ecx, esi
push 0xffffffffffffffff
push 0x5c
call fcn.00562920
mov ebx, eax
mov al, 1
mov dword [esp + 4], eax
cmp ebx, 2
ja 0x5a295d
jmp 0x5a2a36
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea esi, [eax - 2]
cmp esi, 2
jb 0x5a29e4
cmp edi, 0x7b
jne 0x5a2a08
xor ecx, ecx
cmp esi, 2
jae 0x5a29f5
lea esi, [esp + 0x18]
lea edi, [esp + 0x24]
jmp 0x5a29b5
cmp edi, 0x7b
lea esi, [esp + 0x18]
je 0x5a29ef
test ecx, ecx
lea edi, [esp + 0x24]
je 0x5a29c8
jmp 0x5a2a49
test byte [esp + 4], 1
sete al
or al, byte [esp + 3]
jne 0x5a2a2d
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
push 0x5c
call fcn.00562920
mov ecx, 2
cmp eax, 3
je 0x5a29e6
mov dword [esp + 8], edi
xor ecx, ecx
inc ecx
jmp 0x5a29e6
mov edi, 0x1126
jmp 0x5a292d
xor eax, eax
mov edi, eax
jmp 0x5a292d
mov edi, 0x1126
cmp ecx, 2
mov eax, dword [esp + 8]
je 0x5a292d
jmp 0x5a2a42
lea ebx, [esp + 0x1c]
lea edi, [esp + 0xc]
mov ecx, edi
push 0x5eb3a0
call fcn.005477d0
movzx eax, byte [ebx + 7]
mov edx, eax
and edx, 0x7f
test al, al
cmovs edx, dword [ebx]
mov eax, dword [ebx - 4]
cmovns eax, esi
mov ecx, edi
push edx
push eax
call fcn.00410600
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 7]
mov dword [esp + 0x2b], edx
mov dword [esp + 0x28], ecx
mov dl, byte [eax + 0xb]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
cmp byte [ebx + 7], 0
jns 0x5a2ac5
push dword [esp + 0x18]
mov byte [esp + 8], dl
call fcn.0050fc7c
mov dl, byte [esp + 8]
add esp, 4
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2b]
mov dword [ebx + 3], ecx
mov dword [ebx], eax
mov byte [esp + 0x23], dl
cmp byte [esp + 0x17], 0
jns 0x5a2aed
push dword [esp + 0xc]
call fcn.0050fc7c
add esp, 4
lea esi, [esp + 0x18]
jmp 0x5a294e