public double ReadVarUhLong() { int _loc_3 = 0; UInt64 result = new UInt64(); int _loc_4 = 0; while (true) { _loc_3 = ReadByte(); if (_loc_4 == 28) { break; } else if (_loc_3 >= 128) { result.low = result.low | Convert.ToUInt32(_loc_3 & 127) << Convert.ToInt32(_loc_4); } else { result.low = result.low | Convert.ToUInt32(_loc_3) << Convert.ToInt32(_loc_4); return result.toNumber(); } _loc_4 = _loc_4 + 7; } if (_loc_3 >= 128) { _loc_3 = _loc_3 & 127; result.low = result.low | Convert.ToUInt32(_loc_3) << Convert.ToInt32(_loc_4); result.high = Convert.ToUInt32(_loc_3) >> 4; } else { result.low = result.low | Convert.ToUInt32(_loc_3) << Convert.ToInt32(_loc_4); result.high = Convert.ToUInt32(_loc_3) >> 4; return result.toNumber(); } _loc_4 = 3; while (true) { _loc_3 = ReadByte(); if (_loc_4 < 32) { if (_loc_3 >= 128) { result.high = result.high | Convert.ToUInt32(_loc_3 & 127) << Convert.ToInt32(_loc_4); } else { result.high = result.high | Convert.ToUInt32(_loc_3) << Convert.ToInt32(_loc_4); break; } } _loc_4 = _loc_4 + 7; } return result.toNumber(); }