示例#1
0
        private Types.UInt64 ReadUInt64()
        {
            uint _loc3_ = 0;

            Types.UInt64 _loc2_ = new Types.UInt64();
            uint         _loc4_ = 0;

            while (true)
            {
                _loc3_ = ReadByte();
                if (_loc4_ == 28)
                {
                    break;
                }
                if (_loc3_ >= 128)
                {
                    _loc2_.low = (uint)(_loc2_.low) | (byte)((_loc3_ & 127) << (byte)_loc4_);
                    _loc4_     = _loc4_ + 7;
                    continue;
                }
                _loc2_.low = (uint)_loc2_.low | (byte)((byte)_loc3_ << (byte)_loc4_);
                return(_loc2_);
            }
            if (_loc3_ >= 128)
            {
                _loc3_      = _loc3_ & 127;
                _loc2_.low  = (uint)_loc2_.low | (byte)((byte)_loc3_ << (byte)_loc4_);
                _loc2_.high = (int)(_loc3_ >> 4);
                _loc4_      = 3;
                while (true)
                {
                    _loc3_ = ReadByte();
                    if (_loc4_ < 32)
                    {
                        if (_loc3_ >= 128)
                        {
                            _loc2_.high = (int)((uint)_loc2_.high | (uint)((byte)(_loc3_ & 127) << (byte)_loc4_));
                        }
                        else
                        {
                            break;
                        }
                    }
                    _loc4_ = _loc4_ + 7;
                }
                _loc2_.high = _loc2_.high | (byte)_loc3_ << (byte)_loc4_;
                return(_loc2_);
            }
            _loc2_.low  = (uint)_loc2_.low | (uint)((byte)_loc3_ << (byte)_loc4_);
            _loc2_.high = (int)(_loc3_ >> 4);
            return(_loc2_);
        }