Function at 0x4cf1c0
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 0x4cf1e1
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 0x4cf268
mov edi, 0x4ea000
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 0x4cf26d
mov byte [esp + 0x13], 0
lea eax, [esp + 0x328]
lea ecx, [esp + 0x224]
push eax
push ecx
call dword [0x4f6a30]
cmp eax, 0xffffffff
mov ebp, eax
je 0x4cf434
mov ebx, dword [esp + 0x478]
lea esi, [esp + 0x354]
mov edi, 0x4ea00c
mov ecx, 2
repe cmpsb byte [esi], byte es:[edi]
je 0x4cf416
lea esi, [esp + 0x354]
mov edi, 0x4ea05c
mov ecx, 3
repe cmpsb byte [esi], byte es:[edi]
je 0x4cf416
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 0x4cf32a
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.004ceee0
add esp, 4
test al, al
je 0x4cf3ad
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.004cef20
add esp, 0x10
test eax, eax
jl 0x4cf3ad
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 0x4cf3f9
cmp dword [esp + 0x470], 0
jle 0x4cf416
lea eax, [esp + 0x1c]
push eax
call fcn.004cee60
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.004cf1c0
add esp, 0x10
test eax, eax
je 0x4cf416
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 0x4cf436
lea eax, [esp + 0x328]
push eax
push ebp
call dword [0x4f6a0c]
test eax, eax
jne 0x4cf295
push ebp
call dword [0x4f6a40]
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x458
ret