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

Disassembly:
sub esp, 0x950
push ebx
push ebp
mov ebp, dword [esp + 0x95c]
push esi
test ebp, ebp
push edi
jne 0x10074272
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
mov eax, dword [esp + 0x97c]
test eax, eax
jne 0x100743ab
mov eax, dword [ebp + 0x4b]
mov edx, dword [ebp + 0x47]
mov dword [esp + 0x1c], eax
mov eax, edx
and eax, 0x4000000
xor ecx, ecx
cmp eax, 0x4000000
jne 0x100742eb
test ecx, ecx
jne 0x100742eb
mov eax, dword [ebp + 0x123]
cmp eax, 1
jne 0x100742c8
mov eax, dword [ebp + 8]
cmp eax, 4
jl 0x100742bb
cmp eax, 5
jle 0x1007434f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
cmp eax, 2
jne 0x100745fe
mov eax, dword [ebp + 8]
cmp eax, 6
jl 0x100742de
cmp eax, 8
jle 0x1007434f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
mov ecx, dword [ebp + 0x4f]
mov eax, dword [ebp + 0x53]
mov dword [esp + 0x18], ecx
mov ecx, eax
xor esi, esi
and ecx, 0x800
test esi, esi
jne 0x1007430b
cmp ecx, 0x800
je 0x1007434f
xor ecx, ecx
and eax, 0x40
test ecx, ecx
jne 0x10074319
cmp eax, 0x40
je 0x1007434f
and edx, 0x10000000
xor eax, eax
cmp edx, 0x10000000
jne 0x100745fe
test eax, eax
jne 0x100745fe
mov eax, dword [ebp + 8]
cmp eax, 5
jl 0x10074342
cmp eax, 6
jle 0x1007434f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
mov eax, dword [ebp + 0xd]
xor edx, edx
mov dx, word [ebp + 0x11]
push edx
push eax
call fcn.10074de0
add esp, 8
cmp eax, 1
jne 0x10074374
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
mov ecx, dword [ebp]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
push str.setup
push ecx
call esi
add esp, 8
test eax, eax
jne 0x1007439e
mov edx, dword [ebp]
push str.tool
push edx
call esi
add esp, 8
test eax, eax
je 0x100743ab
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
mov edi, dword [esp + 0x96c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x560]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x560]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x20]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x564]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x10074430
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
mov ebx, dword [esp + 0x970]
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
cmp eax, 1
jne 0x100745ce
mov esi, 0x10232580
lea eax, [esp + 0x4c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x1007447e
test cl, cl
je 0x1007447a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x1007447e
add eax, 2
add esi, 2
test cl, cl
jne 0x1007445a
xor eax, eax
jmp 0x10074483
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100745b9
mov esi, 0x1023257c
lea eax, [esp + 0x4c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x100744b8
test cl, cl
je 0x100744b4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x100744b8
add eax, 2
add esi, 2
test cl, cl
jne 0x10074494
xor eax, eax
jmp 0x100744bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100745b9
mov eax, dword [esp + 0x20]
and eax, 0x10
cmp al, 0x10
jne 0x1007459c
mov ecx, dword [esp + 0x14]
inc ecx
test ebx, ebx
mov dword [esp + 0x14], ecx
je 0x100745b9
mov edi, dword [esp + 0x96c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x164]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, 0x1022722c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x16c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x58]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp ebx, 0xffffffff
rep movsb byte es:[edi], byte [esi]
jne 0x10074596
push 0xffffffffffffffff
mov ecx, dword [esp + 0x978]
lea eax, [esp + 0x170]
push eax
push ecx
push ebp
call fcn.10074250
add esp, 0x1c
jmp 0x100745b9
lea edx, [ebx - 1]
push edx
jmp 0x1007457b
cmp dword [esp + 0x974], 1
jne 0x100745b9
mov edx, dword [esp + 0x968]
mov eax, dword [esp + 0x40]
cmp edx, eax
je 0x100745b9
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
jmp 0x10074448
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [esp + 0x10], 1
jne 0x100745fe
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x978]
test ecx, ecx
jne 0x100745f5
test eax, eax
je 0x1007460b
jmp 0x100745f9
test ecx, ecx
jl 0x100745fe
cmp eax, 1
je 0x1007460b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x950
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x950
ret