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

Disassembly:
sub esp, 0x580
mov eax, dword [esp + 0x588]
push ebx
push ebp
mov ebp, dword [esp + 0x594]
push esi
push edi
mov byte [ebp], 0
mov dword [esp + 0x14], 0
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x491006
mov ebx, dword [esp + 0x594]
mov edi, ebx
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x491020
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x491020
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x1c]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
xor ecx, ecx
cmp eax, 0xffffffff
sete cl
mov dword [esp + 0x10], eax
mov edi, ecx
mov ecx, ebx
lea eax, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x491055
sub ecx, eax
mov eax, dword [esp + 0x598]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x491068
sub eax, esi
sub ecx, eax
test edi, edi
mov byte [ecx + ebx], dl
jne 0x4910da
lea ebx, [ebx]
test byte [esp + 0x1c], 0x10
mov eax, dword [esp + 0x5a8]
je 0x4912e9
test eax, eax
je 0x4910c6
lea edx, [esp + 0x48]
push 0x5f56a8
push edx
call fcn.005f1860
add esp, 8
test eax, eax
je 0x4910c6
lea eax, [esp + 0x48]
push 0x5f8a40
push eax
call fcn.005f1860
add esp, 8
test eax, eax
jne 0x4912ee
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x491080
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x4910ec
mov edx, eax
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebp, dword [esp + 0x5b0]
dec ebp
test ebp, ebp
jle 0x4916fb
mov edi, ebx
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x491100
mov eax, dword [0x5f59c4]
lea ecx, [esp + 0x1c]
push ecx
push ebx
mov dword [edi], eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
xor edx, edx
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
mov eax, ebx
sete dl
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x491130
sub eax, esi
test edx, edx
mov byte [eax + ebx - 3], cl
jne 0x4916eb
test byte [esp + 0x1c], 0x10
je 0x4916d3
lea edx, [esp + 0x48]
push 0x5f56a8
push edx
call fcn.005f1860
add esp, 8
test eax, eax
je 0x4916d3
lea eax, [esp + 0x48]
push 0x5f8a40
push eax
call fcn.005f1860
add esp, 8
test eax, eax
je 0x4916d3
lea eax, [esp + 0x48]
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x491190
mov edi, ebx
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4911a0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
dec edi
jmp 0x4911c0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4911c0
mov cx, word [0x5f7b90]
mov edx, dword [esp + 0x5f4]
mov eax, dword [esp + 0x5f0]
push edx
mov edx, dword [esp + 0x5ec]
push eax
mov eax, dword [esp + 0x5ec]
mov word [edi], cx
mov ecx, dword [esp + 0x5f4]
push ecx
mov ecx, dword [esp + 0x5ec]
push edx
mov edx, dword [esp + 0x5ec]
push eax
mov eax, dword [esp + 0x5ec]
push ecx
mov ecx, dword [esp + 0x5ec]
push edx
mov edx, dword [esp + 0x5ec]
push eax
mov eax, dword [esp + 0x5ec]
push ecx
mov ecx, dword [esp + 0x5ec]
push edx
mov edx, dword [esp + 0x5ec]
push eax
mov eax, dword [esp + 0x5ec]
push ecx
mov ecx, dword [esp + 0x5ec]
mov esi, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x5ec]
push eax
mov eax, dword [esp + 0x5ec]
push ecx
mov ecx, dword [esp + 0x5e8]
push edx
mov edx, dword [esp + 0x5e8]
push eax
mov eax, dword [esp + 0x5e8]
push ebp
push ecx
mov ecx, dword [esp + 0x5ec]
push edx
mov edx, dword [esp + 0x5e8]
push eax
sub ecx, esi
mov esi, dword [esp + 0x5f0]
push ecx
push esi
push edx
push ebx
call fcn.00490fe0
add esp, 0x64
test eax, eax
jl 0x4916ff
mov ecx, dword [esp + 0x14]
add ecx, eax
cmp byte [esi], 0
mov dword [esp + 0x14], ecx
jne 0x4916eb
push 0x5c
push ebx
call fcn.005da7f0
add esp, 8
test eax, eax
je 0x4912da
push 0x5c
push ebx
mov byte [eax], 0
call fcn.005da7f0
add esp, 8
test eax, eax
je 0x4912da
mov byte [eax + 1], 0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
push ecx
jmp 0x4916dd
cmp eax, 1
je 0x49135b
lea edx, [esp + 0x48]
push 0x2e
push edx
call fcn.005d9b20
mov esi, dword [esp + 0x5a0]
add esp, 8
test eax, eax
jne 0x491345
push 0x2e
push esi
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x491345
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x160]
push 0x5f8ab4
push ecx
call fcn.005d9929
push 1
push 0
lea edx, [esp + 0x170]
push edx
push esi
call fcn.0058df80
add esp, 0x1c
jmp 0x491357
push 1
push 0
lea edx, [esp + 0x50]
push edx
push esi
call fcn.0058df80
add esp, 0x10
test eax, eax
jne 0x49136a
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
push ecx
jmp 0x4910d0
mov eax, dword [esp + 0x5ec]
test eax, eax
je 0x49141c
mov edx, ebp
mov eax, ebx
sub edx, ebx
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x491380
lea eax, [esp + 0x48]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x491390
mov edi, ebp
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4913a0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x5d4]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4913cc
push ebp
call fcn.00542e10
add esp, 4
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x5ec]
cmp dword [esi + 0x1c], edi
jne 0x4913f0
mov edx, dword [esi]
push ebp
push edx
call fcn.005f1860
add esp, 8
test eax, eax
je 0x49135b
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x4913d7
mov edx, dword [esp + 0x5ec]
push edi
push ebp
push edx
call fcn.004e8850
add esp, 0xc
test eax, eax
mov byte [ebp], 0
je 0x491638
mov dword [esp + 0x5ec], eax
mov eax, dword [esp + 0x5f0]
test eax, eax
je 0x49145a
mov ecx, dword [esp + 0x5a8]
test ecx, ecx
jne 0x491447
movzx ecx, word [eax + 2]
mov dx, word [eax]
shl ecx, 0x10
inc dx
movzx edx, dx
or ecx, edx
mov dword [eax], ecx
jmp 0x49145a
mov cx, word [eax + 2]
inc cx
movzx edx, cx
movzx ecx, word [eax]
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x5a0]
inc edx
test eax, eax
mov dword [esp + 0x14], edx
jle 0x491478
mov ecx, edx
cmp ecx, eax
jl 0x491614
mov eax, dword [esp + 0x5a4]
test eax, eax
jne 0x491492
mov eax, dword [esp + 0x5ac]
test eax, eax
je 0x491614
mov edx, ebp
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x491498
lea eax, [esp + 0x48]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4914a8
mov edi, ebp
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4914b4
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x5d4]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4914e0
push ebp
call fcn.00542e10
add esp, 4
mov esi, dword [esp + 0x5a4]
test esi, esi
je 0x49151e
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebp
push 0
push 0x180
push esi
call edi
cmp eax, 0xffffffff
je 0x491634
cmp eax, 0xfffffffe
je 0x491634
mov edx, dword [0x63cabc]
push edx
push eax
push 0x19a
push esi
call edi
mov eax, dword [esp + 0x5ac]
test eax, eax
je 0x4915fc
push 0
push eax
push 0
call fcn.004e8850
add esp, 0xc
test eax, eax
mov dword [esp + 0x18], eax
je 0x491634
mov edx, dword [esp + 0x5b4]
mov esi, dword [esp + 0x5f0]
xor ecx, ecx
test edx, edx
mov edx, dword [esp + 0x5f4]
push edx
push esi
mov esi, dword [esp + 0x5f0]
push esi
mov esi, dword [esp + 0x5f0]
push esi
mov esi, dword [esp + 0x5f0]
push esi
mov esi, dword [esp + 0x5f0]
push esi
mov esi, dword [esp + 0x5f0]
push esi
mov esi, dword [esp + 0x5ec]
push esi
mov esi, dword [esp + 0x5ec]
push 0
push esi
mov esi, dword [esp + 0x5f0]
push 0
push 0
push esi
mov esi, dword [esp + 0x5f8]
push esi
mov esi, dword [esp + 0x5f0]
push 0
push esi
mov esi, dword [esp + 0x5fc]
push 0
setne cl
push 0
push 0
push 0
mov dword [esp + 0x610], 0
inc ecx
inc esi
push esi
push ecx
push ebp
push eax
mov eax, dword [edx]
push eax
call fcn.00441110
lea ecx, [esp + 0x7c]
push ecx
mov esi, eax
call fcn.004e8c50
add esp, 0x68
test esi, esi
je 0x491648
cmp esi, 2
je 0x49165c
mov eax, dword [esp + 0x5ec]
test eax, eax
mov byte [ebp], 0
je 0x491614
call fcn.00423650
test eax, eax
jne 0x491670
mov eax, dword [esp + 0x5a0]
test eax, eax
jle 0x491625
cmp dword [esp + 0x14], eax
jge 0x49167e
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push eax
jmp 0x4910d0
mov byte [ebp], 0
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x580
ret
pop edi
pop esi
mov byte [ebp], 0
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x580
ret
pop edi
pop esi
mov byte [ebp], 0
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x580
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x580
ret
mov edx, ebp
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x491684
lea eax, [esp + 0x48]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x491694
mov edi, ebp
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4916a0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x5d4]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4916cc
push ebp
call fcn.00542e10
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x4916f5
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x491145
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x4916fb
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x580
ret