#include "endian.h"#include "permutations.h"staticconstu8constants[][2]={{0xc,0xc},{0x9,0xc},{0xc,0x9},{0x9,0x9},{0x6,0xc},{0x3,0xc},{0x6,0x9},{0x3,0x9},{0xc,0x6},{0x9,0x6},{0xc,0x3},{0x9,0x3}};// Credit to Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002u32_2to_bit_interleaving_big(u64in){u32_2out;to_bit_interleaving_big_immediate(out,in);returnout;}// Credit to Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002u64from_bit_interleaving_big(u32_2in){u64out;from_bit_interleaving_big_immediate(out,in);returnout;}voidP(state*p,u8rounds){states=*p;u32_2t0;u32i,start=START_ROUND(rounds);for(i=start;i<12;i++)ROUND(constants[i][0],constants[i][1]);*p=s;}