public uint ExecuteFunctionNow(uint Function, params object[] Arguments)
{
var CurrentFakeHleThread = HleThreadManager.CurrentOrAny;
CurrentFakeHleThread.CpuThreadState.CopyRegistersFrom(HleThreadManager.CurrentOrAny.CpuThreadState);
SetArgumentsToCpuThreadState(CurrentFakeHleThread.CpuThreadState, Function, Arguments);
Console.Out.WriteLineColored(ConsoleColor.Magenta, "ExecuteFunctionNow: 0x{0:X8}", Function);
CurrentFakeHleThread.CpuThreadState.ExecuteFunctionAndReturn(CurrentFakeHleThread.CpuThreadState.PC);
Console.Out.WriteLineColored(ConsoleColor.Magenta, "... {0}", (uint)CurrentFakeHleThread.CpuThreadState.GPR2);
return (uint)CurrentFakeHleThread.CpuThreadState.GPR2;
}