Function at 0x4cf730
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f3aa6
mov eax, dword fs:[0]
push eax
sub esp, 0x2e0
mov eax, dword [0x70f200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2e8], ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2e4], eax
cmp byte [edi + 0xc], 0
je 0x4cf77d
xor al, al
jmp 0x4cfbb7
sub esp, 8
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
lea ecx, [ebp - 0x2c]
movq qword [ebp - 0x2c], xmm0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6249f8
push eax
call fcn.005dc520
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movq qword [ebp - 0x20], xmm0
call fcn.005dc5e0
push 0x4c
lea eax, [ebp - 0x7c]
push 0
push eax
call fcn.00420090
add esp, 0xc
lea ecx, [ebp - 0x7c]
call fcn.005e9520
push 0x260
lea eax, [ebp - 0x2dc]
mov byte [ebp - 4], 2
push 0
push eax
call fcn.00420090
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.005dc190
push 0x250
mov esi, eax
lea eax, [ebp - 0x2dc]
push 0
push eax
call fcn.00420090
add esp, 0xc
lea eax, [ebp - 0x2dc]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x8c], eax
cmp eax, 0xffffffff
je 0x4cf8d7
mov edx, 1
mov dword [ebp - 0x88], edx
nop dword [eax + eax]
cmp word [ebp - 0x2b0], 0x2e
jne 0x4cf876
mov cx, word [ebp - 0x2ae]
test cx, cx
je 0x4cf8a6
cmp cx, 0x2e
jne 0x4cf876
cmp word [ebp - 0x2ac], 0
je 0x4cf8a6
mov ecx, dword [ebp - 0x2dc]
test edx, edx
je 0x4cf8dd
test dl, 1
je 0x4cf88d
test ecx, 0x400
jne 0x4cf8a6
test dl, 2
je 0x4cf899
test cl, 0x10
je 0x4cf8dd
jmp 0x4cf8a6
test dl, 4
je 0x4cf8dd
test ecx, 0x10
jne 0x4cf8dd
lea ecx, [ebp - 0x2dc]
push ecx
push eax
call ebx
test eax, eax
je 0x4cf8c2
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x8c]
jmp 0x4cf850
push dword [ebp - 0x8c]
call dword [sym.imp.KERNEL32.dll_FindClose]
or eax, 0xffffffff
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x2dc]
xor edx, edx
mov byte [ebp - 4], 3
xor ebx, ebx
mov dword [ebp - 0x2e0], edx
cmp eax, 0xffffffff
je 0x4cfb38
cmp byte [edi + 0xc], 0
jne 0x4cf952
inc ebx
lea eax, [ebp - 0x2b0]
test cl, 0x10
je 0x4cf95f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0x624284
push dword [ebp - 0x2e4]
lea ecx, [ebp - 0x2c]
call fcn.005dc200
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x2c]
call fcn.005dc190
mov ecx, dword [ebp - 0x2e8]
push eax
call fcn.004cf730
test al, al
jne 0x4cfad6
mov eax, dword [ebp - 0x8c]
mov esi, dword [sym.imp.KERNEL32.dll_FindClose]
xor bl, bl
jmp 0x4cfb95
xor esi, esi
cmp word [ebp - 0x2b0], si
je 0x4cf985
nop word [eax + eax]
movzx ecx, word [eax + 2]
add eax, 2
cmp ecx, 0x2e
jne 0x4cf980
mov esi, eax
jmp 0x4cf970
test cx, cx
jne 0x4cf970
push 0
mov edx, 0x630518
mov ecx, esi
call fcn.005d8ad0
test eax, eax
jne 0x4cfad6
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x2b0]
push eax
push 0x624284
push dword [ebp - 0x2e4]
lea ecx, [ebp - 0x2c]
call fcn.005dc200
push 0
lea ecx, [ebp - 0x2c]
call fcn.005dc190
push eax
lea ecx, [ebp - 0x7c]
call fcn.005e93e0
push ecx
lea ecx, [ebp - 0x7c]
call fcn.005e9390
push eax
lea ecx, [ebp - 0x20]
call fcn.005dc510
cmp byte [edi + 0xc], 0
jne 0x4cf94c
lea ecx, [ebp - 0x20]
call fcn.005dc3a0
cmp eax, 2
jle 0x4cfa2e
push 0
lea ecx, [ebp - 0x20]
call fcn.005dc440
cmp word [eax], 0x5c
jne 0x4cfa2e
push 1
lea ecx, [ebp - 0x20]
call fcn.005dc440
cmp word [eax], 0x5c
jne 0x4cfa2e
push 2
lea ecx, [ebp - 0x20]
call fcn.005dc440
cmp word [eax], 0x3f
jne 0x4cfad6
lea ecx, [ebp - 0x20]
call fcn.005dc3a0
test eax, eax
je 0x4cfad6
lea ecx, [ebp - 0x20]
call fcn.005dc190
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4cfad6
push eax
lea ecx, [ebp - 0x20]
call fcn.005dc440
movzx eax, word [eax]
push eax
call fcn.00427181
mov esi, dword [ebp - 0x2e8]
add esp, 4
mov ecx, dword [esi + 0x20]
cmp ax, word [ecx]
jne 0x4cfa87
sub esp, 8
lea ecx, [ebp - 0x7c]
call fcn.005e9170
test al, al
jne 0x4cfad6
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x20]
call fcn.005dc190
push eax
push 0x68fb68
lea ecx, [ebp - 0x2c]
call fcn.005da780
push 1
push 0xb
lea ecx, [ebp - 0x2c]
call fcn.005dc190
push eax
push edi
mov ecx, esi
call fcn.004ceb00
inc dword [ebp - 0x2e0]
cmp byte [edi + 0xc], 0
jne 0x4cf94c
mov eax, dword [ebp - 0x8c]
cmp eax, 0xffffffff
je 0x4cfb32
lea ecx, [ebp - 0x2dc]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x4cfb13
lea ecx, [ebp - 0x2dc]
call fcn.004011a0
test al, al
mov eax, dword [ebp - 0x8c]
je 0x4cfb32
mov ecx, dword [ebp - 0x2dc]
jmp 0x4cf8f4
push dword [ebp - 0x8c]
mov esi, dword [sym.imp.KERNEL32.dll_FindClose]
call esi
mov edx, dword [ebp - 0x2e0]
or eax, 0xffffffff
mov dword [ebp - 0x8c], eax
jmp 0x4cfb3e
mov edx, dword [ebp - 0x2e0]
mov esi, dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [ebp + 0xc], 0
je 0x4cfb8e
cmp edx, ebx
jl 0x4cfb8e
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str.____Orphan_start_menu_folder
push dword [ebp - 0x2e4]
lea ecx, [ebp - 0x2c]
call fcn.005dc200
push 1
push 0xb
lea ecx, [ebp - 0x2c]
call fcn.005dc190
mov ecx, dword [ebp - 0x2e8]
push eax
push edi
call fcn.004ceb00
mov eax, dword [ebp - 0x8c]
cmp byte [edi + 0xc], 0
sete bl
cmp eax, 0xffffffff
je 0x4cfb9d
push eax
call esi
lea ecx, [ebp - 0x7c]
call fcn.005e9080
lea ecx, [ebp - 0x20]
call fcn.005dc430
lea ecx, [ebp - 0x2c]
call fcn.005dc430
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041e1b5
mov esp, ebp
pop ebp
ret 0xc