byte[][] rks = new byte[numRounds + 1][16]; keyScheduleRound(rks[0], W0, W1, 19); keyScheduleRound(rks[1], W1, W2, 19); keyScheduleRound(rks[2], W2, W3, 19); keyScheduleRound(rks[3], W3, W0, 19); keyScheduleRound(rks[4], W0, W1, 31); keyScheduleRound(rks[5], W1, W2, 31); keyScheduleRound(rks[6], W2, W3, 31); keyScheduleRound(rks[7], W3, W0, 31); keyScheduleRound(rks[8], W0, W1, 67); keyScheduleRound(rks[9], W1, W2, 67); keyScheduleRound(rks[10], W2, W3, 67); keyScheduleRound(rks[11], W3, W0, 67); keyScheduleRound(rks[12], W0, W1, 97); if (numRounds > 12) keyScheduleRound(rks[13], W1, W2, 97); keyScheduleRound(rks[14], W2, W3, 97); if (numRounds > 14) keyScheduleRound(rks[15], W3, W0, 97); keyScheduleRound(rks[16], W0, W1, 109);