Function at 0x40eabb
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push 0x2cc
mov eax, 0x4397a8
call fcn.0041f076
mov ebx, dword [ebp + 8]
xor edi, edi
cmp dword [ebx + 0x14], edi
jne 0x40eadc
xor al, al
call fcn.0041f0f9
ret
push ebx
lea ecx, [ebp - 0x64]
call fcn.00405c66
mov dword [ebp - 4], edi
mov eax, dword [ebx + 0x14]
dec eax
push eax
mov ecx, ebx
call fcn.00403e3f
cmp word [eax], 0x5c
je 0x40eb06
push 0x5c
push 1
lea ecx, [ebp - 0x64]
call fcn.004055ed
push 0x441064
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00406973
add esp, 0xc
mov byte [ebp - 4], 1
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x40eb2b
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x2b4]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x2bc], eax
mov esi, str.DeleteDirReal
cmp eax, 0xffffffff
je 0x40ec8e
lea eax, [ebp - 0x288]
push 0x440804
push eax
call fcn.00422481
pop ecx
pop ecx
test eax, eax
je 0x40ec67
lea eax, [ebp - 0x288]
push 0x441040
push eax
call fcn.00422481
pop ecx
pop ecx
test eax, eax
je 0x40ec67
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00406973
add esp, 0xc
mov byte [ebp - 4], 2
test byte [ebp - 0x2b4], 0x10
mov eax, dword [ebp - 0x28]
je 0x40ebe4
cmp dword [ebp - 0x14], 8
jae 0x40ebb3
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x2d8]
call fcn.004062e4
mov byte [ebp - 4], 3
lea eax, [ebp - 0x2d8]
push eax
call fcn.0040eabb
pop ecx
mov byte [ebp - 4], 2
push edi
push 1
lea ecx, [ebp - 0x2d8]
call fcn.004048ea
jmp 0x40ec58
cmp dword [ebp - 0x14], 8
jae 0x40ebed
lea eax, [ebp - 0x28]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x40ec45
push 1
sub esp, 0x1c
lea eax, [ebp - 0x2c]
mov ecx, esp
mov dword [ebp - 0x2b8], esp
push eax
call fcn.00405c66
mov byte [ebp - 4], 4
push str._XmpSetup_del_file
push edi
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov byte [ebp - 4], 2
mov ecx, eax
call fcn.00405483
mov ecx, eax
call fcn.0040b982
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x40ec51
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 1
push edi
push 1
lea ecx, [ebp - 0x2c]
call fcn.004048ea
lea eax, [ebp - 0x2b4]
push eax
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40eb4d
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
call fcn.00406c58
pop ecx
mov edi, str._XmpSetup_del_dir
test eax, eax
jne 0x40ecd9
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2b8], esp
push ebx
call fcn.00405c66
mov byte [ebp - 4], 5
push edi
push 0
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov byte [ebp - 4], 1
mov ecx, eax
call fcn.00405483
mov ecx, eax
call fcn.0040b982
cmp dword [ebx + 0x18], 8
jb 0x40ece4
mov eax, dword [ebx + 4]
jmp 0x40ece7
lea eax, [ebx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x40ed1b
mov bl, 1
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.004048ea
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x64]
call fcn.004048ea
mov al, bl
jmp 0x40ead6
push esi
call fcn.00406c58
pop ecx
test eax, eax
jne 0x40ed87
push 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._last_error
push str._failed
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2b8], esp
push ebx
call fcn.00405c66
mov byte [ebp - 4], 6
push edi
push 0
push esi
call fcn.0040af0a
pop ecx
pop ecx
mov ecx, eax
call fcn.0040cf55
mov byte [ebp - 4], 1
mov ecx, eax
call fcn.00405483
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.0040cf55
mov ecx, eax
call fcn.00401342
mov ecx, eax
call fcn.0040b982
xor bl, bl
jmp 0x40ecf4