xref: /freebsd/sys/crypto/openssl/i386/wp-mmx.S (revision 0afa8e065e14bb8fd338d75690e0238c00167d40)
1/* $FreeBSD$ */
2/* Do not modify. This file is auto-generated from wp-mmx.pl. */
3#ifdef PIC
4.text
5.globl	whirlpool_block_mmx
6.type	whirlpool_block_mmx,@function
7.align	16
8whirlpool_block_mmx:
9.L_whirlpool_block_mmx_begin:
10	pushl	%ebp
11	pushl	%ebx
12	pushl	%esi
13	pushl	%edi
14	movl	20(%esp),%esi
15	movl	24(%esp),%edi
16	movl	28(%esp),%ebp
17	movl	%esp,%eax
18	subl	$148,%esp
19	andl	$-64,%esp
20	leal	128(%esp),%ebx
21	movl	%esi,(%ebx)
22	movl	%edi,4(%ebx)
23	movl	%ebp,8(%ebx)
24	movl	%eax,16(%ebx)
25	call	.L000pic_point
26.L000pic_point:
27	popl	%ebp
28	leal	.L001table-.L000pic_point(%ebp),%ebp
29	xorl	%ecx,%ecx
30	xorl	%edx,%edx
31	movq	(%esi),%mm0
32	movq	8(%esi),%mm1
33	movq	16(%esi),%mm2
34	movq	24(%esi),%mm3
35	movq	32(%esi),%mm4
36	movq	40(%esi),%mm5
37	movq	48(%esi),%mm6
38	movq	56(%esi),%mm7
39.L002outerloop:
40	movq	%mm0,(%esp)
41	movq	%mm1,8(%esp)
42	movq	%mm2,16(%esp)
43	movq	%mm3,24(%esp)
44	movq	%mm4,32(%esp)
45	movq	%mm5,40(%esp)
46	movq	%mm6,48(%esp)
47	movq	%mm7,56(%esp)
48	pxor	(%edi),%mm0
49	pxor	8(%edi),%mm1
50	pxor	16(%edi),%mm2
51	pxor	24(%edi),%mm3
52	pxor	32(%edi),%mm4
53	pxor	40(%edi),%mm5
54	pxor	48(%edi),%mm6
55	pxor	56(%edi),%mm7
56	movq	%mm0,64(%esp)
57	movq	%mm1,72(%esp)
58	movq	%mm2,80(%esp)
59	movq	%mm3,88(%esp)
60	movq	%mm4,96(%esp)
61	movq	%mm5,104(%esp)
62	movq	%mm6,112(%esp)
63	movq	%mm7,120(%esp)
64	xorl	%esi,%esi
65	movl	%esi,12(%ebx)
66.align	16
67.L003round:
68	movq	4096(%ebp,%esi,8),%mm0
69	movl	(%esp),%eax
70	movl	4(%esp),%ebx
71	movzbl	%al,%ecx
72	movzbl	%ah,%edx
73	shrl	$16,%eax
74	leal	(%ecx,%ecx,1),%esi
75	movzbl	%al,%ecx
76	leal	(%edx,%edx,1),%edi
77	movzbl	%ah,%edx
78	pxor	(%ebp,%esi,8),%mm0
79	movq	7(%ebp,%edi,8),%mm1
80	movl	8(%esp),%eax
81	leal	(%ecx,%ecx,1),%esi
82	movzbl	%bl,%ecx
83	leal	(%edx,%edx,1),%edi
84	movzbl	%bh,%edx
85	movq	6(%ebp,%esi,8),%mm2
86	movq	5(%ebp,%edi,8),%mm3
87	shrl	$16,%ebx
88	leal	(%ecx,%ecx,1),%esi
89	movzbl	%bl,%ecx
90	leal	(%edx,%edx,1),%edi
91	movzbl	%bh,%edx
92	movq	4(%ebp,%esi,8),%mm4
93	movq	3(%ebp,%edi,8),%mm5
94	movl	12(%esp),%ebx
95	leal	(%ecx,%ecx,1),%esi
96	movzbl	%al,%ecx
97	leal	(%edx,%edx,1),%edi
98	movzbl	%ah,%edx
99	movq	2(%ebp,%esi,8),%mm6
100	movq	1(%ebp,%edi,8),%mm7
101	shrl	$16,%eax
102	leal	(%ecx,%ecx,1),%esi
103	movzbl	%al,%ecx
104	leal	(%edx,%edx,1),%edi
105	movzbl	%ah,%edx
106	pxor	(%ebp,%esi,8),%mm1
107	pxor	7(%ebp,%edi,8),%mm2
108	movl	16(%esp),%eax
109	leal	(%ecx,%ecx,1),%esi
110	movzbl	%bl,%ecx
111	leal	(%edx,%edx,1),%edi
112	movzbl	%bh,%edx
113	pxor	6(%ebp,%esi,8),%mm3
114	pxor	5(%ebp,%edi,8),%mm4
115	shrl	$16,%ebx
116	leal	(%ecx,%ecx,1),%esi
117	movzbl	%bl,%ecx
118	leal	(%edx,%edx,1),%edi
119	movzbl	%bh,%edx
120	pxor	4(%ebp,%esi,8),%mm5
121	pxor	3(%ebp,%edi,8),%mm6
122	movl	20(%esp),%ebx
123	leal	(%ecx,%ecx,1),%esi
124	movzbl	%al,%ecx
125	leal	(%edx,%edx,1),%edi
126	movzbl	%ah,%edx
127	pxor	2(%ebp,%esi,8),%mm7
128	pxor	1(%ebp,%edi,8),%mm0
129	shrl	$16,%eax
130	leal	(%ecx,%ecx,1),%esi
131	movzbl	%al,%ecx
132	leal	(%edx,%edx,1),%edi
133	movzbl	%ah,%edx
134	pxor	(%ebp,%esi,8),%mm2
135	pxor	7(%ebp,%edi,8),%mm3
136	movl	24(%esp),%eax
137	leal	(%ecx,%ecx,1),%esi
138	movzbl	%bl,%ecx
139	leal	(%edx,%edx,1),%edi
140	movzbl	%bh,%edx
141	pxor	6(%ebp,%esi,8),%mm4
142	pxor	5(%ebp,%edi,8),%mm5
143	shrl	$16,%ebx
144	leal	(%ecx,%ecx,1),%esi
145	movzbl	%bl,%ecx
146	leal	(%edx,%edx,1),%edi
147	movzbl	%bh,%edx
148	pxor	4(%ebp,%esi,8),%mm6
149	pxor	3(%ebp,%edi,8),%mm7
150	movl	28(%esp),%ebx
151	leal	(%ecx,%ecx,1),%esi
152	movzbl	%al,%ecx
153	leal	(%edx,%edx,1),%edi
154	movzbl	%ah,%edx
155	pxor	2(%ebp,%esi,8),%mm0
156	pxor	1(%ebp,%edi,8),%mm1
157	shrl	$16,%eax
158	leal	(%ecx,%ecx,1),%esi
159	movzbl	%al,%ecx
160	leal	(%edx,%edx,1),%edi
161	movzbl	%ah,%edx
162	pxor	(%ebp,%esi,8),%mm3
163	pxor	7(%ebp,%edi,8),%mm4
164	movl	32(%esp),%eax
165	leal	(%ecx,%ecx,1),%esi
166	movzbl	%bl,%ecx
167	leal	(%edx,%edx,1),%edi
168	movzbl	%bh,%edx
169	pxor	6(%ebp,%esi,8),%mm5
170	pxor	5(%ebp,%edi,8),%mm6
171	shrl	$16,%ebx
172	leal	(%ecx,%ecx,1),%esi
173	movzbl	%bl,%ecx
174	leal	(%edx,%edx,1),%edi
175	movzbl	%bh,%edx
176	pxor	4(%ebp,%esi,8),%mm7
177	pxor	3(%ebp,%edi,8),%mm0
178	movl	36(%esp),%ebx
179	leal	(%ecx,%ecx,1),%esi
180	movzbl	%al,%ecx
181	leal	(%edx,%edx,1),%edi
182	movzbl	%ah,%edx
183	pxor	2(%ebp,%esi,8),%mm1
184	pxor	1(%ebp,%edi,8),%mm2
185	shrl	$16,%eax
186	leal	(%ecx,%ecx,1),%esi
187	movzbl	%al,%ecx
188	leal	(%edx,%edx,1),%edi
189	movzbl	%ah,%edx
190	pxor	(%ebp,%esi,8),%mm4
191	pxor	7(%ebp,%edi,8),%mm5
192	movl	40(%esp),%eax
193	leal	(%ecx,%ecx,1),%esi
194	movzbl	%bl,%ecx
195	leal	(%edx,%edx,1),%edi
196	movzbl	%bh,%edx
197	pxor	6(%ebp,%esi,8),%mm6
198	pxor	5(%ebp,%edi,8),%mm7
199	shrl	$16,%ebx
200	leal	(%ecx,%ecx,1),%esi
201	movzbl	%bl,%ecx
202	leal	(%edx,%edx,1),%edi
203	movzbl	%bh,%edx
204	pxor	4(%ebp,%esi,8),%mm0
205	pxor	3(%ebp,%edi,8),%mm1
206	movl	44(%esp),%ebx
207	leal	(%ecx,%ecx,1),%esi
208	movzbl	%al,%ecx
209	leal	(%edx,%edx,1),%edi
210	movzbl	%ah,%edx
211	pxor	2(%ebp,%esi,8),%mm2
212	pxor	1(%ebp,%edi,8),%mm3
213	shrl	$16,%eax
214	leal	(%ecx,%ecx,1),%esi
215	movzbl	%al,%ecx
216	leal	(%edx,%edx,1),%edi
217	movzbl	%ah,%edx
218	pxor	(%ebp,%esi,8),%mm5
219	pxor	7(%ebp,%edi,8),%mm6
220	movl	48(%esp),%eax
221	leal	(%ecx,%ecx,1),%esi
222	movzbl	%bl,%ecx
223	leal	(%edx,%edx,1),%edi
224	movzbl	%bh,%edx
225	pxor	6(%ebp,%esi,8),%mm7
226	pxor	5(%ebp,%edi,8),%mm0
227	shrl	$16,%ebx
228	leal	(%ecx,%ecx,1),%esi
229	movzbl	%bl,%ecx
230	leal	(%edx,%edx,1),%edi
231	movzbl	%bh,%edx
232	pxor	4(%ebp,%esi,8),%mm1
233	pxor	3(%ebp,%edi,8),%mm2
234	movl	52(%esp),%ebx
235	leal	(%ecx,%ecx,1),%esi
236	movzbl	%al,%ecx
237	leal	(%edx,%edx,1),%edi
238	movzbl	%ah,%edx
239	pxor	2(%ebp,%esi,8),%mm3
240	pxor	1(%ebp,%edi,8),%mm4
241	shrl	$16,%eax
242	leal	(%ecx,%ecx,1),%esi
243	movzbl	%al,%ecx
244	leal	(%edx,%edx,1),%edi
245	movzbl	%ah,%edx
246	pxor	(%ebp,%esi,8),%mm6
247	pxor	7(%ebp,%edi,8),%mm7
248	movl	56(%esp),%eax
249	leal	(%ecx,%ecx,1),%esi
250	movzbl	%bl,%ecx
251	leal	(%edx,%edx,1),%edi
252	movzbl	%bh,%edx
253	pxor	6(%ebp,%esi,8),%mm0
254	pxor	5(%ebp,%edi,8),%mm1
255	shrl	$16,%ebx
256	leal	(%ecx,%ecx,1),%esi
257	movzbl	%bl,%ecx
258	leal	(%edx,%edx,1),%edi
259	movzbl	%bh,%edx
260	pxor	4(%ebp,%esi,8),%mm2
261	pxor	3(%ebp,%edi,8),%mm3
262	movl	60(%esp),%ebx
263	leal	(%ecx,%ecx,1),%esi
264	movzbl	%al,%ecx
265	leal	(%edx,%edx,1),%edi
266	movzbl	%ah,%edx
267	pxor	2(%ebp,%esi,8),%mm4
268	pxor	1(%ebp,%edi,8),%mm5
269	shrl	$16,%eax
270	leal	(%ecx,%ecx,1),%esi
271	movzbl	%al,%ecx
272	leal	(%edx,%edx,1),%edi
273	movzbl	%ah,%edx
274	pxor	(%ebp,%esi,8),%mm7
275	pxor	7(%ebp,%edi,8),%mm0
276	movl	64(%esp),%eax
277	leal	(%ecx,%ecx,1),%esi
278	movzbl	%bl,%ecx
279	leal	(%edx,%edx,1),%edi
280	movzbl	%bh,%edx
281	pxor	6(%ebp,%esi,8),%mm1
282	pxor	5(%ebp,%edi,8),%mm2
283	shrl	$16,%ebx
284	leal	(%ecx,%ecx,1),%esi
285	movzbl	%bl,%ecx
286	leal	(%edx,%edx,1),%edi
287	movzbl	%bh,%edx
288	pxor	4(%ebp,%esi,8),%mm3
289	pxor	3(%ebp,%edi,8),%mm4
290	movl	68(%esp),%ebx
291	leal	(%ecx,%ecx,1),%esi
292	movzbl	%al,%ecx
293	leal	(%edx,%edx,1),%edi
294	movzbl	%ah,%edx
295	pxor	2(%ebp,%esi,8),%mm5
296	pxor	1(%ebp,%edi,8),%mm6
297	movq	%mm0,(%esp)
298	movq	%mm1,8(%esp)
299	movq	%mm2,16(%esp)
300	movq	%mm3,24(%esp)
301	movq	%mm4,32(%esp)
302	movq	%mm5,40(%esp)
303	movq	%mm6,48(%esp)
304	movq	%mm7,56(%esp)
305	shrl	$16,%eax
306	leal	(%ecx,%ecx,1),%esi
307	movzbl	%al,%ecx
308	leal	(%edx,%edx,1),%edi
309	movzbl	%ah,%edx
310	pxor	(%ebp,%esi,8),%mm0
311	pxor	7(%ebp,%edi,8),%mm1
312	movl	72(%esp),%eax
313	leal	(%ecx,%ecx,1),%esi
314	movzbl	%bl,%ecx
315	leal	(%edx,%edx,1),%edi
316	movzbl	%bh,%edx
317	pxor	6(%ebp,%esi,8),%mm2
318	pxor	5(%ebp,%edi,8),%mm3
319	shrl	$16,%ebx
320	leal	(%ecx,%ecx,1),%esi
321	movzbl	%bl,%ecx
322	leal	(%edx,%edx,1),%edi
323	movzbl	%bh,%edx
324	pxor	4(%ebp,%esi,8),%mm4
325	pxor	3(%ebp,%edi,8),%mm5
326	movl	76(%esp),%ebx
327	leal	(%ecx,%ecx,1),%esi
328	movzbl	%al,%ecx
329	leal	(%edx,%edx,1),%edi
330	movzbl	%ah,%edx
331	pxor	2(%ebp,%esi,8),%mm6
332	pxor	1(%ebp,%edi,8),%mm7
333	shrl	$16,%eax
334	leal	(%ecx,%ecx,1),%esi
335	movzbl	%al,%ecx
336	leal	(%edx,%edx,1),%edi
337	movzbl	%ah,%edx
338	pxor	(%ebp,%esi,8),%mm1
339	pxor	7(%ebp,%edi,8),%mm2
340	movl	80(%esp),%eax
341	leal	(%ecx,%ecx,1),%esi
342	movzbl	%bl,%ecx
343	leal	(%edx,%edx,1),%edi
344	movzbl	%bh,%edx
345	pxor	6(%ebp,%esi,8),%mm3
346	pxor	5(%ebp,%edi,8),%mm4
347	shrl	$16,%ebx
348	leal	(%ecx,%ecx,1),%esi
349	movzbl	%bl,%ecx
350	leal	(%edx,%edx,1),%edi
351	movzbl	%bh,%edx
352	pxor	4(%ebp,%esi,8),%mm5
353	pxor	3(%ebp,%edi,8),%mm6
354	movl	84(%esp),%ebx
355	leal	(%ecx,%ecx,1),%esi
356	movzbl	%al,%ecx
357	leal	(%edx,%edx,1),%edi
358	movzbl	%ah,%edx
359	pxor	2(%ebp,%esi,8),%mm7
360	pxor	1(%ebp,%edi,8),%mm0
361	shrl	$16,%eax
362	leal	(%ecx,%ecx,1),%esi
363	movzbl	%al,%ecx
364	leal	(%edx,%edx,1),%edi
365	movzbl	%ah,%edx
366	pxor	(%ebp,%esi,8),%mm2
367	pxor	7(%ebp,%edi,8),%mm3
368	movl	88(%esp),%eax
369	leal	(%ecx,%ecx,1),%esi
370	movzbl	%bl,%ecx
371	leal	(%edx,%edx,1),%edi
372	movzbl	%bh,%edx
373	pxor	6(%ebp,%esi,8),%mm4
374	pxor	5(%ebp,%edi,8),%mm5
375	shrl	$16,%ebx
376	leal	(%ecx,%ecx,1),%esi
377	movzbl	%bl,%ecx
378	leal	(%edx,%edx,1),%edi
379	movzbl	%bh,%edx
380	pxor	4(%ebp,%esi,8),%mm6
381	pxor	3(%ebp,%edi,8),%mm7
382	movl	92(%esp),%ebx
383	leal	(%ecx,%ecx,1),%esi
384	movzbl	%al,%ecx
385	leal	(%edx,%edx,1),%edi
386	movzbl	%ah,%edx
387	pxor	2(%ebp,%esi,8),%mm0
388	pxor	1(%ebp,%edi,8),%mm1
389	shrl	$16,%eax
390	leal	(%ecx,%ecx,1),%esi
391	movzbl	%al,%ecx
392	leal	(%edx,%edx,1),%edi
393	movzbl	%ah,%edx
394	pxor	(%ebp,%esi,8),%mm3
395	pxor	7(%ebp,%edi,8),%mm4
396	movl	96(%esp),%eax
397	leal	(%ecx,%ecx,1),%esi
398	movzbl	%bl,%ecx
399	leal	(%edx,%edx,1),%edi
400	movzbl	%bh,%edx
401	pxor	6(%ebp,%esi,8),%mm5
402	pxor	5(%ebp,%edi,8),%mm6
403	shrl	$16,%ebx
404	leal	(%ecx,%ecx,1),%esi
405	movzbl	%bl,%ecx
406	leal	(%edx,%edx,1),%edi
407	movzbl	%bh,%edx
408	pxor	4(%ebp,%esi,8),%mm7
409	pxor	3(%ebp,%edi,8),%mm0
410	movl	100(%esp),%ebx
411	leal	(%ecx,%ecx,1),%esi
412	movzbl	%al,%ecx
413	leal	(%edx,%edx,1),%edi
414	movzbl	%ah,%edx
415	pxor	2(%ebp,%esi,8),%mm1
416	pxor	1(%ebp,%edi,8),%mm2
417	shrl	$16,%eax
418	leal	(%ecx,%ecx,1),%esi
419	movzbl	%al,%ecx
420	leal	(%edx,%edx,1),%edi
421	movzbl	%ah,%edx
422	pxor	(%ebp,%esi,8),%mm4
423	pxor	7(%ebp,%edi,8),%mm5
424	movl	104(%esp),%eax
425	leal	(%ecx,%ecx,1),%esi
426	movzbl	%bl,%ecx
427	leal	(%edx,%edx,1),%edi
428	movzbl	%bh,%edx
429	pxor	6(%ebp,%esi,8),%mm6
430	pxor	5(%ebp,%edi,8),%mm7
431	shrl	$16,%ebx
432	leal	(%ecx,%ecx,1),%esi
433	movzbl	%bl,%ecx
434	leal	(%edx,%edx,1),%edi
435	movzbl	%bh,%edx
436	pxor	4(%ebp,%esi,8),%mm0
437	pxor	3(%ebp,%edi,8),%mm1
438	movl	108(%esp),%ebx
439	leal	(%ecx,%ecx,1),%esi
440	movzbl	%al,%ecx
441	leal	(%edx,%edx,1),%edi
442	movzbl	%ah,%edx
443	pxor	2(%ebp,%esi,8),%mm2
444	pxor	1(%ebp,%edi,8),%mm3
445	shrl	$16,%eax
446	leal	(%ecx,%ecx,1),%esi
447	movzbl	%al,%ecx
448	leal	(%edx,%edx,1),%edi
449	movzbl	%ah,%edx
450	pxor	(%ebp,%esi,8),%mm5
451	pxor	7(%ebp,%edi,8),%mm6
452	movl	112(%esp),%eax
453	leal	(%ecx,%ecx,1),%esi
454	movzbl	%bl,%ecx
455	leal	(%edx,%edx,1),%edi
456	movzbl	%bh,%edx
457	pxor	6(%ebp,%esi,8),%mm7
458	pxor	5(%ebp,%edi,8),%mm0
459	shrl	$16,%ebx
460	leal	(%ecx,%ecx,1),%esi
461	movzbl	%bl,%ecx
462	leal	(%edx,%edx,1),%edi
463	movzbl	%bh,%edx
464	pxor	4(%ebp,%esi,8),%mm1
465	pxor	3(%ebp,%edi,8),%mm2
466	movl	116(%esp),%ebx
467	leal	(%ecx,%ecx,1),%esi
468	movzbl	%al,%ecx
469	leal	(%edx,%edx,1),%edi
470	movzbl	%ah,%edx
471	pxor	2(%ebp,%esi,8),%mm3
472	pxor	1(%ebp,%edi,8),%mm4
473	shrl	$16,%eax
474	leal	(%ecx,%ecx,1),%esi
475	movzbl	%al,%ecx
476	leal	(%edx,%edx,1),%edi
477	movzbl	%ah,%edx
478	pxor	(%ebp,%esi,8),%mm6
479	pxor	7(%ebp,%edi,8),%mm7
480	movl	120(%esp),%eax
481	leal	(%ecx,%ecx,1),%esi
482	movzbl	%bl,%ecx
483	leal	(%edx,%edx,1),%edi
484	movzbl	%bh,%edx
485	pxor	6(%ebp,%esi,8),%mm0
486	pxor	5(%ebp,%edi,8),%mm1
487	shrl	$16,%ebx
488	leal	(%ecx,%ecx,1),%esi
489	movzbl	%bl,%ecx
490	leal	(%edx,%edx,1),%edi
491	movzbl	%bh,%edx
492	pxor	4(%ebp,%esi,8),%mm2
493	pxor	3(%ebp,%edi,8),%mm3
494	movl	124(%esp),%ebx
495	leal	(%ecx,%ecx,1),%esi
496	movzbl	%al,%ecx
497	leal	(%edx,%edx,1),%edi
498	movzbl	%ah,%edx
499	pxor	2(%ebp,%esi,8),%mm4
500	pxor	1(%ebp,%edi,8),%mm5
501	shrl	$16,%eax
502	leal	(%ecx,%ecx,1),%esi
503	movzbl	%al,%ecx
504	leal	(%edx,%edx,1),%edi
505	movzbl	%ah,%edx
506	pxor	(%ebp,%esi,8),%mm7
507	pxor	7(%ebp,%edi,8),%mm0
508	leal	(%ecx,%ecx,1),%esi
509	movzbl	%bl,%ecx
510	leal	(%edx,%edx,1),%edi
511	movzbl	%bh,%edx
512	pxor	6(%ebp,%esi,8),%mm1
513	pxor	5(%ebp,%edi,8),%mm2
514	shrl	$16,%ebx
515	leal	(%ecx,%ecx,1),%esi
516	movzbl	%bl,%ecx
517	leal	(%edx,%edx,1),%edi
518	movzbl	%bh,%edx
519	pxor	4(%ebp,%esi,8),%mm3
520	pxor	3(%ebp,%edi,8),%mm4
521	leal	(%ecx,%ecx,1),%esi
522	movzbl	%al,%ecx
523	leal	(%edx,%edx,1),%edi
524	movzbl	%ah,%edx
525	pxor	2(%ebp,%esi,8),%mm5
526	pxor	1(%ebp,%edi,8),%mm6
527	leal	128(%esp),%ebx
528	movl	12(%ebx),%esi
529	addl	$1,%esi
530	cmpl	$10,%esi
531	je	.L004roundsdone
532	movl	%esi,12(%ebx)
533	movq	%mm0,64(%esp)
534	movq	%mm1,72(%esp)
535	movq	%mm2,80(%esp)
536	movq	%mm3,88(%esp)
537	movq	%mm4,96(%esp)
538	movq	%mm5,104(%esp)
539	movq	%mm6,112(%esp)
540	movq	%mm7,120(%esp)
541	jmp	.L003round
542.align	16
543.L004roundsdone:
544	movl	(%ebx),%esi
545	movl	4(%ebx),%edi
546	movl	8(%ebx),%eax
547	pxor	(%edi),%mm0
548	pxor	8(%edi),%mm1
549	pxor	16(%edi),%mm2
550	pxor	24(%edi),%mm3
551	pxor	32(%edi),%mm4
552	pxor	40(%edi),%mm5
553	pxor	48(%edi),%mm6
554	pxor	56(%edi),%mm7
555	pxor	(%esi),%mm0
556	pxor	8(%esi),%mm1
557	pxor	16(%esi),%mm2
558	pxor	24(%esi),%mm3
559	pxor	32(%esi),%mm4
560	pxor	40(%esi),%mm5
561	pxor	48(%esi),%mm6
562	pxor	56(%esi),%mm7
563	movq	%mm0,(%esi)
564	movq	%mm1,8(%esi)
565	movq	%mm2,16(%esi)
566	movq	%mm3,24(%esi)
567	movq	%mm4,32(%esi)
568	movq	%mm5,40(%esi)
569	movq	%mm6,48(%esi)
570	movq	%mm7,56(%esi)
571	leal	64(%edi),%edi
572	subl	$1,%eax
573	jz	.L005alldone
574	movl	%edi,4(%ebx)
575	movl	%eax,8(%ebx)
576	jmp	.L002outerloop
577.L005alldone:
578	emms
579	movl	16(%ebx),%esp
580	popl	%edi
581	popl	%esi
582	popl	%ebx
583	popl	%ebp
584	ret
585.align	64
586.L001table:
587.byte	24,24,96,24,192,120,48,216
588.byte	24,24,96,24,192,120,48,216
589.byte	35,35,140,35,5,175,70,38
590.byte	35,35,140,35,5,175,70,38
591.byte	198,198,63,198,126,249,145,184
592.byte	198,198,63,198,126,249,145,184
593.byte	232,232,135,232,19,111,205,251
594.byte	232,232,135,232,19,111,205,251
595.byte	135,135,38,135,76,161,19,203
596.byte	135,135,38,135,76,161,19,203
597.byte	184,184,218,184,169,98,109,17
598.byte	184,184,218,184,169,98,109,17
599.byte	1,1,4,1,8,5,2,9
600.byte	1,1,4,1,8,5,2,9
601.byte	79,79,33,79,66,110,158,13
602.byte	79,79,33,79,66,110,158,13
603.byte	54,54,216,54,173,238,108,155
604.byte	54,54,216,54,173,238,108,155
605.byte	166,166,162,166,89,4,81,255
606.byte	166,166,162,166,89,4,81,255
607.byte	210,210,111,210,222,189,185,12
608.byte	210,210,111,210,222,189,185,12
609.byte	245,245,243,245,251,6,247,14
610.byte	245,245,243,245,251,6,247,14
611.byte	121,121,249,121,239,128,242,150
612.byte	121,121,249,121,239,128,242,150
613.byte	111,111,161,111,95,206,222,48
614.byte	111,111,161,111,95,206,222,48
615.byte	145,145,126,145,252,239,63,109
616.byte	145,145,126,145,252,239,63,109
617.byte	82,82,85,82,170,7,164,248
618.byte	82,82,85,82,170,7,164,248
619.byte	96,96,157,96,39,253,192,71
620.byte	96,96,157,96,39,253,192,71
621.byte	188,188,202,188,137,118,101,53
622.byte	188,188,202,188,137,118,101,53
623.byte	155,155,86,155,172,205,43,55
624.byte	155,155,86,155,172,205,43,55
625.byte	142,142,2,142,4,140,1,138
626.byte	142,142,2,142,4,140,1,138
627.byte	163,163,182,163,113,21,91,210
628.byte	163,163,182,163,113,21,91,210
629.byte	12,12,48,12,96,60,24,108
630.byte	12,12,48,12,96,60,24,108
631.byte	123,123,241,123,255,138,246,132
632.byte	123,123,241,123,255,138,246,132
633.byte	53,53,212,53,181,225,106,128
634.byte	53,53,212,53,181,225,106,128
635.byte	29,29,116,29,232,105,58,245
636.byte	29,29,116,29,232,105,58,245
637.byte	224,224,167,224,83,71,221,179
638.byte	224,224,167,224,83,71,221,179
639.byte	215,215,123,215,246,172,179,33
640.byte	215,215,123,215,246,172,179,33
641.byte	194,194,47,194,94,237,153,156
642.byte	194,194,47,194,94,237,153,156
643.byte	46,46,184,46,109,150,92,67
644.byte	46,46,184,46,109,150,92,67
645.byte	75,75,49,75,98,122,150,41
646.byte	75,75,49,75,98,122,150,41
647.byte	254,254,223,254,163,33,225,93
648.byte	254,254,223,254,163,33,225,93
649.byte	87,87,65,87,130,22,174,213
650.byte	87,87,65,87,130,22,174,213
651.byte	21,21,84,21,168,65,42,189
652.byte	21,21,84,21,168,65,42,189
653.byte	119,119,193,119,159,182,238,232
654.byte	119,119,193,119,159,182,238,232
655.byte	55,55,220,55,165,235,110,146
656.byte	55,55,220,55,165,235,110,146
657.byte	229,229,179,229,123,86,215,158
658.byte	229,229,179,229,123,86,215,158
659.byte	159,159,70,159,140,217,35,19
660.byte	159,159,70,159,140,217,35,19
661.byte	240,240,231,240,211,23,253,35
662.byte	240,240,231,240,211,23,253,35
663.byte	74,74,53,74,106,127,148,32
664.byte	74,74,53,74,106,127,148,32
665.byte	218,218,79,218,158,149,169,68
666.byte	218,218,79,218,158,149,169,68
667.byte	88,88,125,88,250,37,176,162
668.byte	88,88,125,88,250,37,176,162
669.byte	201,201,3,201,6,202,143,207
670.byte	201,201,3,201,6,202,143,207
671.byte	41,41,164,41,85,141,82,124
672.byte	41,41,164,41,85,141,82,124
673.byte	10,10,40,10,80,34,20,90
674.byte	10,10,40,10,80,34,20,90
675.byte	177,177,254,177,225,79,127,80
676.byte	177,177,254,177,225,79,127,80
677.byte	160,160,186,160,105,26,93,201
678.byte	160,160,186,160,105,26,93,201
679.byte	107,107,177,107,127,218,214,20
680.byte	107,107,177,107,127,218,214,20
681.byte	133,133,46,133,92,171,23,217
682.byte	133,133,46,133,92,171,23,217
683.byte	189,189,206,189,129,115,103,60
684.byte	189,189,206,189,129,115,103,60
685.byte	93,93,105,93,210,52,186,143
686.byte	93,93,105,93,210,52,186,143
687.byte	16,16,64,16,128,80,32,144
688.byte	16,16,64,16,128,80,32,144
689.byte	244,244,247,244,243,3,245,7
690.byte	244,244,247,244,243,3,245,7
691.byte	203,203,11,203,22,192,139,221
692.byte	203,203,11,203,22,192,139,221
693.byte	62,62,248,62,237,198,124,211
694.byte	62,62,248,62,237,198,124,211
695.byte	5,5,20,5,40,17,10,45
696.byte	5,5,20,5,40,17,10,45
697.byte	103,103,129,103,31,230,206,120
698.byte	103,103,129,103,31,230,206,120
699.byte	228,228,183,228,115,83,213,151
700.byte	228,228,183,228,115,83,213,151
701.byte	39,39,156,39,37,187,78,2
702.byte	39,39,156,39,37,187,78,2
703.byte	65,65,25,65,50,88,130,115
704.byte	65,65,25,65,50,88,130,115
705.byte	139,139,22,139,44,157,11,167
706.byte	139,139,22,139,44,157,11,167
707.byte	167,167,166,167,81,1,83,246
708.byte	167,167,166,167,81,1,83,246
709.byte	125,125,233,125,207,148,250,178
710.byte	125,125,233,125,207,148,250,178
711.byte	149,149,110,149,220,251,55,73
712.byte	149,149,110,149,220,251,55,73
713.byte	216,216,71,216,142,159,173,86
714.byte	216,216,71,216,142,159,173,86
715.byte	251,251,203,251,139,48,235,112
716.byte	251,251,203,251,139,48,235,112
717.byte	238,238,159,238,35,113,193,205
718.byte	238,238,159,238,35,113,193,205
719.byte	124,124,237,124,199,145,248,187
720.byte	124,124,237,124,199,145,248,187
721.byte	102,102,133,102,23,227,204,113
722.byte	102,102,133,102,23,227,204,113
723.byte	221,221,83,221,166,142,167,123
724.byte	221,221,83,221,166,142,167,123
725.byte	23,23,92,23,184,75,46,175
726.byte	23,23,92,23,184,75,46,175
727.byte	71,71,1,71,2,70,142,69
728.byte	71,71,1,71,2,70,142,69
729.byte	158,158,66,158,132,220,33,26
730.byte	158,158,66,158,132,220,33,26
731.byte	202,202,15,202,30,197,137,212
732.byte	202,202,15,202,30,197,137,212
733.byte	45,45,180,45,117,153,90,88
734.byte	45,45,180,45,117,153,90,88
735.byte	191,191,198,191,145,121,99,46
736.byte	191,191,198,191,145,121,99,46
737.byte	7,7,28,7,56,27,14,63
738.byte	7,7,28,7,56,27,14,63
739.byte	173,173,142,173,1,35,71,172
740.byte	173,173,142,173,1,35,71,172
741.byte	90,90,117,90,234,47,180,176
742.byte	90,90,117,90,234,47,180,176
743.byte	131,131,54,131,108,181,27,239
744.byte	131,131,54,131,108,181,27,239
745.byte	51,51,204,51,133,255,102,182
746.byte	51,51,204,51,133,255,102,182
747.byte	99,99,145,99,63,242,198,92
748.byte	99,99,145,99,63,242,198,92
749.byte	2,2,8,2,16,10,4,18
750.byte	2,2,8,2,16,10,4,18
751.byte	170,170,146,170,57,56,73,147
752.byte	170,170,146,170,57,56,73,147
753.byte	113,113,217,113,175,168,226,222
754.byte	113,113,217,113,175,168,226,222
755.byte	200,200,7,200,14,207,141,198
756.byte	200,200,7,200,14,207,141,198
757.byte	25,25,100,25,200,125,50,209
758.byte	25,25,100,25,200,125,50,209
759.byte	73,73,57,73,114,112,146,59
760.byte	73,73,57,73,114,112,146,59
761.byte	217,217,67,217,134,154,175,95
762.byte	217,217,67,217,134,154,175,95
763.byte	242,242,239,242,195,29,249,49
764.byte	242,242,239,242,195,29,249,49
765.byte	227,227,171,227,75,72,219,168
766.byte	227,227,171,227,75,72,219,168
767.byte	91,91,113,91,226,42,182,185
768.byte	91,91,113,91,226,42,182,185
769.byte	136,136,26,136,52,146,13,188
770.byte	136,136,26,136,52,146,13,188
771.byte	154,154,82,154,164,200,41,62
772.byte	154,154,82,154,164,200,41,62
773.byte	38,38,152,38,45,190,76,11
774.byte	38,38,152,38,45,190,76,11
775.byte	50,50,200,50,141,250,100,191
776.byte	50,50,200,50,141,250,100,191
777.byte	176,176,250,176,233,74,125,89
778.byte	176,176,250,176,233,74,125,89
779.byte	233,233,131,233,27,106,207,242
780.byte	233,233,131,233,27,106,207,242
781.byte	15,15,60,15,120,51,30,119
782.byte	15,15,60,15,120,51,30,119
783.byte	213,213,115,213,230,166,183,51
784.byte	213,213,115,213,230,166,183,51
785.byte	128,128,58,128,116,186,29,244
786.byte	128,128,58,128,116,186,29,244
787.byte	190,190,194,190,153,124,97,39
788.byte	190,190,194,190,153,124,97,39
789.byte	205,205,19,205,38,222,135,235
790.byte	205,205,19,205,38,222,135,235
791.byte	52,52,208,52,189,228,104,137
792.byte	52,52,208,52,189,228,104,137
793.byte	72,72,61,72,122,117,144,50
794.byte	72,72,61,72,122,117,144,50
795.byte	255,255,219,255,171,36,227,84
796.byte	255,255,219,255,171,36,227,84
797.byte	122,122,245,122,247,143,244,141
798.byte	122,122,245,122,247,143,244,141
799.byte	144,144,122,144,244,234,61,100
800.byte	144,144,122,144,244,234,61,100
801.byte	95,95,97,95,194,62,190,157
802.byte	95,95,97,95,194,62,190,157
803.byte	32,32,128,32,29,160,64,61
804.byte	32,32,128,32,29,160,64,61
805.byte	104,104,189,104,103,213,208,15
806.byte	104,104,189,104,103,213,208,15
807.byte	26,26,104,26,208,114,52,202
808.byte	26,26,104,26,208,114,52,202
809.byte	174,174,130,174,25,44,65,183
810.byte	174,174,130,174,25,44,65,183
811.byte	180,180,234,180,201,94,117,125
812.byte	180,180,234,180,201,94,117,125
813.byte	84,84,77,84,154,25,168,206
814.byte	84,84,77,84,154,25,168,206
815.byte	147,147,118,147,236,229,59,127
816.byte	147,147,118,147,236,229,59,127
817.byte	34,34,136,34,13,170,68,47
818.byte	34,34,136,34,13,170,68,47
819.byte	100,100,141,100,7,233,200,99
820.byte	100,100,141,100,7,233,200,99
821.byte	241,241,227,241,219,18,255,42
822.byte	241,241,227,241,219,18,255,42
823.byte	115,115,209,115,191,162,230,204
824.byte	115,115,209,115,191,162,230,204
825.byte	18,18,72,18,144,90,36,130
826.byte	18,18,72,18,144,90,36,130
827.byte	64,64,29,64,58,93,128,122
828.byte	64,64,29,64,58,93,128,122
829.byte	8,8,32,8,64,40,16,72
830.byte	8,8,32,8,64,40,16,72
831.byte	195,195,43,195,86,232,155,149
832.byte	195,195,43,195,86,232,155,149
833.byte	236,236,151,236,51,123,197,223
834.byte	236,236,151,236,51,123,197,223
835.byte	219,219,75,219,150,144,171,77
836.byte	219,219,75,219,150,144,171,77
837.byte	161,161,190,161,97,31,95,192
838.byte	161,161,190,161,97,31,95,192
839.byte	141,141,14,141,28,131,7,145
840.byte	141,141,14,141,28,131,7,145
841.byte	61,61,244,61,245,201,122,200
842.byte	61,61,244,61,245,201,122,200
843.byte	151,151,102,151,204,241,51,91
844.byte	151,151,102,151,204,241,51,91
845.byte	0,0,0,0,0,0,0,0
846.byte	0,0,0,0,0,0,0,0
847.byte	207,207,27,207,54,212,131,249
848.byte	207,207,27,207,54,212,131,249
849.byte	43,43,172,43,69,135,86,110
850.byte	43,43,172,43,69,135,86,110
851.byte	118,118,197,118,151,179,236,225
852.byte	118,118,197,118,151,179,236,225
853.byte	130,130,50,130,100,176,25,230
854.byte	130,130,50,130,100,176,25,230
855.byte	214,214,127,214,254,169,177,40
856.byte	214,214,127,214,254,169,177,40
857.byte	27,27,108,27,216,119,54,195
858.byte	27,27,108,27,216,119,54,195
859.byte	181,181,238,181,193,91,119,116
860.byte	181,181,238,181,193,91,119,116
861.byte	175,175,134,175,17,41,67,190
862.byte	175,175,134,175,17,41,67,190
863.byte	106,106,181,106,119,223,212,29
864.byte	106,106,181,106,119,223,212,29
865.byte	80,80,93,80,186,13,160,234
866.byte	80,80,93,80,186,13,160,234
867.byte	69,69,9,69,18,76,138,87
868.byte	69,69,9,69,18,76,138,87
869.byte	243,243,235,243,203,24,251,56
870.byte	243,243,235,243,203,24,251,56
871.byte	48,48,192,48,157,240,96,173
872.byte	48,48,192,48,157,240,96,173
873.byte	239,239,155,239,43,116,195,196
874.byte	239,239,155,239,43,116,195,196
875.byte	63,63,252,63,229,195,126,218
876.byte	63,63,252,63,229,195,126,218
877.byte	85,85,73,85,146,28,170,199
878.byte	85,85,73,85,146,28,170,199
879.byte	162,162,178,162,121,16,89,219
880.byte	162,162,178,162,121,16,89,219
881.byte	234,234,143,234,3,101,201,233
882.byte	234,234,143,234,3,101,201,233
883.byte	101,101,137,101,15,236,202,106
884.byte	101,101,137,101,15,236,202,106
885.byte	186,186,210,186,185,104,105,3
886.byte	186,186,210,186,185,104,105,3
887.byte	47,47,188,47,101,147,94,74
888.byte	47,47,188,47,101,147,94,74
889.byte	192,192,39,192,78,231,157,142
890.byte	192,192,39,192,78,231,157,142
891.byte	222,222,95,222,190,129,161,96
892.byte	222,222,95,222,190,129,161,96
893.byte	28,28,112,28,224,108,56,252
894.byte	28,28,112,28,224,108,56,252
895.byte	253,253,211,253,187,46,231,70
896.byte	253,253,211,253,187,46,231,70
897.byte	77,77,41,77,82,100,154,31
898.byte	77,77,41,77,82,100,154,31
899.byte	146,146,114,146,228,224,57,118
900.byte	146,146,114,146,228,224,57,118
901.byte	117,117,201,117,143,188,234,250
902.byte	117,117,201,117,143,188,234,250
903.byte	6,6,24,6,48,30,12,54
904.byte	6,6,24,6,48,30,12,54
905.byte	138,138,18,138,36,152,9,174
906.byte	138,138,18,138,36,152,9,174
907.byte	178,178,242,178,249,64,121,75
908.byte	178,178,242,178,249,64,121,75
909.byte	230,230,191,230,99,89,209,133
910.byte	230,230,191,230,99,89,209,133
911.byte	14,14,56,14,112,54,28,126
912.byte	14,14,56,14,112,54,28,126
913.byte	31,31,124,31,248,99,62,231
914.byte	31,31,124,31,248,99,62,231
915.byte	98,98,149,98,55,247,196,85
916.byte	98,98,149,98,55,247,196,85
917.byte	212,212,119,212,238,163,181,58
918.byte	212,212,119,212,238,163,181,58
919.byte	168,168,154,168,41,50,77,129
920.byte	168,168,154,168,41,50,77,129
921.byte	150,150,98,150,196,244,49,82
922.byte	150,150,98,150,196,244,49,82
923.byte	249,249,195,249,155,58,239,98
924.byte	249,249,195,249,155,58,239,98
925.byte	197,197,51,197,102,246,151,163
926.byte	197,197,51,197,102,246,151,163
927.byte	37,37,148,37,53,177,74,16
928.byte	37,37,148,37,53,177,74,16
929.byte	89,89,121,89,242,32,178,171
930.byte	89,89,121,89,242,32,178,171
931.byte	132,132,42,132,84,174,21,208
932.byte	132,132,42,132,84,174,21,208
933.byte	114,114,213,114,183,167,228,197
934.byte	114,114,213,114,183,167,228,197
935.byte	57,57,228,57,213,221,114,236
936.byte	57,57,228,57,213,221,114,236
937.byte	76,76,45,76,90,97,152,22
938.byte	76,76,45,76,90,97,152,22
939.byte	94,94,101,94,202,59,188,148
940.byte	94,94,101,94,202,59,188,148
941.byte	120,120,253,120,231,133,240,159
942.byte	120,120,253,120,231,133,240,159
943.byte	56,56,224,56,221,216,112,229
944.byte	56,56,224,56,221,216,112,229
945.byte	140,140,10,140,20,134,5,152
946.byte	140,140,10,140,20,134,5,152
947.byte	209,209,99,209,198,178,191,23
948.byte	209,209,99,209,198,178,191,23
949.byte	165,165,174,165,65,11,87,228
950.byte	165,165,174,165,65,11,87,228
951.byte	226,226,175,226,67,77,217,161
952.byte	226,226,175,226,67,77,217,161
953.byte	97,97,153,97,47,248,194,78
954.byte	97,97,153,97,47,248,194,78
955.byte	179,179,246,179,241,69,123,66
956.byte	179,179,246,179,241,69,123,66
957.byte	33,33,132,33,21,165,66,52
958.byte	33,33,132,33,21,165,66,52
959.byte	156,156,74,156,148,214,37,8
960.byte	156,156,74,156,148,214,37,8
961.byte	30,30,120,30,240,102,60,238
962.byte	30,30,120,30,240,102,60,238
963.byte	67,67,17,67,34,82,134,97
964.byte	67,67,17,67,34,82,134,97
965.byte	199,199,59,199,118,252,147,177
966.byte	199,199,59,199,118,252,147,177
967.byte	252,252,215,252,179,43,229,79
968.byte	252,252,215,252,179,43,229,79
969.byte	4,4,16,4,32,20,8,36
970.byte	4,4,16,4,32,20,8,36
971.byte	81,81,89,81,178,8,162,227
972.byte	81,81,89,81,178,8,162,227
973.byte	153,153,94,153,188,199,47,37
974.byte	153,153,94,153,188,199,47,37
975.byte	109,109,169,109,79,196,218,34
976.byte	109,109,169,109,79,196,218,34
977.byte	13,13,52,13,104,57,26,101
978.byte	13,13,52,13,104,57,26,101
979.byte	250,250,207,250,131,53,233,121
980.byte	250,250,207,250,131,53,233,121
981.byte	223,223,91,223,182,132,163,105
982.byte	223,223,91,223,182,132,163,105
983.byte	126,126,229,126,215,155,252,169
984.byte	126,126,229,126,215,155,252,169
985.byte	36,36,144,36,61,180,72,25
986.byte	36,36,144,36,61,180,72,25
987.byte	59,59,236,59,197,215,118,254
988.byte	59,59,236,59,197,215,118,254
989.byte	171,171,150,171,49,61,75,154
990.byte	171,171,150,171,49,61,75,154
991.byte	206,206,31,206,62,209,129,240
992.byte	206,206,31,206,62,209,129,240
993.byte	17,17,68,17,136,85,34,153
994.byte	17,17,68,17,136,85,34,153
995.byte	143,143,6,143,12,137,3,131
996.byte	143,143,6,143,12,137,3,131
997.byte	78,78,37,78,74,107,156,4
998.byte	78,78,37,78,74,107,156,4
999.byte	183,183,230,183,209,81,115,102
1000.byte	183,183,230,183,209,81,115,102
1001.byte	235,235,139,235,11,96,203,224
1002.byte	235,235,139,235,11,96,203,224
1003.byte	60,60,240,60,253,204,120,193
1004.byte	60,60,240,60,253,204,120,193
1005.byte	129,129,62,129,124,191,31,253
1006.byte	129,129,62,129,124,191,31,253
1007.byte	148,148,106,148,212,254,53,64
1008.byte	148,148,106,148,212,254,53,64
1009.byte	247,247,251,247,235,12,243,28
1010.byte	247,247,251,247,235,12,243,28
1011.byte	185,185,222,185,161,103,111,24
1012.byte	185,185,222,185,161,103,111,24
1013.byte	19,19,76,19,152,95,38,139
1014.byte	19,19,76,19,152,95,38,139
1015.byte	44,44,176,44,125,156,88,81
1016.byte	44,44,176,44,125,156,88,81
1017.byte	211,211,107,211,214,184,187,5
1018.byte	211,211,107,211,214,184,187,5
1019.byte	231,231,187,231,107,92,211,140
1020.byte	231,231,187,231,107,92,211,140
1021.byte	110,110,165,110,87,203,220,57
1022.byte	110,110,165,110,87,203,220,57
1023.byte	196,196,55,196,110,243,149,170
1024.byte	196,196,55,196,110,243,149,170
1025.byte	3,3,12,3,24,15,6,27
1026.byte	3,3,12,3,24,15,6,27
1027.byte	86,86,69,86,138,19,172,220
1028.byte	86,86,69,86,138,19,172,220
1029.byte	68,68,13,68,26,73,136,94
1030.byte	68,68,13,68,26,73,136,94
1031.byte	127,127,225,127,223,158,254,160
1032.byte	127,127,225,127,223,158,254,160
1033.byte	169,169,158,169,33,55,79,136
1034.byte	169,169,158,169,33,55,79,136
1035.byte	42,42,168,42,77,130,84,103
1036.byte	42,42,168,42,77,130,84,103
1037.byte	187,187,214,187,177,109,107,10
1038.byte	187,187,214,187,177,109,107,10
1039.byte	193,193,35,193,70,226,159,135
1040.byte	193,193,35,193,70,226,159,135
1041.byte	83,83,81,83,162,2,166,241
1042.byte	83,83,81,83,162,2,166,241
1043.byte	220,220,87,220,174,139,165,114
1044.byte	220,220,87,220,174,139,165,114
1045.byte	11,11,44,11,88,39,22,83
1046.byte	11,11,44,11,88,39,22,83
1047.byte	157,157,78,157,156,211,39,1
1048.byte	157,157,78,157,156,211,39,1
1049.byte	108,108,173,108,71,193,216,43
1050.byte	108,108,173,108,71,193,216,43
1051.byte	49,49,196,49,149,245,98,164
1052.byte	49,49,196,49,149,245,98,164
1053.byte	116,116,205,116,135,185,232,243
1054.byte	116,116,205,116,135,185,232,243
1055.byte	246,246,255,246,227,9,241,21
1056.byte	246,246,255,246,227,9,241,21
1057.byte	70,70,5,70,10,67,140,76
1058.byte	70,70,5,70,10,67,140,76
1059.byte	172,172,138,172,9,38,69,165
1060.byte	172,172,138,172,9,38,69,165
1061.byte	137,137,30,137,60,151,15,181
1062.byte	137,137,30,137,60,151,15,181
1063.byte	20,20,80,20,160,68,40,180
1064.byte	20,20,80,20,160,68,40,180
1065.byte	225,225,163,225,91,66,223,186
1066.byte	225,225,163,225,91,66,223,186
1067.byte	22,22,88,22,176,78,44,166
1068.byte	22,22,88,22,176,78,44,166
1069.byte	58,58,232,58,205,210,116,247
1070.byte	58,58,232,58,205,210,116,247
1071.byte	105,105,185,105,111,208,210,6
1072.byte	105,105,185,105,111,208,210,6
1073.byte	9,9,36,9,72,45,18,65
1074.byte	9,9,36,9,72,45,18,65
1075.byte	112,112,221,112,167,173,224,215
1076.byte	112,112,221,112,167,173,224,215
1077.byte	182,182,226,182,217,84,113,111
1078.byte	182,182,226,182,217,84,113,111
1079.byte	208,208,103,208,206,183,189,30
1080.byte	208,208,103,208,206,183,189,30
1081.byte	237,237,147,237,59,126,199,214
1082.byte	237,237,147,237,59,126,199,214
1083.byte	204,204,23,204,46,219,133,226
1084.byte	204,204,23,204,46,219,133,226
1085.byte	66,66,21,66,42,87,132,104
1086.byte	66,66,21,66,42,87,132,104
1087.byte	152,152,90,152,180,194,45,44
1088.byte	152,152,90,152,180,194,45,44
1089.byte	164,164,170,164,73,14,85,237
1090.byte	164,164,170,164,73,14,85,237
1091.byte	40,40,160,40,93,136,80,117
1092.byte	40,40,160,40,93,136,80,117
1093.byte	92,92,109,92,218,49,184,134
1094.byte	92,92,109,92,218,49,184,134
1095.byte	248,248,199,248,147,63,237,107
1096.byte	248,248,199,248,147,63,237,107
1097.byte	134,134,34,134,68,164,17,194
1098.byte	134,134,34,134,68,164,17,194
1099.byte	24,35,198,232,135,184,1,79
1100.byte	54,166,210,245,121,111,145,82
1101.byte	96,188,155,142,163,12,123,53
1102.byte	29,224,215,194,46,75,254,87
1103.byte	21,119,55,229,159,240,74,218
1104.byte	88,201,41,10,177,160,107,133
1105.byte	189,93,16,244,203,62,5,103
1106.byte	228,39,65,139,167,125,149,216
1107.byte	251,238,124,102,221,23,71,158
1108.byte	202,45,191,7,173,90,131,51
1109.size	whirlpool_block_mmx,.-.L_whirlpool_block_mmx_begin
1110#else
1111.text
1112.globl	whirlpool_block_mmx
1113.type	whirlpool_block_mmx,@function
1114.align	16
1115whirlpool_block_mmx:
1116.L_whirlpool_block_mmx_begin:
1117	pushl	%ebp
1118	pushl	%ebx
1119	pushl	%esi
1120	pushl	%edi
1121	movl	20(%esp),%esi
1122	movl	24(%esp),%edi
1123	movl	28(%esp),%ebp
1124	movl	%esp,%eax
1125	subl	$148,%esp
1126	andl	$-64,%esp
1127	leal	128(%esp),%ebx
1128	movl	%esi,(%ebx)
1129	movl	%edi,4(%ebx)
1130	movl	%ebp,8(%ebx)
1131	movl	%eax,16(%ebx)
1132	call	.L000pic_point
1133.L000pic_point:
1134	popl	%ebp
1135	leal	.L001table-.L000pic_point(%ebp),%ebp
1136	xorl	%ecx,%ecx
1137	xorl	%edx,%edx
1138	movq	(%esi),%mm0
1139	movq	8(%esi),%mm1
1140	movq	16(%esi),%mm2
1141	movq	24(%esi),%mm3
1142	movq	32(%esi),%mm4
1143	movq	40(%esi),%mm5
1144	movq	48(%esi),%mm6
1145	movq	56(%esi),%mm7
1146.L002outerloop:
1147	movq	%mm0,(%esp)
1148	movq	%mm1,8(%esp)
1149	movq	%mm2,16(%esp)
1150	movq	%mm3,24(%esp)
1151	movq	%mm4,32(%esp)
1152	movq	%mm5,40(%esp)
1153	movq	%mm6,48(%esp)
1154	movq	%mm7,56(%esp)
1155	pxor	(%edi),%mm0
1156	pxor	8(%edi),%mm1
1157	pxor	16(%edi),%mm2
1158	pxor	24(%edi),%mm3
1159	pxor	32(%edi),%mm4
1160	pxor	40(%edi),%mm5
1161	pxor	48(%edi),%mm6
1162	pxor	56(%edi),%mm7
1163	movq	%mm0,64(%esp)
1164	movq	%mm1,72(%esp)
1165	movq	%mm2,80(%esp)
1166	movq	%mm3,88(%esp)
1167	movq	%mm4,96(%esp)
1168	movq	%mm5,104(%esp)
1169	movq	%mm6,112(%esp)
1170	movq	%mm7,120(%esp)
1171	xorl	%esi,%esi
1172	movl	%esi,12(%ebx)
1173.align	16
1174.L003round:
1175	movq	4096(%ebp,%esi,8),%mm0
1176	movl	(%esp),%eax
1177	movl	4(%esp),%ebx
1178	movzbl	%al,%ecx
1179	movzbl	%ah,%edx
1180	shrl	$16,%eax
1181	leal	(%ecx,%ecx,1),%esi
1182	movzbl	%al,%ecx
1183	leal	(%edx,%edx,1),%edi
1184	movzbl	%ah,%edx
1185	pxor	(%ebp,%esi,8),%mm0
1186	movq	7(%ebp,%edi,8),%mm1
1187	movl	8(%esp),%eax
1188	leal	(%ecx,%ecx,1),%esi
1189	movzbl	%bl,%ecx
1190	leal	(%edx,%edx,1),%edi
1191	movzbl	%bh,%edx
1192	movq	6(%ebp,%esi,8),%mm2
1193	movq	5(%ebp,%edi,8),%mm3
1194	shrl	$16,%ebx
1195	leal	(%ecx,%ecx,1),%esi
1196	movzbl	%bl,%ecx
1197	leal	(%edx,%edx,1),%edi
1198	movzbl	%bh,%edx
1199	movq	4(%ebp,%esi,8),%mm4
1200	movq	3(%ebp,%edi,8),%mm5
1201	movl	12(%esp),%ebx
1202	leal	(%ecx,%ecx,1),%esi
1203	movzbl	%al,%ecx
1204	leal	(%edx,%edx,1),%edi
1205	movzbl	%ah,%edx
1206	movq	2(%ebp,%esi,8),%mm6
1207	movq	1(%ebp,%edi,8),%mm7
1208	shrl	$16,%eax
1209	leal	(%ecx,%ecx,1),%esi
1210	movzbl	%al,%ecx
1211	leal	(%edx,%edx,1),%edi
1212	movzbl	%ah,%edx
1213	pxor	(%ebp,%esi,8),%mm1
1214	pxor	7(%ebp,%edi,8),%mm2
1215	movl	16(%esp),%eax
1216	leal	(%ecx,%ecx,1),%esi
1217	movzbl	%bl,%ecx
1218	leal	(%edx,%edx,1),%edi
1219	movzbl	%bh,%edx
1220	pxor	6(%ebp,%esi,8),%mm3
1221	pxor	5(%ebp,%edi,8),%mm4
1222	shrl	$16,%ebx
1223	leal	(%ecx,%ecx,1),%esi
1224	movzbl	%bl,%ecx
1225	leal	(%edx,%edx,1),%edi
1226	movzbl	%bh,%edx
1227	pxor	4(%ebp,%esi,8),%mm5
1228	pxor	3(%ebp,%edi,8),%mm6
1229	movl	20(%esp),%ebx
1230	leal	(%ecx,%ecx,1),%esi
1231	movzbl	%al,%ecx
1232	leal	(%edx,%edx,1),%edi
1233	movzbl	%ah,%edx
1234	pxor	2(%ebp,%esi,8),%mm7
1235	pxor	1(%ebp,%edi,8),%mm0
1236	shrl	$16,%eax
1237	leal	(%ecx,%ecx,1),%esi
1238	movzbl	%al,%ecx
1239	leal	(%edx,%edx,1),%edi
1240	movzbl	%ah,%edx
1241	pxor	(%ebp,%esi,8),%mm2
1242	pxor	7(%ebp,%edi,8),%mm3
1243	movl	24(%esp),%eax
1244	leal	(%ecx,%ecx,1),%esi
1245	movzbl	%bl,%ecx
1246	leal	(%edx,%edx,1),%edi
1247	movzbl	%bh,%edx
1248	pxor	6(%ebp,%esi,8),%mm4
1249	pxor	5(%ebp,%edi,8),%mm5
1250	shrl	$16,%ebx
1251	leal	(%ecx,%ecx,1),%esi
1252	movzbl	%bl,%ecx
1253	leal	(%edx,%edx,1),%edi
1254	movzbl	%bh,%edx
1255	pxor	4(%ebp,%esi,8),%mm6
1256	pxor	3(%ebp,%edi,8),%mm7
1257	movl	28(%esp),%ebx
1258	leal	(%ecx,%ecx,1),%esi
1259	movzbl	%al,%ecx
1260	leal	(%edx,%edx,1),%edi
1261	movzbl	%ah,%edx
1262	pxor	2(%ebp,%esi,8),%mm0
1263	pxor	1(%ebp,%edi,8),%mm1
1264	shrl	$16,%eax
1265	leal	(%ecx,%ecx,1),%esi
1266	movzbl	%al,%ecx
1267	leal	(%edx,%edx,1),%edi
1268	movzbl	%ah,%edx
1269	pxor	(%ebp,%esi,8),%mm3
1270	pxor	7(%ebp,%edi,8),%mm4
1271	movl	32(%esp),%eax
1272	leal	(%ecx,%ecx,1),%esi
1273	movzbl	%bl,%ecx
1274	leal	(%edx,%edx,1),%edi
1275	movzbl	%bh,%edx
1276	pxor	6(%ebp,%esi,8),%mm5
1277	pxor	5(%ebp,%edi,8),%mm6
1278	shrl	$16,%ebx
1279	leal	(%ecx,%ecx,1),%esi
1280	movzbl	%bl,%ecx
1281	leal	(%edx,%edx,1),%edi
1282	movzbl	%bh,%edx
1283	pxor	4(%ebp,%esi,8),%mm7
1284	pxor	3(%ebp,%edi,8),%mm0
1285	movl	36(%esp),%ebx
1286	leal	(%ecx,%ecx,1),%esi
1287	movzbl	%al,%ecx
1288	leal	(%edx,%edx,1),%edi
1289	movzbl	%ah,%edx
1290	pxor	2(%ebp,%esi,8),%mm1
1291	pxor	1(%ebp,%edi,8),%mm2
1292	shrl	$16,%eax
1293	leal	(%ecx,%ecx,1),%esi
1294	movzbl	%al,%ecx
1295	leal	(%edx,%edx,1),%edi
1296	movzbl	%ah,%edx
1297	pxor	(%ebp,%esi,8),%mm4
1298	pxor	7(%ebp,%edi,8),%mm5
1299	movl	40(%esp),%eax
1300	leal	(%ecx,%ecx,1),%esi
1301	movzbl	%bl,%ecx
1302	leal	(%edx,%edx,1),%edi
1303	movzbl	%bh,%edx
1304	pxor	6(%ebp,%esi,8),%mm6
1305	pxor	5(%ebp,%edi,8),%mm7
1306	shrl	$16,%ebx
1307	leal	(%ecx,%ecx,1),%esi
1308	movzbl	%bl,%ecx
1309	leal	(%edx,%edx,1),%edi
1310	movzbl	%bh,%edx
1311	pxor	4(%ebp,%esi,8),%mm0
1312	pxor	3(%ebp,%edi,8),%mm1
1313	movl	44(%esp),%ebx
1314	leal	(%ecx,%ecx,1),%esi
1315	movzbl	%al,%ecx
1316	leal	(%edx,%edx,1),%edi
1317	movzbl	%ah,%edx
1318	pxor	2(%ebp,%esi,8),%mm2
1319	pxor	1(%ebp,%edi,8),%mm3
1320	shrl	$16,%eax
1321	leal	(%ecx,%ecx,1),%esi
1322	movzbl	%al,%ecx
1323	leal	(%edx,%edx,1),%edi
1324	movzbl	%ah,%edx
1325	pxor	(%ebp,%esi,8),%mm5
1326	pxor	7(%ebp,%edi,8),%mm6
1327	movl	48(%esp),%eax
1328	leal	(%ecx,%ecx,1),%esi
1329	movzbl	%bl,%ecx
1330	leal	(%edx,%edx,1),%edi
1331	movzbl	%bh,%edx
1332	pxor	6(%ebp,%esi,8),%mm7
1333	pxor	5(%ebp,%edi,8),%mm0
1334	shrl	$16,%ebx
1335	leal	(%ecx,%ecx,1),%esi
1336	movzbl	%bl,%ecx
1337	leal	(%edx,%edx,1),%edi
1338	movzbl	%bh,%edx
1339	pxor	4(%ebp,%esi,8),%mm1
1340	pxor	3(%ebp,%edi,8),%mm2
1341	movl	52(%esp),%ebx
1342	leal	(%ecx,%ecx,1),%esi
1343	movzbl	%al,%ecx
1344	leal	(%edx,%edx,1),%edi
1345	movzbl	%ah,%edx
1346	pxor	2(%ebp,%esi,8),%mm3
1347	pxor	1(%ebp,%edi,8),%mm4
1348	shrl	$16,%eax
1349	leal	(%ecx,%ecx,1),%esi
1350	movzbl	%al,%ecx
1351	leal	(%edx,%edx,1),%edi
1352	movzbl	%ah,%edx
1353	pxor	(%ebp,%esi,8),%mm6
1354	pxor	7(%ebp,%edi,8),%mm7
1355	movl	56(%esp),%eax
1356	leal	(%ecx,%ecx,1),%esi
1357	movzbl	%bl,%ecx
1358	leal	(%edx,%edx,1),%edi
1359	movzbl	%bh,%edx
1360	pxor	6(%ebp,%esi,8),%mm0
1361	pxor	5(%ebp,%edi,8),%mm1
1362	shrl	$16,%ebx
1363	leal	(%ecx,%ecx,1),%esi
1364	movzbl	%bl,%ecx
1365	leal	(%edx,%edx,1),%edi
1366	movzbl	%bh,%edx
1367	pxor	4(%ebp,%esi,8),%mm2
1368	pxor	3(%ebp,%edi,8),%mm3
1369	movl	60(%esp),%ebx
1370	leal	(%ecx,%ecx,1),%esi
1371	movzbl	%al,%ecx
1372	leal	(%edx,%edx,1),%edi
1373	movzbl	%ah,%edx
1374	pxor	2(%ebp,%esi,8),%mm4
1375	pxor	1(%ebp,%edi,8),%mm5
1376	shrl	$16,%eax
1377	leal	(%ecx,%ecx,1),%esi
1378	movzbl	%al,%ecx
1379	leal	(%edx,%edx,1),%edi
1380	movzbl	%ah,%edx
1381	pxor	(%ebp,%esi,8),%mm7
1382	pxor	7(%ebp,%edi,8),%mm0
1383	movl	64(%esp),%eax
1384	leal	(%ecx,%ecx,1),%esi
1385	movzbl	%bl,%ecx
1386	leal	(%edx,%edx,1),%edi
1387	movzbl	%bh,%edx
1388	pxor	6(%ebp,%esi,8),%mm1
1389	pxor	5(%ebp,%edi,8),%mm2
1390	shrl	$16,%ebx
1391	leal	(%ecx,%ecx,1),%esi
1392	movzbl	%bl,%ecx
1393	leal	(%edx,%edx,1),%edi
1394	movzbl	%bh,%edx
1395	pxor	4(%ebp,%esi,8),%mm3
1396	pxor	3(%ebp,%edi,8),%mm4
1397	movl	68(%esp),%ebx
1398	leal	(%ecx,%ecx,1),%esi
1399	movzbl	%al,%ecx
1400	leal	(%edx,%edx,1),%edi
1401	movzbl	%ah,%edx
1402	pxor	2(%ebp,%esi,8),%mm5
1403	pxor	1(%ebp,%edi,8),%mm6
1404	movq	%mm0,(%esp)
1405	movq	%mm1,8(%esp)
1406	movq	%mm2,16(%esp)
1407	movq	%mm3,24(%esp)
1408	movq	%mm4,32(%esp)
1409	movq	%mm5,40(%esp)
1410	movq	%mm6,48(%esp)
1411	movq	%mm7,56(%esp)
1412	shrl	$16,%eax
1413	leal	(%ecx,%ecx,1),%esi
1414	movzbl	%al,%ecx
1415	leal	(%edx,%edx,1),%edi
1416	movzbl	%ah,%edx
1417	pxor	(%ebp,%esi,8),%mm0
1418	pxor	7(%ebp,%edi,8),%mm1
1419	movl	72(%esp),%eax
1420	leal	(%ecx,%ecx,1),%esi
1421	movzbl	%bl,%ecx
1422	leal	(%edx,%edx,1),%edi
1423	movzbl	%bh,%edx
1424	pxor	6(%ebp,%esi,8),%mm2
1425	pxor	5(%ebp,%edi,8),%mm3
1426	shrl	$16,%ebx
1427	leal	(%ecx,%ecx,1),%esi
1428	movzbl	%bl,%ecx
1429	leal	(%edx,%edx,1),%edi
1430	movzbl	%bh,%edx
1431	pxor	4(%ebp,%esi,8),%mm4
1432	pxor	3(%ebp,%edi,8),%mm5
1433	movl	76(%esp),%ebx
1434	leal	(%ecx,%ecx,1),%esi
1435	movzbl	%al,%ecx
1436	leal	(%edx,%edx,1),%edi
1437	movzbl	%ah,%edx
1438	pxor	2(%ebp,%esi,8),%mm6
1439	pxor	1(%ebp,%edi,8),%mm7
1440	shrl	$16,%eax
1441	leal	(%ecx,%ecx,1),%esi
1442	movzbl	%al,%ecx
1443	leal	(%edx,%edx,1),%edi
1444	movzbl	%ah,%edx
1445	pxor	(%ebp,%esi,8),%mm1
1446	pxor	7(%ebp,%edi,8),%mm2
1447	movl	80(%esp),%eax
1448	leal	(%ecx,%ecx,1),%esi
1449	movzbl	%bl,%ecx
1450	leal	(%edx,%edx,1),%edi
1451	movzbl	%bh,%edx
1452	pxor	6(%ebp,%esi,8),%mm3
1453	pxor	5(%ebp,%edi,8),%mm4
1454	shrl	$16,%ebx
1455	leal	(%ecx,%ecx,1),%esi
1456	movzbl	%bl,%ecx
1457	leal	(%edx,%edx,1),%edi
1458	movzbl	%bh,%edx
1459	pxor	4(%ebp,%esi,8),%mm5
1460	pxor	3(%ebp,%edi,8),%mm6
1461	movl	84(%esp),%ebx
1462	leal	(%ecx,%ecx,1),%esi
1463	movzbl	%al,%ecx
1464	leal	(%edx,%edx,1),%edi
1465	movzbl	%ah,%edx
1466	pxor	2(%ebp,%esi,8),%mm7
1467	pxor	1(%ebp,%edi,8),%mm0
1468	shrl	$16,%eax
1469	leal	(%ecx,%ecx,1),%esi
1470	movzbl	%al,%ecx
1471	leal	(%edx,%edx,1),%edi
1472	movzbl	%ah,%edx
1473	pxor	(%ebp,%esi,8),%mm2
1474	pxor	7(%ebp,%edi,8),%mm3
1475	movl	88(%esp),%eax
1476	leal	(%ecx,%ecx,1),%esi
1477	movzbl	%bl,%ecx
1478	leal	(%edx,%edx,1),%edi
1479	movzbl	%bh,%edx
1480	pxor	6(%ebp,%esi,8),%mm4
1481	pxor	5(%ebp,%edi,8),%mm5
1482	shrl	$16,%ebx
1483	leal	(%ecx,%ecx,1),%esi
1484	movzbl	%bl,%ecx
1485	leal	(%edx,%edx,1),%edi
1486	movzbl	%bh,%edx
1487	pxor	4(%ebp,%esi,8),%mm6
1488	pxor	3(%ebp,%edi,8),%mm7
1489	movl	92(%esp),%ebx
1490	leal	(%ecx,%ecx,1),%esi
1491	movzbl	%al,%ecx
1492	leal	(%edx,%edx,1),%edi
1493	movzbl	%ah,%edx
1494	pxor	2(%ebp,%esi,8),%mm0
1495	pxor	1(%ebp,%edi,8),%mm1
1496	shrl	$16,%eax
1497	leal	(%ecx,%ecx,1),%esi
1498	movzbl	%al,%ecx
1499	leal	(%edx,%edx,1),%edi
1500	movzbl	%ah,%edx
1501	pxor	(%ebp,%esi,8),%mm3
1502	pxor	7(%ebp,%edi,8),%mm4
1503	movl	96(%esp),%eax
1504	leal	(%ecx,%ecx,1),%esi
1505	movzbl	%bl,%ecx
1506	leal	(%edx,%edx,1),%edi
1507	movzbl	%bh,%edx
1508	pxor	6(%ebp,%esi,8),%mm5
1509	pxor	5(%ebp,%edi,8),%mm6
1510	shrl	$16,%ebx
1511	leal	(%ecx,%ecx,1),%esi
1512	movzbl	%bl,%ecx
1513	leal	(%edx,%edx,1),%edi
1514	movzbl	%bh,%edx
1515	pxor	4(%ebp,%esi,8),%mm7
1516	pxor	3(%ebp,%edi,8),%mm0
1517	movl	100(%esp),%ebx
1518	leal	(%ecx,%ecx,1),%esi
1519	movzbl	%al,%ecx
1520	leal	(%edx,%edx,1),%edi
1521	movzbl	%ah,%edx
1522	pxor	2(%ebp,%esi,8),%mm1
1523	pxor	1(%ebp,%edi,8),%mm2
1524	shrl	$16,%eax
1525	leal	(%ecx,%ecx,1),%esi
1526	movzbl	%al,%ecx
1527	leal	(%edx,%edx,1),%edi
1528	movzbl	%ah,%edx
1529	pxor	(%ebp,%esi,8),%mm4
1530	pxor	7(%ebp,%edi,8),%mm5
1531	movl	104(%esp),%eax
1532	leal	(%ecx,%ecx,1),%esi
1533	movzbl	%bl,%ecx
1534	leal	(%edx,%edx,1),%edi
1535	movzbl	%bh,%edx
1536	pxor	6(%ebp,%esi,8),%mm6
1537	pxor	5(%ebp,%edi,8),%mm7
1538	shrl	$16,%ebx
1539	leal	(%ecx,%ecx,1),%esi
1540	movzbl	%bl,%ecx
1541	leal	(%edx,%edx,1),%edi
1542	movzbl	%bh,%edx
1543	pxor	4(%ebp,%esi,8),%mm0
1544	pxor	3(%ebp,%edi,8),%mm1
1545	movl	108(%esp),%ebx
1546	leal	(%ecx,%ecx,1),%esi
1547	movzbl	%al,%ecx
1548	leal	(%edx,%edx,1),%edi
1549	movzbl	%ah,%edx
1550	pxor	2(%ebp,%esi,8),%mm2
1551	pxor	1(%ebp,%edi,8),%mm3
1552	shrl	$16,%eax
1553	leal	(%ecx,%ecx,1),%esi
1554	movzbl	%al,%ecx
1555	leal	(%edx,%edx,1),%edi
1556	movzbl	%ah,%edx
1557	pxor	(%ebp,%esi,8),%mm5
1558	pxor	7(%ebp,%edi,8),%mm6
1559	movl	112(%esp),%eax
1560	leal	(%ecx,%ecx,1),%esi
1561	movzbl	%bl,%ecx
1562	leal	(%edx,%edx,1),%edi
1563	movzbl	%bh,%edx
1564	pxor	6(%ebp,%esi,8),%mm7
1565	pxor	5(%ebp,%edi,8),%mm0
1566	shrl	$16,%ebx
1567	leal	(%ecx,%ecx,1),%esi
1568	movzbl	%bl,%ecx
1569	leal	(%edx,%edx,1),%edi
1570	movzbl	%bh,%edx
1571	pxor	4(%ebp,%esi,8),%mm1
1572	pxor	3(%ebp,%edi,8),%mm2
1573	movl	116(%esp),%ebx
1574	leal	(%ecx,%ecx,1),%esi
1575	movzbl	%al,%ecx
1576	leal	(%edx,%edx,1),%edi
1577	movzbl	%ah,%edx
1578	pxor	2(%ebp,%esi,8),%mm3
1579	pxor	1(%ebp,%edi,8),%mm4
1580	shrl	$16,%eax
1581	leal	(%ecx,%ecx,1),%esi
1582	movzbl	%al,%ecx
1583	leal	(%edx,%edx,1),%edi
1584	movzbl	%ah,%edx
1585	pxor	(%ebp,%esi,8),%mm6
1586	pxor	7(%ebp,%edi,8),%mm7
1587	movl	120(%esp),%eax
1588	leal	(%ecx,%ecx,1),%esi
1589	movzbl	%bl,%ecx
1590	leal	(%edx,%edx,1),%edi
1591	movzbl	%bh,%edx
1592	pxor	6(%ebp,%esi,8),%mm0
1593	pxor	5(%ebp,%edi,8),%mm1
1594	shrl	$16,%ebx
1595	leal	(%ecx,%ecx,1),%esi
1596	movzbl	%bl,%ecx
1597	leal	(%edx,%edx,1),%edi
1598	movzbl	%bh,%edx
1599	pxor	4(%ebp,%esi,8),%mm2
1600	pxor	3(%ebp,%edi,8),%mm3
1601	movl	124(%esp),%ebx
1602	leal	(%ecx,%ecx,1),%esi
1603	movzbl	%al,%ecx
1604	leal	(%edx,%edx,1),%edi
1605	movzbl	%ah,%edx
1606	pxor	2(%ebp,%esi,8),%mm4
1607	pxor	1(%ebp,%edi,8),%mm5
1608	shrl	$16,%eax
1609	leal	(%ecx,%ecx,1),%esi
1610	movzbl	%al,%ecx
1611	leal	(%edx,%edx,1),%edi
1612	movzbl	%ah,%edx
1613	pxor	(%ebp,%esi,8),%mm7
1614	pxor	7(%ebp,%edi,8),%mm0
1615	leal	(%ecx,%ecx,1),%esi
1616	movzbl	%bl,%ecx
1617	leal	(%edx,%edx,1),%edi
1618	movzbl	%bh,%edx
1619	pxor	6(%ebp,%esi,8),%mm1
1620	pxor	5(%ebp,%edi,8),%mm2
1621	shrl	$16,%ebx
1622	leal	(%ecx,%ecx,1),%esi
1623	movzbl	%bl,%ecx
1624	leal	(%edx,%edx,1),%edi
1625	movzbl	%bh,%edx
1626	pxor	4(%ebp,%esi,8),%mm3
1627	pxor	3(%ebp,%edi,8),%mm4
1628	leal	(%ecx,%ecx,1),%esi
1629	movzbl	%al,%ecx
1630	leal	(%edx,%edx,1),%edi
1631	movzbl	%ah,%edx
1632	pxor	2(%ebp,%esi,8),%mm5
1633	pxor	1(%ebp,%edi,8),%mm6
1634	leal	128(%esp),%ebx
1635	movl	12(%ebx),%esi
1636	addl	$1,%esi
1637	cmpl	$10,%esi
1638	je	.L004roundsdone
1639	movl	%esi,12(%ebx)
1640	movq	%mm0,64(%esp)
1641	movq	%mm1,72(%esp)
1642	movq	%mm2,80(%esp)
1643	movq	%mm3,88(%esp)
1644	movq	%mm4,96(%esp)
1645	movq	%mm5,104(%esp)
1646	movq	%mm6,112(%esp)
1647	movq	%mm7,120(%esp)
1648	jmp	.L003round
1649.align	16
1650.L004roundsdone:
1651	movl	(%ebx),%esi
1652	movl	4(%ebx),%edi
1653	movl	8(%ebx),%eax
1654	pxor	(%edi),%mm0
1655	pxor	8(%edi),%mm1
1656	pxor	16(%edi),%mm2
1657	pxor	24(%edi),%mm3
1658	pxor	32(%edi),%mm4
1659	pxor	40(%edi),%mm5
1660	pxor	48(%edi),%mm6
1661	pxor	56(%edi),%mm7
1662	pxor	(%esi),%mm0
1663	pxor	8(%esi),%mm1
1664	pxor	16(%esi),%mm2
1665	pxor	24(%esi),%mm3
1666	pxor	32(%esi),%mm4
1667	pxor	40(%esi),%mm5
1668	pxor	48(%esi),%mm6
1669	pxor	56(%esi),%mm7
1670	movq	%mm0,(%esi)
1671	movq	%mm1,8(%esi)
1672	movq	%mm2,16(%esi)
1673	movq	%mm3,24(%esi)
1674	movq	%mm4,32(%esi)
1675	movq	%mm5,40(%esi)
1676	movq	%mm6,48(%esi)
1677	movq	%mm7,56(%esi)
1678	leal	64(%edi),%edi
1679	subl	$1,%eax
1680	jz	.L005alldone
1681	movl	%edi,4(%ebx)
1682	movl	%eax,8(%ebx)
1683	jmp	.L002outerloop
1684.L005alldone:
1685	emms
1686	movl	16(%ebx),%esp
1687	popl	%edi
1688	popl	%esi
1689	popl	%ebx
1690	popl	%ebp
1691	ret
1692.align	64
1693.L001table:
1694.byte	24,24,96,24,192,120,48,216
1695.byte	24,24,96,24,192,120,48,216
1696.byte	35,35,140,35,5,175,70,38
1697.byte	35,35,140,35,5,175,70,38
1698.byte	198,198,63,198,126,249,145,184
1699.byte	198,198,63,198,126,249,145,184
1700.byte	232,232,135,232,19,111,205,251
1701.byte	232,232,135,232,19,111,205,251
1702.byte	135,135,38,135,76,161,19,203
1703.byte	135,135,38,135,76,161,19,203
1704.byte	184,184,218,184,169,98,109,17
1705.byte	184,184,218,184,169,98,109,17
1706.byte	1,1,4,1,8,5,2,9
1707.byte	1,1,4,1,8,5,2,9
1708.byte	79,79,33,79,66,110,158,13
1709.byte	79,79,33,79,66,110,158,13
1710.byte	54,54,216,54,173,238,108,155
1711.byte	54,54,216,54,173,238,108,155
1712.byte	166,166,162,166,89,4,81,255
1713.byte	166,166,162,166,89,4,81,255
1714.byte	210,210,111,210,222,189,185,12
1715.byte	210,210,111,210,222,189,185,12
1716.byte	245,245,243,245,251,6,247,14
1717.byte	245,245,243,245,251,6,247,14
1718.byte	121,121,249,121,239,128,242,150
1719.byte	121,121,249,121,239,128,242,150
1720.byte	111,111,161,111,95,206,222,48
1721.byte	111,111,161,111,95,206,222,48
1722.byte	145,145,126,145,252,239,63,109
1723.byte	145,145,126,145,252,239,63,109
1724.byte	82,82,85,82,170,7,164,248
1725.byte	82,82,85,82,170,7,164,248
1726.byte	96,96,157,96,39,253,192,71
1727.byte	96,96,157,96,39,253,192,71
1728.byte	188,188,202,188,137,118,101,53
1729.byte	188,188,202,188,137,118,101,53
1730.byte	155,155,86,155,172,205,43,55
1731.byte	155,155,86,155,172,205,43,55
1732.byte	142,142,2,142,4,140,1,138
1733.byte	142,142,2,142,4,140,1,138
1734.byte	163,163,182,163,113,21,91,210
1735.byte	163,163,182,163,113,21,91,210
1736.byte	12,12,48,12,96,60,24,108
1737.byte	12,12,48,12,96,60,24,108
1738.byte	123,123,241,123,255,138,246,132
1739.byte	123,123,241,123,255,138,246,132
1740.byte	53,53,212,53,181,225,106,128
1741.byte	53,53,212,53,181,225,106,128
1742.byte	29,29,116,29,232,105,58,245
1743.byte	29,29,116,29,232,105,58,245
1744.byte	224,224,167,224,83,71,221,179
1745.byte	224,224,167,224,83,71,221,179
1746.byte	215,215,123,215,246,172,179,33
1747.byte	215,215,123,215,246,172,179,33
1748.byte	194,194,47,194,94,237,153,156
1749.byte	194,194,47,194,94,237,153,156
1750.byte	46,46,184,46,109,150,92,67
1751.byte	46,46,184,46,109,150,92,67
1752.byte	75,75,49,75,98,122,150,41
1753.byte	75,75,49,75,98,122,150,41
1754.byte	254,254,223,254,163,33,225,93
1755.byte	254,254,223,254,163,33,225,93
1756.byte	87,87,65,87,130,22,174,213
1757.byte	87,87,65,87,130,22,174,213
1758.byte	21,21,84,21,168,65,42,189
1759.byte	21,21,84,21,168,65,42,189
1760.byte	119,119,193,119,159,182,238,232
1761.byte	119,119,193,119,159,182,238,232
1762.byte	55,55,220,55,165,235,110,146
1763.byte	55,55,220,55,165,235,110,146
1764.byte	229,229,179,229,123,86,215,158
1765.byte	229,229,179,229,123,86,215,158
1766.byte	159,159,70,159,140,217,35,19
1767.byte	159,159,70,159,140,217,35,19
1768.byte	240,240,231,240,211,23,253,35
1769.byte	240,240,231,240,211,23,253,35
1770.byte	74,74,53,74,106,127,148,32
1771.byte	74,74,53,74,106,127,148,32
1772.byte	218,218,79,218,158,149,169,68
1773.byte	218,218,79,218,158,149,169,68
1774.byte	88,88,125,88,250,37,176,162
1775.byte	88,88,125,88,250,37,176,162
1776.byte	201,201,3,201,6,202,143,207
1777.byte	201,201,3,201,6,202,143,207
1778.byte	41,41,164,41,85,141,82,124
1779.byte	41,41,164,41,85,141,82,124
1780.byte	10,10,40,10,80,34,20,90
1781.byte	10,10,40,10,80,34,20,90
1782.byte	177,177,254,177,225,79,127,80
1783.byte	177,177,254,177,225,79,127,80
1784.byte	160,160,186,160,105,26,93,201
1785.byte	160,160,186,160,105,26,93,201
1786.byte	107,107,177,107,127,218,214,20
1787.byte	107,107,177,107,127,218,214,20
1788.byte	133,133,46,133,92,171,23,217
1789.byte	133,133,46,133,92,171,23,217
1790.byte	189,189,206,189,129,115,103,60
1791.byte	189,189,206,189,129,115,103,60
1792.byte	93,93,105,93,210,52,186,143
1793.byte	93,93,105,93,210,52,186,143
1794.byte	16,16,64,16,128,80,32,144
1795.byte	16,16,64,16,128,80,32,144
1796.byte	244,244,247,244,243,3,245,7
1797.byte	244,244,247,244,243,3,245,7
1798.byte	203,203,11,203,22,192,139,221
1799.byte	203,203,11,203,22,192,139,221
1800.byte	62,62,248,62,237,198,124,211
1801.byte	62,62,248,62,237,198,124,211
1802.byte	5,5,20,5,40,17,10,45
1803.byte	5,5,20,5,40,17,10,45
1804.byte	103,103,129,103,31,230,206,120
1805.byte	103,103,129,103,31,230,206,120
1806.byte	228,228,183,228,115,83,213,151
1807.byte	228,228,183,228,115,83,213,151
1808.byte	39,39,156,39,37,187,78,2
1809.byte	39,39,156,39,37,187,78,2
1810.byte	65,65,25,65,50,88,130,115
1811.byte	65,65,25,65,50,88,130,115
1812.byte	139,139,22,139,44,157,11,167
1813.byte	139,139,22,139,44,157,11,167
1814.byte	167,167,166,167,81,1,83,246
1815.byte	167,167,166,167,81,1,83,246
1816.byte	125,125,233,125,207,148,250,178
1817.byte	125,125,233,125,207,148,250,178
1818.byte	149,149,110,149,220,251,55,73
1819.byte	149,149,110,149,220,251,55,73
1820.byte	216,216,71,216,142,159,173,86
1821.byte	216,216,71,216,142,159,173,86
1822.byte	251,251,203,251,139,48,235,112
1823.byte	251,251,203,251,139,48,235,112
1824.byte	238,238,159,238,35,113,193,205
1825.byte	238,238,159,238,35,113,193,205
1826.byte	124,124,237,124,199,145,248,187
1827.byte	124,124,237,124,199,145,248,187
1828.byte	102,102,133,102,23,227,204,113
1829.byte	102,102,133,102,23,227,204,113
1830.byte	221,221,83,221,166,142,167,123
1831.byte	221,221,83,221,166,142,167,123
1832.byte	23,23,92,23,184,75,46,175
1833.byte	23,23,92,23,184,75,46,175
1834.byte	71,71,1,71,2,70,142,69
1835.byte	71,71,1,71,2,70,142,69
1836.byte	158,158,66,158,132,220,33,26
1837.byte	158,158,66,158,132,220,33,26
1838.byte	202,202,15,202,30,197,137,212
1839.byte	202,202,15,202,30,197,137,212
1840.byte	45,45,180,45,117,153,90,88
1841.byte	45,45,180,45,117,153,90,88
1842.byte	191,191,198,191,145,121,99,46
1843.byte	191,191,198,191,145,121,99,46
1844.byte	7,7,28,7,56,27,14,63
1845.byte	7,7,28,7,56,27,14,63
1846.byte	173,173,142,173,1,35,71,172
1847.byte	173,173,142,173,1,35,71,172
1848.byte	90,90,117,90,234,47,180,176
1849.byte	90,90,117,90,234,47,180,176
1850.byte	131,131,54,131,108,181,27,239
1851.byte	131,131,54,131,108,181,27,239
1852.byte	51,51,204,51,133,255,102,182
1853.byte	51,51,204,51,133,255,102,182
1854.byte	99,99,145,99,63,242,198,92
1855.byte	99,99,145,99,63,242,198,92
1856.byte	2,2,8,2,16,10,4,18
1857.byte	2,2,8,2,16,10,4,18
1858.byte	170,170,146,170,57,56,73,147
1859.byte	170,170,146,170,57,56,73,147
1860.byte	113,113,217,113,175,168,226,222
1861.byte	113,113,217,113,175,168,226,222
1862.byte	200,200,7,200,14,207,141,198
1863.byte	200,200,7,200,14,207,141,198
1864.byte	25,25,100,25,200,125,50,209
1865.byte	25,25,100,25,200,125,50,209
1866.byte	73,73,57,73,114,112,146,59
1867.byte	73,73,57,73,114,112,146,59
1868.byte	217,217,67,217,134,154,175,95
1869.byte	217,217,67,217,134,154,175,95
1870.byte	242,242,239,242,195,29,249,49
1871.byte	242,242,239,242,195,29,249,49
1872.byte	227,227,171,227,75,72,219,168
1873.byte	227,227,171,227,75,72,219,168
1874.byte	91,91,113,91,226,42,182,185
1875.byte	91,91,113,91,226,42,182,185
1876.byte	136,136,26,136,52,146,13,188
1877.byte	136,136,26,136,52,146,13,188
1878.byte	154,154,82,154,164,200,41,62
1879.byte	154,154,82,154,164,200,41,62
1880.byte	38,38,152,38,45,190,76,11
1881.byte	38,38,152,38,45,190,76,11
1882.byte	50,50,200,50,141,250,100,191
1883.byte	50,50,200,50,141,250,100,191
1884.byte	176,176,250,176,233,74,125,89
1885.byte	176,176,250,176,233,74,125,89
1886.byte	233,233,131,233,27,106,207,242
1887.byte	233,233,131,233,27,106,207,242
1888.byte	15,15,60,15,120,51,30,119
1889.byte	15,15,60,15,120,51,30,119
1890.byte	213,213,115,213,230,166,183,51
1891.byte	213,213,115,213,230,166,183,51
1892.byte	128,128,58,128,116,186,29,244
1893.byte	128,128,58,128,116,186,29,244
1894.byte	190,190,194,190,153,124,97,39
1895.byte	190,190,194,190,153,124,97,39
1896.byte	205,205,19,205,38,222,135,235
1897.byte	205,205,19,205,38,222,135,235
1898.byte	52,52,208,52,189,228,104,137
1899.byte	52,52,208,52,189,228,104,137
1900.byte	72,72,61,72,122,117,144,50
1901.byte	72,72,61,72,122,117,144,50
1902.byte	255,255,219,255,171,36,227,84
1903.byte	255,255,219,255,171,36,227,84
1904.byte	122,122,245,122,247,143,244,141
1905.byte	122,122,245,122,247,143,244,141
1906.byte	144,144,122,144,244,234,61,100
1907.byte	144,144,122,144,244,234,61,100
1908.byte	95,95,97,95,194,62,190,157
1909.byte	95,95,97,95,194,62,190,157
1910.byte	32,32,128,32,29,160,64,61
1911.byte	32,32,128,32,29,160,64,61
1912.byte	104,104,189,104,103,213,208,15
1913.byte	104,104,189,104,103,213,208,15
1914.byte	26,26,104,26,208,114,52,202
1915.byte	26,26,104,26,208,114,52,202
1916.byte	174,174,130,174,25,44,65,183
1917.byte	174,174,130,174,25,44,65,183
1918.byte	180,180,234,180,201,94,117,125
1919.byte	180,180,234,180,201,94,117,125
1920.byte	84,84,77,84,154,25,168,206
1921.byte	84,84,77,84,154,25,168,206
1922.byte	147,147,118,147,236,229,59,127
1923.byte	147,147,118,147,236,229,59,127
1924.byte	34,34,136,34,13,170,68,47
1925.byte	34,34,136,34,13,170,68,47
1926.byte	100,100,141,100,7,233,200,99
1927.byte	100,100,141,100,7,233,200,99
1928.byte	241,241,227,241,219,18,255,42
1929.byte	241,241,227,241,219,18,255,42
1930.byte	115,115,209,115,191,162,230,204
1931.byte	115,115,209,115,191,162,230,204
1932.byte	18,18,72,18,144,90,36,130
1933.byte	18,18,72,18,144,90,36,130
1934.byte	64,64,29,64,58,93,128,122
1935.byte	64,64,29,64,58,93,128,122
1936.byte	8,8,32,8,64,40,16,72
1937.byte	8,8,32,8,64,40,16,72
1938.byte	195,195,43,195,86,232,155,149
1939.byte	195,195,43,195,86,232,155,149
1940.byte	236,236,151,236,51,123,197,223
1941.byte	236,236,151,236,51,123,197,223
1942.byte	219,219,75,219,150,144,171,77
1943.byte	219,219,75,219,150,144,171,77
1944.byte	161,161,190,161,97,31,95,192
1945.byte	161,161,190,161,97,31,95,192
1946.byte	141,141,14,141,28,131,7,145
1947.byte	141,141,14,141,28,131,7,145
1948.byte	61,61,244,61,245,201,122,200
1949.byte	61,61,244,61,245,201,122,200
1950.byte	151,151,102,151,204,241,51,91
1951.byte	151,151,102,151,204,241,51,91
1952.byte	0,0,0,0,0,0,0,0
1953.byte	0,0,0,0,0,0,0,0
1954.byte	207,207,27,207,54,212,131,249
1955.byte	207,207,27,207,54,212,131,249
1956.byte	43,43,172,43,69,135,86,110
1957.byte	43,43,172,43,69,135,86,110
1958.byte	118,118,197,118,151,179,236,225
1959.byte	118,118,197,118,151,179,236,225
1960.byte	130,130,50,130,100,176,25,230
1961.byte	130,130,50,130,100,176,25,230
1962.byte	214,214,127,214,254,169,177,40
1963.byte	214,214,127,214,254,169,177,40
1964.byte	27,27,108,27,216,119,54,195
1965.byte	27,27,108,27,216,119,54,195
1966.byte	181,181,238,181,193,91,119,116
1967.byte	181,181,238,181,193,91,119,116
1968.byte	175,175,134,175,17,41,67,190
1969.byte	175,175,134,175,17,41,67,190
1970.byte	106,106,181,106,119,223,212,29
1971.byte	106,106,181,106,119,223,212,29
1972.byte	80,80,93,80,186,13,160,234
1973.byte	80,80,93,80,186,13,160,234
1974.byte	69,69,9,69,18,76,138,87
1975.byte	69,69,9,69,18,76,138,87
1976.byte	243,243,235,243,203,24,251,56
1977.byte	243,243,235,243,203,24,251,56
1978.byte	48,48,192,48,157,240,96,173
1979.byte	48,48,192,48,157,240,96,173
1980.byte	239,239,155,239,43,116,195,196
1981.byte	239,239,155,239,43,116,195,196
1982.byte	63,63,252,63,229,195,126,218
1983.byte	63,63,252,63,229,195,126,218
1984.byte	85,85,73,85,146,28,170,199
1985.byte	85,85,73,85,146,28,170,199
1986.byte	162,162,178,162,121,16,89,219
1987.byte	162,162,178,162,121,16,89,219
1988.byte	234,234,143,234,3,101,201,233
1989.byte	234,234,143,234,3,101,201,233
1990.byte	101,101,137,101,15,236,202,106
1991.byte	101,101,137,101,15,236,202,106
1992.byte	186,186,210,186,185,104,105,3
1993.byte	186,186,210,186,185,104,105,3
1994.byte	47,47,188,47,101,147,94,74
1995.byte	47,47,188,47,101,147,94,74
1996.byte	192,192,39,192,78,231,157,142
1997.byte	192,192,39,192,78,231,157,142
1998.byte	222,222,95,222,190,129,161,96
1999.byte	222,222,95,222,190,129,161,96
2000.byte	28,28,112,28,224,108,56,252
2001.byte	28,28,112,28,224,108,56,252
2002.byte	253,253,211,253,187,46,231,70
2003.byte	253,253,211,253,187,46,231,70
2004.byte	77,77,41,77,82,100,154,31
2005.byte	77,77,41,77,82,100,154,31
2006.byte	146,146,114,146,228,224,57,118
2007.byte	146,146,114,146,228,224,57,118
2008.byte	117,117,201,117,143,188,234,250
2009.byte	117,117,201,117,143,188,234,250
2010.byte	6,6,24,6,48,30,12,54
2011.byte	6,6,24,6,48,30,12,54
2012.byte	138,138,18,138,36,152,9,174
2013.byte	138,138,18,138,36,152,9,174
2014.byte	178,178,242,178,249,64,121,75
2015.byte	178,178,242,178,249,64,121,75
2016.byte	230,230,191,230,99,89,209,133
2017.byte	230,230,191,230,99,89,209,133
2018.byte	14,14,56,14,112,54,28,126
2019.byte	14,14,56,14,112,54,28,126
2020.byte	31,31,124,31,248,99,62,231
2021.byte	31,31,124,31,248,99,62,231
2022.byte	98,98,149,98,55,247,196,85
2023.byte	98,98,149,98,55,247,196,85
2024.byte	212,212,119,212,238,163,181,58
2025.byte	212,212,119,212,238,163,181,58
2026.byte	168,168,154,168,41,50,77,129
2027.byte	168,168,154,168,41,50,77,129
2028.byte	150,150,98,150,196,244,49,82
2029.byte	150,150,98,150,196,244,49,82
2030.byte	249,249,195,249,155,58,239,98
2031.byte	249,249,195,249,155,58,239,98
2032.byte	197,197,51,197,102,246,151,163
2033.byte	197,197,51,197,102,246,151,163
2034.byte	37,37,148,37,53,177,74,16
2035.byte	37,37,148,37,53,177,74,16
2036.byte	89,89,121,89,242,32,178,171
2037.byte	89,89,121,89,242,32,178,171
2038.byte	132,132,42,132,84,174,21,208
2039.byte	132,132,42,132,84,174,21,208
2040.byte	114,114,213,114,183,167,228,197
2041.byte	114,114,213,114,183,167,228,197
2042.byte	57,57,228,57,213,221,114,236
2043.byte	57,57,228,57,213,221,114,236
2044.byte	76,76,45,76,90,97,152,22
2045.byte	76,76,45,76,90,97,152,22
2046.byte	94,94,101,94,202,59,188,148
2047.byte	94,94,101,94,202,59,188,148
2048.byte	120,120,253,120,231,133,240,159
2049.byte	120,120,253,120,231,133,240,159
2050.byte	56,56,224,56,221,216,112,229
2051.byte	56,56,224,56,221,216,112,229
2052.byte	140,140,10,140,20,134,5,152
2053.byte	140,140,10,140,20,134,5,152
2054.byte	209,209,99,209,198,178,191,23
2055.byte	209,209,99,209,198,178,191,23
2056.byte	165,165,174,165,65,11,87,228
2057.byte	165,165,174,165,65,11,87,228
2058.byte	226,226,175,226,67,77,217,161
2059.byte	226,226,175,226,67,77,217,161
2060.byte	97,97,153,97,47,248,194,78
2061.byte	97,97,153,97,47,248,194,78
2062.byte	179,179,246,179,241,69,123,66
2063.byte	179,179,246,179,241,69,123,66
2064.byte	33,33,132,33,21,165,66,52
2065.byte	33,33,132,33,21,165,66,52
2066.byte	156,156,74,156,148,214,37,8
2067.byte	156,156,74,156,148,214,37,8
2068.byte	30,30,120,30,240,102,60,238
2069.byte	30,30,120,30,240,102,60,238
2070.byte	67,67,17,67,34,82,134,97
2071.byte	67,67,17,67,34,82,134,97
2072.byte	199,199,59,199,118,252,147,177
2073.byte	199,199,59,199,118,252,147,177
2074.byte	252,252,215,252,179,43,229,79
2075.byte	252,252,215,252,179,43,229,79
2076.byte	4,4,16,4,32,20,8,36
2077.byte	4,4,16,4,32,20,8,36
2078.byte	81,81,89,81,178,8,162,227
2079.byte	81,81,89,81,178,8,162,227
2080.byte	153,153,94,153,188,199,47,37
2081.byte	153,153,94,153,188,199,47,37
2082.byte	109,109,169,109,79,196,218,34
2083.byte	109,109,169,109,79,196,218,34
2084.byte	13,13,52,13,104,57,26,101
2085.byte	13,13,52,13,104,57,26,101
2086.byte	250,250,207,250,131,53,233,121
2087.byte	250,250,207,250,131,53,233,121
2088.byte	223,223,91,223,182,132,163,105
2089.byte	223,223,91,223,182,132,163,105
2090.byte	126,126,229,126,215,155,252,169
2091.byte	126,126,229,126,215,155,252,169
2092.byte	36,36,144,36,61,180,72,25
2093.byte	36,36,144,36,61,180,72,25
2094.byte	59,59,236,59,197,215,118,254
2095.byte	59,59,236,59,197,215,118,254
2096.byte	171,171,150,171,49,61,75,154
2097.byte	171,171,150,171,49,61,75,154
2098.byte	206,206,31,206,62,209,129,240
2099.byte	206,206,31,206,62,209,129,240
2100.byte	17,17,68,17,136,85,34,153
2101.byte	17,17,68,17,136,85,34,153
2102.byte	143,143,6,143,12,137,3,131
2103.byte	143,143,6,143,12,137,3,131
2104.byte	78,78,37,78,74,107,156,4
2105.byte	78,78,37,78,74,107,156,4
2106.byte	183,183,230,183,209,81,115,102
2107.byte	183,183,230,183,209,81,115,102
2108.byte	235,235,139,235,11,96,203,224
2109.byte	235,235,139,235,11,96,203,224
2110.byte	60,60,240,60,253,204,120,193
2111.byte	60,60,240,60,253,204,120,193
2112.byte	129,129,62,129,124,191,31,253
2113.byte	129,129,62,129,124,191,31,253
2114.byte	148,148,106,148,212,254,53,64
2115.byte	148,148,106,148,212,254,53,64
2116.byte	247,247,251,247,235,12,243,28
2117.byte	247,247,251,247,235,12,243,28
2118.byte	185,185,222,185,161,103,111,24
2119.byte	185,185,222,185,161,103,111,24
2120.byte	19,19,76,19,152,95,38,139
2121.byte	19,19,76,19,152,95,38,139
2122.byte	44,44,176,44,125,156,88,81
2123.byte	44,44,176,44,125,156,88,81
2124.byte	211,211,107,211,214,184,187,5
2125.byte	211,211,107,211,214,184,187,5
2126.byte	231,231,187,231,107,92,211,140
2127.byte	231,231,187,231,107,92,211,140
2128.byte	110,110,165,110,87,203,220,57
2129.byte	110,110,165,110,87,203,220,57
2130.byte	196,196,55,196,110,243,149,170
2131.byte	196,196,55,196,110,243,149,170
2132.byte	3,3,12,3,24,15,6,27
2133.byte	3,3,12,3,24,15,6,27
2134.byte	86,86,69,86,138,19,172,220
2135.byte	86,86,69,86,138,19,172,220
2136.byte	68,68,13,68,26,73,136,94
2137.byte	68,68,13,68,26,73,136,94
2138.byte	127,127,225,127,223,158,254,160
2139.byte	127,127,225,127,223,158,254,160
2140.byte	169,169,158,169,33,55,79,136
2141.byte	169,169,158,169,33,55,79,136
2142.byte	42,42,168,42,77,130,84,103
2143.byte	42,42,168,42,77,130,84,103
2144.byte	187,187,214,187,177,109,107,10
2145.byte	187,187,214,187,177,109,107,10
2146.byte	193,193,35,193,70,226,159,135
2147.byte	193,193,35,193,70,226,159,135
2148.byte	83,83,81,83,162,2,166,241
2149.byte	83,83,81,83,162,2,166,241
2150.byte	220,220,87,220,174,139,165,114
2151.byte	220,220,87,220,174,139,165,114
2152.byte	11,11,44,11,88,39,22,83
2153.byte	11,11,44,11,88,39,22,83
2154.byte	157,157,78,157,156,211,39,1
2155.byte	157,157,78,157,156,211,39,1
2156.byte	108,108,173,108,71,193,216,43
2157.byte	108,108,173,108,71,193,216,43
2158.byte	49,49,196,49,149,245,98,164
2159.byte	49,49,196,49,149,245,98,164
2160.byte	116,116,205,116,135,185,232,243
2161.byte	116,116,205,116,135,185,232,243
2162.byte	246,246,255,246,227,9,241,21
2163.byte	246,246,255,246,227,9,241,21
2164.byte	70,70,5,70,10,67,140,76
2165.byte	70,70,5,70,10,67,140,76
2166.byte	172,172,138,172,9,38,69,165
2167.byte	172,172,138,172,9,38,69,165
2168.byte	137,137,30,137,60,151,15,181
2169.byte	137,137,30,137,60,151,15,181
2170.byte	20,20,80,20,160,68,40,180
2171.byte	20,20,80,20,160,68,40,180
2172.byte	225,225,163,225,91,66,223,186
2173.byte	225,225,163,225,91,66,223,186
2174.byte	22,22,88,22,176,78,44,166
2175.byte	22,22,88,22,176,78,44,166
2176.byte	58,58,232,58,205,210,116,247
2177.byte	58,58,232,58,205,210,116,247
2178.byte	105,105,185,105,111,208,210,6
2179.byte	105,105,185,105,111,208,210,6
2180.byte	9,9,36,9,72,45,18,65
2181.byte	9,9,36,9,72,45,18,65
2182.byte	112,112,221,112,167,173,224,215
2183.byte	112,112,221,112,167,173,224,215
2184.byte	182,182,226,182,217,84,113,111
2185.byte	182,182,226,182,217,84,113,111
2186.byte	208,208,103,208,206,183,189,30
2187.byte	208,208,103,208,206,183,189,30
2188.byte	237,237,147,237,59,126,199,214
2189.byte	237,237,147,237,59,126,199,214
2190.byte	204,204,23,204,46,219,133,226
2191.byte	204,204,23,204,46,219,133,226
2192.byte	66,66,21,66,42,87,132,104
2193.byte	66,66,21,66,42,87,132,104
2194.byte	152,152,90,152,180,194,45,44
2195.byte	152,152,90,152,180,194,45,44
2196.byte	164,164,170,164,73,14,85,237
2197.byte	164,164,170,164,73,14,85,237
2198.byte	40,40,160,40,93,136,80,117
2199.byte	40,40,160,40,93,136,80,117
2200.byte	92,92,109,92,218,49,184,134
2201.byte	92,92,109,92,218,49,184,134
2202.byte	248,248,199,248,147,63,237,107
2203.byte	248,248,199,248,147,63,237,107
2204.byte	134,134,34,134,68,164,17,194
2205.byte	134,134,34,134,68,164,17,194
2206.byte	24,35,198,232,135,184,1,79
2207.byte	54,166,210,245,121,111,145,82
2208.byte	96,188,155,142,163,12,123,53
2209.byte	29,224,215,194,46,75,254,87
2210.byte	21,119,55,229,159,240,74,218
2211.byte	88,201,41,10,177,160,107,133
2212.byte	189,93,16,244,203,62,5,103
2213.byte	228,39,65,139,167,125,149,216
2214.byte	251,238,124,102,221,23,71,158
2215.byte	202,45,191,7,173,90,131,51
2216.size	whirlpool_block_mmx,.-.L_whirlpool_block_mmx_begin
2217#endif
2218