Function at 0xca434
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x65
push 0
push 0
dec ecx
jne 0xca43c
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0xcadd5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
inc dword [eax - 4]
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.000732d4
lea eax, [ebp - 0x264]
xor ecx, ecx
mov edx, 0x250
call fcn.00012b24
mov dword [ebp - 8], 0xffffffff
xor eax, eax
push ebp
push 0xca9e1
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x264]
push eax
lea eax, [ebp - 0x268]
mov ecx, 0xcade8
mov edx, dword [ebp - 0x10]
call fcn.00014534
mov eax, dword [ebp - 0x268]
call fcn.000144b8
push eax
call sub.kernel32.dll_FindFirstFileW
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
je 0xca9bd
test byte [ebp - 0x264], 0x10
jne 0xca6dd
mov eax, dword [ebp + 8]
cmp byte [eax + 8], 0
jne 0xca528
lea eax, [ebp - 0x274]
lea edx, [ebp - 0x238]
mov ecx, 0x104
call fcn.00014428
mov eax, dword [ebp - 0x274]
lea edx, [ebp - 0x270]
call fcn.0007356c
mov eax, dword [ebp - 0x270]
lea edx, [ebp - 0x26c]
call fcn.00073df8
mov eax, dword [ebp - 0x26c]
mov edx, 0xcadf4
call fcn.000145e0
je 0xca9a5
lea eax, [ebp - 0x278]
lea edx, [ebp - 0x238]
mov ecx, 0x104
call fcn.00014428
mov ecx, dword [ebp - 0x278]
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.00014534
push 0x80
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_SetFileAttributesW
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_DeleteFileW
test eax, eax
jne 0xca9a5
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
inc dword [eax - 8]
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja 0xca613
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0xca613
push 0xcae04
push dword [ebp - 0xc]
lea edx, [ebp - 0x288]
mov eax, 0xcae28
call fcn.00078120
lea eax, [ebp - 0x288]
push eax
lea edx, [ebp - 0x28c]
mov eax, dword [ebp - 0x14]
call fcn.000747a0
mov edx, dword [ebp - 0x28c]
pop eax
call fcn.00013eec
mov edx, dword [ebp - 0x288]
lea eax, [ebp - 0x284]
call fcn.00014444
push dword [ebp - 0x284]
lea eax, [ebp - 0x280]
mov edx, 3
call fcn.00014598
mov edx, dword [ebp - 0x280]
lea ecx, [ebp - 0x27c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.0008098c
push 0
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_SetFileAttributesW
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_DeleteFileW
test eax, eax
jne 0xca9a5
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
inc dword [eax - 8]
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja 0xca9a5
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0xca9a5
push 0xcae30
push dword [ebp - 0xc]
lea edx, [ebp - 0x29c]
mov eax, 0xcae28
call fcn.00078120
lea eax, [ebp - 0x29c]
push eax
lea edx, [ebp - 0x2a0]
mov eax, dword [ebp - 0x14]
call fcn.000747a0
mov edx, dword [ebp - 0x2a0]
pop eax
call fcn.00013eec
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x298]
call fcn.00014444
push dword [ebp - 0x298]
lea eax, [ebp - 0x294]
mov edx, 3
call fcn.00014598
mov edx, dword [ebp - 0x294]
lea ecx, [ebp - 0x290]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.0008098c
jmp 0xca9a5
lea eax, [ebp - 0xc]
lea edx, [ebp - 0x238]
mov ecx, 0x104
call fcn.00014428
mov eax, dword [ebp - 0xc]
mov edx, 0xcae58
call fcn.000145e0
je 0xca9a5
mov eax, dword [ebp - 0xc]
mov edx, 0xcae60
call fcn.000145e0
je 0xca9a5
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0x3e8
jae 0xca9a5
lea eax, [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.00014534
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0xc]
call fcn.000ca434
pop ecx
push 0x80
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_SetFileAttributesW
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_RemoveDirectoryW
test eax, eax
jne 0xca9a5
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
je 0xca9a5
mov eax, dword [ebp + 8]
inc dword [eax - 8]
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja 0xca80f
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0xca80f
push 0xcae6c
push dword [ebp - 0xc]
lea edx, [ebp - 0x2b0]
mov eax, 0xcae28
call fcn.00078120
lea eax, [ebp - 0x2b0]
push eax
lea edx, [ebp - 0x2b4]
mov eax, dword [ebp - 0x14]
call fcn.000747a0
mov edx, dword [ebp - 0x2b4]
pop eax
call fcn.00013eec
mov edx, dword [ebp - 0x2b0]
lea eax, [ebp - 0x2ac]
call fcn.00014444
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x2a8]
mov edx, 3
call fcn.00014598
mov edx, dword [ebp - 0x2a8]
lea ecx, [ebp - 0x2a4]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.0008098c
push 0x10
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_SetFileAttributesW
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_RemoveDirectoryW
test eax, eax
jne 0xca9a5
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
je 0xca8da
mov eax, dword [ebp + 8]
inc dword [eax - 8]
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja 0xca8da
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0xca8da
push 0xcae9c
push dword [ebp - 0xc]
lea edx, [ebp - 0x2c4]
mov eax, 0xcae28
call fcn.00078120
lea eax, [ebp - 0x2c4]
push eax
lea edx, [ebp - 0x2c8]
mov eax, dword [ebp - 0x14]
call fcn.000747a0
mov edx, dword [ebp - 0x2c8]
pop eax
call fcn.00013eec
mov edx, dword [ebp - 0x2c4]
lea eax, [ebp - 0x2c0]
call fcn.00014444
push dword [ebp - 0x2c0]
lea eax, [ebp - 0x2bc]
mov edx, 3
call fcn.00014598
mov edx, dword [ebp - 0x2bc]
lea ecx, [ebp - 0x2b8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.0008098c
push 0
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_SetFileAttributesW
mov eax, dword [ebp - 0xc]
call fcn.000144b8
push eax
call sub.kernel32.dll_RemoveDirectoryW
test eax, eax
jne 0xca9a5
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
je 0xca9a5
mov eax, dword [ebp + 8]
inc dword [eax - 8]
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja 0xca9a5
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0xca9a5
push 0xcaecc
push dword [ebp - 0xc]
lea edx, [ebp - 0x2d8]
mov eax, 0xcae28
call fcn.00078120
lea eax, [ebp - 0x2d8]
push eax
lea edx, [ebp - 0x2dc]
mov eax, dword [ebp - 0x14]
call fcn.000747a0
mov edx, dword [ebp - 0x2dc]
pop eax
call fcn.00013eec
mov edx, dword [ebp - 0x2d8]
lea eax, [ebp - 0x2d4]
call fcn.00014444
push dword [ebp - 0x2d4]
lea eax, [ebp - 0x2d0]
mov edx, 3
call fcn.00014598
mov edx, dword [ebp - 0x2d0]
lea ecx, [ebp - 0x2cc]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.0008098c
lea eax, [ebp - 0x264]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_FindNextFileW
test eax, eax
jne 0xca4c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xca9e8
cmp dword [ebp - 8], 0xffffffff
je 0xca9d9
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_FindClose_1
mov dword [ebp - 8], 0xffffffff
ret