Function at 0x404c9f
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x890
mov eax, dword [0x44c018]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov edi, 0x208
lea eax, [ebp - 0x624]
push edi
xor ebx, ebx
push ebx
push eax
call fcn.0041a810
add esp, 0xc
lea eax, [ebp - 0x624]
mov esi, 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.XLGameUninstall_
lea eax, [ebp - 0x624]
push esi
push eax
call fcn.00421df2
add esp, 0xc
mov dword [ebp - 0x854], ebx
lea eax, [ebp - 0x854]
mov dword [ebp - 0x850], ebx
mov dword [ebp - 0x84c], ebx
push eax
lea eax, [ebp - 0x624]
push eax
call fcn.00404b43
mov ecx, eax
call fcn.00405af1
push edi
lea eax, [ebp - 0x41c]
push ebx
push eax
call fcn.0041a810
add esp, 0xc
call fcn.00404b43
push ecx
lea eax, [ebp - 0x41c]
push eax
call fcn.0040535b
call fcn.00404b43
lea eax, [ebp - 0x41c]
push eax
call fcn.00417190
pop ecx
test al, al
je 0x4050b8
push edi
lea eax, [ebp - 0x214]
push ebx
push eax
call fcn.0041a810
add esp, 0xc
lea eax, [ebp - 0x214]
push esi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov esi, eax
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push edi
lea eax, [ebp - 0x82c]
push ebx
push eax
call fcn.0041a810
add esp, 0xc
lea eax, [ebp - 0x41c]
push esi
push eax
lea eax, [ebp - 0x82c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x41c]
mov ecx, esi
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x4050b8
lea eax, [ebp - 0x41c]
mov ecx, str.libexpat.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.xlstat4.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.zlib1.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.XLBugHandler.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.XLBugReport.exe
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.libcurl.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.libeay32.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.ssleay32.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
mov ecx, str.minizip.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
lea eax, [ebp - 0x41c]
mov ecx, str.GdiPlus.dll
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
lea eax, [ebp - 0x41c]
mov ecx, str.thunder_stat.xml
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
lea eax, [ebp - 0x41c]
mov ecx, str.cacert.pem
push eax
lea edx, [ebp - 0x214]
call fcn.00404c02
pop ecx
test eax, eax
je 0x405093
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4050b8
xor eax, eax
mov dword [ebp - 0x834], ebx
mov dword [ebp - 0x830], 7
mov word [ebp - 0x844], ax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [ebp - 0x848]
mov dword [ebp - 0x848], ebx
push ecx
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
inc ebx
mov edi, eax
mov esi, ebx
cmp dword [ebp - 0x848], ebx
jle 0x404fc2
push ebx
push 0x447b1c
lea ecx, [ebp - 0x844]
call fcn.0040634c
push dword [edi + esi*4]
lea ecx, [ebp - 0x844]
call fcn.004062cc
inc esi
cmp esi, dword [ebp - 0x848]
jl 0x404f9a
push ebx
push 0x447b1c
lea ecx, [ebp - 0x844]
call fcn.0040634c
push 0xa
push 0x447b20
lea ecx, [ebp - 0x844]
call fcn.0040634c
lea ecx, [ebp - 0x214]
xor edi, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x404ff0
sub ecx, edx
lea eax, [ebp - 0x214]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x844]
call fcn.0040634c
push ebx
push 0x447b38
lea ecx, [ebp - 0x844]
call fcn.0040634c
push 0x3c
pop esi
push esi
lea eax, [ebp - 0x890]
push edi
push eax
call fcn.0041a810
lea eax, [ebp - 0x82c]
mov dword [ebp - 0x890], esi
mov dword [ebp - 0x880], eax
add esp, 0xc
cmp dword [ebp - 0x830], 8
lea eax, [ebp - 0x41c]
mov dword [ebp - 0x878], eax
lea eax, [ebp - 0x844]
cmovae eax, dword [ebp - 0x844]
mov dword [ebp - 0x87c], eax
lea eax, [ebp - 0x890]
push eax
mov dword [ebp - 0x874], 5
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
lea ecx, [ebp - 0x844]
call fcn.004021e1
jmp 0x4050b8
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0x447a50
push 0x8a
push str.CUnity::CopyAndRunExe
push str.D:Code_thunder11xlgamecppsrcXLGameUninstallUnity.cpp
push 2
call fcn.004016ce
add esp, 0x18
lea ecx, [ebp - 0x854]
call fcn.00402021
mov ecx, dword [ebp - 8]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00418ae7
leave
ret 4