void key_decode (const u8 *key, u8 *deckey) { u8 seq [] = {8, 10, 4, 5, 7, 1, 11, 3, 9, 2, 0, 6}; s8 i = 11; u8 j = 0, k = 0; u32 v = 330078017; while (i > -1) { j = key [seq [k++]]; if (j < 8) { j ^= v & 7; v >>= 3; } else j ^= i & 1; deckey [i--] = j; } }