// TEAV.c. public static void main(String x[]); { // xor test. int x = 2 + 84844 ^ 34343 + 2; int y = 2 + (84844 ^ 34343) + 2; System.out.println(x + " " + y); } void encipher(const unsigned long *const v,unsigned long *const w, const unsigned long * const k) { register unsigned long y=v[0],z=v[1],sum=0,delta=0x9E3779B9L,n=32; while(n-->0) { y += ((z << 4) ^( z >> 5)) +( z ^ sum) + k[(int)sum&3]; sum += delta; z += ((y << 4) ^( y >> 5)) +( y ^ sum) + k[(int)(sum>>11) & 3]; } w[0]=y; w[1]=z; } void decipher(const unsigned long *const v,unsigned long *const w, const unsigned long * const k) { register unsigned long y=v[0],z=v[1],sum=0xC6EF3720L, delta=0x9E3779B9L,n=32; /* sum = delta<<5, in general sum = delta * n */ while(n-->0) { z -= ((y << 4) ^( y >> 5)) + ( y ^ sum) + k[(int)(sum>>11) & 3]; sum -= delta; y -= ((z << 4) ^ (z >> 5)) + (z ^ sum) + k[(int)sum&3]; } w[0]=y; w[1]=z; }