private void mix(
        final long a, final long b, final int i, final int j, final int k, final int l) {
      v[i] += a + v[j];
      v[l] = Long.rotateLeft(v[l] ^ v[i], -32);
      v[k] += v[l];
      v[j] = Long.rotateLeft(v[j] ^ v[k], -24);

      v[i] += b + v[j];
      v[l] = Long.rotateLeft(v[l] ^ v[i], -16);
      v[k] += v[l];
      v[j] = Long.rotateLeft(v[j] ^ v[k], -63);
    }
F is a compression function for BLAKE2b. It takes as an argument the state vector `h`,
message block vector `m`, offset counter `t`, final block indicator flag `f`, and number of
rounds `rounds`. The state vector provided as the first parameter is modified by the
function.
crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/Blake2bfMessageDigest.java