Function at 0x2e012d9b
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 [0x2e022064]
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 0x2e012def
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012de9
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e01306d
test bl, 0x10
je 0x2e013028
test bl, 1
je 0x2e012e2d
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x2e012e2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012e27
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e01306d
xor esi, esi
cmp dword [ebp + 0xc], esi
jne 0x2e012e3d
cmp dword [ebp + 0x10], esi
je 0x2e01304c
push 0xffffffffffffffff
push edi
mov edi, 0x104
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e014486
add esp, 0x10
push 0x50
pop ebx
cmp eax, ebx
jne 0x2e012e66
mov esi, 0x8007007a
jmp 0x2e01306d
push 0xffffffffffffffff
push 0x2e0023ec
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e01431e
add esp, 0x10
cmp eax, ebx
je 0x2e012e5c
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 0x2e012ec0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012eba
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e01306d
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpW]
push 0x2e0022a0
lea eax, [ebp - 0x430]
push eax
call esi
test eax, eax
je 0x2e012fe5
push 0x2e0023e4
lea eax, [ebp - 0x430]
push eax
call esi
test eax, eax
je 0x2e012fe5
push 0xffffffffffffffff
push dword [ebp - 0x464]
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e014486
add esp, 0x10
cmp eax, ebx
je 0x2e01300f
push 0xffffffffffffffff
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e01431e
add esp, 0x10
cmp eax, ebx
je 0x2e01300f
cmp dword [ebp + 0x10], 0
je 0x2e012f77
test byte [ebp - 0x45c], 0x10
je 0x2e012f77
push 0xffffffffffffffff
push 0x2e0017b0
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.2e01431e
add esp, 0x10
cmp eax, ebx
je 0x2e01300f
push dword [ebp + 0x10]
lea eax, [ebp - 0x20c]
push dword [ebp + 0xc]
push eax
call fcn.2e012d9b
mov esi, eax
jmp 0x2e012fe1
cmp dword [ebp + 0xc], 0
je 0x2e012fe5
test byte [ebp - 0x45c], 7
je 0x2e012fb8
push 0x80
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x2e012fb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012fb6
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e01302d
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x2e012fe5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x2e012fe3
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jl 0x2e01302d
lea eax, [ebp - 0x45c]
push eax
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x2e012ec0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x2e013016
xor esi, esi
jmp 0x2e01302d
mov esi, 0x8007007a
jmp 0x2e01302d
test eax, eax
jle 0x2e013024
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
jmp 0x2e01302d
mov esi, 0x8000ffff
cmp dword [ebp - 0x460], 0xffffffff
je 0x2e013042
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindClose]
test esi, esi
jl 0x2e01306d
mov edi, dword [ebp - 0x464]
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x2e01306d
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x2e01306b
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.2e0142db
leave
ret 0xc