docs: function(x, c) {
    x[3] = ~x[3];
    x[0] ^= (c) & ~x[2];
    var tmp = (c) ^ (x[0] & x[1]);
    x[0] ^= x[2] & x[3];
    x[3] ^= ~x[1] & x[2];
    x[1] ^= x[0] & x[2];
    x[2] ^= x[0] & ~x[3];
    x[0] ^= x[1] | x[3];
    x[3] ^= x[1] & x[2];
    x[1] ^= tmp & x[0];
    x[2] ^= tmp;
    return x;
  }