Function at 0x416e8d
Capabilities:
Accept command line arguments
Create directory
Create process on windows
Delete registry value
Initialize winsock library
Query or enumerate registry value

Disassembly:
push 0x254
mov eax, 0x4e6c5d
call fcn.00483d44
mov ebx, ecx
mov dword [ebp - 0x1f8], ebx
mov esi, 0x62f563
lea ecx, [ebp - 0x40]
mov edx, esi
call fcn.00416dea
xor ecx, ecx
mov edx, eax
mov byte [ebp - 0x1f4], cl
push dword [ebp - 0x1f4]
mov dword [ebp - 4], ecx
lea ecx, [ebp - 0x28]
call fcn.00410ab9
pop ecx
xor eax, eax
lea ecx, [ebp - 0x28]
inc eax
mov byte [ebp - 4], al
call fcn.00418285
lea ecx, [ebp - 0x28]
call fcn.0040ee82
or edi, 0xffffffff
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], edi
call fcn.00403cab
mov edx, esi
lea ecx, [ebp - 0x40]
call fcn.00416dea
cmp dword [eax + 0x14], 0x10
jb 0x416f05
mov eax, dword [eax]
push eax
call fcn.004ab7c4
pop ecx
lea ecx, [ebp - 0x40]
call fcn.00403cab
push ecx
push ecx
lea ecx, [ebp - 0x28]
call fcn.00417284
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 2
call fcn.00417346
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], edi
call fcn.0040ee82
push ecx
push ecx
lea ecx, [ebp - 0x28]
call fcn.004172ad
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 3
call fcn.00417346
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], edi
call fcn.0040ee82
mov dword [0x6ae2e4], ebx
call fcn.00412b07
call fcn.004162bb
mov ecx, dword [sym.imp.tier0.dll_g_CSO2DocLog]
call dword [sym.imp.tier0.dll_public:_void___thiscall_CSO2DocumentLog::Create_void_]
push 0x416a21
call dword [sym.imp.tier0.dll_SpewOutputFunc]
pop ecx
call dword [sym.imp.tier0.dll_Plat_VerifyHardwareKeyPrompt]
test al, al
jne 0x416f95
mov eax, edi
jmp 0x417212
mov ebx, dword [sym.imp.tier0.dll_CommandLine_Tier0]
call ebx
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
mov ecx, edi
call esi
call dword [sym.imp.tier0.dll_GetCSO2LoadingSplash]
push dword [ebp - 0x1f8]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov ecx, eax
call edx
lea ecx, [ebp - 0x58]
call fcn.004168f6
mov dword [ebp - 4], 4
call fcn.00416b56
call ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
lea ecx, [ebp - 0x1fc]
push ecx
push str._vcrrecord
mov ecx, eax
call edx
test eax, eax
jne 0x41700a
call ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
lea ecx, [ebp - 0x1fc]
push ecx
push str._vcrplayback
mov ecx, eax
call edx
call fcn.00416d35
lea eax, [ebp - 0x1e8]
push eax
push 2
call dword [sym.imp.WSOCK32.dll_WSAStartup]
mov esi, dword [sym.imp.tier0.dll_Msg]
test eax, eax
je 0x417032
push eax
push str.Warning__Failed_to_start_Winsock_via_WSAStartup__0x_x._n
call esi
pop ecx
pop ecx
call ebx
xor edi, edi
push edi
push str._textmode
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
mov ecx, eax
call edx
test eax, eax
je 0x417055
mov byte [0x6ae322], 1
call fcn.00416afc
call ebx
push edi
push str._low
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
mov ecx, eax
call edx
test eax, eax
je 0x41706e
push 0x40
jmp 0x417088
call ebx
push edi
push str._high
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
mov ecx, eax
call edx
test eax, eax
je 0x417095
push 0x80
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
call ebx
push edi
push str._steam
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
mov ecx, eax
call edx
test eax, eax
jne 0x4170bb
call ebx
push edi
push str._insecure
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
mov ecx, eax
call edx
call ebx
xor ebx, ebx
push ebx
push str._leakcheck
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
mov ecx, eax
call edx
test eax, eax
push 1
setne byte [0x6ae3b8]
call fcn.004ab83e
pop ecx
push ecx
push ebx
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x1f0], eax
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004168bd
lea ecx, [ebp - 0x1d0]
call fcn.00424dca
lea eax, [ebp - 0x1d0]
push eax
lea ecx, [ebp - 0x260]
call fcn.00403220
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 6
call fcn.00401ca1
cmp dword [ebp - 0x214], 3
jne 0x417133
cmp eax, 2
sete bl
jmp 0x41713f
cmp eax, 4
movzx ebx, bl
push 1
pop eax
cmove ebx, eax
lea ecx, [ebp - 0x260]
call fcn.00401e24
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 4
call fcn.00403cab
lea ecx, [ebp - 0x1d0]
call fcn.00401e24
push 0
test bl, bl
pop ebx
jne 0x4170df
call dword [sym.imp.WSOCK32.dll_WSACleanup]
test eax, eax
je 0x417180
push eax
push str.Warning__Failed_to_complete_WSACleanup__0x_x._n
call esi
pop ecx
pop ecx
call fcn.00416d11
lea eax, [ebp - 0x1ec]
xor ebx, ebx
push eax
push 0xf003f
push ebx
push str.SoftwareValveSource
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x417208
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1f0], 0x104
push eax
lea eax, [ebp - 0x160]
mov esi, str.Relaunch_URL
push eax
push ebx
push ebx
push esi
push dword [ebp - 0x1ec]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4171fc
push 5
push ebx
push ebx
lea eax, [ebp - 0x160]
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push esi
push dword [ebp - 0x1ec]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp - 0x1ec]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x58]
call fcn.0040ee82
xor eax, eax
call fcn.00483cf3
ret