Function at 0x401890
Capabilities:
Create process on windows
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x171c
call fcn.00406470
mov eax, dword [0x42b1e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
push str.PATH
mov dword [ebp - 0x1714], eax
call fcn.0040a24b
add esp, 4
mov ebx, eax
push 0x104
push 0x42bc18
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4018fd
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040645c
mov esp, ebp
pop ebp
ret 0x10
push 0x5c
push 0x42bc18
call fcn.00407410
add esp, 8
test eax, eax
je 0x401914
mov byte [eax + 1], 0
push ebx
push 0x42bc18
push str.PATH_s_bin__s
lea eax, [ebp - 0x1710]
push 0x1000
push eax
call fcn.00401c80
lea eax, [ebp - 0x1710]
mov byte [ebp - 0x711], 0
push eax
call fcn.0040a4fa
push dword [ebp + 0x14]
push dword [ebp - 0x1714]
push edi
push esi
push str._x__x__s__x_n
call fcn.00401cc0
push 0x42bc18
push 0x423408
lea eax, [ebp - 0x1710]
push 0x1000
push eax
call fcn.00401c80
add esp, 0x3c
mov dword [ebp - 0x1718], 0x2000
lea eax, [ebp - 0x1718]
push eax
lea eax, [ebp - 0x310]
push eax
push 0
push 2
push str.InstallPath
push str.SOFTWAREWOW6432NodeValveSteam
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegGetValueA]
push 0x104
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.0040a020
push 0x104
lea eax, [ebp - 0x20c]
push str._steamappslibraryfolders.vdf
push eax
call fcn.00409ee0
lea eax, [ebp - 0x20c]
push str.libraryfolders
push eax
call fcn.004016b0
mov ebx, eax
lea eax, [ebp - 0x108]
push 0x104
push 0
push eax
mov dword [ebp - 0x171c], ebx
call fcn.00407550
add esp, 0x2c
mov ecx, ebx
call fcn.00402670
mov ebx, eax
test ebx, ebx
je 0x401b05
push 1
push str.apps
mov ecx, ebx
call fcn.004024d0
mov ecx, eax
call fcn.00402690
mov esi, eax
test esi, esi
je 0x401af4
mov ecx, esi
call fcn.004026b0
mov edi, eax
push edi
call fcn.00401e10
add esp, 4
cmp eax, 0x17c
jg 0x401a69
je case.0x401a62.220
sub eax, 0xdc
cmp eax, 0x8c
ja case.0x401a62.221
movzx eax, byte [eax + 0x401bdc]
jmp dword [eax*4 + 0x401bd4]
sub eax, 0x190
je case.0x401a62.220
sub eax, 0x14
je case.0x401a62.220
sub eax, 0x3b682
jne case.0x401a62.221
push 0x4231d0
push str.path
mov ecx, ebx
call fcn.00402700
push eax
push edi
call fcn.004011b0
add esp, 8
push edi
call fcn.00401e10
add esp, 4
cmp eax, 0x3b826
jne 0x401ae3
push 0x104
push 0x4231d0
push str.path
mov ecx, ebx
call fcn.00402700
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.0040a020
push 0x104
lea eax, [ebp - 0x108]
push str._steamappscommonSource_SDK_Base_2013_Multiplayerhl2.exe
push eax
call fcn.00409ee0
add esp, 0x18
mov ecx, esi
call fcn.004026e0
mov esi, eax
test esi, esi
jne 0x401a34
mov ecx, ebx
call fcn.004026c0
mov ebx, eax
test ebx, ebx
jne 0x401a15
mov ecx, dword [ebp - 0x171c]
call fcn.00404830
cmp byte [ebp - 0x108], 0
jne 0x401b2d
push 0
push str.Launcher_error
push str.Install_Source_SDK_2013_Base_Multiplayer_to_play_this.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x400
lea eax, [ebp - 0x710]
push str._steam__game__
push eax
call fcn.0040a020
push 0x400
lea eax, [ebp - 0x710]
push 0x42bc18
push eax
call fcn.00409ee0
lea eax, [ebp - 0x710]
push 0x400
push eax
call fcn.00401d30
push 0x400
lea eax, [ebp - 0x710]
push str.jbmodce_
push eax
call fcn.00409ee0
push 0x400
push dword [ebp - 0x1714]
lea eax, [ebp - 0x710]
push eax
call fcn.00409ee0
add esp, 0x38
lea eax, [ebp - 0x310]
push 0xa
push eax
lea eax, [ebp - 0x710]
push eax
lea eax, [ebp - 0x108]
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040645c
mov esp, ebp
pop ebp
ret 0x10