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

Disassembly:
push 0x228
mov eax, 0x6d8b8e
call fcn.00432a44
mov ebx, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x22c], eax
test eax, eax
jne 0x59a187
mov eax, 0x80070057
jmp 0x59a3fe
and dword [eax], 0
lea eax, [ebx + 0x24]
cmp dword [eax], 0
mov dword [ebp - 0x228], eax
jne 0x59a3da
mov eax, dword [ebx + 0x34]
mov eax, dword [eax + 0x34]
cmp dword [eax + 0xf0], 0
jne 0x59a1eb
lea eax, [ebp - 0x21c]
push eax
call fcn.0059ae48
test eax, eax
jne 0x59a3fe
xor edx, edx
cmp dword [ebp - 0x21c], edx
je 0x59a1d2
inc edx
and dword [ebp - 0x21c], eax
jmp 0x59a1f4
mov eax, dword [ebx + 0x34]
xor ecx, ecx
mov eax, dword [eax + 0x34]
cmp dword [eax + 0xf8], ecx
sete cl
mov dword [ebp - 0x21c], ecx
jmp 0x59a1f4
and dword [ebp - 0x21c], 0
xor edx, edx
xor esi, esi
mov dword [ebp - 0x220], esi
and dword [ebp - 4], esi
test edx, edx
je 0x59a221
lea eax, [ebp - 0x220]
mov ecx, ebx
push eax
call fcn.005995d9
mov esi, dword [ebp - 0x220]
mov edi, eax
test edi, edi
je 0x59a3a1
mov eax, dword [ebx + 0x20]
lea edx, [ebp - 0x218]
push edx
push 0
push 0x104
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov edi, eax
test edi, edi
js 0x59a380
lea eax, [ebp - 0x218]
xor edi, edi
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x224], eax
cmp esi, eax
je 0x59a26e
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [ebp - 0x224]
mov dword [ebp - 0x220], esi
test esi, esi
jne 0x59a27c
mov edi, 0x8007000e
jmp 0x59a380
cmp dword [ebp - 0x21c], edi
je 0x59a3a1
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
push ecx
call fcn.004050cb
cmp eax, 0x80070003
je 0x59a2b8
cmp eax, 0x80070002
je 0x59a2b8
xor edi, edi
jmp 0x59a3a1
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x80]
push eax
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x21c], eax
mov byte [ebp - 4], 1
test eax, eax
jne 0x59a2ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00435aec
mov edi, eax
jmp 0x59a305
mov eax, dword [ebx + 0x20]
lea edx, [ebp - 0x234]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov edi, eax
test edi, edi
je 0x59a30d
mov ebx, dword [ebp - 0x21c]
jmp 0x59a36a
mov ebx, dword [ebp - 0x21c]
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [ebp - 0x234]
push ebx
call sub.PSAPI.DLL_GetModuleFileNameExW
lea ecx, [eax - 1]
cmp ecx, 0x102
ja 0x59a38d
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov dword [ebp - 0x224], eax
cmp esi, eax
je 0x59a361
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [ebp - 0x224]
mov dword [ebp - 0x220], esi
test esi, esi
jne 0x59a38f
mov edi, 0x8007000e
mov byte [ebp - 4], 0
test ebx, ebx
je 0x59a380
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x21c], 0
or dword [ebp - 4], 0xffffffff
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x59a3fc
xor edi, edi
mov byte [ebp - 4], 0
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x21c], 0
mov eax, dword [ebp - 0x228]
cmp dword [eax], 0
jne 0x59a3c5
test edi, edi
jne 0x59a3c5
push edi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
neg eax
sbb eax, eax
and esi, eax
mov dword [ebp - 0x220], esi
or dword [ebp - 4], 0xffffffff
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test edi, edi
jne 0x59a3fc
mov eax, dword [ebp - 0x228]
push dword [eax]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov eax, dword [ebp - 0x22c]
mov dword [eax], edi
neg edi
sbb edi, edi
and edi, 0x7ff8fff2
add edi, 0x8007000e
mov eax, edi
call fcn.00402698
ret 4