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

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x450
lea ecx, [esp + 0x144]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x460]
push edi
push eax
push esi
push ecx
xor edi, edi
call fcn.00409560
add esp, 0xc
lea edx, [esp + 0x14]
lea eax, [esp + 0x154]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, dword [esp + 0x478]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x40971f
mov eax, dword [esp + 0x470]
test eax, eax
mov al, byte [esp + 0x14]
je 0x40968a
test al, 0x10
jne 0x40968e
lea ecx, [esp + 0x14]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x409718
mov eax, dword [esp + 0x470]
test eax, eax
mov al, byte [esp + 0x14]
je 0x4096d1
test al, 0x10
jne 0x4096d5
jmp 0x409704
test al, 0x10
jne 0x409661
lea ecx, [esp + 0x40]
lea edx, [esp + 0x35c]
push ecx
push esi
push edx
mov edi, 1
call fcn.00409560
add esp, 0xc
lea eax, [esp + 0x35c]
push ebx
push eax
call dword [esp + 0x47c]
test eax, eax
jne 0x409661
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x450
ret
test al, 0x10
jne 0x409704
lea edx, [esp + 0x40]
lea eax, [esp + 0x35c]
push edx
push esi
push eax
inc edi
call fcn.00409560
add esp, 0xc
lea ecx, [esp + 0x35c]
push ebx
push ecx
call dword [esp + 0x47c]
test eax, eax
je 0x409852
lea edx, [esp + 0x14]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x409675
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x43351c
lea eax, [esp + 0x158]
push esi
push eax
call fcn.00409560
mov ebp, dword [esp + 0x478]
add esp, 0xc
test ebp, ebp
je 0x409845
lea ecx, [esp + 0x14]
lea edx, [esp + 0x154]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x409845
test byte [esp + 0x14], 0x10
je 0x4097bb
lea eax, [esp + 0x40]
push eax
call fcn.00409870
add esp, 4
test eax, eax
jne 0x4097bb
lea ecx, [esp + 0x40]
lea edx, [esp + 0x258]
push ecx
push esi
push edx
call fcn.00409560
mov eax, dword [esp + 0x480]
mov ecx, dword [esp + 0x47c]
mov edx, dword [esp + 0x474]
push ebx
push eax
push ecx
push ebp
lea eax, [esp + 0x274]
push edx
push eax
call fcn.00409600
add esp, 0x24
add edi, eax
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40983a
test byte [esp + 0x14], 0x10
je 0x409826
lea eax, [esp + 0x40]
push eax
call fcn.00409870
add esp, 4
test eax, eax
jne 0x409826
lea ecx, [esp + 0x40]
lea edx, [esp + 0x258]
push ecx
push esi
push edx
call fcn.00409560
mov eax, dword [esp + 0x480]
mov ecx, dword [esp + 0x47c]
mov edx, dword [esp + 0x474]
push ebx
push eax
push ecx
push ebp
lea eax, [esp + 0x274]
push edx
push eax
call fcn.00409600
add esp, 0x24
add edi, eax
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4097cf
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x450
ret
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x450
ret