code: protected int nextMultiByte()
          throws IOException, WstxException
      {
          byte b = (mInputPtr < mInputEnd) ?
              mByteBuffer[mInputPtr++] : nextByte();
          byte b2 = (mInputPtr < mInputEnd) ?
              mByteBuffer[mInputPtr++] : nextByte();
          int c;
  
          if (mBytesPerChar == 2) {
              if (mBigEndian) {
                  c = ((b & 0xFF) << 8) | (b2 & 0xFF);
              } else {
                  c = (b & 0xFF) | ((b2 & 0xFF) << 8);
              }
          } else {
              // Has to be 4 bytes
              byte b3 = (mInputPtr < mInputEnd) ?
                  mByteBuffer[mInputPtr++] : nextByte();
              byte b4 = (mInputPtr < mInputEnd) ?
                  mByteBuffer[mInputPtr++] : nextByte();
              
              if (mBigEndian) {
                  c = (b  << 24) | ((b2 & 0xFF) << 16)
                      | ((b3 & 0xFF) << 8) | (b4 & 0xFF);
              } else {
                  c = (b4  << 24) | ((b3 & 0xFF) << 16)
                      | ((b2 & 0xFF) << 8) | (b & 0xFF);
              }
          }
  
          // Let's catch null chars early
          if (c == 0) {
              reportNull();
          }
          return c;
      }
docs: /*
  ///////////////////////////////////////////////////
  Internal methods, multi-byte/translated access/checks
  ///////////////////////////////////////////////////