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

Disassembly:
push 0x1ac
mov eax, 0x421828
call fcn.00420a4f
mov ebx, ecx
xor eax, eax
lea edi, [ebp - 0x30]
stosd dword es:[edi], eax
xor edx, edx
push 0xf
pop esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], esi
mov byte [ebp - 0x30], dl
mov dword [ebp - 4], edx
lea edi, [ebp - 0x48]
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], esi
mov byte [ebp - 0x48], dl
mov byte [ebp - 4], 1
mov al, 1
mov dword [ebp - 0x18], 0x2f2b5d01
mov ecx, edx
mov word [ebp - 0x14], 0x2b
movsx eax, al
and eax, 0x8000000f
jns 0x40c6f2
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x17], al
inc ecx
cmp ecx, 4
jae 0x40c701
mov al, byte [ebp - 0x18]
jmp 0x40c6e3
lea eax, [ebp - 0x17]
mov byte [ebp - 0x13], dl
push eax
mov edx, ebx
lea ecx, [ebp - 0x60]
call fcn.00407c78
pop ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.00406612
lea ecx, [ebp - 0x60]
call fcn.0040400e
cmp dword [ebp - 0x34], esi
lea ecx, [ebp - 0x1b8]
lea eax, [ebp - 0x48]
cmova eax, dword [ebp - 0x48]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40c879
cmp byte [ebp - 0x18c], 0x2e
je 0x40c835
xor edx, edx
lea eax, [ebp - 0x30]
cmp dword [ebp - 0x1c], esi
mov cl, 0x60
mov dword [ebp - 0x20], edx
cmova eax, dword [ebp - 0x30]
mov byte [ebp - 0x16], dl
mov byte [eax], dl
mov al, 0x34
mov byte [ebp - 0x18], al
movsx eax, al
and eax, 0x8000000f
jns 0x40c77e
dec eax
or eax, 0xfffffff0
inc eax
sub cl, al
mov byte [ebp - 0x16], dl
lea eax, [ebp - 0x17]
mov byte [ebp - 0x17], cl
push eax
mov edx, ebx
lea ecx, [ebp - 0x78]
call fcn.00407c78
pop ecx
mov edx, eax
lea ecx, [ebp - 0x18c]
mov byte [ebp - 4], 2
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c7a4
sub ecx, esi
lea eax, [ebp - 0x18c]
push ecx
push eax
mov ecx, edx
call fcn.004052bb
push eax
lea ecx, [ebp - 0x60]
call fcn.00404031
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x30]
call fcn.00406612
lea ecx, [ebp - 0x60]
call fcn.0040400e
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 1
call fcn.0040400e
test byte [ebp - 0x1b8], 0x10
je 0x40c803
mov dl, 1
lea ecx, [ebp - 0x30]
call fcn.0040c691
mov esi, eax
test esi, esi
jne 0x40c87b
push 0xf
pop esi
jmp 0x40c835
push 0xf
pop esi
cmp dword [ebp - 0x1c], esi
lea eax, [ebp - 0x30]
push 0x80
cmova eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x40c879
cmp dword [ebp - 0x1c], esi
lea eax, [ebp - 0x30]
cmova eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
je 0x40c879
lea eax, [ebp - 0x1b8]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40c747
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, ebx
cmp dword [ebx + 0x14], esi
jbe 0x40c85b
mov eax, dword [ebx]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x40c879
cmp dword [ebx + 0x14], esi
jbe 0x40c872
mov ebx, dword [ebx]
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
xor esi, esi
mov edx, dword [ebp - 0x34]
push 0xf
pop edi
cmp edx, edi
jbe 0x40c88e
mov ecx, dword [ebp - 0x48]
inc edx
call fcn.004041fc
and dword [ebp - 0x38], 0
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x48], 0
cmp edx, edi
jbe 0x40c8a9
mov ecx, dword [ebp - 0x30]
inc edx
call fcn.004041fc
mov eax, esi
call fcn.00420a0d
ret