Ton code n'est pas optimisé du tout, au lieu de faire des xor entre octets tu peux faire des xor entre mots de 32bits.

Il faut une partie pour traiter les xor sur 32bits et du code pour finaliser...