Function at 0x415be3
Capabilities:
Get common file path
Print debug messages
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x560d33
mov eax, dword fs:[0]
push eax
sub esp, 0xf1c
mov eax, dword [0x5d6c64]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov word [ebp - 0x26c], ax
push 0x206
push 0
lea eax, [ebp - 0x26a]
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea eax, [ebp - 0x26c]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [ebp - 0xcc0], eax
cmp dword [ebp - 0xcc0], 0
je 0x415c63
push str.RunMiniLauncher:_get_appdata_dir_failed
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor al, al
jmp 0x4160f5
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00404e60
mov dword [ebp - 0xf1c], eax
mov eax, dword [ebp - 0xf1c]
mov dword [ebp - 0xf20], eax
and dword [ebp - 4], 0
push str.TencentMiniWeGameLauncher_
push dword [ebp - 0xf20]
lea eax, [ebp - 0xc98]
push eax
call fcn.00412118
add esp, 0xc
mov byte [ebp - 4], 3
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.00406660
mov byte [ebp - 4], 2
push str.MiniLauncher.ini
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0xcb8]
push eax
call fcn.00412033
add esp, 0xc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xcb8]
call fcn.004071e0
mov dword [ebp - 0xf04], eax
push 0
push dword [ebp - 0xf04]
call dword [sym.imp.MSVCR100.dll__waccess]
pop ecx
pop ecx
test eax, eax
je 0x415d48
push str.RunMiniLauncher:_ini_file_not_exist.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov byte [ebp - 0xee9], 0
mov byte [ebp - 4], 5
push 0
push 1
lea ecx, [ebp - 0xcb8]
call fcn.00406660
mov byte [ebp - 4], 2
mov dword [ebp - 4], 6
push 0
push 1
lea ecx, [ebp - 0xc98]
call fcn.00406660
or dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0xee9]
jmp 0x4160f5
xor eax, eax
mov word [ebp - 0xc7c], ax
push 0x206
push 0
lea eax, [ebp - 0xc7a]
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0xcb8]
call fcn.004071e0
mov dword [ebp - 0xf08], eax
push dword [ebp - 0xf08]
push 0x104
lea eax, [ebp - 0xc7c]
push eax
push 0x56efdc
push 0x56efe0
push str.MiniLauncher
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0xc9c], eax
cmp dword [ebp - 0xc9c], 0
je 0x415dc0
lea eax, [ebp - 0xc7c]
push eax
call dword [sym.imp.MSVCR100.dll_wcslen]
pop ecx
test eax, eax
jne 0x415e0e
push str.RunMiniLauncher:_no_local_version.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov byte [ebp - 0xeea], 0
mov byte [ebp - 4], 7
push 0
push 1
lea ecx, [ebp - 0xcb8]
call fcn.00406660
mov byte [ebp - 4], 2
mov dword [ebp - 4], 8
push 0
push 1
lea ecx, [ebp - 0xc98]
call fcn.00406660
or dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0xeea]
jmp 0x4160f5
lea eax, [ebp - 0xc7c]
push eax
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00412033
add esp, 0xc
mov dword [ebp - 0xf24], eax
mov eax, dword [ebp - 0xf24]
mov dword [ebp - 0xf28], eax
mov byte [ebp - 4], 9
push str.MiniLauncherClient.exe
push dword [ebp - 0xf28]
lea eax, [ebp - 0xee8]
push eax
call fcn.00412118
add esp, 0xc
mov byte [ebp - 4], 0xc
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.00406660
mov byte [ebp - 4], 0xb
xor eax, eax
mov word [ebp - 0xecc], ax
push 0x206
push 0
lea eax, [ebp - 0xeca]
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0xa74], eax
push 0x104
lea eax, [ebp - 0xecc]
push eax
push dword [ebp - 0xa74]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea eax, [ebp - 0xecc]
push eax
call dword [sym.imp.MSVCR100.dll_wcsrchr]
pop ecx
pop ecx
mov dword [ebp - 0xa70], eax
cmp dword [ebp - 0xa70], 0
jne 0x415f36
push str.RunMiniLauncher:_calc_game_root_failed.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov byte [ebp - 0xeeb], 0
mov byte [ebp - 4], 0xd
push 0
push 1
lea ecx, [ebp - 0xee8]
call fcn.00406660
mov byte [ebp - 4], 4
mov byte [ebp - 4], 0xe
push 0
push 1
lea ecx, [ebp - 0xcb8]
call fcn.00406660
mov byte [ebp - 4], 2
mov dword [ebp - 4], 0xf
push 0
push 1
lea ecx, [ebp - 0xc98]
call fcn.00406660
or dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0xeeb]
jmp 0x4160f5
xor eax, eax
mov ecx, dword [ebp - 0xa70]
mov word [ecx], ax
push 0x5c
lea eax, [ebp - 0xecc]
push eax
call dword [sym.imp.MSVCR100.dll_wcsrchr]
pop ecx
pop ecx
mov dword [ebp - 0xa70], eax
cmp dword [ebp - 0xa70], 0
jne 0x415fc6
push str.RunMiniLauncher:_calc_game_root_failed_2.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov byte [ebp - 0xeec], 0
mov byte [ebp - 4], 0x10
push 0
push 1
lea ecx, [ebp - 0xee8]
call fcn.00406660
mov byte [ebp - 4], 4
mov byte [ebp - 4], 0x11
push 0
push 1
lea ecx, [ebp - 0xcb8]
call fcn.00406660
mov byte [ebp - 4], 2
mov dword [ebp - 4], 0x12
push 0
push 1
lea ecx, [ebp - 0xc98]
call fcn.00406660
or dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0xeec]
jmp 0x4160f5
xor eax, eax
mov ecx, dword [ebp - 0xa70]
mov word [ecx], ax
lea eax, [ebp - 0xecc]
mov dword [ebp - 0xcbc], eax
cmp dword [ebp - 0xcbc], 0
je 0x41601d
mov eax, dword [ebp - 0xcbc]
movzx eax, word [eax]
test eax, eax
je 0x41601d
mov eax, dword [ebp - 0xcbc]
movzx eax, word [eax]
cmp eax, 0x5c
jne 0x41600d
push 0x2f
pop eax
mov ecx, dword [ebp - 0xcbc]
mov word [ecx], ax
mov eax, dword [ebp - 0xcbc]
inc eax
inc eax
mov dword [ebp - 0xcbc], eax
jmp 0x415fdd
xor eax, eax
mov word [ebp - 0xa6c], ax
push 0x7fe
push 0
lea eax, [ebp - 0xa6a]
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea eax, [ebp - 0xecc]
push eax
push 0x5d3140
push dword [0x5ea18c]
push str._launcher_game_id_:_d__game_name_:__ws___game_root_:__ws_
lea eax, [ebp - 0xa6c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea eax, [ebp - 0xa6c]
push eax
lea ecx, [ebp - 0x64]
call fcn.00404e60
mov byte [ebp - 4], 0x13
push 0
push 0
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xee8]
push eax
call fcn.0042b875
add esp, 0x10
mov byte [ebp - 0xeed], al
mov byte [ebp - 4], 0x14
push 0
push 1
lea ecx, [ebp - 0x64]
call fcn.00406660
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 0x15
push 0
push 1
lea ecx, [ebp - 0xee8]
call fcn.00406660
mov byte [ebp - 4], 4
mov byte [ebp - 4], 0x16
push 0
push 1
lea ecx, [ebp - 0xcb8]
call fcn.00406660
mov byte [ebp - 4], 2
mov dword [ebp - 4], 0x17
push 0
push 1
lea ecx, [ebp - 0xc98]
call fcn.00406660
or dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0xeed]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004610a0
leave
ret