summaryrefslogtreecommitdiff
path: root/cipher/rijndael-amd64.S
blob: 35a9d26390058cbe1525244216bd56982af4da06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
/* rinjdael-amd64.S  -  AMD64 assembly implementation of AES cipher
 *
 * Copyright © 2013 Jussi Kivilinna <jussi.kivilinna@iki.fi>
 *
 * This file is part of Libgcrypt.
 *
 * Libgcrypt is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * Libgcrypt is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this program; if not, see <http://www.gnu.org/licenses/>.
 */

#ifdef __x86_64
#include <config.h>
#if defined(HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS) && defined(USE_AES)

#ifdef __PIC__
#  define RIP (%rip)
#else
#  define RIP
#endif

.text

/* table macros */
#define E0	(.LtableE0-.LtableE0)
#define E1	(.LtableE1-.LtableE0)
#define E2	(.LtableE2-.LtableE0)
#define E3	(.LtableE3-.LtableE0)
#define Es0	(.LtableEs0-.LtableE0)
#define Es1	(.LtableEs1-.LtableE0)
#define Es2	(.LtableEs2-.LtableE0)
#define Es3	(.LtableEs3-.LtableE0)
#define Esize	8

#define D0	(.LtableD0-.LtableD0)
#define D1	(.LtableD1-.LtableD0)
#define D2	(.LtableD2-.LtableD0)
#define D3	(.LtableD3-.LtableD0)
#define Ds0	(.LtableDs0-.LtableD0)
#define Ds1	(.LtableDs1-.LtableD0)
#define Ds2	(.LtableDs2-.LtableD0)
#define Ds3	(.LtableDs3-.LtableD0)
#define Dsize	8

/* register macros */
#define CTX	%rdi
#define RTAB	%r12

#define RA	%rax
#define RB	%rbx
#define RC	%rcx
#define RD	%rdx

#define RAd	%eax
#define RBd	%ebx
#define RCd	%ecx
#define RDd	%edx

#define RAbl	%al
#define RBbl	%bl
#define RCbl	%cl
#define RDbl	%dl

#define RAbh	%ah
#define RBbh	%bh
#define RCbh	%ch
#define RDbh	%dh

#define RNA	%r8
#define RNB	%r9
#define RNC	%r10
#define RND	%r11

#define RNAd	%r8d
#define RNBd	%r9d
#define RNCd	%r10d
#define RNDd	%r11d

#define RT0	%rbp
#define RT1	%rsi

#define RT0d	%ebp
#define RT1d	%esi

/* helper macros */
#define do16bit(op, source, tablemul, table1, dest1, table2, dest2, t0, t1) \
	movzbl source ## bh,			t1 ## d; \
	movzbl source ## bl,			t0 ## d; \
	op ## l table1(RTAB,t0,tablemul),	dest1 ## d; \
	op ## l table2(RTAB,t1,tablemul),	dest2 ## d;

#define do16bit_shr(shf, op, source, tablemul, table1, dest1, table2, dest2, t0, t1) \
	movzbl source ## bl,			t0 ## d; \
	movzbl source ## bh,			t1 ## d; \
	shrl $(shf),				source ## d; \
	op ## l table1(RTAB,t0,tablemul),	dest1 ## d; \
	op ## l table2(RTAB,t1,tablemul),	dest2 ## d;

/***********************************************************************
 * AMD64 assembly implementation of the AES cipher
 ***********************************************************************/
#define addroundkey(round, ra, rb, rc, rd) \
	xorl (((round) * 16) + 0 * 4)(CTX), ra ## d; \
	xorl (((round) * 16) + 1 * 4)(CTX), rb ## d; \
	xorl (((round) * 16) + 2 * 4)(CTX), rc ## d; \
	xorl (((round) * 16) + 3 * 4)(CTX), rd ## d;

#define do_encround(next_r) \
	do16bit_shr(16, mov, RA, Esize, E0, RNA, E1, RND, RT0, RT1); \
	do16bit(        mov, RA, Esize, E2, RNC, E3, RNB, RT0, RT1); \
	movl (((next_r) * 16) + 0 * 4)(CTX), RAd; \
	xorl RNAd, RAd; \
	\
	do16bit_shr(16, xor, RD, Esize, E0, RND, E1, RNC, RT0, RT1); \
	do16bit(        xor, RD, Esize, E2, RNB, E3, RA,  RT0, RT1); \
	movl (((next_r) * 16) + 3 * 4)(CTX), RDd; \
	xorl RNDd, RDd; \
	\
	do16bit_shr(16, xor, RC, Esize, E0, RNC, E1, RNB, RT0, RT1); \
	do16bit(        xor, RC, Esize, E2, RA,  E3, RD,  RT0, RT1); \
	movl (((next_r) * 16) + 2 * 4)(CTX), RCd; \
	xorl RNCd, RCd; \
	\
	do16bit_shr(16, xor, RB, Esize, E0, RNB, E1, RA,  RT0, RT1); \
	do16bit(        xor, RB, Esize, E2, RD,  E3, RC,  RT0, RT1); \
	movl (((next_r) * 16) + 1 * 4)(CTX), RBd; \
	xorl RNBd, RBd;

#define do_lastencround(next_r) \
	do16bit_shr(16, mov, RA, Esize, Es0, RNA, Es1, RND, RT0, RT1); \
	do16bit(        mov, RA, Esize, Es2, RNC, Es3, RNB, RT0, RT1); \
	\
	do16bit_shr(16,  or, RB, Esize, Es0, RNB, Es1, RNA, RT0, RT1); \
	do16bit(         or, RB, Esize, Es2, RND, Es3, RNC, RT0, RT1); \
	\
	do16bit_shr(16,  or, RC, Esize, Es0, RNC, Es1, RNB, RT0, RT1); \
	do16bit(         or, RC, Esize, Es2, RNA, Es3, RND, RT0, RT1); \
	\
	do16bit_shr(16,  or, RD, Esize, Es0, RND, Es1, RNC, RT0, RT1); \
	do16bit(         or, RD, Esize, Es2, RNB, Es3, RNA, RT0, RT1);

#define firstencround(round) \
	addroundkey(round, RA, RB, RC, RD); \
	do_encround((round) + 1);

#define encround(round) \
	do_encround((round) + 1);

#define lastencround(round) \
	do_lastencround(); \
	addroundkey((round) + 1, RNA, RNB, RNC, RND);

.align 8
.globl _gcry_aes_amd64_encrypt_block
.type   _gcry_aes_amd64_encrypt_block,@function;

_gcry_aes_amd64_encrypt_block:
	/* input:
	 *	%rdi: keysched, CTX
	 *	%rsi: dst
	 *	%rdx: src
	 *	%ecx: number of rounds.. 10, 12 or 14
	 */
	subq $(5 * 8), %rsp;
	movq %rsi, (0 * 8)(%rsp);
	movl %ecx, (1 * 8)(%rsp);
	movq %rbp, (2 * 8)(%rsp);
	movq %rbx, (3 * 8)(%rsp);
	movq %r12, (4 * 8)(%rsp);

	leaq .LtableE0 RIP, RTAB;

	/* read input block */
	movl 0 * 4(%rdx), RAd;
	movl 1 * 4(%rdx), RBd;
	movl 2 * 4(%rdx), RCd;
	movl 3 * 4(%rdx), RDd;

	firstencround(0);
	encround(1);
	encround(2);
	encround(3);
	encround(4);
	encround(5);
	encround(6);
	encround(7);
	encround(8);
	cmpl $12, (1 * 8)(%rsp);
	jnb .Lenc_not_128;
	lastencround(9);

.align 4
.Lenc_done:
	/* write output block */
	movq (0 * 8)(%rsp), %rsi;
	movl RNAd, 0 * 4(%rsi);
	movl RNBd, 1 * 4(%rsi);
	movl RNCd, 2 * 4(%rsi);
	movl RNDd, 3 * 4(%rsi);

	movq (4 * 8)(%rsp), %r12;
	movq (3 * 8)(%rsp), %rbx;
	movq (2 * 8)(%rsp), %rbp;
	addq $(5 * 8), %rsp;

	ret;

.align 4
.Lenc_not_128:
	je .Lenc_192

	encround(9);
	encround(10);
	encround(11);
	encround(12);
	lastencround(13);

	jmp .Lenc_done;

.align 4
.Lenc_192:
	encround(9);
	encround(10);
	lastencround(11);

	jmp .Lenc_done;
.size _gcry_aes_amd64_encrypt_block,.-_gcry_aes_amd64_encrypt_block;

#define do_decround(next_r) \
	do16bit_shr(16, mov, RA, Dsize, D0, RNA, D1, RNB, RT0, RT1); \
	do16bit(        mov, RA, Dsize, D2, RNC, D3, RND, RT0, RT1); \
	movl (((next_r) * 16) + 0 * 4)(CTX), RAd; \
	xorl RNAd, RAd; \
	\
	do16bit_shr(16, xor, RB, Dsize, D0, RNB, D1, RNC, RT0, RT1); \
	do16bit(        xor, RB, Dsize, D2, RND, D3, RA,  RT0, RT1); \
	movl (((next_r) * 16) + 1 * 4)(CTX), RBd; \
	xorl RNBd, RBd; \
	\
	do16bit_shr(16, xor, RC, Dsize, D0, RNC, D1, RND, RT0, RT1); \
	do16bit(        xor, RC, Dsize, D2, RA,  D3, RB,  RT0, RT1); \
	movl (((next_r) * 16) + 2 * 4)(CTX), RCd; \
	xorl RNCd, RCd; \
	\
	do16bit_shr(16, xor, RD, Dsize, D0, RND, D1, RA,  RT0, RT1); \
	do16bit(        xor, RD, Dsize, D2, RB,  D3, RC,  RT0, RT1); \
	movl (((next_r) * 16) + 3 * 4)(CTX), RDd; \
	xorl RNDd, RDd; \

#define do_lastdecround() \
	do16bit_shr(16, mov, RA, Dsize, Ds0, RNA, Ds1, RNB, RT0, RT1); \
	do16bit(        mov, RA, Dsize, Ds2, RNC, Ds3, RND, RT0, RT1); \
	\
	do16bit_shr(16,  or, RB, Dsize, Ds0, RNB, Ds1, RNC, RT0, RT1); \
	do16bit(         or, RB, Dsize, Ds2, RND, Ds3, RNA, RT0, RT1); \
	\
	do16bit_shr(16,  or, RC, Dsize, Ds0, RNC, Ds1, RND, RT0, RT1); \
	do16bit(         or, RC, Dsize, Ds2, RNA, Ds3, RNB, RT0, RT1); \
	\
	do16bit_shr(16,  or, RD, Dsize, Ds0, RND, Ds1, RNA, RT0, RT1); \
	do16bit(         or, RD, Dsize, Ds2, RNB, Ds3, RNC, RT0, RT1);

#define firstdecround(round) \
	addroundkey((round + 1), RA, RB, RC, RD); \
	do_decround(round);

#define decround(round) \
	do_decround(round);

#define lastdecround(round) \
	do_lastdecround(); \
	addroundkey(round, RNA, RNB, RNC, RND);

.align 8
.globl _gcry_aes_amd64_decrypt_block
.type   _gcry_aes_amd64_decrypt_block,@function;

_gcry_aes_amd64_decrypt_block:
	/* input:
	 *	%rdi: keysched, CTX
	 *	%rsi: dst
	 *	%rdx: src
	 *	%ecx: number of rounds.. 10, 12 or 14
	 */
	subq $(5 * 8), %rsp;
	movq %rsi, (0 * 8)(%rsp);
	movl %ecx, (1 * 8)(%rsp);
	movq %rbp, (2 * 8)(%rsp);
	movq %rbx, (3 * 8)(%rsp);
	movq %r12, (4 * 8)(%rsp);

	leaq .LtableD0 RIP, RTAB;

	/* read input block */
	movl 0 * 4(%rdx), RAd;
	movl 1 * 4(%rdx), RBd;
	movl 2 * 4(%rdx), RCd;
	movl 3 * 4(%rdx), RDd;

	cmpl $12, (1 * 8)(%rsp);
	jnb .Ldec_256;

	firstdecround(9);
.align 4
.Ldec_tail:
	decround(8);
	decround(7);
	decround(6);
	decround(5);
	decround(4);
	decround(3);
	decround(2);
	decround(1);
	lastdecround(0);

	/* write output block */
	movq (0 * 8)(%rsp), %rsi;
	movl RNAd, 0 * 4(%rsi);
	movl RNBd, 1 * 4(%rsi);
	movl RNCd, 2 * 4(%rsi);
	movl RNDd, 3 * 4(%rsi);

	movq (4 * 8)(%rsp), %r12;
	movq (3 * 8)(%rsp), %rbx;
	movq (2 * 8)(%rsp), %rbp;
	addq $(5 * 8), %rsp;

	ret;

.align 4
.Ldec_256:
	je .Ldec_192;

	firstdecround(13);
	decround(12);
	decround(11);
	decround(10);
	decround(9);

	jmp .Ldec_tail;

.align 4
.Ldec_192:
	firstdecround(11);
	decround(10);
	decround(9);

	jmp .Ldec_tail;
.size _gcry_aes_amd64_decrypt_block,.-_gcry_aes_amd64_decrypt_block;

.data
.align 16

/* Encryption tables */
.LtableE0:
.long 0xa56363c6
.LtableEs0:
.long             0x00000063, 0x847c7cf8, 0x0000007c
.long 0x997777ee, 0x00000077, 0x8d7b7bf6, 0x0000007b
.long 0x0df2f2ff, 0x000000f2, 0xbd6b6bd6, 0x0000006b
.long 0xb16f6fde, 0x0000006f, 0x54c5c591, 0x000000c5
.long 0x50303060, 0x00000030, 0x03010102, 0x00000001
.long 0xa96767ce, 0x00000067, 0x7d2b2b56, 0x0000002b
.long 0x19fefee7, 0x000000fe, 0x62d7d7b5, 0x000000d7
.long 0xe6abab4d, 0x000000ab, 0x9a7676ec, 0x00000076
.long 0x45caca8f, 0x000000ca, 0x9d82821f, 0x00000082
.long 0x40c9c989, 0x000000c9, 0x877d7dfa, 0x0000007d
.long 0x15fafaef, 0x000000fa, 0xeb5959b2, 0x00000059
.long 0xc947478e, 0x00000047, 0x0bf0f0fb, 0x000000f0
.long 0xecadad41, 0x000000ad, 0x67d4d4b3, 0x000000d4
.long 0xfda2a25f, 0x000000a2, 0xeaafaf45, 0x000000af
.long 0xbf9c9c23, 0x0000009c, 0xf7a4a453, 0x000000a4
.long 0x967272e4, 0x00000072, 0x5bc0c09b, 0x000000c0
.long 0xc2b7b775, 0x000000b7, 0x1cfdfde1, 0x000000fd
.long 0xae93933d, 0x00000093, 0x6a26264c, 0x00000026
.long 0x5a36366c, 0x00000036, 0x413f3f7e, 0x0000003f
.long 0x02f7f7f5, 0x000000f7, 0x4fcccc83, 0x000000cc
.long 0x5c343468, 0x00000034, 0xf4a5a551, 0x000000a5
.long 0x34e5e5d1, 0x000000e5, 0x08f1f1f9, 0x000000f1
.long 0x937171e2, 0x00000071, 0x73d8d8ab, 0x000000d8
.long 0x53313162, 0x00000031, 0x3f15152a, 0x00000015
.long 0x0c040408, 0x00000004, 0x52c7c795, 0x000000c7
.long 0x65232346, 0x00000023, 0x5ec3c39d, 0x000000c3
.long 0x28181830, 0x00000018, 0xa1969637, 0x00000096
.long 0x0f05050a, 0x00000005, 0xb59a9a2f, 0x0000009a
.long 0x0907070e, 0x00000007, 0x36121224, 0x00000012
.long 0x9b80801b, 0x00000080, 0x3de2e2df, 0x000000e2
.long 0x26ebebcd, 0x000000eb, 0x6927274e, 0x00000027
.long 0xcdb2b27f, 0x000000b2, 0x9f7575ea, 0x00000075
.long 0x1b090912, 0x00000009, 0x9e83831d, 0x00000083
.long 0x742c2c58, 0x0000002c, 0x2e1a1a34, 0x0000001a
.long 0x2d1b1b36, 0x0000001b, 0xb26e6edc, 0x0000006e
.long 0xee5a5ab4, 0x0000005a, 0xfba0a05b, 0x000000a0
.long 0xf65252a4, 0x00000052, 0x4d3b3b76, 0x0000003b
.long 0x61d6d6b7, 0x000000d6, 0xceb3b37d, 0x000000b3
.long 0x7b292952, 0x00000029, 0x3ee3e3dd, 0x000000e3
.long 0x712f2f5e, 0x0000002f, 0x97848413, 0x00000084
.long 0xf55353a6, 0x00000053, 0x68d1d1b9, 0x000000d1
.long 0x00000000, 0x00000000, 0x2cededc1, 0x000000ed
.long 0x60202040, 0x00000020, 0x1ffcfce3, 0x000000fc
.long 0xc8b1b179, 0x000000b1, 0xed5b5bb6, 0x0000005b
.long 0xbe6a6ad4, 0x0000006a, 0x46cbcb8d, 0x000000cb
.long 0xd9bebe67, 0x000000be, 0x4b393972, 0x00000039
.long 0xde4a4a94, 0x0000004a, 0xd44c4c98, 0x0000004c
.long 0xe85858b0, 0x00000058, 0x4acfcf85, 0x000000cf
.long 0x6bd0d0bb, 0x000000d0, 0x2aefefc5, 0x000000ef
.long 0xe5aaaa4f, 0x000000aa, 0x16fbfbed, 0x000000fb
.long 0xc5434386, 0x00000043, 0xd74d4d9a, 0x0000004d
.long 0x55333366, 0x00000033, 0x94858511, 0x00000085
.long 0xcf45458a, 0x00000045, 0x10f9f9e9, 0x000000f9
.long 0x06020204, 0x00000002, 0x817f7ffe, 0x0000007f
.long 0xf05050a0, 0x00000050, 0x443c3c78, 0x0000003c
.long 0xba9f9f25, 0x0000009f, 0xe3a8a84b, 0x000000a8
.long 0xf35151a2, 0x00000051, 0xfea3a35d, 0x000000a3
.long 0xc0404080, 0x00000040, 0x8a8f8f05, 0x0000008f
.long 0xad92923f, 0x00000092, 0xbc9d9d21, 0x0000009d
.long 0x48383870, 0x00000038, 0x04f5f5f1, 0x000000f5
.long 0xdfbcbc63, 0x000000bc, 0xc1b6b677, 0x000000b6
.long 0x75dadaaf, 0x000000da, 0x63212142, 0x00000021
.long 0x30101020, 0x00000010, 0x1affffe5, 0x000000ff
.long 0x0ef3f3fd, 0x000000f3, 0x6dd2d2bf, 0x000000d2
.long 0x4ccdcd81, 0x000000cd, 0x140c0c18, 0x0000000c
.long 0x35131326, 0x00000013, 0x2fececc3, 0x000000ec
.long 0xe15f5fbe, 0x0000005f, 0xa2979735, 0x00000097
.long 0xcc444488, 0x00000044, 0x3917172e, 0x00000017
.long 0x57c4c493, 0x000000c4, 0xf2a7a755, 0x000000a7
.long 0x827e7efc, 0x0000007e, 0x473d3d7a, 0x0000003d
.long 0xac6464c8, 0x00000064, 0xe75d5dba, 0x0000005d
.long 0x2b191932, 0x00000019, 0x957373e6, 0x00000073
.long 0xa06060c0, 0x00000060, 0x98818119, 0x00000081
.long 0xd14f4f9e, 0x0000004f, 0x7fdcdca3, 0x000000dc
.long 0x66222244, 0x00000022, 0x7e2a2a54, 0x0000002a
.long 0xab90903b, 0x00000090, 0x8388880b, 0x00000088
.long 0xca46468c, 0x00000046, 0x29eeeec7, 0x000000ee
.long 0xd3b8b86b, 0x000000b8, 0x3c141428, 0x00000014
.long 0x79dedea7, 0x000000de, 0xe25e5ebc, 0x0000005e
.long 0x1d0b0b16, 0x0000000b, 0x76dbdbad, 0x000000db
.long 0x3be0e0db, 0x000000e0, 0x56323264, 0x00000032
.long 0x4e3a3a74, 0x0000003a, 0x1e0a0a14, 0x0000000a
.long 0xdb494992, 0x00000049, 0x0a06060c, 0x00000006
.long 0x6c242448, 0x00000024, 0xe45c5cb8, 0x0000005c
.long 0x5dc2c29f, 0x000000c2, 0x6ed3d3bd, 0x000000d3
.long 0xefacac43, 0x000000ac, 0xa66262c4, 0x00000062
.long 0xa8919139, 0x00000091, 0xa4959531, 0x00000095
.long 0x37e4e4d3, 0x000000e4, 0x8b7979f2, 0x00000079
.long 0x32e7e7d5, 0x000000e7, 0x43c8c88b, 0x000000c8
.long 0x5937376e, 0x00000037, 0xb76d6dda, 0x0000006d
.long 0x8c8d8d01, 0x0000008d, 0x64d5d5b1, 0x000000d5
.long 0xd24e4e9c, 0x0000004e, 0xe0a9a949, 0x000000a9
.long 0xb46c6cd8, 0x0000006c, 0xfa5656ac, 0x00000056
.long 0x07f4f4f3, 0x000000f4, 0x25eaeacf, 0x000000ea
.long 0xaf6565ca, 0x00000065, 0x8e7a7af4, 0x0000007a
.long 0xe9aeae47, 0x000000ae, 0x18080810, 0x00000008
.long 0xd5baba6f, 0x000000ba, 0x887878f0, 0x00000078
.long 0x6f25254a, 0x00000025, 0x722e2e5c, 0x0000002e
.long 0x241c1c38, 0x0000001c, 0xf1a6a657, 0x000000a6
.long 0xc7b4b473, 0x000000b4, 0x51c6c697, 0x000000c6
.long 0x23e8e8cb, 0x000000e8, 0x7cdddda1, 0x000000dd
.long 0x9c7474e8, 0x00000074, 0x211f1f3e, 0x0000001f
.long 0xdd4b4b96, 0x0000004b, 0xdcbdbd61, 0x000000bd
.long 0x868b8b0d, 0x0000008b, 0x858a8a0f, 0x0000008a
.long 0x907070e0, 0x00000070, 0x423e3e7c, 0x0000003e
.long 0xc4b5b571, 0x000000b5, 0xaa6666cc, 0x00000066
.long 0xd8484890, 0x00000048, 0x05030306, 0x00000003
.long 0x01f6f6f7, 0x000000f6, 0x120e0e1c, 0x0000000e
.long 0xa36161c2, 0x00000061, 0x5f35356a, 0x00000035
.long 0xf95757ae, 0x00000057, 0xd0b9b969, 0x000000b9
.long 0x91868617, 0x00000086, 0x58c1c199, 0x000000c1
.long 0x271d1d3a, 0x0000001d, 0xb99e9e27, 0x0000009e
.long 0x38e1e1d9, 0x000000e1, 0x13f8f8eb, 0x000000f8
.long 0xb398982b, 0x00000098, 0x33111122, 0x00000011
.long 0xbb6969d2, 0x00000069, 0x70d9d9a9, 0x000000d9
.long 0x898e8e07, 0x0000008e, 0xa7949433, 0x00000094
.long 0xb69b9b2d, 0x0000009b, 0x221e1e3c, 0x0000001e
.long 0x92878715, 0x00000087, 0x20e9e9c9, 0x000000e9
.long 0x49cece87, 0x000000ce, 0xff5555aa, 0x00000055
.long 0x78282850, 0x00000028, 0x7adfdfa5, 0x000000df
.long 0x8f8c8c03, 0x0000008c, 0xf8a1a159, 0x000000a1
.long 0x80898909, 0x00000089, 0x170d0d1a, 0x0000000d
.long 0xdabfbf65, 0x000000bf, 0x31e6e6d7, 0x000000e6
.long 0xc6424284, 0x00000042, 0xb86868d0, 0x00000068
.long 0xc3414182, 0x00000041, 0xb0999929, 0x00000099
.long 0x772d2d5a, 0x0000002d, 0x110f0f1e, 0x0000000f
.long 0xcbb0b07b, 0x000000b0, 0xfc5454a8, 0x00000054
.long 0xd6bbbb6d, 0x000000bb, 0x3a16162c, 0x00000016
.LtableE1:
.long 0x6363c6a5
.LtableEs1:
.long             0x00006300, 0x7c7cf884, 0x00007c00
.long 0x7777ee99, 0x00007700, 0x7b7bf68d, 0x00007b00
.long 0xf2f2ff0d, 0x0000f200, 0x6b6bd6bd, 0x00006b00
.long 0x6f6fdeb1, 0x00006f00, 0xc5c59154, 0x0000c500
.long 0x30306050, 0x00003000, 0x01010203, 0x00000100
.long 0x6767cea9, 0x00006700, 0x2b2b567d, 0x00002b00
.long 0xfefee719, 0x0000fe00, 0xd7d7b562, 0x0000d700
.long 0xabab4de6, 0x0000ab00, 0x7676ec9a, 0x00007600
.long 0xcaca8f45, 0x0000ca00, 0x82821f9d, 0x00008200
.long 0xc9c98940, 0x0000c900, 0x7d7dfa87, 0x00007d00
.long 0xfafaef15, 0x0000fa00, 0x5959b2eb, 0x00005900
.long 0x47478ec9, 0x00004700, 0xf0f0fb0b, 0x0000f000
.long 0xadad41ec, 0x0000ad00, 0xd4d4b367, 0x0000d400
.long 0xa2a25ffd, 0x0000a200, 0xafaf45ea, 0x0000af00
.long 0x9c9c23bf, 0x00009c00, 0xa4a453f7, 0x0000a400
.long 0x7272e496, 0x00007200, 0xc0c09b5b, 0x0000c000
.long 0xb7b775c2, 0x0000b700, 0xfdfde11c, 0x0000fd00
.long 0x93933dae, 0x00009300, 0x26264c6a, 0x00002600
.long 0x36366c5a, 0x00003600, 0x3f3f7e41, 0x00003f00
.long 0xf7f7f502, 0x0000f700, 0xcccc834f, 0x0000cc00
.long 0x3434685c, 0x00003400, 0xa5a551f4, 0x0000a500
.long 0xe5e5d134, 0x0000e500, 0xf1f1f908, 0x0000f100
.long 0x7171e293, 0x00007100, 0xd8d8ab73, 0x0000d800
.long 0x31316253, 0x00003100, 0x15152a3f, 0x00001500
.long 0x0404080c, 0x00000400, 0xc7c79552, 0x0000c700
.long 0x23234665, 0x00002300, 0xc3c39d5e, 0x0000c300
.long 0x18183028, 0x00001800, 0x969637a1, 0x00009600
.long 0x05050a0f, 0x00000500, 0x9a9a2fb5, 0x00009a00
.long 0x07070e09, 0x00000700, 0x12122436, 0x00001200
.long 0x80801b9b, 0x00008000, 0xe2e2df3d, 0x0000e200
.long 0xebebcd26, 0x0000eb00, 0x27274e69, 0x00002700
.long 0xb2b27fcd, 0x0000b200, 0x7575ea9f, 0x00007500
.long 0x0909121b, 0x00000900, 0x83831d9e, 0x00008300
.long 0x2c2c5874, 0x00002c00, 0x1a1a342e, 0x00001a00
.long 0x1b1b362d, 0x00001b00, 0x6e6edcb2, 0x00006e00
.long 0x5a5ab4ee, 0x00005a00, 0xa0a05bfb, 0x0000a000
.long 0x5252a4f6, 0x00005200, 0x3b3b764d, 0x00003b00
.long 0xd6d6b761, 0x0000d600, 0xb3b37dce, 0x0000b300
.long 0x2929527b, 0x00002900, 0xe3e3dd3e, 0x0000e300
.long 0x2f2f5e71, 0x00002f00, 0x84841397, 0x00008400
.long 0x5353a6f5, 0x00005300, 0xd1d1b968, 0x0000d100
.long 0x00000000, 0x00000000, 0xededc12c, 0x0000ed00
.long 0x20204060, 0x00002000, 0xfcfce31f, 0x0000fc00
.long 0xb1b179c8, 0x0000b100, 0x5b5bb6ed, 0x00005b00
.long 0x6a6ad4be, 0x00006a00, 0xcbcb8d46, 0x0000cb00
.long 0xbebe67d9, 0x0000be00, 0x3939724b, 0x00003900
.long 0x4a4a94de, 0x00004a00, 0x4c4c98d4, 0x00004c00
.long 0x5858b0e8, 0x00005800, 0xcfcf854a, 0x0000cf00
.long 0xd0d0bb6b, 0x0000d000, 0xefefc52a, 0x0000ef00
.long 0xaaaa4fe5, 0x0000aa00, 0xfbfbed16, 0x0000fb00
.long 0x434386c5, 0x00004300, 0x4d4d9ad7, 0x00004d00
.long 0x33336655, 0x00003300, 0x85851194, 0x00008500
.long 0x45458acf, 0x00004500, 0xf9f9e910, 0x0000f900
.long 0x02020406, 0x00000200, 0x7f7ffe81, 0x00007f00
.long 0x5050a0f0, 0x00005000, 0x3c3c7844, 0x00003c00
.long 0x9f9f25ba, 0x00009f00, 0xa8a84be3, 0x0000a800
.long 0x5151a2f3, 0x00005100, 0xa3a35dfe, 0x0000a300
.long 0x404080c0, 0x00004000, 0x8f8f058a, 0x00008f00
.long 0x92923fad, 0x00009200, 0x9d9d21bc, 0x00009d00
.long 0x38387048, 0x00003800, 0xf5f5f104, 0x0000f500
.long 0xbcbc63df, 0x0000bc00, 0xb6b677c1, 0x0000b600
.long 0xdadaaf75, 0x0000da00, 0x21214263, 0x00002100
.long 0x10102030, 0x00001000, 0xffffe51a, 0x0000ff00
.long 0xf3f3fd0e, 0x0000f300, 0xd2d2bf6d, 0x0000d200
.long 0xcdcd814c, 0x0000cd00, 0x0c0c1814, 0x00000c00
.long 0x13132635, 0x00001300, 0xececc32f, 0x0000ec00
.long 0x5f5fbee1, 0x00005f00, 0x979735a2, 0x00009700
.long 0x444488cc, 0x00004400, 0x17172e39, 0x00001700
.long 0xc4c49357, 0x0000c400, 0xa7a755f2, 0x0000a700
.long 0x7e7efc82, 0x00007e00, 0x3d3d7a47, 0x00003d00
.long 0x6464c8ac, 0x00006400, 0x5d5dbae7, 0x00005d00
.long 0x1919322b, 0x00001900, 0x7373e695, 0x00007300
.long 0x6060c0a0, 0x00006000, 0x81811998, 0x00008100
.long 0x4f4f9ed1, 0x00004f00, 0xdcdca37f, 0x0000dc00
.long 0x22224466, 0x00002200, 0x2a2a547e, 0x00002a00
.long 0x90903bab, 0x00009000, 0x88880b83, 0x00008800
.long 0x46468cca, 0x00004600, 0xeeeec729, 0x0000ee00
.long 0xb8b86bd3, 0x0000b800, 0x1414283c, 0x00001400
.long 0xdedea779, 0x0000de00, 0x5e5ebce2, 0x00005e00
.long 0x0b0b161d, 0x00000b00, 0xdbdbad76, 0x0000db00
.long 0xe0e0db3b, 0x0000e000, 0x32326456, 0x00003200
.long 0x3a3a744e, 0x00003a00, 0x0a0a141e, 0x00000a00
.long 0x494992db, 0x00004900, 0x06060c0a, 0x00000600
.long 0x2424486c, 0x00002400, 0x5c5cb8e4, 0x00005c00
.long 0xc2c29f5d, 0x0000c200, 0xd3d3bd6e, 0x0000d300
.long 0xacac43ef, 0x0000ac00, 0x6262c4a6, 0x00006200
.long 0x919139a8, 0x00009100, 0x959531a4, 0x00009500
.long 0xe4e4d337, 0x0000e400, 0x7979f28b, 0x00007900
.long 0xe7e7d532, 0x0000e700, 0xc8c88b43, 0x0000c800
.long 0x37376e59, 0x00003700, 0x6d6ddab7, 0x00006d00
.long 0x8d8d018c, 0x00008d00, 0xd5d5b164, 0x0000d500
.long 0x4e4e9cd2, 0x00004e00, 0xa9a949e0, 0x0000a900
.long 0x6c6cd8b4, 0x00006c00, 0x5656acfa, 0x00005600
.long 0xf4f4f307, 0x0000f400, 0xeaeacf25, 0x0000ea00
.long 0x6565caaf, 0x00006500, 0x7a7af48e, 0x00007a00
.long 0xaeae47e9, 0x0000ae00, 0x08081018, 0x00000800
.long 0xbaba6fd5, 0x0000ba00, 0x7878f088, 0x00007800
.long 0x25254a6f, 0x00002500, 0x2e2e5c72, 0x00002e00
.long 0x1c1c3824, 0x00001c00, 0xa6a657f1, 0x0000a600
.long 0xb4b473c7, 0x0000b400, 0xc6c69751, 0x0000c600
.long 0xe8e8cb23, 0x0000e800, 0xdddda17c, 0x0000dd00
.long 0x7474e89c, 0x00007400, 0x1f1f3e21, 0x00001f00
.long 0x4b4b96dd, 0x00004b00, 0xbdbd61dc, 0x0000bd00
.long 0x8b8b0d86, 0x00008b00, 0x8a8a0f85, 0x00008a00
.long 0x7070e090, 0x00007000, 0x3e3e7c42, 0x00003e00
.long 0xb5b571c4, 0x0000b500, 0x6666ccaa, 0x00006600
.long 0x484890d8, 0x00004800, 0x03030605, 0x00000300
.long 0xf6f6f701, 0x0000f600, 0x0e0e1c12, 0x00000e00
.long 0x6161c2a3, 0x00006100, 0x35356a5f, 0x00003500
.long 0x5757aef9, 0x00005700, 0xb9b969d0, 0x0000b900
.long 0x86861791, 0x00008600, 0xc1c19958, 0x0000c100
.long 0x1d1d3a27, 0x00001d00, 0x9e9e27b9, 0x00009e00
.long 0xe1e1d938, 0x0000e100, 0xf8f8eb13, 0x0000f800
.long 0x98982bb3, 0x00009800, 0x11112233, 0x00001100
.long 0x6969d2bb, 0x00006900, 0xd9d9a970, 0x0000d900
.long 0x8e8e0789, 0x00008e00, 0x949433a7, 0x00009400
.long 0x9b9b2db6, 0x00009b00, 0x1e1e3c22, 0x00001e00
.long 0x87871592, 0x00008700, 0xe9e9c920, 0x0000e900
.long 0xcece8749, 0x0000ce00, 0x5555aaff, 0x00005500
.long 0x28285078, 0x00002800, 0xdfdfa57a, 0x0000df00
.long 0x8c8c038f, 0x00008c00, 0xa1a159f8, 0x0000a100
.long 0x89890980, 0x00008900, 0x0d0d1a17, 0x00000d00
.long 0xbfbf65da, 0x0000bf00, 0xe6e6d731, 0x0000e600
.long 0x424284c6, 0x00004200, 0x6868d0b8, 0x00006800
.long 0x414182c3, 0x00004100, 0x999929b0, 0x00009900
.long 0x2d2d5a77, 0x00002d00, 0x0f0f1e11, 0x00000f00
.long 0xb0b07bcb, 0x0000b000, 0x5454a8fc, 0x00005400
.long 0xbbbb6dd6, 0x0000bb00, 0x16162c3a, 0x00001600
.LtableE2:
.long 0x63c6a563
.LtableEs2:
.long             0x00630000, 0x7cf8847c, 0x007c0000
.long 0x77ee9977, 0x00770000, 0x7bf68d7b, 0x007b0000
.long 0xf2ff0df2, 0x00f20000, 0x6bd6bd6b, 0x006b0000
.long 0x6fdeb16f, 0x006f0000, 0xc59154c5, 0x00c50000
.long 0x30605030, 0x00300000, 0x01020301, 0x00010000
.long 0x67cea967, 0x00670000, 0x2b567d2b, 0x002b0000
.long 0xfee719fe, 0x00fe0000, 0xd7b562d7, 0x00d70000
.long 0xab4de6ab, 0x00ab0000, 0x76ec9a76, 0x00760000
.long 0xca8f45ca, 0x00ca0000, 0x821f9d82, 0x00820000
.long 0xc98940c9, 0x00c90000, 0x7dfa877d, 0x007d0000
.long 0xfaef15fa, 0x00fa0000, 0x59b2eb59, 0x00590000
.long 0x478ec947, 0x00470000, 0xf0fb0bf0, 0x00f00000
.long 0xad41ecad, 0x00ad0000, 0xd4b367d4, 0x00d40000
.long 0xa25ffda2, 0x00a20000, 0xaf45eaaf, 0x00af0000
.long 0x9c23bf9c, 0x009c0000, 0xa453f7a4, 0x00a40000
.long 0x72e49672, 0x00720000, 0xc09b5bc0, 0x00c00000
.long 0xb775c2b7, 0x00b70000, 0xfde11cfd, 0x00fd0000
.long 0x933dae93, 0x00930000, 0x264c6a26, 0x00260000
.long 0x366c5a36, 0x00360000, 0x3f7e413f, 0x003f0000
.long 0xf7f502f7, 0x00f70000, 0xcc834fcc, 0x00cc0000
.long 0x34685c34, 0x00340000, 0xa551f4a5, 0x00a50000
.long 0xe5d134e5, 0x00e50000, 0xf1f908f1, 0x00f10000
.long 0x71e29371, 0x00710000, 0xd8ab73d8, 0x00d80000
.long 0x31625331, 0x00310000, 0x152a3f15, 0x00150000
.long 0x04080c04, 0x00040000, 0xc79552c7, 0x00c70000
.long 0x23466523, 0x00230000, 0xc39d5ec3, 0x00c30000
.long 0x18302818, 0x00180000, 0x9637a196, 0x00960000
.long 0x050a0f05, 0x00050000, 0x9a2fb59a, 0x009a0000
.long 0x070e0907, 0x00070000, 0x12243612, 0x00120000
.long 0x801b9b80, 0x00800000, 0xe2df3de2, 0x00e20000
.long 0xebcd26eb, 0x00eb0000, 0x274e6927, 0x00270000
.long 0xb27fcdb2, 0x00b20000, 0x75ea9f75, 0x00750000
.long 0x09121b09, 0x00090000, 0x831d9e83, 0x00830000
.long 0x2c58742c, 0x002c0000, 0x1a342e1a, 0x001a0000
.long 0x1b362d1b, 0x001b0000, 0x6edcb26e, 0x006e0000
.long 0x5ab4ee5a, 0x005a0000, 0xa05bfba0, 0x00a00000
.long 0x52a4f652, 0x00520000, 0x3b764d3b, 0x003b0000
.long 0xd6b761d6, 0x00d60000, 0xb37dceb3, 0x00b30000
.long 0x29527b29, 0x00290000, 0xe3dd3ee3, 0x00e30000
.long 0x2f5e712f, 0x002f0000, 0x84139784, 0x00840000
.long 0x53a6f553, 0x00530000, 0xd1b968d1, 0x00d10000
.long 0x00000000, 0x00000000, 0xedc12ced, 0x00ed0000
.long 0x20406020, 0x00200000, 0xfce31ffc, 0x00fc0000
.long 0xb179c8b1, 0x00b10000, 0x5bb6ed5b, 0x005b0000
.long 0x6ad4be6a, 0x006a0000, 0xcb8d46cb, 0x00cb0000
.long 0xbe67d9be, 0x00be0000, 0x39724b39, 0x00390000
.long 0x4a94de4a, 0x004a0000, 0x4c98d44c, 0x004c0000
.long 0x58b0e858, 0x00580000, 0xcf854acf, 0x00cf0000
.long 0xd0bb6bd0, 0x00d00000, 0xefc52aef, 0x00ef0000
.long 0xaa4fe5aa, 0x00aa0000, 0xfbed16fb, 0x00fb0000
.long 0x4386c543, 0x00430000, 0x4d9ad74d, 0x004d0000
.long 0x33665533, 0x00330000, 0x85119485, 0x00850000
.long 0x458acf45, 0x00450000, 0xf9e910f9, 0x00f90000
.long 0x02040602, 0x00020000, 0x7ffe817f, 0x007f0000
.long 0x50a0f050, 0x00500000, 0x3c78443c, 0x003c0000
.long 0x9f25ba9f, 0x009f0000, 0xa84be3a8, 0x00a80000
.long 0x51a2f351, 0x00510000, 0xa35dfea3, 0x00a30000
.long 0x4080c040, 0x00400000, 0x8f058a8f, 0x008f0000
.long 0x923fad92, 0x00920000, 0x9d21bc9d, 0x009d0000
.long 0x38704838, 0x00380000, 0xf5f104f5, 0x00f50000
.long 0xbc63dfbc, 0x00bc0000, 0xb677c1b6, 0x00b60000
.long 0xdaaf75da, 0x00da0000, 0x21426321, 0x00210000
.long 0x10203010, 0x00100000, 0xffe51aff, 0x00ff0000
.long 0xf3fd0ef3, 0x00f30000, 0xd2bf6dd2, 0x00d20000
.long 0xcd814ccd, 0x00cd0000, 0x0c18140c, 0x000c0000
.long 0x13263513, 0x00130000, 0xecc32fec, 0x00ec0000
.long 0x5fbee15f, 0x005f0000, 0x9735a297, 0x00970000
.long 0x4488cc44, 0x00440000, 0x172e3917, 0x00170000
.long 0xc49357c4, 0x00c40000, 0xa755f2a7, 0x00a70000
.long 0x7efc827e, 0x007e0000, 0x3d7a473d, 0x003d0000
.long 0x64c8ac64, 0x00640000, 0x5dbae75d, 0x005d0000
.long 0x19322b19, 0x00190000, 0x73e69573, 0x00730000
.long 0x60c0a060, 0x00600000, 0x81199881, 0x00810000
.long 0x4f9ed14f, 0x004f0000, 0xdca37fdc, 0x00dc0000
.long 0x22446622, 0x00220000, 0x2a547e2a, 0x002a0000
.long 0x903bab90, 0x00900000, 0x880b8388, 0x00880000
.long 0x468cca46, 0x00460000, 0xeec729ee, 0x00ee0000
.long 0xb86bd3b8, 0x00b80000, 0x14283c14, 0x00140000
.long 0xdea779de, 0x00de0000, 0x5ebce25e, 0x005e0000
.long 0x0b161d0b, 0x000b0000, 0xdbad76db, 0x00db0000
.long 0xe0db3be0, 0x00e00000, 0x32645632, 0x00320000
.long 0x3a744e3a, 0x003a0000, 0x0a141e0a, 0x000a0000
.long 0x4992db49, 0x00490000, 0x060c0a06, 0x00060000
.long 0x24486c24, 0x00240000, 0x5cb8e45c, 0x005c0000
.long 0xc29f5dc2, 0x00c20000, 0xd3bd6ed3, 0x00d30000
.long 0xac43efac, 0x00ac0000, 0x62c4a662, 0x00620000
.long 0x9139a891, 0x00910000, 0x9531a495, 0x00950000
.long 0xe4d337e4, 0x00e40000, 0x79f28b79, 0x00790000
.long 0xe7d532e7, 0x00e70000, 0xc88b43c8, 0x00c80000
.long 0x376e5937, 0x00370000, 0x6ddab76d, 0x006d0000
.long 0x8d018c8d, 0x008d0000, 0xd5b164d5, 0x00d50000
.long 0x4e9cd24e, 0x004e0000, 0xa949e0a9, 0x00a90000
.long 0x6cd8b46c, 0x006c0000, 0x56acfa56, 0x00560000
.long 0xf4f307f4, 0x00f40000, 0xeacf25ea, 0x00ea0000
.long 0x65caaf65, 0x00650000, 0x7af48e7a, 0x007a0000
.long 0xae47e9ae, 0x00ae0000, 0x08101808, 0x00080000
.long 0xba6fd5ba, 0x00ba0000, 0x78f08878, 0x00780000
.long 0x254a6f25, 0x00250000, 0x2e5c722e, 0x002e0000
.long 0x1c38241c, 0x001c0000, 0xa657f1a6, 0x00a60000
.long 0xb473c7b4, 0x00b40000, 0xc69751c6, 0x00c60000
.long 0xe8cb23e8, 0x00e80000, 0xdda17cdd, 0x00dd0000
.long 0x74e89c74, 0x00740000, 0x1f3e211f, 0x001f0000
.long 0x4b96dd4b, 0x004b0000, 0xbd61dcbd, 0x00bd0000
.long 0x8b0d868b, 0x008b0000, 0x8a0f858a, 0x008a0000
.long 0x70e09070, 0x00700000, 0x3e7c423e, 0x003e0000
.long 0xb571c4b5, 0x00b50000, 0x66ccaa66, 0x00660000
.long 0x4890d848, 0x00480000, 0x03060503, 0x00030000
.long 0xf6f701f6, 0x00f60000, 0x0e1c120e, 0x000e0000
.long 0x61c2a361, 0x00610000, 0x356a5f35, 0x00350000
.long 0x57aef957, 0x00570000, 0xb969d0b9, 0x00b90000
.long 0x86179186, 0x00860000, 0xc19958c1, 0x00c10000
.long 0x1d3a271d, 0x001d0000, 0x9e27b99e, 0x009e0000
.long 0xe1d938e1, 0x00e10000, 0xf8eb13f8, 0x00f80000
.long 0x982bb398, 0x00980000, 0x11223311, 0x00110000
.long 0x69d2bb69, 0x00690000, 0xd9a970d9, 0x00d90000
.long 0x8e07898e, 0x008e0000, 0x9433a794, 0x00940000
.long 0x9b2db69b, 0x009b0000, 0x1e3c221e, 0x001e0000
.long 0x87159287, 0x00870000, 0xe9c920e9, 0x00e90000
.long 0xce8749ce, 0x00ce0000, 0x55aaff55, 0x00550000
.long 0x28507828, 0x00280000, 0xdfa57adf, 0x00df0000
.long 0x8c038f8c, 0x008c0000, 0xa159f8a1, 0x00a10000
.long 0x89098089, 0x00890000, 0x0d1a170d, 0x000d0000
.long 0xbf65dabf, 0x00bf0000, 0xe6d731e6, 0x00e60000
.long 0x4284c642, 0x00420000, 0x68d0b868, 0x00680000
.long 0x4182c341, 0x00410000, 0x9929b099, 0x00990000
.long 0x2d5a772d, 0x002d0000, 0x0f1e110f, 0x000f0000
.long 0xb07bcbb0, 0x00b00000, 0x54a8fc54, 0x00540000
.long 0xbb6dd6bb, 0x00bb0000, 0x162c3a16, 0x00160000
.LtableE3:
.long 0xc6a56363
.LtableEs3:
.long             0x63000000, 0xf8847c7c, 0x7c000000
.long 0xee997777, 0x77000000, 0xf68d7b7b, 0x7b000000
.long 0xff0df2f2, 0xf2000000, 0xd6bd6b6b, 0x6b000000
.long 0xdeb16f6f, 0x6f000000, 0x9154c5c5, 0xc5000000
.long 0x60503030, 0x30000000, 0x02030101, 0x01000000
.long 0xcea96767, 0x67000000, 0x567d2b2b, 0x2b000000
.long 0xe719fefe, 0xfe000000, 0xb562d7d7, 0xd7000000
.long 0x4de6abab, 0xab000000, 0xec9a7676, 0x76000000
.long 0x8f45caca, 0xca000000, 0x1f9d8282, 0x82000000
.long 0x8940c9c9, 0xc9000000, 0xfa877d7d, 0x7d000000
.long 0xef15fafa, 0xfa000000, 0xb2eb5959, 0x59000000
.long 0x8ec94747, 0x47000000, 0xfb0bf0f0, 0xf0000000
.long 0x41ecadad, 0xad000000, 0xb367d4d4, 0xd4000000
.long 0x5ffda2a2, 0xa2000000, 0x45eaafaf, 0xaf000000
.long 0x23bf9c9c, 0x9c000000, 0x53f7a4a4, 0xa4000000
.long 0xe4967272, 0x72000000, 0x9b5bc0c0, 0xc0000000
.long 0x75c2b7b7, 0xb7000000, 0xe11cfdfd, 0xfd000000
.long 0x3dae9393, 0x93000000, 0x4c6a2626, 0x26000000
.long 0x6c5a3636, 0x36000000, 0x7e413f3f, 0x3f000000
.long 0xf502f7f7, 0xf7000000, 0x834fcccc, 0xcc000000
.long 0x685c3434, 0x34000000, 0x51f4a5a5, 0xa5000000
.long 0xd134e5e5, 0xe5000000, 0xf908f1f1, 0xf1000000
.long 0xe2937171, 0x71000000, 0xab73d8d8, 0xd8000000
.long 0x62533131, 0x31000000, 0x2a3f1515, 0x15000000
.long 0x080c0404, 0x04000000, 0x9552c7c7, 0xc7000000
.long 0x46652323, 0x23000000, 0x9d5ec3c3, 0xc3000000
.long 0x30281818, 0x18000000, 0x37a19696, 0x96000000
.long 0x0a0f0505, 0x05000000, 0x2fb59a9a, 0x9a000000
.long 0x0e090707, 0x07000000, 0x24361212, 0x12000000
.long 0x1b9b8080, 0x80000000, 0xdf3de2e2, 0xe2000000
.long 0xcd26ebeb, 0xeb000000, 0x4e692727, 0x27000000
.long 0x7fcdb2b2, 0xb2000000, 0xea9f7575, 0x75000000
.long 0x121b0909, 0x09000000, 0x1d9e8383, 0x83000000
.long 0x58742c2c, 0x2c000000, 0x342e1a1a, 0x1a000000
.long 0x362d1b1b, 0x1b000000, 0xdcb26e6e, 0x6e000000
.long 0xb4ee5a5a, 0x5a000000, 0x5bfba0a0, 0xa0000000
.long 0xa4f65252, 0x52000000, 0x764d3b3b, 0x3b000000
.long 0xb761d6d6, 0xd6000000, 0x7dceb3b3, 0xb3000000
.long 0x527b2929, 0x29000000, 0xdd3ee3e3, 0xe3000000
.long 0x5e712f2f, 0x2f000000, 0x13978484, 0x84000000
.long 0xa6f55353, 0x53000000, 0xb968d1d1, 0xd1000000
.long 0x00000000, 0x00000000, 0xc12ceded, 0xed000000
.long 0x40602020, 0x20000000, 0xe31ffcfc, 0xfc000000
.long 0x79c8b1b1, 0xb1000000, 0xb6ed5b5b, 0x5b000000
.long 0xd4be6a6a, 0x6a000000, 0x8d46cbcb, 0xcb000000
.long 0x67d9bebe, 0xbe000000, 0x724b3939, 0x39000000
.long 0x94de4a4a, 0x4a000000, 0x98d44c4c, 0x4c000000
.long 0xb0e85858, 0x58000000, 0x854acfcf, 0xcf000000
.long 0xbb6bd0d0, 0xd0000000, 0xc52aefef, 0xef000000
.long 0x4fe5aaaa, 0xaa000000, 0xed16fbfb, 0xfb000000
.long 0x86c54343, 0x43000000, 0x9ad74d4d, 0x4d000000
.long 0x66553333, 0x33000000, 0x11948585, 0x85000000
.long 0x8acf4545, 0x45000000, 0xe910f9f9, 0xf9000000
.long 0x04060202, 0x02000000, 0xfe817f7f, 0x7f000000
.long 0xa0f05050, 0x50000000, 0x78443c3c, 0x3c000000
.long 0x25ba9f9f, 0x9f000000, 0x4be3a8a8, 0xa8000000
.long 0xa2f35151, 0x51000000, 0x5dfea3a3, 0xa3000000
.long 0x80c04040, 0x40000000, 0x058a8f8f, 0x8f000000
.long 0x3fad9292, 0x92000000, 0x21bc9d9d, 0x9d000000
.long 0x70483838, 0x38000000, 0xf104f5f5, 0xf5000000
.long 0x63dfbcbc, 0xbc000000, 0x77c1b6b6, 0xb6000000
.long 0xaf75dada, 0xda000000, 0x42632121, 0x21000000
.long 0x20301010, 0x10000000, 0xe51affff, 0xff000000
.long 0xfd0ef3f3, 0xf3000000, 0xbf6dd2d2, 0xd2000000
.long 0x814ccdcd, 0xcd000000, 0x18140c0c, 0x0c000000
.long 0x26351313, 0x13000000, 0xc32fecec, 0xec000000
.long 0xbee15f5f, 0x5f000000, 0x35a29797, 0x97000000
.long 0x88cc4444, 0x44000000, 0x2e391717, 0x17000000
.long 0x9357c4c4, 0xc4000000, 0x55f2a7a7, 0xa7000000
.long 0xfc827e7e, 0x7e000000, 0x7a473d3d, 0x3d000000
.long 0xc8ac6464, 0x64000000, 0xbae75d5d, 0x5d000000
.long 0x322b1919, 0x19000000, 0xe6957373, 0x73000000
.long 0xc0a06060, 0x60000000, 0x19988181, 0x81000000
.long 0x9ed14f4f, 0x4f000000, 0xa37fdcdc, 0xdc000000
.long 0x44662222, 0x22000000, 0x547e2a2a, 0x2a000000
.long 0x3bab9090, 0x90000000, 0x0b838888, 0x88000000
.long 0x8cca4646, 0x46000000, 0xc729eeee, 0xee000000
.long 0x6bd3b8b8, 0xb8000000, 0x283c1414, 0x14000000
.long 0xa779dede, 0xde000000, 0xbce25e5e, 0x5e000000
.long 0x161d0b0b, 0x0b000000, 0xad76dbdb, 0xdb000000
.long 0xdb3be0e0, 0xe0000000, 0x64563232, 0x32000000
.long 0x744e3a3a, 0x3a000000, 0x141e0a0a, 0x0a000000
.long 0x92db4949, 0x49000000, 0x0c0a0606, 0x06000000
.long 0x486c2424, 0x24000000, 0xb8e45c5c, 0x5c000000
.long 0x9f5dc2c2, 0xc2000000, 0xbd6ed3d3, 0xd3000000
.long 0x43efacac, 0xac000000, 0xc4a66262, 0x62000000
.long 0x39a89191, 0x91000000, 0x31a49595, 0x95000000
.long 0xd337e4e4, 0xe4000000, 0xf28b7979, 0x79000000
.long 0xd532e7e7, 0xe7000000, 0x8b43c8c8, 0xc8000000
.long 0x6e593737, 0x37000000, 0xdab76d6d, 0x6d000000
.long 0x018c8d8d, 0x8d000000, 0xb164d5d5, 0xd5000000
.long 0x9cd24e4e, 0x4e000000, 0x49e0a9a9, 0xa9000000
.long 0xd8b46c6c, 0x6c000000, 0xacfa5656, 0x56000000
.long 0xf307f4f4, 0xf4000000, 0xcf25eaea, 0xea000000
.long 0xcaaf6565, 0x65000000, 0xf48e7a7a, 0x7a000000
.long 0x47e9aeae, 0xae000000, 0x10180808, 0x08000000
.long 0x6fd5baba, 0xba000000, 0xf0887878, 0x78000000
.long 0x4a6f2525, 0x25000000, 0x5c722e2e, 0x2e000000
.long 0x38241c1c, 0x1c000000, 0x57f1a6a6, 0xa6000000
.long 0x73c7b4b4, 0xb4000000, 0x9751c6c6, 0xc6000000
.long 0xcb23e8e8, 0xe8000000, 0xa17cdddd, 0xdd000000
.long 0xe89c7474, 0x74000000, 0x3e211f1f, 0x1f000000
.long 0x96dd4b4b, 0x4b000000, 0x61dcbdbd, 0xbd000000
.long 0x0d868b8b, 0x8b000000, 0x0f858a8a, 0x8a000000
.long 0xe0907070, 0x70000000, 0x7c423e3e, 0x3e000000
.long 0x71c4b5b5, 0xb5000000, 0xccaa6666, 0x66000000
.long 0x90d84848, 0x48000000, 0x06050303, 0x03000000
.long 0xf701f6f6, 0xf6000000, 0x1c120e0e, 0x0e000000
.long 0xc2a36161, 0x61000000, 0x6a5f3535, 0x35000000
.long 0xaef95757, 0x57000000, 0x69d0b9b9, 0xb9000000
.long 0x17918686, 0x86000000, 0x9958c1c1, 0xc1000000
.long 0x3a271d1d, 0x1d000000, 0x27b99e9e, 0x9e000000
.long 0xd938e1e1, 0xe1000000, 0xeb13f8f8, 0xf8000000
.long 0x2bb39898, 0x98000000, 0x22331111, 0x11000000
.long 0xd2bb6969, 0x69000000, 0xa970d9d9, 0xd9000000
.long 0x07898e8e, 0x8e000000, 0x33a79494, 0x94000000
.long 0x2db69b9b, 0x9b000000, 0x3c221e1e, 0x1e000000
.long 0x15928787, 0x87000000, 0xc920e9e9, 0xe9000000
.long 0x8749cece, 0xce000000, 0xaaff5555, 0x55000000
.long 0x50782828, 0x28000000, 0xa57adfdf, 0xdf000000
.long 0x038f8c8c, 0x8c000000, 0x59f8a1a1, 0xa1000000
.long 0x09808989, 0x89000000, 0x1a170d0d, 0x0d000000
.long 0x65dabfbf, 0xbf000000, 0xd731e6e6, 0xe6000000
.long 0x84c64242, 0x42000000, 0xd0b86868, 0x68000000
.long 0x82c34141, 0x41000000, 0x29b09999, 0x99000000
.long 0x5a772d2d, 0x2d000000, 0x1e110f0f, 0x0f000000
.long 0x7bcbb0b0, 0xb0000000, 0xa8fc5454, 0x54000000
.long 0x6dd6bbbb, 0xbb000000, 0x2c3a1616, 0x16000000

/* Decryption tables */
.LtableD0:
.long 0x50a7f451
.LtableDs0:
.long             0x00000052, 0x5365417e, 0x00000009
.long 0xc3a4171a, 0x0000006a, 0x965e273a, 0x000000d5
.long 0xcb6bab3b, 0x00000030, 0xf1459d1f, 0x00000036
.long 0xab58faac, 0x000000a5, 0x9303e34b, 0x00000038
.long 0x55fa3020, 0x000000bf, 0xf66d76ad, 0x00000040
.long 0x9176cc88, 0x000000a3, 0x254c02f5, 0x0000009e
.long 0xfcd7e54f, 0x00000081, 0xd7cb2ac5, 0x000000f3
.long 0x80443526, 0x000000d7, 0x8fa362b5, 0x000000fb
.long 0x495ab1de, 0x0000007c, 0x671bba25, 0x000000e3
.long 0x980eea45, 0x00000039, 0xe1c0fe5d, 0x00000082
.long 0x02752fc3, 0x0000009b, 0x12f04c81, 0x0000002f
.long 0xa397468d, 0x000000ff, 0xc6f9d36b, 0x00000087
.long 0xe75f8f03, 0x00000034, 0x959c9215, 0x0000008e
.long 0xeb7a6dbf, 0x00000043, 0xda595295, 0x00000044
.long 0x2d83bed4, 0x000000c4, 0xd3217458, 0x000000de
.long 0x2969e049, 0x000000e9, 0x44c8c98e, 0x000000cb
.long 0x6a89c275, 0x00000054, 0x78798ef4, 0x0000007b
.long 0x6b3e5899, 0x00000094, 0xdd71b927, 0x00000032
.long 0xb64fe1be, 0x000000a6, 0x17ad88f0, 0x000000c2
.long 0x66ac20c9, 0x00000023, 0xb43ace7d, 0x0000003d
.long 0x184adf63, 0x000000ee, 0x82311ae5, 0x0000004c
.long 0x60335197, 0x00000095, 0x457f5362, 0x0000000b
.long 0xe07764b1, 0x00000042, 0x84ae6bbb, 0x000000fa
.long 0x1ca081fe, 0x000000c3, 0x942b08f9, 0x0000004e
.long 0x58684870, 0x00000008, 0x19fd458f, 0x0000002e
.long 0x876cde94, 0x000000a1, 0xb7f87b52, 0x00000066
.long 0x23d373ab, 0x00000028, 0xe2024b72, 0x000000d9
.long 0x578f1fe3, 0x00000024, 0x2aab5566, 0x000000b2
.long 0x0728ebb2, 0x00000076, 0x03c2b52f, 0x0000005b
.long 0x9a7bc586, 0x000000a2, 0xa50837d3, 0x00000049
.long 0xf2872830, 0x0000006d, 0xb2a5bf23, 0x0000008b
.long 0xba6a0302, 0x000000d1, 0x5c8216ed, 0x00000025
.long 0x2b1ccf8a, 0x00000072, 0x92b479a7, 0x000000f8
.long 0xf0f207f3, 0x000000f6, 0xa1e2694e, 0x00000064
.long 0xcdf4da65, 0x00000086, 0xd5be0506, 0x00000068
.long 0x1f6234d1, 0x00000098, 0x8afea6c4, 0x00000016
.long 0x9d532e34, 0x000000d4, 0xa055f3a2, 0x000000a4
.long 0x32e18a05, 0x0000005c, 0x75ebf6a4, 0x000000cc
.long 0x39ec830b, 0x0000005d, 0xaaef6040, 0x00000065
.long 0x069f715e, 0x000000b6, 0x51106ebd, 0x00000092
.long 0xf98a213e, 0x0000006c, 0x3d06dd96, 0x00000070
.long 0xae053edd, 0x00000048, 0x46bde64d, 0x00000050
.long 0xb58d5491, 0x000000fd, 0x055dc471, 0x000000ed
.long 0x6fd40604, 0x000000b9, 0xff155060, 0x000000da
.long 0x24fb9819, 0x0000005e, 0x97e9bdd6, 0x00000015
.long 0xcc434089, 0x00000046, 0x779ed967, 0x00000057
.long 0xbd42e8b0, 0x000000a7, 0x888b8907, 0x0000008d
.long 0x385b19e7, 0x0000009d, 0xdbeec879, 0x00000084
.long 0x470a7ca1, 0x00000090, 0xe90f427c, 0x000000d8
.long 0xc91e84f8, 0x000000ab, 0x00000000, 0x00000000
.long 0x83868009, 0x0000008c, 0x48ed2b32, 0x000000bc
.long 0xac70111e, 0x000000d3, 0x4e725a6c, 0x0000000a
.long 0xfbff0efd, 0x000000f7, 0x5638850f, 0x000000e4
.long 0x1ed5ae3d, 0x00000058, 0x27392d36, 0x00000005
.long 0x64d90f0a, 0x000000b8, 0x21a65c68, 0x000000b3
.long 0xd1545b9b, 0x00000045, 0x3a2e3624, 0x00000006
.long 0xb1670a0c, 0x000000d0, 0x0fe75793, 0x0000002c
.long 0xd296eeb4, 0x0000001e, 0x9e919b1b, 0x0000008f
.long 0x4fc5c080, 0x000000ca, 0xa220dc61, 0x0000003f
.long 0x694b775a, 0x0000000f, 0x161a121c, 0x00000002
.long 0x0aba93e2, 0x000000c1, 0xe52aa0c0, 0x000000af
.long 0x43e0223c, 0x000000bd, 0x1d171b12, 0x00000003
.long 0x0b0d090e, 0x00000001, 0xadc78bf2, 0x00000013
.long 0xb9a8b62d, 0x0000008a, 0xc8a91e14, 0x0000006b
.long 0x8519f157, 0x0000003a, 0x4c0775af, 0x00000091
.long 0xbbdd99ee, 0x00000011, 0xfd607fa3, 0x00000041
.long 0x9f2601f7, 0x0000004f, 0xbcf5725c, 0x00000067
.long 0xc53b6644, 0x000000dc, 0x347efb5b, 0x000000ea
.long 0x7629438b, 0x00000097, 0xdcc623cb, 0x000000f2
.long 0x68fcedb6, 0x000000cf, 0x63f1e4b8, 0x000000ce
.long 0xcadc31d7, 0x000000f0, 0x10856342, 0x000000b4
.long 0x40229713, 0x000000e6, 0x2011c684, 0x00000073
.long 0x7d244a85, 0x00000096, 0xf83dbbd2, 0x000000ac
.long 0x1132f9ae, 0x00000074, 0x6da129c7, 0x00000022
.long 0x4b2f9e1d, 0x000000e7, 0xf330b2dc, 0x000000ad
.long 0xec52860d, 0x00000035, 0xd0e3c177, 0x00000085
.long 0x6c16b32b, 0x000000e2, 0x99b970a9, 0x000000f9
.long 0xfa489411, 0x00000037, 0x2264e947, 0x000000e8
.long 0xc48cfca8, 0x0000001c, 0x1a3ff0a0, 0x00000075
.long 0xd82c7d56, 0x000000df, 0xef903322, 0x0000006e
.long 0xc74e4987, 0x00000047, 0xc1d138d9, 0x000000f1
.long 0xfea2ca8c, 0x0000001a, 0x360bd498, 0x00000071
.long 0xcf81f5a6, 0x0000001d, 0x28de7aa5, 0x00000029
.long 0x268eb7da, 0x000000c5, 0xa4bfad3f, 0x00000089
.long 0xe49d3a2c, 0x0000006f, 0x0d927850, 0x000000b7
.long 0x9bcc5f6a, 0x00000062, 0x62467e54, 0x0000000e
.long 0xc2138df6, 0x000000aa, 0xe8b8d890, 0x00000018
.long 0x5ef7392e, 0x000000be, 0xf5afc382, 0x0000001b
.long 0xbe805d9f, 0x000000fc, 0x7c93d069, 0x00000056
.long 0xa92dd56f, 0x0000003e, 0xb31225cf, 0x0000004b
.long 0x3b99acc8, 0x000000c6, 0xa77d1810, 0x000000d2
.long 0x6e639ce8, 0x00000079, 0x7bbb3bdb, 0x00000020
.long 0x097826cd, 0x0000009a, 0xf418596e, 0x000000db
.long 0x01b79aec, 0x000000c0, 0xa89a4f83, 0x000000fe
.long 0x656e95e6, 0x00000078, 0x7ee6ffaa, 0x000000cd
.long 0x08cfbc21, 0x0000005a, 0xe6e815ef, 0x000000f4
.long 0xd99be7ba, 0x0000001f, 0xce366f4a, 0x000000dd
.long 0xd4099fea, 0x000000a8, 0xd67cb029, 0x00000033
.long 0xafb2a431, 0x00000088, 0x31233f2a, 0x00000007
.long 0x3094a5c6, 0x000000c7, 0xc066a235, 0x00000031
.long 0x37bc4e74, 0x000000b1, 0xa6ca82fc, 0x00000012
.long 0xb0d090e0, 0x00000010, 0x15d8a733, 0x00000059
.long 0x4a9804f1, 0x00000027, 0xf7daec41, 0x00000080
.long 0x0e50cd7f, 0x000000ec, 0x2ff69117, 0x0000005f
.long 0x8dd64d76, 0x00000060, 0x4db0ef43, 0x00000051
.long 0x544daacc, 0x0000007f, 0xdf0496e4, 0x000000a9
.long 0xe3b5d19e, 0x00000019, 0x1b886a4c, 0x000000b5
.long 0xb81f2cc1, 0x0000004a, 0x7f516546, 0x0000000d
.long 0x04ea5e9d, 0x0000002d, 0x5d358c01, 0x000000e5
.long 0x737487fa, 0x0000007a, 0x2e410bfb, 0x0000009f
.long 0x5a1d67b3, 0x00000093, 0x52d2db92, 0x000000c9
.long 0x335610e9, 0x0000009c, 0x1347d66d, 0x000000ef
.long 0x8c61d79a, 0x000000a0, 0x7a0ca137, 0x000000e0
.long 0x8e14f859, 0x0000003b, 0x893c13eb, 0x0000004d
.long 0xee27a9ce, 0x000000ae, 0x35c961b7, 0x0000002a
.long 0xede51ce1, 0x000000f5, 0x3cb1477a, 0x000000b0
.long 0x59dfd29c, 0x000000c8, 0x3f73f255, 0x000000eb
.long 0x79ce1418, 0x000000bb, 0xbf37c773, 0x0000003c
.long 0xeacdf753, 0x00000083, 0x5baafd5f, 0x00000053
.long 0x146f3ddf, 0x00000099, 0x86db4478, 0x00000061
.long 0x81f3afca, 0x00000017, 0x3ec468b9, 0x0000002b
.long 0x2c342438, 0x00000004, 0x5f40a3c2, 0x0000007e
.long 0x72c31d16, 0x000000ba, 0x0c25e2bc, 0x00000077
.long 0x8b493c28, 0x000000d6, 0x41950dff, 0x00000026
.long 0x7101a839, 0x000000e1, 0xdeb30c08, 0x00000069
.long 0x9ce4b4d8, 0x00000014, 0x90c15664, 0x00000063
.long 0x6184cb7b, 0x00000055, 0x70b632d5, 0x00000021
.long 0x745c6c48, 0x0000000c, 0x4257b8d0, 0x0000007d
.LtableD1:
.long 0xa7f45150
.LtableDs1:
.long             0x00005200, 0x65417e53, 0x00000900
.long 0xa4171ac3, 0x00006a00, 0x5e273a96, 0x0000d500
.long 0x6bab3bcb, 0x00003000, 0x459d1ff1, 0x00003600
.long 0x58faacab, 0x0000a500, 0x03e34b93, 0x00003800
.long 0xfa302055, 0x0000bf00, 0x6d76adf6, 0x00004000
.long 0x76cc8891, 0x0000a300, 0x4c02f525, 0x00009e00
.long 0xd7e54ffc, 0x00008100, 0xcb2ac5d7, 0x0000f300
.long 0x44352680, 0x0000d700, 0xa362b58f, 0x0000fb00
.long 0x5ab1de49, 0x00007c00, 0x1bba2567, 0x0000e300
.long 0x0eea4598, 0x00003900, 0xc0fe5de1, 0x00008200
.long 0x752fc302, 0x00009b00, 0xf04c8112, 0x00002f00
.long 0x97468da3, 0x0000ff00, 0xf9d36bc6, 0x00008700
.long 0x5f8f03e7, 0x00003400, 0x9c921595, 0x00008e00
.long 0x7a6dbfeb, 0x00004300, 0x595295da, 0x00004400
.long 0x83bed42d, 0x0000c400, 0x217458d3, 0x0000de00
.long 0x69e04929, 0x0000e900, 0xc8c98e44, 0x0000cb00
.long 0x89c2756a, 0x00005400, 0x798ef478, 0x00007b00
.long 0x3e58996b, 0x00009400, 0x71b927dd, 0x00003200
.long 0x4fe1beb6, 0x0000a600, 0xad88f017, 0x0000c200
.long 0xac20c966, 0x00002300, 0x3ace7db4, 0x00003d00
.long 0x4adf6318, 0x0000ee00, 0x311ae582, 0x00004c00
.long 0x33519760, 0x00009500, 0x7f536245, 0x00000b00
.long 0x7764b1e0, 0x00004200, 0xae6bbb84, 0x0000fa00
.long 0xa081fe1c, 0x0000c300, 0x2b08f994, 0x00004e00
.long 0x68487058, 0x00000800, 0xfd458f19, 0x00002e00
.long 0x6cde9487, 0x0000a100, 0xf87b52b7, 0x00006600
.long 0xd373ab23, 0x00002800, 0x024b72e2, 0x0000d900
.long 0x8f1fe357, 0x00002400, 0xab55662a, 0x0000b200
.long 0x28ebb207, 0x00007600, 0xc2b52f03, 0x00005b00
.long 0x7bc5869a, 0x0000a200, 0x0837d3a5, 0x00004900
.long 0x872830f2, 0x00006d00, 0xa5bf23b2, 0x00008b00
.long 0x6a0302ba, 0x0000d100, 0x8216ed5c, 0x00002500
.long 0x1ccf8a2b, 0x00007200, 0xb479a792, 0x0000f800
.long 0xf207f3f0, 0x0000f600, 0xe2694ea1, 0x00006400
.long 0xf4da65cd, 0x00008600, 0xbe0506d5, 0x00006800
.long 0x6234d11f, 0x00009800, 0xfea6c48a, 0x00001600
.long 0x532e349d, 0x0000d400, 0x55f3a2a0, 0x0000a400
.long 0xe18a0532, 0x00005c00, 0xebf6a475, 0x0000cc00
.long 0xec830b39, 0x00005d00, 0xef6040aa, 0x00006500
.long 0x9f715e06, 0x0000b600, 0x106ebd51, 0x00009200
.long 0x8a213ef9, 0x00006c00, 0x06dd963d, 0x00007000
.long 0x053eddae, 0x00004800, 0xbde64d46, 0x00005000
.long 0x8d5491b5, 0x0000fd00, 0x5dc47105, 0x0000ed00
.long 0xd406046f, 0x0000b900, 0x155060ff, 0x0000da00
.long 0xfb981924, 0x00005e00, 0xe9bdd697, 0x00001500
.long 0x434089cc, 0x00004600, 0x9ed96777, 0x00005700
.long 0x42e8b0bd, 0x0000a700, 0x8b890788, 0x00008d00
.long 0x5b19e738, 0x00009d00, 0xeec879db, 0x00008400
.long 0x0a7ca147, 0x00009000, 0x0f427ce9, 0x0000d800
.long 0x1e84f8c9, 0x0000ab00, 0x00000000, 0x00000000
.long 0x86800983, 0x00008c00, 0xed2b3248, 0x0000bc00
.long 0x70111eac, 0x0000d300, 0x725a6c4e, 0x00000a00
.long 0xff0efdfb, 0x0000f700, 0x38850f56, 0x0000e400
.long 0xd5ae3d1e, 0x00005800, 0x392d3627, 0x00000500
.long 0xd90f0a64, 0x0000b800, 0xa65c6821, 0x0000b300
.long 0x545b9bd1, 0x00004500, 0x2e36243a, 0x00000600
.long 0x670a0cb1, 0x0000d000, 0xe757930f, 0x00002c00
.long 0x96eeb4d2, 0x00001e00, 0x919b1b9e, 0x00008f00
.long 0xc5c0804f, 0x0000ca00, 0x20dc61a2, 0x00003f00
.long 0x4b775a69, 0x00000f00, 0x1a121c16, 0x00000200
.long 0xba93e20a, 0x0000c100, 0x2aa0c0e5, 0x0000af00
.long 0xe0223c43, 0x0000bd00, 0x171b121d, 0x00000300
.long 0x0d090e0b, 0x00000100, 0xc78bf2ad, 0x00001300
.long 0xa8b62db9, 0x00008a00, 0xa91e14c8, 0x00006b00
.long 0x19f15785, 0x00003a00, 0x0775af4c, 0x00009100
.long 0xdd99eebb, 0x00001100, 0x607fa3fd, 0x00004100
.long 0x2601f79f, 0x00004f00, 0xf5725cbc, 0x00006700
.long 0x3b6644c5, 0x0000dc00, 0x7efb5b34, 0x0000ea00
.long 0x29438b76, 0x00009700, 0xc623cbdc, 0x0000f200
.long 0xfcedb668, 0x0000cf00, 0xf1e4b863, 0x0000ce00
.long 0xdc31d7ca, 0x0000f000, 0x85634210, 0x0000b400
.long 0x22971340, 0x0000e600, 0x11c68420, 0x00007300
.long 0x244a857d, 0x00009600, 0x3dbbd2f8, 0x0000ac00
.long 0x32f9ae11, 0x00007400, 0xa129c76d, 0x00002200
.long 0x2f9e1d4b, 0x0000e700, 0x30b2dcf3, 0x0000ad00
.long 0x52860dec, 0x00003500, 0xe3c177d0, 0x00008500
.long 0x16b32b6c, 0x0000e200, 0xb970a999, 0x0000f900
.long 0x489411fa, 0x00003700, 0x64e94722, 0x0000e800
.long 0x8cfca8c4, 0x00001c00, 0x3ff0a01a, 0x00007500
.long 0x2c7d56d8, 0x0000df00, 0x903322ef, 0x00006e00
.long 0x4e4987c7, 0x00004700, 0xd138d9c1, 0x0000f100
.long 0xa2ca8cfe, 0x00001a00, 0x0bd49836, 0x00007100
.long 0x81f5a6cf, 0x00001d00, 0xde7aa528, 0x00002900
.long 0x8eb7da26, 0x0000c500, 0xbfad3fa4, 0x00008900
.long 0x9d3a2ce4, 0x00006f00, 0x9278500d, 0x0000b700
.long 0xcc5f6a9b, 0x00006200, 0x467e5462, 0x00000e00
.long 0x138df6c2, 0x0000aa00, 0xb8d890e8, 0x00001800
.long 0xf7392e5e, 0x0000be00, 0xafc382f5, 0x00001b00
.long 0x805d9fbe, 0x0000fc00, 0x93d0697c, 0x00005600
.long 0x2dd56fa9, 0x00003e00, 0x1225cfb3, 0x00004b00
.long 0x99acc83b, 0x0000c600, 0x7d1810a7, 0x0000d200
.long 0x639ce86e, 0x00007900, 0xbb3bdb7b, 0x00002000
.long 0x7826cd09, 0x00009a00, 0x18596ef4, 0x0000db00
.long 0xb79aec01, 0x0000c000, 0x9a4f83a8, 0x0000fe00
.long 0x6e95e665, 0x00007800, 0xe6ffaa7e, 0x0000cd00
.long 0xcfbc2108, 0x00005a00, 0xe815efe6, 0x0000f400
.long 0x9be7bad9, 0x00001f00, 0x366f4ace, 0x0000dd00
.long 0x099fead4, 0x0000a800, 0x7cb029d6, 0x00003300
.long 0xb2a431af, 0x00008800, 0x233f2a31, 0x00000700
.long 0x94a5c630, 0x0000c700, 0x66a235c0, 0x00003100
.long 0xbc4e7437, 0x0000b100, 0xca82fca6, 0x00001200
.long 0xd090e0b0, 0x00001000, 0xd8a73315, 0x00005900
.long 0x9804f14a, 0x00002700, 0xdaec41f7, 0x00008000
.long 0x50cd7f0e, 0x0000ec00, 0xf691172f, 0x00005f00
.long 0xd64d768d, 0x00006000, 0xb0ef434d, 0x00005100
.long 0x4daacc54, 0x00007f00, 0x0496e4df, 0x0000a900
.long 0xb5d19ee3, 0x00001900, 0x886a4c1b, 0x0000b500
.long 0x1f2cc1b8, 0x00004a00, 0x5165467f, 0x00000d00
.long 0xea5e9d04, 0x00002d00, 0x358c015d, 0x0000e500
.long 0x7487fa73, 0x00007a00, 0x410bfb2e, 0x00009f00
.long 0x1d67b35a, 0x00009300, 0xd2db9252, 0x0000c900
.long 0x5610e933, 0x00009c00, 0x47d66d13, 0x0000ef00
.long 0x61d79a8c, 0x0000a000, 0x0ca1377a, 0x0000e000
.long 0x14f8598e, 0x00003b00, 0x3c13eb89, 0x00004d00
.long 0x27a9ceee, 0x0000ae00, 0xc961b735, 0x00002a00
.long 0xe51ce1ed, 0x0000f500, 0xb1477a3c, 0x0000b000
.long 0xdfd29c59, 0x0000c800, 0x73f2553f, 0x0000eb00
.long 0xce141879, 0x0000bb00, 0x37c773bf, 0x00003c00
.long 0xcdf753ea, 0x00008300, 0xaafd5f5b, 0x00005300
.long 0x6f3ddf14, 0x00009900, 0xdb447886, 0x00006100
.long 0xf3afca81, 0x00001700, 0xc468b93e, 0x00002b00
.long 0x3424382c, 0x00000400, 0x40a3c25f, 0x00007e00
.long 0xc31d1672, 0x0000ba00, 0x25e2bc0c, 0x00007700
.long 0x493c288b, 0x0000d600, 0x950dff41, 0x00002600
.long 0x01a83971, 0x0000e100, 0xb30c08de, 0x00006900
.long 0xe4b4d89c, 0x00001400, 0xc1566490, 0x00006300
.long 0x84cb7b61, 0x00005500, 0xb632d570, 0x00002100
.long 0x5c6c4874, 0x00000c00, 0x57b8d042, 0x00007d00
.LtableD2:
.long 0xf45150a7
.LtableDs2:
.long             0x00520000, 0x417e5365, 0x00090000
.long 0x171ac3a4, 0x006a0000, 0x273a965e, 0x00d50000
.long 0xab3bcb6b, 0x00300000, 0x9d1ff145, 0x00360000
.long 0xfaacab58, 0x00a50000, 0xe34b9303, 0x00380000
.long 0x302055fa, 0x00bf0000, 0x76adf66d, 0x00400000
.long 0xcc889176, 0x00a30000, 0x02f5254c, 0x009e0000
.long 0xe54ffcd7, 0x00810000, 0x2ac5d7cb, 0x00f30000
.long 0x35268044, 0x00d70000, 0x62b58fa3, 0x00fb0000
.long 0xb1de495a, 0x007c0000, 0xba25671b, 0x00e30000
.long 0xea45980e, 0x00390000, 0xfe5de1c0, 0x00820000
.long 0x2fc30275, 0x009b0000, 0x4c8112f0, 0x002f0000
.long 0x468da397, 0x00ff0000, 0xd36bc6f9, 0x00870000
.long 0x8f03e75f, 0x00340000, 0x9215959c, 0x008e0000
.long 0x6dbfeb7a, 0x00430000, 0x5295da59, 0x00440000
.long 0xbed42d83, 0x00c40000, 0x7458d321, 0x00de0000
.long 0xe0492969, 0x00e90000, 0xc98e44c8, 0x00cb0000
.long 0xc2756a89, 0x00540000, 0x8ef47879, 0x007b0000
.long 0x58996b3e, 0x00940000, 0xb927dd71, 0x00320000
.long 0xe1beb64f, 0x00a60000, 0x88f017ad, 0x00c20000
.long 0x20c966ac, 0x00230000, 0xce7db43a, 0x003d0000
.long 0xdf63184a, 0x00ee0000, 0x1ae58231, 0x004c0000
.long 0x51976033, 0x00950000, 0x5362457f, 0x000b0000
.long 0x64b1e077, 0x00420000, 0x6bbb84ae, 0x00fa0000
.long 0x81fe1ca0, 0x00c30000, 0x08f9942b, 0x004e0000
.long 0x48705868, 0x00080000, 0x458f19fd, 0x002e0000
.long 0xde94876c, 0x00a10000, 0x7b52b7f8, 0x00660000
.long 0x73ab23d3, 0x00280000, 0x4b72e202, 0x00d90000
.long 0x1fe3578f, 0x00240000, 0x55662aab, 0x00b20000
.long 0xebb20728, 0x00760000, 0xb52f03c2, 0x005b0000
.long 0xc5869a7b, 0x00a20000, 0x37d3a508, 0x00490000
.long 0x2830f287, 0x006d0000, 0xbf23b2a5, 0x008b0000
.long 0x0302ba6a, 0x00d10000, 0x16ed5c82, 0x00250000
.long 0xcf8a2b1c, 0x00720000, 0x79a792b4, 0x00f80000
.long 0x07f3f0f2, 0x00f60000, 0x694ea1e2, 0x00640000
.long 0xda65cdf4, 0x00860000, 0x0506d5be, 0x00680000
.long 0x34d11f62, 0x00980000, 0xa6c48afe, 0x00160000
.long 0x2e349d53, 0x00d40000, 0xf3a2a055, 0x00a40000
.long 0x8a0532e1, 0x005c0000, 0xf6a475eb, 0x00cc0000
.long 0x830b39ec, 0x005d0000, 0x6040aaef, 0x00650000
.long 0x715e069f, 0x00b60000, 0x6ebd5110, 0x00920000
.long 0x213ef98a, 0x006c0000, 0xdd963d06, 0x00700000
.long 0x3eddae05, 0x00480000, 0xe64d46bd, 0x00500000
.long 0x5491b58d, 0x00fd0000, 0xc471055d, 0x00ed0000
.long 0x06046fd4, 0x00b90000, 0x5060ff15, 0x00da0000
.long 0x981924fb, 0x005e0000, 0xbdd697e9, 0x00150000
.long 0x4089cc43, 0x00460000, 0xd967779e, 0x00570000
.long 0xe8b0bd42, 0x00a70000, 0x8907888b, 0x008d0000
.long 0x19e7385b, 0x009d0000, 0xc879dbee, 0x00840000
.long 0x7ca1470a, 0x00900000, 0x427ce90f, 0x00d80000
.long 0x84f8c91e, 0x00ab0000, 0x00000000, 0x00000000
.long 0x80098386, 0x008c0000, 0x2b3248ed, 0x00bc0000
.long 0x111eac70, 0x00d30000, 0x5a6c4e72, 0x000a0000
.long 0x0efdfbff, 0x00f70000, 0x850f5638, 0x00e40000
.long 0xae3d1ed5, 0x00580000, 0x2d362739, 0x00050000
.long 0x0f0a64d9, 0x00b80000, 0x5c6821a6, 0x00b30000
.long 0x5b9bd154, 0x00450000, 0x36243a2e, 0x00060000
.long 0x0a0cb167, 0x00d00000, 0x57930fe7, 0x002c0000
.long 0xeeb4d296, 0x001e0000, 0x9b1b9e91, 0x008f0000
.long 0xc0804fc5, 0x00ca0000, 0xdc61a220, 0x003f0000
.long 0x775a694b, 0x000f0000, 0x121c161a, 0x00020000
.long 0x93e20aba, 0x00c10000, 0xa0c0e52a, 0x00af0000
.long 0x223c43e0, 0x00bd0000, 0x1b121d17, 0x00030000
.long 0x090e0b0d, 0x00010000, 0x8bf2adc7, 0x00130000
.long 0xb62db9a8, 0x008a0000, 0x1e14c8a9, 0x006b0000
.long 0xf1578519, 0x003a0000, 0x75af4c07, 0x00910000
.long 0x99eebbdd, 0x00110000, 0x7fa3fd60, 0x00410000
.long 0x01f79f26, 0x004f0000, 0x725cbcf5, 0x00670000
.long 0x6644c53b, 0x00dc0000, 0xfb5b347e, 0x00ea0000
.long 0x438b7629, 0x00970000, 0x23cbdcc6, 0x00f20000
.long 0xedb668fc, 0x00cf0000, 0xe4b863f1, 0x00ce0000
.long 0x31d7cadc, 0x00f00000, 0x63421085, 0x00b40000
.long 0x97134022, 0x00e60000, 0xc6842011, 0x00730000
.long 0x4a857d24, 0x00960000, 0xbbd2f83d, 0x00ac0000
.long 0xf9ae1132, 0x00740000, 0x29c76da1, 0x00220000
.long 0x9e1d4b2f, 0x00e70000, 0xb2dcf330, 0x00ad0000
.long 0x860dec52, 0x00350000, 0xc177d0e3, 0x00850000
.long 0xb32b6c16, 0x00e20000, 0x70a999b9, 0x00f90000
.long 0x9411fa48, 0x00370000, 0xe9472264, 0x00e80000
.long 0xfca8c48c, 0x001c0000, 0xf0a01a3f, 0x00750000
.long 0x7d56d82c, 0x00df0000, 0x3322ef90, 0x006e0000
.long 0x4987c74e, 0x00470000, 0x38d9c1d1, 0x00f10000
.long 0xca8cfea2, 0x001a0000, 0xd498360b, 0x00710000
.long 0xf5a6cf81, 0x001d0000, 0x7aa528de, 0x00290000
.long 0xb7da268e, 0x00c50000, 0xad3fa4bf, 0x00890000
.long 0x3a2ce49d, 0x006f0000, 0x78500d92, 0x00b70000
.long 0x5f6a9bcc, 0x00620000, 0x7e546246, 0x000e0000
.long 0x8df6c213, 0x00aa0000, 0xd890e8b8, 0x00180000
.long 0x392e5ef7, 0x00be0000, 0xc382f5af, 0x001b0000
.long 0x5d9fbe80, 0x00fc0000, 0xd0697c93, 0x00560000
.long 0xd56fa92d, 0x003e0000, 0x25cfb312, 0x004b0000
.long 0xacc83b99, 0x00c60000, 0x1810a77d, 0x00d20000
.long 0x9ce86e63, 0x00790000, 0x3bdb7bbb, 0x00200000
.long 0x26cd0978, 0x009a0000, 0x596ef418, 0x00db0000
.long 0x9aec01b7, 0x00c00000, 0x4f83a89a, 0x00fe0000
.long 0x95e6656e, 0x00780000, 0xffaa7ee6, 0x00cd0000
.long 0xbc2108cf, 0x005a0000, 0x15efe6e8, 0x00f40000
.long 0xe7bad99b, 0x001f0000, 0x6f4ace36, 0x00dd0000
.long 0x9fead409, 0x00a80000, 0xb029d67c, 0x00330000
.long 0xa431afb2, 0x00880000, 0x3f2a3123, 0x00070000
.long 0xa5c63094, 0x00c70000, 0xa235c066, 0x00310000
.long 0x4e7437bc, 0x00b10000, 0x82fca6ca, 0x00120000
.long 0x90e0b0d0, 0x00100000, 0xa73315d8, 0x00590000
.long 0x04f14a98, 0x00270000, 0xec41f7da, 0x00800000
.long 0xcd7f0e50, 0x00ec0000, 0x91172ff6, 0x005f0000
.long 0x4d768dd6, 0x00600000, 0xef434db0, 0x00510000
.long 0xaacc544d, 0x007f0000, 0x96e4df04, 0x00a90000
.long 0xd19ee3b5, 0x00190000, 0x6a4c1b88, 0x00b50000
.long 0x2cc1b81f, 0x004a0000, 0x65467f51, 0x000d0000
.long 0x5e9d04ea, 0x002d0000, 0x8c015d35, 0x00e50000
.long 0x87fa7374, 0x007a0000, 0x0bfb2e41, 0x009f0000
.long 0x67b35a1d, 0x00930000, 0xdb9252d2, 0x00c90000
.long 0x10e93356, 0x009c0000, 0xd66d1347, 0x00ef0000
.long 0xd79a8c61, 0x00a00000, 0xa1377a0c, 0x00e00000
.long 0xf8598e14, 0x003b0000, 0x13eb893c, 0x004d0000
.long 0xa9ceee27, 0x00ae0000, 0x61b735c9, 0x002a0000
.long 0x1ce1ede5, 0x00f50000, 0x477a3cb1, 0x00b00000
.long 0xd29c59df, 0x00c80000, 0xf2553f73, 0x00eb0000
.long 0x141879ce, 0x00bb0000, 0xc773bf37, 0x003c0000
.long 0xf753eacd, 0x00830000, 0xfd5f5baa, 0x00530000
.long 0x3ddf146f, 0x00990000, 0x447886db, 0x00610000
.long 0xafca81f3, 0x00170000, 0x68b93ec4, 0x002b0000
.long 0x24382c34, 0x00040000, 0xa3c25f40, 0x007e0000
.long 0x1d1672c3, 0x00ba0000, 0xe2bc0c25, 0x00770000
.long 0x3c288b49, 0x00d60000, 0x0dff4195, 0x00260000
.long 0xa8397101, 0x00e10000, 0x0c08deb3, 0x00690000
.long 0xb4d89ce4, 0x00140000, 0x566490c1, 0x00630000
.long 0xcb7b6184, 0x00550000, 0x32d570b6, 0x00210000
.long 0x6c48745c, 0x000c0000, 0xb8d04257, 0x007d0000
.LtableD3:
.long 0x5150a7f4
.LtableDs3:
.long             0x52000000, 0x7e536541, 0x09000000
.long 0x1ac3a417, 0x6a000000, 0x3a965e27, 0xd5000000
.long 0x3bcb6bab, 0x30000000, 0x1ff1459d, 0x36000000
.long 0xacab58fa, 0xa5000000, 0x4b9303e3, 0x38000000
.long 0x2055fa30, 0xbf000000, 0xadf66d76, 0x40000000
.long 0x889176cc, 0xa3000000, 0xf5254c02, 0x9e000000
.long 0x4ffcd7e5, 0x81000000, 0xc5d7cb2a, 0xf3000000
.long 0x26804435, 0xd7000000, 0xb58fa362, 0xfb000000
.long 0xde495ab1, 0x7c000000, 0x25671bba, 0xe3000000
.long 0x45980eea, 0x39000000, 0x5de1c0fe, 0x82000000
.long 0xc302752f, 0x9b000000, 0x8112f04c, 0x2f000000
.long 0x8da39746, 0xff000000, 0x6bc6f9d3, 0x87000000
.long 0x03e75f8f, 0x34000000, 0x15959c92, 0x8e000000
.long 0xbfeb7a6d, 0x43000000, 0x95da5952, 0x44000000
.long 0xd42d83be, 0xc4000000, 0x58d32174, 0xde000000
.long 0x492969e0, 0xe9000000, 0x8e44c8c9, 0xcb000000
.long 0x756a89c2, 0x54000000, 0xf478798e, 0x7b000000
.long 0x996b3e58, 0x94000000, 0x27dd71b9, 0x32000000
.long 0xbeb64fe1, 0xa6000000, 0xf017ad88, 0xc2000000
.long 0xc966ac20, 0x23000000, 0x7db43ace, 0x3d000000
.long 0x63184adf, 0xee000000, 0xe582311a, 0x4c000000
.long 0x97603351, 0x95000000, 0x62457f53, 0x0b000000
.long 0xb1e07764, 0x42000000, 0xbb84ae6b, 0xfa000000
.long 0xfe1ca081, 0xc3000000, 0xf9942b08, 0x4e000000
.long 0x70586848, 0x08000000, 0x8f19fd45, 0x2e000000
.long 0x94876cde, 0xa1000000, 0x52b7f87b, 0x66000000
.long 0xab23d373, 0x28000000, 0x72e2024b, 0xd9000000
.long 0xe3578f1f, 0x24000000, 0x662aab55, 0xb2000000
.long 0xb20728eb, 0x76000000, 0x2f03c2b5, 0x5b000000
.long 0x869a7bc5, 0xa2000000, 0xd3a50837, 0x49000000
.long 0x30f28728, 0x6d000000, 0x23b2a5bf, 0x8b000000
.long 0x02ba6a03, 0xd1000000, 0xed5c8216, 0x25000000
.long 0x8a2b1ccf, 0x72000000, 0xa792b479, 0xf8000000
.long 0xf3f0f207, 0xf6000000, 0x4ea1e269, 0x64000000
.long 0x65cdf4da, 0x86000000, 0x06d5be05, 0x68000000
.long 0xd11f6234, 0x98000000, 0xc48afea6, 0x16000000
.long 0x349d532e, 0xd4000000, 0xa2a055f3, 0xa4000000
.long 0x0532e18a, 0x5c000000, 0xa475ebf6, 0xcc000000
.long 0x0b39ec83, 0x5d000000, 0x40aaef60, 0x65000000
.long 0x5e069f71, 0xb6000000, 0xbd51106e, 0x92000000
.long 0x3ef98a21, 0x6c000000, 0x963d06dd, 0x70000000
.long 0xddae053e, 0x48000000, 0x4d46bde6, 0x50000000
.long 0x91b58d54, 0xfd000000, 0x71055dc4, 0xed000000
.long 0x046fd406, 0xb9000000, 0x60ff1550, 0xda000000
.long 0x1924fb98, 0x5e000000, 0xd697e9bd, 0x15000000
.long 0x89cc4340, 0x46000000, 0x67779ed9, 0x57000000
.long 0xb0bd42e8, 0xa7000000, 0x07888b89, 0x8d000000
.long 0xe7385b19, 0x9d000000, 0x79dbeec8, 0x84000000
.long 0xa1470a7c, 0x90000000, 0x7ce90f42, 0xd8000000
.long 0xf8c91e84, 0xab000000, 0x00000000, 0x00000000
.long 0x09838680, 0x8c000000, 0x3248ed2b, 0xbc000000
.long 0x1eac7011, 0xd3000000, 0x6c4e725a, 0x0a000000
.long 0xfdfbff0e, 0xf7000000, 0x0f563885, 0xe4000000
.long 0x3d1ed5ae, 0x58000000, 0x3627392d, 0x05000000
.long 0x0a64d90f, 0xb8000000, 0x6821a65c, 0xb3000000
.long 0x9bd1545b, 0x45000000, 0x243a2e36, 0x06000000
.long 0x0cb1670a, 0xd0000000, 0x930fe757, 0x2c000000
.long 0xb4d296ee, 0x1e000000, 0x1b9e919b, 0x8f000000
.long 0x804fc5c0, 0xca000000, 0x61a220dc, 0x3f000000
.long 0x5a694b77, 0x0f000000, 0x1c161a12, 0x02000000
.long 0xe20aba93, 0xc1000000, 0xc0e52aa0, 0xaf000000
.long 0x3c43e022, 0xbd000000, 0x121d171b, 0x03000000
.long 0x0e0b0d09, 0x01000000, 0xf2adc78b, 0x13000000
.long 0x2db9a8b6, 0x8a000000, 0x14c8a91e, 0x6b000000
.long 0x578519f1, 0x3a000000, 0xaf4c0775, 0x91000000
.long 0xeebbdd99, 0x11000000, 0xa3fd607f, 0x41000000
.long 0xf79f2601, 0x4f000000, 0x5cbcf572, 0x67000000
.long 0x44c53b66, 0xdc000000, 0x5b347efb, 0xea000000
.long 0x8b762943, 0x97000000, 0xcbdcc623, 0xf2000000
.long 0xb668fced, 0xcf000000, 0xb863f1e4, 0xce000000
.long 0xd7cadc31, 0xf0000000, 0x42108563, 0xb4000000
.long 0x13402297, 0xe6000000, 0x842011c6, 0x73000000
.long 0x857d244a, 0x96000000, 0xd2f83dbb, 0xac000000
.long 0xae1132f9, 0x74000000, 0xc76da129, 0x22000000
.long 0x1d4b2f9e, 0xe7000000, 0xdcf330b2, 0xad000000
.long 0x0dec5286, 0x35000000, 0x77d0e3c1, 0x85000000
.long 0x2b6c16b3, 0xe2000000, 0xa999b970, 0xf9000000
.long 0x11fa4894, 0x37000000, 0x472264e9, 0xe8000000
.long 0xa8c48cfc, 0x1c000000, 0xa01a3ff0, 0x75000000
.long 0x56d82c7d, 0xdf000000, 0x22ef9033, 0x6e000000
.long 0x87c74e49, 0x47000000, 0xd9c1d138, 0xf1000000
.long 0x8cfea2ca, 0x1a000000, 0x98360bd4, 0x71000000
.long 0xa6cf81f5, 0x1d000000, 0xa528de7a, 0x29000000
.long 0xda268eb7, 0xc5000000, 0x3fa4bfad, 0x89000000
.long 0x2ce49d3a, 0x6f000000, 0x500d9278, 0xb7000000
.long 0x6a9bcc5f, 0x62000000, 0x5462467e, 0x0e000000
.long 0xf6c2138d, 0xaa000000, 0x90e8b8d8, 0x18000000
.long 0x2e5ef739, 0xbe000000, 0x82f5afc3, 0x1b000000
.long 0x9fbe805d, 0xfc000000, 0x697c93d0, 0x56000000
.long 0x6fa92dd5, 0x3e000000, 0xcfb31225, 0x4b000000
.long 0xc83b99ac, 0xc6000000, 0x10a77d18, 0xd2000000
.long 0xe86e639c, 0x79000000, 0xdb7bbb3b, 0x20000000
.long 0xcd097826, 0x9a000000, 0x6ef41859, 0xdb000000
.long 0xec01b79a, 0xc0000000, 0x83a89a4f, 0xfe000000
.long 0xe6656e95, 0x78000000, 0xaa7ee6ff, 0xcd000000
.long 0x2108cfbc, 0x5a000000, 0xefe6e815, 0xf4000000
.long 0xbad99be7, 0x1f000000, 0x4ace366f, 0xdd000000
.long 0xead4099f, 0xa8000000, 0x29d67cb0, 0x33000000
.long 0x31afb2a4, 0x88000000, 0x2a31233f, 0x07000000
.long 0xc63094a5, 0xc7000000, 0x35c066a2, 0x31000000
.long 0x7437bc4e, 0xb1000000, 0xfca6ca82, 0x12000000
.long 0xe0b0d090, 0x10000000, 0x3315d8a7, 0x59000000
.long 0xf14a9804, 0x27000000, 0x41f7daec, 0x80000000
.long 0x7f0e50cd, 0xec000000, 0x172ff691, 0x5f000000
.long 0x768dd64d, 0x60000000, 0x434db0ef, 0x51000000
.long 0xcc544daa, 0x7f000000, 0xe4df0496, 0xa9000000
.long 0x9ee3b5d1, 0x19000000, 0x4c1b886a, 0xb5000000
.long 0xc1b81f2c, 0x4a000000, 0x467f5165, 0x0d000000
.long 0x9d04ea5e, 0x2d000000, 0x015d358c, 0xe5000000
.long 0xfa737487, 0x7a000000, 0xfb2e410b, 0x9f000000
.long 0xb35a1d67, 0x93000000, 0x9252d2db, 0xc9000000
.long 0xe9335610, 0x9c000000, 0x6d1347d6, 0xef000000
.long 0x9a8c61d7, 0xa0000000, 0x377a0ca1, 0xe0000000
.long 0x598e14f8, 0x3b000000, 0xeb893c13, 0x4d000000
.long 0xceee27a9, 0xae000000, 0xb735c961, 0x2a000000
.long 0xe1ede51c, 0xf5000000, 0x7a3cb147, 0xb0000000
.long 0x9c59dfd2, 0xc8000000, 0x553f73f2, 0xeb000000
.long 0x1879ce14, 0xbb000000, 0x73bf37c7, 0x3c000000
.long 0x53eacdf7, 0x83000000, 0x5f5baafd, 0x53000000
.long 0xdf146f3d, 0x99000000, 0x7886db44, 0x61000000
.long 0xca81f3af, 0x17000000, 0xb93ec468, 0x2b000000
.long 0x382c3424, 0x04000000, 0xc25f40a3, 0x7e000000
.long 0x1672c31d, 0xba000000, 0xbc0c25e2, 0x77000000
.long 0x288b493c, 0xd6000000, 0xff41950d, 0x26000000
.long 0x397101a8, 0xe1000000, 0x08deb30c, 0x69000000
.long 0xd89ce4b4, 0x14000000, 0x6490c156, 0x63000000
.long 0x7b6184cb, 0x55000000, 0xd570b632, 0x21000000
.long 0x48745c6c, 0x0c000000, 0xd04257b8, 0x7d000000

#endif /*USE_AES*/
#endif /*__x86_64*/