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

Disassembly:
push 0xffffffffffffffff
push 0x44553d
mov eax, dword fs:[0]
push eax
sub esp, 0x1ec
mov eax, dword [0x45a4d0]
xor eax, esp
mov dword [esp + 0x1e8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45a4d0]
xor eax, esp
push eax
lea eax, [esp + 0x200]
mov dword fs:[0], eax
mov eax, dword [esp + 0x214]
mov esi, dword [esp + 0x210]
mov ebp, dword [esp + 0x218]
xor ebx, ebx
mov dword [esp + 0x28], eax
mov eax, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x17], bl
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401350
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x70]
call fcn.00402770
mov dword [esp + 0x208], ebx
mov eax, dword [esp + 0x7c]
cmp eax, ebx
je 0x4013ac
lea esi, [eax - 1]
cmp eax, esi
ja 0x40137f
call fcn.004436b6
cmp dword [esp + 0x80], 0x10
mov eax, dword [esp + 0x6c]
jae 0x401391
lea eax, [esp + 0x6c]
mov al, byte [eax + esi]
cmp al, 0x2f
je 0x4013ac
cmp al, 0x5c
je 0x4013ac
push 1
push 0x44c870
lea eax, [esp + 0x70]
call fcn.00402080
cmp ebp, ebx
je 0x401512
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x401512
cmp eax, ebx
jbe 0x401512
mov byte [esp + 0x18], 0x5c
mov ecx, dword [esp + 0x7c]
push 1
lea edx, [esp + 0x1c]
add ecx, 0xfffffffe
push edx
lea edi, [esp + 0x70]
call fcn.004023d0
mov edi, eax
cmp edi, 0xffffffff
je 0x4014ee
push ebx
mov eax, ebp
call fcn.00401f40
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
call fcn.00402220
mov byte [esp + 0x208], 1
mov eax, dword [esp + 0x44]
test eax, eax
je 0x401473
lea esi, [eax - 1]
cmp eax, esi
ja 0x401449
call fcn.004436b6
cmp dword [esp + 0x48], 0x10
mov eax, dword [esp + 0x34]
jae 0x401458
lea eax, [esp + 0x34]
mov al, byte [eax + esi]
cmp al, 0x2f
je 0x401473
cmp al, 0x5c
je 0x401473
push 1
push 0x44c870
lea eax, [esp + 0x38]
call fcn.00402080
mov eax, dword [esp + 0x7c]
sub eax, edi
inc eax
push eax
lea ecx, [edi + 1]
lea esi, [esp + 0x50]
lea edx, [esp + 0x6c]
call fcn.00401ec0
lea eax, [esp + 0x30]
mov edx, esi
mov byte [esp + 0x208], 2
call fcn.00402f10
mov esi, 0x10
test al, al
jne 0x4015d0
cmp dword [esp + 0x64], esi
jb 0x4014be
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004110df
add esp, 4
mov byte [esp + 0x208], 0
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], 0
mov byte [esp + 0x50], 0
cmp dword [esp + 0x48], esi
jb 0x4014ee
mov edx, dword [esp + 0x34]
push edx
call fcn.004110df
add esp, 4
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
cmp ebx, eax
jb 0x4013e0
xor ebx, ebx
push 1
push 0x44c85c
lea eax, [esp + 0x70]
call fcn.00402080
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x90]
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x94], 0
call fcn.00402220
mov byte [esp + 0x208], 3
cmp dword [esp + 0x9c], 0x10
mov eax, dword [esp + 0x88]
jae 0x401570
lea eax, [esp + 0x88]
lea edx, [esp + 0xbc]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [esp + 0x24], eax
cmp eax, 0xffffffff
je 0x4019df
lea esp, [esp]
test byte [esp + 0xbc], 0x10
je 0x4019c2
mov ecx, 0x44c868
lea eax, [esp + 0xe8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40162d
test dl, dl
je 0x4015cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40162d
add eax, 2
add ecx, 2
test dl, dl
jne 0x4015b0
xor eax, eax
jmp 0x401632
cmp dword [esp + 0x64], esi
jb 0x4015e3
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004110df
add esp, 4
xor ebx, ebx
mov edi, 0xf
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
cmp dword [esp + 0x48], esi
jb 0x401609
mov edx, dword [esp + 0x34]
push edx
call fcn.004110df
add esp, 4
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], 0
cmp dword [esp + 0x80], esi
jb 0x401a42
mov eax, dword [esp + 0x6c]
push eax
jmp 0x401a3a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4019c2
mov ecx, 0x44c86c
lea eax, [esp + 0xe8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401666
test dl, dl
je 0x401662
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401666
add eax, 2
add ecx, 2
test dl, dl
jne 0x401646
xor eax, eax
jmp 0x40166b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4019c2
mov esi, dword [esp + 0x2c]
xor ebx, ebx
mov eax, esi
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401690
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.00402770
mov byte [esp + 0x208], 4
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x4016ea
lea esi, [eax - 1]
cmp eax, esi
ja 0x4016c0
call fcn.004436b6
cmp dword [esp + 0x48], 0x10
mov eax, dword [esp + 0x34]
jae 0x4016cf
lea eax, [esp + 0x34]
mov al, byte [eax + esi]
cmp al, 0x2f
je 0x4016ea
cmp al, 0x5c
je 0x4016ea
push 1
push 0x44c870
lea eax, [esp + 0x38]
call fcn.00402080
lea eax, [esp + 0xe8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4016f4
sub eax, edx
push eax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x38]
call fcn.00402080
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x40174d
lea esi, [eax - 1]
cmp eax, esi
ja 0x401723
call fcn.004436b6
cmp dword [esp + 0x48], 0x10
mov eax, dword [esp + 0x34]
jae 0x401732
lea eax, [esp + 0x34]
mov al, byte [eax + esi]
cmp al, 0x2f
je 0x40174d
cmp al, 0x5c
je 0x40174d
push 1
push 0x44c870
lea eax, [esp + 0x38]
call fcn.00402080
mov ebp, dword [esp + 0x1c]
cmp ebp, ebx
je 0x401979
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x401979
mov dword [esp + 0x20], ebx
cmp eax, ebx
jbe 0x4018fe
mov ecx, dword [esp + 0x44]
push 1
dec ecx
push 0x44c870
lea edi, [esp + 0x70]
call fcn.004023d0
mov esi, eax
cmp esi, 0xffffffff
je 0x4018d4
push ebx
mov eax, ebp
call fcn.00401f40
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], 0
mov byte [esp + 0x5c], 0
call fcn.00402220
mov byte [esp + 0x208], 5
mov eax, dword [esp + 0x60]
test eax, eax
je 0x401815
lea edi, [eax - 1]
cmp eax, edi
ja 0x4017eb
call fcn.004436b6
cmp dword [esp + 0x64], 0x10
mov eax, dword [esp + 0x50]
jae 0x4017fa
lea eax, [esp + 0x50]
mov al, byte [eax + edi]
cmp al, 0x2f
je 0x401815
cmp al, 0x5c
je 0x401815
push 1
push 0x44c870
lea eax, [esp + 0x54]
call fcn.00402080
mov ecx, dword [esp + 0x44]
sub ecx, esi
inc ecx
push ecx
lea ecx, [esi + 1]
lea esi, [esp + 0xa4]
lea edx, [esp + 0x34]
call fcn.00401ec0
cmp dword [esp + 0x64], 0x10
mov ecx, dword [esp + 0x50]
jae 0x40183f
lea ecx, [esp + 0x50]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x60]
mov eax, esi
cmp esi, edi
jb 0x401852
mov eax, edi
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xa4]
mov edx, ebp
cmp ebx, 0x10
jae 0x40186e
lea edx, [esp + 0xa4]
call section..text
test eax, eax
jne 0x401888
cmp esi, edi
jb 0x401888
cmp esi, edi
setne al
test eax, eax
je 0x40192e
cmp ebx, 0x10
jb 0x401896
push ebp
call fcn.004110df
add esp, 4
mov byte [esp + 0x208], 4
cmp dword [esp + 0x64], 0x10
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
jb 0x4018d0
mov edx, dword [esp + 0x50]
push edx
call fcn.004110df
add esp, 4
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x20]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
mov dword [esp + 0x20], ebx
cmp ebx, eax
jb 0x401784
cmp byte [esp + 0x17], 0
je 0x401975
cmp byte [esp + 0x17], 0
mov byte [esp + 0x208], 3
sete dl
cmp dword [esp + 0x48], 0x10
mov byte [esp + 0x17], dl
jb 0x4019c2
mov eax, dword [esp + 0x34]
push eax
jmp 0x4019ba
mov byte [esp + 0x17], 1
cmp ebx, 0x10
jb 0x401941
push ebp
call fcn.004110df
add esp, 4
cmp dword [esp + 0x64], 0x10
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
jb 0x401905
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004110df
add esp, 4
jmp 0x401905
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0x30]
push ecx
call fcn.00401fe0
mov eax, dword [esp + 0x34]
mov esi, 0x10
cmp dword [esp + 0x48], esi
jae 0x40199a
lea eax, [esp + 0x34]
push 1
push ebp
push ebx
push eax
call fcn.004012d0
add esp, 0x10
mov byte [esp + 0x208], 3
cmp dword [esp + 0x48], esi
jb 0x4019c2
mov edx, dword [esp + 0x34]
push edx
call fcn.004110df
add esp, 4
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0xbc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x401590
jmp 0x4019e5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, 0x10
cmp dword [esp + 0x9c], esi
jb 0x401a0e
mov eax, dword [esp + 0x88]
push eax
call fcn.004110df
add esp, 4
mov dword [esp + 0x9c], 0xf
mov dword [esp + 0x98], 0
mov byte [esp + 0x88], 0
cmp dword [esp + 0x80], esi
jb 0x401a42
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.004110df
add esp, 4
mov ecx, dword [esp + 0x200]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1e8]
xor ecx, esp
call fcn.0042dcb1
add esp, 0x1f8
ret