21 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, 0x8000000080008000, 0x000000000000808b,
22 0x0000000080000001, 0x8000000080008081, 0x8000000000008009, 0x000000000000008a, 0x0000000000000088,
23 0x0000000080008009, 0x000000008000000a, 0x000000008000808b, 0x800000000000008b, 0x8000000000008089,
24 0x8000000000008003, 0x8000000000008002, 0x8000000000000080, 0x000000000000800a, 0x800000008000000a,
25 0x8000000080008081, 0x8000000000008080, 0x0000000080000001, 0x8000000080008008,
34 uint64_t Aba, Abe, Abi, Abo, Abu;
35 uint64_t Aga, Age, Agi, Ago, Agu;
36 uint64_t Aka, Ake, Aki, Ako, Aku;
37 uint64_t Ama, Ame, Ami, Amo, Amu;
38 uint64_t Asa, Ase, Asi, Aso, Asu;
40 uint64_t Eba, Ebe, Ebi, Ebo, Ebu;
41 uint64_t Ega, Ege, Egi, Ego, Egu;
42 uint64_t Eka, Eke, Eki, Eko, Eku;
43 uint64_t Ema, Eme, Emi, Emo, Emu;
44 uint64_t Esa, Ese, Esi, Eso, Esu;
46 uint64_t Ba, Be, Bi, Bo, Bu;
48 uint64_t Da, De, Di, Do, Du;
76 for (round = 0; round < 24; round += 2) {
79 Ba = Aba ^ Aga ^ Aka ^ Ama ^ Asa;
80 Be = Abe ^ Age ^ Ake ^ Ame ^ Ase;
81 Bi = Abi ^ Agi ^ Aki ^ Ami ^ Asi;
82 Bo = Abo ^ Ago ^ Ako ^ Amo ^ Aso;
83 Bu = Abu ^ Agu ^ Aku ^ Amu ^ Asu;
92 Be = rol(Age ^ De, 44);
93 Bi = rol(Aki ^ Di, 43);
94 Bo = rol(Amo ^ Do, 21);
95 Bu = rol(Asu ^ Du, 14);
96 Eba = Ba ^ (~Be & Bi) ^ round_constants[round];
97 Ebe = Be ^ (~Bi & Bo);
98 Ebi = Bi ^ (~Bo & Bu);
99 Ebo = Bo ^ (~Bu & Ba);
100 Ebu = Bu ^ (~Ba & Be);
102 Ba = rol(Abo ^ Do, 28);
103 Be = rol(Agu ^ Du, 20);
104 Bi = rol(Aka ^ Da, 3);
105 Bo = rol(Ame ^ De, 45);
106 Bu = rol(Asi ^ Di, 61);
107 Ega = Ba ^ (~Be & Bi);
108 Ege = Be ^ (~Bi & Bo);
109 Egi = Bi ^ (~Bo & Bu);
110 Ego = Bo ^ (~Bu & Ba);
111 Egu = Bu ^ (~Ba & Be);
113 Ba = rol(Abe ^ De, 1);
114 Be = rol(Agi ^ Di, 6);
115 Bi = rol(Ako ^ Do, 25);
116 Bo = rol(Amu ^ Du, 8);
117 Bu = rol(Asa ^ Da, 18);
118 Eka = Ba ^ (~Be & Bi);
119 Eke = Be ^ (~Bi & Bo);
120 Eki = Bi ^ (~Bo & Bu);
121 Eko = Bo ^ (~Bu & Ba);
122 Eku = Bu ^ (~Ba & Be);
124 Ba = rol(Abu ^ Du, 27);
125 Be = rol(Aga ^ Da, 36);
126 Bi = rol(Ake ^ De, 10);
127 Bo = rol(Ami ^ Di, 15);
128 Bu = rol(Aso ^ Do, 56);
129 Ema = Ba ^ (~Be & Bi);
130 Eme = Be ^ (~Bi & Bo);
131 Emi = Bi ^ (~Bo & Bu);
132 Emo = Bo ^ (~Bu & Ba);
133 Emu = Bu ^ (~Ba & Be);
135 Ba = rol(Abi ^ Di, 62);
136 Be = rol(Ago ^ Do, 55);
137 Bi = rol(Aku ^ Du, 39);
138 Bo = rol(Ama ^ Da, 41);
139 Bu = rol(Ase ^ De, 2);
140 Esa = Ba ^ (~Be & Bi);
141 Ese = Be ^ (~Bi & Bo);
142 Esi = Bi ^ (~Bo & Bu);
143 Eso = Bo ^ (~Bu & Ba);
144 Esu = Bu ^ (~Ba & Be);
148 Ba = Eba ^ Ega ^ Eka ^ Ema ^ Esa;
149 Be = Ebe ^ Ege ^ Eke ^ Eme ^ Ese;
150 Bi = Ebi ^ Egi ^ Eki ^ Emi ^ Esi;
151 Bo = Ebo ^ Ego ^ Eko ^ Emo ^ Eso;
152 Bu = Ebu ^ Egu ^ Eku ^ Emu ^ Esu;
154 Da = Bu ^ rol(Be, 1);
155 De = Ba ^ rol(Bi, 1);
156 Di = Be ^ rol(Bo, 1);
157 Do = Bi ^ rol(Bu, 1);
158 Du = Bo ^ rol(Ba, 1);
161 Be = rol(Ege ^ De, 44);
162 Bi = rol(Eki ^ Di, 43);
163 Bo = rol(Emo ^ Do, 21);
164 Bu = rol(Esu ^ Du, 14);
165 Aba = Ba ^ (~Be & Bi) ^ round_constants[round + 1];
166 Abe = Be ^ (~Bi & Bo);
167 Abi = Bi ^ (~Bo & Bu);
168 Abo = Bo ^ (~Bu & Ba);
169 Abu = Bu ^ (~Ba & Be);
171 Ba = rol(Ebo ^ Do, 28);
172 Be = rol(Egu ^ Du, 20);
173 Bi = rol(Eka ^ Da, 3);
174 Bo = rol(Eme ^ De, 45);
175 Bu = rol(Esi ^ Di, 61);
176 Aga = Ba ^ (~Be & Bi);
177 Age = Be ^ (~Bi & Bo);
178 Agi = Bi ^ (~Bo & Bu);
179 Ago = Bo ^ (~Bu & Ba);
180 Agu = Bu ^ (~Ba & Be);
182 Ba = rol(Ebe ^ De, 1);
183 Be = rol(Egi ^ Di, 6);
184 Bi = rol(Eko ^ Do, 25);
185 Bo = rol(Emu ^ Du, 8);
186 Bu = rol(Esa ^ Da, 18);
187 Aka = Ba ^ (~Be & Bi);
188 Ake = Be ^ (~Bi & Bo);
189 Aki = Bi ^ (~Bo & Bu);
190 Ako = Bo ^ (~Bu & Ba);
191 Aku = Bu ^ (~Ba & Be);
193 Ba = rol(Ebu ^ Du, 27);
194 Be = rol(Ega ^ Da, 36);
195 Bi = rol(Eke ^ De, 10);
196 Bo = rol(Emi ^ Di, 15);
197 Bu = rol(Eso ^ Do, 56);
198 Ama = Ba ^ (~Be & Bi);
199 Ame = Be ^ (~Bi & Bo);
200 Ami = Bi ^ (~Bo & Bu);
201 Amo = Bo ^ (~Bu & Ba);
202 Amu = Bu ^ (~Ba & Be);
204 Ba = rol(Ebi ^ Di, 62);
205 Be = rol(Ego ^ Do, 55);
206 Bi = rol(Eku ^ Du, 39);
207 Bo = rol(Ema ^ Da, 41);
208 Bu = rol(Ese ^ De, 2);
209 Asa = Ba ^ (~Be & Bi);
210 Ase = Be ^ (~Bi & Bo);
211 Asi = Bi ^ (~Bo & Bu);
212 Aso = Bo ^ (~Bu & Ba);
213 Asu = Bu ^ (~Ba & Be);