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

Disassembly:
push 0xec4
mov eax, 0x427860
call fcn.00424025
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
and dword [ebp - 0xe94], 0
lea eax, [ebp - 0x670]
push eax
mov dword [ebp - 0xe98], ecx
mov dword [ebp - 0xea0], esi
mov dword [ebp - 0xeac], edi
call fcn.004061e7
and dword [ebp - 4], 0
push 0x42bf28
push esi
mov ebx, 0x42bf2c
push ebx
lea ecx, [ebp - 0x670]
call fcn.0040999d
add esp, 0xc
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 0x670]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0xe9c], eax
jne 0x4021d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push ebx
sub esp, 0x410
mov edi, esp
mov ecx, 0x104
lea esi, [ebp - 0x670]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xe98]
push str.FindFirstFile_on___s__failed__Error___d
add esi, 0x3c
call fcn.00406a39
add esp, 0x418
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x670]
push eax
call fcn.0040133f
mov eax, ebx
call fcn.004240a8
ret 8
mov esi, dword [ebp - 0x260]
and esi, 0x10
je 0x402293
mov eax, 0x42bf8c
lea ecx, [ebp - 0x234]
call fcn.004073b0
test al, al
jne 0x402293
mov eax, 0x42bf90
lea ecx, [ebp - 0x234]
call fcn.004073b0
test al, al
jne 0x402293
lea eax, [ebp - 0xe90]
push eax
call fcn.004061e7
mov byte [ebp - 4], 1
lea eax, [ebp - 0x234]
push eax
push dword [ebp - 0xea0]
lea ecx, [ebp - 0xe90]
push 0x42bf98
call fcn.0040999d
mov ecx, dword [ebp - 0xe98]
and dword [ebp - 0xea8], 0
and dword [ebp - 0xea4], 0
add esp, 0xc
lea eax, [ebp - 0xea8]
push eax
push dword [ebp - 0xe90]
call fcn.0040210d
test eax, eax
mov dword [ebp - 0xe94], eax
jne 0x402284
mov eax, dword [ebp - 0xea8]
add dword [edi], eax
mov eax, dword [ebp - 0xea4]
adc dword [edi + 4], eax
mov byte [ebp - 4], 0
lea eax, [ebp - 0xe90]
jmp 0x402357
test esi, esi
jne 0x40235d
lea eax, [ebp - 0xa80]
push eax
call fcn.004061e7
mov byte [ebp - 4], 2
lea eax, [ebp - 0x234]
push eax
push dword [ebp - 0xea0]
lea ecx, [ebp - 0xa80]
push ebx
call fcn.0040999d
add esp, 0xc
push 0x24
lea eax, [ebp - 0xed0]
push esi
push eax
call fcn.00414b10
add esp, 0xc
lea eax, [ebp - 0xed0]
push eax
push esi
push dword [ebp - 0xa80]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
jne 0x402334
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x410
mov edi, esp
mov ecx, 0x104
lea esi, [ebp - 0xa80]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xe98]
push str.GetFileAttributesEx_on___s__failed__Error___d
add esi, 0x3c
mov dword [ebp - 0xe94], eax
call fcn.00406a39
mov edi, dword [ebp - 0xeac]
add esp, 0x418
jmp 0x40234d
mov edx, dword [ebp - 0xeb0]
mov ecx, dword [ebp - 0xeb4]
xor eax, eax
xor esi, esi
or eax, edx
or ecx, esi
add dword [edi], eax
adc dword [edi + 4], ecx
mov byte [ebp - 4], 0
lea eax, [ebp - 0xa80]
push eax
call fcn.0040133f
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 0xe9c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40239b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
mov dword [ebp - 0xe94], eax
je 0x40239b
mov esi, dword [ebp - 0xe98]
push eax
push str.FindNextFile_failed__Error___d
add esi, 0x3c
call fcn.00406a39
pop ecx
pop ecx
cmp dword [ebp - 0xe94], 0
je 0x4021d4
push dword [ebp - 0xe9c]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [ebp - 0xe94]
cmp esi, 0x12
je 0x4023d6
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x670]
push eax
call fcn.0040133f
mov eax, esi
jmp 0x4021cc
xor esi, esi
jmp 0x4023bf