• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2#ifdef OPENSSL_FIPSCANISTER
3# include <openssl/fipssyms.h>
4#endif
5
6#if !defined(__vxworks) || defined(__pic__)
7.option	pic2
8#endif
9.set	noat
10.align	5
11.ent	_mips_AES_encrypt
12_mips_AES_encrypt:
13	.frame	$29,0,$31
14	.set	reorder
15	lw	$12,0($6)
16	lw	$13,4($6)
17	lw	$14,8($6)
18	lw	$15,12($6)
19	lw	$30,240($6)
20	add $3,$6,16
21
22	xor	$8,$12
23	xor	$9,$13
24	xor	$10,$14
25	xor	$11,$15
26
27	sub	$30,1
28	srl	$1,$9,6
29.Loop_enc:
30	srl	$2,$10,6
31	srl	$24,$11,6
32	srl	$25,$8,6
33	and	$1,0x3fc
34	and	$2,0x3fc
35	and	$24,0x3fc
36	and	$25,0x3fc
37	add $1,$7
38	add $2,$7
39	add $24,$7
40	add $25,$7
41	lwl	$12,2($1)		# Te1[s1>>16]
42	lwl	$13,2($2)		# Te1[s2>>16]
43	lwl	$14,2($24)		# Te1[s3>>16]
44	lwl	$15,2($25)		# Te1[s0>>16]
45	lwr	$12,3($1)		# Te1[s1>>16]
46	lwr	$13,3($2)		# Te1[s2>>16]
47	lwr	$14,3($24)		# Te1[s3>>16]
48	lwr	$15,3($25)		# Te1[s0>>16]
49
50	srl	$1,$10,14
51	srl	$2,$11,14
52	srl	$24,$8,14
53	srl	$25,$9,14
54	and	$1,0x3fc
55	and	$2,0x3fc
56	and	$24,0x3fc
57	and	$25,0x3fc
58	add $1,$7
59	add $2,$7
60	add $24,$7
61	add $25,$7
62	lwl	$16,1($1)		# Te2[s2>>8]
63	lwl	$17,1($2)		# Te2[s3>>8]
64	lwl	$18,1($24)		# Te2[s0>>8]
65	lwl	$19,1($25)		# Te2[s1>>8]
66	lwr	$16,2($1)		# Te2[s2>>8]
67	lwr	$17,2($2)		# Te2[s3>>8]
68	lwr	$18,2($24)		# Te2[s0>>8]
69	lwr	$19,2($25)		# Te2[s1>>8]
70
71	srl	$1,$11,22
72	srl	$2,$8,22
73	srl	$24,$9,22
74	srl	$25,$10,22
75	and	$1,0x3fc
76	and	$2,0x3fc
77	and	$24,0x3fc
78	and	$25,0x3fc
79	add $1,$7
80	add $2,$7
81	add $24,$7
82	add $25,$7
83	lwl	$20,0($1)		# Te3[s3]
84	lwl	$21,0($2)		# Te3[s0]
85	lwl	$22,0($24)		# Te3[s1]
86	lwl	$23,0($25)		# Te3[s2]
87	lwr	$20,1($1)		# Te3[s3]
88	lwr	$21,1($2)		# Te3[s0]
89	lwr	$22,1($24)		# Te3[s1]
90	lwr	$23,1($25)		# Te3[s2]
91
92	sll	$1,$8,2
93	sll	$2,$9,2
94	sll	$24,$10,2
95	sll	$25,$11,2
96	and	$1,0x3fc
97	and	$2,0x3fc
98	and	$24,0x3fc
99	and	$25,0x3fc
100	add $1,$7
101	add $2,$7
102	add $24,$7
103	add $25,$7
104	xor	$12,$16
105	xor	$13,$17
106	xor	$14,$18
107	xor	$15,$19
108	lw	$16,0($1)		# Te0[s0>>24]
109	lw	$17,0($2)		# Te0[s1>>24]
110	lw	$18,0($24)		# Te0[s2>>24]
111	lw	$19,0($25)		# Te0[s3>>24]
112
113	lw	$8,0($3)
114	lw	$9,4($3)
115	lw	$10,8($3)
116	lw	$11,12($3)
117
118	xor	$12,$20
119	xor	$13,$21
120	xor	$14,$22
121	xor	$15,$23
122
123	xor	$12,$16
124	xor	$13,$17
125	xor	$14,$18
126	xor	$15,$19
127
128	sub	$30,1
129	add $3,16
130	xor	$8,$12
131	xor	$9,$13
132	xor	$10,$14
133	xor	$11,$15
134	.set	noreorder
135	bnez	$30,.Loop_enc
136	srl	$1,$9,6
137
138	.set	reorder
139	srl	$2,$10,6
140	srl	$24,$11,6
141	srl	$25,$8,6
142	and	$1,0x3fc
143	and	$2,0x3fc
144	and	$24,0x3fc
145	and	$25,0x3fc
146	add $1,$7
147	add $2,$7
148	add $24,$7
149	add $25,$7
150	lbu	$12,2($1)		# Te4[s1>>16]
151	lbu	$13,2($2)		# Te4[s2>>16]
152	lbu	$14,2($24)		# Te4[s3>>16]
153	lbu	$15,2($25)		# Te4[s0>>16]
154
155	srl	$1,$10,14
156	srl	$2,$11,14
157	srl	$24,$8,14
158	srl	$25,$9,14
159	and	$1,0x3fc
160	and	$2,0x3fc
161	and	$24,0x3fc
162	and	$25,0x3fc
163	add $1,$7
164	add $2,$7
165	add $24,$7
166	add $25,$7
167	lbu	$16,2($1)		# Te4[s2>>8]
168	lbu	$17,2($2)		# Te4[s3>>8]
169	lbu	$18,2($24)		# Te4[s0>>8]
170	lbu	$19,2($25)		# Te4[s1>>8]
171
172	sll	$1,$8,2
173	sll	$2,$9,2
174	sll	$24,$10,2
175	sll	$25,$11,2
176	and	$1,0x3fc
177	and	$2,0x3fc
178	and	$24,0x3fc
179	and	$25,0x3fc
180	add $1,$7
181	add $2,$7
182	add $24,$7
183	add $25,$7
184	lbu	$20,2($1)		# Te4[s0>>24]
185	lbu	$21,2($2)		# Te4[s1>>24]
186	lbu	$22,2($24)		# Te4[s2>>24]
187	lbu	$23,2($25)		# Te4[s3>>24]
188
189	srl	$1,$11,22
190	srl	$2,$8,22
191	srl	$24,$9,22
192	srl	$25,$10,22
193	and	$1,0x3fc
194	and	$2,0x3fc
195	and	$24,0x3fc
196	and	$25,0x3fc
197
198	sll	$12,$12,8
199	sll	$13,$13,8
200	sll	$14,$14,8
201	sll	$15,$15,8
202
203	sll	$16,$16,16
204	sll	$17,$17,16
205	sll	$18,$18,16
206	sll	$19,$19,16
207
208	xor	$12,$16
209	xor	$13,$17
210	xor	$14,$18
211	xor	$15,$19
212
213	add $1,$7
214	add $2,$7
215	add $24,$7
216	add $25,$7
217	lbu	$16,2($1)		# Te4[s3]
218	lbu	$17,2($2)		# Te4[s0]
219	lbu	$18,2($24)		# Te4[s1]
220	lbu	$19,2($25)		# Te4[s2]
221
222	#sll	$20,$20,0
223	#sll	$21,$21,0
224	#sll	$22,$22,0
225	#sll	$23,$23,0
226
227	lw	$8,0($3)
228	lw	$9,4($3)
229	lw	$10,8($3)
230	lw	$11,12($3)
231
232	xor	$12,$20
233	xor	$13,$21
234	xor	$14,$22
235	xor	$15,$23
236
237	sll	$16,$16,24
238	sll	$17,$17,24
239	sll	$18,$18,24
240	sll	$19,$19,24
241
242	xor	$12,$16
243	xor	$13,$17
244	xor	$14,$18
245	xor	$15,$19
246
247	xor	$8,$12
248	xor	$9,$13
249	xor	$10,$14
250	xor	$11,$15
251
252	jr	$31
253.end	_mips_AES_encrypt
254
255.align	5
256.globl	AES_encrypt
257.ent	AES_encrypt
258AES_encrypt:
259	.frame	$29,64,$31
260	.mask	3237937152,-4
261	.set	noreorder
262	sub $29,64
263	sw	$31,64-1*4($29)
264	sw	$30,64-2*4($29)
265	sw	$23,64-3*4($29)
266	sw	$22,64-4*4($29)
267	sw	$21,64-5*4($29)
268	sw	$20,64-6*4($29)
269	sw	$19,64-7*4($29)
270	sw	$18,64-8*4($29)
271	sw	$17,64-9*4($29)
272	sw	$16,64-10*4($29)
273	.cplocal	$7
274	.cpsetup	$25,$0,AES_encrypt
275	.set	reorder
276	la	$7,AES_Te		# PIC-ified 'load address'
277
278	lwl	$8,0+3($4)
279	lwl	$9,4+3($4)
280	lwl	$10,8+3($4)
281	lwl	$11,12+3($4)
282	lwr	$8,0+0($4)
283	lwr	$9,4+0($4)
284	lwr	$10,8+0($4)
285	lwr	$11,12+0($4)
286
287	bal	_mips_AES_encrypt
288
289	swr	$8,0+0($5)
290	swr	$9,4+0($5)
291	swr	$10,8+0($5)
292	swr	$11,12+0($5)
293	swl	$8,0+3($5)
294	swl	$9,4+3($5)
295	swl	$10,8+3($5)
296	swl	$11,12+3($5)
297
298	.set	noreorder
299	lw	$31,64-1*4($29)
300	lw	$30,64-2*4($29)
301	lw	$23,64-3*4($29)
302	lw	$22,64-4*4($29)
303	lw	$21,64-5*4($29)
304	lw	$20,64-6*4($29)
305	lw	$19,64-7*4($29)
306	lw	$18,64-8*4($29)
307	lw	$17,64-9*4($29)
308	lw	$16,64-10*4($29)
309	jr	$31
310	add $29,64
311.end	AES_encrypt
312.align	5
313.ent	_mips_AES_decrypt
314_mips_AES_decrypt:
315	.frame	$29,0,$31
316	.set	reorder
317	lw	$12,0($6)
318	lw	$13,4($6)
319	lw	$14,8($6)
320	lw	$15,12($6)
321	lw	$30,240($6)
322	add $3,$6,16
323
324	xor	$8,$12
325	xor	$9,$13
326	xor	$10,$14
327	xor	$11,$15
328
329	sub	$30,1
330	srl	$1,$11,6
331.Loop_dec:
332	srl	$2,$8,6
333	srl	$24,$9,6
334	srl	$25,$10,6
335	and	$1,0x3fc
336	and	$2,0x3fc
337	and	$24,0x3fc
338	and	$25,0x3fc
339	add $1,$7
340	add $2,$7
341	add $24,$7
342	add $25,$7
343	lwl	$12,2($1)		# Td1[s3>>16]
344	lwl	$13,2($2)		# Td1[s0>>16]
345	lwl	$14,2($24)		# Td1[s1>>16]
346	lwl	$15,2($25)		# Td1[s2>>16]
347	lwr	$12,3($1)		# Td1[s3>>16]
348	lwr	$13,3($2)		# Td1[s0>>16]
349	lwr	$14,3($24)		# Td1[s1>>16]
350	lwr	$15,3($25)		# Td1[s2>>16]
351
352	srl	$1,$10,14
353	srl	$2,$11,14
354	srl	$24,$8,14
355	srl	$25,$9,14
356	and	$1,0x3fc
357	and	$2,0x3fc
358	and	$24,0x3fc
359	and	$25,0x3fc
360	add $1,$7
361	add $2,$7
362	add $24,$7
363	add $25,$7
364	lwl	$16,1($1)		# Td2[s2>>8]
365	lwl	$17,1($2)		# Td2[s3>>8]
366	lwl	$18,1($24)		# Td2[s0>>8]
367	lwl	$19,1($25)		# Td2[s1>>8]
368	lwr	$16,2($1)		# Td2[s2>>8]
369	lwr	$17,2($2)		# Td2[s3>>8]
370	lwr	$18,2($24)		# Td2[s0>>8]
371	lwr	$19,2($25)		# Td2[s1>>8]
372
373	srl	$1,$9,22
374	srl	$2,$10,22
375	srl	$24,$11,22
376	srl	$25,$8,22
377	and	$1,0x3fc
378	and	$2,0x3fc
379	and	$24,0x3fc
380	and	$25,0x3fc
381	add $1,$7
382	add $2,$7
383	add $24,$7
384	add $25,$7
385	lwl	$20,0($1)		# Td3[s1]
386	lwl	$21,0($2)		# Td3[s2]
387	lwl	$22,0($24)		# Td3[s3]
388	lwl	$23,0($25)		# Td3[s0]
389	lwr	$20,1($1)		# Td3[s1]
390	lwr	$21,1($2)		# Td3[s2]
391	lwr	$22,1($24)		# Td3[s3]
392	lwr	$23,1($25)		# Td3[s0]
393
394	sll	$1,$8,2
395	sll	$2,$9,2
396	sll	$24,$10,2
397	sll	$25,$11,2
398	and	$1,0x3fc
399	and	$2,0x3fc
400	and	$24,0x3fc
401	and	$25,0x3fc
402	add $1,$7
403	add $2,$7
404	add $24,$7
405	add $25,$7
406
407	xor	$12,$16
408	xor	$13,$17
409	xor	$14,$18
410	xor	$15,$19
411
412
413	lw	$16,0($1)		# Td0[s0>>24]
414	lw	$17,0($2)		# Td0[s1>>24]
415	lw	$18,0($24)		# Td0[s2>>24]
416	lw	$19,0($25)		# Td0[s3>>24]
417
418	lw	$8,0($3)
419	lw	$9,4($3)
420	lw	$10,8($3)
421	lw	$11,12($3)
422
423	xor	$12,$20
424	xor	$13,$21
425	xor	$14,$22
426	xor	$15,$23
427
428	xor	$12,$16
429	xor	$13,$17
430	xor	$14,$18
431	xor	$15,$19
432
433	sub	$30,1
434	add $3,16
435	xor	$8,$12
436	xor	$9,$13
437	xor	$10,$14
438	xor	$11,$15
439	.set	noreorder
440	bnez	$30,.Loop_dec
441	srl	$1,$11,6
442
443	.set	reorder
444	lw	$16,1024($7)		# prefetch Td4
445	lw	$17,1024+32($7)
446	lw	$18,1024+64($7)
447	lw	$19,1024+96($7)
448	lw	$20,1024+128($7)
449	lw	$21,1024+160($7)
450	lw	$22,1024+192($7)
451	lw	$23,1024+224($7)
452
453	srl	$1,$11,8
454	srl	$2,$8,8
455	srl	$24,$9,8
456	srl	$25,$10,8
457	and	$1,0xff
458	and	$2,0xff
459	and	$24,0xff
460	and	$25,0xff
461	add $1,$7
462	add $2,$7
463	add $24,$7
464	add $25,$7
465	lbu	$12,1024($1)		# Td4[s3>>16]
466	lbu	$13,1024($2)		# Td4[s0>>16]
467	lbu	$14,1024($24)		# Td4[s1>>16]
468	lbu	$15,1024($25)		# Td4[s2>>16]
469
470	srl	$1,$10,16
471	srl	$2,$11,16
472	srl	$24,$8,16
473	srl	$25,$9,16
474	and	$1,0xff
475	and	$2,0xff
476	and	$24,0xff
477	and	$25,0xff
478	add $1,$7
479	add $2,$7
480	add $24,$7
481	add $25,$7
482	lbu	$16,1024($1)		# Td4[s2>>8]
483	lbu	$17,1024($2)		# Td4[s3>>8]
484	lbu	$18,1024($24)		# Td4[s0>>8]
485	lbu	$19,1024($25)		# Td4[s1>>8]
486
487	and	$1,$8,0xff
488	and	$2,$9,0xff
489	and	$24,$10,0xff
490	and	$25,$11,0xff
491	add $1,$7
492	add $2,$7
493	add $24,$7
494	add $25,$7
495	lbu	$20,1024($1)		# Td4[s0>>24]
496	lbu	$21,1024($2)		# Td4[s1>>24]
497	lbu	$22,1024($24)		# Td4[s2>>24]
498	lbu	$23,1024($25)		# Td4[s3>>24]
499
500	srl	$1,$9,24
501	srl	$2,$10,24
502	srl	$24,$11,24
503	srl	$25,$8,24
504
505	sll	$12,$12,8
506	sll	$13,$13,8
507	sll	$14,$14,8
508	sll	$15,$15,8
509
510	sll	$16,$16,16
511	sll	$17,$17,16
512	sll	$18,$18,16
513	sll	$19,$19,16
514
515	xor	$12,$16
516	xor	$13,$17
517	xor	$14,$18
518	xor	$15,$19
519
520	add $1,$7
521	add $2,$7
522	add $24,$7
523	add $25,$7
524	lbu	$16,1024($1)		# Td4[s1]
525	lbu	$17,1024($2)		# Td4[s2]
526	lbu	$18,1024($24)		# Td4[s3]
527	lbu	$19,1024($25)		# Td4[s0]
528
529	#sll	$20,$20,0
530	#sll	$21,$21,0
531	#sll	$22,$22,0
532	#sll	$23,$23,0
533
534	lw	$8,0($3)
535	lw	$9,4($3)
536	lw	$10,8($3)
537	lw	$11,12($3)
538
539	sll	$16,$16,24
540	sll	$17,$17,24
541	sll	$18,$18,24
542	sll	$19,$19,24
543
544
545	xor	$12,$20
546	xor	$13,$21
547	xor	$14,$22
548	xor	$15,$23
549
550	xor	$12,$16
551	xor	$13,$17
552	xor	$14,$18
553	xor	$15,$19
554
555	xor	$8,$12
556	xor	$9,$13
557	xor	$10,$14
558	xor	$11,$15
559
560	jr	$31
561.end	_mips_AES_decrypt
562
563.align	5
564.globl	AES_decrypt
565.ent	AES_decrypt
566AES_decrypt:
567	.frame	$29,64,$31
568	.mask	3237937152,-4
569	.set	noreorder
570	sub $29,64
571	sw	$31,64-1*4($29)
572	sw	$30,64-2*4($29)
573	sw	$23,64-3*4($29)
574	sw	$22,64-4*4($29)
575	sw	$21,64-5*4($29)
576	sw	$20,64-6*4($29)
577	sw	$19,64-7*4($29)
578	sw	$18,64-8*4($29)
579	sw	$17,64-9*4($29)
580	sw	$16,64-10*4($29)
581	.cplocal	$7
582	.cpsetup	$25,$0,AES_decrypt
583	.set	reorder
584	la	$7,AES_Td		# PIC-ified 'load address'
585
586	lwl	$8,0+3($4)
587	lwl	$9,4+3($4)
588	lwl	$10,8+3($4)
589	lwl	$11,12+3($4)
590	lwr	$8,0+0($4)
591	lwr	$9,4+0($4)
592	lwr	$10,8+0($4)
593	lwr	$11,12+0($4)
594
595	bal	_mips_AES_decrypt
596
597	swr	$8,0+0($5)
598	swr	$9,4+0($5)
599	swr	$10,8+0($5)
600	swr	$11,12+0($5)
601	swl	$8,0+3($5)
602	swl	$9,4+3($5)
603	swl	$10,8+3($5)
604	swl	$11,12+3($5)
605
606	.set	noreorder
607	lw	$31,64-1*4($29)
608	lw	$30,64-2*4($29)
609	lw	$23,64-3*4($29)
610	lw	$22,64-4*4($29)
611	lw	$21,64-5*4($29)
612	lw	$20,64-6*4($29)
613	lw	$19,64-7*4($29)
614	lw	$18,64-8*4($29)
615	lw	$17,64-9*4($29)
616	lw	$16,64-10*4($29)
617	jr	$31
618	add $29,64
619.end	AES_decrypt
620.align	5
621.ent	_mips_AES_set_encrypt_key
622_mips_AES_set_encrypt_key:
623	.frame	$29,0,$31
624	.set	noreorder
625	beqz	$4,.Lekey_done
626	li	$2,-1
627	beqz	$6,.Lekey_done
628	add $3,$7,1024+256
629
630	.set	reorder
631	lwl	$8,0+3($4)	# load 128 bits
632	lwl	$9,4+3($4)
633	lwl	$10,8+3($4)
634	lwl	$11,12+3($4)
635	li	$1,128
636	lwr	$8,0+0($4)
637	lwr	$9,4+0($4)
638	lwr	$10,8+0($4)
639	lwr	$11,12+0($4)
640	.set	noreorder
641	beq	$5,$1,.L128bits
642	li	$30,10
643
644	.set	reorder
645	lwl	$12,16+3($4)	# load 192 bits
646	lwl	$13,20+3($4)
647	li	$1,192
648	lwr	$12,16+0($4)
649	lwr	$13,20+0($4)
650	.set	noreorder
651	beq	$5,$1,.L192bits
652	li	$30,8
653
654	.set	reorder
655	lwl	$14,24+3($4)	# load 256 bits
656	lwl	$15,28+3($4)
657	li	$1,256
658	lwr	$14,24+0($4)
659	lwr	$15,28+0($4)
660	.set	noreorder
661	beq	$5,$1,.L256bits
662	li	$30,7
663
664	b	.Lekey_done
665	li	$2,-2
666
667.align	4
668.L128bits:
669	.set	reorder
670	srl	$1,$11,16
671	srl	$2,$11,8
672	and	$1,0xff
673	and	$2,0xff
674	and	$24,$11,0xff
675	srl	$25,$11,24
676	add $1,$7
677	add $2,$7
678	add $24,$7
679	add $25,$7
680	lbu	$1,1024($1)
681	lbu	$2,1024($2)
682	lbu	$24,1024($24)
683	lbu	$25,1024($25)
684
685	sw	$8,0($6)
686	sw	$9,4($6)
687	sw	$10,8($6)
688	sw	$11,12($6)
689	sub	$30,1
690	add $6,16
691
692	sll	$1,$1,8
693	#sll	$2,$2,0
694	sll	$24,$24,24
695	sll	$25,$25,16
696
697	xor	$8,$1
698	lw	$1,0($3)
699	xor	$8,$2
700	xor	$8,$24
701	xor	$8,$25
702	xor	$8,$1
703
704	xor	$9,$8
705	xor	$10,$9
706	xor	$11,$10
707
708	.set	noreorder
709	bnez	$30,.L128bits
710	add $3,4
711
712	sw	$8,0($6)
713	sw	$9,4($6)
714	sw	$10,8($6)
715	li	$30,10
716	sw	$11,12($6)
717	li	$2,0
718	sw	$30,80($6)
719	b	.Lekey_done
720	sub $6,10*16
721
722.align	4
723.L192bits:
724	.set	reorder
725	srl	$1,$13,16
726	srl	$2,$13,8
727	and	$1,0xff
728	and	$2,0xff
729	and	$24,$13,0xff
730	srl	$25,$13,24
731	add $1,$7
732	add $2,$7
733	add $24,$7
734	add $25,$7
735	lbu	$1,1024($1)
736	lbu	$2,1024($2)
737	lbu	$24,1024($24)
738	lbu	$25,1024($25)
739
740	sw	$8,0($6)
741	sw	$9,4($6)
742	sw	$10,8($6)
743	sw	$11,12($6)
744	sw	$12,16($6)
745	sw	$13,20($6)
746	sub	$30,1
747	add $6,24
748
749	sll	$1,$1,8
750	#sll	$2,$2,0
751	sll	$24,$24,24
752	sll	$25,$25,16
753
754	xor	$8,$1
755	lw	$1,0($3)
756	xor	$8,$2
757	xor	$8,$24
758	xor	$8,$25
759	xor	$8,$1
760
761	xor	$9,$8
762	xor	$10,$9
763	xor	$11,$10
764	xor	$12,$11
765	xor	$13,$12
766
767	.set	noreorder
768	bnez	$30,.L192bits
769	add $3,4
770
771	sw	$8,0($6)
772	sw	$9,4($6)
773	sw	$10,8($6)
774	li	$30,12
775	sw	$11,12($6)
776	li	$2,0
777	sw	$30,48($6)
778	b	.Lekey_done
779	sub $6,12*16
780
781.align	4
782.L256bits:
783	.set	reorder
784	srl	$1,$15,16
785	srl	$2,$15,8
786	and	$1,0xff
787	and	$2,0xff
788	and	$24,$15,0xff
789	srl	$25,$15,24
790	add $1,$7
791	add $2,$7
792	add $24,$7
793	add $25,$7
794	lbu	$1,1024($1)
795	lbu	$2,1024($2)
796	lbu	$24,1024($24)
797	lbu	$25,1024($25)
798
799	sw	$8,0($6)
800	sw	$9,4($6)
801	sw	$10,8($6)
802	sw	$11,12($6)
803	sw	$12,16($6)
804	sw	$13,20($6)
805	sw	$14,24($6)
806	sw	$15,28($6)
807	sub	$30,1
808
809	sll	$1,$1,8
810	#sll	$2,$2,0
811	sll	$24,$24,24
812	sll	$25,$25,16
813
814	xor	$8,$1
815	lw	$1,0($3)
816	xor	$8,$2
817	xor	$8,$24
818	xor	$8,$25
819	xor	$8,$1
820
821	xor	$9,$8
822	xor	$10,$9
823	xor	$11,$10
824	beqz	$30,.L256bits_done
825
826	srl	$1,$11,24
827	srl	$2,$11,16
828	srl	$24,$11,8
829	and	$25,$11,0xff
830	and	$2,0xff
831	and	$24,0xff
832	add $1,$7
833	add $2,$7
834	add $24,$7
835	add $25,$7
836	lbu	$1,1024($1)
837	lbu	$2,1024($2)
838	lbu	$24,1024($24)
839	lbu	$25,1024($25)
840	sll	$1,24
841	sll	$2,16
842	sll	$24,8
843
844	xor	$12,$1
845	xor	$12,$2
846	xor	$12,$24
847	xor	$12,$25
848
849	xor	$13,$12
850	xor	$14,$13
851	xor	$15,$14
852
853	add $6,32
854	.set	noreorder
855	b	.L256bits
856	add $3,4
857
858.L256bits_done:
859	sw	$8,32($6)
860	sw	$9,36($6)
861	sw	$10,40($6)
862	li	$30,14
863	sw	$11,44($6)
864	li	$2,0
865	sw	$30,48($6)
866	sub $6,12*16
867
868.Lekey_done:
869	jr	$31
870	nop
871.end	_mips_AES_set_encrypt_key
872
873.globl	AES_set_encrypt_key
874.ent	AES_set_encrypt_key
875AES_set_encrypt_key:
876	.frame	$29,32,$31
877	.mask	3221225472,-4
878	.set	noreorder
879	sub $29,32
880	sw	$31,32-1*4($29)
881	sw	$30,32-2*4($29)
882	.cplocal	$7
883	.cpsetup	$25,$0,AES_set_encrypt_key
884	.set	reorder
885	la	$7,AES_Te		# PIC-ified 'load address'
886
887	bal	_mips_AES_set_encrypt_key
888
889	.set	noreorder
890	move	$4,$2
891	lw	$31,32-1*4($29)
892	lw	$30,32-2*4($29)
893	jr	$31
894	add $29,32
895.end	AES_set_encrypt_key
896.align	5
897.globl	AES_set_decrypt_key
898.ent	AES_set_decrypt_key
899AES_set_decrypt_key:
900	.frame	$29,32,$31
901	.mask	3221225472,-4
902	.set	noreorder
903	sub $29,32
904	sw	$31,32-1*4($29)
905	sw	$30,32-2*4($29)
906	.cplocal	$7
907	.cpsetup	$25,$0,AES_set_decrypt_key
908	.set	reorder
909	la	$7,AES_Te		# PIC-ified 'load address'
910
911	bal	_mips_AES_set_encrypt_key
912
913	bltz	$2,.Ldkey_done
914
915	sll	$1,$30,4
916	add $4,$6,0
917	add $5,$6,$1
918.align	4
919.Lswap:
920	lw	$8,0($4)
921	lw	$9,4($4)
922	lw	$10,8($4)
923	lw	$11,12($4)
924	lw	$12,0($5)
925	lw	$13,4($5)
926	lw	$14,8($5)
927	lw	$15,12($5)
928	sw	$8,0($5)
929	sw	$9,4($5)
930	sw	$10,8($5)
931	sw	$11,12($5)
932	add $4,16
933	sub $5,16
934	sw	$12,-16($4)
935	sw	$13,-12($4)
936	sw	$14,-8($4)
937	sw	$15,-4($4)
938	bne	$4,$5,.Lswap
939
940	lw	$8,16($6)		# modulo-scheduled
941	lui	$2,0x8080
942	sub	$30,1
943	or	$2,0x8080
944	sll	$30,2
945	add $6,16
946	lui	$25,0x1b1b
947	nor	$24,$0,$2
948	or	$25,0x1b1b
949.align	4
950.Lmix:
951	and	$1,$8,$2
952	and	$9,$8,$24
953	srl	$10,$1,7
954	addu	$9,$9		# tp2<<1
955	subu	$1,$10
956	and	$1,$25
957	xor	$9,$1
958
959	and	$1,$9,$2
960	and	$10,$9,$24
961	srl	$11,$1,7
962	addu	$10,$10		# tp4<<1
963	subu	$1,$11
964	and	$1,$25
965	xor	$10,$1
966
967	and	$1,$10,$2
968	and	$11,$10,$24
969	srl	$12,$1,7
970	addu	$11,$11		# tp8<<1
971	subu	$1,$12
972	and	$1,$25
973	xor	$11,$1
974
975	xor	$12,$11,$8
976	xor	$15,$11,$10
977	xor	$13,$12,$9
978	xor	$14,$12,$10
979
980	sll	$8,$14,16
981	 xor	$15,$9
982	srl	$9,$14,16
983	xor	$15,$8
984	sll	$8,$12,8
985	xor	$15,$9
986	srl	$9,$12,24
987	xor	$15,$8
988	sll	$8,$13,24
989	xor	$15,$9
990	srl	$9,$13,8
991	xor	$15,$8
992	lw	$8,4($6)		# modulo-scheduled
993	xor	$15,$9
994	sub	$30,1
995	sw	$15,0($6)
996	add $6,4
997	bnez	$30,.Lmix
998
999	li	$2,0
1000.Ldkey_done:
1001	.set	noreorder
1002	move	$4,$2
1003	lw	$31,32-1*4($29)
1004	lw	$30,32-2*4($29)
1005	jr	$31
1006	add $29,32
1007.end	AES_set_decrypt_key
1008.rdata
1009.align	6
1010AES_Te:
1011.byte	0xc6,0x63,0x63,0xa5,	0xf8,0x7c,0x7c,0x84	# Te0
1012.byte	0xee,0x77,0x77,0x99,	0xf6,0x7b,0x7b,0x8d
1013.byte	0xff,0xf2,0xf2,0x0d,	0xd6,0x6b,0x6b,0xbd
1014.byte	0xde,0x6f,0x6f,0xb1,	0x91,0xc5,0xc5,0x54
1015.byte	0x60,0x30,0x30,0x50,	0x02,0x01,0x01,0x03
1016.byte	0xce,0x67,0x67,0xa9,	0x56,0x2b,0x2b,0x7d
1017.byte	0xe7,0xfe,0xfe,0x19,	0xb5,0xd7,0xd7,0x62
1018.byte	0x4d,0xab,0xab,0xe6,	0xec,0x76,0x76,0x9a
1019.byte	0x8f,0xca,0xca,0x45,	0x1f,0x82,0x82,0x9d
1020.byte	0x89,0xc9,0xc9,0x40,	0xfa,0x7d,0x7d,0x87
1021.byte	0xef,0xfa,0xfa,0x15,	0xb2,0x59,0x59,0xeb
1022.byte	0x8e,0x47,0x47,0xc9,	0xfb,0xf0,0xf0,0x0b
1023.byte	0x41,0xad,0xad,0xec,	0xb3,0xd4,0xd4,0x67
1024.byte	0x5f,0xa2,0xa2,0xfd,	0x45,0xaf,0xaf,0xea
1025.byte	0x23,0x9c,0x9c,0xbf,	0x53,0xa4,0xa4,0xf7
1026.byte	0xe4,0x72,0x72,0x96,	0x9b,0xc0,0xc0,0x5b
1027.byte	0x75,0xb7,0xb7,0xc2,	0xe1,0xfd,0xfd,0x1c
1028.byte	0x3d,0x93,0x93,0xae,	0x4c,0x26,0x26,0x6a
1029.byte	0x6c,0x36,0x36,0x5a,	0x7e,0x3f,0x3f,0x41
1030.byte	0xf5,0xf7,0xf7,0x02,	0x83,0xcc,0xcc,0x4f
1031.byte	0x68,0x34,0x34,0x5c,	0x51,0xa5,0xa5,0xf4
1032.byte	0xd1,0xe5,0xe5,0x34,	0xf9,0xf1,0xf1,0x08
1033.byte	0xe2,0x71,0x71,0x93,	0xab,0xd8,0xd8,0x73
1034.byte	0x62,0x31,0x31,0x53,	0x2a,0x15,0x15,0x3f
1035.byte	0x08,0x04,0x04,0x0c,	0x95,0xc7,0xc7,0x52
1036.byte	0x46,0x23,0x23,0x65,	0x9d,0xc3,0xc3,0x5e
1037.byte	0x30,0x18,0x18,0x28,	0x37,0x96,0x96,0xa1
1038.byte	0x0a,0x05,0x05,0x0f,	0x2f,0x9a,0x9a,0xb5
1039.byte	0x0e,0x07,0x07,0x09,	0x24,0x12,0x12,0x36
1040.byte	0x1b,0x80,0x80,0x9b,	0xdf,0xe2,0xe2,0x3d
1041.byte	0xcd,0xeb,0xeb,0x26,	0x4e,0x27,0x27,0x69
1042.byte	0x7f,0xb2,0xb2,0xcd,	0xea,0x75,0x75,0x9f
1043.byte	0x12,0x09,0x09,0x1b,	0x1d,0x83,0x83,0x9e
1044.byte	0x58,0x2c,0x2c,0x74,	0x34,0x1a,0x1a,0x2e
1045.byte	0x36,0x1b,0x1b,0x2d,	0xdc,0x6e,0x6e,0xb2
1046.byte	0xb4,0x5a,0x5a,0xee,	0x5b,0xa0,0xa0,0xfb
1047.byte	0xa4,0x52,0x52,0xf6,	0x76,0x3b,0x3b,0x4d
1048.byte	0xb7,0xd6,0xd6,0x61,	0x7d,0xb3,0xb3,0xce
1049.byte	0x52,0x29,0x29,0x7b,	0xdd,0xe3,0xe3,0x3e
1050.byte	0x5e,0x2f,0x2f,0x71,	0x13,0x84,0x84,0x97
1051.byte	0xa6,0x53,0x53,0xf5,	0xb9,0xd1,0xd1,0x68
1052.byte	0x00,0x00,0x00,0x00,	0xc1,0xed,0xed,0x2c
1053.byte	0x40,0x20,0x20,0x60,	0xe3,0xfc,0xfc,0x1f
1054.byte	0x79,0xb1,0xb1,0xc8,	0xb6,0x5b,0x5b,0xed
1055.byte	0xd4,0x6a,0x6a,0xbe,	0x8d,0xcb,0xcb,0x46
1056.byte	0x67,0xbe,0xbe,0xd9,	0x72,0x39,0x39,0x4b
1057.byte	0x94,0x4a,0x4a,0xde,	0x98,0x4c,0x4c,0xd4
1058.byte	0xb0,0x58,0x58,0xe8,	0x85,0xcf,0xcf,0x4a
1059.byte	0xbb,0xd0,0xd0,0x6b,	0xc5,0xef,0xef,0x2a
1060.byte	0x4f,0xaa,0xaa,0xe5,	0xed,0xfb,0xfb,0x16
1061.byte	0x86,0x43,0x43,0xc5,	0x9a,0x4d,0x4d,0xd7
1062.byte	0x66,0x33,0x33,0x55,	0x11,0x85,0x85,0x94
1063.byte	0x8a,0x45,0x45,0xcf,	0xe9,0xf9,0xf9,0x10
1064.byte	0x04,0x02,0x02,0x06,	0xfe,0x7f,0x7f,0x81
1065.byte	0xa0,0x50,0x50,0xf0,	0x78,0x3c,0x3c,0x44
1066.byte	0x25,0x9f,0x9f,0xba,	0x4b,0xa8,0xa8,0xe3
1067.byte	0xa2,0x51,0x51,0xf3,	0x5d,0xa3,0xa3,0xfe
1068.byte	0x80,0x40,0x40,0xc0,	0x05,0x8f,0x8f,0x8a
1069.byte	0x3f,0x92,0x92,0xad,	0x21,0x9d,0x9d,0xbc
1070.byte	0x70,0x38,0x38,0x48,	0xf1,0xf5,0xf5,0x04
1071.byte	0x63,0xbc,0xbc,0xdf,	0x77,0xb6,0xb6,0xc1
1072.byte	0xaf,0xda,0xda,0x75,	0x42,0x21,0x21,0x63
1073.byte	0x20,0x10,0x10,0x30,	0xe5,0xff,0xff,0x1a
1074.byte	0xfd,0xf3,0xf3,0x0e,	0xbf,0xd2,0xd2,0x6d
1075.byte	0x81,0xcd,0xcd,0x4c,	0x18,0x0c,0x0c,0x14
1076.byte	0x26,0x13,0x13,0x35,	0xc3,0xec,0xec,0x2f
1077.byte	0xbe,0x5f,0x5f,0xe1,	0x35,0x97,0x97,0xa2
1078.byte	0x88,0x44,0x44,0xcc,	0x2e,0x17,0x17,0x39
1079.byte	0x93,0xc4,0xc4,0x57,	0x55,0xa7,0xa7,0xf2
1080.byte	0xfc,0x7e,0x7e,0x82,	0x7a,0x3d,0x3d,0x47
1081.byte	0xc8,0x64,0x64,0xac,	0xba,0x5d,0x5d,0xe7
1082.byte	0x32,0x19,0x19,0x2b,	0xe6,0x73,0x73,0x95
1083.byte	0xc0,0x60,0x60,0xa0,	0x19,0x81,0x81,0x98
1084.byte	0x9e,0x4f,0x4f,0xd1,	0xa3,0xdc,0xdc,0x7f
1085.byte	0x44,0x22,0x22,0x66,	0x54,0x2a,0x2a,0x7e
1086.byte	0x3b,0x90,0x90,0xab,	0x0b,0x88,0x88,0x83
1087.byte	0x8c,0x46,0x46,0xca,	0xc7,0xee,0xee,0x29
1088.byte	0x6b,0xb8,0xb8,0xd3,	0x28,0x14,0x14,0x3c
1089.byte	0xa7,0xde,0xde,0x79,	0xbc,0x5e,0x5e,0xe2
1090.byte	0x16,0x0b,0x0b,0x1d,	0xad,0xdb,0xdb,0x76
1091.byte	0xdb,0xe0,0xe0,0x3b,	0x64,0x32,0x32,0x56
1092.byte	0x74,0x3a,0x3a,0x4e,	0x14,0x0a,0x0a,0x1e
1093.byte	0x92,0x49,0x49,0xdb,	0x0c,0x06,0x06,0x0a
1094.byte	0x48,0x24,0x24,0x6c,	0xb8,0x5c,0x5c,0xe4
1095.byte	0x9f,0xc2,0xc2,0x5d,	0xbd,0xd3,0xd3,0x6e
1096.byte	0x43,0xac,0xac,0xef,	0xc4,0x62,0x62,0xa6
1097.byte	0x39,0x91,0x91,0xa8,	0x31,0x95,0x95,0xa4
1098.byte	0xd3,0xe4,0xe4,0x37,	0xf2,0x79,0x79,0x8b
1099.byte	0xd5,0xe7,0xe7,0x32,	0x8b,0xc8,0xc8,0x43
1100.byte	0x6e,0x37,0x37,0x59,	0xda,0x6d,0x6d,0xb7
1101.byte	0x01,0x8d,0x8d,0x8c,	0xb1,0xd5,0xd5,0x64
1102.byte	0x9c,0x4e,0x4e,0xd2,	0x49,0xa9,0xa9,0xe0
1103.byte	0xd8,0x6c,0x6c,0xb4,	0xac,0x56,0x56,0xfa
1104.byte	0xf3,0xf4,0xf4,0x07,	0xcf,0xea,0xea,0x25
1105.byte	0xca,0x65,0x65,0xaf,	0xf4,0x7a,0x7a,0x8e
1106.byte	0x47,0xae,0xae,0xe9,	0x10,0x08,0x08,0x18
1107.byte	0x6f,0xba,0xba,0xd5,	0xf0,0x78,0x78,0x88
1108.byte	0x4a,0x25,0x25,0x6f,	0x5c,0x2e,0x2e,0x72
1109.byte	0x38,0x1c,0x1c,0x24,	0x57,0xa6,0xa6,0xf1
1110.byte	0x73,0xb4,0xb4,0xc7,	0x97,0xc6,0xc6,0x51
1111.byte	0xcb,0xe8,0xe8,0x23,	0xa1,0xdd,0xdd,0x7c
1112.byte	0xe8,0x74,0x74,0x9c,	0x3e,0x1f,0x1f,0x21
1113.byte	0x96,0x4b,0x4b,0xdd,	0x61,0xbd,0xbd,0xdc
1114.byte	0x0d,0x8b,0x8b,0x86,	0x0f,0x8a,0x8a,0x85
1115.byte	0xe0,0x70,0x70,0x90,	0x7c,0x3e,0x3e,0x42
1116.byte	0x71,0xb5,0xb5,0xc4,	0xcc,0x66,0x66,0xaa
1117.byte	0x90,0x48,0x48,0xd8,	0x06,0x03,0x03,0x05
1118.byte	0xf7,0xf6,0xf6,0x01,	0x1c,0x0e,0x0e,0x12
1119.byte	0xc2,0x61,0x61,0xa3,	0x6a,0x35,0x35,0x5f
1120.byte	0xae,0x57,0x57,0xf9,	0x69,0xb9,0xb9,0xd0
1121.byte	0x17,0x86,0x86,0x91,	0x99,0xc1,0xc1,0x58
1122.byte	0x3a,0x1d,0x1d,0x27,	0x27,0x9e,0x9e,0xb9
1123.byte	0xd9,0xe1,0xe1,0x38,	0xeb,0xf8,0xf8,0x13
1124.byte	0x2b,0x98,0x98,0xb3,	0x22,0x11,0x11,0x33
1125.byte	0xd2,0x69,0x69,0xbb,	0xa9,0xd9,0xd9,0x70
1126.byte	0x07,0x8e,0x8e,0x89,	0x33,0x94,0x94,0xa7
1127.byte	0x2d,0x9b,0x9b,0xb6,	0x3c,0x1e,0x1e,0x22
1128.byte	0x15,0x87,0x87,0x92,	0xc9,0xe9,0xe9,0x20
1129.byte	0x87,0xce,0xce,0x49,	0xaa,0x55,0x55,0xff
1130.byte	0x50,0x28,0x28,0x78,	0xa5,0xdf,0xdf,0x7a
1131.byte	0x03,0x8c,0x8c,0x8f,	0x59,0xa1,0xa1,0xf8
1132.byte	0x09,0x89,0x89,0x80,	0x1a,0x0d,0x0d,0x17
1133.byte	0x65,0xbf,0xbf,0xda,	0xd7,0xe6,0xe6,0x31
1134.byte	0x84,0x42,0x42,0xc6,	0xd0,0x68,0x68,0xb8
1135.byte	0x82,0x41,0x41,0xc3,	0x29,0x99,0x99,0xb0
1136.byte	0x5a,0x2d,0x2d,0x77,	0x1e,0x0f,0x0f,0x11
1137.byte	0x7b,0xb0,0xb0,0xcb,	0xa8,0x54,0x54,0xfc
1138.byte	0x6d,0xbb,0xbb,0xd6,	0x2c,0x16,0x16,0x3a
1139
1140.byte	0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5	# Te4
1141.byte	0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76
1142.byte	0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0
1143.byte	0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0
1144.byte	0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc
1145.byte	0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15
1146.byte	0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a
1147.byte	0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75
1148.byte	0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0
1149.byte	0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84
1150.byte	0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b
1151.byte	0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf
1152.byte	0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85
1153.byte	0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8
1154.byte	0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5
1155.byte	0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2
1156.byte	0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17
1157.byte	0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73
1158.byte	0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88
1159.byte	0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb
1160.byte	0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c
1161.byte	0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79
1162.byte	0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9
1163.byte	0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08
1164.byte	0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6
1165.byte	0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a
1166.byte	0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e
1167.byte	0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e
1168.byte	0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94
1169.byte	0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf
1170.byte	0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68
1171.byte	0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
1172
1173.byte	0x01,0x00,0x00,0x00,	0x02,0x00,0x00,0x00	# rcon
1174.byte	0x04,0x00,0x00,0x00,	0x08,0x00,0x00,0x00
1175.byte	0x10,0x00,0x00,0x00,	0x20,0x00,0x00,0x00
1176.byte	0x40,0x00,0x00,0x00,	0x80,0x00,0x00,0x00
1177.byte	0x1B,0x00,0x00,0x00,	0x36,0x00,0x00,0x00
1178
1179.align	6
1180AES_Td:
1181.byte	0x51,0xf4,0xa7,0x50,	0x7e,0x41,0x65,0x53	# Td0
1182.byte	0x1a,0x17,0xa4,0xc3,	0x3a,0x27,0x5e,0x96
1183.byte	0x3b,0xab,0x6b,0xcb,	0x1f,0x9d,0x45,0xf1
1184.byte	0xac,0xfa,0x58,0xab,	0x4b,0xe3,0x03,0x93
1185.byte	0x20,0x30,0xfa,0x55,	0xad,0x76,0x6d,0xf6
1186.byte	0x88,0xcc,0x76,0x91,	0xf5,0x02,0x4c,0x25
1187.byte	0x4f,0xe5,0xd7,0xfc,	0xc5,0x2a,0xcb,0xd7
1188.byte	0x26,0x35,0x44,0x80,	0xb5,0x62,0xa3,0x8f
1189.byte	0xde,0xb1,0x5a,0x49,	0x25,0xba,0x1b,0x67
1190.byte	0x45,0xea,0x0e,0x98,	0x5d,0xfe,0xc0,0xe1
1191.byte	0xc3,0x2f,0x75,0x02,	0x81,0x4c,0xf0,0x12
1192.byte	0x8d,0x46,0x97,0xa3,	0x6b,0xd3,0xf9,0xc6
1193.byte	0x03,0x8f,0x5f,0xe7,	0x15,0x92,0x9c,0x95
1194.byte	0xbf,0x6d,0x7a,0xeb,	0x95,0x52,0x59,0xda
1195.byte	0xd4,0xbe,0x83,0x2d,	0x58,0x74,0x21,0xd3
1196.byte	0x49,0xe0,0x69,0x29,	0x8e,0xc9,0xc8,0x44
1197.byte	0x75,0xc2,0x89,0x6a,	0xf4,0x8e,0x79,0x78
1198.byte	0x99,0x58,0x3e,0x6b,	0x27,0xb9,0x71,0xdd
1199.byte	0xbe,0xe1,0x4f,0xb6,	0xf0,0x88,0xad,0x17
1200.byte	0xc9,0x20,0xac,0x66,	0x7d,0xce,0x3a,0xb4
1201.byte	0x63,0xdf,0x4a,0x18,	0xe5,0x1a,0x31,0x82
1202.byte	0x97,0x51,0x33,0x60,	0x62,0x53,0x7f,0x45
1203.byte	0xb1,0x64,0x77,0xe0,	0xbb,0x6b,0xae,0x84
1204.byte	0xfe,0x81,0xa0,0x1c,	0xf9,0x08,0x2b,0x94
1205.byte	0x70,0x48,0x68,0x58,	0x8f,0x45,0xfd,0x19
1206.byte	0x94,0xde,0x6c,0x87,	0x52,0x7b,0xf8,0xb7
1207.byte	0xab,0x73,0xd3,0x23,	0x72,0x4b,0x02,0xe2
1208.byte	0xe3,0x1f,0x8f,0x57,	0x66,0x55,0xab,0x2a
1209.byte	0xb2,0xeb,0x28,0x07,	0x2f,0xb5,0xc2,0x03
1210.byte	0x86,0xc5,0x7b,0x9a,	0xd3,0x37,0x08,0xa5
1211.byte	0x30,0x28,0x87,0xf2,	0x23,0xbf,0xa5,0xb2
1212.byte	0x02,0x03,0x6a,0xba,	0xed,0x16,0x82,0x5c
1213.byte	0x8a,0xcf,0x1c,0x2b,	0xa7,0x79,0xb4,0x92
1214.byte	0xf3,0x07,0xf2,0xf0,	0x4e,0x69,0xe2,0xa1
1215.byte	0x65,0xda,0xf4,0xcd,	0x06,0x05,0xbe,0xd5
1216.byte	0xd1,0x34,0x62,0x1f,	0xc4,0xa6,0xfe,0x8a
1217.byte	0x34,0x2e,0x53,0x9d,	0xa2,0xf3,0x55,0xa0
1218.byte	0x05,0x8a,0xe1,0x32,	0xa4,0xf6,0xeb,0x75
1219.byte	0x0b,0x83,0xec,0x39,	0x40,0x60,0xef,0xaa
1220.byte	0x5e,0x71,0x9f,0x06,	0xbd,0x6e,0x10,0x51
1221.byte	0x3e,0x21,0x8a,0xf9,	0x96,0xdd,0x06,0x3d
1222.byte	0xdd,0x3e,0x05,0xae,	0x4d,0xe6,0xbd,0x46
1223.byte	0x91,0x54,0x8d,0xb5,	0x71,0xc4,0x5d,0x05
1224.byte	0x04,0x06,0xd4,0x6f,	0x60,0x50,0x15,0xff
1225.byte	0x19,0x98,0xfb,0x24,	0xd6,0xbd,0xe9,0x97
1226.byte	0x89,0x40,0x43,0xcc,	0x67,0xd9,0x9e,0x77
1227.byte	0xb0,0xe8,0x42,0xbd,	0x07,0x89,0x8b,0x88
1228.byte	0xe7,0x19,0x5b,0x38,	0x79,0xc8,0xee,0xdb
1229.byte	0xa1,0x7c,0x0a,0x47,	0x7c,0x42,0x0f,0xe9
1230.byte	0xf8,0x84,0x1e,0xc9,	0x00,0x00,0x00,0x00
1231.byte	0x09,0x80,0x86,0x83,	0x32,0x2b,0xed,0x48
1232.byte	0x1e,0x11,0x70,0xac,	0x6c,0x5a,0x72,0x4e
1233.byte	0xfd,0x0e,0xff,0xfb,	0x0f,0x85,0x38,0x56
1234.byte	0x3d,0xae,0xd5,0x1e,	0x36,0x2d,0x39,0x27
1235.byte	0x0a,0x0f,0xd9,0x64,	0x68,0x5c,0xa6,0x21
1236.byte	0x9b,0x5b,0x54,0xd1,	0x24,0x36,0x2e,0x3a
1237.byte	0x0c,0x0a,0x67,0xb1,	0x93,0x57,0xe7,0x0f
1238.byte	0xb4,0xee,0x96,0xd2,	0x1b,0x9b,0x91,0x9e
1239.byte	0x80,0xc0,0xc5,0x4f,	0x61,0xdc,0x20,0xa2
1240.byte	0x5a,0x77,0x4b,0x69,	0x1c,0x12,0x1a,0x16
1241.byte	0xe2,0x93,0xba,0x0a,	0xc0,0xa0,0x2a,0xe5
1242.byte	0x3c,0x22,0xe0,0x43,	0x12,0x1b,0x17,0x1d
1243.byte	0x0e,0x09,0x0d,0x0b,	0xf2,0x8b,0xc7,0xad
1244.byte	0x2d,0xb6,0xa8,0xb9,	0x14,0x1e,0xa9,0xc8
1245.byte	0x57,0xf1,0x19,0x85,	0xaf,0x75,0x07,0x4c
1246.byte	0xee,0x99,0xdd,0xbb,	0xa3,0x7f,0x60,0xfd
1247.byte	0xf7,0x01,0x26,0x9f,	0x5c,0x72,0xf5,0xbc
1248.byte	0x44,0x66,0x3b,0xc5,	0x5b,0xfb,0x7e,0x34
1249.byte	0x8b,0x43,0x29,0x76,	0xcb,0x23,0xc6,0xdc
1250.byte	0xb6,0xed,0xfc,0x68,	0xb8,0xe4,0xf1,0x63
1251.byte	0xd7,0x31,0xdc,0xca,	0x42,0x63,0x85,0x10
1252.byte	0x13,0x97,0x22,0x40,	0x84,0xc6,0x11,0x20
1253.byte	0x85,0x4a,0x24,0x7d,	0xd2,0xbb,0x3d,0xf8
1254.byte	0xae,0xf9,0x32,0x11,	0xc7,0x29,0xa1,0x6d
1255.byte	0x1d,0x9e,0x2f,0x4b,	0xdc,0xb2,0x30,0xf3
1256.byte	0x0d,0x86,0x52,0xec,	0x77,0xc1,0xe3,0xd0
1257.byte	0x2b,0xb3,0x16,0x6c,	0xa9,0x70,0xb9,0x99
1258.byte	0x11,0x94,0x48,0xfa,	0x47,0xe9,0x64,0x22
1259.byte	0xa8,0xfc,0x8c,0xc4,	0xa0,0xf0,0x3f,0x1a
1260.byte	0x56,0x7d,0x2c,0xd8,	0x22,0x33,0x90,0xef
1261.byte	0x87,0x49,0x4e,0xc7,	0xd9,0x38,0xd1,0xc1
1262.byte	0x8c,0xca,0xa2,0xfe,	0x98,0xd4,0x0b,0x36
1263.byte	0xa6,0xf5,0x81,0xcf,	0xa5,0x7a,0xde,0x28
1264.byte	0xda,0xb7,0x8e,0x26,	0x3f,0xad,0xbf,0xa4
1265.byte	0x2c,0x3a,0x9d,0xe4,	0x50,0x78,0x92,0x0d
1266.byte	0x6a,0x5f,0xcc,0x9b,	0x54,0x7e,0x46,0x62
1267.byte	0xf6,0x8d,0x13,0xc2,	0x90,0xd8,0xb8,0xe8
1268.byte	0x2e,0x39,0xf7,0x5e,	0x82,0xc3,0xaf,0xf5
1269.byte	0x9f,0x5d,0x80,0xbe,	0x69,0xd0,0x93,0x7c
1270.byte	0x6f,0xd5,0x2d,0xa9,	0xcf,0x25,0x12,0xb3
1271.byte	0xc8,0xac,0x99,0x3b,	0x10,0x18,0x7d,0xa7
1272.byte	0xe8,0x9c,0x63,0x6e,	0xdb,0x3b,0xbb,0x7b
1273.byte	0xcd,0x26,0x78,0x09,	0x6e,0x59,0x18,0xf4
1274.byte	0xec,0x9a,0xb7,0x01,	0x83,0x4f,0x9a,0xa8
1275.byte	0xe6,0x95,0x6e,0x65,	0xaa,0xff,0xe6,0x7e
1276.byte	0x21,0xbc,0xcf,0x08,	0xef,0x15,0xe8,0xe6
1277.byte	0xba,0xe7,0x9b,0xd9,	0x4a,0x6f,0x36,0xce
1278.byte	0xea,0x9f,0x09,0xd4,	0x29,0xb0,0x7c,0xd6
1279.byte	0x31,0xa4,0xb2,0xaf,	0x2a,0x3f,0x23,0x31
1280.byte	0xc6,0xa5,0x94,0x30,	0x35,0xa2,0x66,0xc0
1281.byte	0x74,0x4e,0xbc,0x37,	0xfc,0x82,0xca,0xa6
1282.byte	0xe0,0x90,0xd0,0xb0,	0x33,0xa7,0xd8,0x15
1283.byte	0xf1,0x04,0x98,0x4a,	0x41,0xec,0xda,0xf7
1284.byte	0x7f,0xcd,0x50,0x0e,	0x17,0x91,0xf6,0x2f
1285.byte	0x76,0x4d,0xd6,0x8d,	0x43,0xef,0xb0,0x4d
1286.byte	0xcc,0xaa,0x4d,0x54,	0xe4,0x96,0x04,0xdf
1287.byte	0x9e,0xd1,0xb5,0xe3,	0x4c,0x6a,0x88,0x1b
1288.byte	0xc1,0x2c,0x1f,0xb8,	0x46,0x65,0x51,0x7f
1289.byte	0x9d,0x5e,0xea,0x04,	0x01,0x8c,0x35,0x5d
1290.byte	0xfa,0x87,0x74,0x73,	0xfb,0x0b,0x41,0x2e
1291.byte	0xb3,0x67,0x1d,0x5a,	0x92,0xdb,0xd2,0x52
1292.byte	0xe9,0x10,0x56,0x33,	0x6d,0xd6,0x47,0x13
1293.byte	0x9a,0xd7,0x61,0x8c,	0x37,0xa1,0x0c,0x7a
1294.byte	0x59,0xf8,0x14,0x8e,	0xeb,0x13,0x3c,0x89
1295.byte	0xce,0xa9,0x27,0xee,	0xb7,0x61,0xc9,0x35
1296.byte	0xe1,0x1c,0xe5,0xed,	0x7a,0x47,0xb1,0x3c
1297.byte	0x9c,0xd2,0xdf,0x59,	0x55,0xf2,0x73,0x3f
1298.byte	0x18,0x14,0xce,0x79,	0x73,0xc7,0x37,0xbf
1299.byte	0x53,0xf7,0xcd,0xea,	0x5f,0xfd,0xaa,0x5b
1300.byte	0xdf,0x3d,0x6f,0x14,	0x78,0x44,0xdb,0x86
1301.byte	0xca,0xaf,0xf3,0x81,	0xb9,0x68,0xc4,0x3e
1302.byte	0x38,0x24,0x34,0x2c,	0xc2,0xa3,0x40,0x5f
1303.byte	0x16,0x1d,0xc3,0x72,	0xbc,0xe2,0x25,0x0c
1304.byte	0x28,0x3c,0x49,0x8b,	0xff,0x0d,0x95,0x41
1305.byte	0x39,0xa8,0x01,0x71,	0x08,0x0c,0xb3,0xde
1306.byte	0xd8,0xb4,0xe4,0x9c,	0x64,0x56,0xc1,0x90
1307.byte	0x7b,0xcb,0x84,0x61,	0xd5,0x32,0xb6,0x70
1308.byte	0x48,0x6c,0x5c,0x74,	0xd0,0xb8,0x57,0x42
1309
1310.byte	0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38	# Td4
1311.byte	0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb
1312.byte	0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87
1313.byte	0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb
1314.byte	0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d
1315.byte	0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e
1316.byte	0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2
1317.byte	0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25
1318.byte	0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16
1319.byte	0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92
1320.byte	0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda
1321.byte	0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84
1322.byte	0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a
1323.byte	0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06
1324.byte	0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02
1325.byte	0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b
1326.byte	0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea
1327.byte	0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73
1328.byte	0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85
1329.byte	0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e
1330.byte	0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89
1331.byte	0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b
1332.byte	0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20
1333.byte	0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4
1334.byte	0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31
1335.byte	0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f
1336.byte	0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d
1337.byte	0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
1338.byte	0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0
1339.byte	0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
1340.byte	0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
1341.byte	0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
1342