void Tony_Main(unsigned char nDataPtr[], const unsigned char nExtPtr[]); static void Tony_Munge1(unsigned char nMunge1Ptr[], const unsigned char nPtr[]); static void Tony_Munge2(unsigned char nMunge2Ptr[]); static void Tony_Munge3(unsigned char nMunge3Ptr[]); void Tony_Main( unsigned char nDataPtr[], const unsigned char nExtPtr[]) { signed char nIndex; Tony_Munge1(nDataPtr, &nExtPtr[2U * (16U)]); Tony_Munge2(nDataPtr); for (nIndex = 1; nIndex >= 0; nIndex--) { Tony_Munge1(nDataPtr, &nExtPtr[((unsigned char)nIndex * (16U))]); if (0 != nIndex) { Tony_Munge3(nDataPtr); } } } static void Tony_Munge1( unsigned char nMunge1Ptr[], const unsigned char nPtr[]) { unsigned char nIndex; for (nIndex = 0U; nIndex < (16U); nIndex++) { (nMunge1Ptr[nIndex]) ^= nPtr[nIndex]; } } static void Tony_Munge2( unsigned char nMunge2Ptr[]) { unsigned char nTemp; nTemp = nMunge2Ptr[0]; nMunge2Ptr[0] = nMunge2Ptr[4]; nMunge2Ptr[4] = nMunge2Ptr[8]; nMunge2Ptr[8] = nMunge2Ptr[12]; nMunge2Ptr[12] = nTemp; nTemp = nMunge2Ptr[1]; nMunge2Ptr[1] = nMunge2Ptr[5]; nMunge2Ptr[5] = nMunge2Ptr[9]; nMunge2Ptr[9] = nMunge2Ptr[13]; nMunge2Ptr[13] = nTemp; nTemp = nMunge2Ptr[2]; nMunge2Ptr[2] = nMunge2Ptr[6]; nMunge2Ptr[6] = nMunge2Ptr[10]; nMunge2Ptr[10] = nMunge2Ptr[14]; nMunge2Ptr[14] = nTemp; nTemp = nMunge2Ptr[3]; nMunge2Ptr[3] = nMunge2Ptr[7]; nMunge2Ptr[7] = nMunge2Ptr[11]; nMunge2Ptr[11] = nMunge2Ptr[15]; nMunge2Ptr[15] = nTemp; } static void Tony_Munge3( unsigned char nMunge3Ptr[]) { unsigned char nTemp[(16U)]; unsigned char nIndex; nTemp[15] = nMunge3Ptr[0] ^ nMunge3Ptr[1]; nTemp[14] = nMunge3Ptr[2] ^ nMunge3Ptr[3]; nTemp[13] = nMunge3Ptr[4] ^ nMunge3Ptr[5]; nTemp[12] = nMunge3Ptr[6] ^ nMunge3Ptr[7]; nTemp[11] = nMunge3Ptr[8] ^ nMunge3Ptr[9]; nTemp[10] = nMunge3Ptr[10] ^ nMunge3Ptr[11]; nTemp[9] = nMunge3Ptr[12] ^ nMunge3Ptr[13]; nTemp[8] = nMunge3Ptr[14] ^ nMunge3Ptr[15]; nTemp[7] = nMunge3Ptr[0] ^ nMunge3Ptr[1]; nTemp[6] = nMunge3Ptr[2] ^ nMunge3Ptr[3]; nTemp[5] = nMunge3Ptr[4] ^ nMunge3Ptr[5]; nTemp[4] = nMunge3Ptr[6] ^ nMunge3Ptr[7]; nTemp[3] = nMunge3Ptr[8] ^ nMunge3Ptr[9]; nTemp[2] = nMunge3Ptr[10] ^ nMunge3Ptr[11]; nTemp[1] = nMunge3Ptr[12] ^ nMunge3Ptr[13]; nTemp[0] = nMunge3Ptr[14] ^ nMunge3Ptr[15]; for (nIndex = 0U; nIndex < (16U); nIndex++) { nMunge3Ptr[nIndex] = nTemp[nIndex]; } }