code: func updateMAC(mac hash.Hash, block cipher.Block, seed []byte) []byte {
  	aesbuf := make([]byte, aes.BlockSize)
  	block.Encrypt(aesbuf, mac.Sum(nil))
  	for i := range aesbuf {
  		aesbuf[i] ^= seed[i]
  	}
  	mac.Write(aesbuf)
  	return mac.Sum(nil)[:16]
  }
docs: // updateMAC reseeds the given hash with encrypted seed.
  // it returns the first 16 bytes of the hash sum after seeding.