public ulong ReadUInt64()
{
long low = (uint)this.ReadInt32();
long high = (uint)this.ReadInt32();
// 0x100000000 is 2 raised to the 32th power plus 1
return (ulong)((high * 0x100000000) + low);
}