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

Disassembly:
push ebp
lea ebp, [esp - 0x9f8]
sub esp, 0xa78
mov eax, dword [0x4755d0]
xor eax, ebp
mov dword [ebp + 0x9f4], eax
mov eax, dword [ebp + 0xa04]
push ebx
mov ebx, dword [ebp + 0xa00]
push esi
push edi
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xa14]
xor edi, edi
push 0x13c
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x6c]
push edi
push eax
mov dword [ebp - 0x70], edi
call fcn.00448090
mov esi, 0x207
push esi
lea eax, [ebp + 0x3dd]
push edi
push eax
mov dword [ebp - 0x78], edi
mov byte [ebp + 0x3dc], 0
call fcn.00448090
push esi
lea eax, [ebp + 0x7ed]
push edi
push eax
mov byte [ebp + 0x7ec], 0
call fcn.00448090
push esi
lea eax, [ebp + 0x5e5]
push edi
push eax
mov byte [ebp + 0x5e4], 0
call fcn.00448090
push esi
lea eax, [ebp + 0xd1]
push edi
push eax
mov byte [ebp + 0xd0], 0
call fcn.00448090
mov esi, 0x103
push esi
lea eax, [ebp + 0x2d9]
push edi
push eax
mov byte [ebp + 0x2d8], 0
call fcn.00448090
add esp, 0x48
cmp ebx, edi
je 0x4102ef
cmp byte [ebx], 0
je 0x4102ef
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
call edi
inc eax
cmp eax, esi
jle 0x41002d
mov eax, esi
jmp 0x410031
push ebx
call edi
inc eax
push eax
push ebx
lea eax, [ebp + 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 0
lea eax, [ebp + 0x3dc]
push eax
call fcn.0040dde2
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
test eax, eax
je 0x410086
lea eax, [ebp + 0x3dc]
push eax
call edi
lea ecx, [ebp + 0x3dc]
cmp byte [eax + ecx - 1], 0x5c
je 0x410078
push 0x45c800
mov eax, ecx
push eax
call esi
push 0x45f768
lea eax, [ebp + 0x3dc]
push eax
call esi
lea eax, [ebp + 0x3dc]
push 0x5c
push eax
call fcn.00447970
pop ecx
pop ecx
test eax, eax
je 0x4100cf
push 3
lea eax, [ebp + 0x5e4]
push eax
lea eax, [ebp + 0x3dc]
push eax
call fcn.0040eb69
lea eax, [ebp + 0x5e4]
push eax
call edi
lea ecx, [ebp + 0x5e4]
cmp byte [eax + ecx - 1], 0x5c
je 0x4100cf
push 0x45c800
mov eax, ecx
push eax
call esi
push 0xc
lea eax, [ebp + 0xd0]
push eax
lea eax, [ebp + 0x3dc]
push eax
call fcn.0040eb69
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0xffffffff
je 0x4101b0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push 0x45e8e0
lea eax, [ebp - 0x44]
push eax
call ebx
test eax, eax
je 0x41019b
push 0x45f080
lea eax, [ebp - 0x44]
push eax
call ebx
test eax, eax
je 0x41019b
cmp dword [ebp + 0xa10], 0
je 0x41013b
test byte [ebp - 0x70], 0x10
je 0x41019b
jmp 0x410141
test byte [ebp - 0x70], 0x10
jne 0x41019b
lea eax, [ebp + 0x5e4]
push eax
lea eax, [ebp + 0x7ec]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x7ec]
push eax
call esi
push dword [ebp - 0x74]
call edi
mov ebx, eax
lea eax, [ebp + 0x7ec]
push eax
call edi
lea eax, [ebx + eax + 1]
cmp eax, dword [ebp + 0xa08]
jge 0x410198
cmp dword [ebp - 0x74], 0
je 0x410198
lea eax, [ebp + 0x7ec]
push eax
push dword [ebp - 0x74]
call esi
push dword [ebp - 0x7c]
push dword [ebp - 0x74]
call esi
inc dword [ebp - 0x78]
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4100f8
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp + 0xa0c], 0
jne 0x4101ca
mov eax, dword [ebp - 0x78]
jmp 0x4102f1
lea eax, [ebp + 0x5e4]
push eax
call edi
lea ecx, [eax + 1]
mov eax, 0x103
cmp ecx, eax
jg 0x4101e9
lea eax, [ebp + 0x5e4]
push eax
call edi
inc eax
push eax
lea eax, [ebp + 0x5e4]
push eax
lea eax, [ebp + 0x2d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 0x45f768
lea eax, [ebp + 0x2d8]
push eax
call esi
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x2d8]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4102e3
test byte [ebp - 0x70], 0x10
je 0x4102d0
push 0x45e8e0
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4102d0
push 0x45f080
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4102d0
lea eax, [ebp + 0x5e4]
push eax
lea eax, [ebp + 0x7ec]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x7ec]
push eax
call esi
lea eax, [ebp + 0x7ec]
push eax
call edi
lea ecx, [ebp + 0x7ec]
cmp byte [eax + ecx - 1], 0x5c
je 0x41029d
push 0x45c800
mov eax, ecx
push eax
call esi
lea eax, [ebp + 0xd0]
push eax
lea eax, [ebp + 0x7ec]
push eax
call esi
push dword [ebp - 0x7c]
lea eax, [ebp + 0x7ec]
push dword [ebp + 0xa10]
push 1
push dword [ebp + 0xa08]
push dword [ebp - 0x74]
push eax
call fcn.0040ff47
add dword [ebp - 0x78], eax
lea eax, [ebp - 0x70]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x41021f
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x4101c2
xor eax, eax
mov ecx, dword [ebp + 0x9f4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00448080
add ebp, 0x9f8
leave
ret 0x18