Function at 0x1402211
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.01403110
pop ecx
cmp eax, ebx
pop ecx
je 0x1402250
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 0x14022cc
lea eax, [ebp - 0x328]
push eax
call fcn.01402b80
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.01402b80
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 0x14022f3
push ebx
push ebx
push 0x403
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x1402493
lea eax, [ebp - 0x224]
mov byte [ebp - 0x120], bl
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x14023a4
lea eax, [ebp - 0x224]
push 0x5c
push eax
call fcn.01403110
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x14023a4
mov edi, 0x141156c
push str.steam_dev.exe
push esi
mov byte [esi + 1], bl
call fcn.01402a90
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.01402a30
add esp, 0x10
cmp eax, ebx
jne 0x1402388
push str.steam.exe
push esi
mov byte [esi + 1], bl
call fcn.01402a90
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.01402a30
add esp, 0x10
cmp eax, ebx
jne 0x1402388
lea eax, [ebp - 0x224]
push 0x5c
push eax
mov byte [esi], bl
call fcn.01403110
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jne 0x140232a
jmp 0x14023a4
push eax
call fcn.01402946
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.01402a80
add esp, 0xc
cmp byte [ebp - 0x120], bl
jne 0x1402412
lea eax, [ebp + 8]
push eax
push str.SoftwareValveSteam
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x14023f2
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 0x1402412
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 0x1402493
cmp byte [ebp - 0x120], bl
lea eax, [ebp - 0x120]
je 0x140242d
cmp byte [eax], 0x2f
jne 0x1402428
mov byte [eax], 0x5c
inc eax
cmp byte [eax], bl
jne 0x1402420
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.01402a80
lea eax, [ebp - 0x224]
push 0x5c
push eax
call fcn.01403110
add esp, 0x10
cmp eax, ebx
je 0x1402464
mov byte [eax], bl
lea eax, [ebp - 0x224]
push eax
call fcn.01404af8
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.01404ae1
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret