Function at 0x41cf04
Capabilities:
Create shortcut via ishelllink
Enumerate files on windows

Disassembly:
push 0x73c
mov eax, 0x43b75a
call fcn.0043815a
mov dword [ebp - 0x738], ecx
mov esi, dword [ebp + 8]
xor ebx, ebx
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
push esi
push str.Searching_for_link_files_in_:__S_folder
push ecx
mov dword [ebp - 0x748], esi
mov dword [ebp - 0x744], eax
call fcn.004026dd
add esp, 0xc
lea ecx, [ebp - 0x484]
push esi
call fcn.0040bc27
push str..lnk
lea ecx, [ebp - 0x484]
mov dword [ebp - 4], ebx
call fcn.0041d838
cmp dword [ebp - 0x470], 7
lea ecx, [ebp - 0x71c]
lea eax, [ebp - 0x484]
cmova eax, dword [ebp - 0x484]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x728], eax
cmp eax, 0xffffffff
je 0x41d540
push str.ProjectXPlayerLauncher.exe
lea ecx, [ebp - 0x4b4]
call fcn.0040bc27
mov esi, eax
push edi
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 1
call fcn.0040bc27
push esi
push eax
push dword [ebp - 0x744]
lea ecx, [ebp - 0x454]
mov byte [ebp - 4], 2
call fcn.0040cbcb
lea ecx, [ebp - 0x49c]
call fcn.00402ab8
lea ecx, [ebp - 0x4b4]
call fcn.00402ab8
mov esi, dword [ebp - 0x728]
mov byte [ebp - 4], 6
mov dword [ebp - 0x740], 0x18
cmp dword [ebp - 0x71c], 0x10
je 0x41d518
mov dword [ebp - 0x720], ebx
lea eax, [ebp - 0x720]
mov byte [ebp - 4], 7
push eax
push 0x43fefc
push 1
push ebx
push 0x43ff3c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edx, str.CLSID_ShellLink_failed
mov ecx, eax
call fcn.0041c232
mov dword [ebp - 0x724], ebx
mov byte [ebp - 4], 8
lea edx, [ebp - 0x724]
mov eax, dword [ebp - 0x720]
push edx
push 0x43fb70
push eax
mov ecx, dword [eax]
call dword [ecx]
mov edx, str.IID_IPersistFile_failed
mov ecx, eax
call fcn.0041c232
push dword [ebp - 0x748]
lea ecx, [ebp - 0x43c]
call fcn.0040bc27
lea eax, [ebp - 0x6f0]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x43c]
call fcn.0041d838
mov eax, dword [ebp - 0x724]
lea edx, [ebp - 0x43c]
cmp dword [ebp - 0x428], 7
push 2
cmova edx, dword [ebp - 0x43c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
mov edx, str.IPersistFile_Load_failed
mov ecx, eax
call fcn.0041c232
cmp dword [ebp - 0x428], 7
lea eax, [ebp - 0x43c]
mov edi, dword [ebp - 0x738]
cmova eax, dword [ebp - 0x43c]
push eax
push str.Link_found:__S
push edi
call fcn.004026dd
mov eax, dword [ebp - 0x720]
lea edx, [ebp - 0x21c]
add esp, 0xc
mov ecx, dword [eax]
push 4
push ebx
push 0x104
push edx
push eax
call dword [ecx + 0xc]
mov edx, str.psl__GetPath_failed
mov ecx, eax
call fcn.0041c232
mov esi, str.ProjectXPlayerLauncher.exe
lea eax, [ebp - 0x21c]
push esi
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x41d17a
mov eax, dword [ebp - 0x720]
lea edx, [ebp - 0x454]
cmp dword [ebp - 0x440], 7
cmova edx, dword [ebp - 0x454]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x50]
mov edx, str.psl__SetPath_failed
mov ecx, eax
call fcn.0041c232
cmp dword [ebp - 0x440], 7
lea ecx, [ebp - 0x454]
lea eax, [ebp - 0x43c]
cmova ecx, dword [ebp - 0x454]
cmp dword [ebp - 0x428], 7
push ecx
cmova eax, dword [ebp - 0x43c]
push eax
push str.Updating_link:__S_with_path:__S
jmp 0x41d2b4
push str.ProjectXStudioBeta.exe
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
xor ecx, ecx
mov esi, eax
test esi, esi
sete cl
push ecx
push str.updateExistingRobloxShortcuts_isStudio___d
push edi
call fcn.004026dd
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x447ee4
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x41d2f1
mov eax, dword [ebp - 0x720]
lea edx, [ebp - 0x424]
push 0x104
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov edx, str.updateExistingRobloxShortcuts___GetArgument_Failed
mov ecx, eax
call fcn.0041c232
push 0x447f30
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x41d258
test esi, esi
jne 0x41d4df
mov eax, dword [ebp - 0x720]
lea edx, [ebp - 0x454]
cmp dword [ebp - 0x440], 7
cmova edx, dword [ebp - 0x454]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x50]
mov edx, str.psl__SetPath_failed
mov ecx, eax
call fcn.0041c232
cmp dword [ebp - 0x428], 7
lea ecx, [ebp - 0x43c]
lea eax, [ebp - 0x454]
cmova ecx, dword [ebp - 0x43c]
cmp dword [ebp - 0x440], 7
cmova eax, dword [ebp - 0x454]
push eax
push ecx
push str.Old_studio_link___updating_link:__S_with_path:__S
jmp 0x41d2b4
mov eax, dword [ebp - 0x720]
lea edx, [ebp - 0x454]
cmp dword [ebp - 0x440], 7
cmova edx, dword [ebp - 0x454]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x50]
mov edx, str.psl__SetPath_failed
mov ecx, eax
call fcn.0041c232
cmp dword [ebp - 0x440], 7
lea ecx, [ebp - 0x454]
lea eax, [ebp - 0x43c]
cmova ecx, dword [ebp - 0x454]
cmp dword [ebp - 0x428], 7
push ecx
cmova eax, dword [ebp - 0x43c]
push eax
push str.Old_player_link___updating_link:__S_with_path:__S
push edi
call fcn.004026dd
mov eax, dword [ebp - 0x724]
lea edx, [ebp - 0x43c]
add esp, 0x10
cmp dword [ebp - 0x428], 7
cmova edx, dword [ebp - 0x43c]
mov ecx, dword [eax]
push 1
push edx
push eax
call dword [ecx + 0x18]
mov edx, str.IPersistFile_Save_failed
mov ecx, eax
call fcn.0041c232
jmp 0x41d4df
mov dword [ebp - 0x734], ebx
mov dword [ebp - 0x730], ebx
mov dword [ebp - 0x72c], ebx
push str.ProjectXStudioBeta.exe
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0xa
call fcn.0040bc27
lea eax, [ebp - 0x46c]
mov byte [ebp - 4], 0xb
push eax
push ebx
lea ecx, [ebp - 0x734]
call fcn.0041da72
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0xa
call fcn.00402ab8
push str.ProjectXStudioLauncherBeta.exe
lea ecx, [ebp - 0x46c]
call fcn.0040bc27
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x46c]
mov esi, dword [ebp - 0x730]
push eax
cmp esi, dword [ebp - 0x72c]
je 0x41d37a
mov ecx, esi
call fcn.0040bbec
push 0x18
pop eax
add esi, eax
mov dword [ebp - 0x730], esi
jmp 0x41d38c
push esi
lea ecx, [ebp - 0x734]
call fcn.0041da72
mov esi, dword [ebp - 0x730]
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0xa
call fcn.00402ab8
mov ecx, ebx
mov dword [ebp - 0x73c], ebx
mov edi, dword [ebp - 0x734]
mov eax, esi
sub eax, edi
cdq
idiv dword [ebp - 0x740]
cmp ecx, eax
jae 0x41d4d4
imul eax, ecx, 0x18
add edi, eax
mov eax, edi
cmp dword [edi + 0x14], 7
jbe 0x41d3cb
mov eax, dword [edi]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x41d551
cmp dword [edi + 0x14], 7
jbe 0x41d3e9
mov edi, dword [edi]
push edi
mov edi, dword [ebp - 0x738]
push str.Studio_bootstrapper_found_name___S
push edi
call fcn.004026dd
add esp, 0xc
lea ecx, [ebp - 0x4cc]
push dword [ebp - 0x744]
call fcn.0040bc27
push str.ProjectXStudioLauncherBeta.exe
mov edx, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x46c]
call fcn.0040c39a
pop ecx
lea ecx, [ebp - 0x4cc]
mov byte [ebp - 4], 0xf
call fcn.00402ab8
mov eax, dword [ebp - 0x720]
lea edx, [ebp - 0x46c]
cmp dword [ebp - 0x458], 7
cmova edx, dword [ebp - 0x46c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x50]
mov edx, str.psl__SetPath_failed
mov ecx, eax
call fcn.0041c232
cmp dword [ebp - 0x458], 7
lea ecx, [ebp - 0x46c]
lea eax, [ebp - 0x43c]
cmova ecx, dword [ebp - 0x46c]
cmp dword [ebp - 0x428], 7
push ecx
cmova eax, dword [ebp - 0x43c]
push eax
push str.Old_studio_link___updating_link:__S_with_path:__S
push edi
call fcn.004026dd
mov eax, dword [ebp - 0x724]
lea edx, [ebp - 0x43c]
add esp, 0x10
cmp dword [ebp - 0x428], 7
cmova edx, dword [ebp - 0x43c]
mov ecx, dword [eax]
push 1
push edx
push eax
call dword [ecx + 0x18]
mov edx, str.IPersistFile_Save_failed
mov ecx, eax
call fcn.0041c232
lea ecx, [ebp - 0x46c]
call fcn.00402ab8
lea ecx, [ebp - 0x734]
call fcn.0040f4a5
lea ecx, [ebp - 0x43c]
call fcn.00402ab8
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x724]
test eax, eax
je 0x41d4fe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x720]
test eax, eax
je 0x41d512
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x728]
lea eax, [ebp - 0x71c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x41cff2
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x454]
call fcn.00402ab8
lea ecx, [ebp - 0x484]
call fcn.00402ab8
call fcn.004380ac
ret
mov ecx, dword [ebp - 0x73c]
inc ecx
mov dword [ebp - 0x73c], ecx
jmp 0x41d3a3