Function at 0x4ca8c0
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1014
call fcn.00520bc0
mov eax, dword [0x5a9008]
xor eax, esp
mov dword [esp + 0x1010], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 8]
cmp byte [ecx + 0x62d1], 0
je 0x4ca905
push eax
push 0x574454
call fcn.0040f930
jmp 0x4cab2d
cmp byte [ecx + 0x62aa], 0
lea edi, [esi + 0x10f6]
push dword [ebx + 0x33ec]
sete dl
mov ecx, edi
call fcn.004d6090
add esp, 4
test eax, eax
je 0x4caab1
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
jne 0x4ca964
push ecx
lea edx, [esp + 0x1c]
mov ecx, edi
call fcn.004cbc50
add esp, 4
test al, al
je 0x4ca95d
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x4ca961
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
setne cl
mov byte [esp + 0x13], cl
je 0x4ca9bf
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4ca99c
push ecx
lea edx, [esp + 0x1c]
mov ecx, edi
call fcn.004cbc50
add esp, 4
test al, al
je 0x4ca9a4
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4ca9a4
test al, 0x10
jne 0x4caa3b
push 0
sub esp, 0xc
lea eax, [esp + 0x23]
xor edx, edx
push eax
push ecx
mov ecx, dword [esi + 8]
push edi
call fcn.004e26f0
add esp, 0x1c
xor cl, cl
mov byte [esp + 0x13], cl
mov ecx, edi
call fcn.004d61c0
mov eax, dword [esi + 8]
mov ecx, edi
push dword [ebx + 0x33ec]
cmp byte [eax + 0x62aa], 0
sete dl
call fcn.004d6090
add esp, 4
test eax, eax
je 0x4caab1
push 0x7ff
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.0053048c
add esp, 0xc
xor eax, eax
mov ecx, edi
mov word [esp + 0x1016], ax
call fcn.004cbae0
mov ecx, edi
call fcn.004d61c0
mov eax, dword [esi + 8]
mov ecx, edi
push dword [ebx + 0x33ec]
cmp byte [eax + 0x62aa], 0
sete dl
call fcn.004d6090
add esp, 4
test eax, eax
je 0x4caab1
cmp byte [esp + 0x13], 0
mov eax, dword [esi + 8]
je 0x4caa88
cmp byte [eax + 0x62aa], 0
jne 0x4caabf
mov eax, dword [ebx + 0x33ec]
push eax
push edi
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x4caabf
push ecx
lea edx, [esp + 0x1c]
mov ecx, edi
call fcn.004cbc50
add esp, 4
test al, al
je 0x4caabf
push dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x4caabf
mov dword [eax + 0x93b4], 0x10
inc dword [0x5aa7fc]
mov dword [0x5aa7f8], 9
cmp byte [esi + 0x10f5], 0
je 0x4cab30
jmp 0x4caac6
push edi
push 0x574454
call fcn.0040f930
add esp, 8
mov byte [esi + 0x10f5], 1
mov eax, dword [esi + 8]
cmp byte [eax + 0x62a9], 0
je 0x4caaee
test dword [ebx + 0x33ec], 0x800
je 0x4caaee
call fcn.004e2c00
test eax, eax
je 0x4caaee
mov ecx, edi
call fcn.004d6550
mov esi, dword [esi + 8]
lea eax, [ebx + 0x4418]
xor ecx, ecx
cmp dword [esi + 0x73a8], ecx
cmovne ecx, eax
lea eax, [ebx + 0x4410]
push ecx
xor ecx, ecx
cmp dword [esi + 0x73a4], ecx
cmovne ecx, eax
xor edx, edx
cmp dword [esi + 0x73a0], edx
lea eax, [ebx + 0x4408]
push ecx
cmovne edx, eax
mov ecx, edi
call fcn.004d62b0
add esp, 8
mov ecx, dword [esp + 0x101c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004ef615
mov esp, ebp
pop ebp
ret 8