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