Function at 0x1402088
Capabilities:
Get common file path
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x328
push ebx
push esi
push edi
mov edi, 0x104
lea eax, [ebp - 0x328]
push edi
xor ebx, ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x328]
push 0x5c
push eax
call fcn.01402f80
pop ecx
cmp eax, ebx
pop ecx
je 0x14020c7
mov byte [eax], bl
lea eax, [ebp - 4]
push eax
push str.SoftwareValveSteam
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x1402143
lea eax, [ebp - 0x328]
push eax
call fcn.014029f0
pop ecx
inc eax
push eax
lea eax, [ebp - 0x328]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push eax
push 1
push ebx
push str.TempAppPath
push dword [ebp - 4]
call esi
push dword [ebp + 8]
call fcn.014029f0
pop ecx
inc eax
push eax
push dword [ebp + 8]
push 1
push ebx
push str.TempAppCmdLine
push dword [ebp - 4]
call esi
lea eax, [ebp - 8]
or dword [ebp - 8], 0xffffffff
push 4
push eax
push 4
push ebx
push str.TempAppID
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.Hidden_Window
push str.Valve_SteamIPC_Class
call dword [sym.imp.USER32.dll_FindWindowA]
cmp eax, ebx
je 0x140216a
push ebx
push ebx
push 0x403
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x140230a
lea eax, [ebp - 0x224]
mov byte [ebp - 0x120], bl
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x140221b
lea eax, [ebp - 0x224]
push 0x5c
push eax
call fcn.01402f80
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x140221b
mov edi, 0x1411568
push str.steam_dev.exe
push esi
mov byte [esi + 1], bl
call fcn.01402900
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.014028a8
add esp, 0x10
cmp eax, ebx
jne 0x14021ff
push str.steam.exe
push esi
mov byte [esi + 1], bl
call fcn.01402900
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.014028a8
add esp, 0x10
cmp eax, ebx
jne 0x14021ff
lea eax, [ebp - 0x224]
push 0x5c
push eax
mov byte [esi], bl
call fcn.01402f80
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jne 0x14021a1
jmp 0x140221b
push eax
call fcn.0140277d
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.014028f0
add esp, 0xc
cmp byte [ebp - 0x120], bl
jne 0x1402289
lea eax, [ebp + 8]
push eax
push str.SoftwareValveSteam
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x1402269
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x104
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x1c]
push eax
push ebx
push str.SteamExe
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebp - 0x120], bl
jne 0x1402289
push 0x10
push str.Fatal_Error
push str.Error_running_game:_could_not_find_steam.exe_to_launch
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x140230a
cmp byte [ebp - 0x120], bl
lea eax, [ebp - 0x120]
je 0x14022a4
cmp byte [eax], 0x2f
jne 0x140229f
mov byte [eax], 0x5c
inc eax
cmp byte [eax], bl
jne 0x1402297
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.014028f0
lea eax, [ebp - 0x224]
push 0x5c
push eax
call fcn.01402f80
add esp, 0x10
cmp eax, ebx
je 0x14022db
mov byte [eax], bl
lea eax, [ebp - 0x224]
push eax
call fcn.0140526b
pop ecx
lea eax, [ebp - 0x120]
mov dword [ebp - 0x14], str._silent
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x120]
push eax
push 1
mov dword [ebp - 0x10], str._applaunch
mov dword [ebp - 0xc], ebx
call fcn.01405254
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret