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

Disassembly:
sub esp, 0x648
mov dl, byte [0x5ea438]
push esi
push edi
mov esi, ecx
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x151]
mov byte [esp + 0x150], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x251]
mov byte [esp + 0x250], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [esp + 0x65c]
mov dword [esp + 0xc], esi
test edi, edi
jne 0x565fe5
mov dword [esp + 0x65c], 0x5beb48
mov edi, dword [esp + 0x65c]
push 2
push 0x5e5160
push edi
mov byte [esp + 0x17], 0
call fcn.00588640
add esp, 0xc
test eax, eax
je 0x566010
push 0x5c3f6c
push edi
call fcn.00587c20
add esp, 8
test eax, eax
je 0x566015
mov byte [esp + 0xb], 1
mov eax, dword [esi]
mov ecx, dword [eax + 0x21c]
test ecx, ecx
jne 0x56606e
mov ecx, esi
call fcn.00565eb0
mov ecx, dword [esi]
mov dl, byte [esp + 0x660]
mov byte [ecx + 0x218], dl
mov eax, dword [esi]
mov cl, byte [eax + 0x218]
test cl, cl
je 0x56606e
test edi, edi
je 0x56606e
push edi
lea ecx, [eax + 0x210]
call fcn.00566650
mov eax, dword [esi]
add eax, 0x210
mov eax, dword [eax]
test eax, eax
jne 0x566065
mov eax, 0x5ea438
push eax
call fcn.00589901
add esp, 4
mov eax, dword [esi]
push 0xff
mov ecx, dword [eax + 0x21c]
inc ecx
mov dword [eax + 0x21c], ecx
lea eax, [esp + 0x154]
push eax
call fcn.0058b903
add esp, 8
test eax, eax
je 0x5662b8
push edi
call fcn.0059ba1d
add esp, 4
cmp eax, 0xffffffff
je 0x5662b8
push ebx
mov ebx, dword [esp + 0x65c]
test bl, bl
push ebp
je 0x56614e
lea ecx, [esp + 0x258]
push 0x5c2ab8
push ecx
call fcn.0058815f
add esp, 8
lea edx, [esp + 0x18]
lea eax, [esp + 0x258]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x56614e
test byte [esp + 0x18], 0x10
je 0x566137
mov edi, 0x5beb48
lea esi, [esp + 0x44]
mov ecx, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x566133
mov edi, 0x5c2ab4
lea esi, [esp + 0x44]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x566133
mov edx, dword [esp + 0x65c]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
push edx
call fcn.00565f80
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x5660ec
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [esp + 0x65c]
lea ecx, [esp + 0x18]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x566284
mov bl, 0x5c
test byte [esp + 0x18], 0x10
jne 0x566269
mov al, byte [0x5ea438]
mov ecx, 0xbf
mov byte [esp + 0x358], al
xor eax, eax
lea edi, [esp + 0x359]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [esp + 0x13]
test al, al
je 0x5661bc
mov ecx, dword [esp + 0x664]
lea edx, [esp + 0x358]
push ecx
push 0x5c2c18
push edx
call fcn.0058815f
jmp 0x56621c
mov esi, dword [esp + 0x664]
mov edi, 0x5beb48
mov ecx, 2
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5661fe
mov ecx, dword [esp + 0x664]
lea edx, [esp + 0x158]
push ecx
push edx
lea eax, [esp + 0x360]
push str._s_s
push eax
call fcn.0058815f
mov esi, dword [esp + 0x24]
add esp, 0x10
jmp 0x56621f
lea ecx, [esp + 0x158]
lea edx, [esp + 0x358]
push ecx
push 0x5c2c18
push edx
call fcn.0058815f
mov esi, dword [esp + 0x20]
add esp, 0xc
lea edi, [esp + 0x358]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x566255
cmp byte [esp + ecx + 0x357], bl
je 0x566255
lea edi, [esp + 0x358]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ax, word [0x5c2aac]
mov word [edi - 1], ax
lea ecx, [esp + 0x358]
lea edx, [esp + 0x18]
push ecx
mov ecx, dword [esi]
push edx
call fcn.00565ca0
lea eax, [esp + 0x18]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x56616e
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x158]
push ecx
call fcn.0059ba1d
mov eax, dword [esi]
add esp, 4
mov ecx, dword [eax + 0x21c]
pop ebp
dec ecx
pop ebx
mov dword [eax + 0x21c], ecx
mov edx, dword [esi]
mov eax, dword [edx + 0x21c]
test eax, eax
jne 0x5662b8
mov ecx, esi
call fcn.00565f50
pop edi
pop esi
add esp, 0x648
ret 0x10