Function at 0x405c0c
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.00405f07
test byte [ebp + 0xc], 8
mov dword [ebp - 8], eax
je 0x405c40
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
neg eax
sbb eax, eax
inc eax
add dword [0x45d888], eax
jmp 0x405e1f
push ebx
mov ebx, dword [ebp + 0xc]
and ebx, 1
mov dword [ebp - 4], ebx
je 0x405c5e
test eax, eax
je 0x405da3
test byte [ebp + 0xc], 2
je 0x405da3
mov esi, 0x447038
push edi
push esi
call fcn.00406322
test ebx, ebx
je 0x405c7b
push str..
push esi
call fcn.00406345
jmp 0x405c81
push edi
call fcn.00405e6c
push 0x40a268
push edi
call fcn.00406345
push edi
call fcn.00406338
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 0x405d99
lea eax, [ebp - 0x11c]
push 0x3f
push eax
lea esi, [ebp - 0x11c]
call fcn.00405e50
cmp byte [eax], 0
je 0x405cd2
cmp byte [ebp - 0x18], 0
je 0x405cd2
lea esi, [ebp - 0x18]
cmp byte [esi], 0x2e
jne 0x405cea
mov al, byte [esi + 1]
cmp al, 0x2e
je 0x405d78
test al, al
je 0x405d78
push esi
push ebx
call fcn.00406322
test byte [ebp - 0x148], 0x10
je 0x405d0f
mov eax, dword [ebp + 0xc]
and eax, 3
cmp al, 3
jne 0x405d78
push dword [ebp + 0xc]
push edi
call fcn.00405c0c
jmp 0x405d78
push edi
push str.Delete:_DeleteFile___s__
call fcn.004067ae
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 0x405d70
test byte [ebp + 0xc], 4
push edi
je 0x405d5c
push str.Delete:_DeleteFile_on_Reboot___s__
call fcn.004067ae
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.0040561b
push 0
push edi
call fcn.00406069
jmp 0x405d78
push str.Delete:_DeleteFile_failed___s__
call fcn.004067ae
inc dword [0x45d888]
pop ecx
pop ecx
jmp 0x405d78
push edi
push 0xfffffffffffffff2
call fcn.0040561b
lea eax, [ebp - 0x148]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x405cb0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 4], 0
je 0x405da3
and byte [ebx - 1], 0
xor esi, esi
pop ebx
cmp dword [ebp - 4], esi
je 0x405e1f
cmp dword [ebp - 8], esi
push edi
jne 0x405dc5
push str.RMDir:_RemoveDirectory_invalid_input___s__
call fcn.004067ae
inc dword [0x45d888]
pop ecx
pop ecx
jmp 0x405e1f
call fcn.004067ca
test eax, eax
je 0x405e1f
push edi
call fcn.00405e25
push edi
push str.RMDir:_RemoveDirectory___s__
call fcn.004067ae
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x405e17
test byte [ebp + 0xc], 4
push edi
je 0x405e10
push str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.004067ae
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.0040561b
push esi
push edi
call fcn.00406069
jmp 0x405e1f
push str.RMDir:_RemoveDirectory_failed___s__
jmp 0x405db6
push edi
push 0xffffffffffffffe5
call fcn.0040561b
pop edi
pop esi
leave
ret 8