Now I shouldn't have to patch GloSC as often...
* In the function we want to hook the appID of the Chord bindings get referenced,
it takes 3 arguments (we can get that from the function prolog)
and it is the only one that does both. (in steamclient.dll)
We search for the constant appID of SteamChard bindings
move a bit upward and search for the correct function prolog
The function-prolog of the hooked function, get replaced with a jump to our hook
Our hook, then executed the missing function prolog,
patches the second function argument on the stack
and jumps back to let Steam do the rest for us :)
done by mid function hooking a function in steamclient.dll
the function appears to be setting the appId of the new controller bindings
inject/hook right after the target launched
switch focus -> binding gets changed to shortcut bindings -> hook function grabs appid
hook function replaces desktop-config appid with the one grabbed everytime steam tries to active desktop-config
glosc_gamelauncher unloads dll when the target closes; unloading dll patches steamclient.dll back to original