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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push esi
push edi
mov edi, dword [ebp + 8]
push edi
call fcn.00405edf
test byte [ebp + 0xc], 8
mov dword [ebp - 8], eax
je 0x405c18
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
neg eax
sbb eax, eax
inc eax
add dword [0x452b88], eax
jmp 0x405df7
push ebx
mov ebx, dword [ebp + 0xc]
and ebx, 1
mov dword [ebp - 4], ebx
je 0x405c36
test eax, eax
je 0x405d7b
test byte [ebp + 0xc], 2
je 0x405d7b
mov esi, 0x43d4d0
push edi
push esi
call fcn.004062fa
test ebx, ebx
je 0x405c53
push str..
push esi
call fcn.0040631d
jmp 0x405c59
push edi
call fcn.00405e44
push 0x40a268
push edi
call fcn.0040631d
push edi
call fcn.00406310
mov ebx, eax
lea eax, [ebp - 0x148]
push eax
push esi
add ebx, edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
je 0x405d71
lea eax, [ebp - 0x11c]
push 0x3f
push eax
lea esi, [ebp - 0x11c]
call fcn.00405e28
cmp byte [eax], 0
je 0x405caa
cmp byte [ebp - 0x18], 0
je 0x405caa
lea esi, [ebp - 0x18]
cmp byte [esi], 0x2e
jne 0x405cc2
mov al, byte [esi + 1]
cmp al, 0x2e
je 0x405d50
test al, al
je 0x405d50
push esi
push ebx
call fcn.004062fa
test byte [ebp - 0x148], 0x10
je 0x405ce7
mov eax, dword [ebp + 0xc]
and eax, 3
cmp al, 3
jne 0x405d50
push dword [ebp + 0xc]
push edi
call fcn.00405be4
jmp 0x405d50
push edi
push str.Delete:_DeleteFile___s__
call fcn.00406786
mov eax, dword [ebp - 0x148]
pop ecx
pop ecx
and al, 0xfe
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x405d48
test byte [ebp + 0xc], 4
push edi
je 0x405d34
push str.Delete:_DeleteFile_on_Reboot___s__
call fcn.00406786
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.004055f3
push 0
push edi
call fcn.00406041
jmp 0x405d50
push str.Delete:_DeleteFile_failed___s__
call fcn.00406786
inc dword [0x452b88]
pop ecx
pop ecx
jmp 0x405d50
push edi
push 0xfffffffffffffff2
call fcn.004055f3
lea eax, [ebp - 0x148]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x405c88
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 4], 0
je 0x405d7b
and byte [ebx - 1], 0
xor esi, esi
pop ebx
cmp dword [ebp - 4], esi
je 0x405df7
cmp dword [ebp - 8], esi
push edi
jne 0x405d9d
push str.RMDir:_RemoveDirectory_invalid_input___s__
call fcn.00406786
inc dword [0x452b88]
pop ecx
pop ecx
jmp 0x405df7
call fcn.004067a2
test eax, eax
je 0x405df7
push edi
call fcn.00405dfd
push edi
push str.RMDir:_RemoveDirectory___s__
call fcn.00406786
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x405def
test byte [ebp + 0xc], 4
push edi
je 0x405de8
push str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.00406786
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.004055f3
push esi
push edi
call fcn.00406041
jmp 0x405df7
push str.RMDir:_RemoveDirectory_failed___s__
jmp 0x405d8e
push edi
push 0xffffffffffffffe5
call fcn.004055f3
pop edi
pop esi
leave
ret 8