Function at 0x408773
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x578
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x43f9d9
mov dword [esp + 4], 0x104
lea eax, [ebp - 0x310]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__snprintf]
call eax
lea eax, [ebp - 0x554]
mov dword [esp + 4], eax
lea eax, [ebp - 0x310]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
call eax
sub esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
setne al
test al, al
je 0x408894
mov eax, dword [ebp - 0x554]
and eax, 0x10
test eax, eax
je 0x40886c
movzx eax, byte [ebp - 0x528]
cmp al, 0x2e
jne 0x408804
movzx eax, byte [ebp - 0x527]
test al, al
je 0x40886c
movzx eax, byte [ebp - 0x527]
cmp al, 0x2e
je 0x40886c
lea eax, [ebp - 0x554]
add eax, 0x2c
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x43f9de
mov dword [esp + 4], 0x104
lea eax, [ebp - 0x414]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__snprintf]
call eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x414]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00408773
mov dword [ebp + 0x1c], eax
lea eax, [ebp - 0x554]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileA]
call eax
sub esp, 8
test eax, eax
setne al
test al, al
je 0x408894
jmp 0x4087d2
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindClose]
call eax
sub esp, 4
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x43f9de
mov dword [esp + 4], 0x104
lea eax, [ebp - 0x310]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__snprintf]
call eax
lea eax, [ebp - 0x554]
mov dword [esp + 4], eax
lea eax, [ebp - 0x310]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
call eax
sub esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
setne al
test al, al
je 0x408991
mov eax, dword [ebp + 0x1c]
add eax, 1
mov dword [ebp + 0x1c], eax
lea eax, [ebp - 0x554]
add eax, 0x2c
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._Found:__s_s
mov dword [esp + 4], 0x200
lea eax, [ebp - 0x20c]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__snprintf]
call eax
mov dword [esp + 0x10], 1
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x20c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0040c3f1
lea eax, [ebp - 0x554]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileA]
call eax
sub esp, 8
test eax, eax
setne al
test al, al
je 0x408991
jmp 0x408901
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindClose]
call eax
sub esp, 4
mov eax, dword [ebp + 0x1c]
leave
ret