Function at 0x41f350
Capabilities:
Check if file exists
Create directory
Get common file path
Get startup folder
Persist via run registry key
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4864cb
mov eax, dword fs:[0]
push eax
sub esp, 0x450
mov eax, dword [0x4ba1f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x422]
push ecx
mov word [ebp - 0x424], ax
call fcn.004690e0
mov ebx, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
add esp, 0xc
push 0
push 0x28
lea edx, [ebp - 0x424]
push edx
push 0
call ebx
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x49eadc
lea eax, [ebp - 0x424]
push eax
call edi
xor ecx, ecx
lea eax, [ebp - 0x424]
mov dword [ebp - 0x42c], 7
mov dword [ebp - 0x430], 0
mov word [ebp - 0x440], cx
lea edx, [eax + 2]
jmp 0x41f3f0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41f3f0
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x424]
lea esi, [ebp - 0x440]
call fcn.00401bf0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x42c], 8
mov eax, dword [ebp - 0x440]
jae 0x41f429
mov eax, esi
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call esi
test eax, eax
je 0x41f6f4
push 0
push 0x28
lea edx, [ebp - 0x424]
push edx
push 0
call ebx
push 0x499a54
lea eax, [ebp - 0x424]
push eax
call edi
lea ecx, [ebp - 0x424]
push ecx
call esi
test eax, eax
jne 0x41f472
push eax
lea edx, [ebp - 0x424]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x49eadc
lea eax, [ebp - 0x424]
push eax
call edi
xor ecx, ecx
lea eax, [ebp - 0x424]
mov dword [ebp - 0x448], 7
mov dword [ebp - 0x44c], 0
mov word [ebp - 0x45c], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41f4a6
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x424]
lea esi, [ebp - 0x45c]
call fcn.00401bf0
xor edx, edx
push 0x208
push edx
lea eax, [ebp - 0x21a]
push eax
mov word [ebp - 0x21c], dx
call fcn.004690e0
mov eax, dword [ebp - 0x440]
mov ebx, 8
add esp, 0xc
cmp dword [ebp - 0x42c], ebx
jae 0x41f4fe
lea eax, [ebp - 0x440]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x104
lea ecx, [ebp - 0x21c]
push ecx
push 0
push str.TRANSFERS_DOWNLOADV
push str.FunShion_Player
call esi
cmp word [ebp - 0x21c], 0
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
je 0x41f557
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], ebx
jae 0x41f543
lea eax, [ebp - 0x45c]
push eax
lea edx, [ebp - 0x21c]
push edx
push str.MaxDownloadSpeed
push str.Task
call edi
mov eax, dword [ebp - 0x440]
cmp dword [ebp - 0x42c], ebx
jae 0x41f56b
lea eax, [ebp - 0x440]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0
push str.MAX_TASK_NUM_LAST
push str.FunShion_Player
call esi
cmp word [ebp - 0x21c], 0
je 0x41f5b8
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], ebx
jae 0x41f5a4
lea eax, [ebp - 0x45c]
push eax
lea ecx, [ebp - 0x21c]
push ecx
push str.MaxTaskCount
push str.Task
call edi
mov eax, dword [ebp - 0x440]
cmp dword [ebp - 0x42c], ebx
jae 0x41f5cc
lea eax, [ebp - 0x440]
push eax
push 0x104
lea edx, [ebp - 0x21c]
push edx
push 0
push str.MEDIA_PATH
push str.FILE_PATH
call esi
cmp word [ebp - 0x21c], 0
je 0x41f619
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], ebx
jae 0x41f605
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x21c]
push eax
push str.MediaPath
push str.Task
call edi
mov eax, dword [ebp - 0x440]
cmp dword [ebp - 0x42c], ebx
jae 0x41f62d
lea eax, [ebp - 0x440]
push eax
push 0x104
lea ecx, [ebp - 0x21c]
push ecx
push 0
push str.SCREEN_SHORT_PATH
push str.FILE_PATH
call esi
cmp word [ebp - 0x21c], 0
je 0x41f67a
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], ebx
jae 0x41f666
lea eax, [ebp - 0x45c]
push eax
lea edx, [ebp - 0x21c]
push edx
push str.ScreenshotPath
push str.Player
call edi
mov eax, dword [ebp - 0x440]
cmp dword [ebp - 0x42c], ebx
jae 0x41f68e
lea eax, [ebp - 0x440]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0
push str.IDC_CHECK_TELE_AUTONEXT
push str.OPTION_SETTING_NOTIFY
call esi
cmp word [ebp - 0x21c], 0
je 0x41f6db
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], ebx
jae 0x41f6c7
lea eax, [ebp - 0x45c]
push eax
lea ecx, [ebp - 0x21c]
push ecx
push str.AutoPlayNext
push str.Player
call edi
cmp dword [ebp - 0x448], ebx
jb 0x41f6f9
mov edx, dword [ebp - 0x45c]
push edx
call fcn.004657ea
add esp, 4
jmp 0x41f6f9
mov ebx, 8
push 0x80000002
mov edx, 0x499a54
mov ecx, str.SoftwareMicrosoftWindowsCurrentVersionRun
call fcn.00414790
push 0x80000001
mov edx, 0x499a54
mov ecx, str.SoftwareMicrosoftWindowsCurrentVersionRun
call fcn.00414790
add esp, 8
cmp dword [ebp - 0x42c], ebx
jb 0x41f73b
mov eax, dword [ebp - 0x440]
push eax
call fcn.004657ea
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004657f5
mov esp, ebp
pop ebp
ret