1== BEGIN: "aes128KeySchedule.c" ================
2/* File: "aes128KeySchedule.c". Automatically generated by SBV. Do not edit! */
3
4#include "aes128Lib.h"
5
6void aes128KeySchedule(const SWord32 *key, SWord32 *encKS,
7                       SWord32 *decKS)
8{
9  const SWord32 s0 = key[0];
10  const SWord32 s1 = key[1];
11  const SWord32 s2 = key[2];
12  const SWord32 s3 = key[3];
13  static const SWord8 table0[] = {
14       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,
15      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,
16      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,
17      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,
18       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,
19      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,
20       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,
21       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,
22       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,
23      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,
24       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,
25      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,
26      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,
27      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,
28       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,
29       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,
30      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,
31      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,
32      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,
33      104,  65, 153,  45,  15, 176,  84, 187,  22
34  };
35  static const SWord8 table1[] = {
36        0,  14,  28,  18,  56,  54,  36,  42, 112, 126, 108,  98,  72,
37       70,  84,  90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158,
38      140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 255,
39      241, 171, 165, 183, 185, 147, 157, 143, 129,  59,  53,  39,  41,
40        3,  13,  31,  17,  75,  69,  87,  89, 115, 125, 111,  97, 173,
41      163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235,
42      249, 247,  77,  67,  81,  95, 117, 123, 105, 103,  61,  51,  33,
43       47,   5,  11,  25,  23, 118, 120, 106, 100,  78,  64,  82,  92,
44        6,   8,  26,  20,  62,  48,  34,  44, 150, 152, 138, 132, 174,
45      160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204,  65,  79,
46       93,  83, 121, 119, 101, 107,  49,  63,  45,  35,   9,   7,  21,
47       27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195,
48      233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234,
49      228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104,  66,  76,
50       94,  80,  10,   4,  22,  24,  50,  60,  46,  32, 236, 226, 240,
51      254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182,
52       12,   2,  16,  30,  52,  58,  40,  38, 124, 114,  96, 110,  68,
53       74,  88,  86,  55,  57,  43,  37,  15,   1,  19,  29,  71,  73,
54       91,  85, 127, 113,  99, 109, 215, 217, 203, 197, 239, 225, 243,
55      253, 167, 169, 187, 181, 159, 145, 131, 141
56  };
57  static const SWord8 table2[] = {
58        0,  11,  22,  29,  44,  39,  58,  49,  88,  83,  78,  69, 116,
59      127,  98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227,
60      254, 245, 196, 207, 210, 217, 123, 112, 109, 102,  87,  92,  65,
61       74,  35,  40,  53,  62,  15,   4,  25,  18, 203, 192, 221, 214,
62      231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246,
63      253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137,
64      148, 159,  70,  77,  80,  91, 106,  97, 124, 119,  30,  21,   8,
65        3,  50,  57,  36,  47, 141, 134, 155, 144, 161, 170, 183, 188,
66      213, 222, 195, 200, 249, 242, 239, 228,  61,  54,  43,  32,  17,
67       26,   7,  12, 101, 110, 115, 120,  73,  66,  95,  84, 247, 252,
68      225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149,
69      158,  71,  76,  81,  90, 107,  96, 125, 118,  31,  20,   9,   2,
70       51,  56,  37,  46, 140, 135, 154, 145, 160, 171, 182, 189, 212,
71      223, 194, 201, 248, 243, 238, 229,  60,  55,  42,  33,  16,  27,
72        6,  13, 100, 111, 114, 121,  72,  67,  94,  85,   1,  10,  23,
73       28,  45,  38,  59,  48,  89,  82,  79,  68, 117, 126,  99, 104,
74      177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 255, 244, 197,
75      206, 211, 216, 122, 113, 108, 103,  86,  93,  64,  75,  34,  41,
76       52,  63,  14,   5,  24,  19, 202, 193, 220, 215, 230, 237, 240,
77      251, 146, 153, 132, 143, 190, 181, 168, 163
78  };
79  static const SWord8 table3[] = {
80        0,  13,  26,  23,  52,  57,  46,  35, 104, 101, 114, 127,  92,
81       81,  70,  75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181,
82      162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149,
83      152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124,
84       95,  82,  69,  72,   3,  14,  25,  20,  55,  58,  45,  32, 109,
85       96, 119, 122,  89,  84,  67,  78,   5,   8,  31,  18,  49,  60,
86       43,  38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207,
87      194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245,
88      190, 179, 164, 169, 138, 135, 144, 157,   6,  11,  28,  17,  50,
89       63,  40,  37, 110,  99, 116, 121,  90,  87,  64,  77, 218, 215,
90      192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156,
91      145,  10,   7,  16,  29,  62,  51,  36,  41,  98, 111, 120, 117,
92       86,  91,  76,  65,  97, 108, 123, 118,  85,  88,  79,  66,   9,
93        4,  19,  30,  61,  48,  39,  42, 177, 188, 171, 166, 133, 136,
94      159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173,
95      160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252,
96      103, 106, 125, 112,  83,  94,  73,  68,  15,   2,  21,  24,  59,
97       54,  33,  44,  12,   1,  22,  27,  56,  53,  34,  47, 100, 105,
98      126, 115,  80,  93,  74,  71, 220, 209, 198, 203, 232, 229, 242,
99      255, 180, 185, 174, 163, 128, 141, 154, 151
100  };
101  static const SWord8 table4[] = {
102        0,   9,  18,  27,  36,  45,  54,  63,  72,  65,  90,  83, 108,
103      101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209,
104      202, 195, 252, 245, 238, 231,  59,  50,  41,  32,  31,  22,  13,
105        4, 115, 122,  97, 104,  87,  94,  69,  76, 171, 162, 185, 176,
106      143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118,
107      127, 100, 109,  82,  91,  64,  73,  62,  55,  44,  37,  26,  19,
108        8,   1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188,
109      181, 138, 131, 152, 145,  77,  68,  95,  86, 105,  96, 123, 114,
110        5,  12,  23,  30,  33,  40,  51,  58, 221, 212, 207, 198, 249,
111      240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229,
112      254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146,
113      155, 124, 117, 110, 103,  88,  81,  74,  67,  52,  61,  38,  47,
114       16,  25,   2,  11, 215, 222, 197, 204, 243, 250, 225, 232, 159,
115      150, 141, 132, 187, 178, 169, 160,  71,  78,  85,  92,  99, 106,
116      113, 120,  15,   6,  29,  20,  43,  34,  57,  48, 154, 147, 136,
117      129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 255, 228, 237,
118       10,   3,  24,  17,  46,  39,  60,  53,  66,  75,  80,  89, 102,
119      111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224,
120      251, 242, 205, 196, 223, 214,  49,  56,  35,  42,  21,  28,   7,
121       14, 121, 112, 107,  98,  93,  84,  79,  70
122  };
123  const SWord32 s260 = (s3 << 8) | (s3 >> 24);
124  const SWord8  s261 = (SWord8) (s260 >> 24);
125  const SWord8  s262 = table0[s261];
126  const SWord8  s263 = 1 ^ s262;
127  const SWord8  s264 = (SWord8) (s260 >> 16);
128  const SWord8  s265 = table0[s264];
129  const SWord16 s266 = (((SWord16) s263) << 8) | ((SWord16) s265);
130  const SWord8  s267 = (SWord8) (s260 >> 8);
131  const SWord8  s268 = table0[s267];
132  const SWord8  s269 = (SWord8) s260;
133  const SWord8  s270 = table0[s269];
134  const SWord16 s271 = (((SWord16) s268) << 8) | ((SWord16) s270);
135  const SWord32 s272 = (((SWord32) s266) << 16) | ((SWord32) s271);
136  const SWord32 s273 = s0 ^ s272;
137  const SWord32 s274 = s1 ^ s273;
138  const SWord32 s275 = s2 ^ s274;
139  const SWord32 s276 = s3 ^ s275;
140  const SWord32 s277 = (s276 << 8) | (s276 >> 24);
141  const SWord8  s278 = (SWord8) (s277 >> 24);
142  const SWord8  s279 = table0[s278];
143  const SWord8  s280 = 2 ^ s279;
144  const SWord8  s281 = (SWord8) (s277 >> 16);
145  const SWord8  s282 = table0[s281];
146  const SWord16 s283 = (((SWord16) s280) << 8) | ((SWord16) s282);
147  const SWord8  s284 = (SWord8) (s277 >> 8);
148  const SWord8  s285 = table0[s284];
149  const SWord8  s286 = (SWord8) s277;
150  const SWord8  s287 = table0[s286];
151  const SWord16 s288 = (((SWord16) s285) << 8) | ((SWord16) s287);
152  const SWord32 s289 = (((SWord32) s283) << 16) | ((SWord32) s288);
153  const SWord32 s290 = s273 ^ s289;
154  const SWord32 s291 = s274 ^ s290;
155  const SWord32 s292 = s275 ^ s291;
156  const SWord32 s293 = s276 ^ s292;
157  const SWord32 s294 = (s293 << 8) | (s293 >> 24);
158  const SWord8  s295 = (SWord8) (s294 >> 24);
159  const SWord8  s296 = table0[s295];
160  const SWord8  s297 = 4 ^ s296;
161  const SWord8  s298 = (SWord8) (s294 >> 16);
162  const SWord8  s299 = table0[s298];
163  const SWord16 s300 = (((SWord16) s297) << 8) | ((SWord16) s299);
164  const SWord8  s301 = (SWord8) (s294 >> 8);
165  const SWord8  s302 = table0[s301];
166  const SWord8  s303 = (SWord8) s294;
167  const SWord8  s304 = table0[s303];
168  const SWord16 s305 = (((SWord16) s302) << 8) | ((SWord16) s304);
169  const SWord32 s306 = (((SWord32) s300) << 16) | ((SWord32) s305);
170  const SWord32 s307 = s290 ^ s306;
171  const SWord32 s308 = s291 ^ s307;
172  const SWord32 s309 = s292 ^ s308;
173  const SWord32 s310 = s293 ^ s309;
174  const SWord32 s311 = (s310 << 8) | (s310 >> 24);
175  const SWord8  s312 = (SWord8) (s311 >> 24);
176  const SWord8  s313 = table0[s312];
177  const SWord8  s314 = 8 ^ s313;
178  const SWord8  s315 = (SWord8) (s311 >> 16);
179  const SWord8  s316 = table0[s315];
180  const SWord16 s317 = (((SWord16) s314) << 8) | ((SWord16) s316);
181  const SWord8  s318 = (SWord8) (s311 >> 8);
182  const SWord8  s319 = table0[s318];
183  const SWord8  s320 = (SWord8) s311;
184  const SWord8  s321 = table0[s320];
185  const SWord16 s322 = (((SWord16) s319) << 8) | ((SWord16) s321);
186  const SWord32 s323 = (((SWord32) s317) << 16) | ((SWord32) s322);
187  const SWord32 s324 = s307 ^ s323;
188  const SWord32 s325 = s308 ^ s324;
189  const SWord32 s326 = s309 ^ s325;
190  const SWord32 s327 = s310 ^ s326;
191  const SWord32 s328 = (s327 << 8) | (s327 >> 24);
192  const SWord8  s329 = (SWord8) (s328 >> 24);
193  const SWord8  s330 = table0[s329];
194  const SWord8  s331 = 16 ^ s330;
195  const SWord8  s332 = (SWord8) (s328 >> 16);
196  const SWord8  s333 = table0[s332];
197  const SWord16 s334 = (((SWord16) s331) << 8) | ((SWord16) s333);
198  const SWord8  s335 = (SWord8) (s328 >> 8);
199  const SWord8  s336 = table0[s335];
200  const SWord8  s337 = (SWord8) s328;
201  const SWord8  s338 = table0[s337];
202  const SWord16 s339 = (((SWord16) s336) << 8) | ((SWord16) s338);
203  const SWord32 s340 = (((SWord32) s334) << 16) | ((SWord32) s339);
204  const SWord32 s341 = s324 ^ s340;
205  const SWord32 s342 = s325 ^ s341;
206  const SWord32 s343 = s326 ^ s342;
207  const SWord32 s344 = s327 ^ s343;
208  const SWord32 s345 = (s344 << 8) | (s344 >> 24);
209  const SWord8  s346 = (SWord8) (s345 >> 24);
210  const SWord8  s347 = table0[s346];
211  const SWord8  s348 = 32 ^ s347;
212  const SWord8  s349 = (SWord8) (s345 >> 16);
213  const SWord8  s350 = table0[s349];
214  const SWord16 s351 = (((SWord16) s348) << 8) | ((SWord16) s350);
215  const SWord8  s352 = (SWord8) (s345 >> 8);
216  const SWord8  s353 = table0[s352];
217  const SWord8  s354 = (SWord8) s345;
218  const SWord8  s355 = table0[s354];
219  const SWord16 s356 = (((SWord16) s353) << 8) | ((SWord16) s355);
220  const SWord32 s357 = (((SWord32) s351) << 16) | ((SWord32) s356);
221  const SWord32 s358 = s341 ^ s357;
222  const SWord32 s359 = s342 ^ s358;
223  const SWord32 s360 = s343 ^ s359;
224  const SWord32 s361 = s344 ^ s360;
225  const SWord32 s362 = (s361 << 8) | (s361 >> 24);
226  const SWord8  s363 = (SWord8) (s362 >> 24);
227  const SWord8  s364 = table0[s363];
228  const SWord8  s365 = 64 ^ s364;
229  const SWord8  s366 = (SWord8) (s362 >> 16);
230  const SWord8  s367 = table0[s366];
231  const SWord16 s368 = (((SWord16) s365) << 8) | ((SWord16) s367);
232  const SWord8  s369 = (SWord8) (s362 >> 8);
233  const SWord8  s370 = table0[s369];
234  const SWord8  s371 = (SWord8) s362;
235  const SWord8  s372 = table0[s371];
236  const SWord16 s373 = (((SWord16) s370) << 8) | ((SWord16) s372);
237  const SWord32 s374 = (((SWord32) s368) << 16) | ((SWord32) s373);
238  const SWord32 s375 = s358 ^ s374;
239  const SWord32 s376 = s359 ^ s375;
240  const SWord32 s377 = s360 ^ s376;
241  const SWord32 s378 = s361 ^ s377;
242  const SWord32 s379 = (s378 << 8) | (s378 >> 24);
243  const SWord8  s380 = (SWord8) (s379 >> 24);
244  const SWord8  s381 = table0[s380];
245  const SWord8  s382 = 128 ^ s381;
246  const SWord8  s383 = (SWord8) (s379 >> 16);
247  const SWord8  s384 = table0[s383];
248  const SWord16 s385 = (((SWord16) s382) << 8) | ((SWord16) s384);
249  const SWord8  s386 = (SWord8) (s379 >> 8);
250  const SWord8  s387 = table0[s386];
251  const SWord8  s388 = (SWord8) s379;
252  const SWord8  s389 = table0[s388];
253  const SWord16 s390 = (((SWord16) s387) << 8) | ((SWord16) s389);
254  const SWord32 s391 = (((SWord32) s385) << 16) | ((SWord32) s390);
255  const SWord32 s392 = s375 ^ s391;
256  const SWord32 s393 = s376 ^ s392;
257  const SWord32 s394 = s377 ^ s393;
258  const SWord32 s395 = s378 ^ s394;
259  const SWord32 s396 = (s395 << 8) | (s395 >> 24);
260  const SWord8  s397 = (SWord8) (s396 >> 24);
261  const SWord8  s398 = table0[s397];
262  const SWord8  s399 = 27 ^ s398;
263  const SWord8  s400 = (SWord8) (s396 >> 16);
264  const SWord8  s401 = table0[s400];
265  const SWord16 s402 = (((SWord16) s399) << 8) | ((SWord16) s401);
266  const SWord8  s403 = (SWord8) (s396 >> 8);
267  const SWord8  s404 = table0[s403];
268  const SWord8  s405 = (SWord8) s396;
269  const SWord8  s406 = table0[s405];
270  const SWord16 s407 = (((SWord16) s404) << 8) | ((SWord16) s406);
271  const SWord32 s408 = (((SWord32) s402) << 16) | ((SWord32) s407);
272  const SWord32 s409 = s392 ^ s408;
273  const SWord32 s410 = s393 ^ s409;
274  const SWord32 s411 = s394 ^ s410;
275  const SWord32 s412 = s395 ^ s411;
276  const SWord32 s413 = (s412 << 8) | (s412 >> 24);
277  const SWord8  s414 = (SWord8) (s413 >> 24);
278  const SWord8  s415 = table0[s414];
279  const SWord8  s416 = 54 ^ s415;
280  const SWord8  s417 = (SWord8) (s413 >> 16);
281  const SWord8  s418 = table0[s417];
282  const SWord16 s419 = (((SWord16) s416) << 8) | ((SWord16) s418);
283  const SWord8  s420 = (SWord8) (s413 >> 8);
284  const SWord8  s421 = table0[s420];
285  const SWord8  s422 = (SWord8) s413;
286  const SWord8  s423 = table0[s422];
287  const SWord16 s424 = (((SWord16) s421) << 8) | ((SWord16) s423);
288  const SWord32 s425 = (((SWord32) s419) << 16) | ((SWord32) s424);
289  const SWord32 s426 = s409 ^ s425;
290  const SWord32 s427 = s410 ^ s426;
291  const SWord32 s428 = s411 ^ s427;
292  const SWord32 s429 = s412 ^ s428;
293  const SWord8  s430 = (SWord8) (s409 >> 24);
294  const SWord8  s431 = table1[s430];
295  const SWord8  s432 = (SWord8) (s409 >> 16);
296  const SWord8  s433 = table2[s432];
297  const SWord8  s434 = (SWord8) (s409 >> 8);
298  const SWord8  s435 = table3[s434];
299  const SWord8  s436 = (SWord8) s409;
300  const SWord8  s437 = table4[s436];
301  const SWord8  s438 = s435 ^ s437;
302  const SWord8  s439 = s433 ^ s438;
303  const SWord8  s440 = s431 ^ s439;
304  const SWord8  s441 = table4[s430];
305  const SWord8  s442 = table1[s432];
306  const SWord8  s443 = table2[s434];
307  const SWord8  s444 = table3[s436];
308  const SWord8  s445 = s443 ^ s444;
309  const SWord8  s446 = s442 ^ s445;
310  const SWord8  s447 = s441 ^ s446;
311  const SWord16 s448 = (((SWord16) s440) << 8) | ((SWord16) s447);
312  const SWord8  s449 = table3[s430];
313  const SWord8  s450 = table4[s432];
314  const SWord8  s451 = table1[s434];
315  const SWord8  s452 = table2[s436];
316  const SWord8  s453 = s451 ^ s452;
317  const SWord8  s454 = s450 ^ s453;
318  const SWord8  s455 = s449 ^ s454;
319  const SWord8  s456 = table2[s430];
320  const SWord8  s457 = table3[s432];
321  const SWord8  s458 = table4[s434];
322  const SWord8  s459 = table1[s436];
323  const SWord8  s460 = s458 ^ s459;
324  const SWord8  s461 = s457 ^ s460;
325  const SWord8  s462 = s456 ^ s461;
326  const SWord16 s463 = (((SWord16) s455) << 8) | ((SWord16) s462);
327  const SWord32 s464 = (((SWord32) s448) << 16) | ((SWord32) s463);
328  const SWord8  s465 = (SWord8) (s410 >> 24);
329  const SWord8  s466 = table1[s465];
330  const SWord8  s467 = (SWord8) (s410 >> 16);
331  const SWord8  s468 = table2[s467];
332  const SWord8  s469 = (SWord8) (s410 >> 8);
333  const SWord8  s470 = table3[s469];
334  const SWord8  s471 = (SWord8) s410;
335  const SWord8  s472 = table4[s471];
336  const SWord8  s473 = s470 ^ s472;
337  const SWord8  s474 = s468 ^ s473;
338  const SWord8  s475 = s466 ^ s474;
339  const SWord8  s476 = table4[s465];
340  const SWord8  s477 = table1[s467];
341  const SWord8  s478 = table2[s469];
342  const SWord8  s479 = table3[s471];
343  const SWord8  s480 = s478 ^ s479;
344  const SWord8  s481 = s477 ^ s480;
345  const SWord8  s482 = s476 ^ s481;
346  const SWord16 s483 = (((SWord16) s475) << 8) | ((SWord16) s482);
347  const SWord8  s484 = table3[s465];
348  const SWord8  s485 = table4[s467];
349  const SWord8  s486 = table1[s469];
350  const SWord8  s487 = table2[s471];
351  const SWord8  s488 = s486 ^ s487;
352  const SWord8  s489 = s485 ^ s488;
353  const SWord8  s490 = s484 ^ s489;
354  const SWord8  s491 = table2[s465];
355  const SWord8  s492 = table3[s467];
356  const SWord8  s493 = table4[s469];
357  const SWord8  s494 = table1[s471];
358  const SWord8  s495 = s493 ^ s494;
359  const SWord8  s496 = s492 ^ s495;
360  const SWord8  s497 = s491 ^ s496;
361  const SWord16 s498 = (((SWord16) s490) << 8) | ((SWord16) s497);
362  const SWord32 s499 = (((SWord32) s483) << 16) | ((SWord32) s498);
363  const SWord8  s500 = (SWord8) (s411 >> 24);
364  const SWord8  s501 = table1[s500];
365  const SWord8  s502 = (SWord8) (s411 >> 16);
366  const SWord8  s503 = table2[s502];
367  const SWord8  s504 = (SWord8) (s411 >> 8);
368  const SWord8  s505 = table3[s504];
369  const SWord8  s506 = (SWord8) s411;
370  const SWord8  s507 = table4[s506];
371  const SWord8  s508 = s505 ^ s507;
372  const SWord8  s509 = s503 ^ s508;
373  const SWord8  s510 = s501 ^ s509;
374  const SWord8  s511 = table4[s500];
375  const SWord8  s512 = table1[s502];
376  const SWord8  s513 = table2[s504];
377  const SWord8  s514 = table3[s506];
378  const SWord8  s515 = s513 ^ s514;
379  const SWord8  s516 = s512 ^ s515;
380  const SWord8  s517 = s511 ^ s516;
381  const SWord16 s518 = (((SWord16) s510) << 8) | ((SWord16) s517);
382  const SWord8  s519 = table3[s500];
383  const SWord8  s520 = table4[s502];
384  const SWord8  s521 = table1[s504];
385  const SWord8  s522 = table2[s506];
386  const SWord8  s523 = s521 ^ s522;
387  const SWord8  s524 = s520 ^ s523;
388  const SWord8  s525 = s519 ^ s524;
389  const SWord8  s526 = table2[s500];
390  const SWord8  s527 = table3[s502];
391  const SWord8  s528 = table4[s504];
392  const SWord8  s529 = table1[s506];
393  const SWord8  s530 = s528 ^ s529;
394  const SWord8  s531 = s527 ^ s530;
395  const SWord8  s532 = s526 ^ s531;
396  const SWord16 s533 = (((SWord16) s525) << 8) | ((SWord16) s532);
397  const SWord32 s534 = (((SWord32) s518) << 16) | ((SWord32) s533);
398  const SWord8  s535 = (SWord8) (s412 >> 24);
399  const SWord8  s536 = table1[s535];
400  const SWord8  s537 = (SWord8) (s412 >> 16);
401  const SWord8  s538 = table2[s537];
402  const SWord8  s539 = (SWord8) (s412 >> 8);
403  const SWord8  s540 = table3[s539];
404  const SWord8  s541 = (SWord8) s412;
405  const SWord8  s542 = table4[s541];
406  const SWord8  s543 = s540 ^ s542;
407  const SWord8  s544 = s538 ^ s543;
408  const SWord8  s545 = s536 ^ s544;
409  const SWord8  s546 = table4[s535];
410  const SWord8  s547 = table1[s537];
411  const SWord8  s548 = table2[s539];
412  const SWord8  s549 = table3[s541];
413  const SWord8  s550 = s548 ^ s549;
414  const SWord8  s551 = s547 ^ s550;
415  const SWord8  s552 = s546 ^ s551;
416  const SWord16 s553 = (((SWord16) s545) << 8) | ((SWord16) s552);
417  const SWord8  s554 = table3[s535];
418  const SWord8  s555 = table4[s537];
419  const SWord8  s556 = table1[s539];
420  const SWord8  s557 = table2[s541];
421  const SWord8  s558 = s556 ^ s557;
422  const SWord8  s559 = s555 ^ s558;
423  const SWord8  s560 = s554 ^ s559;
424  const SWord8  s561 = table2[s535];
425  const SWord8  s562 = table3[s537];
426  const SWord8  s563 = table4[s539];
427  const SWord8  s564 = table1[s541];
428  const SWord8  s565 = s563 ^ s564;
429  const SWord8  s566 = s562 ^ s565;
430  const SWord8  s567 = s561 ^ s566;
431  const SWord16 s568 = (((SWord16) s560) << 8) | ((SWord16) s567);
432  const SWord32 s569 = (((SWord32) s553) << 16) | ((SWord32) s568);
433  const SWord8  s570 = (SWord8) (s392 >> 24);
434  const SWord8  s571 = table1[s570];
435  const SWord8  s572 = (SWord8) (s392 >> 16);
436  const SWord8  s573 = table2[s572];
437  const SWord8  s574 = (SWord8) (s392 >> 8);
438  const SWord8  s575 = table3[s574];
439  const SWord8  s576 = (SWord8) s392;
440  const SWord8  s577 = table4[s576];
441  const SWord8  s578 = s575 ^ s577;
442  const SWord8  s579 = s573 ^ s578;
443  const SWord8  s580 = s571 ^ s579;
444  const SWord8  s581 = table4[s570];
445  const SWord8  s582 = table1[s572];
446  const SWord8  s583 = table2[s574];
447  const SWord8  s584 = table3[s576];
448  const SWord8  s585 = s583 ^ s584;
449  const SWord8  s586 = s582 ^ s585;
450  const SWord8  s587 = s581 ^ s586;
451  const SWord16 s588 = (((SWord16) s580) << 8) | ((SWord16) s587);
452  const SWord8  s589 = table3[s570];
453  const SWord8  s590 = table4[s572];
454  const SWord8  s591 = table1[s574];
455  const SWord8  s592 = table2[s576];
456  const SWord8  s593 = s591 ^ s592;
457  const SWord8  s594 = s590 ^ s593;
458  const SWord8  s595 = s589 ^ s594;
459  const SWord8  s596 = table2[s570];
460  const SWord8  s597 = table3[s572];
461  const SWord8  s598 = table4[s574];
462  const SWord8  s599 = table1[s576];
463  const SWord8  s600 = s598 ^ s599;
464  const SWord8  s601 = s597 ^ s600;
465  const SWord8  s602 = s596 ^ s601;
466  const SWord16 s603 = (((SWord16) s595) << 8) | ((SWord16) s602);
467  const SWord32 s604 = (((SWord32) s588) << 16) | ((SWord32) s603);
468  const SWord8  s605 = (SWord8) (s393 >> 24);
469  const SWord8  s606 = table1[s605];
470  const SWord8  s607 = (SWord8) (s393 >> 16);
471  const SWord8  s608 = table2[s607];
472  const SWord8  s609 = (SWord8) (s393 >> 8);
473  const SWord8  s610 = table3[s609];
474  const SWord8  s611 = (SWord8) s393;
475  const SWord8  s612 = table4[s611];
476  const SWord8  s613 = s610 ^ s612;
477  const SWord8  s614 = s608 ^ s613;
478  const SWord8  s615 = s606 ^ s614;
479  const SWord8  s616 = table4[s605];
480  const SWord8  s617 = table1[s607];
481  const SWord8  s618 = table2[s609];
482  const SWord8  s619 = table3[s611];
483  const SWord8  s620 = s618 ^ s619;
484  const SWord8  s621 = s617 ^ s620;
485  const SWord8  s622 = s616 ^ s621;
486  const SWord16 s623 = (((SWord16) s615) << 8) | ((SWord16) s622);
487  const SWord8  s624 = table3[s605];
488  const SWord8  s625 = table4[s607];
489  const SWord8  s626 = table1[s609];
490  const SWord8  s627 = table2[s611];
491  const SWord8  s628 = s626 ^ s627;
492  const SWord8  s629 = s625 ^ s628;
493  const SWord8  s630 = s624 ^ s629;
494  const SWord8  s631 = table2[s605];
495  const SWord8  s632 = table3[s607];
496  const SWord8  s633 = table4[s609];
497  const SWord8  s634 = table1[s611];
498  const SWord8  s635 = s633 ^ s634;
499  const SWord8  s636 = s632 ^ s635;
500  const SWord8  s637 = s631 ^ s636;
501  const SWord16 s638 = (((SWord16) s630) << 8) | ((SWord16) s637);
502  const SWord32 s639 = (((SWord32) s623) << 16) | ((SWord32) s638);
503  const SWord8  s640 = (SWord8) (s394 >> 24);
504  const SWord8  s641 = table1[s640];
505  const SWord8  s642 = (SWord8) (s394 >> 16);
506  const SWord8  s643 = table2[s642];
507  const SWord8  s644 = (SWord8) (s394 >> 8);
508  const SWord8  s645 = table3[s644];
509  const SWord8  s646 = (SWord8) s394;
510  const SWord8  s647 = table4[s646];
511  const SWord8  s648 = s645 ^ s647;
512  const SWord8  s649 = s643 ^ s648;
513  const SWord8  s650 = s641 ^ s649;
514  const SWord8  s651 = table4[s640];
515  const SWord8  s652 = table1[s642];
516  const SWord8  s653 = table2[s644];
517  const SWord8  s654 = table3[s646];
518  const SWord8  s655 = s653 ^ s654;
519  const SWord8  s656 = s652 ^ s655;
520  const SWord8  s657 = s651 ^ s656;
521  const SWord16 s658 = (((SWord16) s650) << 8) | ((SWord16) s657);
522  const SWord8  s659 = table3[s640];
523  const SWord8  s660 = table4[s642];
524  const SWord8  s661 = table1[s644];
525  const SWord8  s662 = table2[s646];
526  const SWord8  s663 = s661 ^ s662;
527  const SWord8  s664 = s660 ^ s663;
528  const SWord8  s665 = s659 ^ s664;
529  const SWord8  s666 = table2[s640];
530  const SWord8  s667 = table3[s642];
531  const SWord8  s668 = table4[s644];
532  const SWord8  s669 = table1[s646];
533  const SWord8  s670 = s668 ^ s669;
534  const SWord8  s671 = s667 ^ s670;
535  const SWord8  s672 = s666 ^ s671;
536  const SWord16 s673 = (((SWord16) s665) << 8) | ((SWord16) s672);
537  const SWord32 s674 = (((SWord32) s658) << 16) | ((SWord32) s673);
538  const SWord8  s675 = (SWord8) (s395 >> 24);
539  const SWord8  s676 = table1[s675];
540  const SWord8  s677 = (SWord8) (s395 >> 16);
541  const SWord8  s678 = table2[s677];
542  const SWord8  s679 = (SWord8) (s395 >> 8);
543  const SWord8  s680 = table3[s679];
544  const SWord8  s681 = (SWord8) s395;
545  const SWord8  s682 = table4[s681];
546  const SWord8  s683 = s680 ^ s682;
547  const SWord8  s684 = s678 ^ s683;
548  const SWord8  s685 = s676 ^ s684;
549  const SWord8  s686 = table4[s675];
550  const SWord8  s687 = table1[s677];
551  const SWord8  s688 = table2[s679];
552  const SWord8  s689 = table3[s681];
553  const SWord8  s690 = s688 ^ s689;
554  const SWord8  s691 = s687 ^ s690;
555  const SWord8  s692 = s686 ^ s691;
556  const SWord16 s693 = (((SWord16) s685) << 8) | ((SWord16) s692);
557  const SWord8  s694 = table3[s675];
558  const SWord8  s695 = table4[s677];
559  const SWord8  s696 = table1[s679];
560  const SWord8  s697 = table2[s681];
561  const SWord8  s698 = s696 ^ s697;
562  const SWord8  s699 = s695 ^ s698;
563  const SWord8  s700 = s694 ^ s699;
564  const SWord8  s701 = table2[s675];
565  const SWord8  s702 = table3[s677];
566  const SWord8  s703 = table4[s679];
567  const SWord8  s704 = table1[s681];
568  const SWord8  s705 = s703 ^ s704;
569  const SWord8  s706 = s702 ^ s705;
570  const SWord8  s707 = s701 ^ s706;
571  const SWord16 s708 = (((SWord16) s700) << 8) | ((SWord16) s707);
572  const SWord32 s709 = (((SWord32) s693) << 16) | ((SWord32) s708);
573  const SWord8  s710 = (SWord8) (s375 >> 24);
574  const SWord8  s711 = table1[s710];
575  const SWord8  s712 = (SWord8) (s375 >> 16);
576  const SWord8  s713 = table2[s712];
577  const SWord8  s714 = (SWord8) (s375 >> 8);
578  const SWord8  s715 = table3[s714];
579  const SWord8  s716 = (SWord8) s375;
580  const SWord8  s717 = table4[s716];
581  const SWord8  s718 = s715 ^ s717;
582  const SWord8  s719 = s713 ^ s718;
583  const SWord8  s720 = s711 ^ s719;
584  const SWord8  s721 = table4[s710];
585  const SWord8  s722 = table1[s712];
586  const SWord8  s723 = table2[s714];
587  const SWord8  s724 = table3[s716];
588  const SWord8  s725 = s723 ^ s724;
589  const SWord8  s726 = s722 ^ s725;
590  const SWord8  s727 = s721 ^ s726;
591  const SWord16 s728 = (((SWord16) s720) << 8) | ((SWord16) s727);
592  const SWord8  s729 = table3[s710];
593  const SWord8  s730 = table4[s712];
594  const SWord8  s731 = table1[s714];
595  const SWord8  s732 = table2[s716];
596  const SWord8  s733 = s731 ^ s732;
597  const SWord8  s734 = s730 ^ s733;
598  const SWord8  s735 = s729 ^ s734;
599  const SWord8  s736 = table2[s710];
600  const SWord8  s737 = table3[s712];
601  const SWord8  s738 = table4[s714];
602  const SWord8  s739 = table1[s716];
603  const SWord8  s740 = s738 ^ s739;
604  const SWord8  s741 = s737 ^ s740;
605  const SWord8  s742 = s736 ^ s741;
606  const SWord16 s743 = (((SWord16) s735) << 8) | ((SWord16) s742);
607  const SWord32 s744 = (((SWord32) s728) << 16) | ((SWord32) s743);
608  const SWord8  s745 = (SWord8) (s376 >> 24);
609  const SWord8  s746 = table1[s745];
610  const SWord8  s747 = (SWord8) (s376 >> 16);
611  const SWord8  s748 = table2[s747];
612  const SWord8  s749 = (SWord8) (s376 >> 8);
613  const SWord8  s750 = table3[s749];
614  const SWord8  s751 = (SWord8) s376;
615  const SWord8  s752 = table4[s751];
616  const SWord8  s753 = s750 ^ s752;
617  const SWord8  s754 = s748 ^ s753;
618  const SWord8  s755 = s746 ^ s754;
619  const SWord8  s756 = table4[s745];
620  const SWord8  s757 = table1[s747];
621  const SWord8  s758 = table2[s749];
622  const SWord8  s759 = table3[s751];
623  const SWord8  s760 = s758 ^ s759;
624  const SWord8  s761 = s757 ^ s760;
625  const SWord8  s762 = s756 ^ s761;
626  const SWord16 s763 = (((SWord16) s755) << 8) | ((SWord16) s762);
627  const SWord8  s764 = table3[s745];
628  const SWord8  s765 = table4[s747];
629  const SWord8  s766 = table1[s749];
630  const SWord8  s767 = table2[s751];
631  const SWord8  s768 = s766 ^ s767;
632  const SWord8  s769 = s765 ^ s768;
633  const SWord8  s770 = s764 ^ s769;
634  const SWord8  s771 = table2[s745];
635  const SWord8  s772 = table3[s747];
636  const SWord8  s773 = table4[s749];
637  const SWord8  s774 = table1[s751];
638  const SWord8  s775 = s773 ^ s774;
639  const SWord8  s776 = s772 ^ s775;
640  const SWord8  s777 = s771 ^ s776;
641  const SWord16 s778 = (((SWord16) s770) << 8) | ((SWord16) s777);
642  const SWord32 s779 = (((SWord32) s763) << 16) | ((SWord32) s778);
643  const SWord8  s780 = (SWord8) (s377 >> 24);
644  const SWord8  s781 = table1[s780];
645  const SWord8  s782 = (SWord8) (s377 >> 16);
646  const SWord8  s783 = table2[s782];
647  const SWord8  s784 = (SWord8) (s377 >> 8);
648  const SWord8  s785 = table3[s784];
649  const SWord8  s786 = (SWord8) s377;
650  const SWord8  s787 = table4[s786];
651  const SWord8  s788 = s785 ^ s787;
652  const SWord8  s789 = s783 ^ s788;
653  const SWord8  s790 = s781 ^ s789;
654  const SWord8  s791 = table4[s780];
655  const SWord8  s792 = table1[s782];
656  const SWord8  s793 = table2[s784];
657  const SWord8  s794 = table3[s786];
658  const SWord8  s795 = s793 ^ s794;
659  const SWord8  s796 = s792 ^ s795;
660  const SWord8  s797 = s791 ^ s796;
661  const SWord16 s798 = (((SWord16) s790) << 8) | ((SWord16) s797);
662  const SWord8  s799 = table3[s780];
663  const SWord8  s800 = table4[s782];
664  const SWord8  s801 = table1[s784];
665  const SWord8  s802 = table2[s786];
666  const SWord8  s803 = s801 ^ s802;
667  const SWord8  s804 = s800 ^ s803;
668  const SWord8  s805 = s799 ^ s804;
669  const SWord8  s806 = table2[s780];
670  const SWord8  s807 = table3[s782];
671  const SWord8  s808 = table4[s784];
672  const SWord8  s809 = table1[s786];
673  const SWord8  s810 = s808 ^ s809;
674  const SWord8  s811 = s807 ^ s810;
675  const SWord8  s812 = s806 ^ s811;
676  const SWord16 s813 = (((SWord16) s805) << 8) | ((SWord16) s812);
677  const SWord32 s814 = (((SWord32) s798) << 16) | ((SWord32) s813);
678  const SWord8  s815 = (SWord8) (s378 >> 24);
679  const SWord8  s816 = table1[s815];
680  const SWord8  s817 = (SWord8) (s378 >> 16);
681  const SWord8  s818 = table2[s817];
682  const SWord8  s819 = (SWord8) (s378 >> 8);
683  const SWord8  s820 = table3[s819];
684  const SWord8  s821 = (SWord8) s378;
685  const SWord8  s822 = table4[s821];
686  const SWord8  s823 = s820 ^ s822;
687  const SWord8  s824 = s818 ^ s823;
688  const SWord8  s825 = s816 ^ s824;
689  const SWord8  s826 = table4[s815];
690  const SWord8  s827 = table1[s817];
691  const SWord8  s828 = table2[s819];
692  const SWord8  s829 = table3[s821];
693  const SWord8  s830 = s828 ^ s829;
694  const SWord8  s831 = s827 ^ s830;
695  const SWord8  s832 = s826 ^ s831;
696  const SWord16 s833 = (((SWord16) s825) << 8) | ((SWord16) s832);
697  const SWord8  s834 = table3[s815];
698  const SWord8  s835 = table4[s817];
699  const SWord8  s836 = table1[s819];
700  const SWord8  s837 = table2[s821];
701  const SWord8  s838 = s836 ^ s837;
702  const SWord8  s839 = s835 ^ s838;
703  const SWord8  s840 = s834 ^ s839;
704  const SWord8  s841 = table2[s815];
705  const SWord8  s842 = table3[s817];
706  const SWord8  s843 = table4[s819];
707  const SWord8  s844 = table1[s821];
708  const SWord8  s845 = s843 ^ s844;
709  const SWord8  s846 = s842 ^ s845;
710  const SWord8  s847 = s841 ^ s846;
711  const SWord16 s848 = (((SWord16) s840) << 8) | ((SWord16) s847);
712  const SWord32 s849 = (((SWord32) s833) << 16) | ((SWord32) s848);
713  const SWord8  s850 = (SWord8) (s358 >> 24);
714  const SWord8  s851 = table1[s850];
715  const SWord8  s852 = (SWord8) (s358 >> 16);
716  const SWord8  s853 = table2[s852];
717  const SWord8  s854 = (SWord8) (s358 >> 8);
718  const SWord8  s855 = table3[s854];
719  const SWord8  s856 = (SWord8) s358;
720  const SWord8  s857 = table4[s856];
721  const SWord8  s858 = s855 ^ s857;
722  const SWord8  s859 = s853 ^ s858;
723  const SWord8  s860 = s851 ^ s859;
724  const SWord8  s861 = table4[s850];
725  const SWord8  s862 = table1[s852];
726  const SWord8  s863 = table2[s854];
727  const SWord8  s864 = table3[s856];
728  const SWord8  s865 = s863 ^ s864;
729  const SWord8  s866 = s862 ^ s865;
730  const SWord8  s867 = s861 ^ s866;
731  const SWord16 s868 = (((SWord16) s860) << 8) | ((SWord16) s867);
732  const SWord8  s869 = table3[s850];
733  const SWord8  s870 = table4[s852];
734  const SWord8  s871 = table1[s854];
735  const SWord8  s872 = table2[s856];
736  const SWord8  s873 = s871 ^ s872;
737  const SWord8  s874 = s870 ^ s873;
738  const SWord8  s875 = s869 ^ s874;
739  const SWord8  s876 = table2[s850];
740  const SWord8  s877 = table3[s852];
741  const SWord8  s878 = table4[s854];
742  const SWord8  s879 = table1[s856];
743  const SWord8  s880 = s878 ^ s879;
744  const SWord8  s881 = s877 ^ s880;
745  const SWord8  s882 = s876 ^ s881;
746  const SWord16 s883 = (((SWord16) s875) << 8) | ((SWord16) s882);
747  const SWord32 s884 = (((SWord32) s868) << 16) | ((SWord32) s883);
748  const SWord8  s885 = (SWord8) (s359 >> 24);
749  const SWord8  s886 = table1[s885];
750  const SWord8  s887 = (SWord8) (s359 >> 16);
751  const SWord8  s888 = table2[s887];
752  const SWord8  s889 = (SWord8) (s359 >> 8);
753  const SWord8  s890 = table3[s889];
754  const SWord8  s891 = (SWord8) s359;
755  const SWord8  s892 = table4[s891];
756  const SWord8  s893 = s890 ^ s892;
757  const SWord8  s894 = s888 ^ s893;
758  const SWord8  s895 = s886 ^ s894;
759  const SWord8  s896 = table4[s885];
760  const SWord8  s897 = table1[s887];
761  const SWord8  s898 = table2[s889];
762  const SWord8  s899 = table3[s891];
763  const SWord8  s900 = s898 ^ s899;
764  const SWord8  s901 = s897 ^ s900;
765  const SWord8  s902 = s896 ^ s901;
766  const SWord16 s903 = (((SWord16) s895) << 8) | ((SWord16) s902);
767  const SWord8  s904 = table3[s885];
768  const SWord8  s905 = table4[s887];
769  const SWord8  s906 = table1[s889];
770  const SWord8  s907 = table2[s891];
771  const SWord8  s908 = s906 ^ s907;
772  const SWord8  s909 = s905 ^ s908;
773  const SWord8  s910 = s904 ^ s909;
774  const SWord8  s911 = table2[s885];
775  const SWord8  s912 = table3[s887];
776  const SWord8  s913 = table4[s889];
777  const SWord8  s914 = table1[s891];
778  const SWord8  s915 = s913 ^ s914;
779  const SWord8  s916 = s912 ^ s915;
780  const SWord8  s917 = s911 ^ s916;
781  const SWord16 s918 = (((SWord16) s910) << 8) | ((SWord16) s917);
782  const SWord32 s919 = (((SWord32) s903) << 16) | ((SWord32) s918);
783  const SWord8  s920 = (SWord8) (s360 >> 24);
784  const SWord8  s921 = table1[s920];
785  const SWord8  s922 = (SWord8) (s360 >> 16);
786  const SWord8  s923 = table2[s922];
787  const SWord8  s924 = (SWord8) (s360 >> 8);
788  const SWord8  s925 = table3[s924];
789  const SWord8  s926 = (SWord8) s360;
790  const SWord8  s927 = table4[s926];
791  const SWord8  s928 = s925 ^ s927;
792  const SWord8  s929 = s923 ^ s928;
793  const SWord8  s930 = s921 ^ s929;
794  const SWord8  s931 = table4[s920];
795  const SWord8  s932 = table1[s922];
796  const SWord8  s933 = table2[s924];
797  const SWord8  s934 = table3[s926];
798  const SWord8  s935 = s933 ^ s934;
799  const SWord8  s936 = s932 ^ s935;
800  const SWord8  s937 = s931 ^ s936;
801  const SWord16 s938 = (((SWord16) s930) << 8) | ((SWord16) s937);
802  const SWord8  s939 = table3[s920];
803  const SWord8  s940 = table4[s922];
804  const SWord8  s941 = table1[s924];
805  const SWord8  s942 = table2[s926];
806  const SWord8  s943 = s941 ^ s942;
807  const SWord8  s944 = s940 ^ s943;
808  const SWord8  s945 = s939 ^ s944;
809  const SWord8  s946 = table2[s920];
810  const SWord8  s947 = table3[s922];
811  const SWord8  s948 = table4[s924];
812  const SWord8  s949 = table1[s926];
813  const SWord8  s950 = s948 ^ s949;
814  const SWord8  s951 = s947 ^ s950;
815  const SWord8  s952 = s946 ^ s951;
816  const SWord16 s953 = (((SWord16) s945) << 8) | ((SWord16) s952);
817  const SWord32 s954 = (((SWord32) s938) << 16) | ((SWord32) s953);
818  const SWord8  s955 = (SWord8) (s361 >> 24);
819  const SWord8  s956 = table1[s955];
820  const SWord8  s957 = (SWord8) (s361 >> 16);
821  const SWord8  s958 = table2[s957];
822  const SWord8  s959 = (SWord8) (s361 >> 8);
823  const SWord8  s960 = table3[s959];
824  const SWord8  s961 = (SWord8) s361;
825  const SWord8  s962 = table4[s961];
826  const SWord8  s963 = s960 ^ s962;
827  const SWord8  s964 = s958 ^ s963;
828  const SWord8  s965 = s956 ^ s964;
829  const SWord8  s966 = table4[s955];
830  const SWord8  s967 = table1[s957];
831  const SWord8  s968 = table2[s959];
832  const SWord8  s969 = table3[s961];
833  const SWord8  s970 = s968 ^ s969;
834  const SWord8  s971 = s967 ^ s970;
835  const SWord8  s972 = s966 ^ s971;
836  const SWord16 s973 = (((SWord16) s965) << 8) | ((SWord16) s972);
837  const SWord8  s974 = table3[s955];
838  const SWord8  s975 = table4[s957];
839  const SWord8  s976 = table1[s959];
840  const SWord8  s977 = table2[s961];
841  const SWord8  s978 = s976 ^ s977;
842  const SWord8  s979 = s975 ^ s978;
843  const SWord8  s980 = s974 ^ s979;
844  const SWord8  s981 = table2[s955];
845  const SWord8  s982 = table3[s957];
846  const SWord8  s983 = table4[s959];
847  const SWord8  s984 = table1[s961];
848  const SWord8  s985 = s983 ^ s984;
849  const SWord8  s986 = s982 ^ s985;
850  const SWord8  s987 = s981 ^ s986;
851  const SWord16 s988 = (((SWord16) s980) << 8) | ((SWord16) s987);
852  const SWord32 s989 = (((SWord32) s973) << 16) | ((SWord32) s988);
853  const SWord8  s990 = (SWord8) (s341 >> 24);
854  const SWord8  s991 = table1[s990];
855  const SWord8  s992 = (SWord8) (s341 >> 16);
856  const SWord8  s993 = table2[s992];
857  const SWord8  s994 = (SWord8) (s341 >> 8);
858  const SWord8  s995 = table3[s994];
859  const SWord8  s996 = (SWord8) s341;
860  const SWord8  s997 = table4[s996];
861  const SWord8  s998 = s995 ^ s997;
862  const SWord8  s999 = s993 ^ s998;
863  const SWord8  s1000 = s991 ^ s999;
864  const SWord8  s1001 = table4[s990];
865  const SWord8  s1002 = table1[s992];
866  const SWord8  s1003 = table2[s994];
867  const SWord8  s1004 = table3[s996];
868  const SWord8  s1005 = s1003 ^ s1004;
869  const SWord8  s1006 = s1002 ^ s1005;
870  const SWord8  s1007 = s1001 ^ s1006;
871  const SWord16 s1008 = (((SWord16) s1000) << 8) | ((SWord16) s1007);
872  const SWord8  s1009 = table3[s990];
873  const SWord8  s1010 = table4[s992];
874  const SWord8  s1011 = table1[s994];
875  const SWord8  s1012 = table2[s996];
876  const SWord8  s1013 = s1011 ^ s1012;
877  const SWord8  s1014 = s1010 ^ s1013;
878  const SWord8  s1015 = s1009 ^ s1014;
879  const SWord8  s1016 = table2[s990];
880  const SWord8  s1017 = table3[s992];
881  const SWord8  s1018 = table4[s994];
882  const SWord8  s1019 = table1[s996];
883  const SWord8  s1020 = s1018 ^ s1019;
884  const SWord8  s1021 = s1017 ^ s1020;
885  const SWord8  s1022 = s1016 ^ s1021;
886  const SWord16 s1023 = (((SWord16) s1015) << 8) | ((SWord16) s1022);
887  const SWord32 s1024 = (((SWord32) s1008) << 16) | ((SWord32) s1023);
888  const SWord8  s1025 = (SWord8) (s342 >> 24);
889  const SWord8  s1026 = table1[s1025];
890  const SWord8  s1027 = (SWord8) (s342 >> 16);
891  const SWord8  s1028 = table2[s1027];
892  const SWord8  s1029 = (SWord8) (s342 >> 8);
893  const SWord8  s1030 = table3[s1029];
894  const SWord8  s1031 = (SWord8) s342;
895  const SWord8  s1032 = table4[s1031];
896  const SWord8  s1033 = s1030 ^ s1032;
897  const SWord8  s1034 = s1028 ^ s1033;
898  const SWord8  s1035 = s1026 ^ s1034;
899  const SWord8  s1036 = table4[s1025];
900  const SWord8  s1037 = table1[s1027];
901  const SWord8  s1038 = table2[s1029];
902  const SWord8  s1039 = table3[s1031];
903  const SWord8  s1040 = s1038 ^ s1039;
904  const SWord8  s1041 = s1037 ^ s1040;
905  const SWord8  s1042 = s1036 ^ s1041;
906  const SWord16 s1043 = (((SWord16) s1035) << 8) | ((SWord16) s1042);
907  const SWord8  s1044 = table3[s1025];
908  const SWord8  s1045 = table4[s1027];
909  const SWord8  s1046 = table1[s1029];
910  const SWord8  s1047 = table2[s1031];
911  const SWord8  s1048 = s1046 ^ s1047;
912  const SWord8  s1049 = s1045 ^ s1048;
913  const SWord8  s1050 = s1044 ^ s1049;
914  const SWord8  s1051 = table2[s1025];
915  const SWord8  s1052 = table3[s1027];
916  const SWord8  s1053 = table4[s1029];
917  const SWord8  s1054 = table1[s1031];
918  const SWord8  s1055 = s1053 ^ s1054;
919  const SWord8  s1056 = s1052 ^ s1055;
920  const SWord8  s1057 = s1051 ^ s1056;
921  const SWord16 s1058 = (((SWord16) s1050) << 8) | ((SWord16) s1057);
922  const SWord32 s1059 = (((SWord32) s1043) << 16) | ((SWord32) s1058);
923  const SWord8  s1060 = (SWord8) (s343 >> 24);
924  const SWord8  s1061 = table1[s1060];
925  const SWord8  s1062 = (SWord8) (s343 >> 16);
926  const SWord8  s1063 = table2[s1062];
927  const SWord8  s1064 = (SWord8) (s343 >> 8);
928  const SWord8  s1065 = table3[s1064];
929  const SWord8  s1066 = (SWord8) s343;
930  const SWord8  s1067 = table4[s1066];
931  const SWord8  s1068 = s1065 ^ s1067;
932  const SWord8  s1069 = s1063 ^ s1068;
933  const SWord8  s1070 = s1061 ^ s1069;
934  const SWord8  s1071 = table4[s1060];
935  const SWord8  s1072 = table1[s1062];
936  const SWord8  s1073 = table2[s1064];
937  const SWord8  s1074 = table3[s1066];
938  const SWord8  s1075 = s1073 ^ s1074;
939  const SWord8  s1076 = s1072 ^ s1075;
940  const SWord8  s1077 = s1071 ^ s1076;
941  const SWord16 s1078 = (((SWord16) s1070) << 8) | ((SWord16) s1077);
942  const SWord8  s1079 = table3[s1060];
943  const SWord8  s1080 = table4[s1062];
944  const SWord8  s1081 = table1[s1064];
945  const SWord8  s1082 = table2[s1066];
946  const SWord8  s1083 = s1081 ^ s1082;
947  const SWord8  s1084 = s1080 ^ s1083;
948  const SWord8  s1085 = s1079 ^ s1084;
949  const SWord8  s1086 = table2[s1060];
950  const SWord8  s1087 = table3[s1062];
951  const SWord8  s1088 = table4[s1064];
952  const SWord8  s1089 = table1[s1066];
953  const SWord8  s1090 = s1088 ^ s1089;
954  const SWord8  s1091 = s1087 ^ s1090;
955  const SWord8  s1092 = s1086 ^ s1091;
956  const SWord16 s1093 = (((SWord16) s1085) << 8) | ((SWord16) s1092);
957  const SWord32 s1094 = (((SWord32) s1078) << 16) | ((SWord32) s1093);
958  const SWord8  s1095 = (SWord8) (s344 >> 24);
959  const SWord8  s1096 = table1[s1095];
960  const SWord8  s1097 = (SWord8) (s344 >> 16);
961  const SWord8  s1098 = table2[s1097];
962  const SWord8  s1099 = (SWord8) (s344 >> 8);
963  const SWord8  s1100 = table3[s1099];
964  const SWord8  s1101 = (SWord8) s344;
965  const SWord8  s1102 = table4[s1101];
966  const SWord8  s1103 = s1100 ^ s1102;
967  const SWord8  s1104 = s1098 ^ s1103;
968  const SWord8  s1105 = s1096 ^ s1104;
969  const SWord8  s1106 = table4[s1095];
970  const SWord8  s1107 = table1[s1097];
971  const SWord8  s1108 = table2[s1099];
972  const SWord8  s1109 = table3[s1101];
973  const SWord8  s1110 = s1108 ^ s1109;
974  const SWord8  s1111 = s1107 ^ s1110;
975  const SWord8  s1112 = s1106 ^ s1111;
976  const SWord16 s1113 = (((SWord16) s1105) << 8) | ((SWord16) s1112);
977  const SWord8  s1114 = table3[s1095];
978  const SWord8  s1115 = table4[s1097];
979  const SWord8  s1116 = table1[s1099];
980  const SWord8  s1117 = table2[s1101];
981  const SWord8  s1118 = s1116 ^ s1117;
982  const SWord8  s1119 = s1115 ^ s1118;
983  const SWord8  s1120 = s1114 ^ s1119;
984  const SWord8  s1121 = table2[s1095];
985  const SWord8  s1122 = table3[s1097];
986  const SWord8  s1123 = table4[s1099];
987  const SWord8  s1124 = table1[s1101];
988  const SWord8  s1125 = s1123 ^ s1124;
989  const SWord8  s1126 = s1122 ^ s1125;
990  const SWord8  s1127 = s1121 ^ s1126;
991  const SWord16 s1128 = (((SWord16) s1120) << 8) | ((SWord16) s1127);
992  const SWord32 s1129 = (((SWord32) s1113) << 16) | ((SWord32) s1128);
993  const SWord8  s1130 = (SWord8) (s324 >> 24);
994  const SWord8  s1131 = table1[s1130];
995  const SWord8  s1132 = (SWord8) (s324 >> 16);
996  const SWord8  s1133 = table2[s1132];
997  const SWord8  s1134 = (SWord8) (s324 >> 8);
998  const SWord8  s1135 = table3[s1134];
999  const SWord8  s1136 = (SWord8) s324;
1000  const SWord8  s1137 = table4[s1136];
1001  const SWord8  s1138 = s1135 ^ s1137;
1002  const SWord8  s1139 = s1133 ^ s1138;
1003  const SWord8  s1140 = s1131 ^ s1139;
1004  const SWord8  s1141 = table4[s1130];
1005  const SWord8  s1142 = table1[s1132];
1006  const SWord8  s1143 = table2[s1134];
1007  const SWord8  s1144 = table3[s1136];
1008  const SWord8  s1145 = s1143 ^ s1144;
1009  const SWord8  s1146 = s1142 ^ s1145;
1010  const SWord8  s1147 = s1141 ^ s1146;
1011  const SWord16 s1148 = (((SWord16) s1140) << 8) | ((SWord16) s1147);
1012  const SWord8  s1149 = table3[s1130];
1013  const SWord8  s1150 = table4[s1132];
1014  const SWord8  s1151 = table1[s1134];
1015  const SWord8  s1152 = table2[s1136];
1016  const SWord8  s1153 = s1151 ^ s1152;
1017  const SWord8  s1154 = s1150 ^ s1153;
1018  const SWord8  s1155 = s1149 ^ s1154;
1019  const SWord8  s1156 = table2[s1130];
1020  const SWord8  s1157 = table3[s1132];
1021  const SWord8  s1158 = table4[s1134];
1022  const SWord8  s1159 = table1[s1136];
1023  const SWord8  s1160 = s1158 ^ s1159;
1024  const SWord8  s1161 = s1157 ^ s1160;
1025  const SWord8  s1162 = s1156 ^ s1161;
1026  const SWord16 s1163 = (((SWord16) s1155) << 8) | ((SWord16) s1162);
1027  const SWord32 s1164 = (((SWord32) s1148) << 16) | ((SWord32) s1163);
1028  const SWord8  s1165 = (SWord8) (s325 >> 24);
1029  const SWord8  s1166 = table1[s1165];
1030  const SWord8  s1167 = (SWord8) (s325 >> 16);
1031  const SWord8  s1168 = table2[s1167];
1032  const SWord8  s1169 = (SWord8) (s325 >> 8);
1033  const SWord8  s1170 = table3[s1169];
1034  const SWord8  s1171 = (SWord8) s325;
1035  const SWord8  s1172 = table4[s1171];
1036  const SWord8  s1173 = s1170 ^ s1172;
1037  const SWord8  s1174 = s1168 ^ s1173;
1038  const SWord8  s1175 = s1166 ^ s1174;
1039  const SWord8  s1176 = table4[s1165];
1040  const SWord8  s1177 = table1[s1167];
1041  const SWord8  s1178 = table2[s1169];
1042  const SWord8  s1179 = table3[s1171];
1043  const SWord8  s1180 = s1178 ^ s1179;
1044  const SWord8  s1181 = s1177 ^ s1180;
1045  const SWord8  s1182 = s1176 ^ s1181;
1046  const SWord16 s1183 = (((SWord16) s1175) << 8) | ((SWord16) s1182);
1047  const SWord8  s1184 = table3[s1165];
1048  const SWord8  s1185 = table4[s1167];
1049  const SWord8  s1186 = table1[s1169];
1050  const SWord8  s1187 = table2[s1171];
1051  const SWord8  s1188 = s1186 ^ s1187;
1052  const SWord8  s1189 = s1185 ^ s1188;
1053  const SWord8  s1190 = s1184 ^ s1189;
1054  const SWord8  s1191 = table2[s1165];
1055  const SWord8  s1192 = table3[s1167];
1056  const SWord8  s1193 = table4[s1169];
1057  const SWord8  s1194 = table1[s1171];
1058  const SWord8  s1195 = s1193 ^ s1194;
1059  const SWord8  s1196 = s1192 ^ s1195;
1060  const SWord8  s1197 = s1191 ^ s1196;
1061  const SWord16 s1198 = (((SWord16) s1190) << 8) | ((SWord16) s1197);
1062  const SWord32 s1199 = (((SWord32) s1183) << 16) | ((SWord32) s1198);
1063  const SWord8  s1200 = (SWord8) (s326 >> 24);
1064  const SWord8  s1201 = table1[s1200];
1065  const SWord8  s1202 = (SWord8) (s326 >> 16);
1066  const SWord8  s1203 = table2[s1202];
1067  const SWord8  s1204 = (SWord8) (s326 >> 8);
1068  const SWord8  s1205 = table3[s1204];
1069  const SWord8  s1206 = (SWord8) s326;
1070  const SWord8  s1207 = table4[s1206];
1071  const SWord8  s1208 = s1205 ^ s1207;
1072  const SWord8  s1209 = s1203 ^ s1208;
1073  const SWord8  s1210 = s1201 ^ s1209;
1074  const SWord8  s1211 = table4[s1200];
1075  const SWord8  s1212 = table1[s1202];
1076  const SWord8  s1213 = table2[s1204];
1077  const SWord8  s1214 = table3[s1206];
1078  const SWord8  s1215 = s1213 ^ s1214;
1079  const SWord8  s1216 = s1212 ^ s1215;
1080  const SWord8  s1217 = s1211 ^ s1216;
1081  const SWord16 s1218 = (((SWord16) s1210) << 8) | ((SWord16) s1217);
1082  const SWord8  s1219 = table3[s1200];
1083  const SWord8  s1220 = table4[s1202];
1084  const SWord8  s1221 = table1[s1204];
1085  const SWord8  s1222 = table2[s1206];
1086  const SWord8  s1223 = s1221 ^ s1222;
1087  const SWord8  s1224 = s1220 ^ s1223;
1088  const SWord8  s1225 = s1219 ^ s1224;
1089  const SWord8  s1226 = table2[s1200];
1090  const SWord8  s1227 = table3[s1202];
1091  const SWord8  s1228 = table4[s1204];
1092  const SWord8  s1229 = table1[s1206];
1093  const SWord8  s1230 = s1228 ^ s1229;
1094  const SWord8  s1231 = s1227 ^ s1230;
1095  const SWord8  s1232 = s1226 ^ s1231;
1096  const SWord16 s1233 = (((SWord16) s1225) << 8) | ((SWord16) s1232);
1097  const SWord32 s1234 = (((SWord32) s1218) << 16) | ((SWord32) s1233);
1098  const SWord8  s1235 = (SWord8) (s327 >> 24);
1099  const SWord8  s1236 = table1[s1235];
1100  const SWord8  s1237 = (SWord8) (s327 >> 16);
1101  const SWord8  s1238 = table2[s1237];
1102  const SWord8  s1239 = (SWord8) (s327 >> 8);
1103  const SWord8  s1240 = table3[s1239];
1104  const SWord8  s1241 = (SWord8) s327;
1105  const SWord8  s1242 = table4[s1241];
1106  const SWord8  s1243 = s1240 ^ s1242;
1107  const SWord8  s1244 = s1238 ^ s1243;
1108  const SWord8  s1245 = s1236 ^ s1244;
1109  const SWord8  s1246 = table4[s1235];
1110  const SWord8  s1247 = table1[s1237];
1111  const SWord8  s1248 = table2[s1239];
1112  const SWord8  s1249 = table3[s1241];
1113  const SWord8  s1250 = s1248 ^ s1249;
1114  const SWord8  s1251 = s1247 ^ s1250;
1115  const SWord8  s1252 = s1246 ^ s1251;
1116  const SWord16 s1253 = (((SWord16) s1245) << 8) | ((SWord16) s1252);
1117  const SWord8  s1254 = table3[s1235];
1118  const SWord8  s1255 = table4[s1237];
1119  const SWord8  s1256 = table1[s1239];
1120  const SWord8  s1257 = table2[s1241];
1121  const SWord8  s1258 = s1256 ^ s1257;
1122  const SWord8  s1259 = s1255 ^ s1258;
1123  const SWord8  s1260 = s1254 ^ s1259;
1124  const SWord8  s1261 = table2[s1235];
1125  const SWord8  s1262 = table3[s1237];
1126  const SWord8  s1263 = table4[s1239];
1127  const SWord8  s1264 = table1[s1241];
1128  const SWord8  s1265 = s1263 ^ s1264;
1129  const SWord8  s1266 = s1262 ^ s1265;
1130  const SWord8  s1267 = s1261 ^ s1266;
1131  const SWord16 s1268 = (((SWord16) s1260) << 8) | ((SWord16) s1267);
1132  const SWord32 s1269 = (((SWord32) s1253) << 16) | ((SWord32) s1268);
1133  const SWord8  s1270 = (SWord8) (s307 >> 24);
1134  const SWord8  s1271 = table1[s1270];
1135  const SWord8  s1272 = (SWord8) (s307 >> 16);
1136  const SWord8  s1273 = table2[s1272];
1137  const SWord8  s1274 = (SWord8) (s307 >> 8);
1138  const SWord8  s1275 = table3[s1274];
1139  const SWord8  s1276 = (SWord8) s307;
1140  const SWord8  s1277 = table4[s1276];
1141  const SWord8  s1278 = s1275 ^ s1277;
1142  const SWord8  s1279 = s1273 ^ s1278;
1143  const SWord8  s1280 = s1271 ^ s1279;
1144  const SWord8  s1281 = table4[s1270];
1145  const SWord8  s1282 = table1[s1272];
1146  const SWord8  s1283 = table2[s1274];
1147  const SWord8  s1284 = table3[s1276];
1148  const SWord8  s1285 = s1283 ^ s1284;
1149  const SWord8  s1286 = s1282 ^ s1285;
1150  const SWord8  s1287 = s1281 ^ s1286;
1151  const SWord16 s1288 = (((SWord16) s1280) << 8) | ((SWord16) s1287);
1152  const SWord8  s1289 = table3[s1270];
1153  const SWord8  s1290 = table4[s1272];
1154  const SWord8  s1291 = table1[s1274];
1155  const SWord8  s1292 = table2[s1276];
1156  const SWord8  s1293 = s1291 ^ s1292;
1157  const SWord8  s1294 = s1290 ^ s1293;
1158  const SWord8  s1295 = s1289 ^ s1294;
1159  const SWord8  s1296 = table2[s1270];
1160  const SWord8  s1297 = table3[s1272];
1161  const SWord8  s1298 = table4[s1274];
1162  const SWord8  s1299 = table1[s1276];
1163  const SWord8  s1300 = s1298 ^ s1299;
1164  const SWord8  s1301 = s1297 ^ s1300;
1165  const SWord8  s1302 = s1296 ^ s1301;
1166  const SWord16 s1303 = (((SWord16) s1295) << 8) | ((SWord16) s1302);
1167  const SWord32 s1304 = (((SWord32) s1288) << 16) | ((SWord32) s1303);
1168  const SWord8  s1305 = (SWord8) (s308 >> 24);
1169  const SWord8  s1306 = table1[s1305];
1170  const SWord8  s1307 = (SWord8) (s308 >> 16);
1171  const SWord8  s1308 = table2[s1307];
1172  const SWord8  s1309 = (SWord8) (s308 >> 8);
1173  const SWord8  s1310 = table3[s1309];
1174  const SWord8  s1311 = (SWord8) s308;
1175  const SWord8  s1312 = table4[s1311];
1176  const SWord8  s1313 = s1310 ^ s1312;
1177  const SWord8  s1314 = s1308 ^ s1313;
1178  const SWord8  s1315 = s1306 ^ s1314;
1179  const SWord8  s1316 = table4[s1305];
1180  const SWord8  s1317 = table1[s1307];
1181  const SWord8  s1318 = table2[s1309];
1182  const SWord8  s1319 = table3[s1311];
1183  const SWord8  s1320 = s1318 ^ s1319;
1184  const SWord8  s1321 = s1317 ^ s1320;
1185  const SWord8  s1322 = s1316 ^ s1321;
1186  const SWord16 s1323 = (((SWord16) s1315) << 8) | ((SWord16) s1322);
1187  const SWord8  s1324 = table3[s1305];
1188  const SWord8  s1325 = table4[s1307];
1189  const SWord8  s1326 = table1[s1309];
1190  const SWord8  s1327 = table2[s1311];
1191  const SWord8  s1328 = s1326 ^ s1327;
1192  const SWord8  s1329 = s1325 ^ s1328;
1193  const SWord8  s1330 = s1324 ^ s1329;
1194  const SWord8  s1331 = table2[s1305];
1195  const SWord8  s1332 = table3[s1307];
1196  const SWord8  s1333 = table4[s1309];
1197  const SWord8  s1334 = table1[s1311];
1198  const SWord8  s1335 = s1333 ^ s1334;
1199  const SWord8  s1336 = s1332 ^ s1335;
1200  const SWord8  s1337 = s1331 ^ s1336;
1201  const SWord16 s1338 = (((SWord16) s1330) << 8) | ((SWord16) s1337);
1202  const SWord32 s1339 = (((SWord32) s1323) << 16) | ((SWord32) s1338);
1203  const SWord8  s1340 = (SWord8) (s309 >> 24);
1204  const SWord8  s1341 = table1[s1340];
1205  const SWord8  s1342 = (SWord8) (s309 >> 16);
1206  const SWord8  s1343 = table2[s1342];
1207  const SWord8  s1344 = (SWord8) (s309 >> 8);
1208  const SWord8  s1345 = table3[s1344];
1209  const SWord8  s1346 = (SWord8) s309;
1210  const SWord8  s1347 = table4[s1346];
1211  const SWord8  s1348 = s1345 ^ s1347;
1212  const SWord8  s1349 = s1343 ^ s1348;
1213  const SWord8  s1350 = s1341 ^ s1349;
1214  const SWord8  s1351 = table4[s1340];
1215  const SWord8  s1352 = table1[s1342];
1216  const SWord8  s1353 = table2[s1344];
1217  const SWord8  s1354 = table3[s1346];
1218  const SWord8  s1355 = s1353 ^ s1354;
1219  const SWord8  s1356 = s1352 ^ s1355;
1220  const SWord8  s1357 = s1351 ^ s1356;
1221  const SWord16 s1358 = (((SWord16) s1350) << 8) | ((SWord16) s1357);
1222  const SWord8  s1359 = table3[s1340];
1223  const SWord8  s1360 = table4[s1342];
1224  const SWord8  s1361 = table1[s1344];
1225  const SWord8  s1362 = table2[s1346];
1226  const SWord8  s1363 = s1361 ^ s1362;
1227  const SWord8  s1364 = s1360 ^ s1363;
1228  const SWord8  s1365 = s1359 ^ s1364;
1229  const SWord8  s1366 = table2[s1340];
1230  const SWord8  s1367 = table3[s1342];
1231  const SWord8  s1368 = table4[s1344];
1232  const SWord8  s1369 = table1[s1346];
1233  const SWord8  s1370 = s1368 ^ s1369;
1234  const SWord8  s1371 = s1367 ^ s1370;
1235  const SWord8  s1372 = s1366 ^ s1371;
1236  const SWord16 s1373 = (((SWord16) s1365) << 8) | ((SWord16) s1372);
1237  const SWord32 s1374 = (((SWord32) s1358) << 16) | ((SWord32) s1373);
1238  const SWord8  s1375 = (SWord8) (s310 >> 24);
1239  const SWord8  s1376 = table1[s1375];
1240  const SWord8  s1377 = (SWord8) (s310 >> 16);
1241  const SWord8  s1378 = table2[s1377];
1242  const SWord8  s1379 = (SWord8) (s310 >> 8);
1243  const SWord8  s1380 = table3[s1379];
1244  const SWord8  s1381 = (SWord8) s310;
1245  const SWord8  s1382 = table4[s1381];
1246  const SWord8  s1383 = s1380 ^ s1382;
1247  const SWord8  s1384 = s1378 ^ s1383;
1248  const SWord8  s1385 = s1376 ^ s1384;
1249  const SWord8  s1386 = table4[s1375];
1250  const SWord8  s1387 = table1[s1377];
1251  const SWord8  s1388 = table2[s1379];
1252  const SWord8  s1389 = table3[s1381];
1253  const SWord8  s1390 = s1388 ^ s1389;
1254  const SWord8  s1391 = s1387 ^ s1390;
1255  const SWord8  s1392 = s1386 ^ s1391;
1256  const SWord16 s1393 = (((SWord16) s1385) << 8) | ((SWord16) s1392);
1257  const SWord8  s1394 = table3[s1375];
1258  const SWord8  s1395 = table4[s1377];
1259  const SWord8  s1396 = table1[s1379];
1260  const SWord8  s1397 = table2[s1381];
1261  const SWord8  s1398 = s1396 ^ s1397;
1262  const SWord8  s1399 = s1395 ^ s1398;
1263  const SWord8  s1400 = s1394 ^ s1399;
1264  const SWord8  s1401 = table2[s1375];
1265  const SWord8  s1402 = table3[s1377];
1266  const SWord8  s1403 = table4[s1379];
1267  const SWord8  s1404 = table1[s1381];
1268  const SWord8  s1405 = s1403 ^ s1404;
1269  const SWord8  s1406 = s1402 ^ s1405;
1270  const SWord8  s1407 = s1401 ^ s1406;
1271  const SWord16 s1408 = (((SWord16) s1400) << 8) | ((SWord16) s1407);
1272  const SWord32 s1409 = (((SWord32) s1393) << 16) | ((SWord32) s1408);
1273  const SWord8  s1410 = (SWord8) (s290 >> 24);
1274  const SWord8  s1411 = table1[s1410];
1275  const SWord8  s1412 = (SWord8) (s290 >> 16);
1276  const SWord8  s1413 = table2[s1412];
1277  const SWord8  s1414 = (SWord8) (s290 >> 8);
1278  const SWord8  s1415 = table3[s1414];
1279  const SWord8  s1416 = (SWord8) s290;
1280  const SWord8  s1417 = table4[s1416];
1281  const SWord8  s1418 = s1415 ^ s1417;
1282  const SWord8  s1419 = s1413 ^ s1418;
1283  const SWord8  s1420 = s1411 ^ s1419;
1284  const SWord8  s1421 = table4[s1410];
1285  const SWord8  s1422 = table1[s1412];
1286  const SWord8  s1423 = table2[s1414];
1287  const SWord8  s1424 = table3[s1416];
1288  const SWord8  s1425 = s1423 ^ s1424;
1289  const SWord8  s1426 = s1422 ^ s1425;
1290  const SWord8  s1427 = s1421 ^ s1426;
1291  const SWord16 s1428 = (((SWord16) s1420) << 8) | ((SWord16) s1427);
1292  const SWord8  s1429 = table3[s1410];
1293  const SWord8  s1430 = table4[s1412];
1294  const SWord8  s1431 = table1[s1414];
1295  const SWord8  s1432 = table2[s1416];
1296  const SWord8  s1433 = s1431 ^ s1432;
1297  const SWord8  s1434 = s1430 ^ s1433;
1298  const SWord8  s1435 = s1429 ^ s1434;
1299  const SWord8  s1436 = table2[s1410];
1300  const SWord8  s1437 = table3[s1412];
1301  const SWord8  s1438 = table4[s1414];
1302  const SWord8  s1439 = table1[s1416];
1303  const SWord8  s1440 = s1438 ^ s1439;
1304  const SWord8  s1441 = s1437 ^ s1440;
1305  const SWord8  s1442 = s1436 ^ s1441;
1306  const SWord16 s1443 = (((SWord16) s1435) << 8) | ((SWord16) s1442);
1307  const SWord32 s1444 = (((SWord32) s1428) << 16) | ((SWord32) s1443);
1308  const SWord8  s1445 = (SWord8) (s291 >> 24);
1309  const SWord8  s1446 = table1[s1445];
1310  const SWord8  s1447 = (SWord8) (s291 >> 16);
1311  const SWord8  s1448 = table2[s1447];
1312  const SWord8  s1449 = (SWord8) (s291 >> 8);
1313  const SWord8  s1450 = table3[s1449];
1314  const SWord8  s1451 = (SWord8) s291;
1315  const SWord8  s1452 = table4[s1451];
1316  const SWord8  s1453 = s1450 ^ s1452;
1317  const SWord8  s1454 = s1448 ^ s1453;
1318  const SWord8  s1455 = s1446 ^ s1454;
1319  const SWord8  s1456 = table4[s1445];
1320  const SWord8  s1457 = table1[s1447];
1321  const SWord8  s1458 = table2[s1449];
1322  const SWord8  s1459 = table3[s1451];
1323  const SWord8  s1460 = s1458 ^ s1459;
1324  const SWord8  s1461 = s1457 ^ s1460;
1325  const SWord8  s1462 = s1456 ^ s1461;
1326  const SWord16 s1463 = (((SWord16) s1455) << 8) | ((SWord16) s1462);
1327  const SWord8  s1464 = table3[s1445];
1328  const SWord8  s1465 = table4[s1447];
1329  const SWord8  s1466 = table1[s1449];
1330  const SWord8  s1467 = table2[s1451];
1331  const SWord8  s1468 = s1466 ^ s1467;
1332  const SWord8  s1469 = s1465 ^ s1468;
1333  const SWord8  s1470 = s1464 ^ s1469;
1334  const SWord8  s1471 = table2[s1445];
1335  const SWord8  s1472 = table3[s1447];
1336  const SWord8  s1473 = table4[s1449];
1337  const SWord8  s1474 = table1[s1451];
1338  const SWord8  s1475 = s1473 ^ s1474;
1339  const SWord8  s1476 = s1472 ^ s1475;
1340  const SWord8  s1477 = s1471 ^ s1476;
1341  const SWord16 s1478 = (((SWord16) s1470) << 8) | ((SWord16) s1477);
1342  const SWord32 s1479 = (((SWord32) s1463) << 16) | ((SWord32) s1478);
1343  const SWord8  s1480 = (SWord8) (s292 >> 24);
1344  const SWord8  s1481 = table1[s1480];
1345  const SWord8  s1482 = (SWord8) (s292 >> 16);
1346  const SWord8  s1483 = table2[s1482];
1347  const SWord8  s1484 = (SWord8) (s292 >> 8);
1348  const SWord8  s1485 = table3[s1484];
1349  const SWord8  s1486 = (SWord8) s292;
1350  const SWord8  s1487 = table4[s1486];
1351  const SWord8  s1488 = s1485 ^ s1487;
1352  const SWord8  s1489 = s1483 ^ s1488;
1353  const SWord8  s1490 = s1481 ^ s1489;
1354  const SWord8  s1491 = table4[s1480];
1355  const SWord8  s1492 = table1[s1482];
1356  const SWord8  s1493 = table2[s1484];
1357  const SWord8  s1494 = table3[s1486];
1358  const SWord8  s1495 = s1493 ^ s1494;
1359  const SWord8  s1496 = s1492 ^ s1495;
1360  const SWord8  s1497 = s1491 ^ s1496;
1361  const SWord16 s1498 = (((SWord16) s1490) << 8) | ((SWord16) s1497);
1362  const SWord8  s1499 = table3[s1480];
1363  const SWord8  s1500 = table4[s1482];
1364  const SWord8  s1501 = table1[s1484];
1365  const SWord8  s1502 = table2[s1486];
1366  const SWord8  s1503 = s1501 ^ s1502;
1367  const SWord8  s1504 = s1500 ^ s1503;
1368  const SWord8  s1505 = s1499 ^ s1504;
1369  const SWord8  s1506 = table2[s1480];
1370  const SWord8  s1507 = table3[s1482];
1371  const SWord8  s1508 = table4[s1484];
1372  const SWord8  s1509 = table1[s1486];
1373  const SWord8  s1510 = s1508 ^ s1509;
1374  const SWord8  s1511 = s1507 ^ s1510;
1375  const SWord8  s1512 = s1506 ^ s1511;
1376  const SWord16 s1513 = (((SWord16) s1505) << 8) | ((SWord16) s1512);
1377  const SWord32 s1514 = (((SWord32) s1498) << 16) | ((SWord32) s1513);
1378  const SWord8  s1515 = (SWord8) (s293 >> 24);
1379  const SWord8  s1516 = table1[s1515];
1380  const SWord8  s1517 = (SWord8) (s293 >> 16);
1381  const SWord8  s1518 = table2[s1517];
1382  const SWord8  s1519 = (SWord8) (s293 >> 8);
1383  const SWord8  s1520 = table3[s1519];
1384  const SWord8  s1521 = (SWord8) s293;
1385  const SWord8  s1522 = table4[s1521];
1386  const SWord8  s1523 = s1520 ^ s1522;
1387  const SWord8  s1524 = s1518 ^ s1523;
1388  const SWord8  s1525 = s1516 ^ s1524;
1389  const SWord8  s1526 = table4[s1515];
1390  const SWord8  s1527 = table1[s1517];
1391  const SWord8  s1528 = table2[s1519];
1392  const SWord8  s1529 = table3[s1521];
1393  const SWord8  s1530 = s1528 ^ s1529;
1394  const SWord8  s1531 = s1527 ^ s1530;
1395  const SWord8  s1532 = s1526 ^ s1531;
1396  const SWord16 s1533 = (((SWord16) s1525) << 8) | ((SWord16) s1532);
1397  const SWord8  s1534 = table3[s1515];
1398  const SWord8  s1535 = table4[s1517];
1399  const SWord8  s1536 = table1[s1519];
1400  const SWord8  s1537 = table2[s1521];
1401  const SWord8  s1538 = s1536 ^ s1537;
1402  const SWord8  s1539 = s1535 ^ s1538;
1403  const SWord8  s1540 = s1534 ^ s1539;
1404  const SWord8  s1541 = table2[s1515];
1405  const SWord8  s1542 = table3[s1517];
1406  const SWord8  s1543 = table4[s1519];
1407  const SWord8  s1544 = table1[s1521];
1408  const SWord8  s1545 = s1543 ^ s1544;
1409  const SWord8  s1546 = s1542 ^ s1545;
1410  const SWord8  s1547 = s1541 ^ s1546;
1411  const SWord16 s1548 = (((SWord16) s1540) << 8) | ((SWord16) s1547);
1412  const SWord32 s1549 = (((SWord32) s1533) << 16) | ((SWord32) s1548);
1413  const SWord8  s1550 = (SWord8) (s273 >> 24);
1414  const SWord8  s1551 = table1[s1550];
1415  const SWord8  s1552 = (SWord8) (s273 >> 16);
1416  const SWord8  s1553 = table2[s1552];
1417  const SWord8  s1554 = (SWord8) (s273 >> 8);
1418  const SWord8  s1555 = table3[s1554];
1419  const SWord8  s1556 = (SWord8) s273;
1420  const SWord8  s1557 = table4[s1556];
1421  const SWord8  s1558 = s1555 ^ s1557;
1422  const SWord8  s1559 = s1553 ^ s1558;
1423  const SWord8  s1560 = s1551 ^ s1559;
1424  const SWord8  s1561 = table4[s1550];
1425  const SWord8  s1562 = table1[s1552];
1426  const SWord8  s1563 = table2[s1554];
1427  const SWord8  s1564 = table3[s1556];
1428  const SWord8  s1565 = s1563 ^ s1564;
1429  const SWord8  s1566 = s1562 ^ s1565;
1430  const SWord8  s1567 = s1561 ^ s1566;
1431  const SWord16 s1568 = (((SWord16) s1560) << 8) | ((SWord16) s1567);
1432  const SWord8  s1569 = table3[s1550];
1433  const SWord8  s1570 = table4[s1552];
1434  const SWord8  s1571 = table1[s1554];
1435  const SWord8  s1572 = table2[s1556];
1436  const SWord8  s1573 = s1571 ^ s1572;
1437  const SWord8  s1574 = s1570 ^ s1573;
1438  const SWord8  s1575 = s1569 ^ s1574;
1439  const SWord8  s1576 = table2[s1550];
1440  const SWord8  s1577 = table3[s1552];
1441  const SWord8  s1578 = table4[s1554];
1442  const SWord8  s1579 = table1[s1556];
1443  const SWord8  s1580 = s1578 ^ s1579;
1444  const SWord8  s1581 = s1577 ^ s1580;
1445  const SWord8  s1582 = s1576 ^ s1581;
1446  const SWord16 s1583 = (((SWord16) s1575) << 8) | ((SWord16) s1582);
1447  const SWord32 s1584 = (((SWord32) s1568) << 16) | ((SWord32) s1583);
1448  const SWord8  s1585 = (SWord8) (s274 >> 24);
1449  const SWord8  s1586 = table1[s1585];
1450  const SWord8  s1587 = (SWord8) (s274 >> 16);
1451  const SWord8  s1588 = table2[s1587];
1452  const SWord8  s1589 = (SWord8) (s274 >> 8);
1453  const SWord8  s1590 = table3[s1589];
1454  const SWord8  s1591 = (SWord8) s274;
1455  const SWord8  s1592 = table4[s1591];
1456  const SWord8  s1593 = s1590 ^ s1592;
1457  const SWord8  s1594 = s1588 ^ s1593;
1458  const SWord8  s1595 = s1586 ^ s1594;
1459  const SWord8  s1596 = table4[s1585];
1460  const SWord8  s1597 = table1[s1587];
1461  const SWord8  s1598 = table2[s1589];
1462  const SWord8  s1599 = table3[s1591];
1463  const SWord8  s1600 = s1598 ^ s1599;
1464  const SWord8  s1601 = s1597 ^ s1600;
1465  const SWord8  s1602 = s1596 ^ s1601;
1466  const SWord16 s1603 = (((SWord16) s1595) << 8) | ((SWord16) s1602);
1467  const SWord8  s1604 = table3[s1585];
1468  const SWord8  s1605 = table4[s1587];
1469  const SWord8  s1606 = table1[s1589];
1470  const SWord8  s1607 = table2[s1591];
1471  const SWord8  s1608 = s1606 ^ s1607;
1472  const SWord8  s1609 = s1605 ^ s1608;
1473  const SWord8  s1610 = s1604 ^ s1609;
1474  const SWord8  s1611 = table2[s1585];
1475  const SWord8  s1612 = table3[s1587];
1476  const SWord8  s1613 = table4[s1589];
1477  const SWord8  s1614 = table1[s1591];
1478  const SWord8  s1615 = s1613 ^ s1614;
1479  const SWord8  s1616 = s1612 ^ s1615;
1480  const SWord8  s1617 = s1611 ^ s1616;
1481  const SWord16 s1618 = (((SWord16) s1610) << 8) | ((SWord16) s1617);
1482  const SWord32 s1619 = (((SWord32) s1603) << 16) | ((SWord32) s1618);
1483  const SWord8  s1620 = (SWord8) (s275 >> 24);
1484  const SWord8  s1621 = table1[s1620];
1485  const SWord8  s1622 = (SWord8) (s275 >> 16);
1486  const SWord8  s1623 = table2[s1622];
1487  const SWord8  s1624 = (SWord8) (s275 >> 8);
1488  const SWord8  s1625 = table3[s1624];
1489  const SWord8  s1626 = (SWord8) s275;
1490  const SWord8  s1627 = table4[s1626];
1491  const SWord8  s1628 = s1625 ^ s1627;
1492  const SWord8  s1629 = s1623 ^ s1628;
1493  const SWord8  s1630 = s1621 ^ s1629;
1494  const SWord8  s1631 = table4[s1620];
1495  const SWord8  s1632 = table1[s1622];
1496  const SWord8  s1633 = table2[s1624];
1497  const SWord8  s1634 = table3[s1626];
1498  const SWord8  s1635 = s1633 ^ s1634;
1499  const SWord8  s1636 = s1632 ^ s1635;
1500  const SWord8  s1637 = s1631 ^ s1636;
1501  const SWord16 s1638 = (((SWord16) s1630) << 8) | ((SWord16) s1637);
1502  const SWord8  s1639 = table3[s1620];
1503  const SWord8  s1640 = table4[s1622];
1504  const SWord8  s1641 = table1[s1624];
1505  const SWord8  s1642 = table2[s1626];
1506  const SWord8  s1643 = s1641 ^ s1642;
1507  const SWord8  s1644 = s1640 ^ s1643;
1508  const SWord8  s1645 = s1639 ^ s1644;
1509  const SWord8  s1646 = table2[s1620];
1510  const SWord8  s1647 = table3[s1622];
1511  const SWord8  s1648 = table4[s1624];
1512  const SWord8  s1649 = table1[s1626];
1513  const SWord8  s1650 = s1648 ^ s1649;
1514  const SWord8  s1651 = s1647 ^ s1650;
1515  const SWord8  s1652 = s1646 ^ s1651;
1516  const SWord16 s1653 = (((SWord16) s1645) << 8) | ((SWord16) s1652);
1517  const SWord32 s1654 = (((SWord32) s1638) << 16) | ((SWord32) s1653);
1518  const SWord8  s1655 = (SWord8) (s276 >> 24);
1519  const SWord8  s1656 = table1[s1655];
1520  const SWord8  s1657 = (SWord8) (s276 >> 16);
1521  const SWord8  s1658 = table2[s1657];
1522  const SWord8  s1659 = (SWord8) (s276 >> 8);
1523  const SWord8  s1660 = table3[s1659];
1524  const SWord8  s1661 = (SWord8) s276;
1525  const SWord8  s1662 = table4[s1661];
1526  const SWord8  s1663 = s1660 ^ s1662;
1527  const SWord8  s1664 = s1658 ^ s1663;
1528  const SWord8  s1665 = s1656 ^ s1664;
1529  const SWord8  s1666 = table4[s1655];
1530  const SWord8  s1667 = table1[s1657];
1531  const SWord8  s1668 = table2[s1659];
1532  const SWord8  s1669 = table3[s1661];
1533  const SWord8  s1670 = s1668 ^ s1669;
1534  const SWord8  s1671 = s1667 ^ s1670;
1535  const SWord8  s1672 = s1666 ^ s1671;
1536  const SWord16 s1673 = (((SWord16) s1665) << 8) | ((SWord16) s1672);
1537  const SWord8  s1674 = table3[s1655];
1538  const SWord8  s1675 = table4[s1657];
1539  const SWord8  s1676 = table1[s1659];
1540  const SWord8  s1677 = table2[s1661];
1541  const SWord8  s1678 = s1676 ^ s1677;
1542  const SWord8  s1679 = s1675 ^ s1678;
1543  const SWord8  s1680 = s1674 ^ s1679;
1544  const SWord8  s1681 = table2[s1655];
1545  const SWord8  s1682 = table3[s1657];
1546  const SWord8  s1683 = table4[s1659];
1547  const SWord8  s1684 = table1[s1661];
1548  const SWord8  s1685 = s1683 ^ s1684;
1549  const SWord8  s1686 = s1682 ^ s1685;
1550  const SWord8  s1687 = s1681 ^ s1686;
1551  const SWord16 s1688 = (((SWord16) s1680) << 8) | ((SWord16) s1687);
1552  const SWord32 s1689 = (((SWord32) s1673) << 16) | ((SWord32) s1688);
1553
1554  encKS[0] = s0;
1555  encKS[1] = s1;
1556  encKS[2] = s2;
1557  encKS[3] = s3;
1558  encKS[4] = s273;
1559  encKS[5] = s274;
1560  encKS[6] = s275;
1561  encKS[7] = s276;
1562  encKS[8] = s290;
1563  encKS[9] = s291;
1564  encKS[10] = s292;
1565  encKS[11] = s293;
1566  encKS[12] = s307;
1567  encKS[13] = s308;
1568  encKS[14] = s309;
1569  encKS[15] = s310;
1570  encKS[16] = s324;
1571  encKS[17] = s325;
1572  encKS[18] = s326;
1573  encKS[19] = s327;
1574  encKS[20] = s341;
1575  encKS[21] = s342;
1576  encKS[22] = s343;
1577  encKS[23] = s344;
1578  encKS[24] = s358;
1579  encKS[25] = s359;
1580  encKS[26] = s360;
1581  encKS[27] = s361;
1582  encKS[28] = s375;
1583  encKS[29] = s376;
1584  encKS[30] = s377;
1585  encKS[31] = s378;
1586  encKS[32] = s392;
1587  encKS[33] = s393;
1588  encKS[34] = s394;
1589  encKS[35] = s395;
1590  encKS[36] = s409;
1591  encKS[37] = s410;
1592  encKS[38] = s411;
1593  encKS[39] = s412;
1594  encKS[40] = s426;
1595  encKS[41] = s427;
1596  encKS[42] = s428;
1597  encKS[43] = s429;
1598  decKS[0] = s426;
1599  decKS[1] = s427;
1600  decKS[2] = s428;
1601  decKS[3] = s429;
1602  decKS[4] = s464;
1603  decKS[5] = s499;
1604  decKS[6] = s534;
1605  decKS[7] = s569;
1606  decKS[8] = s604;
1607  decKS[9] = s639;
1608  decKS[10] = s674;
1609  decKS[11] = s709;
1610  decKS[12] = s744;
1611  decKS[13] = s779;
1612  decKS[14] = s814;
1613  decKS[15] = s849;
1614  decKS[16] = s884;
1615  decKS[17] = s919;
1616  decKS[18] = s954;
1617  decKS[19] = s989;
1618  decKS[20] = s1024;
1619  decKS[21] = s1059;
1620  decKS[22] = s1094;
1621  decKS[23] = s1129;
1622  decKS[24] = s1164;
1623  decKS[25] = s1199;
1624  decKS[26] = s1234;
1625  decKS[27] = s1269;
1626  decKS[28] = s1304;
1627  decKS[29] = s1339;
1628  decKS[30] = s1374;
1629  decKS[31] = s1409;
1630  decKS[32] = s1444;
1631  decKS[33] = s1479;
1632  decKS[34] = s1514;
1633  decKS[35] = s1549;
1634  decKS[36] = s1584;
1635  decKS[37] = s1619;
1636  decKS[38] = s1654;
1637  decKS[39] = s1689;
1638  decKS[40] = s0;
1639  decKS[41] = s1;
1640  decKS[42] = s2;
1641  decKS[43] = s3;
1642}
1643== END: "aes128KeySchedule.c" ==================
1644== BEGIN: "aes128BlockEncrypt.c" ================
1645/* File: "aes128BlockEncrypt.c". Automatically generated by SBV. Do not edit! */
1646
1647#include "aes128Lib.h"
1648
1649void aes128BlockEncrypt(const SWord32 *pt, const SWord32 *xkey,
1650                        SWord32 *ct)
1651{
1652  const SWord32 s0 = pt[0];
1653  const SWord32 s1 = pt[1];
1654  const SWord32 s2 = pt[2];
1655  const SWord32 s3 = pt[3];
1656  const SWord32 s4 = xkey[0];
1657  const SWord32 s5 = xkey[1];
1658  const SWord32 s6 = xkey[2];
1659  const SWord32 s7 = xkey[3];
1660  const SWord32 s8 = xkey[4];
1661  const SWord32 s9 = xkey[5];
1662  const SWord32 s10 = xkey[6];
1663  const SWord32 s11 = xkey[7];
1664  const SWord32 s12 = xkey[8];
1665  const SWord32 s13 = xkey[9];
1666  const SWord32 s14 = xkey[10];
1667  const SWord32 s15 = xkey[11];
1668  const SWord32 s16 = xkey[12];
1669  const SWord32 s17 = xkey[13];
1670  const SWord32 s18 = xkey[14];
1671  const SWord32 s19 = xkey[15];
1672  const SWord32 s20 = xkey[16];
1673  const SWord32 s21 = xkey[17];
1674  const SWord32 s22 = xkey[18];
1675  const SWord32 s23 = xkey[19];
1676  const SWord32 s24 = xkey[20];
1677  const SWord32 s25 = xkey[21];
1678  const SWord32 s26 = xkey[22];
1679  const SWord32 s27 = xkey[23];
1680  const SWord32 s28 = xkey[24];
1681  const SWord32 s29 = xkey[25];
1682  const SWord32 s30 = xkey[26];
1683  const SWord32 s31 = xkey[27];
1684  const SWord32 s32 = xkey[28];
1685  const SWord32 s33 = xkey[29];
1686  const SWord32 s34 = xkey[30];
1687  const SWord32 s35 = xkey[31];
1688  const SWord32 s36 = xkey[32];
1689  const SWord32 s37 = xkey[33];
1690  const SWord32 s38 = xkey[34];
1691  const SWord32 s39 = xkey[35];
1692  const SWord32 s40 = xkey[36];
1693  const SWord32 s41 = xkey[37];
1694  const SWord32 s42 = xkey[38];
1695  const SWord32 s43 = xkey[39];
1696  const SWord32 s44 = xkey[40];
1697  const SWord32 s45 = xkey[41];
1698  const SWord32 s46 = xkey[42];
1699  const SWord32 s47 = xkey[43];
1700  static const SWord8 table0[] = {
1701       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,
1702      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,
1703      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,
1704      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,
1705       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,
1706      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,
1707       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,
1708       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,
1709       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,
1710      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,
1711       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,
1712      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,
1713      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,
1714      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,
1715       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,
1716       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,
1717      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,
1718      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,
1719      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,
1720      104,  65, 153,  45,  15, 176,  84, 187,  22
1721  };
1722  static const SWord32 table1[] = {
1723      0xc66363a5UL, 0xf87c7c84UL, 0xee777799UL, 0xf67b7b8dUL,
1724      0xfff2f20dUL, 0xd66b6bbdUL, 0xde6f6fb1UL, 0x91c5c554UL,
1725      0x60303050UL, 0x02010103UL, 0xce6767a9UL, 0x562b2b7dUL,
1726      0xe7fefe19UL, 0xb5d7d762UL, 0x4dababe6UL, 0xec76769aUL,
1727      0x8fcaca45UL, 0x1f82829dUL, 0x89c9c940UL, 0xfa7d7d87UL,
1728      0xeffafa15UL, 0xb25959ebUL, 0x8e4747c9UL, 0xfbf0f00bUL,
1729      0x41adadecUL, 0xb3d4d467UL, 0x5fa2a2fdUL, 0x45afafeaUL,
1730      0x239c9cbfUL, 0x53a4a4f7UL, 0xe4727296UL, 0x9bc0c05bUL,
1731      0x75b7b7c2UL, 0xe1fdfd1cUL, 0x3d9393aeUL, 0x4c26266aUL,
1732      0x6c36365aUL, 0x7e3f3f41UL, 0xf5f7f702UL, 0x83cccc4fUL,
1733      0x6834345cUL, 0x51a5a5f4UL, 0xd1e5e534UL, 0xf9f1f108UL,
1734      0xe2717193UL, 0xabd8d873UL, 0x62313153UL, 0x2a15153fUL,
1735      0x0804040cUL, 0x95c7c752UL, 0x46232365UL, 0x9dc3c35eUL,
1736      0x30181828UL, 0x379696a1UL, 0x0a05050fUL, 0x2f9a9ab5UL,
1737      0x0e070709UL, 0x24121236UL, 0x1b80809bUL, 0xdfe2e23dUL,
1738      0xcdebeb26UL, 0x4e272769UL, 0x7fb2b2cdUL, 0xea75759fUL,
1739      0x1209091bUL, 0x1d83839eUL, 0x582c2c74UL, 0x341a1a2eUL,
1740      0x361b1b2dUL, 0xdc6e6eb2UL, 0xb45a5aeeUL, 0x5ba0a0fbUL,
1741      0xa45252f6UL, 0x763b3b4dUL, 0xb7d6d661UL, 0x7db3b3ceUL,
1742      0x5229297bUL, 0xdde3e33eUL, 0x5e2f2f71UL, 0x13848497UL,
1743      0xa65353f5UL, 0xb9d1d168UL, 0x00000000UL, 0xc1eded2cUL,
1744      0x40202060UL, 0xe3fcfc1fUL, 0x79b1b1c8UL, 0xb65b5bedUL,
1745      0xd46a6abeUL, 0x8dcbcb46UL, 0x67bebed9UL, 0x7239394bUL,
1746      0x944a4adeUL, 0x984c4cd4UL, 0xb05858e8UL, 0x85cfcf4aUL,
1747      0xbbd0d06bUL, 0xc5efef2aUL, 0x4faaaae5UL, 0xedfbfb16UL,
1748      0x864343c5UL, 0x9a4d4dd7UL, 0x66333355UL, 0x11858594UL,
1749      0x8a4545cfUL, 0xe9f9f910UL, 0x04020206UL, 0xfe7f7f81UL,
1750      0xa05050f0UL, 0x783c3c44UL, 0x259f9fbaUL, 0x4ba8a8e3UL,
1751      0xa25151f3UL, 0x5da3a3feUL, 0x804040c0UL, 0x058f8f8aUL,
1752      0x3f9292adUL, 0x219d9dbcUL, 0x70383848UL, 0xf1f5f504UL,
1753      0x63bcbcdfUL, 0x77b6b6c1UL, 0xafdada75UL, 0x42212163UL,
1754      0x20101030UL, 0xe5ffff1aUL, 0xfdf3f30eUL, 0xbfd2d26dUL,
1755      0x81cdcd4cUL, 0x180c0c14UL, 0x26131335UL, 0xc3ecec2fUL,
1756      0xbe5f5fe1UL, 0x359797a2UL, 0x884444ccUL, 0x2e171739UL,
1757      0x93c4c457UL, 0x55a7a7f2UL, 0xfc7e7e82UL, 0x7a3d3d47UL,
1758      0xc86464acUL, 0xba5d5de7UL, 0x3219192bUL, 0xe6737395UL,
1759      0xc06060a0UL, 0x19818198UL, 0x9e4f4fd1UL, 0xa3dcdc7fUL,
1760      0x44222266UL, 0x542a2a7eUL, 0x3b9090abUL, 0x0b888883UL,
1761      0x8c4646caUL, 0xc7eeee29UL, 0x6bb8b8d3UL, 0x2814143cUL,
1762      0xa7dede79UL, 0xbc5e5ee2UL, 0x160b0b1dUL, 0xaddbdb76UL,
1763      0xdbe0e03bUL, 0x64323256UL, 0x743a3a4eUL, 0x140a0a1eUL,
1764      0x924949dbUL, 0x0c06060aUL, 0x4824246cUL, 0xb85c5ce4UL,
1765      0x9fc2c25dUL, 0xbdd3d36eUL, 0x43acacefUL, 0xc46262a6UL,
1766      0x399191a8UL, 0x319595a4UL, 0xd3e4e437UL, 0xf279798bUL,
1767      0xd5e7e732UL, 0x8bc8c843UL, 0x6e373759UL, 0xda6d6db7UL,
1768      0x018d8d8cUL, 0xb1d5d564UL, 0x9c4e4ed2UL, 0x49a9a9e0UL,
1769      0xd86c6cb4UL, 0xac5656faUL, 0xf3f4f407UL, 0xcfeaea25UL,
1770      0xca6565afUL, 0xf47a7a8eUL, 0x47aeaee9UL, 0x10080818UL,
1771      0x6fbabad5UL, 0xf0787888UL, 0x4a25256fUL, 0x5c2e2e72UL,
1772      0x381c1c24UL, 0x57a6a6f1UL, 0x73b4b4c7UL, 0x97c6c651UL,
1773      0xcbe8e823UL, 0xa1dddd7cUL, 0xe874749cUL, 0x3e1f1f21UL,
1774      0x964b4bddUL, 0x61bdbddcUL, 0x0d8b8b86UL, 0x0f8a8a85UL,
1775      0xe0707090UL, 0x7c3e3e42UL, 0x71b5b5c4UL, 0xcc6666aaUL,
1776      0x904848d8UL, 0x06030305UL, 0xf7f6f601UL, 0x1c0e0e12UL,
1777      0xc26161a3UL, 0x6a35355fUL, 0xae5757f9UL, 0x69b9b9d0UL,
1778      0x17868691UL, 0x99c1c158UL, 0x3a1d1d27UL, 0x279e9eb9UL,
1779      0xd9e1e138UL, 0xebf8f813UL, 0x2b9898b3UL, 0x22111133UL,
1780      0xd26969bbUL, 0xa9d9d970UL, 0x078e8e89UL, 0x339494a7UL,
1781      0x2d9b9bb6UL, 0x3c1e1e22UL, 0x15878792UL, 0xc9e9e920UL,
1782      0x87cece49UL, 0xaa5555ffUL, 0x50282878UL, 0xa5dfdf7aUL,
1783      0x038c8c8fUL, 0x59a1a1f8UL, 0x09898980UL, 0x1a0d0d17UL,
1784      0x65bfbfdaUL, 0xd7e6e631UL, 0x844242c6UL, 0xd06868b8UL,
1785      0x824141c3UL, 0x299999b0UL, 0x5a2d2d77UL, 0x1e0f0f11UL,
1786      0x7bb0b0cbUL, 0xa85454fcUL, 0x6dbbbbd6UL, 0x2c16163aUL
1787  };
1788  static const SWord32 table2[] = {
1789      0xa5c66363UL, 0x84f87c7cUL, 0x99ee7777UL, 0x8df67b7bUL,
1790      0x0dfff2f2UL, 0xbdd66b6bUL, 0xb1de6f6fUL, 0x5491c5c5UL,
1791      0x50603030UL, 0x03020101UL, 0xa9ce6767UL, 0x7d562b2bUL,
1792      0x19e7fefeUL, 0x62b5d7d7UL, 0xe64dababUL, 0x9aec7676UL,
1793      0x458fcacaUL, 0x9d1f8282UL, 0x4089c9c9UL, 0x87fa7d7dUL,
1794      0x15effafaUL, 0xebb25959UL, 0xc98e4747UL, 0x0bfbf0f0UL,
1795      0xec41adadUL, 0x67b3d4d4UL, 0xfd5fa2a2UL, 0xea45afafUL,
1796      0xbf239c9cUL, 0xf753a4a4UL, 0x96e47272UL, 0x5b9bc0c0UL,
1797      0xc275b7b7UL, 0x1ce1fdfdUL, 0xae3d9393UL, 0x6a4c2626UL,
1798      0x5a6c3636UL, 0x417e3f3fUL, 0x02f5f7f7UL, 0x4f83ccccUL,
1799      0x5c683434UL, 0xf451a5a5UL, 0x34d1e5e5UL, 0x08f9f1f1UL,
1800      0x93e27171UL, 0x73abd8d8UL, 0x53623131UL, 0x3f2a1515UL,
1801      0x0c080404UL, 0x5295c7c7UL, 0x65462323UL, 0x5e9dc3c3UL,
1802      0x28301818UL, 0xa1379696UL, 0x0f0a0505UL, 0xb52f9a9aUL,
1803      0x090e0707UL, 0x36241212UL, 0x9b1b8080UL, 0x3ddfe2e2UL,
1804      0x26cdebebUL, 0x694e2727UL, 0xcd7fb2b2UL, 0x9fea7575UL,
1805      0x1b120909UL, 0x9e1d8383UL, 0x74582c2cUL, 0x2e341a1aUL,
1806      0x2d361b1bUL, 0xb2dc6e6eUL, 0xeeb45a5aUL, 0xfb5ba0a0UL,
1807      0xf6a45252UL, 0x4d763b3bUL, 0x61b7d6d6UL, 0xce7db3b3UL,
1808      0x7b522929UL, 0x3edde3e3UL, 0x715e2f2fUL, 0x97138484UL,
1809      0xf5a65353UL, 0x68b9d1d1UL, 0x00000000UL, 0x2cc1ededUL,
1810      0x60402020UL, 0x1fe3fcfcUL, 0xc879b1b1UL, 0xedb65b5bUL,
1811      0xbed46a6aUL, 0x468dcbcbUL, 0xd967bebeUL, 0x4b723939UL,
1812      0xde944a4aUL, 0xd4984c4cUL, 0xe8b05858UL, 0x4a85cfcfUL,
1813      0x6bbbd0d0UL, 0x2ac5efefUL, 0xe54faaaaUL, 0x16edfbfbUL,
1814      0xc5864343UL, 0xd79a4d4dUL, 0x55663333UL, 0x94118585UL,
1815      0xcf8a4545UL, 0x10e9f9f9UL, 0x06040202UL, 0x81fe7f7fUL,
1816      0xf0a05050UL, 0x44783c3cUL, 0xba259f9fUL, 0xe34ba8a8UL,
1817      0xf3a25151UL, 0xfe5da3a3UL, 0xc0804040UL, 0x8a058f8fUL,
1818      0xad3f9292UL, 0xbc219d9dUL, 0x48703838UL, 0x04f1f5f5UL,
1819      0xdf63bcbcUL, 0xc177b6b6UL, 0x75afdadaUL, 0x63422121UL,
1820      0x30201010UL, 0x1ae5ffffUL, 0x0efdf3f3UL, 0x6dbfd2d2UL,
1821      0x4c81cdcdUL, 0x14180c0cUL, 0x35261313UL, 0x2fc3ececUL,
1822      0xe1be5f5fUL, 0xa2359797UL, 0xcc884444UL, 0x392e1717UL,
1823      0x5793c4c4UL, 0xf255a7a7UL, 0x82fc7e7eUL, 0x477a3d3dUL,
1824      0xacc86464UL, 0xe7ba5d5dUL, 0x2b321919UL, 0x95e67373UL,
1825      0xa0c06060UL, 0x98198181UL, 0xd19e4f4fUL, 0x7fa3dcdcUL,
1826      0x66442222UL, 0x7e542a2aUL, 0xab3b9090UL, 0x830b8888UL,
1827      0xca8c4646UL, 0x29c7eeeeUL, 0xd36bb8b8UL, 0x3c281414UL,
1828      0x79a7dedeUL, 0xe2bc5e5eUL, 0x1d160b0bUL, 0x76addbdbUL,
1829      0x3bdbe0e0UL, 0x56643232UL, 0x4e743a3aUL, 0x1e140a0aUL,
1830      0xdb924949UL, 0x0a0c0606UL, 0x6c482424UL, 0xe4b85c5cUL,
1831      0x5d9fc2c2UL, 0x6ebdd3d3UL, 0xef43acacUL, 0xa6c46262UL,
1832      0xa8399191UL, 0xa4319595UL, 0x37d3e4e4UL, 0x8bf27979UL,
1833      0x32d5e7e7UL, 0x438bc8c8UL, 0x596e3737UL, 0xb7da6d6dUL,
1834      0x8c018d8dUL, 0x64b1d5d5UL, 0xd29c4e4eUL, 0xe049a9a9UL,
1835      0xb4d86c6cUL, 0xfaac5656UL, 0x07f3f4f4UL, 0x25cfeaeaUL,
1836      0xafca6565UL, 0x8ef47a7aUL, 0xe947aeaeUL, 0x18100808UL,
1837      0xd56fbabaUL, 0x88f07878UL, 0x6f4a2525UL, 0x725c2e2eUL,
1838      0x24381c1cUL, 0xf157a6a6UL, 0xc773b4b4UL, 0x5197c6c6UL,
1839      0x23cbe8e8UL, 0x7ca1ddddUL, 0x9ce87474UL, 0x213e1f1fUL,
1840      0xdd964b4bUL, 0xdc61bdbdUL, 0x860d8b8bUL, 0x850f8a8aUL,
1841      0x90e07070UL, 0x427c3e3eUL, 0xc471b5b5UL, 0xaacc6666UL,
1842      0xd8904848UL, 0x05060303UL, 0x01f7f6f6UL, 0x121c0e0eUL,
1843      0xa3c26161UL, 0x5f6a3535UL, 0xf9ae5757UL, 0xd069b9b9UL,
1844      0x91178686UL, 0x5899c1c1UL, 0x273a1d1dUL, 0xb9279e9eUL,
1845      0x38d9e1e1UL, 0x13ebf8f8UL, 0xb32b9898UL, 0x33221111UL,
1846      0xbbd26969UL, 0x70a9d9d9UL, 0x89078e8eUL, 0xa7339494UL,
1847      0xb62d9b9bUL, 0x223c1e1eUL, 0x92158787UL, 0x20c9e9e9UL,
1848      0x4987ceceUL, 0xffaa5555UL, 0x78502828UL, 0x7aa5dfdfUL,
1849      0x8f038c8cUL, 0xf859a1a1UL, 0x80098989UL, 0x171a0d0dUL,
1850      0xda65bfbfUL, 0x31d7e6e6UL, 0xc6844242UL, 0xb8d06868UL,
1851      0xc3824141UL, 0xb0299999UL, 0x775a2d2dUL, 0x111e0f0fUL,
1852      0xcb7bb0b0UL, 0xfca85454UL, 0xd66dbbbbUL, 0x3a2c1616UL
1853  };
1854  static const SWord32 table3[] = {
1855      0x63a5c663UL, 0x7c84f87cUL, 0x7799ee77UL, 0x7b8df67bUL,
1856      0xf20dfff2UL, 0x6bbdd66bUL, 0x6fb1de6fUL, 0xc55491c5UL,
1857      0x30506030UL, 0x01030201UL, 0x67a9ce67UL, 0x2b7d562bUL,
1858      0xfe19e7feUL, 0xd762b5d7UL, 0xabe64dabUL, 0x769aec76UL,
1859      0xca458fcaUL, 0x829d1f82UL, 0xc94089c9UL, 0x7d87fa7dUL,
1860      0xfa15effaUL, 0x59ebb259UL, 0x47c98e47UL, 0xf00bfbf0UL,
1861      0xadec41adUL, 0xd467b3d4UL, 0xa2fd5fa2UL, 0xafea45afUL,
1862      0x9cbf239cUL, 0xa4f753a4UL, 0x7296e472UL, 0xc05b9bc0UL,
1863      0xb7c275b7UL, 0xfd1ce1fdUL, 0x93ae3d93UL, 0x266a4c26UL,
1864      0x365a6c36UL, 0x3f417e3fUL, 0xf702f5f7UL, 0xcc4f83ccUL,
1865      0x345c6834UL, 0xa5f451a5UL, 0xe534d1e5UL, 0xf108f9f1UL,
1866      0x7193e271UL, 0xd873abd8UL, 0x31536231UL, 0x153f2a15UL,
1867      0x040c0804UL, 0xc75295c7UL, 0x23654623UL, 0xc35e9dc3UL,
1868      0x18283018UL, 0x96a13796UL, 0x050f0a05UL, 0x9ab52f9aUL,
1869      0x07090e07UL, 0x12362412UL, 0x809b1b80UL, 0xe23ddfe2UL,
1870      0xeb26cdebUL, 0x27694e27UL, 0xb2cd7fb2UL, 0x759fea75UL,
1871      0x091b1209UL, 0x839e1d83UL, 0x2c74582cUL, 0x1a2e341aUL,
1872      0x1b2d361bUL, 0x6eb2dc6eUL, 0x5aeeb45aUL, 0xa0fb5ba0UL,
1873      0x52f6a452UL, 0x3b4d763bUL, 0xd661b7d6UL, 0xb3ce7db3UL,
1874      0x297b5229UL, 0xe33edde3UL, 0x2f715e2fUL, 0x84971384UL,
1875      0x53f5a653UL, 0xd168b9d1UL, 0x00000000UL, 0xed2cc1edUL,
1876      0x20604020UL, 0xfc1fe3fcUL, 0xb1c879b1UL, 0x5bedb65bUL,
1877      0x6abed46aUL, 0xcb468dcbUL, 0xbed967beUL, 0x394b7239UL,
1878      0x4ade944aUL, 0x4cd4984cUL, 0x58e8b058UL, 0xcf4a85cfUL,
1879      0xd06bbbd0UL, 0xef2ac5efUL, 0xaae54faaUL, 0xfb16edfbUL,
1880      0x43c58643UL, 0x4dd79a4dUL, 0x33556633UL, 0x85941185UL,
1881      0x45cf8a45UL, 0xf910e9f9UL, 0x02060402UL, 0x7f81fe7fUL,
1882      0x50f0a050UL, 0x3c44783cUL, 0x9fba259fUL, 0xa8e34ba8UL,
1883      0x51f3a251UL, 0xa3fe5da3UL, 0x40c08040UL, 0x8f8a058fUL,
1884      0x92ad3f92UL, 0x9dbc219dUL, 0x38487038UL, 0xf504f1f5UL,
1885      0xbcdf63bcUL, 0xb6c177b6UL, 0xda75afdaUL, 0x21634221UL,
1886      0x10302010UL, 0xff1ae5ffUL, 0xf30efdf3UL, 0xd26dbfd2UL,
1887      0xcd4c81cdUL, 0x0c14180cUL, 0x13352613UL, 0xec2fc3ecUL,
1888      0x5fe1be5fUL, 0x97a23597UL, 0x44cc8844UL, 0x17392e17UL,
1889      0xc45793c4UL, 0xa7f255a7UL, 0x7e82fc7eUL, 0x3d477a3dUL,
1890      0x64acc864UL, 0x5de7ba5dUL, 0x192b3219UL, 0x7395e673UL,
1891      0x60a0c060UL, 0x81981981UL, 0x4fd19e4fUL, 0xdc7fa3dcUL,
1892      0x22664422UL, 0x2a7e542aUL, 0x90ab3b90UL, 0x88830b88UL,
1893      0x46ca8c46UL, 0xee29c7eeUL, 0xb8d36bb8UL, 0x143c2814UL,
1894      0xde79a7deUL, 0x5ee2bc5eUL, 0x0b1d160bUL, 0xdb76addbUL,
1895      0xe03bdbe0UL, 0x32566432UL, 0x3a4e743aUL, 0x0a1e140aUL,
1896      0x49db9249UL, 0x060a0c06UL, 0x246c4824UL, 0x5ce4b85cUL,
1897      0xc25d9fc2UL, 0xd36ebdd3UL, 0xacef43acUL, 0x62a6c462UL,
1898      0x91a83991UL, 0x95a43195UL, 0xe437d3e4UL, 0x798bf279UL,
1899      0xe732d5e7UL, 0xc8438bc8UL, 0x37596e37UL, 0x6db7da6dUL,
1900      0x8d8c018dUL, 0xd564b1d5UL, 0x4ed29c4eUL, 0xa9e049a9UL,
1901      0x6cb4d86cUL, 0x56faac56UL, 0xf407f3f4UL, 0xea25cfeaUL,
1902      0x65afca65UL, 0x7a8ef47aUL, 0xaee947aeUL, 0x08181008UL,
1903      0xbad56fbaUL, 0x7888f078UL, 0x256f4a25UL, 0x2e725c2eUL,
1904      0x1c24381cUL, 0xa6f157a6UL, 0xb4c773b4UL, 0xc65197c6UL,
1905      0xe823cbe8UL, 0xdd7ca1ddUL, 0x749ce874UL, 0x1f213e1fUL,
1906      0x4bdd964bUL, 0xbddc61bdUL, 0x8b860d8bUL, 0x8a850f8aUL,
1907      0x7090e070UL, 0x3e427c3eUL, 0xb5c471b5UL, 0x66aacc66UL,
1908      0x48d89048UL, 0x03050603UL, 0xf601f7f6UL, 0x0e121c0eUL,
1909      0x61a3c261UL, 0x355f6a35UL, 0x57f9ae57UL, 0xb9d069b9UL,
1910      0x86911786UL, 0xc15899c1UL, 0x1d273a1dUL, 0x9eb9279eUL,
1911      0xe138d9e1UL, 0xf813ebf8UL, 0x98b32b98UL, 0x11332211UL,
1912      0x69bbd269UL, 0xd970a9d9UL, 0x8e89078eUL, 0x94a73394UL,
1913      0x9bb62d9bUL, 0x1e223c1eUL, 0x87921587UL, 0xe920c9e9UL,
1914      0xce4987ceUL, 0x55ffaa55UL, 0x28785028UL, 0xdf7aa5dfUL,
1915      0x8c8f038cUL, 0xa1f859a1UL, 0x89800989UL, 0x0d171a0dUL,
1916      0xbfda65bfUL, 0xe631d7e6UL, 0x42c68442UL, 0x68b8d068UL,
1917      0x41c38241UL, 0x99b02999UL, 0x2d775a2dUL, 0x0f111e0fUL,
1918      0xb0cb7bb0UL, 0x54fca854UL, 0xbbd66dbbUL, 0x163a2c16UL
1919  };
1920  static const SWord32 table4[] = {
1921      0x6363a5c6UL, 0x7c7c84f8UL, 0x777799eeUL, 0x7b7b8df6UL,
1922      0xf2f20dffUL, 0x6b6bbdd6UL, 0x6f6fb1deUL, 0xc5c55491UL,
1923      0x30305060UL, 0x01010302UL, 0x6767a9ceUL, 0x2b2b7d56UL,
1924      0xfefe19e7UL, 0xd7d762b5UL, 0xababe64dUL, 0x76769aecUL,
1925      0xcaca458fUL, 0x82829d1fUL, 0xc9c94089UL, 0x7d7d87faUL,
1926      0xfafa15efUL, 0x5959ebb2UL, 0x4747c98eUL, 0xf0f00bfbUL,
1927      0xadadec41UL, 0xd4d467b3UL, 0xa2a2fd5fUL, 0xafafea45UL,
1928      0x9c9cbf23UL, 0xa4a4f753UL, 0x727296e4UL, 0xc0c05b9bUL,
1929      0xb7b7c275UL, 0xfdfd1ce1UL, 0x9393ae3dUL, 0x26266a4cUL,
1930      0x36365a6cUL, 0x3f3f417eUL, 0xf7f702f5UL, 0xcccc4f83UL,
1931      0x34345c68UL, 0xa5a5f451UL, 0xe5e534d1UL, 0xf1f108f9UL,
1932      0x717193e2UL, 0xd8d873abUL, 0x31315362UL, 0x15153f2aUL,
1933      0x04040c08UL, 0xc7c75295UL, 0x23236546UL, 0xc3c35e9dUL,
1934      0x18182830UL, 0x9696a137UL, 0x05050f0aUL, 0x9a9ab52fUL,
1935      0x0707090eUL, 0x12123624UL, 0x80809b1bUL, 0xe2e23ddfUL,
1936      0xebeb26cdUL, 0x2727694eUL, 0xb2b2cd7fUL, 0x75759feaUL,
1937      0x09091b12UL, 0x83839e1dUL, 0x2c2c7458UL, 0x1a1a2e34UL,
1938      0x1b1b2d36UL, 0x6e6eb2dcUL, 0x5a5aeeb4UL, 0xa0a0fb5bUL,
1939      0x5252f6a4UL, 0x3b3b4d76UL, 0xd6d661b7UL, 0xb3b3ce7dUL,
1940      0x29297b52UL, 0xe3e33eddUL, 0x2f2f715eUL, 0x84849713UL,
1941      0x5353f5a6UL, 0xd1d168b9UL, 0x00000000UL, 0xeded2cc1UL,
1942      0x20206040UL, 0xfcfc1fe3UL, 0xb1b1c879UL, 0x5b5bedb6UL,
1943      0x6a6abed4UL, 0xcbcb468dUL, 0xbebed967UL, 0x39394b72UL,
1944      0x4a4ade94UL, 0x4c4cd498UL, 0x5858e8b0UL, 0xcfcf4a85UL,
1945      0xd0d06bbbUL, 0xefef2ac5UL, 0xaaaae54fUL, 0xfbfb16edUL,
1946      0x4343c586UL, 0x4d4dd79aUL, 0x33335566UL, 0x85859411UL,
1947      0x4545cf8aUL, 0xf9f910e9UL, 0x02020604UL, 0x7f7f81feUL,
1948      0x5050f0a0UL, 0x3c3c4478UL, 0x9f9fba25UL, 0xa8a8e34bUL,
1949      0x5151f3a2UL, 0xa3a3fe5dUL, 0x4040c080UL, 0x8f8f8a05UL,
1950      0x9292ad3fUL, 0x9d9dbc21UL, 0x38384870UL, 0xf5f504f1UL,
1951      0xbcbcdf63UL, 0xb6b6c177UL, 0xdada75afUL, 0x21216342UL,
1952      0x10103020UL, 0xffff1ae5UL, 0xf3f30efdUL, 0xd2d26dbfUL,
1953      0xcdcd4c81UL, 0x0c0c1418UL, 0x13133526UL, 0xecec2fc3UL,
1954      0x5f5fe1beUL, 0x9797a235UL, 0x4444cc88UL, 0x1717392eUL,
1955      0xc4c45793UL, 0xa7a7f255UL, 0x7e7e82fcUL, 0x3d3d477aUL,
1956      0x6464acc8UL, 0x5d5de7baUL, 0x19192b32UL, 0x737395e6UL,
1957      0x6060a0c0UL, 0x81819819UL, 0x4f4fd19eUL, 0xdcdc7fa3UL,
1958      0x22226644UL, 0x2a2a7e54UL, 0x9090ab3bUL, 0x8888830bUL,
1959      0x4646ca8cUL, 0xeeee29c7UL, 0xb8b8d36bUL, 0x14143c28UL,
1960      0xdede79a7UL, 0x5e5ee2bcUL, 0x0b0b1d16UL, 0xdbdb76adUL,
1961      0xe0e03bdbUL, 0x32325664UL, 0x3a3a4e74UL, 0x0a0a1e14UL,
1962      0x4949db92UL, 0x06060a0cUL, 0x24246c48UL, 0x5c5ce4b8UL,
1963      0xc2c25d9fUL, 0xd3d36ebdUL, 0xacacef43UL, 0x6262a6c4UL,
1964      0x9191a839UL, 0x9595a431UL, 0xe4e437d3UL, 0x79798bf2UL,
1965      0xe7e732d5UL, 0xc8c8438bUL, 0x3737596eUL, 0x6d6db7daUL,
1966      0x8d8d8c01UL, 0xd5d564b1UL, 0x4e4ed29cUL, 0xa9a9e049UL,
1967      0x6c6cb4d8UL, 0x5656faacUL, 0xf4f407f3UL, 0xeaea25cfUL,
1968      0x6565afcaUL, 0x7a7a8ef4UL, 0xaeaee947UL, 0x08081810UL,
1969      0xbabad56fUL, 0x787888f0UL, 0x25256f4aUL, 0x2e2e725cUL,
1970      0x1c1c2438UL, 0xa6a6f157UL, 0xb4b4c773UL, 0xc6c65197UL,
1971      0xe8e823cbUL, 0xdddd7ca1UL, 0x74749ce8UL, 0x1f1f213eUL,
1972      0x4b4bdd96UL, 0xbdbddc61UL, 0x8b8b860dUL, 0x8a8a850fUL,
1973      0x707090e0UL, 0x3e3e427cUL, 0xb5b5c471UL, 0x6666aaccUL,
1974      0x4848d890UL, 0x03030506UL, 0xf6f601f7UL, 0x0e0e121cUL,
1975      0x6161a3c2UL, 0x35355f6aUL, 0x5757f9aeUL, 0xb9b9d069UL,
1976      0x86869117UL, 0xc1c15899UL, 0x1d1d273aUL, 0x9e9eb927UL,
1977      0xe1e138d9UL, 0xf8f813ebUL, 0x9898b32bUL, 0x11113322UL,
1978      0x6969bbd2UL, 0xd9d970a9UL, 0x8e8e8907UL, 0x9494a733UL,
1979      0x9b9bb62dUL, 0x1e1e223cUL, 0x87879215UL, 0xe9e920c9UL,
1980      0xcece4987UL, 0x5555ffaaUL, 0x28287850UL, 0xdfdf7aa5UL,
1981      0x8c8c8f03UL, 0xa1a1f859UL, 0x89898009UL, 0x0d0d171aUL,
1982      0xbfbfda65UL, 0xe6e631d7UL, 0x4242c684UL, 0x6868b8d0UL,
1983      0x4141c382UL, 0x9999b029UL, 0x2d2d775aUL, 0x0f0f111eUL,
1984      0xb0b0cb7bUL, 0x5454fca8UL, 0xbbbbd66dUL, 0x16163a2cUL
1985  };
1986  const SWord32 s560 = s0 ^ s4;
1987  const SWord8  s561 = (SWord8) (s560 >> 24);
1988  const SWord32 s562 = table1[s561];
1989  const SWord32 s818 = s1 ^ s5;
1990  const SWord8  s819 = (SWord8) (s818 >> 16);
1991  const SWord32 s820 = table2[s819];
1992  const SWord32 s821 = s562 ^ s820;
1993  const SWord32 s1077 = s2 ^ s6;
1994  const SWord8  s1078 = (SWord8) (s1077 >> 8);
1995  const SWord32 s1079 = table3[s1078];
1996  const SWord32 s1080 = s821 ^ s1079;
1997  const SWord32 s1336 = s3 ^ s7;
1998  const SWord8  s1337 = (SWord8) s1336;
1999  const SWord32 s1338 = table4[s1337];
2000  const SWord32 s1339 = s1080 ^ s1338;
2001  const SWord32 s1340 = s8 ^ s1339;
2002  const SWord8  s1341 = (SWord8) (s1340 >> 24);
2003  const SWord32 s1342 = table1[s1341];
2004  const SWord8  s1343 = (SWord8) (s818 >> 24);
2005  const SWord32 s1344 = table1[s1343];
2006  const SWord8  s1345 = (SWord8) (s1077 >> 16);
2007  const SWord32 s1346 = table2[s1345];
2008  const SWord32 s1347 = s1344 ^ s1346;
2009  const SWord8  s1348 = (SWord8) (s1336 >> 8);
2010  const SWord32 s1349 = table3[s1348];
2011  const SWord32 s1350 = s1347 ^ s1349;
2012  const SWord8  s1351 = (SWord8) s560;
2013  const SWord32 s1352 = table4[s1351];
2014  const SWord32 s1353 = s1350 ^ s1352;
2015  const SWord32 s1354 = s9 ^ s1353;
2016  const SWord8  s1355 = (SWord8) (s1354 >> 16);
2017  const SWord32 s1356 = table2[s1355];
2018  const SWord32 s1357 = s1342 ^ s1356;
2019  const SWord8  s1358 = (SWord8) (s1077 >> 24);
2020  const SWord32 s1359 = table1[s1358];
2021  const SWord8  s1360 = (SWord8) (s1336 >> 16);
2022  const SWord32 s1361 = table2[s1360];
2023  const SWord32 s1362 = s1359 ^ s1361;
2024  const SWord8  s1363 = (SWord8) (s560 >> 8);
2025  const SWord32 s1364 = table3[s1363];
2026  const SWord32 s1365 = s1362 ^ s1364;
2027  const SWord8  s1366 = (SWord8) s818;
2028  const SWord32 s1367 = table4[s1366];
2029  const SWord32 s1368 = s1365 ^ s1367;
2030  const SWord32 s1369 = s10 ^ s1368;
2031  const SWord8  s1370 = (SWord8) (s1369 >> 8);
2032  const SWord32 s1371 = table3[s1370];
2033  const SWord32 s1372 = s1357 ^ s1371;
2034  const SWord8  s1373 = (SWord8) (s1336 >> 24);
2035  const SWord32 s1374 = table1[s1373];
2036  const SWord8  s1375 = (SWord8) (s560 >> 16);
2037  const SWord32 s1376 = table2[s1375];
2038  const SWord32 s1377 = s1374 ^ s1376;
2039  const SWord8  s1378 = (SWord8) (s818 >> 8);
2040  const SWord32 s1379 = table3[s1378];
2041  const SWord32 s1380 = s1377 ^ s1379;
2042  const SWord8  s1381 = (SWord8) s1077;
2043  const SWord32 s1382 = table4[s1381];
2044  const SWord32 s1383 = s1380 ^ s1382;
2045  const SWord32 s1384 = s11 ^ s1383;
2046  const SWord8  s1385 = (SWord8) s1384;
2047  const SWord32 s1386 = table4[s1385];
2048  const SWord32 s1387 = s1372 ^ s1386;
2049  const SWord32 s1388 = s12 ^ s1387;
2050  const SWord8  s1389 = (SWord8) (s1388 >> 24);
2051  const SWord32 s1390 = table1[s1389];
2052  const SWord8  s1391 = (SWord8) (s1354 >> 24);
2053  const SWord32 s1392 = table1[s1391];
2054  const SWord8  s1393 = (SWord8) (s1369 >> 16);
2055  const SWord32 s1394 = table2[s1393];
2056  const SWord32 s1395 = s1392 ^ s1394;
2057  const SWord8  s1396 = (SWord8) (s1384 >> 8);
2058  const SWord32 s1397 = table3[s1396];
2059  const SWord32 s1398 = s1395 ^ s1397;
2060  const SWord8  s1399 = (SWord8) s1340;
2061  const SWord32 s1400 = table4[s1399];
2062  const SWord32 s1401 = s1398 ^ s1400;
2063  const SWord32 s1402 = s13 ^ s1401;
2064  const SWord8  s1403 = (SWord8) (s1402 >> 16);
2065  const SWord32 s1404 = table2[s1403];
2066  const SWord32 s1405 = s1390 ^ s1404;
2067  const SWord8  s1406 = (SWord8) (s1369 >> 24);
2068  const SWord32 s1407 = table1[s1406];
2069  const SWord8  s1408 = (SWord8) (s1384 >> 16);
2070  const SWord32 s1409 = table2[s1408];
2071  const SWord32 s1410 = s1407 ^ s1409;
2072  const SWord8  s1411 = (SWord8) (s1340 >> 8);
2073  const SWord32 s1412 = table3[s1411];
2074  const SWord32 s1413 = s1410 ^ s1412;
2075  const SWord8  s1414 = (SWord8) s1354;
2076  const SWord32 s1415 = table4[s1414];
2077  const SWord32 s1416 = s1413 ^ s1415;
2078  const SWord32 s1417 = s14 ^ s1416;
2079  const SWord8  s1418 = (SWord8) (s1417 >> 8);
2080  const SWord32 s1419 = table3[s1418];
2081  const SWord32 s1420 = s1405 ^ s1419;
2082  const SWord8  s1421 = (SWord8) (s1384 >> 24);
2083  const SWord32 s1422 = table1[s1421];
2084  const SWord8  s1423 = (SWord8) (s1340 >> 16);
2085  const SWord32 s1424 = table2[s1423];
2086  const SWord32 s1425 = s1422 ^ s1424;
2087  const SWord8  s1426 = (SWord8) (s1354 >> 8);
2088  const SWord32 s1427 = table3[s1426];
2089  const SWord32 s1428 = s1425 ^ s1427;
2090  const SWord8  s1429 = (SWord8) s1369;
2091  const SWord32 s1430 = table4[s1429];
2092  const SWord32 s1431 = s1428 ^ s1430;
2093  const SWord32 s1432 = s15 ^ s1431;
2094  const SWord8  s1433 = (SWord8) s1432;
2095  const SWord32 s1434 = table4[s1433];
2096  const SWord32 s1435 = s1420 ^ s1434;
2097  const SWord32 s1436 = s16 ^ s1435;
2098  const SWord8  s1437 = (SWord8) (s1436 >> 24);
2099  const SWord32 s1438 = table1[s1437];
2100  const SWord8  s1439 = (SWord8) (s1402 >> 24);
2101  const SWord32 s1440 = table1[s1439];
2102  const SWord8  s1441 = (SWord8) (s1417 >> 16);
2103  const SWord32 s1442 = table2[s1441];
2104  const SWord32 s1443 = s1440 ^ s1442;
2105  const SWord8  s1444 = (SWord8) (s1432 >> 8);
2106  const SWord32 s1445 = table3[s1444];
2107  const SWord32 s1446 = s1443 ^ s1445;
2108  const SWord8  s1447 = (SWord8) s1388;
2109  const SWord32 s1448 = table4[s1447];
2110  const SWord32 s1449 = s1446 ^ s1448;
2111  const SWord32 s1450 = s17 ^ s1449;
2112  const SWord8  s1451 = (SWord8) (s1450 >> 16);
2113  const SWord32 s1452 = table2[s1451];
2114  const SWord32 s1453 = s1438 ^ s1452;
2115  const SWord8  s1454 = (SWord8) (s1417 >> 24);
2116  const SWord32 s1455 = table1[s1454];
2117  const SWord8  s1456 = (SWord8) (s1432 >> 16);
2118  const SWord32 s1457 = table2[s1456];
2119  const SWord32 s1458 = s1455 ^ s1457;
2120  const SWord8  s1459 = (SWord8) (s1388 >> 8);
2121  const SWord32 s1460 = table3[s1459];
2122  const SWord32 s1461 = s1458 ^ s1460;
2123  const SWord8  s1462 = (SWord8) s1402;
2124  const SWord32 s1463 = table4[s1462];
2125  const SWord32 s1464 = s1461 ^ s1463;
2126  const SWord32 s1465 = s18 ^ s1464;
2127  const SWord8  s1466 = (SWord8) (s1465 >> 8);
2128  const SWord32 s1467 = table3[s1466];
2129  const SWord32 s1468 = s1453 ^ s1467;
2130  const SWord8  s1469 = (SWord8) (s1432 >> 24);
2131  const SWord32 s1470 = table1[s1469];
2132  const SWord8  s1471 = (SWord8) (s1388 >> 16);
2133  const SWord32 s1472 = table2[s1471];
2134  const SWord32 s1473 = s1470 ^ s1472;
2135  const SWord8  s1474 = (SWord8) (s1402 >> 8);
2136  const SWord32 s1475 = table3[s1474];
2137  const SWord32 s1476 = s1473 ^ s1475;
2138  const SWord8  s1477 = (SWord8) s1417;
2139  const SWord32 s1478 = table4[s1477];
2140  const SWord32 s1479 = s1476 ^ s1478;
2141  const SWord32 s1480 = s19 ^ s1479;
2142  const SWord8  s1481 = (SWord8) s1480;
2143  const SWord32 s1482 = table4[s1481];
2144  const SWord32 s1483 = s1468 ^ s1482;
2145  const SWord32 s1484 = s20 ^ s1483;
2146  const SWord8  s1485 = (SWord8) (s1484 >> 24);
2147  const SWord32 s1486 = table1[s1485];
2148  const SWord8  s1487 = (SWord8) (s1450 >> 24);
2149  const SWord32 s1488 = table1[s1487];
2150  const SWord8  s1489 = (SWord8) (s1465 >> 16);
2151  const SWord32 s1490 = table2[s1489];
2152  const SWord32 s1491 = s1488 ^ s1490;
2153  const SWord8  s1492 = (SWord8) (s1480 >> 8);
2154  const SWord32 s1493 = table3[s1492];
2155  const SWord32 s1494 = s1491 ^ s1493;
2156  const SWord8  s1495 = (SWord8) s1436;
2157  const SWord32 s1496 = table4[s1495];
2158  const SWord32 s1497 = s1494 ^ s1496;
2159  const SWord32 s1498 = s21 ^ s1497;
2160  const SWord8  s1499 = (SWord8) (s1498 >> 16);
2161  const SWord32 s1500 = table2[s1499];
2162  const SWord32 s1501 = s1486 ^ s1500;
2163  const SWord8  s1502 = (SWord8) (s1465 >> 24);
2164  const SWord32 s1503 = table1[s1502];
2165  const SWord8  s1504 = (SWord8) (s1480 >> 16);
2166  const SWord32 s1505 = table2[s1504];
2167  const SWord32 s1506 = s1503 ^ s1505;
2168  const SWord8  s1507 = (SWord8) (s1436 >> 8);
2169  const SWord32 s1508 = table3[s1507];
2170  const SWord32 s1509 = s1506 ^ s1508;
2171  const SWord8  s1510 = (SWord8) s1450;
2172  const SWord32 s1511 = table4[s1510];
2173  const SWord32 s1512 = s1509 ^ s1511;
2174  const SWord32 s1513 = s22 ^ s1512;
2175  const SWord8  s1514 = (SWord8) (s1513 >> 8);
2176  const SWord32 s1515 = table3[s1514];
2177  const SWord32 s1516 = s1501 ^ s1515;
2178  const SWord8  s1517 = (SWord8) (s1480 >> 24);
2179  const SWord32 s1518 = table1[s1517];
2180  const SWord8  s1519 = (SWord8) (s1436 >> 16);
2181  const SWord32 s1520 = table2[s1519];
2182  const SWord32 s1521 = s1518 ^ s1520;
2183  const SWord8  s1522 = (SWord8) (s1450 >> 8);
2184  const SWord32 s1523 = table3[s1522];
2185  const SWord32 s1524 = s1521 ^ s1523;
2186  const SWord8  s1525 = (SWord8) s1465;
2187  const SWord32 s1526 = table4[s1525];
2188  const SWord32 s1527 = s1524 ^ s1526;
2189  const SWord32 s1528 = s23 ^ s1527;
2190  const SWord8  s1529 = (SWord8) s1528;
2191  const SWord32 s1530 = table4[s1529];
2192  const SWord32 s1531 = s1516 ^ s1530;
2193  const SWord32 s1532 = s24 ^ s1531;
2194  const SWord8  s1533 = (SWord8) (s1532 >> 24);
2195  const SWord32 s1534 = table1[s1533];
2196  const SWord8  s1535 = (SWord8) (s1498 >> 24);
2197  const SWord32 s1536 = table1[s1535];
2198  const SWord8  s1537 = (SWord8) (s1513 >> 16);
2199  const SWord32 s1538 = table2[s1537];
2200  const SWord32 s1539 = s1536 ^ s1538;
2201  const SWord8  s1540 = (SWord8) (s1528 >> 8);
2202  const SWord32 s1541 = table3[s1540];
2203  const SWord32 s1542 = s1539 ^ s1541;
2204  const SWord8  s1543 = (SWord8) s1484;
2205  const SWord32 s1544 = table4[s1543];
2206  const SWord32 s1545 = s1542 ^ s1544;
2207  const SWord32 s1546 = s25 ^ s1545;
2208  const SWord8  s1547 = (SWord8) (s1546 >> 16);
2209  const SWord32 s1548 = table2[s1547];
2210  const SWord32 s1549 = s1534 ^ s1548;
2211  const SWord8  s1550 = (SWord8) (s1513 >> 24);
2212  const SWord32 s1551 = table1[s1550];
2213  const SWord8  s1552 = (SWord8) (s1528 >> 16);
2214  const SWord32 s1553 = table2[s1552];
2215  const SWord32 s1554 = s1551 ^ s1553;
2216  const SWord8  s1555 = (SWord8) (s1484 >> 8);
2217  const SWord32 s1556 = table3[s1555];
2218  const SWord32 s1557 = s1554 ^ s1556;
2219  const SWord8  s1558 = (SWord8) s1498;
2220  const SWord32 s1559 = table4[s1558];
2221  const SWord32 s1560 = s1557 ^ s1559;
2222  const SWord32 s1561 = s26 ^ s1560;
2223  const SWord8  s1562 = (SWord8) (s1561 >> 8);
2224  const SWord32 s1563 = table3[s1562];
2225  const SWord32 s1564 = s1549 ^ s1563;
2226  const SWord8  s1565 = (SWord8) (s1528 >> 24);
2227  const SWord32 s1566 = table1[s1565];
2228  const SWord8  s1567 = (SWord8) (s1484 >> 16);
2229  const SWord32 s1568 = table2[s1567];
2230  const SWord32 s1569 = s1566 ^ s1568;
2231  const SWord8  s1570 = (SWord8) (s1498 >> 8);
2232  const SWord32 s1571 = table3[s1570];
2233  const SWord32 s1572 = s1569 ^ s1571;
2234  const SWord8  s1573 = (SWord8) s1513;
2235  const SWord32 s1574 = table4[s1573];
2236  const SWord32 s1575 = s1572 ^ s1574;
2237  const SWord32 s1576 = s27 ^ s1575;
2238  const SWord8  s1577 = (SWord8) s1576;
2239  const SWord32 s1578 = table4[s1577];
2240  const SWord32 s1579 = s1564 ^ s1578;
2241  const SWord32 s1580 = s28 ^ s1579;
2242  const SWord8  s1581 = (SWord8) (s1580 >> 24);
2243  const SWord32 s1582 = table1[s1581];
2244  const SWord8  s1583 = (SWord8) (s1546 >> 24);
2245  const SWord32 s1584 = table1[s1583];
2246  const SWord8  s1585 = (SWord8) (s1561 >> 16);
2247  const SWord32 s1586 = table2[s1585];
2248  const SWord32 s1587 = s1584 ^ s1586;
2249  const SWord8  s1588 = (SWord8) (s1576 >> 8);
2250  const SWord32 s1589 = table3[s1588];
2251  const SWord32 s1590 = s1587 ^ s1589;
2252  const SWord8  s1591 = (SWord8) s1532;
2253  const SWord32 s1592 = table4[s1591];
2254  const SWord32 s1593 = s1590 ^ s1592;
2255  const SWord32 s1594 = s29 ^ s1593;
2256  const SWord8  s1595 = (SWord8) (s1594 >> 16);
2257  const SWord32 s1596 = table2[s1595];
2258  const SWord32 s1597 = s1582 ^ s1596;
2259  const SWord8  s1598 = (SWord8) (s1561 >> 24);
2260  const SWord32 s1599 = table1[s1598];
2261  const SWord8  s1600 = (SWord8) (s1576 >> 16);
2262  const SWord32 s1601 = table2[s1600];
2263  const SWord32 s1602 = s1599 ^ s1601;
2264  const SWord8  s1603 = (SWord8) (s1532 >> 8);
2265  const SWord32 s1604 = table3[s1603];
2266  const SWord32 s1605 = s1602 ^ s1604;
2267  const SWord8  s1606 = (SWord8) s1546;
2268  const SWord32 s1607 = table4[s1606];
2269  const SWord32 s1608 = s1605 ^ s1607;
2270  const SWord32 s1609 = s30 ^ s1608;
2271  const SWord8  s1610 = (SWord8) (s1609 >> 8);
2272  const SWord32 s1611 = table3[s1610];
2273  const SWord32 s1612 = s1597 ^ s1611;
2274  const SWord8  s1613 = (SWord8) (s1576 >> 24);
2275  const SWord32 s1614 = table1[s1613];
2276  const SWord8  s1615 = (SWord8) (s1532 >> 16);
2277  const SWord32 s1616 = table2[s1615];
2278  const SWord32 s1617 = s1614 ^ s1616;
2279  const SWord8  s1618 = (SWord8) (s1546 >> 8);
2280  const SWord32 s1619 = table3[s1618];
2281  const SWord32 s1620 = s1617 ^ s1619;
2282  const SWord8  s1621 = (SWord8) s1561;
2283  const SWord32 s1622 = table4[s1621];
2284  const SWord32 s1623 = s1620 ^ s1622;
2285  const SWord32 s1624 = s31 ^ s1623;
2286  const SWord8  s1625 = (SWord8) s1624;
2287  const SWord32 s1626 = table4[s1625];
2288  const SWord32 s1627 = s1612 ^ s1626;
2289  const SWord32 s1628 = s32 ^ s1627;
2290  const SWord8  s1629 = (SWord8) (s1628 >> 24);
2291  const SWord32 s1630 = table1[s1629];
2292  const SWord8  s1631 = (SWord8) (s1594 >> 24);
2293  const SWord32 s1632 = table1[s1631];
2294  const SWord8  s1633 = (SWord8) (s1609 >> 16);
2295  const SWord32 s1634 = table2[s1633];
2296  const SWord32 s1635 = s1632 ^ s1634;
2297  const SWord8  s1636 = (SWord8) (s1624 >> 8);
2298  const SWord32 s1637 = table3[s1636];
2299  const SWord32 s1638 = s1635 ^ s1637;
2300  const SWord8  s1639 = (SWord8) s1580;
2301  const SWord32 s1640 = table4[s1639];
2302  const SWord32 s1641 = s1638 ^ s1640;
2303  const SWord32 s1642 = s33 ^ s1641;
2304  const SWord8  s1643 = (SWord8) (s1642 >> 16);
2305  const SWord32 s1644 = table2[s1643];
2306  const SWord32 s1645 = s1630 ^ s1644;
2307  const SWord8  s1646 = (SWord8) (s1609 >> 24);
2308  const SWord32 s1647 = table1[s1646];
2309  const SWord8  s1648 = (SWord8) (s1624 >> 16);
2310  const SWord32 s1649 = table2[s1648];
2311  const SWord32 s1650 = s1647 ^ s1649;
2312  const SWord8  s1651 = (SWord8) (s1580 >> 8);
2313  const SWord32 s1652 = table3[s1651];
2314  const SWord32 s1653 = s1650 ^ s1652;
2315  const SWord8  s1654 = (SWord8) s1594;
2316  const SWord32 s1655 = table4[s1654];
2317  const SWord32 s1656 = s1653 ^ s1655;
2318  const SWord32 s1657 = s34 ^ s1656;
2319  const SWord8  s1658 = (SWord8) (s1657 >> 8);
2320  const SWord32 s1659 = table3[s1658];
2321  const SWord32 s1660 = s1645 ^ s1659;
2322  const SWord8  s1661 = (SWord8) (s1624 >> 24);
2323  const SWord32 s1662 = table1[s1661];
2324  const SWord8  s1663 = (SWord8) (s1580 >> 16);
2325  const SWord32 s1664 = table2[s1663];
2326  const SWord32 s1665 = s1662 ^ s1664;
2327  const SWord8  s1666 = (SWord8) (s1594 >> 8);
2328  const SWord32 s1667 = table3[s1666];
2329  const SWord32 s1668 = s1665 ^ s1667;
2330  const SWord8  s1669 = (SWord8) s1609;
2331  const SWord32 s1670 = table4[s1669];
2332  const SWord32 s1671 = s1668 ^ s1670;
2333  const SWord32 s1672 = s35 ^ s1671;
2334  const SWord8  s1673 = (SWord8) s1672;
2335  const SWord32 s1674 = table4[s1673];
2336  const SWord32 s1675 = s1660 ^ s1674;
2337  const SWord32 s1676 = s36 ^ s1675;
2338  const SWord8  s1677 = (SWord8) (s1676 >> 24);
2339  const SWord32 s1678 = table1[s1677];
2340  const SWord8  s1679 = (SWord8) (s1642 >> 24);
2341  const SWord32 s1680 = table1[s1679];
2342  const SWord8  s1681 = (SWord8) (s1657 >> 16);
2343  const SWord32 s1682 = table2[s1681];
2344  const SWord32 s1683 = s1680 ^ s1682;
2345  const SWord8  s1684 = (SWord8) (s1672 >> 8);
2346  const SWord32 s1685 = table3[s1684];
2347  const SWord32 s1686 = s1683 ^ s1685;
2348  const SWord8  s1687 = (SWord8) s1628;
2349  const SWord32 s1688 = table4[s1687];
2350  const SWord32 s1689 = s1686 ^ s1688;
2351  const SWord32 s1690 = s37 ^ s1689;
2352  const SWord8  s1691 = (SWord8) (s1690 >> 16);
2353  const SWord32 s1692 = table2[s1691];
2354  const SWord32 s1693 = s1678 ^ s1692;
2355  const SWord8  s1694 = (SWord8) (s1657 >> 24);
2356  const SWord32 s1695 = table1[s1694];
2357  const SWord8  s1696 = (SWord8) (s1672 >> 16);
2358  const SWord32 s1697 = table2[s1696];
2359  const SWord32 s1698 = s1695 ^ s1697;
2360  const SWord8  s1699 = (SWord8) (s1628 >> 8);
2361  const SWord32 s1700 = table3[s1699];
2362  const SWord32 s1701 = s1698 ^ s1700;
2363  const SWord8  s1702 = (SWord8) s1642;
2364  const SWord32 s1703 = table4[s1702];
2365  const SWord32 s1704 = s1701 ^ s1703;
2366  const SWord32 s1705 = s38 ^ s1704;
2367  const SWord8  s1706 = (SWord8) (s1705 >> 8);
2368  const SWord32 s1707 = table3[s1706];
2369  const SWord32 s1708 = s1693 ^ s1707;
2370  const SWord8  s1709 = (SWord8) (s1672 >> 24);
2371  const SWord32 s1710 = table1[s1709];
2372  const SWord8  s1711 = (SWord8) (s1628 >> 16);
2373  const SWord32 s1712 = table2[s1711];
2374  const SWord32 s1713 = s1710 ^ s1712;
2375  const SWord8  s1714 = (SWord8) (s1642 >> 8);
2376  const SWord32 s1715 = table3[s1714];
2377  const SWord32 s1716 = s1713 ^ s1715;
2378  const SWord8  s1717 = (SWord8) s1657;
2379  const SWord32 s1718 = table4[s1717];
2380  const SWord32 s1719 = s1716 ^ s1718;
2381  const SWord32 s1720 = s39 ^ s1719;
2382  const SWord8  s1721 = (SWord8) s1720;
2383  const SWord32 s1722 = table4[s1721];
2384  const SWord32 s1723 = s1708 ^ s1722;
2385  const SWord32 s1724 = s40 ^ s1723;
2386  const SWord8  s1725 = (SWord8) (s1724 >> 24);
2387  const SWord8  s1726 = table0[s1725];
2388  const SWord8  s1727 = (SWord8) (s1690 >> 24);
2389  const SWord32 s1728 = table1[s1727];
2390  const SWord8  s1729 = (SWord8) (s1705 >> 16);
2391  const SWord32 s1730 = table2[s1729];
2392  const SWord32 s1731 = s1728 ^ s1730;
2393  const SWord8  s1732 = (SWord8) (s1720 >> 8);
2394  const SWord32 s1733 = table3[s1732];
2395  const SWord32 s1734 = s1731 ^ s1733;
2396  const SWord8  s1735 = (SWord8) s1676;
2397  const SWord32 s1736 = table4[s1735];
2398  const SWord32 s1737 = s1734 ^ s1736;
2399  const SWord32 s1738 = s41 ^ s1737;
2400  const SWord8  s1739 = (SWord8) (s1738 >> 16);
2401  const SWord8  s1740 = table0[s1739];
2402  const SWord16 s1741 = (((SWord16) s1726) << 8) | ((SWord16) s1740);
2403  const SWord8  s1742 = (SWord8) (s1705 >> 24);
2404  const SWord32 s1743 = table1[s1742];
2405  const SWord8  s1744 = (SWord8) (s1720 >> 16);
2406  const SWord32 s1745 = table2[s1744];
2407  const SWord32 s1746 = s1743 ^ s1745;
2408  const SWord8  s1747 = (SWord8) (s1676 >> 8);
2409  const SWord32 s1748 = table3[s1747];
2410  const SWord32 s1749 = s1746 ^ s1748;
2411  const SWord8  s1750 = (SWord8) s1690;
2412  const SWord32 s1751 = table4[s1750];
2413  const SWord32 s1752 = s1749 ^ s1751;
2414  const SWord32 s1753 = s42 ^ s1752;
2415  const SWord8  s1754 = (SWord8) (s1753 >> 8);
2416  const SWord8  s1755 = table0[s1754];
2417  const SWord8  s1756 = (SWord8) (s1720 >> 24);
2418  const SWord32 s1757 = table1[s1756];
2419  const SWord8  s1758 = (SWord8) (s1676 >> 16);
2420  const SWord32 s1759 = table2[s1758];
2421  const SWord32 s1760 = s1757 ^ s1759;
2422  const SWord8  s1761 = (SWord8) (s1690 >> 8);
2423  const SWord32 s1762 = table3[s1761];
2424  const SWord32 s1763 = s1760 ^ s1762;
2425  const SWord8  s1764 = (SWord8) s1705;
2426  const SWord32 s1765 = table4[s1764];
2427  const SWord32 s1766 = s1763 ^ s1765;
2428  const SWord32 s1767 = s43 ^ s1766;
2429  const SWord8  s1768 = (SWord8) s1767;
2430  const SWord8  s1769 = table0[s1768];
2431  const SWord16 s1770 = (((SWord16) s1755) << 8) | ((SWord16) s1769);
2432  const SWord32 s1771 = (((SWord32) s1741) << 16) | ((SWord32) s1770);
2433  const SWord32 s1772 = s44 ^ s1771;
2434  const SWord8  s1773 = (SWord8) (s1738 >> 24);
2435  const SWord8  s1774 = table0[s1773];
2436  const SWord8  s1775 = (SWord8) (s1753 >> 16);
2437  const SWord8  s1776 = table0[s1775];
2438  const SWord16 s1777 = (((SWord16) s1774) << 8) | ((SWord16) s1776);
2439  const SWord8  s1778 = (SWord8) (s1767 >> 8);
2440  const SWord8  s1779 = table0[s1778];
2441  const SWord8  s1780 = (SWord8) s1724;
2442  const SWord8  s1781 = table0[s1780];
2443  const SWord16 s1782 = (((SWord16) s1779) << 8) | ((SWord16) s1781);
2444  const SWord32 s1783 = (((SWord32) s1777) << 16) | ((SWord32) s1782);
2445  const SWord32 s1784 = s45 ^ s1783;
2446  const SWord8  s1785 = (SWord8) (s1753 >> 24);
2447  const SWord8  s1786 = table0[s1785];
2448  const SWord8  s1787 = (SWord8) (s1767 >> 16);
2449  const SWord8  s1788 = table0[s1787];
2450  const SWord16 s1789 = (((SWord16) s1786) << 8) | ((SWord16) s1788);
2451  const SWord8  s1790 = (SWord8) (s1724 >> 8);
2452  const SWord8  s1791 = table0[s1790];
2453  const SWord8  s1792 = (SWord8) s1738;
2454  const SWord8  s1793 = table0[s1792];
2455  const SWord16 s1794 = (((SWord16) s1791) << 8) | ((SWord16) s1793);
2456  const SWord32 s1795 = (((SWord32) s1789) << 16) | ((SWord32) s1794);
2457  const SWord32 s1796 = s46 ^ s1795;
2458  const SWord8  s1797 = (SWord8) (s1767 >> 24);
2459  const SWord8  s1798 = table0[s1797];
2460  const SWord8  s1799 = (SWord8) (s1724 >> 16);
2461  const SWord8  s1800 = table0[s1799];
2462  const SWord16 s1801 = (((SWord16) s1798) << 8) | ((SWord16) s1800);
2463  const SWord8  s1802 = (SWord8) (s1738 >> 8);
2464  const SWord8  s1803 = table0[s1802];
2465  const SWord8  s1804 = (SWord8) s1753;
2466  const SWord8  s1805 = table0[s1804];
2467  const SWord16 s1806 = (((SWord16) s1803) << 8) | ((SWord16) s1805);
2468  const SWord32 s1807 = (((SWord32) s1801) << 16) | ((SWord32) s1806);
2469  const SWord32 s1808 = s47 ^ s1807;
2470
2471  ct[0] = s1772;
2472  ct[1] = s1784;
2473  ct[2] = s1796;
2474  ct[3] = s1808;
2475}
2476== END: "aes128BlockEncrypt.c" ==================
2477== BEGIN: "aes128BlockDecrypt.c" ================
2478/* File: "aes128BlockDecrypt.c". Automatically generated by SBV. Do not edit! */
2479
2480#include "aes128Lib.h"
2481
2482void aes128BlockDecrypt(const SWord32 *ct, const SWord32 *xkey,
2483                        SWord32 *pt)
2484{
2485  const SWord32 s0 = ct[0];
2486  const SWord32 s1 = ct[1];
2487  const SWord32 s2 = ct[2];
2488  const SWord32 s3 = ct[3];
2489  const SWord32 s4 = xkey[0];
2490  const SWord32 s5 = xkey[1];
2491  const SWord32 s6 = xkey[2];
2492  const SWord32 s7 = xkey[3];
2493  const SWord32 s8 = xkey[4];
2494  const SWord32 s9 = xkey[5];
2495  const SWord32 s10 = xkey[6];
2496  const SWord32 s11 = xkey[7];
2497  const SWord32 s12 = xkey[8];
2498  const SWord32 s13 = xkey[9];
2499  const SWord32 s14 = xkey[10];
2500  const SWord32 s15 = xkey[11];
2501  const SWord32 s16 = xkey[12];
2502  const SWord32 s17 = xkey[13];
2503  const SWord32 s18 = xkey[14];
2504  const SWord32 s19 = xkey[15];
2505  const SWord32 s20 = xkey[16];
2506  const SWord32 s21 = xkey[17];
2507  const SWord32 s22 = xkey[18];
2508  const SWord32 s23 = xkey[19];
2509  const SWord32 s24 = xkey[20];
2510  const SWord32 s25 = xkey[21];
2511  const SWord32 s26 = xkey[22];
2512  const SWord32 s27 = xkey[23];
2513  const SWord32 s28 = xkey[24];
2514  const SWord32 s29 = xkey[25];
2515  const SWord32 s30 = xkey[26];
2516  const SWord32 s31 = xkey[27];
2517  const SWord32 s32 = xkey[28];
2518  const SWord32 s33 = xkey[29];
2519  const SWord32 s34 = xkey[30];
2520  const SWord32 s35 = xkey[31];
2521  const SWord32 s36 = xkey[32];
2522  const SWord32 s37 = xkey[33];
2523  const SWord32 s38 = xkey[34];
2524  const SWord32 s39 = xkey[35];
2525  const SWord32 s40 = xkey[36];
2526  const SWord32 s41 = xkey[37];
2527  const SWord32 s42 = xkey[38];
2528  const SWord32 s43 = xkey[39];
2529  const SWord32 s44 = xkey[40];
2530  const SWord32 s45 = xkey[41];
2531  const SWord32 s46 = xkey[42];
2532  const SWord32 s47 = xkey[43];
2533  static const SWord8 table0[] = {
2534       82,   9, 106, 213,  48,  54, 165,  56, 191,  64, 163, 158, 129,
2535      243, 215, 251, 124, 227,  57, 130, 155,  47, 255, 135,  52, 142,
2536       67,  68, 196, 222, 233, 203,  84, 123, 148,  50, 166, 194,  35,
2537       61, 238,  76, 149,  11,  66, 250, 195,  78,   8,  46, 161, 102,
2538       40, 217,  36, 178, 118,  91, 162,  73, 109, 139, 209,  37, 114,
2539      248, 246, 100, 134, 104, 152,  22, 212, 164,  92, 204,  93, 101,
2540      182, 146, 108, 112,  72,  80, 253, 237, 185, 218,  94,  21,  70,
2541       87, 167, 141, 157, 132, 144, 216, 171,   0, 140, 188, 211,  10,
2542      247, 228,  88,   5, 184, 179,  69,   6, 208,  44,  30, 143, 202,
2543       63,  15,   2, 193, 175, 189,   3,   1,  19, 138, 107,  58, 145,
2544       17,  65,  79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230,
2545      115, 150, 172, 116,  34, 231, 173,  53, 133, 226, 249,  55, 232,
2546       28, 117, 223, 110,  71, 241,  26, 113,  29,  41, 197, 137, 111,
2547      183,  98,  14, 170,  24, 190,  27, 252,  86,  62,  75, 198, 210,
2548      121,  32, 154, 219, 192, 254, 120, 205,  90, 244,  31, 221, 168,
2549       51, 136,   7, 199,  49, 177,  18,  16,  89,  39, 128, 236,  95,
2550       96,  81, 127, 169,  25, 181,  74,  13,  45, 229, 122, 159, 147,
2551      201, 156, 239, 160, 224,  59,  77, 174,  42, 245, 176, 200, 235,
2552      187,  60, 131,  83, 153,  97,  23,  43,   4, 126, 186, 119, 214,
2553       38, 225, 105,  20,  99,  85,  33,  12, 125
2554  };
2555  static const SWord32 table1[] = {
2556      0x51f4a750UL, 0x7e416553UL, 0x1a17a4c3UL, 0x3a275e96UL,
2557      0x3bab6bcbUL, 0x1f9d45f1UL, 0xacfa58abUL, 0x4be30393UL,
2558      0x2030fa55UL, 0xad766df6UL, 0x88cc7691UL, 0xf5024c25UL,
2559      0x4fe5d7fcUL, 0xc52acbd7UL, 0x26354480UL, 0xb562a38fUL,
2560      0xdeb15a49UL, 0x25ba1b67UL, 0x45ea0e98UL, 0x5dfec0e1UL,
2561      0xc32f7502UL, 0x814cf012UL, 0x8d4697a3UL, 0x6bd3f9c6UL,
2562      0x038f5fe7UL, 0x15929c95UL, 0xbf6d7aebUL, 0x955259daUL,
2563      0xd4be832dUL, 0x587421d3UL, 0x49e06929UL, 0x8ec9c844UL,
2564      0x75c2896aUL, 0xf48e7978UL, 0x99583e6bUL, 0x27b971ddUL,
2565      0xbee14fb6UL, 0xf088ad17UL, 0xc920ac66UL, 0x7dce3ab4UL,
2566      0x63df4a18UL, 0xe51a3182UL, 0x97513360UL, 0x62537f45UL,
2567      0xb16477e0UL, 0xbb6bae84UL, 0xfe81a01cUL, 0xf9082b94UL,
2568      0x70486858UL, 0x8f45fd19UL, 0x94de6c87UL, 0x527bf8b7UL,
2569      0xab73d323UL, 0x724b02e2UL, 0xe31f8f57UL, 0x6655ab2aUL,
2570      0xb2eb2807UL, 0x2fb5c203UL, 0x86c57b9aUL, 0xd33708a5UL,
2571      0x302887f2UL, 0x23bfa5b2UL, 0x02036abaUL, 0xed16825cUL,
2572      0x8acf1c2bUL, 0xa779b492UL, 0xf307f2f0UL, 0x4e69e2a1UL,
2573      0x65daf4cdUL, 0x0605bed5UL, 0xd134621fUL, 0xc4a6fe8aUL,
2574      0x342e539dUL, 0xa2f355a0UL, 0x058ae132UL, 0xa4f6eb75UL,
2575      0x0b83ec39UL, 0x4060efaaUL, 0x5e719f06UL, 0xbd6e1051UL,
2576      0x3e218af9UL, 0x96dd063dUL, 0xdd3e05aeUL, 0x4de6bd46UL,
2577      0x91548db5UL, 0x71c45d05UL, 0x0406d46fUL, 0x605015ffUL,
2578      0x1998fb24UL, 0xd6bde997UL, 0x894043ccUL, 0x67d99e77UL,
2579      0xb0e842bdUL, 0x07898b88UL, 0xe7195b38UL, 0x79c8eedbUL,
2580      0xa17c0a47UL, 0x7c420fe9UL, 0xf8841ec9UL, 0x00000000UL,
2581      0x09808683UL, 0x322bed48UL, 0x1e1170acUL, 0x6c5a724eUL,
2582      0xfd0efffbUL, 0x0f853856UL, 0x3daed51eUL, 0x362d3927UL,
2583      0x0a0fd964UL, 0x685ca621UL, 0x9b5b54d1UL, 0x24362e3aUL,
2584      0x0c0a67b1UL, 0x9357e70fUL, 0xb4ee96d2UL, 0x1b9b919eUL,
2585      0x80c0c54fUL, 0x61dc20a2UL, 0x5a774b69UL, 0x1c121a16UL,
2586      0xe293ba0aUL, 0xc0a02ae5UL, 0x3c22e043UL, 0x121b171dUL,
2587      0x0e090d0bUL, 0xf28bc7adUL, 0x2db6a8b9UL, 0x141ea9c8UL,
2588      0x57f11985UL, 0xaf75074cUL, 0xee99ddbbUL, 0xa37f60fdUL,
2589      0xf701269fUL, 0x5c72f5bcUL, 0x44663bc5UL, 0x5bfb7e34UL,
2590      0x8b432976UL, 0xcb23c6dcUL, 0xb6edfc68UL, 0xb8e4f163UL,
2591      0xd731dccaUL, 0x42638510UL, 0x13972240UL, 0x84c61120UL,
2592      0x854a247dUL, 0xd2bb3df8UL, 0xaef93211UL, 0xc729a16dUL,
2593      0x1d9e2f4bUL, 0xdcb230f3UL, 0x0d8652ecUL, 0x77c1e3d0UL,
2594      0x2bb3166cUL, 0xa970b999UL, 0x119448faUL, 0x47e96422UL,
2595      0xa8fc8cc4UL, 0xa0f03f1aUL, 0x567d2cd8UL, 0x223390efUL,
2596      0x87494ec7UL, 0xd938d1c1UL, 0x8ccaa2feUL, 0x98d40b36UL,
2597      0xa6f581cfUL, 0xa57ade28UL, 0xdab78e26UL, 0x3fadbfa4UL,
2598      0x2c3a9de4UL, 0x5078920dUL, 0x6a5fcc9bUL, 0x547e4662UL,
2599      0xf68d13c2UL, 0x90d8b8e8UL, 0x2e39f75eUL, 0x82c3aff5UL,
2600      0x9f5d80beUL, 0x69d0937cUL, 0x6fd52da9UL, 0xcf2512b3UL,
2601      0xc8ac993bUL, 0x10187da7UL, 0xe89c636eUL, 0xdb3bbb7bUL,
2602      0xcd267809UL, 0x6e5918f4UL, 0xec9ab701UL, 0x834f9aa8UL,
2603      0xe6956e65UL, 0xaaffe67eUL, 0x21bccf08UL, 0xef15e8e6UL,
2604      0xbae79bd9UL, 0x4a6f36ceUL, 0xea9f09d4UL, 0x29b07cd6UL,
2605      0x31a4b2afUL, 0x2a3f2331UL, 0xc6a59430UL, 0x35a266c0UL,
2606      0x744ebc37UL, 0xfc82caa6UL, 0xe090d0b0UL, 0x33a7d815UL,
2607      0xf104984aUL, 0x41ecdaf7UL, 0x7fcd500eUL, 0x1791f62fUL,
2608      0x764dd68dUL, 0x43efb04dUL, 0xccaa4d54UL, 0xe49604dfUL,
2609      0x9ed1b5e3UL, 0x4c6a881bUL, 0xc12c1fb8UL, 0x4665517fUL,
2610      0x9d5eea04UL, 0x018c355dUL, 0xfa877473UL, 0xfb0b412eUL,
2611      0xb3671d5aUL, 0x92dbd252UL, 0xe9105633UL, 0x6dd64713UL,
2612      0x9ad7618cUL, 0x37a10c7aUL, 0x59f8148eUL, 0xeb133c89UL,
2613      0xcea927eeUL, 0xb761c935UL, 0xe11ce5edUL, 0x7a47b13cUL,
2614      0x9cd2df59UL, 0x55f2733fUL, 0x1814ce79UL, 0x73c737bfUL,
2615      0x53f7cdeaUL, 0x5ffdaa5bUL, 0xdf3d6f14UL, 0x7844db86UL,
2616      0xcaaff381UL, 0xb968c43eUL, 0x3824342cUL, 0xc2a3405fUL,
2617      0x161dc372UL, 0xbce2250cUL, 0x283c498bUL, 0xff0d9541UL,
2618      0x39a80171UL, 0x080cb3deUL, 0xd8b4e49cUL, 0x6456c190UL,
2619      0x7bcb8461UL, 0xd532b670UL, 0x486c5c74UL, 0xd0b85742UL
2620  };
2621  static const SWord32 table2[] = {
2622      0x5051f4a7UL, 0x537e4165UL, 0xc31a17a4UL, 0x963a275eUL,
2623      0xcb3bab6bUL, 0xf11f9d45UL, 0xabacfa58UL, 0x934be303UL,
2624      0x552030faUL, 0xf6ad766dUL, 0x9188cc76UL, 0x25f5024cUL,
2625      0xfc4fe5d7UL, 0xd7c52acbUL, 0x80263544UL, 0x8fb562a3UL,
2626      0x49deb15aUL, 0x6725ba1bUL, 0x9845ea0eUL, 0xe15dfec0UL,
2627      0x02c32f75UL, 0x12814cf0UL, 0xa38d4697UL, 0xc66bd3f9UL,
2628      0xe7038f5fUL, 0x9515929cUL, 0xebbf6d7aUL, 0xda955259UL,
2629      0x2dd4be83UL, 0xd3587421UL, 0x2949e069UL, 0x448ec9c8UL,
2630      0x6a75c289UL, 0x78f48e79UL, 0x6b99583eUL, 0xdd27b971UL,
2631      0xb6bee14fUL, 0x17f088adUL, 0x66c920acUL, 0xb47dce3aUL,
2632      0x1863df4aUL, 0x82e51a31UL, 0x60975133UL, 0x4562537fUL,
2633      0xe0b16477UL, 0x84bb6baeUL, 0x1cfe81a0UL, 0x94f9082bUL,
2634      0x58704868UL, 0x198f45fdUL, 0x8794de6cUL, 0xb7527bf8UL,
2635      0x23ab73d3UL, 0xe2724b02UL, 0x57e31f8fUL, 0x2a6655abUL,
2636      0x07b2eb28UL, 0x032fb5c2UL, 0x9a86c57bUL, 0xa5d33708UL,
2637      0xf2302887UL, 0xb223bfa5UL, 0xba02036aUL, 0x5ced1682UL,
2638      0x2b8acf1cUL, 0x92a779b4UL, 0xf0f307f2UL, 0xa14e69e2UL,
2639      0xcd65daf4UL, 0xd50605beUL, 0x1fd13462UL, 0x8ac4a6feUL,
2640      0x9d342e53UL, 0xa0a2f355UL, 0x32058ae1UL, 0x75a4f6ebUL,
2641      0x390b83ecUL, 0xaa4060efUL, 0x065e719fUL, 0x51bd6e10UL,
2642      0xf93e218aUL, 0x3d96dd06UL, 0xaedd3e05UL, 0x464de6bdUL,
2643      0xb591548dUL, 0x0571c45dUL, 0x6f0406d4UL, 0xff605015UL,
2644      0x241998fbUL, 0x97d6bde9UL, 0xcc894043UL, 0x7767d99eUL,
2645      0xbdb0e842UL, 0x8807898bUL, 0x38e7195bUL, 0xdb79c8eeUL,
2646      0x47a17c0aUL, 0xe97c420fUL, 0xc9f8841eUL, 0x00000000UL,
2647      0x83098086UL, 0x48322bedUL, 0xac1e1170UL, 0x4e6c5a72UL,
2648      0xfbfd0effUL, 0x560f8538UL, 0x1e3daed5UL, 0x27362d39UL,
2649      0x640a0fd9UL, 0x21685ca6UL, 0xd19b5b54UL, 0x3a24362eUL,
2650      0xb10c0a67UL, 0x0f9357e7UL, 0xd2b4ee96UL, 0x9e1b9b91UL,
2651      0x4f80c0c5UL, 0xa261dc20UL, 0x695a774bUL, 0x161c121aUL,
2652      0x0ae293baUL, 0xe5c0a02aUL, 0x433c22e0UL, 0x1d121b17UL,
2653      0x0b0e090dUL, 0xadf28bc7UL, 0xb92db6a8UL, 0xc8141ea9UL,
2654      0x8557f119UL, 0x4caf7507UL, 0xbbee99ddUL, 0xfda37f60UL,
2655      0x9ff70126UL, 0xbc5c72f5UL, 0xc544663bUL, 0x345bfb7eUL,
2656      0x768b4329UL, 0xdccb23c6UL, 0x68b6edfcUL, 0x63b8e4f1UL,
2657      0xcad731dcUL, 0x10426385UL, 0x40139722UL, 0x2084c611UL,
2658      0x7d854a24UL, 0xf8d2bb3dUL, 0x11aef932UL, 0x6dc729a1UL,
2659      0x4b1d9e2fUL, 0xf3dcb230UL, 0xec0d8652UL, 0xd077c1e3UL,
2660      0x6c2bb316UL, 0x99a970b9UL, 0xfa119448UL, 0x2247e964UL,
2661      0xc4a8fc8cUL, 0x1aa0f03fUL, 0xd8567d2cUL, 0xef223390UL,
2662      0xc787494eUL, 0xc1d938d1UL, 0xfe8ccaa2UL, 0x3698d40bUL,
2663      0xcfa6f581UL, 0x28a57adeUL, 0x26dab78eUL, 0xa43fadbfUL,
2664      0xe42c3a9dUL, 0x0d507892UL, 0x9b6a5fccUL, 0x62547e46UL,
2665      0xc2f68d13UL, 0xe890d8b8UL, 0x5e2e39f7UL, 0xf582c3afUL,
2666      0xbe9f5d80UL, 0x7c69d093UL, 0xa96fd52dUL, 0xb3cf2512UL,
2667      0x3bc8ac99UL, 0xa710187dUL, 0x6ee89c63UL, 0x7bdb3bbbUL,
2668      0x09cd2678UL, 0xf46e5918UL, 0x01ec9ab7UL, 0xa8834f9aUL,
2669      0x65e6956eUL, 0x7eaaffe6UL, 0x0821bccfUL, 0xe6ef15e8UL,
2670      0xd9bae79bUL, 0xce4a6f36UL, 0xd4ea9f09UL, 0xd629b07cUL,
2671      0xaf31a4b2UL, 0x312a3f23UL, 0x30c6a594UL, 0xc035a266UL,
2672      0x37744ebcUL, 0xa6fc82caUL, 0xb0e090d0UL, 0x1533a7d8UL,
2673      0x4af10498UL, 0xf741ecdaUL, 0x0e7fcd50UL, 0x2f1791f6UL,
2674      0x8d764dd6UL, 0x4d43efb0UL, 0x54ccaa4dUL, 0xdfe49604UL,
2675      0xe39ed1b5UL, 0x1b4c6a88UL, 0xb8c12c1fUL, 0x7f466551UL,
2676      0x049d5eeaUL, 0x5d018c35UL, 0x73fa8774UL, 0x2efb0b41UL,
2677      0x5ab3671dUL, 0x5292dbd2UL, 0x33e91056UL, 0x136dd647UL,
2678      0x8c9ad761UL, 0x7a37a10cUL, 0x8e59f814UL, 0x89eb133cUL,
2679      0xeecea927UL, 0x35b761c9UL, 0xede11ce5UL, 0x3c7a47b1UL,
2680      0x599cd2dfUL, 0x3f55f273UL, 0x791814ceUL, 0xbf73c737UL,
2681      0xea53f7cdUL, 0x5b5ffdaaUL, 0x14df3d6fUL, 0x867844dbUL,
2682      0x81caaff3UL, 0x3eb968c4UL, 0x2c382434UL, 0x5fc2a340UL,
2683      0x72161dc3UL, 0x0cbce225UL, 0x8b283c49UL, 0x41ff0d95UL,
2684      0x7139a801UL, 0xde080cb3UL, 0x9cd8b4e4UL, 0x906456c1UL,
2685      0x617bcb84UL, 0x70d532b6UL, 0x74486c5cUL, 0x42d0b857UL
2686  };
2687  static const SWord32 table3[] = {
2688      0xa75051f4UL, 0x65537e41UL, 0xa4c31a17UL, 0x5e963a27UL,
2689      0x6bcb3babUL, 0x45f11f9dUL, 0x58abacfaUL, 0x03934be3UL,
2690      0xfa552030UL, 0x6df6ad76UL, 0x769188ccUL, 0x4c25f502UL,
2691      0xd7fc4fe5UL, 0xcbd7c52aUL, 0x44802635UL, 0xa38fb562UL,
2692      0x5a49deb1UL, 0x1b6725baUL, 0x0e9845eaUL, 0xc0e15dfeUL,
2693      0x7502c32fUL, 0xf012814cUL, 0x97a38d46UL, 0xf9c66bd3UL,
2694      0x5fe7038fUL, 0x9c951592UL, 0x7aebbf6dUL, 0x59da9552UL,
2695      0x832dd4beUL, 0x21d35874UL, 0x692949e0UL, 0xc8448ec9UL,
2696      0x896a75c2UL, 0x7978f48eUL, 0x3e6b9958UL, 0x71dd27b9UL,
2697      0x4fb6bee1UL, 0xad17f088UL, 0xac66c920UL, 0x3ab47dceUL,
2698      0x4a1863dfUL, 0x3182e51aUL, 0x33609751UL, 0x7f456253UL,
2699      0x77e0b164UL, 0xae84bb6bUL, 0xa01cfe81UL, 0x2b94f908UL,
2700      0x68587048UL, 0xfd198f45UL, 0x6c8794deUL, 0xf8b7527bUL,
2701      0xd323ab73UL, 0x02e2724bUL, 0x8f57e31fUL, 0xab2a6655UL,
2702      0x2807b2ebUL, 0xc2032fb5UL, 0x7b9a86c5UL, 0x08a5d337UL,
2703      0x87f23028UL, 0xa5b223bfUL, 0x6aba0203UL, 0x825ced16UL,
2704      0x1c2b8acfUL, 0xb492a779UL, 0xf2f0f307UL, 0xe2a14e69UL,
2705      0xf4cd65daUL, 0xbed50605UL, 0x621fd134UL, 0xfe8ac4a6UL,
2706      0x539d342eUL, 0x55a0a2f3UL, 0xe132058aUL, 0xeb75a4f6UL,
2707      0xec390b83UL, 0xefaa4060UL, 0x9f065e71UL, 0x1051bd6eUL,
2708      0x8af93e21UL, 0x063d96ddUL, 0x05aedd3eUL, 0xbd464de6UL,
2709      0x8db59154UL, 0x5d0571c4UL, 0xd46f0406UL, 0x15ff6050UL,
2710      0xfb241998UL, 0xe997d6bdUL, 0x43cc8940UL, 0x9e7767d9UL,
2711      0x42bdb0e8UL, 0x8b880789UL, 0x5b38e719UL, 0xeedb79c8UL,
2712      0x0a47a17cUL, 0x0fe97c42UL, 0x1ec9f884UL, 0x00000000UL,
2713      0x86830980UL, 0xed48322bUL, 0x70ac1e11UL, 0x724e6c5aUL,
2714      0xfffbfd0eUL, 0x38560f85UL, 0xd51e3daeUL, 0x3927362dUL,
2715      0xd9640a0fUL, 0xa621685cUL, 0x54d19b5bUL, 0x2e3a2436UL,
2716      0x67b10c0aUL, 0xe70f9357UL, 0x96d2b4eeUL, 0x919e1b9bUL,
2717      0xc54f80c0UL, 0x20a261dcUL, 0x4b695a77UL, 0x1a161c12UL,
2718      0xba0ae293UL, 0x2ae5c0a0UL, 0xe0433c22UL, 0x171d121bUL,
2719      0x0d0b0e09UL, 0xc7adf28bUL, 0xa8b92db6UL, 0xa9c8141eUL,
2720      0x198557f1UL, 0x074caf75UL, 0xddbbee99UL, 0x60fda37fUL,
2721      0x269ff701UL, 0xf5bc5c72UL, 0x3bc54466UL, 0x7e345bfbUL,
2722      0x29768b43UL, 0xc6dccb23UL, 0xfc68b6edUL, 0xf163b8e4UL,
2723      0xdccad731UL, 0x85104263UL, 0x22401397UL, 0x112084c6UL,
2724      0x247d854aUL, 0x3df8d2bbUL, 0x3211aef9UL, 0xa16dc729UL,
2725      0x2f4b1d9eUL, 0x30f3dcb2UL, 0x52ec0d86UL, 0xe3d077c1UL,
2726      0x166c2bb3UL, 0xb999a970UL, 0x48fa1194UL, 0x642247e9UL,
2727      0x8cc4a8fcUL, 0x3f1aa0f0UL, 0x2cd8567dUL, 0x90ef2233UL,
2728      0x4ec78749UL, 0xd1c1d938UL, 0xa2fe8ccaUL, 0x0b3698d4UL,
2729      0x81cfa6f5UL, 0xde28a57aUL, 0x8e26dab7UL, 0xbfa43fadUL,
2730      0x9de42c3aUL, 0x920d5078UL, 0xcc9b6a5fUL, 0x4662547eUL,
2731      0x13c2f68dUL, 0xb8e890d8UL, 0xf75e2e39UL, 0xaff582c3UL,
2732      0x80be9f5dUL, 0x937c69d0UL, 0x2da96fd5UL, 0x12b3cf25UL,
2733      0x993bc8acUL, 0x7da71018UL, 0x636ee89cUL, 0xbb7bdb3bUL,
2734      0x7809cd26UL, 0x18f46e59UL, 0xb701ec9aUL, 0x9aa8834fUL,
2735      0x6e65e695UL, 0xe67eaaffUL, 0xcf0821bcUL, 0xe8e6ef15UL,
2736      0x9bd9bae7UL, 0x36ce4a6fUL, 0x09d4ea9fUL, 0x7cd629b0UL,
2737      0xb2af31a4UL, 0x23312a3fUL, 0x9430c6a5UL, 0x66c035a2UL,
2738      0xbc37744eUL, 0xcaa6fc82UL, 0xd0b0e090UL, 0xd81533a7UL,
2739      0x984af104UL, 0xdaf741ecUL, 0x500e7fcdUL, 0xf62f1791UL,
2740      0xd68d764dUL, 0xb04d43efUL, 0x4d54ccaaUL, 0x04dfe496UL,
2741      0xb5e39ed1UL, 0x881b4c6aUL, 0x1fb8c12cUL, 0x517f4665UL,
2742      0xea049d5eUL, 0x355d018cUL, 0x7473fa87UL, 0x412efb0bUL,
2743      0x1d5ab367UL, 0xd25292dbUL, 0x5633e910UL, 0x47136dd6UL,
2744      0x618c9ad7UL, 0x0c7a37a1UL, 0x148e59f8UL, 0x3c89eb13UL,
2745      0x27eecea9UL, 0xc935b761UL, 0xe5ede11cUL, 0xb13c7a47UL,
2746      0xdf599cd2UL, 0x733f55f2UL, 0xce791814UL, 0x37bf73c7UL,
2747      0xcdea53f7UL, 0xaa5b5ffdUL, 0x6f14df3dUL, 0xdb867844UL,
2748      0xf381caafUL, 0xc43eb968UL, 0x342c3824UL, 0x405fc2a3UL,
2749      0xc372161dUL, 0x250cbce2UL, 0x498b283cUL, 0x9541ff0dUL,
2750      0x017139a8UL, 0xb3de080cUL, 0xe49cd8b4UL, 0xc1906456UL,
2751      0x84617bcbUL, 0xb670d532UL, 0x5c74486cUL, 0x5742d0b8UL
2752  };
2753  static const SWord32 table4[] = {
2754      0xf4a75051UL, 0x4165537eUL, 0x17a4c31aUL, 0x275e963aUL,
2755      0xab6bcb3bUL, 0x9d45f11fUL, 0xfa58abacUL, 0xe303934bUL,
2756      0x30fa5520UL, 0x766df6adUL, 0xcc769188UL, 0x024c25f5UL,
2757      0xe5d7fc4fUL, 0x2acbd7c5UL, 0x35448026UL, 0x62a38fb5UL,
2758      0xb15a49deUL, 0xba1b6725UL, 0xea0e9845UL, 0xfec0e15dUL,
2759      0x2f7502c3UL, 0x4cf01281UL, 0x4697a38dUL, 0xd3f9c66bUL,
2760      0x8f5fe703UL, 0x929c9515UL, 0x6d7aebbfUL, 0x5259da95UL,
2761      0xbe832dd4UL, 0x7421d358UL, 0xe0692949UL, 0xc9c8448eUL,
2762      0xc2896a75UL, 0x8e7978f4UL, 0x583e6b99UL, 0xb971dd27UL,
2763      0xe14fb6beUL, 0x88ad17f0UL, 0x20ac66c9UL, 0xce3ab47dUL,
2764      0xdf4a1863UL, 0x1a3182e5UL, 0x51336097UL, 0x537f4562UL,
2765      0x6477e0b1UL, 0x6bae84bbUL, 0x81a01cfeUL, 0x082b94f9UL,
2766      0x48685870UL, 0x45fd198fUL, 0xde6c8794UL, 0x7bf8b752UL,
2767      0x73d323abUL, 0x4b02e272UL, 0x1f8f57e3UL, 0x55ab2a66UL,
2768      0xeb2807b2UL, 0xb5c2032fUL, 0xc57b9a86UL, 0x3708a5d3UL,
2769      0x2887f230UL, 0xbfa5b223UL, 0x036aba02UL, 0x16825cedUL,
2770      0xcf1c2b8aUL, 0x79b492a7UL, 0x07f2f0f3UL, 0x69e2a14eUL,
2771      0xdaf4cd65UL, 0x05bed506UL, 0x34621fd1UL, 0xa6fe8ac4UL,
2772      0x2e539d34UL, 0xf355a0a2UL, 0x8ae13205UL, 0xf6eb75a4UL,
2773      0x83ec390bUL, 0x60efaa40UL, 0x719f065eUL, 0x6e1051bdUL,
2774      0x218af93eUL, 0xdd063d96UL, 0x3e05aeddUL, 0xe6bd464dUL,
2775      0x548db591UL, 0xc45d0571UL, 0x06d46f04UL, 0x5015ff60UL,
2776      0x98fb2419UL, 0xbde997d6UL, 0x4043cc89UL, 0xd99e7767UL,
2777      0xe842bdb0UL, 0x898b8807UL, 0x195b38e7UL, 0xc8eedb79UL,
2778      0x7c0a47a1UL, 0x420fe97cUL, 0x841ec9f8UL, 0x00000000UL,
2779      0x80868309UL, 0x2bed4832UL, 0x1170ac1eUL, 0x5a724e6cUL,
2780      0x0efffbfdUL, 0x8538560fUL, 0xaed51e3dUL, 0x2d392736UL,
2781      0x0fd9640aUL, 0x5ca62168UL, 0x5b54d19bUL, 0x362e3a24UL,
2782      0x0a67b10cUL, 0x57e70f93UL, 0xee96d2b4UL, 0x9b919e1bUL,
2783      0xc0c54f80UL, 0xdc20a261UL, 0x774b695aUL, 0x121a161cUL,
2784      0x93ba0ae2UL, 0xa02ae5c0UL, 0x22e0433cUL, 0x1b171d12UL,
2785      0x090d0b0eUL, 0x8bc7adf2UL, 0xb6a8b92dUL, 0x1ea9c814UL,
2786      0xf1198557UL, 0x75074cafUL, 0x99ddbbeeUL, 0x7f60fda3UL,
2787      0x01269ff7UL, 0x72f5bc5cUL, 0x663bc544UL, 0xfb7e345bUL,
2788      0x4329768bUL, 0x23c6dccbUL, 0xedfc68b6UL, 0xe4f163b8UL,
2789      0x31dccad7UL, 0x63851042UL, 0x97224013UL, 0xc6112084UL,
2790      0x4a247d85UL, 0xbb3df8d2UL, 0xf93211aeUL, 0x29a16dc7UL,
2791      0x9e2f4b1dUL, 0xb230f3dcUL, 0x8652ec0dUL, 0xc1e3d077UL,
2792      0xb3166c2bUL, 0x70b999a9UL, 0x9448fa11UL, 0xe9642247UL,
2793      0xfc8cc4a8UL, 0xf03f1aa0UL, 0x7d2cd856UL, 0x3390ef22UL,
2794      0x494ec787UL, 0x38d1c1d9UL, 0xcaa2fe8cUL, 0xd40b3698UL,
2795      0xf581cfa6UL, 0x7ade28a5UL, 0xb78e26daUL, 0xadbfa43fUL,
2796      0x3a9de42cUL, 0x78920d50UL, 0x5fcc9b6aUL, 0x7e466254UL,
2797      0x8d13c2f6UL, 0xd8b8e890UL, 0x39f75e2eUL, 0xc3aff582UL,
2798      0x5d80be9fUL, 0xd0937c69UL, 0xd52da96fUL, 0x2512b3cfUL,
2799      0xac993bc8UL, 0x187da710UL, 0x9c636ee8UL, 0x3bbb7bdbUL,
2800      0x267809cdUL, 0x5918f46eUL, 0x9ab701ecUL, 0x4f9aa883UL,
2801      0x956e65e6UL, 0xffe67eaaUL, 0xbccf0821UL, 0x15e8e6efUL,
2802      0xe79bd9baUL, 0x6f36ce4aUL, 0x9f09d4eaUL, 0xb07cd629UL,
2803      0xa4b2af31UL, 0x3f23312aUL, 0xa59430c6UL, 0xa266c035UL,
2804      0x4ebc3774UL, 0x82caa6fcUL, 0x90d0b0e0UL, 0xa7d81533UL,
2805      0x04984af1UL, 0xecdaf741UL, 0xcd500e7fUL, 0x91f62f17UL,
2806      0x4dd68d76UL, 0xefb04d43UL, 0xaa4d54ccUL, 0x9604dfe4UL,
2807      0xd1b5e39eUL, 0x6a881b4cUL, 0x2c1fb8c1UL, 0x65517f46UL,
2808      0x5eea049dUL, 0x8c355d01UL, 0x877473faUL, 0x0b412efbUL,
2809      0x671d5ab3UL, 0xdbd25292UL, 0x105633e9UL, 0xd647136dUL,
2810      0xd7618c9aUL, 0xa10c7a37UL, 0xf8148e59UL, 0x133c89ebUL,
2811      0xa927eeceUL, 0x61c935b7UL, 0x1ce5ede1UL, 0x47b13c7aUL,
2812      0xd2df599cUL, 0xf2733f55UL, 0x14ce7918UL, 0xc737bf73UL,
2813      0xf7cdea53UL, 0xfdaa5b5fUL, 0x3d6f14dfUL, 0x44db8678UL,
2814      0xaff381caUL, 0x68c43eb9UL, 0x24342c38UL, 0xa3405fc2UL,
2815      0x1dc37216UL, 0xe2250cbcUL, 0x3c498b28UL, 0x0d9541ffUL,
2816      0xa8017139UL, 0x0cb3de08UL, 0xb4e49cd8UL, 0x56c19064UL,
2817      0xcb84617bUL, 0x32b670d5UL, 0x6c5c7448UL, 0xb85742d0UL
2818  };
2819  const SWord32 s560 = s0 ^ s4;
2820  const SWord8  s561 = (SWord8) (s560 >> 24);
2821  const SWord32 s562 = table1[s561];
2822  const SWord32 s818 = s3 ^ s7;
2823  const SWord8  s819 = (SWord8) (s818 >> 16);
2824  const SWord32 s820 = table2[s819];
2825  const SWord32 s821 = s562 ^ s820;
2826  const SWord32 s1077 = s2 ^ s6;
2827  const SWord8  s1078 = (SWord8) (s1077 >> 8);
2828  const SWord32 s1079 = table3[s1078];
2829  const SWord32 s1080 = s821 ^ s1079;
2830  const SWord32 s1336 = s1 ^ s5;
2831  const SWord8  s1337 = (SWord8) s1336;
2832  const SWord32 s1338 = table4[s1337];
2833  const SWord32 s1339 = s1080 ^ s1338;
2834  const SWord32 s1340 = s8 ^ s1339;
2835  const SWord8  s1341 = (SWord8) (s1340 >> 24);
2836  const SWord32 s1342 = table1[s1341];
2837  const SWord8  s1343 = (SWord8) (s818 >> 24);
2838  const SWord32 s1344 = table1[s1343];
2839  const SWord8  s1345 = (SWord8) (s1077 >> 16);
2840  const SWord32 s1346 = table2[s1345];
2841  const SWord32 s1347 = s1344 ^ s1346;
2842  const SWord8  s1348 = (SWord8) (s1336 >> 8);
2843  const SWord32 s1349 = table3[s1348];
2844  const SWord32 s1350 = s1347 ^ s1349;
2845  const SWord8  s1351 = (SWord8) s560;
2846  const SWord32 s1352 = table4[s1351];
2847  const SWord32 s1353 = s1350 ^ s1352;
2848  const SWord32 s1354 = s11 ^ s1353;
2849  const SWord8  s1355 = (SWord8) (s1354 >> 16);
2850  const SWord32 s1356 = table2[s1355];
2851  const SWord32 s1357 = s1342 ^ s1356;
2852  const SWord8  s1358 = (SWord8) (s1077 >> 24);
2853  const SWord32 s1359 = table1[s1358];
2854  const SWord8  s1360 = (SWord8) (s1336 >> 16);
2855  const SWord32 s1361 = table2[s1360];
2856  const SWord32 s1362 = s1359 ^ s1361;
2857  const SWord8  s1363 = (SWord8) (s560 >> 8);
2858  const SWord32 s1364 = table3[s1363];
2859  const SWord32 s1365 = s1362 ^ s1364;
2860  const SWord8  s1366 = (SWord8) s818;
2861  const SWord32 s1367 = table4[s1366];
2862  const SWord32 s1368 = s1365 ^ s1367;
2863  const SWord32 s1369 = s10 ^ s1368;
2864  const SWord8  s1370 = (SWord8) (s1369 >> 8);
2865  const SWord32 s1371 = table3[s1370];
2866  const SWord32 s1372 = s1357 ^ s1371;
2867  const SWord8  s1373 = (SWord8) (s1336 >> 24);
2868  const SWord32 s1374 = table1[s1373];
2869  const SWord8  s1375 = (SWord8) (s560 >> 16);
2870  const SWord32 s1376 = table2[s1375];
2871  const SWord32 s1377 = s1374 ^ s1376;
2872  const SWord8  s1378 = (SWord8) (s818 >> 8);
2873  const SWord32 s1379 = table3[s1378];
2874  const SWord32 s1380 = s1377 ^ s1379;
2875  const SWord8  s1381 = (SWord8) s1077;
2876  const SWord32 s1382 = table4[s1381];
2877  const SWord32 s1383 = s1380 ^ s1382;
2878  const SWord32 s1384 = s9 ^ s1383;
2879  const SWord8  s1385 = (SWord8) s1384;
2880  const SWord32 s1386 = table4[s1385];
2881  const SWord32 s1387 = s1372 ^ s1386;
2882  const SWord32 s1388 = s12 ^ s1387;
2883  const SWord8  s1389 = (SWord8) (s1388 >> 24);
2884  const SWord32 s1390 = table1[s1389];
2885  const SWord8  s1391 = (SWord8) (s1354 >> 24);
2886  const SWord32 s1392 = table1[s1391];
2887  const SWord8  s1393 = (SWord8) (s1369 >> 16);
2888  const SWord32 s1394 = table2[s1393];
2889  const SWord32 s1395 = s1392 ^ s1394;
2890  const SWord8  s1396 = (SWord8) (s1384 >> 8);
2891  const SWord32 s1397 = table3[s1396];
2892  const SWord32 s1398 = s1395 ^ s1397;
2893  const SWord8  s1399 = (SWord8) s1340;
2894  const SWord32 s1400 = table4[s1399];
2895  const SWord32 s1401 = s1398 ^ s1400;
2896  const SWord32 s1402 = s15 ^ s1401;
2897  const SWord8  s1403 = (SWord8) (s1402 >> 16);
2898  const SWord32 s1404 = table2[s1403];
2899  const SWord32 s1405 = s1390 ^ s1404;
2900  const SWord8  s1406 = (SWord8) (s1369 >> 24);
2901  const SWord32 s1407 = table1[s1406];
2902  const SWord8  s1408 = (SWord8) (s1384 >> 16);
2903  const SWord32 s1409 = table2[s1408];
2904  const SWord32 s1410 = s1407 ^ s1409;
2905  const SWord8  s1411 = (SWord8) (s1340 >> 8);
2906  const SWord32 s1412 = table3[s1411];
2907  const SWord32 s1413 = s1410 ^ s1412;
2908  const SWord8  s1414 = (SWord8) s1354;
2909  const SWord32 s1415 = table4[s1414];
2910  const SWord32 s1416 = s1413 ^ s1415;
2911  const SWord32 s1417 = s14 ^ s1416;
2912  const SWord8  s1418 = (SWord8) (s1417 >> 8);
2913  const SWord32 s1419 = table3[s1418];
2914  const SWord32 s1420 = s1405 ^ s1419;
2915  const SWord8  s1421 = (SWord8) (s1384 >> 24);
2916  const SWord32 s1422 = table1[s1421];
2917  const SWord8  s1423 = (SWord8) (s1340 >> 16);
2918  const SWord32 s1424 = table2[s1423];
2919  const SWord32 s1425 = s1422 ^ s1424;
2920  const SWord8  s1426 = (SWord8) (s1354 >> 8);
2921  const SWord32 s1427 = table3[s1426];
2922  const SWord32 s1428 = s1425 ^ s1427;
2923  const SWord8  s1429 = (SWord8) s1369;
2924  const SWord32 s1430 = table4[s1429];
2925  const SWord32 s1431 = s1428 ^ s1430;
2926  const SWord32 s1432 = s13 ^ s1431;
2927  const SWord8  s1433 = (SWord8) s1432;
2928  const SWord32 s1434 = table4[s1433];
2929  const SWord32 s1435 = s1420 ^ s1434;
2930  const SWord32 s1436 = s16 ^ s1435;
2931  const SWord8  s1437 = (SWord8) (s1436 >> 24);
2932  const SWord32 s1438 = table1[s1437];
2933  const SWord8  s1439 = (SWord8) (s1402 >> 24);
2934  const SWord32 s1440 = table1[s1439];
2935  const SWord8  s1441 = (SWord8) (s1417 >> 16);
2936  const SWord32 s1442 = table2[s1441];
2937  const SWord32 s1443 = s1440 ^ s1442;
2938  const SWord8  s1444 = (SWord8) (s1432 >> 8);
2939  const SWord32 s1445 = table3[s1444];
2940  const SWord32 s1446 = s1443 ^ s1445;
2941  const SWord8  s1447 = (SWord8) s1388;
2942  const SWord32 s1448 = table4[s1447];
2943  const SWord32 s1449 = s1446 ^ s1448;
2944  const SWord32 s1450 = s19 ^ s1449;
2945  const SWord8  s1451 = (SWord8) (s1450 >> 16);
2946  const SWord32 s1452 = table2[s1451];
2947  const SWord32 s1453 = s1438 ^ s1452;
2948  const SWord8  s1454 = (SWord8) (s1417 >> 24);
2949  const SWord32 s1455 = table1[s1454];
2950  const SWord8  s1456 = (SWord8) (s1432 >> 16);
2951  const SWord32 s1457 = table2[s1456];
2952  const SWord32 s1458 = s1455 ^ s1457;
2953  const SWord8  s1459 = (SWord8) (s1388 >> 8);
2954  const SWord32 s1460 = table3[s1459];
2955  const SWord32 s1461 = s1458 ^ s1460;
2956  const SWord8  s1462 = (SWord8) s1402;
2957  const SWord32 s1463 = table4[s1462];
2958  const SWord32 s1464 = s1461 ^ s1463;
2959  const SWord32 s1465 = s18 ^ s1464;
2960  const SWord8  s1466 = (SWord8) (s1465 >> 8);
2961  const SWord32 s1467 = table3[s1466];
2962  const SWord32 s1468 = s1453 ^ s1467;
2963  const SWord8  s1469 = (SWord8) (s1432 >> 24);
2964  const SWord32 s1470 = table1[s1469];
2965  const SWord8  s1471 = (SWord8) (s1388 >> 16);
2966  const SWord32 s1472 = table2[s1471];
2967  const SWord32 s1473 = s1470 ^ s1472;
2968  const SWord8  s1474 = (SWord8) (s1402 >> 8);
2969  const SWord32 s1475 = table3[s1474];
2970  const SWord32 s1476 = s1473 ^ s1475;
2971  const SWord8  s1477 = (SWord8) s1417;
2972  const SWord32 s1478 = table4[s1477];
2973  const SWord32 s1479 = s1476 ^ s1478;
2974  const SWord32 s1480 = s17 ^ s1479;
2975  const SWord8  s1481 = (SWord8) s1480;
2976  const SWord32 s1482 = table4[s1481];
2977  const SWord32 s1483 = s1468 ^ s1482;
2978  const SWord32 s1484 = s20 ^ s1483;
2979  const SWord8  s1485 = (SWord8) (s1484 >> 24);
2980  const SWord32 s1486 = table1[s1485];
2981  const SWord8  s1487 = (SWord8) (s1450 >> 24);
2982  const SWord32 s1488 = table1[s1487];
2983  const SWord8  s1489 = (SWord8) (s1465 >> 16);
2984  const SWord32 s1490 = table2[s1489];
2985  const SWord32 s1491 = s1488 ^ s1490;
2986  const SWord8  s1492 = (SWord8) (s1480 >> 8);
2987  const SWord32 s1493 = table3[s1492];
2988  const SWord32 s1494 = s1491 ^ s1493;
2989  const SWord8  s1495 = (SWord8) s1436;
2990  const SWord32 s1496 = table4[s1495];
2991  const SWord32 s1497 = s1494 ^ s1496;
2992  const SWord32 s1498 = s23 ^ s1497;
2993  const SWord8  s1499 = (SWord8) (s1498 >> 16);
2994  const SWord32 s1500 = table2[s1499];
2995  const SWord32 s1501 = s1486 ^ s1500;
2996  const SWord8  s1502 = (SWord8) (s1465 >> 24);
2997  const SWord32 s1503 = table1[s1502];
2998  const SWord8  s1504 = (SWord8) (s1480 >> 16);
2999  const SWord32 s1505 = table2[s1504];
3000  const SWord32 s1506 = s1503 ^ s1505;
3001  const SWord8  s1507 = (SWord8) (s1436 >> 8);
3002  const SWord32 s1508 = table3[s1507];
3003  const SWord32 s1509 = s1506 ^ s1508;
3004  const SWord8  s1510 = (SWord8) s1450;
3005  const SWord32 s1511 = table4[s1510];
3006  const SWord32 s1512 = s1509 ^ s1511;
3007  const SWord32 s1513 = s22 ^ s1512;
3008  const SWord8  s1514 = (SWord8) (s1513 >> 8);
3009  const SWord32 s1515 = table3[s1514];
3010  const SWord32 s1516 = s1501 ^ s1515;
3011  const SWord8  s1517 = (SWord8) (s1480 >> 24);
3012  const SWord32 s1518 = table1[s1517];
3013  const SWord8  s1519 = (SWord8) (s1436 >> 16);
3014  const SWord32 s1520 = table2[s1519];
3015  const SWord32 s1521 = s1518 ^ s1520;
3016  const SWord8  s1522 = (SWord8) (s1450 >> 8);
3017  const SWord32 s1523 = table3[s1522];
3018  const SWord32 s1524 = s1521 ^ s1523;
3019  const SWord8  s1525 = (SWord8) s1465;
3020  const SWord32 s1526 = table4[s1525];
3021  const SWord32 s1527 = s1524 ^ s1526;
3022  const SWord32 s1528 = s21 ^ s1527;
3023  const SWord8  s1529 = (SWord8) s1528;
3024  const SWord32 s1530 = table4[s1529];
3025  const SWord32 s1531 = s1516 ^ s1530;
3026  const SWord32 s1532 = s24 ^ s1531;
3027  const SWord8  s1533 = (SWord8) (s1532 >> 24);
3028  const SWord32 s1534 = table1[s1533];
3029  const SWord8  s1535 = (SWord8) (s1498 >> 24);
3030  const SWord32 s1536 = table1[s1535];
3031  const SWord8  s1537 = (SWord8) (s1513 >> 16);
3032  const SWord32 s1538 = table2[s1537];
3033  const SWord32 s1539 = s1536 ^ s1538;
3034  const SWord8  s1540 = (SWord8) (s1528 >> 8);
3035  const SWord32 s1541 = table3[s1540];
3036  const SWord32 s1542 = s1539 ^ s1541;
3037  const SWord8  s1543 = (SWord8) s1484;
3038  const SWord32 s1544 = table4[s1543];
3039  const SWord32 s1545 = s1542 ^ s1544;
3040  const SWord32 s1546 = s27 ^ s1545;
3041  const SWord8  s1547 = (SWord8) (s1546 >> 16);
3042  const SWord32 s1548 = table2[s1547];
3043  const SWord32 s1549 = s1534 ^ s1548;
3044  const SWord8  s1550 = (SWord8) (s1513 >> 24);
3045  const SWord32 s1551 = table1[s1550];
3046  const SWord8  s1552 = (SWord8) (s1528 >> 16);
3047  const SWord32 s1553 = table2[s1552];
3048  const SWord32 s1554 = s1551 ^ s1553;
3049  const SWord8  s1555 = (SWord8) (s1484 >> 8);
3050  const SWord32 s1556 = table3[s1555];
3051  const SWord32 s1557 = s1554 ^ s1556;
3052  const SWord8  s1558 = (SWord8) s1498;
3053  const SWord32 s1559 = table4[s1558];
3054  const SWord32 s1560 = s1557 ^ s1559;
3055  const SWord32 s1561 = s26 ^ s1560;
3056  const SWord8  s1562 = (SWord8) (s1561 >> 8);
3057  const SWord32 s1563 = table3[s1562];
3058  const SWord32 s1564 = s1549 ^ s1563;
3059  const SWord8  s1565 = (SWord8) (s1528 >> 24);
3060  const SWord32 s1566 = table1[s1565];
3061  const SWord8  s1567 = (SWord8) (s1484 >> 16);
3062  const SWord32 s1568 = table2[s1567];
3063  const SWord32 s1569 = s1566 ^ s1568;
3064  const SWord8  s1570 = (SWord8) (s1498 >> 8);
3065  const SWord32 s1571 = table3[s1570];
3066  const SWord32 s1572 = s1569 ^ s1571;
3067  const SWord8  s1573 = (SWord8) s1513;
3068  const SWord32 s1574 = table4[s1573];
3069  const SWord32 s1575 = s1572 ^ s1574;
3070  const SWord32 s1576 = s25 ^ s1575;
3071  const SWord8  s1577 = (SWord8) s1576;
3072  const SWord32 s1578 = table4[s1577];
3073  const SWord32 s1579 = s1564 ^ s1578;
3074  const SWord32 s1580 = s28 ^ s1579;
3075  const SWord8  s1581 = (SWord8) (s1580 >> 24);
3076  const SWord32 s1582 = table1[s1581];
3077  const SWord8  s1583 = (SWord8) (s1546 >> 24);
3078  const SWord32 s1584 = table1[s1583];
3079  const SWord8  s1585 = (SWord8) (s1561 >> 16);
3080  const SWord32 s1586 = table2[s1585];
3081  const SWord32 s1587 = s1584 ^ s1586;
3082  const SWord8  s1588 = (SWord8) (s1576 >> 8);
3083  const SWord32 s1589 = table3[s1588];
3084  const SWord32 s1590 = s1587 ^ s1589;
3085  const SWord8  s1591 = (SWord8) s1532;
3086  const SWord32 s1592 = table4[s1591];
3087  const SWord32 s1593 = s1590 ^ s1592;
3088  const SWord32 s1594 = s31 ^ s1593;
3089  const SWord8  s1595 = (SWord8) (s1594 >> 16);
3090  const SWord32 s1596 = table2[s1595];
3091  const SWord32 s1597 = s1582 ^ s1596;
3092  const SWord8  s1598 = (SWord8) (s1561 >> 24);
3093  const SWord32 s1599 = table1[s1598];
3094  const SWord8  s1600 = (SWord8) (s1576 >> 16);
3095  const SWord32 s1601 = table2[s1600];
3096  const SWord32 s1602 = s1599 ^ s1601;
3097  const SWord8  s1603 = (SWord8) (s1532 >> 8);
3098  const SWord32 s1604 = table3[s1603];
3099  const SWord32 s1605 = s1602 ^ s1604;
3100  const SWord8  s1606 = (SWord8) s1546;
3101  const SWord32 s1607 = table4[s1606];
3102  const SWord32 s1608 = s1605 ^ s1607;
3103  const SWord32 s1609 = s30 ^ s1608;
3104  const SWord8  s1610 = (SWord8) (s1609 >> 8);
3105  const SWord32 s1611 = table3[s1610];
3106  const SWord32 s1612 = s1597 ^ s1611;
3107  const SWord8  s1613 = (SWord8) (s1576 >> 24);
3108  const SWord32 s1614 = table1[s1613];
3109  const SWord8  s1615 = (SWord8) (s1532 >> 16);
3110  const SWord32 s1616 = table2[s1615];
3111  const SWord32 s1617 = s1614 ^ s1616;
3112  const SWord8  s1618 = (SWord8) (s1546 >> 8);
3113  const SWord32 s1619 = table3[s1618];
3114  const SWord32 s1620 = s1617 ^ s1619;
3115  const SWord8  s1621 = (SWord8) s1561;
3116  const SWord32 s1622 = table4[s1621];
3117  const SWord32 s1623 = s1620 ^ s1622;
3118  const SWord32 s1624 = s29 ^ s1623;
3119  const SWord8  s1625 = (SWord8) s1624;
3120  const SWord32 s1626 = table4[s1625];
3121  const SWord32 s1627 = s1612 ^ s1626;
3122  const SWord32 s1628 = s32 ^ s1627;
3123  const SWord8  s1629 = (SWord8) (s1628 >> 24);
3124  const SWord32 s1630 = table1[s1629];
3125  const SWord8  s1631 = (SWord8) (s1594 >> 24);
3126  const SWord32 s1632 = table1[s1631];
3127  const SWord8  s1633 = (SWord8) (s1609 >> 16);
3128  const SWord32 s1634 = table2[s1633];
3129  const SWord32 s1635 = s1632 ^ s1634;
3130  const SWord8  s1636 = (SWord8) (s1624 >> 8);
3131  const SWord32 s1637 = table3[s1636];
3132  const SWord32 s1638 = s1635 ^ s1637;
3133  const SWord8  s1639 = (SWord8) s1580;
3134  const SWord32 s1640 = table4[s1639];
3135  const SWord32 s1641 = s1638 ^ s1640;
3136  const SWord32 s1642 = s35 ^ s1641;
3137  const SWord8  s1643 = (SWord8) (s1642 >> 16);
3138  const SWord32 s1644 = table2[s1643];
3139  const SWord32 s1645 = s1630 ^ s1644;
3140  const SWord8  s1646 = (SWord8) (s1609 >> 24);
3141  const SWord32 s1647 = table1[s1646];
3142  const SWord8  s1648 = (SWord8) (s1624 >> 16);
3143  const SWord32 s1649 = table2[s1648];
3144  const SWord32 s1650 = s1647 ^ s1649;
3145  const SWord8  s1651 = (SWord8) (s1580 >> 8);
3146  const SWord32 s1652 = table3[s1651];
3147  const SWord32 s1653 = s1650 ^ s1652;
3148  const SWord8  s1654 = (SWord8) s1594;
3149  const SWord32 s1655 = table4[s1654];
3150  const SWord32 s1656 = s1653 ^ s1655;
3151  const SWord32 s1657 = s34 ^ s1656;
3152  const SWord8  s1658 = (SWord8) (s1657 >> 8);
3153  const SWord32 s1659 = table3[s1658];
3154  const SWord32 s1660 = s1645 ^ s1659;
3155  const SWord8  s1661 = (SWord8) (s1624 >> 24);
3156  const SWord32 s1662 = table1[s1661];
3157  const SWord8  s1663 = (SWord8) (s1580 >> 16);
3158  const SWord32 s1664 = table2[s1663];
3159  const SWord32 s1665 = s1662 ^ s1664;
3160  const SWord8  s1666 = (SWord8) (s1594 >> 8);
3161  const SWord32 s1667 = table3[s1666];
3162  const SWord32 s1668 = s1665 ^ s1667;
3163  const SWord8  s1669 = (SWord8) s1609;
3164  const SWord32 s1670 = table4[s1669];
3165  const SWord32 s1671 = s1668 ^ s1670;
3166  const SWord32 s1672 = s33 ^ s1671;
3167  const SWord8  s1673 = (SWord8) s1672;
3168  const SWord32 s1674 = table4[s1673];
3169  const SWord32 s1675 = s1660 ^ s1674;
3170  const SWord32 s1676 = s36 ^ s1675;
3171  const SWord8  s1677 = (SWord8) (s1676 >> 24);
3172  const SWord32 s1678 = table1[s1677];
3173  const SWord8  s1679 = (SWord8) (s1642 >> 24);
3174  const SWord32 s1680 = table1[s1679];
3175  const SWord8  s1681 = (SWord8) (s1657 >> 16);
3176  const SWord32 s1682 = table2[s1681];
3177  const SWord32 s1683 = s1680 ^ s1682;
3178  const SWord8  s1684 = (SWord8) (s1672 >> 8);
3179  const SWord32 s1685 = table3[s1684];
3180  const SWord32 s1686 = s1683 ^ s1685;
3181  const SWord8  s1687 = (SWord8) s1628;
3182  const SWord32 s1688 = table4[s1687];
3183  const SWord32 s1689 = s1686 ^ s1688;
3184  const SWord32 s1690 = s39 ^ s1689;
3185  const SWord8  s1691 = (SWord8) (s1690 >> 16);
3186  const SWord32 s1692 = table2[s1691];
3187  const SWord32 s1693 = s1678 ^ s1692;
3188  const SWord8  s1694 = (SWord8) (s1657 >> 24);
3189  const SWord32 s1695 = table1[s1694];
3190  const SWord8  s1696 = (SWord8) (s1672 >> 16);
3191  const SWord32 s1697 = table2[s1696];
3192  const SWord32 s1698 = s1695 ^ s1697;
3193  const SWord8  s1699 = (SWord8) (s1628 >> 8);
3194  const SWord32 s1700 = table3[s1699];
3195  const SWord32 s1701 = s1698 ^ s1700;
3196  const SWord8  s1702 = (SWord8) s1642;
3197  const SWord32 s1703 = table4[s1702];
3198  const SWord32 s1704 = s1701 ^ s1703;
3199  const SWord32 s1705 = s38 ^ s1704;
3200  const SWord8  s1706 = (SWord8) (s1705 >> 8);
3201  const SWord32 s1707 = table3[s1706];
3202  const SWord32 s1708 = s1693 ^ s1707;
3203  const SWord8  s1709 = (SWord8) (s1672 >> 24);
3204  const SWord32 s1710 = table1[s1709];
3205  const SWord8  s1711 = (SWord8) (s1628 >> 16);
3206  const SWord32 s1712 = table2[s1711];
3207  const SWord32 s1713 = s1710 ^ s1712;
3208  const SWord8  s1714 = (SWord8) (s1642 >> 8);
3209  const SWord32 s1715 = table3[s1714];
3210  const SWord32 s1716 = s1713 ^ s1715;
3211  const SWord8  s1717 = (SWord8) s1657;
3212  const SWord32 s1718 = table4[s1717];
3213  const SWord32 s1719 = s1716 ^ s1718;
3214  const SWord32 s1720 = s37 ^ s1719;
3215  const SWord8  s1721 = (SWord8) s1720;
3216  const SWord32 s1722 = table4[s1721];
3217  const SWord32 s1723 = s1708 ^ s1722;
3218  const SWord32 s1724 = s40 ^ s1723;
3219  const SWord8  s1725 = (SWord8) (s1724 >> 24);
3220  const SWord8  s1726 = table0[s1725];
3221  const SWord8  s1727 = (SWord8) (s1690 >> 24);
3222  const SWord32 s1728 = table1[s1727];
3223  const SWord8  s1729 = (SWord8) (s1705 >> 16);
3224  const SWord32 s1730 = table2[s1729];
3225  const SWord32 s1731 = s1728 ^ s1730;
3226  const SWord8  s1732 = (SWord8) (s1720 >> 8);
3227  const SWord32 s1733 = table3[s1732];
3228  const SWord32 s1734 = s1731 ^ s1733;
3229  const SWord8  s1735 = (SWord8) s1676;
3230  const SWord32 s1736 = table4[s1735];
3231  const SWord32 s1737 = s1734 ^ s1736;
3232  const SWord32 s1738 = s43 ^ s1737;
3233  const SWord8  s1739 = (SWord8) (s1738 >> 16);
3234  const SWord8  s1740 = table0[s1739];
3235  const SWord16 s1741 = (((SWord16) s1726) << 8) | ((SWord16) s1740);
3236  const SWord8  s1742 = (SWord8) (s1705 >> 24);
3237  const SWord32 s1743 = table1[s1742];
3238  const SWord8  s1744 = (SWord8) (s1720 >> 16);
3239  const SWord32 s1745 = table2[s1744];
3240  const SWord32 s1746 = s1743 ^ s1745;
3241  const SWord8  s1747 = (SWord8) (s1676 >> 8);
3242  const SWord32 s1748 = table3[s1747];
3243  const SWord32 s1749 = s1746 ^ s1748;
3244  const SWord8  s1750 = (SWord8) s1690;
3245  const SWord32 s1751 = table4[s1750];
3246  const SWord32 s1752 = s1749 ^ s1751;
3247  const SWord32 s1753 = s42 ^ s1752;
3248  const SWord8  s1754 = (SWord8) (s1753 >> 8);
3249  const SWord8  s1755 = table0[s1754];
3250  const SWord8  s1756 = (SWord8) (s1720 >> 24);
3251  const SWord32 s1757 = table1[s1756];
3252  const SWord8  s1758 = (SWord8) (s1676 >> 16);
3253  const SWord32 s1759 = table2[s1758];
3254  const SWord32 s1760 = s1757 ^ s1759;
3255  const SWord8  s1761 = (SWord8) (s1690 >> 8);
3256  const SWord32 s1762 = table3[s1761];
3257  const SWord32 s1763 = s1760 ^ s1762;
3258  const SWord8  s1764 = (SWord8) s1705;
3259  const SWord32 s1765 = table4[s1764];
3260  const SWord32 s1766 = s1763 ^ s1765;
3261  const SWord32 s1767 = s41 ^ s1766;
3262  const SWord8  s1768 = (SWord8) s1767;
3263  const SWord8  s1769 = table0[s1768];
3264  const SWord16 s1770 = (((SWord16) s1755) << 8) | ((SWord16) s1769);
3265  const SWord32 s1771 = (((SWord32) s1741) << 16) | ((SWord32) s1770);
3266  const SWord32 s1772 = s44 ^ s1771;
3267  const SWord8  s1773 = (SWord8) (s1767 >> 24);
3268  const SWord8  s1774 = table0[s1773];
3269  const SWord8  s1775 = (SWord8) (s1724 >> 16);
3270  const SWord8  s1776 = table0[s1775];
3271  const SWord16 s1777 = (((SWord16) s1774) << 8) | ((SWord16) s1776);
3272  const SWord8  s1778 = (SWord8) (s1738 >> 8);
3273  const SWord8  s1779 = table0[s1778];
3274  const SWord8  s1780 = (SWord8) s1753;
3275  const SWord8  s1781 = table0[s1780];
3276  const SWord16 s1782 = (((SWord16) s1779) << 8) | ((SWord16) s1781);
3277  const SWord32 s1783 = (((SWord32) s1777) << 16) | ((SWord32) s1782);
3278  const SWord32 s1784 = s45 ^ s1783;
3279  const SWord8  s1785 = (SWord8) (s1753 >> 24);
3280  const SWord8  s1786 = table0[s1785];
3281  const SWord8  s1787 = (SWord8) (s1767 >> 16);
3282  const SWord8  s1788 = table0[s1787];
3283  const SWord16 s1789 = (((SWord16) s1786) << 8) | ((SWord16) s1788);
3284  const SWord8  s1790 = (SWord8) (s1724 >> 8);
3285  const SWord8  s1791 = table0[s1790];
3286  const SWord8  s1792 = (SWord8) s1738;
3287  const SWord8  s1793 = table0[s1792];
3288  const SWord16 s1794 = (((SWord16) s1791) << 8) | ((SWord16) s1793);
3289  const SWord32 s1795 = (((SWord32) s1789) << 16) | ((SWord32) s1794);
3290  const SWord32 s1796 = s46 ^ s1795;
3291  const SWord8  s1797 = (SWord8) (s1738 >> 24);
3292  const SWord8  s1798 = table0[s1797];
3293  const SWord8  s1799 = (SWord8) (s1753 >> 16);
3294  const SWord8  s1800 = table0[s1799];
3295  const SWord16 s1801 = (((SWord16) s1798) << 8) | ((SWord16) s1800);
3296  const SWord8  s1802 = (SWord8) (s1767 >> 8);
3297  const SWord8  s1803 = table0[s1802];
3298  const SWord8  s1804 = (SWord8) s1724;
3299  const SWord8  s1805 = table0[s1804];
3300  const SWord16 s1806 = (((SWord16) s1803) << 8) | ((SWord16) s1805);
3301  const SWord32 s1807 = (((SWord32) s1801) << 16) | ((SWord32) s1806);
3302  const SWord32 s1808 = s47 ^ s1807;
3303
3304  pt[0] = s1772;
3305  pt[1] = s1784;
3306  pt[2] = s1796;
3307  pt[3] = s1808;
3308}
3309== END: "aes128BlockDecrypt.c" ==================
3310== BEGIN: "aes128Lib.h" ================
3311/* Header file for aes128Lib. Automatically generated by SBV. Do not edit! */
3312
3313#ifndef __aes128Lib__HEADER_INCLUDED__
3314#define __aes128Lib__HEADER_INCLUDED__
3315
3316#include <stdio.h>
3317#include <stdlib.h>
3318#include <inttypes.h>
3319#include <stdint.h>
3320#include <stdbool.h>
3321#include <string.h>
3322#include <math.h>
3323
3324/* The boolean type */
3325typedef bool SBool;
3326
3327/* The float type */
3328typedef float SFloat;
3329
3330/* The double type */
3331typedef double SDouble;
3332
3333/* Unsigned bit-vectors */
3334typedef uint8_t  SWord8;
3335typedef uint16_t SWord16;
3336typedef uint32_t SWord32;
3337typedef uint64_t SWord64;
3338
3339/* Signed bit-vectors */
3340typedef int8_t  SInt8;
3341typedef int16_t SInt16;
3342typedef int32_t SInt32;
3343typedef int64_t SInt64;
3344
3345/* Entry point prototypes: */
3346void aes128KeySchedule(const SWord32 *key, SWord32 *encKS,
3347                       SWord32 *decKS);
3348void aes128BlockEncrypt(const SWord32 *pt, const SWord32 *xkey,
3349                        SWord32 *ct);
3350void aes128BlockDecrypt(const SWord32 *ct, const SWord32 *xkey,
3351                        SWord32 *pt);
3352
3353#endif /* __aes128Lib__HEADER_INCLUDED__ */
3354== END: "aes128Lib.h" ==================
3355== BEGIN: "aes128Lib_driver.c" ================
3356/* Example driver program for aes128Lib. */
3357/* Automatically generated by SBV. Edit as you see fit! */
3358
3359#include <stdio.h>
3360#include "aes128Lib.h"
3361
3362void aes128KeySchedule_driver(void)
3363{
3364  const SWord32 key[4] = {
3365      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL
3366  };
3367
3368  printf("Contents of input array key:\n");
3369  int key_ctr;
3370  for(key_ctr = 0; key_ctr < 4 ; ++key_ctr)
3371    printf("  key[%1d] = 0x%08"PRIx32"UL\n", key_ctr ,key[key_ctr]);
3372
3373  SWord32 encKS[44];
3374  SWord32 decKS[44];
3375
3376  aes128KeySchedule(key, encKS, decKS);
3377
3378  printf("aes128KeySchedule(key, encKS, decKS) ->\n");
3379  int encKS_ctr;
3380  for(encKS_ctr = 0; encKS_ctr < 44 ; ++encKS_ctr)
3381    printf("  encKS[%2d] = 0x%08"PRIx32"UL\n", encKS_ctr ,encKS[encKS_ctr]);
3382  int decKS_ctr;
3383  for(decKS_ctr = 0; decKS_ctr < 44 ; ++decKS_ctr)
3384    printf("  decKS[%2d] = 0x%08"PRIx32"UL\n", decKS_ctr ,decKS[decKS_ctr]);
3385}
3386
3387void aes128BlockEncrypt_driver(void)
3388{
3389  const SWord32 pt[4] = {
3390      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL
3391  };
3392
3393  printf("Contents of input array pt:\n");
3394  int pt_ctr;
3395  for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)
3396    printf("  pt[%1d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);
3397
3398  const SWord32 xkey[44] = {
3399      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3400      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3401      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3402      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3403      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3404      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3405      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3406      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3407      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3408      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3409      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL
3410  };
3411
3412  printf("Contents of input array xkey:\n");
3413  int xkey_ctr;
3414  for(xkey_ctr = 0; xkey_ctr < 44 ; ++xkey_ctr)
3415    printf("  xkey[%2d] = 0x%08"PRIx32"UL\n", xkey_ctr ,xkey[xkey_ctr]);
3416
3417  SWord32 ct[4];
3418
3419  aes128BlockEncrypt(pt, xkey, ct);
3420
3421  printf("aes128BlockEncrypt(pt, xkey, ct) ->\n");
3422  int ct_ctr;
3423  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)
3424    printf("  ct[%1d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);
3425}
3426
3427void aes128BlockDecrypt_driver(void)
3428{
3429  const SWord32 ct[4] = {
3430      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL
3431  };
3432
3433  printf("Contents of input array ct:\n");
3434  int ct_ctr;
3435  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)
3436    printf("  ct[%1d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);
3437
3438  const SWord32 xkey[44] = {
3439      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3440      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3441      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3442      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3443      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3444      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3445      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3446      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3447      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3448      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,
3449      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL
3450  };
3451
3452  printf("Contents of input array xkey:\n");
3453  int xkey_ctr;
3454  for(xkey_ctr = 0; xkey_ctr < 44 ; ++xkey_ctr)
3455    printf("  xkey[%2d] = 0x%08"PRIx32"UL\n", xkey_ctr ,xkey[xkey_ctr]);
3456
3457  SWord32 pt[4];
3458
3459  aes128BlockDecrypt(ct, xkey, pt);
3460
3461  printf("aes128BlockDecrypt(ct, xkey, pt) ->\n");
3462  int pt_ctr;
3463  for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)
3464    printf("  pt[%1d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);
3465}
3466
3467int main(void)
3468{
3469  printf("====================================\n");
3470  printf("** Driver run for aes128KeySchedule:\n");
3471  printf("====================================\n");
3472  aes128KeySchedule_driver();
3473
3474  printf("=====================================\n");
3475  printf("** Driver run for aes128BlockEncrypt:\n");
3476  printf("=====================================\n");
3477  aes128BlockEncrypt_driver();
3478
3479  printf("=====================================\n");
3480  printf("** Driver run for aes128BlockDecrypt:\n");
3481  printf("=====================================\n");
3482  aes128BlockDecrypt_driver();
3483
3484  return 0;
3485}
3486== END: "aes128Lib_driver.c" ==================
3487== BEGIN: "Makefile" ================
3488# Makefile for aes128Lib. Automatically generated by SBV. Do not edit!
3489
3490# include any user-defined .mk file in the current directory.
3491-include *.mk
3492
3493CC?=gcc
3494CCFLAGS?=-Wall -O3 -DNDEBUG -fomit-frame-pointer
3495AR?=ar
3496ARFLAGS?=cr
3497
3498all: aes128Lib.a aes128Lib_driver
3499
3500aes128Lib.a: aes128KeySchedule.o aes128BlockEncrypt.o aes128BlockDecrypt.o
3501	${AR} ${ARFLAGS} $@ $^
3502
3503aes128Lib_driver: aes128Lib_driver.c aes128Lib.h
3504	${CC} ${CCFLAGS} $< -o $@ aes128Lib.a
3505
3506aes128KeySchedule.o: aes128KeySchedule.c aes128Lib.h
3507	${CC} ${CCFLAGS} -c $< -o $@
3508
3509aes128BlockEncrypt.o: aes128BlockEncrypt.c aes128Lib.h
3510	${CC} ${CCFLAGS} -c $< -o $@
3511
3512aes128BlockDecrypt.o: aes128BlockDecrypt.c aes128Lib.h
3513	${CC} ${CCFLAGS} -c $< -o $@
3514
3515clean:
3516	rm -f *.o
3517
3518veryclean: clean
3519	rm -f aes128Lib.a aes128Lib_driver
3520== END: "Makefile" ==================