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

Disassembly:
sub esp, 0x260
push ebx
mov ebx, dword [esp + 0x26c]
push esi
mov esi, dword [esp + 0x26c]
push edi
mov edi, ebx
push esi
and edi, 4
call fcn.004072a9
mov dword [esp + 0xc], eax
test bl, 8
je 0x4074db
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
inc eax
add dword [0x473628], eax
jmp 0x4076c1
push ebp
mov ebp, ebx
and ebp, 1
mov dword [esp + 0x1c], ebp
je 0x4074f8
test eax, eax
je 0x407645
test bl, 2
je 0x407645
push esi
push 0x458278
call fcn.00407903
test ebp, ebp
je 0x407519
push str..
push 0x458278
call dword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x40751f
push esi
call fcn.00407a9e
xor eax, eax
cmp word [esi], ax
jne 0x407530
cmp word [0x458278], 0x5c
jne 0x40753c
push 0x409c64
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [esi + eax*2]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x20]
push eax
push 0x458278
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
je 0x407633
mov ebp, dword [esp + 0x14]
push 0x2e
pop eax
cmp word [esp + 0x4c], ax
jne 0x407590
cmp word [esp + 0x4e], 0
je 0x40760e
cmp word [esp + 0x4e], ax
jne 0x407590
cmp word [esp + 0x50], 0
je 0x40760e
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x1c]
call fcn.00407903
test byte [esp + 0x20], 0x10
je 0x4075b7
mov eax, ebx
and eax, 3
cmp al, 3
jne 0x40760e
push ebx
push esi
call fcn.00407499
jmp 0x40760e
push esi
push str.Delete:_DeleteFile___s__
call fcn.00407327
pop ecx
pop ecx
push edi
push esi
call fcn.004071ce
push esi
test eax, eax
jne 0x407607
test edi, edi
je 0x4075f3
push str.Delete:_DeleteFile_on_Reboot___s__
call fcn.00407327
pop ecx
pop ecx
push esi
push 0xfffffffffffffff1
call fcn.004067a2
xor eax, eax
push eax
push esi
call fcn.00406cdb
jmp 0x40760e
push str.Delete:_DeleteFile_failed___s__
call fcn.00407327
inc dword [0x473628]
pop ecx
pop ecx
jmp 0x40760e
push 0xfffffffffffffff2
call fcn.004067a2
lea eax, [esp + 0x20]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
push 0x2e
test eax, eax
pop eax
jne 0x40756e
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x407641
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov word [eax - 2], cx
mov eax, dword [esp + 0x10]
test ebp, ebp
pop ebp
je 0x4076c1
push esi
test eax, eax
jne 0x407656
push str.RMDir:_RemoveDirectory_invalid_input___s__
jmp 0x4076ab
call fcn.00407218
test eax, eax
je 0x4076c1
push esi
call fcn.0040719f
push esi
push str.RMDir:_RemoveDirectory___s__
call fcn.00407327
pop ecx
pop ecx
mov eax, edi
or eax, 1
push eax
push esi
call fcn.004071ce
push esi
test eax, eax
jne 0x4076ba
test edi, edi
je 0x4076a6
push str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.00407327
pop ecx
pop ecx
push esi
push 0xfffffffffffffff1
call fcn.004067a2
xor eax, eax
push eax
push esi
call fcn.00406cdb
jmp 0x4076c1
push str.RMDir:_RemoveDirectory_failed___s__
call fcn.00407327
inc dword [0x473628]
pop ecx
pop ecx
jmp 0x4076c1
push 0xffffffffffffffe5
call fcn.004067a2
pop edi
pop esi
pop ebx
add esp, 0x260
ret 8