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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x460
mov eax, dword [0x30012970]
push ebx
push esi
push edi
push dword [ebp + 8]
mov dword [ebp - 4], eax
push 0x30001f5c
mov esi, 0x104
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.30003db4
add esp, 0x10
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + eax*2 - 0x20c]
je 0x3000ddc2
lea eax, [ebp - 0x20c]
mov ecx, ebx
sub ecx, eax
sar ecx, 1
mov eax, esi
sub eax, ecx
cmp eax, 0x7fffffff
mov dword [ebp + 0xc], eax
ja 0x3000dcd3
push 0x300019d0
push eax
push ebx
call fcn.30002c36
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x460], eax
je 0x3000ddc2
test byte [ebp - 0x45c], 0x10
je 0x3000dd8b
lea eax, [ebp - 0x430]
push 0x300019cc
push eax
call fcn.30007aee
test eax, eax
pop ecx
pop ecx
jne 0x3000dd8b
lea eax, [ebp - 0x430]
push 0x300019c4
push eax
call fcn.30007aee
test eax, eax
pop ecx
pop ecx
jne 0x3000dd8b
cmp dword [ebp + 0xc], 0x7fffffff
ja 0x3000dd4a
lea eax, [ebp - 0x430]
push eax
push dword [ebp + 0xc]
push ebx
call fcn.30002c36
push dword [ebp + 0x20]
lea eax, [ebp - 0x20c]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 1
push eax
call fcn.3000dc5e
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x3000df49
cmp dword [ebp + 0xc], 0x7fffffff
ja 0x3000dd8b
push 0x300019d0
push dword [ebp + 0xc]
push ebx
call fcn.30002c36
lea eax, [ebp - 0x45c]
push eax
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x3000ddb5
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindClose]
or dword [ebp - 0x460], 0xffffffff
cmp dword [ebp - 0x460], 0xffffffff
jne 0x3000dcf6
and word [ebx], 0
lea eax, [ebp - 0x20c]
push eax
call fcn.3000686b
test eax, eax
pop ecx
je 0x3000de5d
lea eax, [ebp - 0x20c]
push eax
mov edi, 0x30013cd8
push edi
call fcn.30007b1b
test eax, eax
pop ecx
pop ecx
je 0x3000de01
mov eax, dword [0x300140ec]
and eax, dword [ebp + 0x20]
cmp ax, word [ebp + 0x20]
je 0x3000de5d
lea eax, [ebp - 0x20c]
push eax
push esi
push edi
call fcn.30002c36
mov ax, word [ebp + 0x20]
mov edi, 0x338
mov word [0x300140ec], ax
call fcn.3000916b
lea eax, [ebp - 0x20c]
push eax
call fcn.300091e6
push dword [ebp + 0x1c]
mov eax, dword [0x300163b0]
push dword [ebp + 0x18]
lea eax, [ebp + eax*2 - 0x20c]
push eax
push dword [ebp + 0x20]
push 1
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.300096e1
add esp, 0x20
test eax, eax
jne 0x3000df3c
lea eax, [ebp - 0x20c]
mov ecx, ebx
sub ecx, eax
sar ecx, 1
mov eax, esi
sub eax, ecx
cmp eax, 0x7fffffff
mov dword [ebp + 0xc], eax
ja 0x3000de83
push 0x300019d0
push eax
push ebx
call fcn.30002c36
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x460], eax
je 0x3000df3a
mov eax, dword [ebp - 0x45c]
test al, 0x10
jne 0x3000df03
push dword [ebp + 0x20]
and word [ebx], 0
push dword [ebp + 0x1c]
and eax, 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x43c]
push eax
push 1
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.3000bdda
mov edi, eax
add esp, 0x2c
test edi, edi
jne 0x3000df49
cmp dword [ebp + 0xc], 0x7fffffff
ja 0x3000df03
push 0x300019d0
push dword [ebp + 0xc]
push ebx
call fcn.30002c36
lea eax, [ebp - 0x45c]
push eax
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x3000df2d
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindClose]
or dword [ebp - 0x460], 0xffffffff
cmp dword [ebp - 0x460], 0xffffffff
jne 0x3000dea6
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.300101bf
leave
ret
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
jmp 0x3000df3c