Function at 0x1401853
Capabilities:
Accept command line arguments
Check mutex on windows
Contain obfuscated stackstrings
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4b8
push ebx
push esi
push edi
push str.filesystem_stdio.dll
push str.filesystem_steam.dll
push dword [ebp + 0x10]
call fcn.014021ac
add esp, 0xc
test al, al
jne 0x1401d97
xor ebx, ebx
push str.ValveHalfLifeLauncherMutex
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, ebx
mov dword [ebp - 0x14], eax
je 0x1401898
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
je 0x14018c5
cmp eax, 0x80
je 0x14018c5
push 0x10
push str.Error
push str.Could_not_launch_game._nOnly_one_instance_of_this_game_can_be_run_at_a_time.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x1401d97
lea eax, [ebp - 0x4b8]
mov byte [ebp - 0x10], bl
push eax
push 2
mov byte [ebp - 0xf], 0x2d
mov byte [ebp - 0xe], 0x66
mov byte [ebp - 0xd], 0x6f
mov byte [ebp - 0xc], 0x72
mov byte [ebp - 0xb], 0x63
mov byte [ebp - 0xa], 0x65
mov byte [ebp - 9], 0x76
mov byte [ebp - 8], 0x61
mov byte [ebp - 7], 0x6c
mov byte [ebp - 6], 0x76
mov byte [ebp - 5], 0x65
mov byte [ebp - 4], bl
call dword [sym.imp.WSOCK32.dll_WSAStartup]
mov ecx, dword [0x1411578]
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [0x1411040]
mov esi, dword [eax]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov ecx, dword [0x1411040]
push eax
call dword [esi]
mov ecx, dword [0x1411040]
push ebx
push str._steam
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
setne al
mov byte [ebp - 0x28], al
lea eax, [ebp - 0x128]
push 0x100
push eax
call fcn.014016b2
lea eax, [ebp - 0x128]
push 0x5c
push eax
call fcn.01403110
mov esi, eax
inc esi
push esi
push str.hl.exe
call fcn.0140a2a0
add esp, 0x18
mov edi, str._game
test eax, eax
je 0x14019a1
mov ecx, dword [0x1411040]
push ebx
push edi
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
jne 0x14019a1
push esi
call fcn.01402b80
pop ecx
mov byte [eax + esi - 4], bl
mov ecx, dword [0x1411040]
push esi
push edi
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [0x1411040]
push ebx
push edi
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, eax
cmp esi, ebx
je 0x14019f0
push 5
lea eax, [esi + 6]
push str.czero
push eax
call fcn.0140e1d0
add esp, 0xc
test eax, eax
jne 0x14019db
mov ecx, dword [0x1411040]
lea edx, [ebp - 0xf]
push ebx
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0x104
push esi
push 0x14134c0
call fcn.014035d0
add esp, 0xc
jmp 0x1401a01
push str.valve
push 0x14134c0
call fcn.01402a80
pop ecx
pop ecx
push ebx
call fcn.014036d4
pop ecx
mov esi, str.CrashInitializingVideoMode
mov ecx, dword [0x1411578]
push ebx
push esi
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x1401aed
mov ecx, dword [0x1411578]
push ebx
push esi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411578]
push str.hw.dll
mov edi, str.EngineDLL
push 0x35135c8
mov eax, dword [ecx]
push edi
call dword [eax + 0x10]
push eax
call fcn.0140a2a0
pop ecx
test eax, eax
pop ecx
jne 0x1401aed
mov ecx, dword [0x1411578]
mov esi, str.EngineD3D
push ebx
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [0x1411578]
cmp eax, 1
mov eax, dword [ecx]
jne 0x1401a8c
push ebx
push esi
call dword [eax + 0xc]
push 0x31
push str.Video_mode_change_failure
push str.The_game_has_detected_that_the_previous_attempt_to_start_in_D3D_video_mode_failed._nThe_game_will_now_run_attempt_to_run_in_openGL_mode.
jmp 0x1401aa1
push str.sw.dll
push edi
call dword [eax + 0x14]
push 0x31
push str.Video_mode_change_failure
push str.The_game_has_detected_that_the_previous_attempt_to_start_in_openGL_video_mode_failed._nThe_game_will_now_run_in_software_mode.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
jne 0x1401d97
mov ecx, dword [0x1411578]
push 0x10
push str.ScreenBPP
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411578]
push 0x280
push str.ScreenHeight
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411578]
push 0x1e0
push str.ScreenWidth
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, 0x1412bbc
push dword [ebp - 0x28]
lea eax, [ebp - 0x128]
push eax
call fcn.014016d0
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0x1c], eax
je 0x1401d74
push ebx
push str.VFileSystem009
push eax
call fcn.014014be
pop ecx
call eax
pop ecx
mov dword [0x14135c4], eax
mov edx, dword [eax]
pop ecx
mov ecx, eax
call dword [edx + 4]
mov eax, dword [0x14135c4]
push str.ROOT
mov edi, dword [eax]
call fcn.01401505
mov ecx, dword [0x14135c4]
push eax
call dword [edi + 0x10]
lea eax, [ebp - 0x18]
mov byte [ebp + 0x13], bl
push eax
xor edi, edi
mov byte [0x1412bbc], bl
call fcn.0140158c
push dword [ebp - 0x18]
call fcn.0140146b
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0x24], eax
je 0x1401bc2
push eax
call fcn.014014be
cmp eax, ebx
pop ecx
je 0x1401bb7
push ebx
push str.VENGINE_LAUNCHER_API_VERSION002
call eax
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0x20], eax
je 0x1401bb7
push dword [ebp - 0x1c]
mov edi, dword [eax]
call fcn.014014be
pop ecx
push eax
call fcn.014014d8
mov ecx, dword [0x1411040]
push eax
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push eax
call fcn.01401505
mov ecx, dword [ebp - 0x20]
push eax
push dword [ebp + 8]
call dword [edi + 4]
mov edi, eax
push dword [ebp - 0x24]
call fcn.014014ac
pop ecx
jmp 0x1401bee
push dword [ebp - 0x18]
lea eax, [ebp - 0x328]
push str.Could_not_load__s._nPlease_try_again_at_a_later_time.
push eax
call fcn.014034da
add esp, 0xc
lea eax, [ebp - 0x328]
push 0x10
push str.Fatal_Error
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, edi
sub eax, ebx
je 0x1401c0a
dec eax
je 0x1401c04
dec eax
jne 0x1401c0d
call fcn.01401646
mov byte [ebp + 0x13], al
jmp 0x1401c0d
mov byte [ebp + 0x13], 1
jmp 0x1401c0d
mov byte [ebp + 0x13], bl
mov ecx, dword [0x1411040]
push 0x1411330
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._startwindowed
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._windowed
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._window
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._full
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._fullscreen
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._soft
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._software
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push 0x14110dc
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._d3d
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push 0x14112f4
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._width
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push 0x14112e8
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str._height
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push str.connect
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push ebx
push str._novid
mov eax, dword [ecx]
call dword [eax + 0x14]
mov edi, str._game
push edi
push esi
call fcn.01402fa0
pop ecx
test eax, eax
pop ecx
je 0x1401d2c
mov ecx, dword [0x1411040]
push edi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edi, str.load
push edi
push esi
call fcn.01402fa0
pop ecx
test eax, eax
pop ecx
je 0x1401d4a
mov ecx, dword [0x1411040]
push edi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x1411040]
push ebx
push esi
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [0x14135c4]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp - 0x1c]
call fcn.014014ac
cmp byte [ebp + 0x13], bl
pop ecx
jne 0x1401af2
mov ecx, dword [0x1411578]
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.WSOCK32.dll_WSACleanup]
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0x10