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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x9f
push 0
push 0
dec ecx
jne 0x41ca21
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
call fcn.00404c70
mov eax, dword [ebp - 0xc]
call fcn.004045bc
xor eax, eax
push ebp
push 0x41d37e
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x41d083
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.004049f4
mov edx, dword [ebp - 4]
cmp word [edx + eax*2 - 2], 0x5c
je 0x41ca89
lea eax, [ebp - 4]
mov edx, 0x41d394
call fcn.00404a00
lea eax, [ebp - 0x43c]
mov ecx, 0x41d39c
mov edx, dword [ebp - 4]
call fcn.00404a60
mov edx, dword [ebp - 0x43c]
lea eax, [ebp - 0x438]
call fcn.004043b8
mov eax, dword [ebp - 0x438]
call fcn.00407e28
test al, al
je 0x41cac9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41d291
lea edx, [ebp - 0x440]
mov eax, dword [ebp - 4]
call fcn.00407830
mov eax, dword [ebp - 0x440]
push eax
lea edx, [ebp - 0x444]
mov eax, dword [0x423954]
call fcn.00407830
mov eax, dword [ebp - 0x444]
pop edx
call fcn.00404bdc
dec eax
jne 0x41cb0a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41d291
lea edx, [ebp - 0x448]
mov eax, dword [ebp - 4]
call fcn.00407830
mov eax, dword [ebp - 0x448]
push eax
lea edx, [ebp - 0x44c]
mov eax, dword [0x423950]
call fcn.00407830
mov eax, dword [ebp - 0x44c]
pop edx
call fcn.00404bdc
dec eax
jne 0x41cb4b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41d291
mov eax, dword [0x1367804]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x41cbb8
inc ebx
xor esi, esi
lea ecx, [ebp - 0x454]
mov edx, esi
mov eax, dword [0x1367804]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x454]
lea eax, [ebp - 0x450]
call fcn.004049d4
mov eax, dword [ebp - 0x450]
push eax
lea edx, [ebp - 0x458]
mov eax, dword [ebp - 4]
call fcn.00407830
mov edx, dword [ebp - 0x458]
pop eax
call fcn.00404bdc
test eax, eax
je 0x41cbb4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41d291
inc esi
dec ebx
jne 0x41cb5f
push 1
call sub.kernel32.dll_SetErrorMode
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x45c]
mov ecx, 0x41d3b4
mov edx, dword [ebp - 4]
call fcn.00404a60
mov eax, dword [ebp - 0x45c]
call fcn.004049e4
push eax
call sub.kernel32.dll_FindFirstFileW
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x41d076
lea eax, [ebp - 0x460]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.0040439c
mov eax, dword [ebp - 0x460]
mov edx, 0x41d3c0
call fcn.00404518
je 0x41d04f
lea eax, [ebp - 0x464]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.0040439c
mov eax, dword [ebp - 0x464]
mov edx, 0x41d3cc
call fcn.00404518
je 0x41d04f
mov eax, dword [ebp - 0x268]
and eax, 0x10
cmp eax, 0x10
jne 0x41ccb1
cmp byte [ebp - 5], 0
jne 0x41d04f
push dword [ebp - 4]
lea eax, [ebp - 0x46c]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
push dword [ebp - 0x46c]
push 0x41d394
lea eax, [ebp - 0x468]
mov edx, 3
call fcn.00404ac4
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0xc]
mov dl, byte [ebp - 5]
call fcn.0041ca18
jmp 0x41d04f
lea eax, [ebp - 0x474]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
mov eax, dword [ebp - 0x474]
lea edx, [ebp - 0x470]
call fcn.00407830
mov eax, dword [ebp - 0x470]
call fcn.0041c970
test al, al
jne 0x41d04f
lea eax, [ebp - 0x478]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
mov eax, dword [ebp - 0x478]
lea edx, [ebp - 0x18]
call fcn.0041c8c4
lea eax, [ebp - 0x484]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
mov ecx, dword [ebp - 0x484]
lea eax, [ebp - 0x480]
mov edx, dword [ebp - 4]
call fcn.00404a60
mov eax, dword [ebp - 0x480]
lea edx, [ebp - 0x47c]
call fcn.00407830
mov eax, dword [ebp - 0x47c]
push eax
lea edx, [ebp - 0x490]
xor eax, eax
call fcn.004029d0
mov edx, dword [ebp - 0x490]
lea eax, [ebp - 0x48c]
call fcn.004049d4
mov eax, dword [ebp - 0x48c]
lea edx, [ebp - 0x488]
call fcn.00407830
mov edx, dword [ebp - 0x488]
pop eax
call fcn.00404b0c
je 0x41d04f
lea eax, [ebp - 0x49c]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
mov ecx, dword [ebp - 0x49c]
lea eax, [ebp - 0x498]
mov edx, dword [ebp - 4]
call fcn.00404a60
mov eax, dword [ebp - 0x498]
lea edx, [ebp - 0x494]
call fcn.00407830
mov eax, dword [ebp - 0x494]
push eax
lea eax, [ebp - 0x4a8]
mov edx, dword [0x423958]
call fcn.004049d4
mov ecx, dword [ebp - 0x4a8]
lea eax, [ebp - 0x4a4]
mov edx, dword [0x423950]
call fcn.00404a60
mov eax, dword [ebp - 0x4a4]
lea edx, [ebp - 0x4a0]
call fcn.00407830
mov edx, dword [ebp - 0x4a0]
pop eax
call fcn.00404b0c
je 0x41d04f
cmp byte [0x4239a1], 0
jne 0x41ce2e
mov byte [ebp - 0x11], 1
jmp 0x41ce90
mov byte [ebp - 0x11], 1
xor ebx, ebx
mov bl, byte [0x4239a1]
dec ebx
test ebx, ebx
jl 0x41ce90
inc ebx
mov esi, 0x423da4
lea edx, [ebp - 0x4ac]
mov eax, dword [ebp - 0x18]
call fcn.00407830
mov eax, dword [ebp - 0x4ac]
push eax
lea eax, [ebp - 0x4b4]
mov edx, dword [esi]
call fcn.004049d4
mov eax, dword [ebp - 0x4b4]
lea edx, [ebp - 0x4b0]
call fcn.00407830
mov edx, dword [ebp - 0x4b0]
pop eax
call fcn.00404b0c
jne 0x41ce8a
mov byte [ebp - 0x11], 0
add esi, 4
dec ebx
jne 0x41ce45
cmp byte [ebp - 0x11], 0
je 0x41cf07
cmp byte [0x4239a0], 0
jne 0x41cea5
mov byte [ebp - 0x11], 1
jmp 0x41cf07
mov byte [ebp - 0x11], 0
xor ebx, ebx
mov bl, byte [0x4239a0]
dec ebx
test ebx, ebx
jl 0x41cf07
inc ebx
mov esi, 0x4239a4
lea edx, [ebp - 0x4b8]
mov eax, dword [ebp - 0x18]
call fcn.00407830
mov eax, dword [ebp - 0x4b8]
push eax
lea eax, [ebp - 0x4c0]
mov edx, dword [esi]
call fcn.004049d4
mov eax, dword [ebp - 0x4c0]
lea edx, [ebp - 0x4bc]
call fcn.00407830
mov edx, dword [ebp - 0x4bc]
pop eax
call fcn.00404b0c
jne 0x41cf01
mov byte [ebp - 0x11], 1
add esi, 4
dec ebx
jne 0x41cebc
cmp byte [ebp - 0x11], 0
je 0x41d04f
lea edx, [ebp - 0x4c4]
mov eax, dword [ebp - 0x18]
call fcn.00407830
mov eax, dword [ebp - 0x4c4]
push eax
push 0x41d3d8
push dword [0x423958]
push 0x41d3e4
lea eax, [ebp - 0x4cc]
mov edx, 3
call fcn.0040448c
mov edx, dword [ebp - 0x4cc]
lea eax, [ebp - 0x4c8]
call fcn.004049d4
mov edx, dword [ebp - 0x4c8]
pop eax
call fcn.00404b0c
je 0x41d04f
cmp byte [ebp - 5], 0
jne 0x41cf83
mov eax, dword [ebp - 4]
mov edx, dword [0x42394c]
call fcn.00404b0c
je 0x41d04f
lea eax, [ebp - 0x4d0]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
mov eax, dword [ebp - 0x4d0]
mov edx, dword [0x1366658]
call fcn.00404b0c
je 0x41d04f
cmp byte [0x1367660], 0
je 0x41d007
mov eax, dword [ebp - 0x18]
call fcn.0041a918
test al, al
je 0x41d04f
lea eax, [ebp - 0x4d4]
mov edx, dword [ebp - 0xc]
call fcn.004049d4
mov eax, dword [ebp - 0x4d4]
push eax
lea eax, [ebp - 0x4d8]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
mov edx, dword [ebp - 0x4d8]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.0041b790
jmp 0x41d04f
mov eax, dword [ebp - 0x18]
call fcn.0041a918
test al, al
jne 0x41d04f
lea eax, [ebp - 0x4dc]
mov edx, dword [ebp - 0xc]
call fcn.004049d4
mov eax, dword [ebp - 0x4dc]
push eax
lea eax, [ebp - 0x4e0]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.004049b8
mov edx, dword [ebp - 0x4e0]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.0041b790
lea eax, [ebp - 0x268]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_FindNextFileW
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x41cbf7
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41d174
xor eax, eax
push ebp
push 0x41d1d1
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x4f0]
mov ecx, dword [0x1366658]
mov edx, dword [ebp - 4]
call fcn.00404a60
mov eax, dword [ebp - 0x4f0]
call fcn.0041c790
test al, al
jne 0x41d1c4
lea eax, [ebp - 0x4f4]
mov ecx, dword [0x1366658]
mov edx, dword [ebp - 4]
call fcn.00404a60
mov eax, dword [ebp - 0x4f4]
call fcn.00419794
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41d291
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41d388
lea eax, [ebp - 0x500]
call fcn.0040482c
lea eax, [ebp - 0x4fc]
mov edx, 2
call fcn.00404128
lea eax, [ebp - 0x4f4]
mov edx, 3
call fcn.00404844
lea eax, [ebp - 0x4e8]
mov edx, 2
call fcn.00404128
lea eax, [ebp - 0x4e0]
mov edx, 5
call fcn.00404844
lea eax, [ebp - 0x4cc]
call fcn.00404104
lea eax, [ebp - 0x4c8]
mov edx, 0xe
call fcn.00404844
lea eax, [ebp - 0x490]
call fcn.00404104
lea eax, [ebp - 0x48c]
mov edx, 0xa
call fcn.00404844
lea eax, [ebp - 0x464]
mov edx, 2
call fcn.00404128
lea eax, [ebp - 0x45c]
mov edx, 2
call fcn.00404844
lea eax, [ebp - 0x454]
call fcn.00404104
lea eax, [ebp - 0x450]
mov edx, 6
call fcn.00404844
lea eax, [ebp - 0x438]
call fcn.00404104
lea eax, [ebp - 0x18]
call fcn.0040482c
lea eax, [ebp - 0xc]
call fcn.00404104
lea eax, [ebp - 4]
call fcn.0040482c
ret