Function at 0x10018598
Capabilities:
Enumerate files on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x26c
mov eax, dword [0x10086084]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x264], 0
push ebx
push esi
push edi
mov edi, ecx
xor esi, esi
mov dword [ebp - 0x26c], edi
mov dword [ebp - 0x25c], esi
test edi, edi
je 0x100185d4
mov esi, dword [edi + 0x30]
mov dword [ebp - 0x25c], esi
push 0x250
lea eax, [ebp - 0x258]
or ebx, 0xffffffff
push 0
push eax
call sub.msvcrt.dll_memset
and dword [ebp - 0x260], 0
add esp, 0xc
mov ecx, edi
call fcn.100310f1
lea ecx, [ebp - 0x260]
push ecx
push 0
mov edx, dword [eax]
mov ecx, esi
call fcn.10034ed3
mov esi, eax
test esi, esi
jns 0x10018628
push esi
push 0x4bb
mov ecx, 0x100043a0
call fcn.1003a254
jmp 0x100188a7
mov edi, dword [ebp - 0x260]
mov ecx, edi
call fcn.10080e5a
test eax, eax
je 0x10018893
mov edx, edi
mov edi, dword [ebp - 0x25c]
mov ecx, edi
call fcn.100316bb
lea eax, [ebp - 0x264]
mov ecx, edi
push eax
call fcn.100311cc
mov edx, 0x100043c0
mov ecx, eax
call fcn.1003694f
mov esi, eax
test esi, esi
jns 0x10018677
push esi
push 0x4d4
jmp 0x1001885d
lea eax, [ebp - 0x258]
push eax
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x100186d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x100186a5
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x100186be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x100186c5
movzx esi, si
or esi, 0x80070000
jmp 0x100186c3
mov esi, 0x80004005
test esi, esi
jns 0x100186df
push esi
push 0x4e2
mov ecx, 0x100043a0
call fcn.1003a254
test esi, esi
js 0x10018867
xor eax, eax
inc eax
test eax, eax
je 0x10018867
and dword [ebp - 0x260], 0
lea eax, [ebp - 0x260]
push eax
mov edx, 0x104
lea ecx, [ebp - 0x22c]
call fcn.10015a63
mov esi, eax
test esi, esi
js 0x10018857
mov edx, dword [ebp - 0x260]
lea ecx, [ebp - 0x22c]
call fcn.1001a49d
test eax, eax
jne 0x1001882a
test byte [ebp - 0x258], 0x10
je 0x1001882a
lea eax, [ebp - 0x25c]
xor esi, esi
push eax
lea edx, [ebp - 0x260]
mov dword [ebp - 0x260], esi
mov dword [ebp - 0x25c], esi
call fcn.100364bb
test eax, eax
jns 0x10018771
push eax
push 0x502
mov ecx, 0x100043a0
call fcn.1003a254
jmp 0x1001880c
cmp dword [ebp - 0x25c], 0x14
jne 0x1001880c
push 0x14
mov ecx, edi
mov dword [ebp - 0x25c], esi
call fcn.10031049
mov edx, dword [ebp - 0x260]
mov ecx, eax
call fcn.1003ab26
mov dword [ebp - 0x268], eax
mov ecx, edi
lea eax, [ebp - 0x25c]
push eax
call fcn.100311cc
lea edx, [ebp - 0x22c]
mov ecx, eax
call fcn.1003694f
mov esi, eax
test esi, esi
jns 0x100187d3
push esi
push 0x514
mov ecx, 0x100043a0
call fcn.1003a254
jmp 0x100187ee
push dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x26c]
mov edx, edi
push dword [ebp - 0x268]
call fcn.100184c7
mov esi, eax
cmp dword [ebp - 0x25c], 0
je 0x1001880c
push dword [ebp - 0x25c]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 0x260], 0
je 0x1001882a
push dword [ebp - 0x260]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
js 0x10018867
push 0x250
lea eax, [ebp - 0x258]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x258]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
jmp 0x100186e2
push esi
push 0x4f5
mov ecx, 0x100043a0
call fcn.1003a254
cmp dword [ebp - 0x264], 0
je 0x10018885
push dword [ebp - 0x264]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp ebx, 0xffffffff
je 0x100188a7
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x100188a7
test edi, edi
je 0x100188a7
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10083b20
mov esp, ebp
pop ebp
ret