public void WriteVarLong(double param1) { uint _loc3_ = 0; Types.Int64 _loc2_ = Types.Int64.fromNumber(param1); if (_loc2_.high == 0) { this.WriteInt32(_loc2_.low); } else { _loc3_ = 0; while (_loc3_ < 4) { this.WriteByte((byte)(_loc2_.low & 127 | 128)); _loc2_.low = _loc2_.low >> 7; _loc3_++; } if ((_loc2_.high & 268435455 << 3) == 0) { this.WriteByte((byte)(_loc2_.high << 4 | _loc2_.low)); } else { this.WriteByte((byte)((_loc2_.high << 4 | _loc2_.low) & 127 | 128)); this.WriteInt32((uint)(_loc2_.high >> 3)); } } }
private Types.Int64 ReadInt64() { uint _loc3_ = 0; Types.Int64 _loc2_ = new Types.Int64(); uint _loc4_ = 0; while (true) { _loc3_ = ReadByte(); if (_loc4_ == 28) { break; } if (_loc3_ >= 128) { _loc2_.low = _loc2_.low | (uint)((byte)(_loc3_ & 127) << (byte)_loc4_); _loc4_ = _loc4_ + 7; continue; } _loc2_.low = _loc2_.low | (uint)((byte)_loc3_ << (byte)_loc4_); return(_loc2_); } if (_loc3_ >= 128) { _loc3_ = _loc3_ & 127; _loc2_.low = _loc2_.low | (uint)((byte)_loc3_ << (byte)_loc4_); _loc2_.high = (byte)_loc3_ >> 4; _loc4_ = 3; while (true) { _loc3_ = ReadByte(); if (_loc4_ < 32) { if (_loc3_ >= 128) { _loc2_.high = _loc2_.high | (byte)(_loc3_ & 127) << (byte)_loc4_; } else { break; } } _loc4_ = _loc4_ + 7; } _loc2_.high = _loc2_.high | (byte)_loc3_ << (byte)_loc4_; return(_loc2_); } _loc2_.low = _loc2_.low | (uint)((byte)_loc3_ << (byte)_loc4_); _loc2_.high = (byte)_loc3_ >> 4; return(_loc2_); }