Function at 0x405da1
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.0040609c
test byte [ebp + 0xc], 8
mov dword [ebp - 8], eax
je 0x405dd5
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
neg eax
sbb eax, eax
inc eax
add dword [0x7d13e8], eax
jmp 0x405fb4
push ebx
mov ebx, dword [ebp + 0xc]
and ebx, 1
mov dword [ebp - 4], ebx
je 0x405df3
test eax, eax
je 0x405f38
test byte [ebp + 0xc], 2
je 0x405f38
mov esi, 0x7bbd38
push edi
push esi
call fcn.004064b7
test ebx, ebx
je 0x405e10
push str..
push esi
call fcn.004064da
jmp 0x405e16
push edi
call fcn.00406001
push 0x40a268
push edi
call fcn.004064da
push edi
call fcn.004064cd
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 0x405f2e
lea eax, [ebp - 0x11c]
push 0x3f
push eax
lea esi, [ebp - 0x11c]
call fcn.00405fe5
cmp byte [eax], 0
je 0x405e67
cmp byte [ebp - 0x18], 0
je 0x405e67
lea esi, [ebp - 0x18]
cmp byte [esi], 0x2e
jne 0x405e7f
mov al, byte [esi + 1]
cmp al, 0x2e
je 0x405f0d
test al, al
je 0x405f0d
push esi
push ebx
call fcn.004064b7
test byte [ebp - 0x148], 0x10
je 0x405ea4
mov eax, dword [ebp + 0xc]
and eax, 3
cmp al, 3
jne 0x405f0d
push dword [ebp + 0xc]
push edi
call fcn.00405da1
jmp 0x405f0d
push edi
push str.Delete:_DeleteFile___s__
call fcn.00406943
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 0x405f05
test byte [ebp + 0xc], 4
push edi
je 0x405ef1
push str.Delete:_DeleteFile_on_Reboot___s__
call fcn.00406943
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.004057b0
push 0
push edi
call fcn.004061fe
jmp 0x405f0d
push str.Delete:_DeleteFile_failed___s__
call fcn.00406943
inc dword [0x7d13e8]
pop ecx
pop ecx
jmp 0x405f0d
push edi
push 0xfffffffffffffff2
call fcn.004057b0
lea eax, [ebp - 0x148]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x405e45
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 4], 0
je 0x405f38
and byte [ebx - 1], 0
xor esi, esi
pop ebx
cmp dword [ebp - 4], esi
je 0x405fb4
cmp dword [ebp - 8], esi
push edi
jne 0x405f5a
push str.RMDir:_RemoveDirectory_invalid_input___s__
call fcn.00406943
inc dword [0x7d13e8]
pop ecx
pop ecx
jmp 0x405fb4
call fcn.0040695f
test eax, eax
je 0x405fb4
push edi
call fcn.00405fba
push edi
push str.RMDir:_RemoveDirectory___s__
call fcn.00406943
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x405fac
test byte [ebp + 0xc], 4
push edi
je 0x405fa5
push str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.00406943
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.004057b0
push esi
push edi
call fcn.004061fe
jmp 0x405fb4
push str.RMDir:_RemoveDirectory_failed___s__
jmp 0x405f4b
push edi
push 0xffffffffffffffe5
call fcn.004057b0
pop edi
pop esi
leave
ret 8