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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
push ebx
mov ebx, edx
push esi
mov eax, ebx
mov esi, ecx
and eax, 4
push edi
mov dword [ebp - 4], eax
call fcn.00407627
mov dword [ebp - 8], eax
test bl, 8
je 0x40732e
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
neg eax
sbb eax, eax
inc eax
add dword [0x792ca8], eax
jmp 0x407541
mov edi, ebx
and edi, 1
mov dword [ebp - 0x14], edi
je 0x407349
test eax, eax
je 0x4074b7
test bl, 2
je 0x4074b7
push 0x400
push esi
push 0x78f9e8
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
test edi, edi
je 0x407370
push str..
push 0x78f9e8
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x407377
mov ecx, esi
call fcn.0040758d
cmp byte [esi], 0
jne 0x407385
cmp byte [0x78f9e8], 0x5c
jne 0x407391
push 0x409720
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, esi
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x158]
push eax
push 0x78f9e8
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x10], eax
cmp eax, 0xffffffff
je 0x4074a9
lea edi, [ebp - 0x12c]
mov dl, 0x3f
mov ecx, edi
call fcn.00407571
cmp byte [eax], 0
je 0x4073db
cmp byte [ebp - 0x28], 0
lea eax, [ebp - 0x28]
cmove eax, edi
mov edi, eax
cmp byte [edi], 0x2e
jne 0x4073f9
mov al, byte [edi + 1]
test al, al
je 0x407486
cmp al, 0x2e
jne 0x4073f9
cmp byte [edi + 2], 0
je 0x407486
push 0x400
push edi
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
test byte [ebp - 0x158], 0x10
je 0x407425
mov eax, ebx
and eax, 3
cmp al, 3
jne 0x407486
mov edx, ebx
mov ecx, esi
call fcn.004072f2
jmp 0x407486
push esi
push str.Delete:_DeleteFile___s__
call fcn.00407f13
mov edi, dword [ebp - 4]
mov edx, edi
pop ecx
pop ecx
mov ecx, esi
call fcn.004072af
test eax, eax
jne 0x40747c
push esi
test edi, edi
je 0x407468
push str.Delete:_DeleteFile_on_Reboot___s__
call fcn.00407f13
pop ecx
pop ecx
push 0xfffffffffffffff1
mov edx, esi
pop ecx
call fcn.00406cd8
xor edx, edx
mov ecx, esi
call fcn.00407952
jmp 0x407486
push str.Delete:_DeleteFile_failed___s__
call fcn.00407f13
inc dword [0x792ca8]
pop ecx
pop ecx
jmp 0x407486
push 0xfffffffffffffff2
mov edx, esi
pop ecx
call fcn.00406cd8
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 0x158]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4073bb
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [ebp - 0x14]
test edi, edi
je 0x4074b4
mov eax, dword [ebp - 0xc]
mov byte [eax - 1], 0
mov eax, dword [ebp - 8]
test edi, edi
je 0x407541
test eax, eax
jne 0x4074cb
push esi
push str.RMDir:_RemoveDirectory_invalid_input___s__
jmp 0x407528
mov ecx, esi
call fcn.00407f44
test eax, eax
je 0x407541
mov ecx, esi
call fcn.00407548
push esi
push str.RMDir:_RemoveDirectory___s__
call fcn.00407f13
mov ebx, dword [ebp - 4]
mov edx, ebx
pop ecx
pop ecx
or edx, 1
mov ecx, esi
call fcn.004072af
test eax, eax
jne 0x407537
push esi
test ebx, ebx
je 0x407523
push str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.00407f13
pop ecx
pop ecx
push 0xfffffffffffffff1
mov edx, esi
pop ecx
call fcn.00406cd8
xor edx, edx
mov ecx, esi
call fcn.00407952
jmp 0x407541
push str.RMDir:_RemoveDirectory_failed___s__
call fcn.00407f13
inc dword [0x792ca8]
pop ecx
pop ecx
jmp 0x407541
push 0xffffffffffffffe5
mov edx, esi
pop ecx
call fcn.00406cd8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret