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

Disassembly:
push 0x698
mov eax, 0x42452d
call fcn.0042322e
mov ebx, ecx
mov esi, dword [ebp + 0x10]
xor edi, edi
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x68c], esi
mov dword [ebp - 0x688], eax
mov dword [ebp - 0x69c], edi
cmp dword [0x437e98], edi
jne 0x40c621
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
mov dword [ebp - 0x690], eax
pop ecx
test ebx, ebx
je 0x40c621
test eax, eax
je 0x40c621
test esi, esi
je 0x40c621
push ecx
push ebx
mov edx, SysReAllocString
lea ecx, [ebp - 0x680]
call fcn.0041929e
mov eax, dword [ebp - 0x68c]
mov esi, dword [ebp - 0x680]
push esi
push str._r_n_s_r_n_r_n
push dword [eax + 4]
mov dword [ebp - 0x694], 1
call fcn.0040d0e1
add esp, 0x14
lea ecx, [esi - 0x10]
call fcn.0040188c
lea eax, [ebp - 0x424]
mov dword [ebp - 4], edi
push ebx
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy]
mov eax, dword [ebp - 0x690]
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat]
pop ecx
pop ecx
push 0x5c
pop ecx
cmp word [ebx + eax*2 - 2], cx
je 0x40c5eb
lea eax, [ebp - 0x424]
push 0x42b7b4
push eax
call esi
pop ecx
pop ecx
lea eax, [ebp - 0x424]
push 0x42bfb8
push eax
call esi
pop ecx
pop ecx
lea eax, [ebp - 0x674]
push eax
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x67c], eax
cmp eax, 0xffffffff
jne 0x40c627
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
call fcn.0042317b
ret
push edi
push edi
mov dword [ebp - 0x6a4], edi
mov dword [ebp - 0x6a0], edi
call fcn.00407209
mov esi, eax
mov dword [ebp - 0x6a4], esi
mov byte [ebp - 4], 1
test edi, edi
jne 0x40c8e0
cmp dword [0x437e98], edi
jne 0x40c8e0
lea eax, [ebp - 0x21c]
push ebx
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy]
mov eax, dword [ebp - 0x690]
pop ecx
pop ecx
push 0x5c
pop ecx
cmp word [ebx + eax*2 - 2], cx
je 0x40c68e
lea eax, [ebp - 0x21c]
push 0x42b7b4
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat]
pop ecx
pop ecx
lea eax, [ebp - 0x648]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat]
mov edi, dword [ebp - 0x674]
lea eax, [ebp - 0x648]
shr edi, 4
pop ecx
pop ecx
and edi, 1
je 0x40c701
push 0x42b6dc
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscmp]
pop ecx
pop ecx
test eax, eax
je 0x40c6e2
lea eax, [ebp - 0x648]
push 0x42b6e0
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscmp]
pop ecx
pop ecx
test eax, eax
jne 0x40c722
lea eax, [ebp - 0x674]
push eax
push dword [ebp - 0x67c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov edi, eax
neg edi
sbb edi, edi
inc edi
jmp 0x40c646
push dword [ebp - 0x68c]
push dword [ebp - 0x65c]
push dword [ebp - 0x660]
push eax
lea eax, [ebp - 0x21c]
push eax
mov eax, 0x40c9ab
call eax
test edi, edi
je 0x40c6e2
mov edi, dword [ebp - 0x688]
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x40c873
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x678]
call fcn.0040655d
push 0x5c
pop eax
push eax
mov byte [ebp - 4], 2
push dword [ebp - 0x678]
call dword [sym.imp.VCRUNTIME140.dll_wcsrchr]
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x678]
test ecx, ecx
jne 0x40c770
or ecx, 0xffffffff
jmp 0x40c774
sub ecx, eax
sar ecx, 1
mov eax, dword [eax - 0xc]
inc ecx
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x698]
push eax
lea ecx, [ebp - 0x678]
call fcn.004067d3
or dword [ebp - 0x694], 2
lea eax, [ebp - 0x698]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x678]
call fcn.0040650f
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x698]
lea ecx, [ecx - 0x10]
call fcn.0040188c
lea ecx, [ebp - 0x678]
call fcn.004062ea
mov eax, dword [ebp - 0x688]
mov edi, dword [edi]
mov eax, dword [eax + 4]
mov dword [ebp - 0x69c], eax
cmp edi, eax
je 0x40c861
mov ecx, dword [edi]
sub ecx, 0x10
call fcn.00406d2d
add eax, 0x10
mov dword [ebp - 0x684], eax
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 4
call fcn.004062ea
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x678]
push dword [ebp - 0x684]
call fcn.00406864
test eax, eax
jne 0x40c841
mov ecx, dword [ebp - 0x684]
lea ecx, [ecx - 0x10]
call fcn.0040188c
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x678]
lea ecx, [ecx - 0x10]
call fcn.0040188c
jmp 0x40c6e2
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x684]
lea ecx, [ecx - 0x10]
call fcn.0040188c
mov eax, dword [ebp - 0x69c]
add edi, 4
jmp 0x40c7d9
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x678]
lea ecx, [ecx - 0x10]
call fcn.0040188c
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x680]
call fcn.0040655d
lea eax, [ebp - 0x680]
mov byte [ebp - 4], 6
mov edi, dword [esi + 4]
push eax
push edi
push esi
call fcn.0040cef0
mov edx, dword [ebp - 0x6a0]
mov ecx, 0x15555554
sub ecx, edx
cmp ecx, 1
jae 0x40c8b7
push str.list_T__too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [esi + 4], eax
inc edx
mov dword [edi], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x680]
mov dword [ebp - 0x6a0], edx
lea ecx, [ecx - 0x10]
call fcn.0040188c
mov esi, dword [ebp - 0x6a4]
jmp 0x40c6e2
push dword [ebp - 0x67c]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esi]
mov dword [ebp - 0x680], eax
cmp eax, esi
je 0x40c96e
mov ecx, dword [eax + 8]
sub ecx, 0x10
call fcn.00406d2d
lea edi, [eax + 0x10]
mov dword [ebp - 0x67c], edi
mov byte [ebp - 4], 7
cmp dword [edi - 4], 1
jle 0x40c92a
push dword [edi - 0xc]
lea ecx, [ebp - 0x67c]
call fcn.0040161a
mov edi, dword [ebp - 0x67c]
push dword [ebp - 0x688]
mov eax, 0x40c9ab
xor edx, edx
push dword [ebp - 0x68c]
inc edx
mov ecx, edi
push eax
push 1
call fcn.0040c514
add esp, 0x10
lea ecx, [ebp - 0x67c]
push 0xffffffffffffffff
call fcn.00406678
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 1
call fcn.0040188c
mov eax, dword [ebp - 0x680]
mov eax, dword [eax]
jmp 0x40c8ee
mov ebx, dword [esi]
mov dword [esi], esi
mov dword [esi + 4], esi
cmp ebx, esi
je 0x40c996
mov ecx, dword [ebx + 8]
mov edi, dword [ebx]
sub ecx, 0x10
call fcn.0040188c
push 0xc
pop edx
mov ecx, ebx
call fcn.004082f6
mov ebx, edi
cmp edi, esi
jne 0x40c979
push 0xc
pop edx
mov ecx, esi
call fcn.004082f6
jmp 0x40c621