public uint Decode(LzmaRangeDecoder rangeDecoder) { uint newBound = (rangeDecoder.Range >> 11) * this.bitMask; this.SaveState(); uint num; if (rangeDecoder.Code < newBound) { this.bitMask += 2048U - this.bitMask >> 5; rangeDecoder.UpdateRange(newBound); num = 0U; } else { this.bitMask -= this.bitMask >> 5; rangeDecoder.MoveRange(newBound); num = 1U; } if (rangeDecoder.InputRequired) { this.RestoreState(); } return(num); }
public uint DecodeState(LzmaRangeDecoder rangeDecoder) { rangeDecoder.SaveState(); uint num = this.Decode(rangeDecoder); if (rangeDecoder.InputRequired) { rangeDecoder.RestoreState(); } return(num); }