public int Call(uint func_address, params object[] parameters)
{
int num = parameters.Length;
uint num2 = 0u;
while ((ulong)num2 < (ulong)((long)num))
{
if (parameters[(int)((UIntPtr)num2)] is int)
{
byte[] bytes = BitConverter.GetBytes((int)parameters[(int)((UIntPtr)num2)]);
Array.Reverse(bytes);
PS3.SetMemory(268763144u + num2 * 4u, bytes);
}
else
{
if (parameters[(int)((UIntPtr)num2)] is uint)
{
byte[] bytes2 = BitConverter.GetBytes((uint)parameters[(int)((UIntPtr)num2)]);
Array.Reverse(bytes2);
PS3.SetMemory(268763144u + num2 * 4u, bytes2);
}
else
{
if (parameters[(int)((UIntPtr)num2)] is string)
{
byte[] bytes3 = Encoding.UTF8.GetBytes(Convert.ToString(parameters[(int)((UIntPtr)num2)]) + "\0");
PS3.SetMemory(268763180u + num2 * 336u, bytes3);
uint value = 268763180u + num2 * 336u;
byte[] bytes4 = BitConverter.GetBytes(value);
Array.Reverse(bytes4);
PS3.SetMemory(268763144u + num2 * 4u, bytes4);
}
}
}
num2 += 1u;
}
for (int i = 9 - num; i <= 9; i++)
{
PS3.SetMemory((uint)(268763144 + i * 4), new byte[4]);
}
byte[] bytes5 = BitConverter.GetBytes(func_address);
Array.Reverse(bytes5);
PS3.SetMemory(268763136u, bytes5);
Thread.Sleep(20);
byte[] memory = PS3.GetBytes(268763140u, 4);
Array.Reverse(memory);
return BitConverter.ToInt32(memory, 0);
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.