code: protected final int readBytesAt(int offset)
          throws IOException
      {
          // shouldn't modify mBytePtr, assumed to be 'offset'
          if (mIn != null) {
              int count = mIn.read(mByteBuffer, offset, mByteBuffer.length - offset);
              if (count > 0) {
                  mByteBufferEnd += count;
              }
              return count;
          }
          return -1;
      }
docs: Method for reading as many bytes from the underlying stream as possible
  (that fit in the buffer considering offset), to the specified offset.
  
  @return Number of bytes read, if any; -1 to indicate none available
  (that is, end of input)