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