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

Disassembly:
push 0xec4
mov eax, 0x427871
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.004061c1
and dword [ebp - 4], 0
push 0x42bf38
push esi
mov ebx, 0x42bf3c
push ebx
lea ecx, [ebp - 0x670]
call fcn.0040999a
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 0x4021b2
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.00406a13
add esp, 0x418
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x670]
push eax
call fcn.0040e135
mov eax, ebx
call fcn.004240a8
ret 8
mov esi, dword [ebp - 0x260]
and esi, 0x10
je 0x402271
mov eax, 0x42bf9c
lea ecx, [ebp - 0x234]
call fcn.00407380
test al, al
jne 0x402271
mov eax, 0x42bfa0
lea ecx, [ebp - 0x234]
call fcn.00407380
test al, al
jne 0x402271
lea eax, [ebp - 0xe90]
push eax
call fcn.004061c1
mov byte [ebp - 4], 1
lea eax, [ebp - 0x234]
push eax
push dword [ebp - 0xea0]
lea ecx, [ebp - 0xe90]
push 0x42bfa8
call fcn.0040999a
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.004020eb
test eax, eax
mov dword [ebp - 0xe94], eax
jne 0x402262
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 0x402335
test esi, esi
jne 0x40233b
lea eax, [ebp - 0xa80]
push eax
call fcn.004061c1
mov byte [ebp - 4], 2
lea eax, [ebp - 0x234]
push eax
push dword [ebp - 0xea0]
lea ecx, [ebp - 0xa80]
push ebx
call fcn.0040999a
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 0x402312
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.00406a13
mov edi, dword [ebp - 0xeac]
add esp, 0x418
jmp 0x40232b
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.0040e135
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 0xe9c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x402379
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
mov dword [ebp - 0xe94], eax
je 0x402379
mov esi, dword [ebp - 0xe98]
push eax
push str.FindNextFile_failed__Error___d
add esi, 0x3c
call fcn.00406a13
pop ecx
pop ecx
cmp dword [ebp - 0xe94], 0
je 0x4021b2
push dword [ebp - 0xe9c]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [ebp - 0xe94]
cmp esi, 0x12
je 0x4023b4
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x670]
push eax
call fcn.0040e135
mov eax, esi
jmp 0x4021aa
xor esi, esi
jmp 0x40239d