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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x474
push ebx
push esi
push edi
xor esi, esi
push dword [ebp + 8]
mov dword [ebp - 4], esi
call fcn.12016fa1
test eax, eax
pop ecx
je 0x12017b1d
cmp dword [ebp + 0x18], esi
je 0x1201787b
push dword [ebp + 0x1c]
push 1
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [ebp + 0x18]
add esp, 0x10
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], esi
push eax
push dword [ebp + 0xc]
call fcn.12017247
pop ecx
test eax, eax
pop ecx
je 0x12017af2
and byte [ebp - 0x474], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x473]
push dword [ebp + 8]
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x474]
push eax
call esi
mov ebx, 0x104
lea eax, [ebp - 0x474]
push ebx
push eax
call fcn.1201747d
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
pop ecx
pop ecx
lea eax, [ebp - 0x474]
push 0x120ad320
push eax
call edi
lea eax, [ebp - 0x370]
push eax
lea eax, [ebp - 0x474]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [ebp - 8], eax
je 0x12017b24
mov dword [ebp - 4], 1
xor eax, eax
push 1
push eax
push eax
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x12017937
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x1201790c
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp + 8]
lea eax, [ebp - 0x230]
push eax
call esi
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.1201747d
pop ecx
lea eax, [ebp - 0x344]
pop ecx
push eax
lea eax, [ebp - 0x230]
push eax
call edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x12c]
push eax
call esi
lea eax, [ebp - 0x12c]
push ebx
push eax
call fcn.1201747d
pop ecx
lea eax, [ebp - 0x344]
pop ecx
push eax
lea eax, [ebp - 0x12c]
push eax
call edi
test byte [ebp - 0x370], 0x10
jne 0x120179dc
cmp dword [ebp + 0x18], 0
je 0x120179bd
push dword [ebp + 0x1c]
lea eax, [ebp - 0x12c]
push 0
push eax
lea eax, [ebp - 0x230]
push eax
call dword [ebp + 0x18]
add esp, 0x10
push dword [ebp + 0x14]
lea eax, [ebp - 0x12c]
push dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.12017b2c
add esp, 0x10
mov dword [ebp - 4], eax
lea eax, [ebp - 0x370]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x120179fa
cmp dword [ebp - 4], 0
jne 0x1201790c
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 4], 0
je 0x12017b24
lea eax, [ebp - 0x370]
push eax
lea eax, [ebp - 0x474]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [ebp - 8], eax
je 0x12017b24
mov dword [ebp - 4], 1
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp + 8]
lea eax, [ebp - 0x12c]
push eax
call esi
lea eax, [ebp - 0x12c]
push ebx
push eax
call fcn.1201747d
pop ecx
lea eax, [ebp - 0x344]
pop ecx
push eax
lea eax, [ebp - 0x12c]
push eax
call edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x230]
push eax
call esi
lea eax, [ebp - 0x230]
push ebx
push eax
call fcn.1201747d
pop ecx
lea eax, [ebp - 0x344]
pop ecx
push eax
lea eax, [ebp - 0x230]
push eax
call edi
test byte [ebp - 0x370], 0x10
je 0x12017ac9
cmp byte [ebp - 0x344], 0x2e
je 0x12017ac9
push dword [ebp + 0x1c]
lea eax, [ebp - 0x230]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.12017843
add esp, 0x18
mov dword [ebp - 4], eax
lea eax, [ebp - 0x370]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x12017ae7
cmp dword [ebp - 4], 0
jne 0x12017a34
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x12017b24
cmp dword [ebp + 0x10], esi
je 0x12017b24
cmp dword [ebp + 0xc], esi
mov eax, dword [ebp + 0xc]
jne 0x12017b04
mov eax, 0x120b7bd0
push dword [ebp - 0xc]
push eax
push str.ERROR:_Cant_create___s____lu_
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.12056d50
add esp, 0x14
jmp 0x12017b24
mov dword [ebp - 4], 1
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret