Function at 0x403fe5
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
lea ebp, [esp - 0x3054]
mov eax, 0x3054
call fcn.00413d20
push 0xffffffffffffffff
push 0x43ecdb
mov eax, dword fs:[0]
push eax
push ecx
push ecx
mov eax, dword [0x455834]
xor eax, ebp
mov dword [ebp + 0x3050], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x3060]
mov esi, dword [ebp + 0x305c]
push 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x3064]
push 0x441268
push esi
mov dword [ebp - 0x10], eax
call fcn.0041f7e0
add esp, 0xc
test eax, eax
je 0x40423e
push esi
call fcn.0041f750
pop ecx
test eax, eax
je 0x40423e
push esi
push 0x44126c
call fcn.0040f3f5
push esi
call fcn.0041f750
add esp, 0xc
test eax, eax
je 0x40423e
lea eax, [ebp + 0x170]
push esi
push eax
call fcn.0041f650
lea eax, [ebp + 0x170]
push eax
call fcn.0041f750
add esp, 0xc
cmp byte [ebp + eax + 0x170], 0x5c
je 0x4040b5
lea eax, [ebp + 0x170]
push 0x441284
push eax
call fcn.0041f660
pop ecx
pop ecx
lea eax, [ebp + 0x170]
push 0x441288
push eax
call fcn.0041f660
pop ecx
pop ecx
lea eax, [ebp]
push eax
lea eax, [ebp + 0x170]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40423e
mov ebx, dword [ebp + 0x3068]
lea eax, [ebp + 0x2c]
push 0x441268
push eax
call fcn.00420470
pop ecx
pop ecx
test eax, eax
je 0x404224
lea eax, [ebp + 0x2c]
push 0x44128c
push eax
call fcn.00420470
pop ecx
pop ecx
test eax, eax
je 0x404224
lea eax, [ebp + 0x18e0]
push esi
push eax
call fcn.0041f650
lea eax, [ebp + 0x18e0]
push eax
call fcn.0041f750
add esp, 0xc
cmp byte [ebp + eax + 0x18e0], 0x5c
je 0x404153
lea eax, [ebp + 0x18e0]
push 0x441284
push eax
call fcn.0041f660
pop ecx
pop ecx
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x18e0]
push eax
call fcn.0041f660
test byte [ebp], 0x10
lea eax, [ebp + 0x18e0]
pop ecx
pop ecx
jbe 0x4041d5
push ebx
push eax
push str.attempting_to_remove__S___d_
call fcn.0040f3f5
add esp, 0xc
test ebx, ebx
jle 0x40419d
lea eax, [ebx - 1]
push eax
push dword [ebp - 0x10]
lea eax, [ebp + 0x18e0]
push dword [ebp - 0x14]
push eax
call fcn.00403fe5
add esp, 0x10
lea eax, [ebp + 0x18e0]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x404224
lea eax, [ebp + 0x18e0]
push eax
lea ecx, [ebp + 0x158]
call fcn.00403581
mov ecx, dword [ebp - 0x10]
and dword [ebp - 4], 0
push eax
call fcn.00403455
lea ecx, [ebp + 0x158]
jmp 0x40421b
push eax
push str.attempting_to_delete__S
call fcn.0040f3f5
pop ecx
pop ecx
lea eax, [ebp + 0x18e0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x404224
lea eax, [ebp + 0x18e0]
push eax
lea ecx, [ebp + 0x140]
call fcn.00403581
mov ecx, dword [ebp - 0x14]
push eax
mov dword [ebp - 4], 1
call fcn.00403455
lea ecx, [ebp + 0x140]
or dword [ebp - 4], 0xffffffff
call fcn.004036e9
lea eax, [ebp]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4040ea
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3050]
xor ecx, ebp
call fcn.00413c4b
add ebp, 0x3054
leave
ret