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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xb9c
mov ebx, dword [esp + 0xbb0]
lea edi, [esp + 0x170]
cmp dword [ebx + 0x40c], 0
jne 0x40704f
lea esi, [esp + 0x578]
mov dword [esp + 8], 0x204
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00412548
dec eax
mov dl, byte [esp + eax + 0x578]
cmp dl, 0x5c
je 0x406fd5
cmp dl, 0x2f
jne 0x406fdd
mov byte [esp + eax + 0x578], 0
mov dword [esp], esi
call fcn.00406f1a
test al, al
je 0x40704f
lea ebp, [esp + 0x77c]
mov dword [esp + 8], 0x104
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00412c67
mov dword [esp + 8], 0x204
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00412c0f
mov dword [esp + 4], ebp
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041e557
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041ed42
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041e988
jmp 0x407283
mov dword [esp], 0x8003
call sub.KERNEL32.dll_SetErrorMode
push esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x422f4a
mov dword [esp + 4], 0x204
mov dword [esp], edi
call fcn.004127a8
inc eax
je 0x407291
lea eax, [esp + 0x30]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_FindFirstFileA
push ecx
push ecx
mov dword [esp + 0x28], eax
inc eax
je 0x40727a
lea ebp, [esp + 0x5c]
lea esi, [esp + 0x170]
mov dword [esp + 4], 0x422f36
mov dword [esp], ebp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40724f
mov dword [esp + 4], 0x422f38
mov dword [esp], ebp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40724f
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x422f51
mov dword [esp + 4], 0x204
mov dword [esp], esi
call fcn.004127a8
test byte [esp + 0x30], 0x10
je 0x40714c
lea eax, [esp + 0x374]
mov dword [esp + 4], 0x422f56
mov dword [esp], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041e557
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041ed42
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041e988
jmp 0x4071d8
mov dword [esp + 4], 0x422f58
mov dword [esp], esi
call sub.msvcrt.dll_fopen
test eax, eax
mov dword [esp + 0x2c], eax
je 0x4071d8
xor eax, eax
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
lea edi, [ebx + 0x204]
not ecx
lea edx, [ecx - 1]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
lea edi, [esp + 0x374]
mov dword [esp + 8], edx
not ecx
lea eax, [esi + ecx - 1]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncpy
mov dword [esp + 4], edi
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041e557
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041ed42
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041e988
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
test byte [esp + 0x30], 0x10
je 0x40724f
lea edi, [esp + 0x77c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x422f3b
mov dword [esp + 4], 0x204
mov dword [esp], edi
call fcn.004127a8
mov eax, dword [ebx + 0x40c]
inc eax
mov dword [esp + 0xb88], eax
mov eax, dword [ebx + 0x410]
mov dword [esp + 0xb8c], eax
mov eax, dword [ebx + 0x408]
mov dword [esp + 0xb84], eax
lea eax, [ebx + 0x204]
mov dword [esp + 4], eax
lea eax, [esp + 0x980]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], edi
call fcn.00406f83
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.KERNEL32.dll_FindNextFileA
test eax, eax
push edx
push edx
jne 0x4070a7
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.KERNEL32.dll_FindClose
push eax
cmp dword [ebx + 0x40c], 0
jne 0x407291
mov eax, dword [ebx + 0x408]
mov dword [esp], eax
call fcn.0041e521
add esp, 0xb9c
pop ebx
pop esi
pop edi
pop ebp
ret