code: func DecodeReverseOrderVarUint64(bytes []byte) (uint64, int) {
  	s, _ := proto.DecodeVarint(bytes)
  	numFFBytes := int(s)
  	decodedBytes := make([]byte, 8)
  	realBytesNum := 8 - numFFBytes
  	copy(decodedBytes[numFFBytes:], bytes[1:realBytesNum+1])
  	numBytesConsumed := realBytesNum + 1
  	for i := 0; i < numFFBytes; i++ {
  		decodedBytes[i] = 0xff
  	}
  	return (math.MaxUint64 - binary.BigEndian.Uint64(decodedBytes)), numBytesConsumed
  }
docs: // DecodeReverseOrderVarUint64 decodes the number from the bytes obtained from function 'EncodeReverseOrderVarUint64'.
  // Also, returns the number of bytes that are consumed in the process