Function at 0x405d9e
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.00406099
test byte [ebp + 0xc], 8
mov dword [ebp - 8], eax
je 0x405dd2
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
neg eax
sbb eax, eax
inc eax
add dword [0x452bc8], eax
jmp 0x405fb1
push ebx
mov ebx, dword [ebp + 0xc]
and ebx, 1
mov dword [ebp - 4], ebx
je 0x405df0
test eax, eax
je 0x405f35
test byte [ebp + 0xc], 2
je 0x405f35
mov esi, 0x43d500
push edi
push esi
call fcn.004064b4
test ebx, ebx
je 0x405e0d
push str..
push esi
call fcn.004064d7
jmp 0x405e13
push edi
call fcn.00405ffe
push 0x40a268
push edi
call fcn.004064d7
push edi
call fcn.004064ca
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 0x405f2b
lea eax, [ebp - 0x11c]
push 0x3f
push eax
lea esi, [ebp - 0x11c]
call fcn.00405fe2
cmp byte [eax], 0
je 0x405e64
cmp byte [ebp - 0x18], 0
je 0x405e64
lea esi, [ebp - 0x18]
cmp byte [esi], 0x2e
jne 0x405e7c
mov al, byte [esi + 1]
cmp al, 0x2e
je 0x405f0a
test al, al
je 0x405f0a
push esi
push ebx
call fcn.004064b4
test byte [ebp - 0x148], 0x10
je 0x405ea1
mov eax, dword [ebp + 0xc]
and eax, 3
cmp al, 3
jne 0x405f0a
push dword [ebp + 0xc]
push edi
call fcn.00405d9e
jmp 0x405f0a
push edi
push str.Delete:_DeleteFile___s__
call fcn.00406940
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 0x405f02
test byte [ebp + 0xc], 4
push edi
je 0x405eee
push str.Delete:_DeleteFile_on_Reboot___s__
call fcn.00406940
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.004057ad
push 0
push edi
call fcn.004061fb
jmp 0x405f0a
push str.Delete:_DeleteFile_failed___s__
call fcn.00406940
inc dword [0x452bc8]
pop ecx
pop ecx
jmp 0x405f0a
push edi
push 0xfffffffffffffff2
call fcn.004057ad
lea eax, [ebp - 0x148]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x405e42
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 4], 0
je 0x405f35
and byte [ebx - 1], 0
xor esi, esi
pop ebx
cmp dword [ebp - 4], esi
je 0x405fb1
cmp dword [ebp - 8], esi
push edi
jne 0x405f57
push str.RMDir:_RemoveDirectory_invalid_input___s__
call fcn.00406940
inc dword [0x452bc8]
pop ecx
pop ecx
jmp 0x405fb1
call fcn.0040695c
test eax, eax
je 0x405fb1
push edi
call fcn.00405fb7
push edi
push str.RMDir:_RemoveDirectory___s__
call fcn.00406940
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x405fa9
test byte [ebp + 0xc], 4
push edi
je 0x405fa2
push str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.00406940
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.004057ad
push esi
push edi
call fcn.004061fb
jmp 0x405fb1
push str.RMDir:_RemoveDirectory_failed___s__
jmp 0x405f48
push edi
push 0xffffffffffffffe5
call fcn.004057ad
pop edi
pop esi
leave
ret 8