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

Disassembly:
sub esp, 0x254
push ebx
push ebp
mov ebp, dword [esp + 0x260]
mov eax, edx
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x18], eax
mov byte [ebp], 0
mov dword [esp + 0x14], 0
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x485017
mov edi, ebx
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x485025
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x20]
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]
lea ebx, [ebx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x485060
sub ecx, eax
mov eax, dword [esp + 0x18]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x485070
sub eax, esi
sub ecx, eax
test edi, edi
mov byte [ecx + ebx], dl
jne 0x4850dc
test byte [esp + 0x20], 0x10
mov eax, dword [esp + 0x274]
je 0x4852e1
test eax, eax
je 0x4850c8
lea edx, [esp + 0x4c]
push 0x5a55c8
push edx
call fcn.005a299c
add esp, 8
test eax, eax
je 0x4850c8
lea eax, [esp + 0x4c]
push 0x5a81c0
push eax
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4852ea
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x485082
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x4850ec
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebp, dword [esp + 0x27c]
dec ebp
test ebp, ebp
jle 0x4856f9
mov edi, ebx
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x485100
mov ecx, dword [0x5a81f0]
lea edx, [esp + 0x20]
push edx
push ebx
mov dword [edi], ecx
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 ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x485130
sub eax, esi
test edx, edx
mov byte [eax + ebx - 3], cl
jne 0x4856e9
test byte [esp + 0x20], 0x10
je 0x4856d1
lea eax, [esp + 0x4c]
push 0x5a55c8
push eax
call fcn.005a299c
add esp, 8
test eax, eax
je 0x4856d1
lea ecx, [esp + 0x4c]
push 0x5a81c0
push ecx
call fcn.005a299c
add esp, 8
test eax, eax
je 0x4856d1
lea eax, [esp + 0x4c]
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x485190
mov edi, ebx
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4851a0
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 0x4851c0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4851c0
mov dx, word [0x5a73e0]
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
push eax
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
mov word [edi], dx
mov edx, dword [esp + 0x2c0]
push edx
mov edx, dword [esp + 0x2b8]
push eax
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
push eax
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
push eax
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x298]
push eax
mov eax, dword [esp + 0x2b8]
push ecx
mov ecx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b4]
push eax
mov eax, dword [esp + 0x2b4]
push ecx
mov ecx, dword [esp + 0x2b4]
push ebp
push edx
mov edx, dword [esp + 0x2b8]
push eax
push ecx
sub edx, edi
push edx
mov edx, dword [esp + 0x70]
push esi
mov ecx, ebx
call fcn.00484ff0
test eax, eax
jl 0x4856fd
mov ecx, edi
add ecx, eax
cmp byte [esi], 0
mov dword [esp + 0x14], ecx
jne 0x4856e9
push 0x5c
push ebx
call fcn.00591bd0
add esp, 8
test eax, eax
je 0x4852d2
push 0x5c
push ebx
mov byte [eax], 0
call fcn.00591bd0
add esp, 8
test eax, eax
je 0x4852d2
mov byte [eax + 1], 0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
push ecx
jmp 0x4856db
cmp eax, 1
je 0x485617
lea edx, [esp + 0x4c]
push 0x2e
push edx
call fcn.005912e0
mov esi, dword [esp + 0x20]
add esp, 8
test eax, eax
jne 0x485350
push 0x2e
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x485350
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x164]
push 0x5a823c
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 1
push 0
lea edx, [esp + 0x168]
mov ecx, esi
call fcn.00560640
test eax, eax
jne 0x485367
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x20]
push edx
push eax
jmp 0x4850d2
push 1
push 0
lea edx, [esp + 0x54]
mov ecx, esi
call fcn.00560640
test eax, eax
je 0x4850c8
mov eax, dword [esp + 0x2b8]
test eax, eax
je 0x485417
mov edx, ebp
mov eax, ebx
sub edx, ebx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x485380
lea eax, [esp + 0x4c]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x485390
mov edi, ebp
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4853a0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x2a0]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4853ca
mov ecx, ebp
call fcn.00524470
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x2b8]
cmp dword [esi + 0x1c], edi
jne 0x4853ee
mov eax, dword [esi]
push ebp
push eax
call fcn.005a299c
add esp, 8
test eax, eax
je 0x4850c8
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x4853d5
mov ecx, dword [esp + 0x2b8]
push edi
mov edx, ebp
call fcn.004d38f0
test eax, eax
mov byte [ebp], 0
je 0x48562a
mov dword [esp + 0x2b8], eax
mov eax, dword [esp + 0x2bc]
test eax, eax
je 0x485455
mov ecx, dword [esp + 0x274]
test ecx, ecx
jne 0x485442
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 0x485455
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 + 0x26c]
inc edx
test eax, eax
mov dword [esp + 0x14], edx
jle 0x485473
mov ecx, edx
cmp ecx, eax
jl 0x485606
mov eax, dword [esp + 0x270]
test eax, eax
jne 0x48548d
mov eax, dword [esp + 0x278]
test eax, eax
je 0x485606
mov edx, ebp
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x485493
lea eax, [esp + 0x4c]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4854a3
mov edi, ebp
sub eax, edx
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4854b0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x2a0]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4854da
mov ecx, ebp
call fcn.00524470
mov esi, dword [esp + 0x270]
test esi, esi
je 0x485518
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebp
push 0
push 0x180
push esi
call edi
cmp eax, 0xffffffff
je 0x485626
cmp eax, 0xfffffffe
je 0x485626
mov edx, dword [0x5c9d64]
push edx
push eax
push 0x19a
push esi
call edi
mov edx, dword [esp + 0x278]
test edx, edx
je 0x4855ee
push 0
xor ecx, ecx
call fcn.004d38f0
test eax, eax
mov dword [esp + 0x1c], eax
je 0x485626
mov esi, dword [esp + 0x2c0]
mov edx, dword [esp + 0x2bc]
push esi
push edx
mov edx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2b8]
push edx
mov edx, dword [esp + 0x2b8]
mov edi, dword [esp + 0x2a0]
push 0
push edx
mov edx, dword [esp + 0x2bc]
push 0
push 0
push edx
mov edx, dword [esp + 0x2c4]
push edx
mov edx, dword [esp + 0x2bc]
push 0
push edx
mov edx, dword [esp + 0x2c8]
xor ecx, ecx
test edi, edi
setne cl
push 0
push 0
push 0
push 0
mov dword [esp + 0x2dc], 0
inc ecx
inc edx
push edx
push ecx
mov ecx, dword [esi]
push ebp
mov edx, eax
call fcn.0043a4f0
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.004d3d60
test esi, esi
je 0x48563c
cmp esi, 2
je 0x485652
mov eax, dword [esp + 0x2b8]
test eax, eax
mov byte [ebp], 0
je 0x485606
call fcn.00421150
test eax, eax
jne 0x485668
mov eax, dword [esp + 0x26c]
test eax, eax
jle 0x485617
cmp dword [esp + 0x14], eax
jge 0x485678
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
push ecx
jmp 0x4850d2
mov byte [ebp], 0
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x254
ret 0x5c
pop edi
pop esi
mov byte [ebp], 0
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x254
ret 0x5c
pop edi
pop esi
mov byte [ebp], 0
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x254
ret 0x5c
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x254
ret 0x5c
mov edx, ebp
mov eax, ebx
sub edx, ebx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x485680
lea eax, [esp + 0x4c]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x485690
mov edi, ebp
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4856a0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x2a0]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4856ca
mov ecx, ebp
call fcn.00524470
mov edx, dword [esp + 0x10]
push edx
jmp 0x4856f3
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x20]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x485145
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x4856f9
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret 0x5c