Function at 0x4a0588
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, 0x30
mov ebx, dword [ebp + 8]
mov eax, dword [0x57ffac]
xor eax, ebp
mov dword [esp + 0x28], eax
mov esi, 0x1126
push ebx
call fcn.004a02a4
add esp, 4
test al, al
jne 0x4a07c0
xor eax, eax
lea esi, [esp + 0x10]
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov ecx, ebx
mov edx, esi
call fcn.004a07d5
mov ebx, eax
mov ecx, esi
call fcn.004a0892
mov bh, al
mov ecx, esi
mov edx, esi
call fcn.004a08ce
test bl, bl
jne 0x4a05f9
test bh, bh
jne 0x4a05f9
test al, al
jne 0x4a05f9
mov edi, 0x7b
jmp 0x4a07ac
test bh, bh
mov byte [esp + 3], bh
je 0x4a060a
lea esi, [esp + 0x10]
jmp 0x4a06cc
lea edi, [esp + 4]
mov ecx, edi
push 0x53d100
call fcn.0040241c
lea ecx, [esp + 0x14]
movzx eax, byte [ecx + 7]
test al, al
cmovs eax, dword [ecx]
lea esi, [esp + 0x10]
mov edx, dword [esi]
cmovns edx, esi
mov ecx, edi
push eax
push edx
call fcn.0041cf42
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 7]
mov dword [esp + 0x23], edx
mov dword [esp + 0x20], ecx
mov bl, byte [eax + 0xb]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
cmp byte [esi + 0xb], 0
js 0x4a066a
mov word [esp + 0x10], 0
mov byte [esp + 0x1b], 0
jmp 0x4a0696
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esp + 0x1b], 0
jns 0x4a0696
push dword [esp + 0x10]
call fcn.004fe838
add esp, 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x23]
lea edx, [esp + 0x14]
mov dword [edx + 3], ecx
mov dword [edx], eax
mov byte [esp + 0x1b], bl
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x23], eax
cmp byte [esp + 0xf], 0
jns 0x4a06cc
push dword [esp + 4]
call fcn.004fe838
add esp, 4
mov bl, 1
xor eax, eax
dec eax
lea edi, [esp + 0x10]
lea ecx, [esp + 4]
lea edx, [esp + 0x1c]
push edx
push eax
push 0
push edi
call fcn.0041cb56
cmp byte [esi + 0xb], 0
js 0x4a06fa
mov word [esp + 0x10], 0
mov byte [esi + 0xb], 0
jmp 0x4a0725
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esi + 0xb], 0
jns 0x4a0725
push dword [esp + 0x10]
call fcn.004fe838
add esp, 4
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
movsd xmm0, qword [esp + 4]
movsd qword [esp + 0x10], xmm0
cmp byte [esi + 0xb], 0
mov eax, esi
jns 0x4a0745
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4a0759
bt eax, 0xa
jae 0x4a076c
jmp 0x4a0789
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x4a076c
cmp eax, 0x7b
jne 0x4a078d
mov ecx, edi
push 0xffffffffffffffff
push 0x5c
call fcn.0041d6de
xor ebx, ebx
cmp eax, 2
ja 0x4a06d5
mov edi, 0x1126
jmp 0x4a07ac
xor edi, edi
jmp 0x4a07ac
mov cl, byte [esp + 3]
or cl, bl
mov edi, eax
test cl, 1
jne 0x4a07ac
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
push 0x5c
call fcn.0041d6de
cmp eax, 3
je 0x4a0782
cmp byte [esi + 0xb], 0
jns 0x4a07be
push dword [esp + 0x10]
call fcn.004fe838
add esp, 4
mov esi, edi
mov ecx, dword [esp + 0x28]
xor ecx, ebp
call fcn.004fe871
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret