code: func mul(x, y, poly int) int {
  	z := 0
  	for x > 0 {
  		if x&1 != 0 {
  			z ^= y
  		}
  		x >>= 1
  		y <<= 1
  		if y&0x100 != 0 {
  			y ^= poly
  		}
  	}
  	return z
  }
docs: // mul returns the product x*y mod poly, a GF(256) multiplication.