word32
*((word32*)w) =
*((const word32*)U1[w[0]])
^ *((const word32*)U2[w[1]])
^ *((const word32*)U3[w[2]])
^ *((const word32*)U4[w[3]]);
*((word32*)w) =
*((const word32*)U1[w[0]])
^ *((const word32*)U2[w[1]])
^ *((const word32*)U3[w[2]])
^ *((const word32*)U4[w[3]]);
*((word32*)w) =
*((const word32*)U1[w[0]])
^ *((const word32*)U2[w[1]])
^ *((const word32*)U3[w[2]])
^ *((const word32*)U4[w[3]]);
*((word32*)w) =
*((const word32*)U1[w[0]])
^ *((const word32*)U2[w[1]])
^ *((const word32*)U3[w[2]])
^ *((const word32*)U4[w[3]]);
word32 x32[4];
word32 x32[4];
*((word32*)temp[0]) = *((word32*)(a )) ^ *((word32*)rk[0][0]);
*((word32*)temp[1]) = *((word32*)(a+ 4)) ^ *((word32*)rk[0][1]);
*((word32*)temp[2]) = *((word32*)(a+ 8)) ^ *((word32*)rk[0][2]);
*((word32*)temp[3]) = *((word32*)(a+12)) ^ *((word32*)rk[0][3]);
*((word32*)(b )) = *((const word32*)T1[temp[0][0]])
^ *((const word32*)T2[temp[1][1]])
^ *((const word32*)T3[temp[2][2]])
^ *((const word32*)T4[temp[3][3]]);
*((word32*)(b + 4)) = *((const word32*)T1[temp[1][0]])
^ *((const word32*)T2[temp[2][1]])
^ *((const word32*)T3[temp[3][2]])
^ *((const word32*)T4[temp[0][3]]);
*((word32*)(b + 8)) = *((const word32*)T1[temp[2][0]])
^ *((const word32*)T2[temp[3][1]])
^ *((const word32*)T3[temp[0][2]])
^ *((const word32*)T4[temp[1][3]]);
*((word32*)(b +12)) = *((const word32*)T1[temp[3][0]])
^ *((const word32*)T2[temp[0][1]])
^ *((const word32*)T3[temp[1][2]])
^ *((const word32*)T4[temp[2][3]]);
*((word32*)temp[0]) = *((word32*)(b )) ^ *((word32*)rk[r][0]);
*((word32*)temp[1]) = *((word32*)(b+ 4)) ^ *((word32*)rk[r][1]);
*((word32*)temp[2]) = *((word32*)(b+ 8)) ^ *((word32*)rk[r][2]);
*((word32*)temp[3]) = *((word32*)(b+12)) ^ *((word32*)rk[r][3]);
*((word32*)(b )) = *((const word32*)T1[temp[0][0]])
^ *((const word32*)T2[temp[1][1]])
^ *((const word32*)T3[temp[2][2]])
^ *((const word32*)T4[temp[3][3]]);
*((word32*)(b + 4)) = *((const word32*)T1[temp[1][0]])
^ *((const word32*)T2[temp[2][1]])
^ *((const word32*)T3[temp[3][2]])
^ *((const word32*)T4[temp[0][3]]);
*((word32*)(b + 8)) = *((const word32*)T1[temp[2][0]])
^ *((const word32*)T2[temp[3][1]])
^ *((const word32*)T3[temp[0][2]])
^ *((const word32*)T4[temp[1][3]]);
*((word32*)(b +12)) = *((const word32*)T1[temp[3][0]])
^ *((const word32*)T2[temp[0][1]])
^ *((const word32*)T3[temp[1][2]])
^ *((const word32*)T4[temp[2][3]]);
*((word32*)temp[0]) = *((word32*)(b )) ^ *((word32*)rk[ROUNDS-1][0]);
*((word32*)temp[1]) = *((word32*)(b+ 4)) ^ *((word32*)rk[ROUNDS-1][1]);
*((word32*)temp[2]) = *((word32*)(b+ 8)) ^ *((word32*)rk[ROUNDS-1][2]);
*((word32*)temp[3]) = *((word32*)(b+12)) ^ *((word32*)rk[ROUNDS-1][3]);
*((word32*)(b )) ^= *((word32*)rk[ROUNDS][0]);
*((word32*)(b+ 4)) ^= *((word32*)rk[ROUNDS][1]);
*((word32*)(b+ 8)) ^= *((word32*)rk[ROUNDS][2]);
*((word32*)(b+12)) ^= *((word32*)rk[ROUNDS][3]);
*((word32*)a[0]) = *((word32*)a[0]) ^ *((word32*)rk[0][0]);
*((word32*)a[1]) = *((word32*)a[1]) ^ *((word32*)rk[0][1]);
*((word32*)a[2]) = *((word32*)a[2]) ^ *((word32*)rk[0][2]);
*((word32*)a[3]) = *((word32*)a[3]) ^ *((word32*)rk[0][3]);
*((word32*)temp[0]) = *((const word32*)T1[a[0][0]])
^ *((const word32*)T2[a[1][1]])
^ *((const word32*)T3[a[2][2]])
^ *((const word32*)T4[a[3][3]]);
*((word32*)temp[1]) = *((const word32*)T1[a[1][0]])
^ *((const word32*)T2[a[2][1]])
^ *((const word32*)T3[a[3][2]])
^ *((const word32*)T4[a[0][3]]);
*((word32*)temp[2]) = *((const word32*)T1[a[2][0]])
^ *((const word32*)T2[a[3][1]])
^ *((const word32*)T3[a[0][2]])
^ *((const word32*)T4[a[1][3]]);
*((word32*)temp[3]) = *((const word32*)T1[a[3][0]])
^ *((const word32*)T2[a[0][1]])
^ *((const word32*)T3[a[1][2]])
^ *((const word32*)T4[a[2][3]]);
*((word32*)a[0]) = *((word32*)temp[0]) ^ *((word32*)rk[r][0]);
*((word32*)a[1]) = *((word32*)temp[1]) ^ *((word32*)rk[r][1]);
*((word32*)a[2]) = *((word32*)temp[2]) ^ *((word32*)rk[r][2]);
*((word32*)a[3]) = *((word32*)temp[3]) ^ *((word32*)rk[r][3]);
*((word32*)a[0]) = *((word32*)temp[0]) ^ *((word32*)rk[ROUNDS][0]);
*((word32*)a[1]) = *((word32*)temp[1]) ^ *((word32*)rk[ROUNDS][1]);
*((word32*)a[2]) = *((word32*)temp[2]) ^ *((word32*)rk[ROUNDS][2]);
*((word32*)a[3]) = *((word32*)temp[3]) ^ *((word32*)rk[ROUNDS][3]);
word32 x32[4];
word32 x32[4];
*((word32*)temp[0]) = *((word32*)(a )) ^ *((word32*)rk[ROUNDS][0]);
*((word32*)temp[1]) = *((word32*)(a+ 4)) ^ *((word32*)rk[ROUNDS][1]);
*((word32*)temp[2]) = *((word32*)(a+ 8)) ^ *((word32*)rk[ROUNDS][2]);
*((word32*)temp[3]) = *((word32*)(a+12)) ^ *((word32*)rk[ROUNDS][3]);
*((word32*)(b )) = *((const word32*)T5[temp[0][0]])
^ *((const word32*)T6[temp[3][1]])
^ *((const word32*)T7[temp[2][2]])
^ *((const word32*)T8[temp[1][3]]);
*((word32*)(b+ 4)) = *((const word32*)T5[temp[1][0]])
^ *((const word32*)T6[temp[0][1]])
^ *((const word32*)T7[temp[3][2]])
^ *((const word32*)T8[temp[2][3]]);
*((word32*)(b+ 8)) = *((const word32*)T5[temp[2][0]])
^ *((const word32*)T6[temp[1][1]])
^ *((const word32*)T7[temp[0][2]])
^ *((const word32*)T8[temp[3][3]]);
*((word32*)(b+12)) = *((const word32*)T5[temp[3][0]])
^ *((const word32*)T6[temp[2][1]])
^ *((const word32*)T7[temp[1][2]])
^ *((const word32*)T8[temp[0][3]]);
*((word32*)temp[0]) = *((word32*)(b )) ^ *((word32*)rk[r][0]);
*((word32*)temp[1]) = *((word32*)(b+ 4)) ^ *((word32*)rk[r][1]);
*((word32*)temp[2]) = *((word32*)(b+ 8)) ^ *((word32*)rk[r][2]);
*((word32*)temp[3]) = *((word32*)(b+12)) ^ *((word32*)rk[r][3]);
*((word32*)(b )) = *((const word32*)T5[temp[0][0]])
^ *((const word32*)T6[temp[3][1]])
^ *((const word32*)T7[temp[2][2]])
^ *((const word32*)T8[temp[1][3]]);
*((word32*)(b+ 4)) = *((const word32*)T5[temp[1][0]])
^ *((const word32*)T6[temp[0][1]])
^ *((const word32*)T7[temp[3][2]])
^ *((const word32*)T8[temp[2][3]]);
*((word32*)(b+ 8)) = *((const word32*)T5[temp[2][0]])
^ *((const word32*)T6[temp[1][1]])
^ *((const word32*)T7[temp[0][2]])
^ *((const word32*)T8[temp[3][3]]);
*((word32*)(b+12)) = *((const word32*)T5[temp[3][0]])
^ *((const word32*)T6[temp[2][1]])
^ *((const word32*)T7[temp[1][2]])
^ *((const word32*)T8[temp[0][3]]);
*((word32*)temp[0]) = *((word32*)(b )) ^ *((word32*)rk[1][0]);
*((word32*)temp[1]) = *((word32*)(b+ 4)) ^ *((word32*)rk[1][1]);
*((word32*)temp[2]) = *((word32*)(b+ 8)) ^ *((word32*)rk[1][2]);
*((word32*)temp[3]) = *((word32*)(b+12)) ^ *((word32*)rk[1][3]);
*((word32*)(b )) ^= *((word32*)rk[0][0]);
*((word32*)(b+ 4)) ^= *((word32*)rk[0][1]);
*((word32*)(b+ 8)) ^= *((word32*)rk[0][2]);
*((word32*)(b+12)) ^= *((word32*)rk[0][3]);
*(word32 *)a[0] ^= *(word32 *)rk[ROUNDS][0];
*(word32 *)a[1] ^= *(word32 *)rk[ROUNDS][1];
*(word32 *)a[2] ^= *(word32 *)rk[ROUNDS][2];
*(word32 *)a[3] ^= *(word32 *)rk[ROUNDS][3];
word32 x32[MAXKC];
*(word32 *)a[0] ^= *(word32 *)rk[r][0];
*(word32 *)a[1] ^= *(word32 *)rk[r][1];
*(word32 *)a[2] ^= *(word32 *)rk[r][2];
*(word32 *)a[3] ^= *(word32 *)rk[r][3];
*((word32*)a[0]) =
*((const word32*)U1[a[0][0]])
^ *((const word32*)U2[a[0][1]])
^ *((const word32*)U3[a[0][2]])
^ *((const word32*)U4[a[0][3]]);
*((word32*)a[1]) =
*((const word32*)U1[a[1][0]])
^ *((const word32*)U2[a[1][1]])
^ *((const word32*)U3[a[1][2]])
^ *((const word32*)U4[a[1][3]]);
*((word32*)a[2]) =
*((const word32*)U1[a[2][0]])
^ *((const word32*)U2[a[2][1]])
^ *((const word32*)U3[a[2][2]])
^ *((const word32*)U4[a[2][3]]);
*((word32*)a[3]) =
*((const word32*)U1[a[3][0]])
^ *((const word32*)U2[a[3][1]])
^ *((const word32*)U3[a[3][2]])
^ *((const word32*)U4[a[3][3]]);
*(word32 *)a[0] ^= *(word32 *)rk[0][0];
*((word32*)tk[j]) = *((word32*)k[j]);
*(word32 *)a[1] ^= *(word32 *)rk[0][1];
*(word32 *)a[2] ^= *(word32 *)rk[0][2];
*(word32 *)a[3] ^= *(word32 *)rk[0][3];
*((word32*)W[r][t]) = *((word32*)tk[j]);
*((word32*)tk[j]) ^= *((word32*)tk[j-1]);
*((word32*)tk[j]) ^= *((word32*)tk[j-1]);
*((word32*)tk[j]) ^= *((word32*)tk[j-1]);
*((word32*)W[r][t]) = *((word32*)tk[j]);
((word32*)block)[0] ^= ((word32*)iv)[0];
((word32*)block)[1] ^= ((word32*)iv)[1];
((word32*)block)[2] ^= ((word32*)iv)[2];
((word32*)block)[3] ^= ((word32*)iv)[3];
((word32*)block)[0] = ((word32*)cipher->IV)[0] ^ ((word32*)input)[0];
((word32*)block)[1] = ((word32*)cipher->IV)[1] ^ ((word32*)input)[1];
((word32*)block)[2] = ((word32*)cipher->IV)[2] ^ ((word32*)input)[2];
((word32*)block)[3] = ((word32*)cipher->IV)[3] ^ ((word32*)input)[3];
((word32*)block)[0] ^= ((word32*)iv)[0];
((word32*)block)[1] ^= ((word32*)iv)[1];
((word32*)block)[2] ^= ((word32*)iv)[2];
((word32*)block)[3] ^= ((word32*)iv)[3];
((word32*)block)[0] = ((word32*)outBuffer)[0] ^ ((word32*)input)[0];
((word32*)block)[1] = ((word32*)outBuffer)[1] ^ ((word32*)input)[1];
((word32*)block)[2] = ((word32*)outBuffer)[2] ^ ((word32*)input)[2];
((word32*)block)[3] = ((word32*)outBuffer)[3] ^ ((word32*)input)[3];
*((word32*)iv[0]) = *((word32*)(cipher->IV ));
*((word32*)iv[1]) = *((word32*)(cipher->IV+ 4));
*((word32*)iv[2]) = *((word32*)(cipher->IV+ 8));
*((word32*)iv[3]) = *((word32*)(cipher->IV+12));
*((word32*) block ) = *((word32*)iv[0]);
*((word32*)(block+ 4)) = *((word32*)iv[1]);
*((word32*)(block+ 8)) = *((word32*)iv[2]);
*((word32*)(block+12)) = *((word32*)iv[3]);
((word32*)block)[0] = ((word32*)input)[0] ^ ((word32*)iv)[0];
((word32*)block)[1] = ((word32*)input)[1] ^ ((word32*)iv)[1];
((word32*)block)[2] = ((word32*)input)[2] ^ ((word32*)iv)[2];
((word32*)block)[3] = ((word32*)input)[3] ^ ((word32*)iv)[3];
*((word32*)iv[0]) = *((word32*)(cipher->IV ));
*((word32*)iv[1]) = *((word32*)(cipher->IV+ 4));
*((word32*)iv[2]) = *((word32*)(cipher->IV+ 8));
*((word32*)iv[3]) = *((word32*)(cipher->IV+12));
((word32*)block)[0] ^= *((word32*)iv[0]);
((word32*)block)[1] ^= *((word32*)iv[1]);
((word32*)block)[2] ^= *((word32*)iv[2]);
((word32*)block)[3] ^= *((word32*)iv[3]);
*((word32*)iv[0]) = ((word32*)input)[0]; ((word32*)outBuffer)[0] = ((word32*)block)[0];
*((word32*)iv[1]) = ((word32*)input)[1]; ((word32*)outBuffer)[1] = ((word32*)block)[1];
*((word32*)iv[2]) = ((word32*)input)[2]; ((word32*)outBuffer)[2] = ((word32*)block)[2];
*((word32*)iv[3]) = ((word32*)input)[3]; ((word32*)outBuffer)[3] = ((word32*)block)[3];
*((word32*)iv[0]) = *((word32*)(cipher->IV));
*((word32*)iv[1]) = *((word32*)(cipher->IV+ 4));
*((word32*)iv[2]) = *((word32*)(cipher->IV+ 8));
*((word32*)iv[3]) = *((word32*)(cipher->IV+12));
*((word32*) block ) = *((word32*)iv[0]);
*((word32*)(block+ 4)) = *((word32*)iv[1]);
*((word32*)(block+ 8)) = *((word32*)iv[2]);
*((word32*)(block+12)) = *((word32*)iv[3]);
word32 iv[4];
((word32*)block)[0] ^= iv[0];
((word32*)block)[1] ^= iv[1];
((word32*)block)[2] ^= iv[2];
((word32*)block)[3] ^= iv[3];
((word32*)block)[0] ^= iv[0];
((word32*)block)[1] ^= iv[1];
((word32*)block)[2] ^= iv[2];
((word32*)block)[3] ^= iv[3];
*((word32*)block[j]) = *((word32*)(input+4*j));
*((word32*)(outBuffer+4*j)) = *((word32*)block[j]);
uint32_t word32[4];
k[2] = ips[isrc]->word32[0];
k[3] = ips[idst]->word32[0];
mix ^= a1->word32[i];
mix ^= a2->word32[i];
out->word32[i] = addr->word32[i] & wordmask;
out->word32[i] |= addr->word32[i] & ~wordmask;
if ((addr->word32[2] == 0 && addr->word32[3] == 0) ||
(addr->word32[2] == ~0U && addr->word32[3] == ~0U))
addr->word32[0] = inet_addr(ip_list[i]);
addr->word32[0] = inet_addr(ip_list[0]);
addr->word32[0] = inet_addr(ip_list[i]);
addr->word32[0] = inet_addr(ip_list[i]);
addr->word32[0] = inet_addr(ip_list[0]);
addr->word32[0] = inet_addr("172.16.90.10");
addr->word32[0] = inet_addr("172.16.90.0");
addr->word32[0] = inet_addr("172.16.90.126");
addr->word32[0] = inet_addr("172.16.90.128");
addr->word32[0] = inet_addr(ip_list[0]);
addr->word32[0] = inet_addr(ip_list[i]);
test_addr->word32[0] = inet_addr(ipstr);
addr->word32[0] = inet_addr(ip_list[i]);