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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov dword [ebp - 4], 0
push 0x28
call fcn.00402552
add esp, 4
mov dword [ebp - 8], eax
mov ebx, eax
mov edi, eax
xor eax, eax
mov ecx, 0xa
rep stosd dword es:[edi], eax
add ebx, 4
push ebx
push 8
call fcn.00402552
add esp, 4
pop ebx
push ebx
mov dword [ebx], eax
mov ebx, eax
mov dword [ebx], 0
mov dword [ebx + 4], 0
pop ebx
add ebx, 4
push ebx
push 8
call fcn.00402552
add esp, 4
pop ebx
push ebx
mov dword [ebx], eax
mov ebx, eax
mov dword [ebx], 0
mov dword [ebx + 4], 0
pop ebx
add ebx, 4
push ebx
push 8
call fcn.00402552
add esp, 4
pop ebx
push ebx
mov dword [ebx], eax
mov ebx, eax
mov dword [ebx], 0
mov dword [ebx + 4], 0
pop ebx
add ebx, 0x14
push ebx
push 0x10c
call fcn.00402552
add esp, 4
pop ebx
mov dword [ebx], eax
mov edi, eax
mov esi, 0x40d25a
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
xor eax, eax
mov ecx, 0x41
rep stosd dword es:[edi], eax
add ebx, 4
push ebx
push 0x16
call fcn.00402552
add esp, 4
pop ebx
mov dword [ebx], eax
mov edi, eax
mov esi, 0x40d262
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
xor eax, eax
mov ecx, 0xe
rep stosb byte es:[edi], al
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x18], 0
push 0x40d248
mov ebx, dword [ebp + 8]
push dword [ebx]
mov ecx, 2
call fcn.00401081
add esp, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], esp
mov eax, dword [ebp - 8]
push eax
push 0x13e
call fcn.00402552
add esp, 4
mov edi, eax
pop ebx
push eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], eax
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push ebx
mov ebx, dword [ebx]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push ebx
mov ebx, dword [ebx]
add ebx, 8
mov ecx, 0x104
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
add ebx, 8
mov ecx, 0xe
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop ebx
add ebx, 4
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
nop
nop
nop
nop
cmp dword [ebp - 0x20], esp
je 0x401727
push 6
call fcn.0040255e
add esp, 4
push eax
mov ebx, dword [ebp - 0x24]
push ebx
mov edi, dword [ebp - 0x28]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push edi
mov edi, dword [edi]
push ebx
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 8
pop edi
add edi, 4
push edi
mov edi, dword [edi]
push ebx
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 8
pop edi
add edi, 4
push edi
mov edi, dword [edi]
push ebx
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 8
pop edi
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push ebx
push edi
push 1
mov eax, 2
call fcn.00402710
add esp, 4
pop edi
pop ebx
push ebx
push edi
mov edi, dword [edi]
mov ecx, dword [edi]
add edi, 4
test ecx, ecx
je 0x4017f9
mov eax, dword [edi]
add edi, 4
dec ecx
je 0x4017f7
imul eax, dword [edi]
jmp 0x4017ec
mov ecx, eax
cmp ecx, 0x104
jle 0x401806
mov ecx, 0x104
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop edi
pop ebx
add edi, 4
add ebx, 0x104
push ebx
push edi
push 1
mov eax, 2
call fcn.00402710
add esp, 4
pop edi
pop ebx
push ebx
push edi
mov edi, dword [edi]
mov ecx, dword [edi]
add edi, 4
test ecx, ecx
je 0x401844
mov eax, dword [edi]
add edi, 4
dec ecx
je 0x401842
imul eax, dword [edi]
jmp 0x401837
mov ecx, eax
cmp ecx, 0xe
jle 0x40184e
mov ecx, 0xe
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop edi
pop ebx
add edi, 4
add ebx, 0xe
call fcn.0040254c
add esp, 4
pop eax
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x401876
push ebx
call fcn.0040254c
add esp, 4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 4], eax
mov ebx, dword [ebp - 8]
add ebx, 0x20
mov dword [ebp - 0x1c], ebx
push 0xa0000101
push 0
mov ebx, dword [ebp - 0x1c]
push dword [ebx]
push 1
mov ebx, 0x168
call fcn.00402ae0
add esp, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
push eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x4018ba
push ebx
call fcn.0040254c
add esp, 4
pop eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x4018cd
jmp 0x401d40
mov ebx, dword [ebp - 8]
add ebx, 0x20
mov dword [ebp - 0x1c], ebx
push 0xa0000101
push 0
mov ebx, dword [ebp - 0x1c]
push dword [ebx]
push 1
mov ebx, 0x168
call fcn.00402ae0
add esp, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
push eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x40190b
push ebx
call fcn.0040254c
add esp, 4
pop eax
mov dword [ebp - 0xc], eax
push 0x40d24a
push dword [ebp - 0xc]
call fcn.0040144d
add esp, 8
cmp eax, 0
jne 0x40192d
jmp 0x401ae4
push 0x40d24d
push dword [ebp - 0xc]
call fcn.0040144d
add esp, 8
cmp eax, 0
jne 0x40194b
jmp 0x401ae4
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x1c], ebx
push 0x80000301
push 0
push 0x10
push 0x80000301
push 0
mov ebx, dword [ebp - 0x1c]
push dword [ebx]
push 2
mov ebx, 0xc4
call fcn.00402db0
add esp, 0x1c
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x10
jne 0x4019d7
cmp dword [ebp + 0x10], 0
je 0x4019d2
push 0x40d24f
push dword [ebp - 0xc]
mov ebx, dword [ebp + 8]
push dword [ebx]
mov ecx, 3
call fcn.00401081
add esp, 0xc
mov dword [ebp - 0x1c], eax
push 1
push 1
push dword [ebp + 0xc]
lea eax, [ebp - 0x1c]
push eax
call fcn.00401519
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x4019d2
push ebx
call fcn.0040254c
add esp, 4
jmp 0x401ae4
mov ebx, dword [ebp - 8]
add ebx, 0x10
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
fild dword [ebx]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fmul qword [0x40d252]
fstp qword [ebp - 0x2c]
mov ebx, dword [ebp - 8]
add ebx, 0x14
mov dword [ebp - 0x30], ebx
fld qword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
fild dword [ebx]
fstp qword [ebp - 0x38]
fadd qword [ebp - 0x38]
fstp qword [ebp - 0x40]
fld qword [ebp - 0x40]
call fcn.004014ea
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
push 0x80000002
push 0
push 0
mov ebx, 9
call fcn.00401511
push 0x80000004
push 0
push 0x40d248
push 0x80000004
push 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
jne 0x401a53
mov eax, 0x40d237
push eax
push 6
mov ebx, 0x180
call fcn.00402e10
add esp, 0x4c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
test ebx, ebx
je 0x401a7f
push ebx
call fcn.0040254c
add esp, 4
pop eax
mov ebx, dword [ebp + 8]
mov dword [ebx], eax
push 0x80000006
push 0
push dword [ebp + 0xc]
push 1
mov ebx, 0x9dc
call fcn.00403130
add esp, 0x10
mov dword [ebp - 0x1c], eax
push dword [ebp + 8]
call fcn.00401db2
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0xc]
push eax
call fcn.00401db2
mov dword [ebp - 0x24], eax
push 1
push dword [ebp - 0x14]
push 1
push dword [ebp - 0x24]
push 1
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
call fcn.00401dce
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x401ae4
jmp 0x401d19
mov dword [ebp - 0x1c], esp
mov eax, dword [ebp - 8]
push eax
push 0x13e
call fcn.00402552
add esp, 4
mov edi, eax
pop ebx
push eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push ebx
mov ebx, dword [ebx]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push ebx
mov ebx, dword [ebx]
add ebx, 8
mov ecx, 0x104
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
add ebx, 8
mov ecx, 0xe
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop ebx
add ebx, 4
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
nop
nop
nop
nop
cmp dword [ebp - 0x1c], esp
je 0x401bd0
push 6
call fcn.0040255e
add esp, 4
push eax
mov ebx, dword [ebp - 0x20]
push ebx
mov edi, dword [ebp - 0x24]
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push edi
mov edi, dword [edi]
push ebx
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 8
pop edi
add edi, 4
push edi
mov edi, dword [edi]
push ebx
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 8
pop edi
add edi, 4
push edi
mov edi, dword [edi]
push ebx
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
pop ebx
add ebx, 8
pop edi
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
mov eax, dword [ebx]
add ebx, 4
mov dword [edi], eax
add edi, 4
push ebx
push edi
push 1
mov eax, 2
call fcn.00402710
add esp, 4
pop edi
pop ebx
push ebx
push edi
mov edi, dword [edi]
mov ecx, dword [edi]
add edi, 4
test ecx, ecx
je 0x401ca2
mov eax, dword [edi]
add edi, 4
dec ecx
je 0x401ca0
imul eax, dword [edi]
jmp 0x401c95
mov ecx, eax
cmp ecx, 0x104
jle 0x401caf
mov ecx, 0x104
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop edi
pop ebx
add edi, 4
add ebx, 0x104
push ebx
push edi
push 1
mov eax, 2
call fcn.00402710
add esp, 4
pop edi
pop ebx
push ebx
push edi
mov edi, dword [edi]
mov ecx, dword [edi]
add edi, 4
test ecx, ecx
je 0x401ced
mov eax, dword [edi]
add edi, 4
dec ecx
je 0x401ceb
imul eax, dword [edi]
jmp 0x401ce0
mov ecx, eax
cmp ecx, 0xe
jle 0x401cf7
mov ecx, 0xe
mov esi, ebx
rep movsb byte es:[edi], byte [esi]
pop edi
pop ebx
add edi, 4
add ebx, 0xe
call fcn.0040254c
add esp, 4
pop eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jne 0x4018cd
mov dword [ebp - 0x1c], esp
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FindClose]
nop
nop
nop
nop
cmp dword [ebp - 0x1c], esp
je 0x401d3b
push 6
call fcn.0040255e
add esp, 4
jmp 0x401d40
mov ebx, dword [ebp - 8]
push ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
push ebx
call fcn.0040254c
add esp, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
push ebx
call fcn.0040254c
add esp, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
push ebx
call fcn.0040254c
add esp, 4
pop ebx
add ebx, 0x14
push ebx
mov ebx, dword [ebx]
push ebx
call fcn.0040254c
add esp, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
push ebx
call fcn.0040254c
add esp, 4
pop ebx
call fcn.0040254c
add esp, 4
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x401dac
push ebx
call fcn.0040254c
add esp, 4
mov esp, ebp
pop ebp
ret 0x10