docs: private void updateCRC(byte[] pBytes, int pOff, int pLen) {
          int value;
  
          synchronized (crc) {
              crc.reset();
              crc.update(pBytes, pOff, pLen);
              value = (int) crc.getValue();
          }
  
          pBytes[pOff + pLen    ] = (byte) ((value >> 24) & 0xff);
          pBytes[pOff + pLen + 1] = (byte) ((value >> 16) & 0xff);
          pBytes[pOff + pLen + 2] = (byte) ((value >>  8) & 0xff);
          pBytes[pOff + pLen + 3] = (byte) ( value        & 0xff);
      }