Function at 0x402163
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows

Disassembly:
push 0x3c4
mov eax, 0x425f62
call fcn.00412eba
push 0x3e
pop esi
xor eax, eax
push esi
mov word [ebp - 0x114], ax
xor ebx, ebx
lea eax, [ebp - 0x112]
push ebx
push eax
call fcn.00412670
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0x54], ax
lea eax, [ebp - 0x52]
push ebx
push eax
call fcn.00412670
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0x94], ax
lea eax, [ebp - 0x92]
push ebx
push eax
call fcn.00412670
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0xd4], ax
lea eax, [ebp - 0xd2]
push ebx
push eax
call fcn.00412670
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0x154], ax
lea eax, [ebp - 0x152]
push ebx
push eax
call fcn.00412670
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0x194], ax
lea eax, [ebp - 0x192]
push ebx
push eax
call fcn.00412670
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [ebp - 0x3cc]
push ecx
push eax
mov dword [ebp - 0x3cc], ebx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x3c4], eax
xor eax, eax
inc eax
cmp dword [ebp - 0x3cc], eax
jg 0x402240
or eax, 0xffffffff
jmp 0x4025aa
cmp dword [0x437900], eax
mov dword [ebp - 0x3bc], eax
jle 0x40237b
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov eax, dword [ebp - 0x3c4]
mov ecx, dword [ebp - 0x3bc]
lea esi, [eax + ecx*4]
mov eax, dword [esi]
push str._type:
push eax
call fcn.004111bd
pop ecx
pop ecx
test eax, eax
je 0x402298
push str._type:
call ebx
mov ecx, dword [esi]
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0x114]
jmp 0x40235e
mov eax, dword [esi]
push str._gameid:
push eax
call fcn.004111bd
pop ecx
pop ecx
test eax, eax
je 0x4022c0
push str._gameid:
call ebx
mov ecx, dword [esi]
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0x54]
jmp 0x40235e
mov eax, dword [esi]
push str._account:
push eax
call fcn.004111bd
pop ecx
pop ecx
test eax, eax
je 0x4022e8
push str._account:
call ebx
mov ecx, dword [esi]
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0x94]
jmp 0x40235e
mov eax, dword [esi]
push str._size:
push eax
call fcn.004111bd
pop ecx
pop ecx
test eax, eax
je 0x402310
push str._size:
call ebx
mov ecx, dword [esi]
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0xd4]
jmp 0x40235e
mov eax, dword [esi]
push str._from:
push eax
call fcn.004111bd
pop ecx
pop ecx
test eax, eax
je 0x402338
push str._from:
call ebx
mov ecx, dword [esi]
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0x154]
jmp 0x40235e
mov eax, dword [esi]
push str._icon:
push eax
call fcn.004111bd
pop ecx
pop ecx
test eax, eax
je 0x402361
push str._icon:
call ebx
mov ecx, dword [esi]
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0x194]
push eax
call edi
inc dword [ebp - 0x3bc]
mov eax, dword [ebp - 0x3bc]
cmp eax, dword [0x437900]
jl 0x40225e
xor ebx, ebx
push dword [ebp - 0x3c4]
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea eax, [ebp - 0x54]
push eax
call fcn.00410be9
pop ecx
mov esi, eax
push esi
call fcn.00404d90
lea edi, [ebp - 0x3c8]
mov ecx, eax
call fcn.00404de7
push esi
mov dword [ebp - 4], ebx
call fcn.00404d90
lea edi, [ebp - 0x3c4]
mov ecx, eax
call fcn.00404ed4
push esi
mov byte [ebp - 4], 1
call fcn.00404d90
mov ecx, eax
call fcn.00404fc4
mov ecx, dword [0x4355a4]
mov dword [ebp - 0x3bc], ecx
push eax
mov eax, edi
push eax
lea eax, [ebp - 0x3d0]
push eax
lea edi, [ebp - 0x3c8]
mov byte [ebp - 4], 2
call fcn.00402050
add esp, 0xc
mov byte [ebp - 4], 3
push dword [eax]
lea eax, [ebp - 0x3bc]
push str._from:segamemode__gtype:3__apppath:_s__size:normal
push eax
call fcn.0040203e
add esp, 0xc
lea esi, [ebp - 0x3d0]
mov byte [ebp - 4], 2
call fcn.00401143
lea ecx, [ebp - 0x3b8]
call fcn.0040176b
cmp dword [eax + 0x14], ebx
push ebx
setne byte [ebp - 0x3bd]
xor edi, edi
inc edi
push edi
lea esi, [ebp - 0x3b8]
call fcn.00401925
cmp byte [ebp - 0x3bd], 0
je 0x40249c
lea ecx, [ebp - 0x3b8]
call fcn.0040176b
cmp dword [ebp - 0x3a4], ebx
je 0x40248a
cmp dword [ebp - 0x3a0], 8
mov eax, dword [ebp - 0x3b4]
jae 0x402475
lea eax, [ebp - 0x3b4]
push edi
push ebx
push dword [ebp - 0x3bc]
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push ebx
push edi
lea esi, [ebp - 0x3b8]
call fcn.00401925
jmp 0x402587
call fcn.004014b5
test al, al
je 0x4024c6
push dword [ebp - 0x3bc]
call fcn.00401590
push 0x1388
push dword [0x4361cc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x402587
xor eax, eax
push 0x206
mov word [ebp - 0x39c], ax
lea eax, [ebp - 0x39a]
push ebx
push eax
call fcn.00412670
add esp, 0xc
push 0x103
lea eax, [ebp - 0x39c]
push eax
push dword [0x4377a4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x39c]
push eax
call esi
lea eax, [ebp - 0x39c]
push eax
call esi
lea eax, [ebp - 0x39c]
push eax
call esi
lea eax, [ebp - 0x39c]
push eax
call esi
lea eax, [ebp - 0x39c]
push eax
call esi
push str.Application360se.exe
lea eax, [ebp - 0x39c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x39c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x402573
lea eax, [ebp - 0x39c]
push eax
call fcn.00408c45
pop ecx
test eax, eax
je 0x402573
push edi
push ebx
push str.https:__ext.se.360.cn_webstore_detail_ExtYouxi
lea eax, [ebp - 0x39c]
push eax
jmp 0x40257b
push edi
push ebx
push ebx
push str.http:__360game.360.cn_
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea esi, [ebp - 0x3bc]
call fcn.00401143
lea esi, [ebp - 0x3c4]
call fcn.00401143
lea esi, [ebp - 0x3c8]
call fcn.00401143
xor eax, eax
call fcn.00412f04
ret