code: public void updatePacket(byte[] packet, int pos) {
      if (pos < 0) {
        throw new IllegalArgumentException(String.format("Pos (%s) must be positive", pos));
      }
      if (pos + 32 > packet.length) {
        throw new IllegalArgumentException("packet must have at least 32 bytes after pos");
      }
      long a0 = read64(packet, pos + 0);
      long a1 = read64(packet, pos + 8);
      long a2 = read64(packet, pos + 16);
      long a3 = read64(packet, pos + 24);
      update(a0, a1, a2, a3);
    }
docs: Updates the hash with 32 bytes of data. If you can read 4 long values
  from your data efficiently, prefer using update() instead for more speed.
  @param packet data array which has a length of at least pos + 32
  @param pos position in the array to read the first of 32 bytes from