Assuming this.ReadMem just reads n bytes from the address, this looks correct.
this is Readmem
public int ReadMem(int MemoryAddress, uint bytesToRead, out byte[] buffer)
{
IntPtr num = ProcessMemoryReaderApi.OpenProcess(56U, 1, (uint) this.m_ReadProcess.Id);
if (num == IntPtr.Zero)
{
buffer = new byte[0];
return 0;
}
buffer = new byte[(IntPtr) bytesToRead];
IntPtr lpNumberOfBytesRead;
ProcessMemoryReaderApi.ReadProcessMemory(num, (IntPtr) MemoryAddress, buffer, bytesToRead, out lpNumberOfBytesRead);
ProcessMemoryReaderApi.CloseHandle(num);
return lpNumberOfBytesRead.ToInt32();
}