void xtea3_encrypt (u32 * plain, u32 *key) { u32 a, b, c, d, sum, r, t; sum = 0; a = plain[0] + key[0]; b = plain[1] + key[1]; c = plain[2] + key[2]; d = plain[3] + key[3]; for (r = 0; r != 32; r++) { a = a + (((b << 4) + _lrotl (key[(sum % 4) + 4], b)) ^ (d + sum) ^ ((b >> 5) + _lrotl (key[sum % 4], b >> 27))); sum = sum + 0x9E3779B9; c = c + (((d << 4) + _lrotl (key[((sum >> 11) % 4) + 4], d)) ^ (b + sum) ^ ((d >> 5) + _lrotl (key[(sum >> 11) % 4], d >> 27))); t = a; a = b; b = c; c = d; d = t; } plain[0] = a ^ key[4]; plain[1] = b ^ key[5]; plain[2] = c ^ key[6]; plain[3] = d ^ key[7]; }