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

Disassembly:
sub esp, 0x458
cmp dword [esp + 0x45c], 0
push ebx
push esi
push edi
push ebp
jne 0x4e5c91
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x458
ret
mov edi, dword [esp + 0x46c]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [esp + 0x224]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x46c]
mov ecx, 0xffffffff
sub eax, eax
mov edx, dword [esp + 0x46c]
repne scasb al, byte es:[edi]
not ecx
cmp byte [ecx + edx - 2], 0x5c
jne 0x4e5d18
mov edi, 0x506fcc
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov ecx, 0xffffffff
lea edi, [esp + 0x224]
sub eax, eax
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x13], 1
jmp 0x4e5d1d
mov byte [esp + 0x13], 0
lea eax, [esp + 0x328]
lea ecx, [esp + 0x224]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov ebp, eax
je 0x4e5ee4
mov ebx, dword [esp + 0x478]
lea esi, [esp + 0x354]
mov edi, 0x506fd8
mov ecx, 2
repe cmpsb byte [esi], byte es:[edi]
je 0x4e5ec6
lea esi, [esp + 0x354]
mov edi, 0x507028
mov ecx, 3
repe cmpsb byte [esi], byte es:[edi]
je 0x4e5ec6
mov edi, dword [esp + 0x46c]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [esp + 0x13], 0
je 0x4e5dda
lea edi, [esp + 0x354]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov ecx, 0xffffffff
lea edi, [esp + 0x1c]
sub eax, eax
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x340]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x328]
lea ecx, [esp + 0x1c]
and eax, 0x10
push ecx
shr eax, 4
mov byte [esp + 0x16], al
call fcn.004e59a0
add esp, 4
test al, al
je 0x4e5e5d
lea eax, [esp + 0x14]
lea ecx, [esp + 0x12]
lea edx, [esp + 0x120]
push eax
lea eax, [esp + 0x20]
push ecx
push edx
push eax
call fcn.004e59e0
add esp, 0x10
test eax, eax
jl 0x4e5e5d
lea edi, [esp + 0x120]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [esp + 0x12], 0
je 0x4e5ea9
cmp dword [esp + 0x470], 0
jle 0x4e5ec6
lea eax, [esp + 0x1c]
push eax
call fcn.004e5920
mov eax, dword [esp + 0x478]
lea ecx, [esp + 0x20]
add esp, 4
push ebx
push eax
mov eax, dword [esp + 0x478]
dec eax
push eax
push ecx
call fcn.004e5c70
add esp, 0x10
test eax, eax
je 0x4e5ec6
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x458
ret
mov eax, dword [esp + 0x14]
push ebx
mov ecx, dword [esp + 0x1c]
push 0
lea edx, [esp + 0x24]
push ecx
push eax
push edx
call dword [esp + 0x488]
test eax, eax
jne 0x4e5ee6
lea eax, [esp + 0x328]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4e5d45
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x458
ret