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

Disassembly:
push 0x29c
mov eax, 0x10078ef6
call fcn.10060cc6
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
and dword [ebp - 0x26c], 0
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x290], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x29c], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x27c], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x278], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x274], esi
mov dword [ebp - 0x2a8], eax
and dword [ebp - 4], 0
mov eax, dword [0x100bbb3c]
mov ecx, 0x100bbb3c
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x270], eax
mov byte [ebp - 4], 1
mov esi, dword [esi + 4]
mov dword [ebp - 0x288], esi
mov byte [ebp - 0x267], 1
mov byte [ebp - 0x261], 1
cmp dword [ebp + 0x14], esi
jae 0x10050328
mov ebx, dword [ebp - 0x274]
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebx + 4]
jae 0x10050309
mov esi, dword [ebx]
mov edi, eax
shl edi, 2
add esi, edi
push 0x100aab3c
call fcn.10009af7
cmp eax, 0xffffffff
je 0x10050248
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebx + 4]
jae 0x10050309
mov eax, dword [ebx]
push 4
add eax, edi
pop ecx
lea edx, [ebp - 0x294]
call fcn.10009cbe
mov byte [ebp - 4], 2
or dword [ebp - 0x26c], 1
push eax
mov ecx, 0x100aab44
call fcn.10002772
test eax, eax
je 0x10050248
mov bl, 1
jmp 0x1005024a
xor bl, bl
mov dword [ebp - 4], 1
test byte [ebp - 0x26c], 1
je 0x1005026f
mov eax, dword [ebp - 0x294]
and dword [ebp - 0x26c], 0xfffffffe
add eax, 0xfffffff0
call fcn.10003137
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x274]
test bl, bl
jne 0x10050313
cmp eax, dword [ecx + 4]
jae 0x10050309
mov ebx, ecx
mov eax, dword [ebx]
add eax, edi
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x284], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 3
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x280], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x298]
push eax
mov byte [ebp - 4], 1
call fcn.1004ea8b
add esp, 0xc
lea edi, [ebp + 8]
mov byte [ebp - 4], 4
call fcn.10002622
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x298]
add eax, 0xfffffff0
call fcn.10003137
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x288]
jb 0x100501e8
jmp 0x10050328
push 0x80070057
call fcn.10003159
cmp eax, dword [ecx + 4]
jae 0x10050309
mov ecx, dword [ecx]
lea eax, [ecx + eax*4]
lea edi, [ebp - 0x270]
call fcn.10002622
mov eax, dword [ebp - 0x270]
cmp dword [eax - 0xc], 0
jne 0x10050351
cmp dword [ebp + 0x18], 0
jg 0x10050340
cmp dword [ebp + 0x18], 0xffffffff
jne 0x10050351
push 0x100aab50
lea eax, [ebp - 0x270]
push eax
call fcn.10003031
mov eax, dword [ebp - 0x288]
mov ebx, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp dword [ebp + 0x14], eax
jne 0x1005070a
cmp dword [ebp - 0x290], 0
mov byte [ebp - 0x262], 1
mov byte [ebp - 0x265], 0
mov byte [ebp - 0x263], 1
mov byte [ebp - 0x264], 0
jne 0x1005039b
cmp dword [ebp - 0x27c], 0
mov byte [ebp - 0x266], 0
je 0x100503a2
mov byte [ebp - 0x266], 1
mov edi, dword [ebp - 0x29c]
test edi, edi
jne 0x100503bb
mov byte [ebp - 0x268], 0
cmp dword [ebp - 0x278], edi
je 0x100503c2
mov byte [ebp - 0x268], 1
lea eax, [ebp - 0x260]
push eax
mov eax, dword [ebp - 0x2a0]
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x280], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 5
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x284], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x298]
push eax
mov byte [ebp - 4], 1
call fcn.1004ea8b
add esp, 0xc
push dword [eax]
call ebx
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x298]
add eax, 0xfffffff0
call fcn.10003137
cmp dword [ebp - 0x26c], 0xffffffff
je 0x1005070a
jmp 0x10050444
mov edi, dword [ebp - 0x29c]
mov esi, dword [ebp - 0x290]
mov ecx, 0x100aab54
lea eax, [ebp - 0x234]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1005047b
test dx, dx
je 0x10050477
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1005047b
add eax, 4
add ecx, 4
test dx, dx
jne 0x10050455
xor eax, eax
jmp 0x10050480
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100506da
mov ecx, 0x100aab58
lea eax, [ebp - 0x234]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100504b9
test dx, dx
je 0x100504b5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100504b9
add eax, 4
add ecx, 4
test dx, dx
jne 0x10050493
xor eax, eax
jmp 0x100504be
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100506da
test byte [ebp - 0x260], 0x10
jne 0x100505d7
cmp byte [ebp - 0x266], 0
je 0x100506da
mov ecx, dword [ebp - 0x2a4]
test ecx, ecx
je 0x10050526
mov eax, dword [ecx + 4]
test eax, eax
je 0x10050511
lea edx, [ebp - 0x265]
push edx
lea edx, [ebp - 0x262]
push edx
lea edx, [ebp - 0x261]
push edx
lea edx, [ebp - 0x260]
push edx
call eax
jmp 0x10050526
mov byte [ebp - 0x261], 1
mov byte [ebp - 0x262], 1
mov byte [ebp - 0x265], 0
test esi, esi
je 0x10050541
cmp byte [ebp - 0x265], 0
je 0x10050536
and dword [esi], 0
cmp byte [ebp - 0x262], 0
je 0x10050541
inc dword [esi]
cmp dword [ebp - 0x27c], 0
je 0x100506da
cmp byte [ebp - 0x265], 0
je 0x10050564
mov eax, dword [ebp - 0x27c]
xor edi, edi
call fcn.10016f9a
cmp byte [ebp - 0x262], 0
je 0x100506da
push ecx
mov eax, esp
mov dword [ebp - 0x280], esp
lea ecx, [ebp - 0x234]
push ecx
push eax
call fcn.1000304f
mov byte [ebp - 4], 6
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x28c], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x294]
push eax
mov byte [ebp - 4], 1
call fcn.1004ea8b
add esp, 0xc
mov byte [ebp - 4], 7
push dword [eax]
push dword [ebp - 0x27c]
call fcn.10005408
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x294]
jmp 0x100506d2
cmp byte [ebp - 0x268], 0
je 0x100506da
mov ecx, dword [ebp - 0x2a8]
test ecx, ecx
je 0x1005062a
mov eax, dword [ecx + 4]
test eax, eax
je 0x10050615
lea edx, [ebp - 0x264]
push edx
lea edx, [ebp - 0x263]
push edx
lea edx, [ebp - 0x261]
push edx
lea edx, [ebp - 0x260]
push edx
call eax
jmp 0x1005062a
mov byte [ebp - 0x261], 1
mov byte [ebp - 0x263], 1
mov byte [ebp - 0x264], 0
test edi, edi
je 0x10050645
cmp byte [ebp - 0x264], 0
je 0x1005063a
and dword [edi], 0
cmp byte [ebp - 0x263], 0
je 0x10050645
inc dword [edi]
cmp dword [ebp - 0x278], 0
je 0x100506da
cmp byte [ebp - 0x264], 0
je 0x10050668
mov eax, dword [ebp - 0x278]
xor edi, edi
call fcn.10016f9a
cmp byte [ebp - 0x263], 0
je 0x100506da
push ecx
mov eax, esp
mov dword [ebp - 0x28c], esp
lea ecx, [ebp - 0x234]
push ecx
push eax
call fcn.1000304f
mov byte [ebp - 4], 8
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x280], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x284]
push eax
mov byte [ebp - 4], 1
call fcn.1004ea8b
add esp, 0xc
mov byte [ebp - 4], 9
push dword [eax]
push dword [ebp - 0x278]
call fcn.10005408
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x284]
add eax, 0xfffffff0
call fcn.10003137
cmp byte [ebp - 0x261], 0
je 0x100506fe
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 0x26c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1005043e
push dword [ebp - 0x26c]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [ebp - 0x261], 0
je 0x100508ea
mov eax, dword [ebp - 0x270]
cmp dword [eax - 0xc], 0
je 0x100508ea
lea eax, [ebp - 0x260]
push eax
mov eax, dword [ebp - 0x270]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x28c], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x280], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x284]
push eax
mov byte [ebp - 4], 1
call fcn.1004ea8b
add esp, 0xc
push dword [eax]
call ebx
mov edi, eax
mov eax, dword [ebp - 0x284]
add eax, 0xfffffff0
call fcn.10003137
cmp edi, 0xffffffff
je 0x100508ea
test byte [ebp - 0x260], 0x10
je 0x100508cd
push 4
mov ecx, 0x100aab54
lea eax, [ebp - 0x234]
pop esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100507d6
test dx, dx
je 0x100507d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100507d6
add eax, esi
add ecx, esi
test dx, dx
jne 0x100507b2
xor eax, eax
jmp 0x100507db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100508cd
mov ecx, 0x100aab58
lea eax, [ebp - 0x234]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10050812
test dx, dx
je 0x1005080e
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10050812
add eax, esi
add ecx, esi
test dx, dx
jne 0x100507ee
xor eax, eax
jmp 0x10050817
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100508cd
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x288]
jne 0x10050834
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jle 0x10050834
dec ecx
jmp 0x10050837
mov ecx, dword [ebp + 0x18]
cmp eax, dword [ebp - 0x288]
je 0x10050840
inc eax
push dword [ebp - 0x2a8]
push dword [ebp - 0x2a4]
push dword [ebp - 0x278]
push dword [ebp - 0x27c]
push dword [ebp - 0x29c]
push dword [ebp - 0x290]
push ecx
push eax
push dword [ebp - 0x2a0]
push dword [ebp - 0x274]
push ecx
mov dword [ebp - 0x28c], esp
mov ebx, esp
push ecx
mov eax, esp
mov dword [ebp - 0x28c], esp
lea ecx, [ebp - 0x234]
push ecx
push eax
call fcn.1000304f
mov byte [ebp - 4], 0xb
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x280], esp
mov esi, esp
call fcn.100030df
add eax, 0x10
mov dword [esi], eax
push ebx
mov byte [ebp - 4], 1
call fcn.1004ea8b
add esp, 0xc
call fcn.10050146
add esp, 0x2c
mov byte [ebp - 0x267], al
test al, al
je 0x100508e3
lea eax, [ebp - 0x260]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x10050797
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
call fcn.10003137
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.10003137
mov al, byte [ebp - 0x267]
call fcn.10060d49
ret