Function at 0x4b0560
Capabilities:
Enumerate files on windows

Disassembly:
sub esp, 0x170
push ebx
push ebp
push esi
push edi
mov edi, 0x8cccd0
xor eax, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], 0x8ccccc
jmp 0x4b0590
mov edi, 0x8cccd0
mov eax, dword [esp + 0x30]
xor ebp, ebp
test eax, eax
jne 0x4b064f
push str.custom
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.004f2b80
add esp, 4
call fcn.00412a60
mov ebx, dword [eax]
mov esi, dword [ebx - 4]
test esi, esi
jl 0x4b0613
test ebx, ebx
je 0x4b0613
mov ecx, dword [esp + 0x14]
cmp ebx, ecx
je 0x4b0613
test esi, esi
je 0x4b0601
lea edi, [esp + 0x14]
call fcn.004f4a30
push esi
mov esi, dword [esp + 0x18]
push ebx
push esi
call dword [sym.imp.MSVCR71.dll_memmove]
mov edx, dword [esi - 4]
lea eax, [esi - 4]
add esp, 0xc
mov dword [esp + 0x18], eax
mov byte [esi + edx], 0
mov edi, 0x8cccd0
jmp 0x4b0613
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
je 0x4b0613
mov byte [ecx], 0
mov dword [eax], 0
mov eax, dword [esp + 0x34]
add eax, 0xfffffff8
je 0x4b062c
cmp eax, 0x8cccc8
je 0x4b062c
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff8
mov dword [esp + 0x34], edi
je 0x4b0649
cmp eax, 0x8cccc8
je 0x4b0649
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov dword [esp + 0x3c], edi
jmp 0x4b0688
cmp dword [esp + 0x14], str.custom
je 0x4b0688
mov esi, 6
lea edi, [esp + 0x14]
call fcn.004f4a30
push esi
mov esi, dword [esp + 0x18]
push str.custom
push esi
call dword [sym.imp.MSVCR71.dll_memmove]
lea eax, [esi - 4]
mov dword [esp + 0x24], eax
mov eax, dword [eax]
add esp, 0xc
mov byte [esi + eax], 0
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx]
test ebx, ebx
jl 0x4b06d1
lea esi, [ebx + 1]
cmp esi, ebx
jle 0x4b06b4
lea edi, [esp + 0x14]
call fcn.004f4a30
mov eax, dword [esp + 0x14]
mov edx, dword [eax - 4]
lea ecx, [eax - 4]
mov dword [esp + 0x18], ecx
mov byte [eax + edx], 0
mov eax, dword [esp + 0x14]
push 1
add ebx, eax
push 0x70e1b4
push ebx
call dword [sym.imp.MSVCR71.dll_memmove]
add esp, 0xc
jmp 0x4b06d1
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x184]
cmp ebp, dword [edi - 4]
mov esi, ebp
jge 0x4b06f9
test ebp, ebp
jl 0x4b06f9
push 0x3b
add ebp, edi
push ebp
call dword [sym.imp.MSVCR71.dll_strchr]
add esp, 8
test eax, eax
je 0x4b06f9
sub eax, edi
jmp 0x4b06fc
or eax, 0xffffffff
test eax, eax
mov dword [esp + 0x2c], eax
lea ebx, [esp + 0x184]
mov edx, esi
jl 0x4b0718
mov ecx, eax
sub ecx, esi
inc eax
mov dword [esp + 0x2c], eax
jmp 0x4b071d
mov ecx, dword [edi - 4]
sub ecx, esi
lea edi, [esp + 0x28]
call fcn.004f2f20
mov ecx, edi
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x1c]
call fcn.004abb50
mov edi, dword [eax]
mov esi, dword [edi - 4]
test esi, esi
jl 0x4b0796
test edi, edi
je 0x4b0796
mov ebx, dword [esp + 0x1c]
cmp edi, ebx
je 0x4b079a
test esi, esi
je 0x4b0783
jle 0x4b076e
cmp esi, dword [ebx - 8]
jle 0x4b076b
lea eax, [esi + 0x20]
and eax, 0xffffffe0
dec eax
lea ecx, [esp + 0x1c]
call fcn.004f49c0
mov ebx, dword [esp + 0x1c]
mov dword [ebx - 4], esi
push esi
push edi
push ebx
call dword [sym.imp.MSVCR71.dll_memmove]
mov eax, dword [ebx - 4]
add esp, 0xc
mov byte [ebx + eax], 0
jmp 0x4b079a
mov eax, dword [ebx - 4]
test eax, eax
je 0x4b079a
mov byte [ebx], 0
mov dword [ebx - 4], 0
jmp 0x4b079a
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
add eax, 0xfffffff8
je 0x4b07b3
cmp eax, 0x8cccc8
je 0x4b07b3
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff8
mov esi, 0x8cccd0
mov dword [esp + 0x38], esi
je 0x4b07d5
cmp eax, 0x8cccc8
je 0x4b07d5
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
lea ecx, [esp + 0x40]
push ecx
push ebx
mov dword [esp + 0x30], esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x4b08e5
mov ebx, 0x8cccd0
lea eax, [esp + 0x6c]
mov dword [esp + 0x24], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b0800
sub eax, edx
mov esi, eax
js 0x4b0865
test esi, esi
je 0x4b084b
jle 0x4b0832
cmp esi, dword [0x8cccc8]
jle 0x4b082f
lea eax, [esi + 0x20]
and eax, 0xffffffe0
dec eax
lea ecx, [esp + 0x24]
call fcn.004f49c0
mov ebx, dword [esp + 0x24]
mov dword [ebx - 4], esi
push esi
lea edx, [esp + 0x70]
push edx
push ebx
call dword [sym.imp.MSVCR71.dll_memmove]
mov eax, dword [ebx - 4]
add esp, 0xc
mov byte [ebx + eax], 0
jmp 0x4b0865
mov eax, dword [0x8ccccc]
test eax, eax
je 0x4b0865
mov byte [0x8cccd0], 0
mov dword [0x8ccccc], 0
mov esi, dword [esp + 0x188]
xor eax, eax
lea edx, [esp + 0x24]
mov ecx, esi
call fcn.004b1320
cmp eax, 0xffffffff
je 0x4b0885
mov byte [esp + 0x13], 0
jmp 0x4b08a7
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 8]
jb 0x4b0898
mov eax, dword [esi + 0x14]
add eax, edi
push esi
call fcn.004b1010
lea ecx, [esp + 0x24]
push ecx
call fcn.004b1270
mov byte [esp + 0x13], 1
lea eax, [ebx - 8]
test eax, eax
je 0x4b08be
cmp eax, 0x8cccc8
je 0x4b08be
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov al, byte [esp + 0x13]
test al, al
je 0x4b08ca
inc dword [esp + 0x20]
lea edx, [esp + 0x40]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4b07f0
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x2c]
test eax, eax
jge 0x4b06cd
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 2
mov dword [esp + 0x30], eax
jl 0x4b058b
mov eax, dword [esp + 0x14]
add eax, 0xfffffff8
pop edi
pop esi
pop ebp
pop ebx
je 0x4b0920
cmp eax, 0x8cccc8
je 0x4b0920
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0xc]
add eax, 0xfffffff8
je 0x4b0939
cmp eax, 0x8cccc8
je 0x4b0939
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x174]
add eax, 0xfffffff8
je 0x4b0955
cmp eax, 0x8cccc8
je 0x4b0955
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x10]
add esp, 0x170
ret