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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x464
mov eax, dword [0x2e021014]
xor eax, ebp
mov dword [ebp - 4], eax
or dword [ebp - 0x460], 0xffffffff
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0x464], edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x2e012aca
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012ac4
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e012d48
test bl, 0x10
je 0x2e012d03
test bl, 1
je 0x2e012b08
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x2e012b08
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012b02
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e012d48
xor esi, esi
cmp dword [ebp + 0xc], esi
jne 0x2e012b18
cmp dword [ebp + 0x10], esi
je 0x2e012d27
push 0xffffffffffffffff
push edi
mov edi, 0x104
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e014127
add esp, 0x10
push 0x50
pop ebx
cmp eax, ebx
jne 0x2e012b41
mov esi, 0x8007007a
jmp 0x2e012d48
push 0xffffffffffffffff
push 0x2e00239c
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e013fbf
add esp, 0x10
cmp eax, ebx
je 0x2e012b37
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x460], eax
cmp eax, 0xffffffff
jne 0x2e012b9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012b95
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e012d48
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpW]
push 0x2e002258
lea eax, [ebp - 0x430]
push eax
call esi
test eax, eax
je 0x2e012cc0
push 0x2e002394
lea eax, [ebp - 0x430]
push eax
call esi
test eax, eax
je 0x2e012cc0
push 0xffffffffffffffff
push dword [ebp - 0x464]
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e014127
add esp, 0x10
cmp eax, ebx
je 0x2e012cea
push 0xffffffffffffffff
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e013fbf
add esp, 0x10
cmp eax, ebx
je 0x2e012cea
cmp dword [ebp + 0x10], 0
je 0x2e012c52
test byte [ebp - 0x45c], 0x10
je 0x2e012c52
push 0xffffffffffffffff
push 0x2e0017f0
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e013fbf
add esp, 0x10
cmp eax, ebx
je 0x2e012cea
push dword [ebp + 0x10]
lea eax, [ebp - 0x20c]
push dword [ebp + 0xc]
push eax
call fcn.2e012a76
mov esi, eax
jmp 0x2e012cbc
cmp dword [ebp + 0xc], 0
je 0x2e012cc0
test byte [ebp - 0x45c], 7
je 0x2e012c93
push 0x80
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x2e012c93
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012c91
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e012d08
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x2e012cc0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012cbe
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e012d08
lea eax, [ebp - 0x45c]
push eax
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x2e012b9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x2e012cf1
xor esi, esi
jmp 0x2e012d08
mov esi, 0x8007007a
jmp 0x2e012d08
test eax, eax
jle 0x2e012cff
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
jmp 0x2e012d08
mov esi, 0x8000ffff
cmp dword [ebp - 0x460], 0xffffffff
je 0x2e012d1d
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindClose]
test esi, esi
jl 0x2e012d48
mov edi, dword [ebp - 0x464]
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x2e012d48
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x2e012d46
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.2e013f7c
leave
ret 0xc