Function at 0x14020b9
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.01402c70
pop ecx
cmp eax, ebx
pop ecx
je 0x14020f8
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 0x1402174
lea eax, [ebp - 0x328]
push eax
call fcn.014026e0
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.014026e0
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 0x140219b
push ebx
push ebx
push 0x403
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x140233b
lea eax, [ebp - 0x224]
mov byte [ebp - 0x120], bl
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x140224c
lea eax, [ebp - 0x224]
push 0x5c
push eax
call fcn.01402c70
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x140224c
mov edi, 0x140e508
push str.steam_dev.exe
push esi
mov byte [esi + 1], bl
call fcn.014025f0
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.01402597
add esp, 0x10
cmp eax, ebx
jne 0x1402230
push str.steam.exe
push esi
mov byte [esi + 1], bl
call fcn.014025f0
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.01402597
add esp, 0x10
cmp eax, ebx
jne 0x1402230
lea eax, [ebp - 0x224]
push 0x5c
push eax
mov byte [esi], bl
call fcn.01402c70
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jne 0x14021d2
jmp 0x140224c
push eax
call fcn.01402477
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.014025e0
add esp, 0xc
cmp byte [ebp - 0x120], bl
jne 0x14022ba
lea eax, [ebp + 8]
push eax
push str.SoftwareValveSteam
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x140229a
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 0x14022ba
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 0x140233b
cmp byte [ebp - 0x120], bl
lea eax, [ebp - 0x120]
je 0x14022d5
cmp byte [eax], 0x2f
jne 0x14022d0
mov byte [eax], 0x5c
inc eax
cmp byte [eax], bl
jne 0x14022c8
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.014025e0
lea eax, [ebp - 0x224]
push 0x5c
push eax
call fcn.01402c70
add esp, 0x10
cmp eax, ebx
je 0x140230c
mov byte [eax], bl
lea eax, [ebp - 0x224]
push eax
call fcn.0140378b
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.01403774
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret