• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2.globl	_sha256_block_data_order
3.type	_sha256_block_data_order,@function
4.align	4
5_sha256_block_data_order:
6L_sha256_block_data_order_begin:
7	%ifdef __CET__
8
9.byte	243,15,30,251
10	%endif
11
12	pushl	%ebp
13	pushl	%ebx
14	pushl	%esi
15	pushl	%edi
16	movl	20(%esp),%esi
17	movl	24(%esp),%edi
18	movl	28(%esp),%eax
19	movl	%esp,%ebx
20	call	L000pic_point
21L000pic_point:
22	popl	%ebp
23	leal	L001K256-L000pic_point(%ebp),%ebp
24	subl	$16,%esp
25	andl	$-64,%esp
26	shll	$6,%eax
27	addl	%edi,%eax
28	movl	%esi,(%esp)
29	movl	%edi,4(%esp)
30	movl	%eax,8(%esp)
31	movl	%ebx,12(%esp)
32	leal	__GLOBAL_OFFSET_TABLE_+[.-L001K256](%ebp),%edx
33	movl	_OPENSSL_ia32cap_P@GOT(%edx),%edx
34	movl	(%edx),%ecx
35	movl	4(%edx),%ebx
36	testl	$1048576,%ecx
37	jnz	L002loop
38	movl	8(%edx),%edx
39	testl	$16777216,%ecx
40	jz	L003no_xmm
41	andl	$1073741824,%ecx
42	andl	$268435968,%ebx
43	testl	$536870912,%edx
44	jnz	L004shaext
45	orl	%ebx,%ecx
46	andl	$1342177280,%ecx
47	cmpl	$1342177280,%ecx
48	je	L005AVX
49	testl	$512,%ebx
50	jnz	L006SSSE3
51L003no_xmm:
52	subl	%edi,%eax
53	cmpl	$256,%eax
54	jae	L007unrolled
55	jmp	L002loop
56.align	4,0x90
57L002loop:
58	movl	(%edi),%eax
59	movl	4(%edi),%ebx
60	movl	8(%edi),%ecx
61	bswap	%eax
62	movl	12(%edi),%edx
63	bswap	%ebx
64	pushl	%eax
65	bswap	%ecx
66	pushl	%ebx
67	bswap	%edx
68	pushl	%ecx
69	pushl	%edx
70	movl	16(%edi),%eax
71	movl	20(%edi),%ebx
72	movl	24(%edi),%ecx
73	bswap	%eax
74	movl	28(%edi),%edx
75	bswap	%ebx
76	pushl	%eax
77	bswap	%ecx
78	pushl	%ebx
79	bswap	%edx
80	pushl	%ecx
81	pushl	%edx
82	movl	32(%edi),%eax
83	movl	36(%edi),%ebx
84	movl	40(%edi),%ecx
85	bswap	%eax
86	movl	44(%edi),%edx
87	bswap	%ebx
88	pushl	%eax
89	bswap	%ecx
90	pushl	%ebx
91	bswap	%edx
92	pushl	%ecx
93	pushl	%edx
94	movl	48(%edi),%eax
95	movl	52(%edi),%ebx
96	movl	56(%edi),%ecx
97	bswap	%eax
98	movl	60(%edi),%edx
99	bswap	%ebx
100	pushl	%eax
101	bswap	%ecx
102	pushl	%ebx
103	bswap	%edx
104	pushl	%ecx
105	pushl	%edx
106	addl	$64,%edi
107	leal	-36(%esp),%esp
108	movl	%edi,104(%esp)
109	movl	(%esi),%eax
110	movl	4(%esi),%ebx
111	movl	8(%esi),%ecx
112	movl	12(%esi),%edi
113	movl	%ebx,8(%esp)
114	xorl	%ecx,%ebx
115	movl	%ecx,12(%esp)
116	movl	%edi,16(%esp)
117	movl	%ebx,(%esp)
118	movl	16(%esi),%edx
119	movl	20(%esi),%ebx
120	movl	24(%esi),%ecx
121	movl	28(%esi),%edi
122	movl	%ebx,24(%esp)
123	movl	%ecx,28(%esp)
124	movl	%edi,32(%esp)
125.align	4,0x90
126L00800_15:
127	movl	%edx,%ecx
128	movl	24(%esp),%esi
129	rorl	$14,%ecx
130	movl	28(%esp),%edi
131	xorl	%edx,%ecx
132	xorl	%edi,%esi
133	movl	96(%esp),%ebx
134	rorl	$5,%ecx
135	andl	%edx,%esi
136	movl	%edx,20(%esp)
137	xorl	%ecx,%edx
138	addl	32(%esp),%ebx
139	xorl	%edi,%esi
140	rorl	$6,%edx
141	movl	%eax,%ecx
142	addl	%esi,%ebx
143	rorl	$9,%ecx
144	addl	%edx,%ebx
145	movl	8(%esp),%edi
146	xorl	%eax,%ecx
147	movl	%eax,4(%esp)
148	leal	-4(%esp),%esp
149	rorl	$11,%ecx
150	movl	(%ebp),%esi
151	xorl	%eax,%ecx
152	movl	20(%esp),%edx
153	xorl	%edi,%eax
154	rorl	$2,%ecx
155	addl	%esi,%ebx
156	movl	%eax,(%esp)
157	addl	%ebx,%edx
158	andl	4(%esp),%eax
159	addl	%ecx,%ebx
160	xorl	%edi,%eax
161	addl	$4,%ebp
162	addl	%ebx,%eax
163	cmpl	$3248222580,%esi
164	jne	L00800_15
165	movl	156(%esp),%ecx
166	jmp	L00916_63
167.align	4,0x90
168L00916_63:
169	movl	%ecx,%ebx
170	movl	104(%esp),%esi
171	rorl	$11,%ecx
172	movl	%esi,%edi
173	rorl	$2,%esi
174	xorl	%ebx,%ecx
175	shrl	$3,%ebx
176	rorl	$7,%ecx
177	xorl	%edi,%esi
178	xorl	%ecx,%ebx
179	rorl	$17,%esi
180	addl	160(%esp),%ebx
181	shrl	$10,%edi
182	addl	124(%esp),%ebx
183	movl	%edx,%ecx
184	xorl	%esi,%edi
185	movl	24(%esp),%esi
186	rorl	$14,%ecx
187	addl	%edi,%ebx
188	movl	28(%esp),%edi
189	xorl	%edx,%ecx
190	xorl	%edi,%esi
191	movl	%ebx,96(%esp)
192	rorl	$5,%ecx
193	andl	%edx,%esi
194	movl	%edx,20(%esp)
195	xorl	%ecx,%edx
196	addl	32(%esp),%ebx
197	xorl	%edi,%esi
198	rorl	$6,%edx
199	movl	%eax,%ecx
200	addl	%esi,%ebx
201	rorl	$9,%ecx
202	addl	%edx,%ebx
203	movl	8(%esp),%edi
204	xorl	%eax,%ecx
205	movl	%eax,4(%esp)
206	leal	-4(%esp),%esp
207	rorl	$11,%ecx
208	movl	(%ebp),%esi
209	xorl	%eax,%ecx
210	movl	20(%esp),%edx
211	xorl	%edi,%eax
212	rorl	$2,%ecx
213	addl	%esi,%ebx
214	movl	%eax,(%esp)
215	addl	%ebx,%edx
216	andl	4(%esp),%eax
217	addl	%ecx,%ebx
218	xorl	%edi,%eax
219	movl	156(%esp),%ecx
220	addl	$4,%ebp
221	addl	%ebx,%eax
222	cmpl	$3329325298,%esi
223	jne	L00916_63
224	movl	356(%esp),%esi
225	movl	8(%esp),%ebx
226	movl	16(%esp),%ecx
227	addl	(%esi),%eax
228	addl	4(%esi),%ebx
229	addl	8(%esi),%edi
230	addl	12(%esi),%ecx
231	movl	%eax,(%esi)
232	movl	%ebx,4(%esi)
233	movl	%edi,8(%esi)
234	movl	%ecx,12(%esi)
235	movl	24(%esp),%eax
236	movl	28(%esp),%ebx
237	movl	32(%esp),%ecx
238	movl	360(%esp),%edi
239	addl	16(%esi),%edx
240	addl	20(%esi),%eax
241	addl	24(%esi),%ebx
242	addl	28(%esi),%ecx
243	movl	%edx,16(%esi)
244	movl	%eax,20(%esi)
245	movl	%ebx,24(%esi)
246	movl	%ecx,28(%esi)
247	leal	356(%esp),%esp
248	subl	$256,%ebp
249	cmpl	8(%esp),%edi
250	jb	L002loop
251	movl	12(%esp),%esp
252	popl	%edi
253	popl	%esi
254	popl	%ebx
255	popl	%ebp
256	ret
257.align	6,0x90
258L001K256:
259.long	1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298
260.long	66051,67438087,134810123,202182159
261.byte	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
262.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
263.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
264.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
265.byte	62,0
266.align	4,0x90
267L007unrolled:
268	leal	-96(%esp),%esp
269	movl	(%esi),%eax
270	movl	4(%esi),%ebp
271	movl	8(%esi),%ecx
272	movl	12(%esi),%ebx
273	movl	%ebp,4(%esp)
274	xorl	%ecx,%ebp
275	movl	%ecx,8(%esp)
276	movl	%ebx,12(%esp)
277	movl	16(%esi),%edx
278	movl	20(%esi),%ebx
279	movl	24(%esi),%ecx
280	movl	28(%esi),%esi
281	movl	%ebx,20(%esp)
282	movl	%ecx,24(%esp)
283	movl	%esi,28(%esp)
284	jmp	L010grand_loop
285.align	4,0x90
286L010grand_loop:
287	movl	(%edi),%ebx
288	movl	4(%edi),%ecx
289	bswap	%ebx
290	movl	8(%edi),%esi
291	bswap	%ecx
292	movl	%ebx,32(%esp)
293	bswap	%esi
294	movl	%ecx,36(%esp)
295	movl	%esi,40(%esp)
296	movl	12(%edi),%ebx
297	movl	16(%edi),%ecx
298	bswap	%ebx
299	movl	20(%edi),%esi
300	bswap	%ecx
301	movl	%ebx,44(%esp)
302	bswap	%esi
303	movl	%ecx,48(%esp)
304	movl	%esi,52(%esp)
305	movl	24(%edi),%ebx
306	movl	28(%edi),%ecx
307	bswap	%ebx
308	movl	32(%edi),%esi
309	bswap	%ecx
310	movl	%ebx,56(%esp)
311	bswap	%esi
312	movl	%ecx,60(%esp)
313	movl	%esi,64(%esp)
314	movl	36(%edi),%ebx
315	movl	40(%edi),%ecx
316	bswap	%ebx
317	movl	44(%edi),%esi
318	bswap	%ecx
319	movl	%ebx,68(%esp)
320	bswap	%esi
321	movl	%ecx,72(%esp)
322	movl	%esi,76(%esp)
323	movl	48(%edi),%ebx
324	movl	52(%edi),%ecx
325	bswap	%ebx
326	movl	56(%edi),%esi
327	bswap	%ecx
328	movl	%ebx,80(%esp)
329	bswap	%esi
330	movl	%ecx,84(%esp)
331	movl	%esi,88(%esp)
332	movl	60(%edi),%ebx
333	addl	$64,%edi
334	bswap	%ebx
335	movl	%edi,100(%esp)
336	movl	%ebx,92(%esp)
337	movl	%edx,%ecx
338	movl	20(%esp),%esi
339	rorl	$14,%edx
340	movl	24(%esp),%edi
341	xorl	%ecx,%edx
342	movl	32(%esp),%ebx
343	xorl	%edi,%esi
344	rorl	$5,%edx
345	andl	%ecx,%esi
346	movl	%ecx,16(%esp)
347	xorl	%ecx,%edx
348	addl	28(%esp),%ebx
349	xorl	%esi,%edi
350	rorl	$6,%edx
351	movl	%eax,%ecx
352	addl	%edi,%ebx
353	rorl	$9,%ecx
354	movl	%eax,%esi
355	movl	4(%esp),%edi
356	xorl	%eax,%ecx
357	movl	%eax,(%esp)
358	xorl	%edi,%eax
359	rorl	$11,%ecx
360	andl	%eax,%ebp
361	leal	1116352408(%ebx,%edx,1),%edx
362	xorl	%esi,%ecx
363	xorl	%edi,%ebp
364	rorl	$2,%ecx
365	addl	%edx,%ebp
366	addl	12(%esp),%edx
367	addl	%ecx,%ebp
368	movl	%edx,%esi
369	movl	16(%esp),%ecx
370	rorl	$14,%edx
371	movl	20(%esp),%edi
372	xorl	%esi,%edx
373	movl	36(%esp),%ebx
374	xorl	%edi,%ecx
375	rorl	$5,%edx
376	andl	%esi,%ecx
377	movl	%esi,12(%esp)
378	xorl	%esi,%edx
379	addl	24(%esp),%ebx
380	xorl	%ecx,%edi
381	rorl	$6,%edx
382	movl	%ebp,%esi
383	addl	%edi,%ebx
384	rorl	$9,%esi
385	movl	%ebp,%ecx
386	movl	(%esp),%edi
387	xorl	%ebp,%esi
388	movl	%ebp,28(%esp)
389	xorl	%edi,%ebp
390	rorl	$11,%esi
391	andl	%ebp,%eax
392	leal	1899447441(%ebx,%edx,1),%edx
393	xorl	%ecx,%esi
394	xorl	%edi,%eax
395	rorl	$2,%esi
396	addl	%edx,%eax
397	addl	8(%esp),%edx
398	addl	%esi,%eax
399	movl	%edx,%ecx
400	movl	12(%esp),%esi
401	rorl	$14,%edx
402	movl	16(%esp),%edi
403	xorl	%ecx,%edx
404	movl	40(%esp),%ebx
405	xorl	%edi,%esi
406	rorl	$5,%edx
407	andl	%ecx,%esi
408	movl	%ecx,8(%esp)
409	xorl	%ecx,%edx
410	addl	20(%esp),%ebx
411	xorl	%esi,%edi
412	rorl	$6,%edx
413	movl	%eax,%ecx
414	addl	%edi,%ebx
415	rorl	$9,%ecx
416	movl	%eax,%esi
417	movl	28(%esp),%edi
418	xorl	%eax,%ecx
419	movl	%eax,24(%esp)
420	xorl	%edi,%eax
421	rorl	$11,%ecx
422	andl	%eax,%ebp
423	leal	3049323471(%ebx,%edx,1),%edx
424	xorl	%esi,%ecx
425	xorl	%edi,%ebp
426	rorl	$2,%ecx
427	addl	%edx,%ebp
428	addl	4(%esp),%edx
429	addl	%ecx,%ebp
430	movl	%edx,%esi
431	movl	8(%esp),%ecx
432	rorl	$14,%edx
433	movl	12(%esp),%edi
434	xorl	%esi,%edx
435	movl	44(%esp),%ebx
436	xorl	%edi,%ecx
437	rorl	$5,%edx
438	andl	%esi,%ecx
439	movl	%esi,4(%esp)
440	xorl	%esi,%edx
441	addl	16(%esp),%ebx
442	xorl	%ecx,%edi
443	rorl	$6,%edx
444	movl	%ebp,%esi
445	addl	%edi,%ebx
446	rorl	$9,%esi
447	movl	%ebp,%ecx
448	movl	24(%esp),%edi
449	xorl	%ebp,%esi
450	movl	%ebp,20(%esp)
451	xorl	%edi,%ebp
452	rorl	$11,%esi
453	andl	%ebp,%eax
454	leal	3921009573(%ebx,%edx,1),%edx
455	xorl	%ecx,%esi
456	xorl	%edi,%eax
457	rorl	$2,%esi
458	addl	%edx,%eax
459	addl	(%esp),%edx
460	addl	%esi,%eax
461	movl	%edx,%ecx
462	movl	4(%esp),%esi
463	rorl	$14,%edx
464	movl	8(%esp),%edi
465	xorl	%ecx,%edx
466	movl	48(%esp),%ebx
467	xorl	%edi,%esi
468	rorl	$5,%edx
469	andl	%ecx,%esi
470	movl	%ecx,(%esp)
471	xorl	%ecx,%edx
472	addl	12(%esp),%ebx
473	xorl	%esi,%edi
474	rorl	$6,%edx
475	movl	%eax,%ecx
476	addl	%edi,%ebx
477	rorl	$9,%ecx
478	movl	%eax,%esi
479	movl	20(%esp),%edi
480	xorl	%eax,%ecx
481	movl	%eax,16(%esp)
482	xorl	%edi,%eax
483	rorl	$11,%ecx
484	andl	%eax,%ebp
485	leal	961987163(%ebx,%edx,1),%edx
486	xorl	%esi,%ecx
487	xorl	%edi,%ebp
488	rorl	$2,%ecx
489	addl	%edx,%ebp
490	addl	28(%esp),%edx
491	addl	%ecx,%ebp
492	movl	%edx,%esi
493	movl	(%esp),%ecx
494	rorl	$14,%edx
495	movl	4(%esp),%edi
496	xorl	%esi,%edx
497	movl	52(%esp),%ebx
498	xorl	%edi,%ecx
499	rorl	$5,%edx
500	andl	%esi,%ecx
501	movl	%esi,28(%esp)
502	xorl	%esi,%edx
503	addl	8(%esp),%ebx
504	xorl	%ecx,%edi
505	rorl	$6,%edx
506	movl	%ebp,%esi
507	addl	%edi,%ebx
508	rorl	$9,%esi
509	movl	%ebp,%ecx
510	movl	16(%esp),%edi
511	xorl	%ebp,%esi
512	movl	%ebp,12(%esp)
513	xorl	%edi,%ebp
514	rorl	$11,%esi
515	andl	%ebp,%eax
516	leal	1508970993(%ebx,%edx,1),%edx
517	xorl	%ecx,%esi
518	xorl	%edi,%eax
519	rorl	$2,%esi
520	addl	%edx,%eax
521	addl	24(%esp),%edx
522	addl	%esi,%eax
523	movl	%edx,%ecx
524	movl	28(%esp),%esi
525	rorl	$14,%edx
526	movl	(%esp),%edi
527	xorl	%ecx,%edx
528	movl	56(%esp),%ebx
529	xorl	%edi,%esi
530	rorl	$5,%edx
531	andl	%ecx,%esi
532	movl	%ecx,24(%esp)
533	xorl	%ecx,%edx
534	addl	4(%esp),%ebx
535	xorl	%esi,%edi
536	rorl	$6,%edx
537	movl	%eax,%ecx
538	addl	%edi,%ebx
539	rorl	$9,%ecx
540	movl	%eax,%esi
541	movl	12(%esp),%edi
542	xorl	%eax,%ecx
543	movl	%eax,8(%esp)
544	xorl	%edi,%eax
545	rorl	$11,%ecx
546	andl	%eax,%ebp
547	leal	2453635748(%ebx,%edx,1),%edx
548	xorl	%esi,%ecx
549	xorl	%edi,%ebp
550	rorl	$2,%ecx
551	addl	%edx,%ebp
552	addl	20(%esp),%edx
553	addl	%ecx,%ebp
554	movl	%edx,%esi
555	movl	24(%esp),%ecx
556	rorl	$14,%edx
557	movl	28(%esp),%edi
558	xorl	%esi,%edx
559	movl	60(%esp),%ebx
560	xorl	%edi,%ecx
561	rorl	$5,%edx
562	andl	%esi,%ecx
563	movl	%esi,20(%esp)
564	xorl	%esi,%edx
565	addl	(%esp),%ebx
566	xorl	%ecx,%edi
567	rorl	$6,%edx
568	movl	%ebp,%esi
569	addl	%edi,%ebx
570	rorl	$9,%esi
571	movl	%ebp,%ecx
572	movl	8(%esp),%edi
573	xorl	%ebp,%esi
574	movl	%ebp,4(%esp)
575	xorl	%edi,%ebp
576	rorl	$11,%esi
577	andl	%ebp,%eax
578	leal	2870763221(%ebx,%edx,1),%edx
579	xorl	%ecx,%esi
580	xorl	%edi,%eax
581	rorl	$2,%esi
582	addl	%edx,%eax
583	addl	16(%esp),%edx
584	addl	%esi,%eax
585	movl	%edx,%ecx
586	movl	20(%esp),%esi
587	rorl	$14,%edx
588	movl	24(%esp),%edi
589	xorl	%ecx,%edx
590	movl	64(%esp),%ebx
591	xorl	%edi,%esi
592	rorl	$5,%edx
593	andl	%ecx,%esi
594	movl	%ecx,16(%esp)
595	xorl	%ecx,%edx
596	addl	28(%esp),%ebx
597	xorl	%esi,%edi
598	rorl	$6,%edx
599	movl	%eax,%ecx
600	addl	%edi,%ebx
601	rorl	$9,%ecx
602	movl	%eax,%esi
603	movl	4(%esp),%edi
604	xorl	%eax,%ecx
605	movl	%eax,(%esp)
606	xorl	%edi,%eax
607	rorl	$11,%ecx
608	andl	%eax,%ebp
609	leal	3624381080(%ebx,%edx,1),%edx
610	xorl	%esi,%ecx
611	xorl	%edi,%ebp
612	rorl	$2,%ecx
613	addl	%edx,%ebp
614	addl	12(%esp),%edx
615	addl	%ecx,%ebp
616	movl	%edx,%esi
617	movl	16(%esp),%ecx
618	rorl	$14,%edx
619	movl	20(%esp),%edi
620	xorl	%esi,%edx
621	movl	68(%esp),%ebx
622	xorl	%edi,%ecx
623	rorl	$5,%edx
624	andl	%esi,%ecx
625	movl	%esi,12(%esp)
626	xorl	%esi,%edx
627	addl	24(%esp),%ebx
628	xorl	%ecx,%edi
629	rorl	$6,%edx
630	movl	%ebp,%esi
631	addl	%edi,%ebx
632	rorl	$9,%esi
633	movl	%ebp,%ecx
634	movl	(%esp),%edi
635	xorl	%ebp,%esi
636	movl	%ebp,28(%esp)
637	xorl	%edi,%ebp
638	rorl	$11,%esi
639	andl	%ebp,%eax
640	leal	310598401(%ebx,%edx,1),%edx
641	xorl	%ecx,%esi
642	xorl	%edi,%eax
643	rorl	$2,%esi
644	addl	%edx,%eax
645	addl	8(%esp),%edx
646	addl	%esi,%eax
647	movl	%edx,%ecx
648	movl	12(%esp),%esi
649	rorl	$14,%edx
650	movl	16(%esp),%edi
651	xorl	%ecx,%edx
652	movl	72(%esp),%ebx
653	xorl	%edi,%esi
654	rorl	$5,%edx
655	andl	%ecx,%esi
656	movl	%ecx,8(%esp)
657	xorl	%ecx,%edx
658	addl	20(%esp),%ebx
659	xorl	%esi,%edi
660	rorl	$6,%edx
661	movl	%eax,%ecx
662	addl	%edi,%ebx
663	rorl	$9,%ecx
664	movl	%eax,%esi
665	movl	28(%esp),%edi
666	xorl	%eax,%ecx
667	movl	%eax,24(%esp)
668	xorl	%edi,%eax
669	rorl	$11,%ecx
670	andl	%eax,%ebp
671	leal	607225278(%ebx,%edx,1),%edx
672	xorl	%esi,%ecx
673	xorl	%edi,%ebp
674	rorl	$2,%ecx
675	addl	%edx,%ebp
676	addl	4(%esp),%edx
677	addl	%ecx,%ebp
678	movl	%edx,%esi
679	movl	8(%esp),%ecx
680	rorl	$14,%edx
681	movl	12(%esp),%edi
682	xorl	%esi,%edx
683	movl	76(%esp),%ebx
684	xorl	%edi,%ecx
685	rorl	$5,%edx
686	andl	%esi,%ecx
687	movl	%esi,4(%esp)
688	xorl	%esi,%edx
689	addl	16(%esp),%ebx
690	xorl	%ecx,%edi
691	rorl	$6,%edx
692	movl	%ebp,%esi
693	addl	%edi,%ebx
694	rorl	$9,%esi
695	movl	%ebp,%ecx
696	movl	24(%esp),%edi
697	xorl	%ebp,%esi
698	movl	%ebp,20(%esp)
699	xorl	%edi,%ebp
700	rorl	$11,%esi
701	andl	%ebp,%eax
702	leal	1426881987(%ebx,%edx,1),%edx
703	xorl	%ecx,%esi
704	xorl	%edi,%eax
705	rorl	$2,%esi
706	addl	%edx,%eax
707	addl	(%esp),%edx
708	addl	%esi,%eax
709	movl	%edx,%ecx
710	movl	4(%esp),%esi
711	rorl	$14,%edx
712	movl	8(%esp),%edi
713	xorl	%ecx,%edx
714	movl	80(%esp),%ebx
715	xorl	%edi,%esi
716	rorl	$5,%edx
717	andl	%ecx,%esi
718	movl	%ecx,(%esp)
719	xorl	%ecx,%edx
720	addl	12(%esp),%ebx
721	xorl	%esi,%edi
722	rorl	$6,%edx
723	movl	%eax,%ecx
724	addl	%edi,%ebx
725	rorl	$9,%ecx
726	movl	%eax,%esi
727	movl	20(%esp),%edi
728	xorl	%eax,%ecx
729	movl	%eax,16(%esp)
730	xorl	%edi,%eax
731	rorl	$11,%ecx
732	andl	%eax,%ebp
733	leal	1925078388(%ebx,%edx,1),%edx
734	xorl	%esi,%ecx
735	xorl	%edi,%ebp
736	rorl	$2,%ecx
737	addl	%edx,%ebp
738	addl	28(%esp),%edx
739	addl	%ecx,%ebp
740	movl	%edx,%esi
741	movl	(%esp),%ecx
742	rorl	$14,%edx
743	movl	4(%esp),%edi
744	xorl	%esi,%edx
745	movl	84(%esp),%ebx
746	xorl	%edi,%ecx
747	rorl	$5,%edx
748	andl	%esi,%ecx
749	movl	%esi,28(%esp)
750	xorl	%esi,%edx
751	addl	8(%esp),%ebx
752	xorl	%ecx,%edi
753	rorl	$6,%edx
754	movl	%ebp,%esi
755	addl	%edi,%ebx
756	rorl	$9,%esi
757	movl	%ebp,%ecx
758	movl	16(%esp),%edi
759	xorl	%ebp,%esi
760	movl	%ebp,12(%esp)
761	xorl	%edi,%ebp
762	rorl	$11,%esi
763	andl	%ebp,%eax
764	leal	2162078206(%ebx,%edx,1),%edx
765	xorl	%ecx,%esi
766	xorl	%edi,%eax
767	rorl	$2,%esi
768	addl	%edx,%eax
769	addl	24(%esp),%edx
770	addl	%esi,%eax
771	movl	%edx,%ecx
772	movl	28(%esp),%esi
773	rorl	$14,%edx
774	movl	(%esp),%edi
775	xorl	%ecx,%edx
776	movl	88(%esp),%ebx
777	xorl	%edi,%esi
778	rorl	$5,%edx
779	andl	%ecx,%esi
780	movl	%ecx,24(%esp)
781	xorl	%ecx,%edx
782	addl	4(%esp),%ebx
783	xorl	%esi,%edi
784	rorl	$6,%edx
785	movl	%eax,%ecx
786	addl	%edi,%ebx
787	rorl	$9,%ecx
788	movl	%eax,%esi
789	movl	12(%esp),%edi
790	xorl	%eax,%ecx
791	movl	%eax,8(%esp)
792	xorl	%edi,%eax
793	rorl	$11,%ecx
794	andl	%eax,%ebp
795	leal	2614888103(%ebx,%edx,1),%edx
796	xorl	%esi,%ecx
797	xorl	%edi,%ebp
798	rorl	$2,%ecx
799	addl	%edx,%ebp
800	addl	20(%esp),%edx
801	addl	%ecx,%ebp
802	movl	%edx,%esi
803	movl	24(%esp),%ecx
804	rorl	$14,%edx
805	movl	28(%esp),%edi
806	xorl	%esi,%edx
807	movl	92(%esp),%ebx
808	xorl	%edi,%ecx
809	rorl	$5,%edx
810	andl	%esi,%ecx
811	movl	%esi,20(%esp)
812	xorl	%esi,%edx
813	addl	(%esp),%ebx
814	xorl	%ecx,%edi
815	rorl	$6,%edx
816	movl	%ebp,%esi
817	addl	%edi,%ebx
818	rorl	$9,%esi
819	movl	%ebp,%ecx
820	movl	8(%esp),%edi
821	xorl	%ebp,%esi
822	movl	%ebp,4(%esp)
823	xorl	%edi,%ebp
824	rorl	$11,%esi
825	andl	%ebp,%eax
826	leal	3248222580(%ebx,%edx,1),%edx
827	xorl	%ecx,%esi
828	xorl	%edi,%eax
829	movl	36(%esp),%ecx
830	rorl	$2,%esi
831	addl	%edx,%eax
832	addl	16(%esp),%edx
833	addl	%esi,%eax
834	movl	88(%esp),%esi
835	movl	%ecx,%ebx
836	rorl	$11,%ecx
837	movl	%esi,%edi
838	rorl	$2,%esi
839	xorl	%ebx,%ecx
840	shrl	$3,%ebx
841	rorl	$7,%ecx
842	xorl	%edi,%esi
843	xorl	%ecx,%ebx
844	rorl	$17,%esi
845	addl	32(%esp),%ebx
846	shrl	$10,%edi
847	addl	68(%esp),%ebx
848	movl	%edx,%ecx
849	xorl	%esi,%edi
850	movl	20(%esp),%esi
851	rorl	$14,%edx
852	addl	%edi,%ebx
853	movl	24(%esp),%edi
854	xorl	%ecx,%edx
855	movl	%ebx,32(%esp)
856	xorl	%edi,%esi
857	rorl	$5,%edx
858	andl	%ecx,%esi
859	movl	%ecx,16(%esp)
860	xorl	%ecx,%edx
861	addl	28(%esp),%ebx
862	xorl	%esi,%edi
863	rorl	$6,%edx
864	movl	%eax,%ecx
865	addl	%edi,%ebx
866	rorl	$9,%ecx
867	movl	%eax,%esi
868	movl	4(%esp),%edi
869	xorl	%eax,%ecx
870	movl	%eax,(%esp)
871	xorl	%edi,%eax
872	rorl	$11,%ecx
873	andl	%eax,%ebp
874	leal	3835390401(%ebx,%edx,1),%edx
875	xorl	%esi,%ecx
876	xorl	%edi,%ebp
877	movl	40(%esp),%esi
878	rorl	$2,%ecx
879	addl	%edx,%ebp
880	addl	12(%esp),%edx
881	addl	%ecx,%ebp
882	movl	92(%esp),%ecx
883	movl	%esi,%ebx
884	rorl	$11,%esi
885	movl	%ecx,%edi
886	rorl	$2,%ecx
887	xorl	%ebx,%esi
888	shrl	$3,%ebx
889	rorl	$7,%esi
890	xorl	%edi,%ecx
891	xorl	%esi,%ebx
892	rorl	$17,%ecx
893	addl	36(%esp),%ebx
894	shrl	$10,%edi
895	addl	72(%esp),%ebx
896	movl	%edx,%esi
897	xorl	%ecx,%edi
898	movl	16(%esp),%ecx
899	rorl	$14,%edx
900	addl	%edi,%ebx
901	movl	20(%esp),%edi
902	xorl	%esi,%edx
903	movl	%ebx,36(%esp)
904	xorl	%edi,%ecx
905	rorl	$5,%edx
906	andl	%esi,%ecx
907	movl	%esi,12(%esp)
908	xorl	%esi,%edx
909	addl	24(%esp),%ebx
910	xorl	%ecx,%edi
911	rorl	$6,%edx
912	movl	%ebp,%esi
913	addl	%edi,%ebx
914	rorl	$9,%esi
915	movl	%ebp,%ecx
916	movl	(%esp),%edi
917	xorl	%ebp,%esi
918	movl	%ebp,28(%esp)
919	xorl	%edi,%ebp
920	rorl	$11,%esi
921	andl	%ebp,%eax
922	leal	4022224774(%ebx,%edx,1),%edx
923	xorl	%ecx,%esi
924	xorl	%edi,%eax
925	movl	44(%esp),%ecx
926	rorl	$2,%esi
927	addl	%edx,%eax
928	addl	8(%esp),%edx
929	addl	%esi,%eax
930	movl	32(%esp),%esi
931	movl	%ecx,%ebx
932	rorl	$11,%ecx
933	movl	%esi,%edi
934	rorl	$2,%esi
935	xorl	%ebx,%ecx
936	shrl	$3,%ebx
937	rorl	$7,%ecx
938	xorl	%edi,%esi
939	xorl	%ecx,%ebx
940	rorl	$17,%esi
941	addl	40(%esp),%ebx
942	shrl	$10,%edi
943	addl	76(%esp),%ebx
944	movl	%edx,%ecx
945	xorl	%esi,%edi
946	movl	12(%esp),%esi
947	rorl	$14,%edx
948	addl	%edi,%ebx
949	movl	16(%esp),%edi
950	xorl	%ecx,%edx
951	movl	%ebx,40(%esp)
952	xorl	%edi,%esi
953	rorl	$5,%edx
954	andl	%ecx,%esi
955	movl	%ecx,8(%esp)
956	xorl	%ecx,%edx
957	addl	20(%esp),%ebx
958	xorl	%esi,%edi
959	rorl	$6,%edx
960	movl	%eax,%ecx
961	addl	%edi,%ebx
962	rorl	$9,%ecx
963	movl	%eax,%esi
964	movl	28(%esp),%edi
965	xorl	%eax,%ecx
966	movl	%eax,24(%esp)
967	xorl	%edi,%eax
968	rorl	$11,%ecx
969	andl	%eax,%ebp
970	leal	264347078(%ebx,%edx,1),%edx
971	xorl	%esi,%ecx
972	xorl	%edi,%ebp
973	movl	48(%esp),%esi
974	rorl	$2,%ecx
975	addl	%edx,%ebp
976	addl	4(%esp),%edx
977	addl	%ecx,%ebp
978	movl	36(%esp),%ecx
979	movl	%esi,%ebx
980	rorl	$11,%esi
981	movl	%ecx,%edi
982	rorl	$2,%ecx
983	xorl	%ebx,%esi
984	shrl	$3,%ebx
985	rorl	$7,%esi
986	xorl	%edi,%ecx
987	xorl	%esi,%ebx
988	rorl	$17,%ecx
989	addl	44(%esp),%ebx
990	shrl	$10,%edi
991	addl	80(%esp),%ebx
992	movl	%edx,%esi
993	xorl	%ecx,%edi
994	movl	8(%esp),%ecx
995	rorl	$14,%edx
996	addl	%edi,%ebx
997	movl	12(%esp),%edi
998	xorl	%esi,%edx
999	movl	%ebx,44(%esp)
1000	xorl	%edi,%ecx
1001	rorl	$5,%edx
1002	andl	%esi,%ecx
1003	movl	%esi,4(%esp)
1004	xorl	%esi,%edx
1005	addl	16(%esp),%ebx
1006	xorl	%ecx,%edi
1007	rorl	$6,%edx
1008	movl	%ebp,%esi
1009	addl	%edi,%ebx
1010	rorl	$9,%esi
1011	movl	%ebp,%ecx
1012	movl	24(%esp),%edi
1013	xorl	%ebp,%esi
1014	movl	%ebp,20(%esp)
1015	xorl	%edi,%ebp
1016	rorl	$11,%esi
1017	andl	%ebp,%eax
1018	leal	604807628(%ebx,%edx,1),%edx
1019	xorl	%ecx,%esi
1020	xorl	%edi,%eax
1021	movl	52(%esp),%ecx
1022	rorl	$2,%esi
1023	addl	%edx,%eax
1024	addl	(%esp),%edx
1025	addl	%esi,%eax
1026	movl	40(%esp),%esi
1027	movl	%ecx,%ebx
1028	rorl	$11,%ecx
1029	movl	%esi,%edi
1030	rorl	$2,%esi
1031	xorl	%ebx,%ecx
1032	shrl	$3,%ebx
1033	rorl	$7,%ecx
1034	xorl	%edi,%esi
1035	xorl	%ecx,%ebx
1036	rorl	$17,%esi
1037	addl	48(%esp),%ebx
1038	shrl	$10,%edi
1039	addl	84(%esp),%ebx
1040	movl	%edx,%ecx
1041	xorl	%esi,%edi
1042	movl	4(%esp),%esi
1043	rorl	$14,%edx
1044	addl	%edi,%ebx
1045	movl	8(%esp),%edi
1046	xorl	%ecx,%edx
1047	movl	%ebx,48(%esp)
1048	xorl	%edi,%esi
1049	rorl	$5,%edx
1050	andl	%ecx,%esi
1051	movl	%ecx,(%esp)
1052	xorl	%ecx,%edx
1053	addl	12(%esp),%ebx
1054	xorl	%esi,%edi
1055	rorl	$6,%edx
1056	movl	%eax,%ecx
1057	addl	%edi,%ebx
1058	rorl	$9,%ecx
1059	movl	%eax,%esi
1060	movl	20(%esp),%edi
1061	xorl	%eax,%ecx
1062	movl	%eax,16(%esp)
1063	xorl	%edi,%eax
1064	rorl	$11,%ecx
1065	andl	%eax,%ebp
1066	leal	770255983(%ebx,%edx,1),%edx
1067	xorl	%esi,%ecx
1068	xorl	%edi,%ebp
1069	movl	56(%esp),%esi
1070	rorl	$2,%ecx
1071	addl	%edx,%ebp
1072	addl	28(%esp),%edx
1073	addl	%ecx,%ebp
1074	movl	44(%esp),%ecx
1075	movl	%esi,%ebx
1076	rorl	$11,%esi
1077	movl	%ecx,%edi
1078	rorl	$2,%ecx
1079	xorl	%ebx,%esi
1080	shrl	$3,%ebx
1081	rorl	$7,%esi
1082	xorl	%edi,%ecx
1083	xorl	%esi,%ebx
1084	rorl	$17,%ecx
1085	addl	52(%esp),%ebx
1086	shrl	$10,%edi
1087	addl	88(%esp),%ebx
1088	movl	%edx,%esi
1089	xorl	%ecx,%edi
1090	movl	(%esp),%ecx
1091	rorl	$14,%edx
1092	addl	%edi,%ebx
1093	movl	4(%esp),%edi
1094	xorl	%esi,%edx
1095	movl	%ebx,52(%esp)
1096	xorl	%edi,%ecx
1097	rorl	$5,%edx
1098	andl	%esi,%ecx
1099	movl	%esi,28(%esp)
1100	xorl	%esi,%edx
1101	addl	8(%esp),%ebx
1102	xorl	%ecx,%edi
1103	rorl	$6,%edx
1104	movl	%ebp,%esi
1105	addl	%edi,%ebx
1106	rorl	$9,%esi
1107	movl	%ebp,%ecx
1108	movl	16(%esp),%edi
1109	xorl	%ebp,%esi
1110	movl	%ebp,12(%esp)
1111	xorl	%edi,%ebp
1112	rorl	$11,%esi
1113	andl	%ebp,%eax
1114	leal	1249150122(%ebx,%edx,1),%edx
1115	xorl	%ecx,%esi
1116	xorl	%edi,%eax
1117	movl	60(%esp),%ecx
1118	rorl	$2,%esi
1119	addl	%edx,%eax
1120	addl	24(%esp),%edx
1121	addl	%esi,%eax
1122	movl	48(%esp),%esi
1123	movl	%ecx,%ebx
1124	rorl	$11,%ecx
1125	movl	%esi,%edi
1126	rorl	$2,%esi
1127	xorl	%ebx,%ecx
1128	shrl	$3,%ebx
1129	rorl	$7,%ecx
1130	xorl	%edi,%esi
1131	xorl	%ecx,%ebx
1132	rorl	$17,%esi
1133	addl	56(%esp),%ebx
1134	shrl	$10,%edi
1135	addl	92(%esp),%ebx
1136	movl	%edx,%ecx
1137	xorl	%esi,%edi
1138	movl	28(%esp),%esi
1139	rorl	$14,%edx
1140	addl	%edi,%ebx
1141	movl	(%esp),%edi
1142	xorl	%ecx,%edx
1143	movl	%ebx,56(%esp)
1144	xorl	%edi,%esi
1145	rorl	$5,%edx
1146	andl	%ecx,%esi
1147	movl	%ecx,24(%esp)
1148	xorl	%ecx,%edx
1149	addl	4(%esp),%ebx
1150	xorl	%esi,%edi
1151	rorl	$6,%edx
1152	movl	%eax,%ecx
1153	addl	%edi,%ebx
1154	rorl	$9,%ecx
1155	movl	%eax,%esi
1156	movl	12(%esp),%edi
1157	xorl	%eax,%ecx
1158	movl	%eax,8(%esp)
1159	xorl	%edi,%eax
1160	rorl	$11,%ecx
1161	andl	%eax,%ebp
1162	leal	1555081692(%ebx,%edx,1),%edx
1163	xorl	%esi,%ecx
1164	xorl	%edi,%ebp
1165	movl	64(%esp),%esi
1166	rorl	$2,%ecx
1167	addl	%edx,%ebp
1168	addl	20(%esp),%edx
1169	addl	%ecx,%ebp
1170	movl	52(%esp),%ecx
1171	movl	%esi,%ebx
1172	rorl	$11,%esi
1173	movl	%ecx,%edi
1174	rorl	$2,%ecx
1175	xorl	%ebx,%esi
1176	shrl	$3,%ebx
1177	rorl	$7,%esi
1178	xorl	%edi,%ecx
1179	xorl	%esi,%ebx
1180	rorl	$17,%ecx
1181	addl	60(%esp),%ebx
1182	shrl	$10,%edi
1183	addl	32(%esp),%ebx
1184	movl	%edx,%esi
1185	xorl	%ecx,%edi
1186	movl	24(%esp),%ecx
1187	rorl	$14,%edx
1188	addl	%edi,%ebx
1189	movl	28(%esp),%edi
1190	xorl	%esi,%edx
1191	movl	%ebx,60(%esp)
1192	xorl	%edi,%ecx
1193	rorl	$5,%edx
1194	andl	%esi,%ecx
1195	movl	%esi,20(%esp)
1196	xorl	%esi,%edx
1197	addl	(%esp),%ebx
1198	xorl	%ecx,%edi
1199	rorl	$6,%edx
1200	movl	%ebp,%esi
1201	addl	%edi,%ebx
1202	rorl	$9,%esi
1203	movl	%ebp,%ecx
1204	movl	8(%esp),%edi
1205	xorl	%ebp,%esi
1206	movl	%ebp,4(%esp)
1207	xorl	%edi,%ebp
1208	rorl	$11,%esi
1209	andl	%ebp,%eax
1210	leal	1996064986(%ebx,%edx,1),%edx
1211	xorl	%ecx,%esi
1212	xorl	%edi,%eax
1213	movl	68(%esp),%ecx
1214	rorl	$2,%esi
1215	addl	%edx,%eax
1216	addl	16(%esp),%edx
1217	addl	%esi,%eax
1218	movl	56(%esp),%esi
1219	movl	%ecx,%ebx
1220	rorl	$11,%ecx
1221	movl	%esi,%edi
1222	rorl	$2,%esi
1223	xorl	%ebx,%ecx
1224	shrl	$3,%ebx
1225	rorl	$7,%ecx
1226	xorl	%edi,%esi
1227	xorl	%ecx,%ebx
1228	rorl	$17,%esi
1229	addl	64(%esp),%ebx
1230	shrl	$10,%edi
1231	addl	36(%esp),%ebx
1232	movl	%edx,%ecx
1233	xorl	%esi,%edi
1234	movl	20(%esp),%esi
1235	rorl	$14,%edx
1236	addl	%edi,%ebx
1237	movl	24(%esp),%edi
1238	xorl	%ecx,%edx
1239	movl	%ebx,64(%esp)
1240	xorl	%edi,%esi
1241	rorl	$5,%edx
1242	andl	%ecx,%esi
1243	movl	%ecx,16(%esp)
1244	xorl	%ecx,%edx
1245	addl	28(%esp),%ebx
1246	xorl	%esi,%edi
1247	rorl	$6,%edx
1248	movl	%eax,%ecx
1249	addl	%edi,%ebx
1250	rorl	$9,%ecx
1251	movl	%eax,%esi
1252	movl	4(%esp),%edi
1253	xorl	%eax,%ecx
1254	movl	%eax,(%esp)
1255	xorl	%edi,%eax
1256	rorl	$11,%ecx
1257	andl	%eax,%ebp
1258	leal	2554220882(%ebx,%edx,1),%edx
1259	xorl	%esi,%ecx
1260	xorl	%edi,%ebp
1261	movl	72(%esp),%esi
1262	rorl	$2,%ecx
1263	addl	%edx,%ebp
1264	addl	12(%esp),%edx
1265	addl	%ecx,%ebp
1266	movl	60(%esp),%ecx
1267	movl	%esi,%ebx
1268	rorl	$11,%esi
1269	movl	%ecx,%edi
1270	rorl	$2,%ecx
1271	xorl	%ebx,%esi
1272	shrl	$3,%ebx
1273	rorl	$7,%esi
1274	xorl	%edi,%ecx
1275	xorl	%esi,%ebx
1276	rorl	$17,%ecx
1277	addl	68(%esp),%ebx
1278	shrl	$10,%edi
1279	addl	40(%esp),%ebx
1280	movl	%edx,%esi
1281	xorl	%ecx,%edi
1282	movl	16(%esp),%ecx
1283	rorl	$14,%edx
1284	addl	%edi,%ebx
1285	movl	20(%esp),%edi
1286	xorl	%esi,%edx
1287	movl	%ebx,68(%esp)
1288	xorl	%edi,%ecx
1289	rorl	$5,%edx
1290	andl	%esi,%ecx
1291	movl	%esi,12(%esp)
1292	xorl	%esi,%edx
1293	addl	24(%esp),%ebx
1294	xorl	%ecx,%edi
1295	rorl	$6,%edx
1296	movl	%ebp,%esi
1297	addl	%edi,%ebx
1298	rorl	$9,%esi
1299	movl	%ebp,%ecx
1300	movl	(%esp),%edi
1301	xorl	%ebp,%esi
1302	movl	%ebp,28(%esp)
1303	xorl	%edi,%ebp
1304	rorl	$11,%esi
1305	andl	%ebp,%eax
1306	leal	2821834349(%ebx,%edx,1),%edx
1307	xorl	%ecx,%esi
1308	xorl	%edi,%eax
1309	movl	76(%esp),%ecx
1310	rorl	$2,%esi
1311	addl	%edx,%eax
1312	addl	8(%esp),%edx
1313	addl	%esi,%eax
1314	movl	64(%esp),%esi
1315	movl	%ecx,%ebx
1316	rorl	$11,%ecx
1317	movl	%esi,%edi
1318	rorl	$2,%esi
1319	xorl	%ebx,%ecx
1320	shrl	$3,%ebx
1321	rorl	$7,%ecx
1322	xorl	%edi,%esi
1323	xorl	%ecx,%ebx
1324	rorl	$17,%esi
1325	addl	72(%esp),%ebx
1326	shrl	$10,%edi
1327	addl	44(%esp),%ebx
1328	movl	%edx,%ecx
1329	xorl	%esi,%edi
1330	movl	12(%esp),%esi
1331	rorl	$14,%edx
1332	addl	%edi,%ebx
1333	movl	16(%esp),%edi
1334	xorl	%ecx,%edx
1335	movl	%ebx,72(%esp)
1336	xorl	%edi,%esi
1337	rorl	$5,%edx
1338	andl	%ecx,%esi
1339	movl	%ecx,8(%esp)
1340	xorl	%ecx,%edx
1341	addl	20(%esp),%ebx
1342	xorl	%esi,%edi
1343	rorl	$6,%edx
1344	movl	%eax,%ecx
1345	addl	%edi,%ebx
1346	rorl	$9,%ecx
1347	movl	%eax,%esi
1348	movl	28(%esp),%edi
1349	xorl	%eax,%ecx
1350	movl	%eax,24(%esp)
1351	xorl	%edi,%eax
1352	rorl	$11,%ecx
1353	andl	%eax,%ebp
1354	leal	2952996808(%ebx,%edx,1),%edx
1355	xorl	%esi,%ecx
1356	xorl	%edi,%ebp
1357	movl	80(%esp),%esi
1358	rorl	$2,%ecx
1359	addl	%edx,%ebp
1360	addl	4(%esp),%edx
1361	addl	%ecx,%ebp
1362	movl	68(%esp),%ecx
1363	movl	%esi,%ebx
1364	rorl	$11,%esi
1365	movl	%ecx,%edi
1366	rorl	$2,%ecx
1367	xorl	%ebx,%esi
1368	shrl	$3,%ebx
1369	rorl	$7,%esi
1370	xorl	%edi,%ecx
1371	xorl	%esi,%ebx
1372	rorl	$17,%ecx
1373	addl	76(%esp),%ebx
1374	shrl	$10,%edi
1375	addl	48(%esp),%ebx
1376	movl	%edx,%esi
1377	xorl	%ecx,%edi
1378	movl	8(%esp),%ecx
1379	rorl	$14,%edx
1380	addl	%edi,%ebx
1381	movl	12(%esp),%edi
1382	xorl	%esi,%edx
1383	movl	%ebx,76(%esp)
1384	xorl	%edi,%ecx
1385	rorl	$5,%edx
1386	andl	%esi,%ecx
1387	movl	%esi,4(%esp)
1388	xorl	%esi,%edx
1389	addl	16(%esp),%ebx
1390	xorl	%ecx,%edi
1391	rorl	$6,%edx
1392	movl	%ebp,%esi
1393	addl	%edi,%ebx
1394	rorl	$9,%esi
1395	movl	%ebp,%ecx
1396	movl	24(%esp),%edi
1397	xorl	%ebp,%esi
1398	movl	%ebp,20(%esp)
1399	xorl	%edi,%ebp
1400	rorl	$11,%esi
1401	andl	%ebp,%eax
1402	leal	3210313671(%ebx,%edx,1),%edx
1403	xorl	%ecx,%esi
1404	xorl	%edi,%eax
1405	movl	84(%esp),%ecx
1406	rorl	$2,%esi
1407	addl	%edx,%eax
1408	addl	(%esp),%edx
1409	addl	%esi,%eax
1410	movl	72(%esp),%esi
1411	movl	%ecx,%ebx
1412	rorl	$11,%ecx
1413	movl	%esi,%edi
1414	rorl	$2,%esi
1415	xorl	%ebx,%ecx
1416	shrl	$3,%ebx
1417	rorl	$7,%ecx
1418	xorl	%edi,%esi
1419	xorl	%ecx,%ebx
1420	rorl	$17,%esi
1421	addl	80(%esp),%ebx
1422	shrl	$10,%edi
1423	addl	52(%esp),%ebx
1424	movl	%edx,%ecx
1425	xorl	%esi,%edi
1426	movl	4(%esp),%esi
1427	rorl	$14,%edx
1428	addl	%edi,%ebx
1429	movl	8(%esp),%edi
1430	xorl	%ecx,%edx
1431	movl	%ebx,80(%esp)
1432	xorl	%edi,%esi
1433	rorl	$5,%edx
1434	andl	%ecx,%esi
1435	movl	%ecx,(%esp)
1436	xorl	%ecx,%edx
1437	addl	12(%esp),%ebx
1438	xorl	%esi,%edi
1439	rorl	$6,%edx
1440	movl	%eax,%ecx
1441	addl	%edi,%ebx
1442	rorl	$9,%ecx
1443	movl	%eax,%esi
1444	movl	20(%esp),%edi
1445	xorl	%eax,%ecx
1446	movl	%eax,16(%esp)
1447	xorl	%edi,%eax
1448	rorl	$11,%ecx
1449	andl	%eax,%ebp
1450	leal	3336571891(%ebx,%edx,1),%edx
1451	xorl	%esi,%ecx
1452	xorl	%edi,%ebp
1453	movl	88(%esp),%esi
1454	rorl	$2,%ecx
1455	addl	%edx,%ebp
1456	addl	28(%esp),%edx
1457	addl	%ecx,%ebp
1458	movl	76(%esp),%ecx
1459	movl	%esi,%ebx
1460	rorl	$11,%esi
1461	movl	%ecx,%edi
1462	rorl	$2,%ecx
1463	xorl	%ebx,%esi
1464	shrl	$3,%ebx
1465	rorl	$7,%esi
1466	xorl	%edi,%ecx
1467	xorl	%esi,%ebx
1468	rorl	$17,%ecx
1469	addl	84(%esp),%ebx
1470	shrl	$10,%edi
1471	addl	56(%esp),%ebx
1472	movl	%edx,%esi
1473	xorl	%ecx,%edi
1474	movl	(%esp),%ecx
1475	rorl	$14,%edx
1476	addl	%edi,%ebx
1477	movl	4(%esp),%edi
1478	xorl	%esi,%edx
1479	movl	%ebx,84(%esp)
1480	xorl	%edi,%ecx
1481	rorl	$5,%edx
1482	andl	%esi,%ecx
1483	movl	%esi,28(%esp)
1484	xorl	%esi,%edx
1485	addl	8(%esp),%ebx
1486	xorl	%ecx,%edi
1487	rorl	$6,%edx
1488	movl	%ebp,%esi
1489	addl	%edi,%ebx
1490	rorl	$9,%esi
1491	movl	%ebp,%ecx
1492	movl	16(%esp),%edi
1493	xorl	%ebp,%esi
1494	movl	%ebp,12(%esp)
1495	xorl	%edi,%ebp
1496	rorl	$11,%esi
1497	andl	%ebp,%eax
1498	leal	3584528711(%ebx,%edx,1),%edx
1499	xorl	%ecx,%esi
1500	xorl	%edi,%eax
1501	movl	92(%esp),%ecx
1502	rorl	$2,%esi
1503	addl	%edx,%eax
1504	addl	24(%esp),%edx
1505	addl	%esi,%eax
1506	movl	80(%esp),%esi
1507	movl	%ecx,%ebx
1508	rorl	$11,%ecx
1509	movl	%esi,%edi
1510	rorl	$2,%esi
1511	xorl	%ebx,%ecx
1512	shrl	$3,%ebx
1513	rorl	$7,%ecx
1514	xorl	%edi,%esi
1515	xorl	%ecx,%ebx
1516	rorl	$17,%esi
1517	addl	88(%esp),%ebx
1518	shrl	$10,%edi
1519	addl	60(%esp),%ebx
1520	movl	%edx,%ecx
1521	xorl	%esi,%edi
1522	movl	28(%esp),%esi
1523	rorl	$14,%edx
1524	addl	%edi,%ebx
1525	movl	(%esp),%edi
1526	xorl	%ecx,%edx
1527	movl	%ebx,88(%esp)
1528	xorl	%edi,%esi
1529	rorl	$5,%edx
1530	andl	%ecx,%esi
1531	movl	%ecx,24(%esp)
1532	xorl	%ecx,%edx
1533	addl	4(%esp),%ebx
1534	xorl	%esi,%edi
1535	rorl	$6,%edx
1536	movl	%eax,%ecx
1537	addl	%edi,%ebx
1538	rorl	$9,%ecx
1539	movl	%eax,%esi
1540	movl	12(%esp),%edi
1541	xorl	%eax,%ecx
1542	movl	%eax,8(%esp)
1543	xorl	%edi,%eax
1544	rorl	$11,%ecx
1545	andl	%eax,%ebp
1546	leal	113926993(%ebx,%edx,1),%edx
1547	xorl	%esi,%ecx
1548	xorl	%edi,%ebp
1549	movl	32(%esp),%esi
1550	rorl	$2,%ecx
1551	addl	%edx,%ebp
1552	addl	20(%esp),%edx
1553	addl	%ecx,%ebp
1554	movl	84(%esp),%ecx
1555	movl	%esi,%ebx
1556	rorl	$11,%esi
1557	movl	%ecx,%edi
1558	rorl	$2,%ecx
1559	xorl	%ebx,%esi
1560	shrl	$3,%ebx
1561	rorl	$7,%esi
1562	xorl	%edi,%ecx
1563	xorl	%esi,%ebx
1564	rorl	$17,%ecx
1565	addl	92(%esp),%ebx
1566	shrl	$10,%edi
1567	addl	64(%esp),%ebx
1568	movl	%edx,%esi
1569	xorl	%ecx,%edi
1570	movl	24(%esp),%ecx
1571	rorl	$14,%edx
1572	addl	%edi,%ebx
1573	movl	28(%esp),%edi
1574	xorl	%esi,%edx
1575	movl	%ebx,92(%esp)
1576	xorl	%edi,%ecx
1577	rorl	$5,%edx
1578	andl	%esi,%ecx
1579	movl	%esi,20(%esp)
1580	xorl	%esi,%edx
1581	addl	(%esp),%ebx
1582	xorl	%ecx,%edi
1583	rorl	$6,%edx
1584	movl	%ebp,%esi
1585	addl	%edi,%ebx
1586	rorl	$9,%esi
1587	movl	%ebp,%ecx
1588	movl	8(%esp),%edi
1589	xorl	%ebp,%esi
1590	movl	%ebp,4(%esp)
1591	xorl	%edi,%ebp
1592	rorl	$11,%esi
1593	andl	%ebp,%eax
1594	leal	338241895(%ebx,%edx,1),%edx
1595	xorl	%ecx,%esi
1596	xorl	%edi,%eax
1597	movl	36(%esp),%ecx
1598	rorl	$2,%esi
1599	addl	%edx,%eax
1600	addl	16(%esp),%edx
1601	addl	%esi,%eax
1602	movl	88(%esp),%esi
1603	movl	%ecx,%ebx
1604	rorl	$11,%ecx
1605	movl	%esi,%edi
1606	rorl	$2,%esi
1607	xorl	%ebx,%ecx
1608	shrl	$3,%ebx
1609	rorl	$7,%ecx
1610	xorl	%edi,%esi
1611	xorl	%ecx,%ebx
1612	rorl	$17,%esi
1613	addl	32(%esp),%ebx
1614	shrl	$10,%edi
1615	addl	68(%esp),%ebx
1616	movl	%edx,%ecx
1617	xorl	%esi,%edi
1618	movl	20(%esp),%esi
1619	rorl	$14,%edx
1620	addl	%edi,%ebx
1621	movl	24(%esp),%edi
1622	xorl	%ecx,%edx
1623	movl	%ebx,32(%esp)
1624	xorl	%edi,%esi
1625	rorl	$5,%edx
1626	andl	%ecx,%esi
1627	movl	%ecx,16(%esp)
1628	xorl	%ecx,%edx
1629	addl	28(%esp),%ebx
1630	xorl	%esi,%edi
1631	rorl	$6,%edx
1632	movl	%eax,%ecx
1633	addl	%edi,%ebx
1634	rorl	$9,%ecx
1635	movl	%eax,%esi
1636	movl	4(%esp),%edi
1637	xorl	%eax,%ecx
1638	movl	%eax,(%esp)
1639	xorl	%edi,%eax
1640	rorl	$11,%ecx
1641	andl	%eax,%ebp
1642	leal	666307205(%ebx,%edx,1),%edx
1643	xorl	%esi,%ecx
1644	xorl	%edi,%ebp
1645	movl	40(%esp),%esi
1646	rorl	$2,%ecx
1647	addl	%edx,%ebp
1648	addl	12(%esp),%edx
1649	addl	%ecx,%ebp
1650	movl	92(%esp),%ecx
1651	movl	%esi,%ebx
1652	rorl	$11,%esi
1653	movl	%ecx,%edi
1654	rorl	$2,%ecx
1655	xorl	%ebx,%esi
1656	shrl	$3,%ebx
1657	rorl	$7,%esi
1658	xorl	%edi,%ecx
1659	xorl	%esi,%ebx
1660	rorl	$17,%ecx
1661	addl	36(%esp),%ebx
1662	shrl	$10,%edi
1663	addl	72(%esp),%ebx
1664	movl	%edx,%esi
1665	xorl	%ecx,%edi
1666	movl	16(%esp),%ecx
1667	rorl	$14,%edx
1668	addl	%edi,%ebx
1669	movl	20(%esp),%edi
1670	xorl	%esi,%edx
1671	movl	%ebx,36(%esp)
1672	xorl	%edi,%ecx
1673	rorl	$5,%edx
1674	andl	%esi,%ecx
1675	movl	%esi,12(%esp)
1676	xorl	%esi,%edx
1677	addl	24(%esp),%ebx
1678	xorl	%ecx,%edi
1679	rorl	$6,%edx
1680	movl	%ebp,%esi
1681	addl	%edi,%ebx
1682	rorl	$9,%esi
1683	movl	%ebp,%ecx
1684	movl	(%esp),%edi
1685	xorl	%ebp,%esi
1686	movl	%ebp,28(%esp)
1687	xorl	%edi,%ebp
1688	rorl	$11,%esi
1689	andl	%ebp,%eax
1690	leal	773529912(%ebx,%edx,1),%edx
1691	xorl	%ecx,%esi
1692	xorl	%edi,%eax
1693	movl	44(%esp),%ecx
1694	rorl	$2,%esi
1695	addl	%edx,%eax
1696	addl	8(%esp),%edx
1697	addl	%esi,%eax
1698	movl	32(%esp),%esi
1699	movl	%ecx,%ebx
1700	rorl	$11,%ecx
1701	movl	%esi,%edi
1702	rorl	$2,%esi
1703	xorl	%ebx,%ecx
1704	shrl	$3,%ebx
1705	rorl	$7,%ecx
1706	xorl	%edi,%esi
1707	xorl	%ecx,%ebx
1708	rorl	$17,%esi
1709	addl	40(%esp),%ebx
1710	shrl	$10,%edi
1711	addl	76(%esp),%ebx
1712	movl	%edx,%ecx
1713	xorl	%esi,%edi
1714	movl	12(%esp),%esi
1715	rorl	$14,%edx
1716	addl	%edi,%ebx
1717	movl	16(%esp),%edi
1718	xorl	%ecx,%edx
1719	movl	%ebx,40(%esp)
1720	xorl	%edi,%esi
1721	rorl	$5,%edx
1722	andl	%ecx,%esi
1723	movl	%ecx,8(%esp)
1724	xorl	%ecx,%edx
1725	addl	20(%esp),%ebx
1726	xorl	%esi,%edi
1727	rorl	$6,%edx
1728	movl	%eax,%ecx
1729	addl	%edi,%ebx
1730	rorl	$9,%ecx
1731	movl	%eax,%esi
1732	movl	28(%esp),%edi
1733	xorl	%eax,%ecx
1734	movl	%eax,24(%esp)
1735	xorl	%edi,%eax
1736	rorl	$11,%ecx
1737	andl	%eax,%ebp
1738	leal	1294757372(%ebx,%edx,1),%edx
1739	xorl	%esi,%ecx
1740	xorl	%edi,%ebp
1741	movl	48(%esp),%esi
1742	rorl	$2,%ecx
1743	addl	%edx,%ebp
1744	addl	4(%esp),%edx
1745	addl	%ecx,%ebp
1746	movl	36(%esp),%ecx
1747	movl	%esi,%ebx
1748	rorl	$11,%esi
1749	movl	%ecx,%edi
1750	rorl	$2,%ecx
1751	xorl	%ebx,%esi
1752	shrl	$3,%ebx
1753	rorl	$7,%esi
1754	xorl	%edi,%ecx
1755	xorl	%esi,%ebx
1756	rorl	$17,%ecx
1757	addl	44(%esp),%ebx
1758	shrl	$10,%edi
1759	addl	80(%esp),%ebx
1760	movl	%edx,%esi
1761	xorl	%ecx,%edi
1762	movl	8(%esp),%ecx
1763	rorl	$14,%edx
1764	addl	%edi,%ebx
1765	movl	12(%esp),%edi
1766	xorl	%esi,%edx
1767	movl	%ebx,44(%esp)
1768	xorl	%edi,%ecx
1769	rorl	$5,%edx
1770	andl	%esi,%ecx
1771	movl	%esi,4(%esp)
1772	xorl	%esi,%edx
1773	addl	16(%esp),%ebx
1774	xorl	%ecx,%edi
1775	rorl	$6,%edx
1776	movl	%ebp,%esi
1777	addl	%edi,%ebx
1778	rorl	$9,%esi
1779	movl	%ebp,%ecx
1780	movl	24(%esp),%edi
1781	xorl	%ebp,%esi
1782	movl	%ebp,20(%esp)
1783	xorl	%edi,%ebp
1784	rorl	$11,%esi
1785	andl	%ebp,%eax
1786	leal	1396182291(%ebx,%edx,1),%edx
1787	xorl	%ecx,%esi
1788	xorl	%edi,%eax
1789	movl	52(%esp),%ecx
1790	rorl	$2,%esi
1791	addl	%edx,%eax
1792	addl	(%esp),%edx
1793	addl	%esi,%eax
1794	movl	40(%esp),%esi
1795	movl	%ecx,%ebx
1796	rorl	$11,%ecx
1797	movl	%esi,%edi
1798	rorl	$2,%esi
1799	xorl	%ebx,%ecx
1800	shrl	$3,%ebx
1801	rorl	$7,%ecx
1802	xorl	%edi,%esi
1803	xorl	%ecx,%ebx
1804	rorl	$17,%esi
1805	addl	48(%esp),%ebx
1806	shrl	$10,%edi
1807	addl	84(%esp),%ebx
1808	movl	%edx,%ecx
1809	xorl	%esi,%edi
1810	movl	4(%esp),%esi
1811	rorl	$14,%edx
1812	addl	%edi,%ebx
1813	movl	8(%esp),%edi
1814	xorl	%ecx,%edx
1815	movl	%ebx,48(%esp)
1816	xorl	%edi,%esi
1817	rorl	$5,%edx
1818	andl	%ecx,%esi
1819	movl	%ecx,(%esp)
1820	xorl	%ecx,%edx
1821	addl	12(%esp),%ebx
1822	xorl	%esi,%edi
1823	rorl	$6,%edx
1824	movl	%eax,%ecx
1825	addl	%edi,%ebx
1826	rorl	$9,%ecx
1827	movl	%eax,%esi
1828	movl	20(%esp),%edi
1829	xorl	%eax,%ecx
1830	movl	%eax,16(%esp)
1831	xorl	%edi,%eax
1832	rorl	$11,%ecx
1833	andl	%eax,%ebp
1834	leal	1695183700(%ebx,%edx,1),%edx
1835	xorl	%esi,%ecx
1836	xorl	%edi,%ebp
1837	movl	56(%esp),%esi
1838	rorl	$2,%ecx
1839	addl	%edx,%ebp
1840	addl	28(%esp),%edx
1841	addl	%ecx,%ebp
1842	movl	44(%esp),%ecx
1843	movl	%esi,%ebx
1844	rorl	$11,%esi
1845	movl	%ecx,%edi
1846	rorl	$2,%ecx
1847	xorl	%ebx,%esi
1848	shrl	$3,%ebx
1849	rorl	$7,%esi
1850	xorl	%edi,%ecx
1851	xorl	%esi,%ebx
1852	rorl	$17,%ecx
1853	addl	52(%esp),%ebx
1854	shrl	$10,%edi
1855	addl	88(%esp),%ebx
1856	movl	%edx,%esi
1857	xorl	%ecx,%edi
1858	movl	(%esp),%ecx
1859	rorl	$14,%edx
1860	addl	%edi,%ebx
1861	movl	4(%esp),%edi
1862	xorl	%esi,%edx
1863	movl	%ebx,52(%esp)
1864	xorl	%edi,%ecx
1865	rorl	$5,%edx
1866	andl	%esi,%ecx
1867	movl	%esi,28(%esp)
1868	xorl	%esi,%edx
1869	addl	8(%esp),%ebx
1870	xorl	%ecx,%edi
1871	rorl	$6,%edx
1872	movl	%ebp,%esi
1873	addl	%edi,%ebx
1874	rorl	$9,%esi
1875	movl	%ebp,%ecx
1876	movl	16(%esp),%edi
1877	xorl	%ebp,%esi
1878	movl	%ebp,12(%esp)
1879	xorl	%edi,%ebp
1880	rorl	$11,%esi
1881	andl	%ebp,%eax
1882	leal	1986661051(%ebx,%edx,1),%edx
1883	xorl	%ecx,%esi
1884	xorl	%edi,%eax
1885	movl	60(%esp),%ecx
1886	rorl	$2,%esi
1887	addl	%edx,%eax
1888	addl	24(%esp),%edx
1889	addl	%esi,%eax
1890	movl	48(%esp),%esi
1891	movl	%ecx,%ebx
1892	rorl	$11,%ecx
1893	movl	%esi,%edi
1894	rorl	$2,%esi
1895	xorl	%ebx,%ecx
1896	shrl	$3,%ebx
1897	rorl	$7,%ecx
1898	xorl	%edi,%esi
1899	xorl	%ecx,%ebx
1900	rorl	$17,%esi
1901	addl	56(%esp),%ebx
1902	shrl	$10,%edi
1903	addl	92(%esp),%ebx
1904	movl	%edx,%ecx
1905	xorl	%esi,%edi
1906	movl	28(%esp),%esi
1907	rorl	$14,%edx
1908	addl	%edi,%ebx
1909	movl	(%esp),%edi
1910	xorl	%ecx,%edx
1911	movl	%ebx,56(%esp)
1912	xorl	%edi,%esi
1913	rorl	$5,%edx
1914	andl	%ecx,%esi
1915	movl	%ecx,24(%esp)
1916	xorl	%ecx,%edx
1917	addl	4(%esp),%ebx
1918	xorl	%esi,%edi
1919	rorl	$6,%edx
1920	movl	%eax,%ecx
1921	addl	%edi,%ebx
1922	rorl	$9,%ecx
1923	movl	%eax,%esi
1924	movl	12(%esp),%edi
1925	xorl	%eax,%ecx
1926	movl	%eax,8(%esp)
1927	xorl	%edi,%eax
1928	rorl	$11,%ecx
1929	andl	%eax,%ebp
1930	leal	2177026350(%ebx,%edx,1),%edx
1931	xorl	%esi,%ecx
1932	xorl	%edi,%ebp
1933	movl	64(%esp),%esi
1934	rorl	$2,%ecx
1935	addl	%edx,%ebp
1936	addl	20(%esp),%edx
1937	addl	%ecx,%ebp
1938	movl	52(%esp),%ecx
1939	movl	%esi,%ebx
1940	rorl	$11,%esi
1941	movl	%ecx,%edi
1942	rorl	$2,%ecx
1943	xorl	%ebx,%esi
1944	shrl	$3,%ebx
1945	rorl	$7,%esi
1946	xorl	%edi,%ecx
1947	xorl	%esi,%ebx
1948	rorl	$17,%ecx
1949	addl	60(%esp),%ebx
1950	shrl	$10,%edi
1951	addl	32(%esp),%ebx
1952	movl	%edx,%esi
1953	xorl	%ecx,%edi
1954	movl	24(%esp),%ecx
1955	rorl	$14,%edx
1956	addl	%edi,%ebx
1957	movl	28(%esp),%edi
1958	xorl	%esi,%edx
1959	movl	%ebx,60(%esp)
1960	xorl	%edi,%ecx
1961	rorl	$5,%edx
1962	andl	%esi,%ecx
1963	movl	%esi,20(%esp)
1964	xorl	%esi,%edx
1965	addl	(%esp),%ebx
1966	xorl	%ecx,%edi
1967	rorl	$6,%edx
1968	movl	%ebp,%esi
1969	addl	%edi,%ebx
1970	rorl	$9,%esi
1971	movl	%ebp,%ecx
1972	movl	8(%esp),%edi
1973	xorl	%ebp,%esi
1974	movl	%ebp,4(%esp)
1975	xorl	%edi,%ebp
1976	rorl	$11,%esi
1977	andl	%ebp,%eax
1978	leal	2456956037(%ebx,%edx,1),%edx
1979	xorl	%ecx,%esi
1980	xorl	%edi,%eax
1981	movl	68(%esp),%ecx
1982	rorl	$2,%esi
1983	addl	%edx,%eax
1984	addl	16(%esp),%edx
1985	addl	%esi,%eax
1986	movl	56(%esp),%esi
1987	movl	%ecx,%ebx
1988	rorl	$11,%ecx
1989	movl	%esi,%edi
1990	rorl	$2,%esi
1991	xorl	%ebx,%ecx
1992	shrl	$3,%ebx
1993	rorl	$7,%ecx
1994	xorl	%edi,%esi
1995	xorl	%ecx,%ebx
1996	rorl	$17,%esi
1997	addl	64(%esp),%ebx
1998	shrl	$10,%edi
1999	addl	36(%esp),%ebx
2000	movl	%edx,%ecx
2001	xorl	%esi,%edi
2002	movl	20(%esp),%esi
2003	rorl	$14,%edx
2004	addl	%edi,%ebx
2005	movl	24(%esp),%edi
2006	xorl	%ecx,%edx
2007	movl	%ebx,64(%esp)
2008	xorl	%edi,%esi
2009	rorl	$5,%edx
2010	andl	%ecx,%esi
2011	movl	%ecx,16(%esp)
2012	xorl	%ecx,%edx
2013	addl	28(%esp),%ebx
2014	xorl	%esi,%edi
2015	rorl	$6,%edx
2016	movl	%eax,%ecx
2017	addl	%edi,%ebx
2018	rorl	$9,%ecx
2019	movl	%eax,%esi
2020	movl	4(%esp),%edi
2021	xorl	%eax,%ecx
2022	movl	%eax,(%esp)
2023	xorl	%edi,%eax
2024	rorl	$11,%ecx
2025	andl	%eax,%ebp
2026	leal	2730485921(%ebx,%edx,1),%edx
2027	xorl	%esi,%ecx
2028	xorl	%edi,%ebp
2029	movl	72(%esp),%esi
2030	rorl	$2,%ecx
2031	addl	%edx,%ebp
2032	addl	12(%esp),%edx
2033	addl	%ecx,%ebp
2034	movl	60(%esp),%ecx
2035	movl	%esi,%ebx
2036	rorl	$11,%esi
2037	movl	%ecx,%edi
2038	rorl	$2,%ecx
2039	xorl	%ebx,%esi
2040	shrl	$3,%ebx
2041	rorl	$7,%esi
2042	xorl	%edi,%ecx
2043	xorl	%esi,%ebx
2044	rorl	$17,%ecx
2045	addl	68(%esp),%ebx
2046	shrl	$10,%edi
2047	addl	40(%esp),%ebx
2048	movl	%edx,%esi
2049	xorl	%ecx,%edi
2050	movl	16(%esp),%ecx
2051	rorl	$14,%edx
2052	addl	%edi,%ebx
2053	movl	20(%esp),%edi
2054	xorl	%esi,%edx
2055	movl	%ebx,68(%esp)
2056	xorl	%edi,%ecx
2057	rorl	$5,%edx
2058	andl	%esi,%ecx
2059	movl	%esi,12(%esp)
2060	xorl	%esi,%edx
2061	addl	24(%esp),%ebx
2062	xorl	%ecx,%edi
2063	rorl	$6,%edx
2064	movl	%ebp,%esi
2065	addl	%edi,%ebx
2066	rorl	$9,%esi
2067	movl	%ebp,%ecx
2068	movl	(%esp),%edi
2069	xorl	%ebp,%esi
2070	movl	%ebp,28(%esp)
2071	xorl	%edi,%ebp
2072	rorl	$11,%esi
2073	andl	%ebp,%eax
2074	leal	2820302411(%ebx,%edx,1),%edx
2075	xorl	%ecx,%esi
2076	xorl	%edi,%eax
2077	movl	76(%esp),%ecx
2078	rorl	$2,%esi
2079	addl	%edx,%eax
2080	addl	8(%esp),%edx
2081	addl	%esi,%eax
2082	movl	64(%esp),%esi
2083	movl	%ecx,%ebx
2084	rorl	$11,%ecx
2085	movl	%esi,%edi
2086	rorl	$2,%esi
2087	xorl	%ebx,%ecx
2088	shrl	$3,%ebx
2089	rorl	$7,%ecx
2090	xorl	%edi,%esi
2091	xorl	%ecx,%ebx
2092	rorl	$17,%esi
2093	addl	72(%esp),%ebx
2094	shrl	$10,%edi
2095	addl	44(%esp),%ebx
2096	movl	%edx,%ecx
2097	xorl	%esi,%edi
2098	movl	12(%esp),%esi
2099	rorl	$14,%edx
2100	addl	%edi,%ebx
2101	movl	16(%esp),%edi
2102	xorl	%ecx,%edx
2103	movl	%ebx,72(%esp)
2104	xorl	%edi,%esi
2105	rorl	$5,%edx
2106	andl	%ecx,%esi
2107	movl	%ecx,8(%esp)
2108	xorl	%ecx,%edx
2109	addl	20(%esp),%ebx
2110	xorl	%esi,%edi
2111	rorl	$6,%edx
2112	movl	%eax,%ecx
2113	addl	%edi,%ebx
2114	rorl	$9,%ecx
2115	movl	%eax,%esi
2116	movl	28(%esp),%edi
2117	xorl	%eax,%ecx
2118	movl	%eax,24(%esp)
2119	xorl	%edi,%eax
2120	rorl	$11,%ecx
2121	andl	%eax,%ebp
2122	leal	3259730800(%ebx,%edx,1),%edx
2123	xorl	%esi,%ecx
2124	xorl	%edi,%ebp
2125	movl	80(%esp),%esi
2126	rorl	$2,%ecx
2127	addl	%edx,%ebp
2128	addl	4(%esp),%edx
2129	addl	%ecx,%ebp
2130	movl	68(%esp),%ecx
2131	movl	%esi,%ebx
2132	rorl	$11,%esi
2133	movl	%ecx,%edi
2134	rorl	$2,%ecx
2135	xorl	%ebx,%esi
2136	shrl	$3,%ebx
2137	rorl	$7,%esi
2138	xorl	%edi,%ecx
2139	xorl	%esi,%ebx
2140	rorl	$17,%ecx
2141	addl	76(%esp),%ebx
2142	shrl	$10,%edi
2143	addl	48(%esp),%ebx
2144	movl	%edx,%esi
2145	xorl	%ecx,%edi
2146	movl	8(%esp),%ecx
2147	rorl	$14,%edx
2148	addl	%edi,%ebx
2149	movl	12(%esp),%edi
2150	xorl	%esi,%edx
2151	movl	%ebx,76(%esp)
2152	xorl	%edi,%ecx
2153	rorl	$5,%edx
2154	andl	%esi,%ecx
2155	movl	%esi,4(%esp)
2156	xorl	%esi,%edx
2157	addl	16(%esp),%ebx
2158	xorl	%ecx,%edi
2159	rorl	$6,%edx
2160	movl	%ebp,%esi
2161	addl	%edi,%ebx
2162	rorl	$9,%esi
2163	movl	%ebp,%ecx
2164	movl	24(%esp),%edi
2165	xorl	%ebp,%esi
2166	movl	%ebp,20(%esp)
2167	xorl	%edi,%ebp
2168	rorl	$11,%esi
2169	andl	%ebp,%eax
2170	leal	3345764771(%ebx,%edx,1),%edx
2171	xorl	%ecx,%esi
2172	xorl	%edi,%eax
2173	movl	84(%esp),%ecx
2174	rorl	$2,%esi
2175	addl	%edx,%eax
2176	addl	(%esp),%edx
2177	addl	%esi,%eax
2178	movl	72(%esp),%esi
2179	movl	%ecx,%ebx
2180	rorl	$11,%ecx
2181	movl	%esi,%edi
2182	rorl	$2,%esi
2183	xorl	%ebx,%ecx
2184	shrl	$3,%ebx
2185	rorl	$7,%ecx
2186	xorl	%edi,%esi
2187	xorl	%ecx,%ebx
2188	rorl	$17,%esi
2189	addl	80(%esp),%ebx
2190	shrl	$10,%edi
2191	addl	52(%esp),%ebx
2192	movl	%edx,%ecx
2193	xorl	%esi,%edi
2194	movl	4(%esp),%esi
2195	rorl	$14,%edx
2196	addl	%edi,%ebx
2197	movl	8(%esp),%edi
2198	xorl	%ecx,%edx
2199	movl	%ebx,80(%esp)
2200	xorl	%edi,%esi
2201	rorl	$5,%edx
2202	andl	%ecx,%esi
2203	movl	%ecx,(%esp)
2204	xorl	%ecx,%edx
2205	addl	12(%esp),%ebx
2206	xorl	%esi,%edi
2207	rorl	$6,%edx
2208	movl	%eax,%ecx
2209	addl	%edi,%ebx
2210	rorl	$9,%ecx
2211	movl	%eax,%esi
2212	movl	20(%esp),%edi
2213	xorl	%eax,%ecx
2214	movl	%eax,16(%esp)
2215	xorl	%edi,%eax
2216	rorl	$11,%ecx
2217	andl	%eax,%ebp
2218	leal	3516065817(%ebx,%edx,1),%edx
2219	xorl	%esi,%ecx
2220	xorl	%edi,%ebp
2221	movl	88(%esp),%esi
2222	rorl	$2,%ecx
2223	addl	%edx,%ebp
2224	addl	28(%esp),%edx
2225	addl	%ecx,%ebp
2226	movl	76(%esp),%ecx
2227	movl	%esi,%ebx
2228	rorl	$11,%esi
2229	movl	%ecx,%edi
2230	rorl	$2,%ecx
2231	xorl	%ebx,%esi
2232	shrl	$3,%ebx
2233	rorl	$7,%esi
2234	xorl	%edi,%ecx
2235	xorl	%esi,%ebx
2236	rorl	$17,%ecx
2237	addl	84(%esp),%ebx
2238	shrl	$10,%edi
2239	addl	56(%esp),%ebx
2240	movl	%edx,%esi
2241	xorl	%ecx,%edi
2242	movl	(%esp),%ecx
2243	rorl	$14,%edx
2244	addl	%edi,%ebx
2245	movl	4(%esp),%edi
2246	xorl	%esi,%edx
2247	movl	%ebx,84(%esp)
2248	xorl	%edi,%ecx
2249	rorl	$5,%edx
2250	andl	%esi,%ecx
2251	movl	%esi,28(%esp)
2252	xorl	%esi,%edx
2253	addl	8(%esp),%ebx
2254	xorl	%ecx,%edi
2255	rorl	$6,%edx
2256	movl	%ebp,%esi
2257	addl	%edi,%ebx
2258	rorl	$9,%esi
2259	movl	%ebp,%ecx
2260	movl	16(%esp),%edi
2261	xorl	%ebp,%esi
2262	movl	%ebp,12(%esp)
2263	xorl	%edi,%ebp
2264	rorl	$11,%esi
2265	andl	%ebp,%eax
2266	leal	3600352804(%ebx,%edx,1),%edx
2267	xorl	%ecx,%esi
2268	xorl	%edi,%eax
2269	movl	92(%esp),%ecx
2270	rorl	$2,%esi
2271	addl	%edx,%eax
2272	addl	24(%esp),%edx
2273	addl	%esi,%eax
2274	movl	80(%esp),%esi
2275	movl	%ecx,%ebx
2276	rorl	$11,%ecx
2277	movl	%esi,%edi
2278	rorl	$2,%esi
2279	xorl	%ebx,%ecx
2280	shrl	$3,%ebx
2281	rorl	$7,%ecx
2282	xorl	%edi,%esi
2283	xorl	%ecx,%ebx
2284	rorl	$17,%esi
2285	addl	88(%esp),%ebx
2286	shrl	$10,%edi
2287	addl	60(%esp),%ebx
2288	movl	%edx,%ecx
2289	xorl	%esi,%edi
2290	movl	28(%esp),%esi
2291	rorl	$14,%edx
2292	addl	%edi,%ebx
2293	movl	(%esp),%edi
2294	xorl	%ecx,%edx
2295	movl	%ebx,88(%esp)
2296	xorl	%edi,%esi
2297	rorl	$5,%edx
2298	andl	%ecx,%esi
2299	movl	%ecx,24(%esp)
2300	xorl	%ecx,%edx
2301	addl	4(%esp),%ebx
2302	xorl	%esi,%edi
2303	rorl	$6,%edx
2304	movl	%eax,%ecx
2305	addl	%edi,%ebx
2306	rorl	$9,%ecx
2307	movl	%eax,%esi
2308	movl	12(%esp),%edi
2309	xorl	%eax,%ecx
2310	movl	%eax,8(%esp)
2311	xorl	%edi,%eax
2312	rorl	$11,%ecx
2313	andl	%eax,%ebp
2314	leal	4094571909(%ebx,%edx,1),%edx
2315	xorl	%esi,%ecx
2316	xorl	%edi,%ebp
2317	movl	32(%esp),%esi
2318	rorl	$2,%ecx
2319	addl	%edx,%ebp
2320	addl	20(%esp),%edx
2321	addl	%ecx,%ebp
2322	movl	84(%esp),%ecx
2323	movl	%esi,%ebx
2324	rorl	$11,%esi
2325	movl	%ecx,%edi
2326	rorl	$2,%ecx
2327	xorl	%ebx,%esi
2328	shrl	$3,%ebx
2329	rorl	$7,%esi
2330	xorl	%edi,%ecx
2331	xorl	%esi,%ebx
2332	rorl	$17,%ecx
2333	addl	92(%esp),%ebx
2334	shrl	$10,%edi
2335	addl	64(%esp),%ebx
2336	movl	%edx,%esi
2337	xorl	%ecx,%edi
2338	movl	24(%esp),%ecx
2339	rorl	$14,%edx
2340	addl	%edi,%ebx
2341	movl	28(%esp),%edi
2342	xorl	%esi,%edx
2343	movl	%ebx,92(%esp)
2344	xorl	%edi,%ecx
2345	rorl	$5,%edx
2346	andl	%esi,%ecx
2347	movl	%esi,20(%esp)
2348	xorl	%esi,%edx
2349	addl	(%esp),%ebx
2350	xorl	%ecx,%edi
2351	rorl	$6,%edx
2352	movl	%ebp,%esi
2353	addl	%edi,%ebx
2354	rorl	$9,%esi
2355	movl	%ebp,%ecx
2356	movl	8(%esp),%edi
2357	xorl	%ebp,%esi
2358	movl	%ebp,4(%esp)
2359	xorl	%edi,%ebp
2360	rorl	$11,%esi
2361	andl	%ebp,%eax
2362	leal	275423344(%ebx,%edx,1),%edx
2363	xorl	%ecx,%esi
2364	xorl	%edi,%eax
2365	movl	36(%esp),%ecx
2366	rorl	$2,%esi
2367	addl	%edx,%eax
2368	addl	16(%esp),%edx
2369	addl	%esi,%eax
2370	movl	88(%esp),%esi
2371	movl	%ecx,%ebx
2372	rorl	$11,%ecx
2373	movl	%esi,%edi
2374	rorl	$2,%esi
2375	xorl	%ebx,%ecx
2376	shrl	$3,%ebx
2377	rorl	$7,%ecx
2378	xorl	%edi,%esi
2379	xorl	%ecx,%ebx
2380	rorl	$17,%esi
2381	addl	32(%esp),%ebx
2382	shrl	$10,%edi
2383	addl	68(%esp),%ebx
2384	movl	%edx,%ecx
2385	xorl	%esi,%edi
2386	movl	20(%esp),%esi
2387	rorl	$14,%edx
2388	addl	%edi,%ebx
2389	movl	24(%esp),%edi
2390	xorl	%ecx,%edx
2391	movl	%ebx,32(%esp)
2392	xorl	%edi,%esi
2393	rorl	$5,%edx
2394	andl	%ecx,%esi
2395	movl	%ecx,16(%esp)
2396	xorl	%ecx,%edx
2397	addl	28(%esp),%ebx
2398	xorl	%esi,%edi
2399	rorl	$6,%edx
2400	movl	%eax,%ecx
2401	addl	%edi,%ebx
2402	rorl	$9,%ecx
2403	movl	%eax,%esi
2404	movl	4(%esp),%edi
2405	xorl	%eax,%ecx
2406	movl	%eax,(%esp)
2407	xorl	%edi,%eax
2408	rorl	$11,%ecx
2409	andl	%eax,%ebp
2410	leal	430227734(%ebx,%edx,1),%edx
2411	xorl	%esi,%ecx
2412	xorl	%edi,%ebp
2413	movl	40(%esp),%esi
2414	rorl	$2,%ecx
2415	addl	%edx,%ebp
2416	addl	12(%esp),%edx
2417	addl	%ecx,%ebp
2418	movl	92(%esp),%ecx
2419	movl	%esi,%ebx
2420	rorl	$11,%esi
2421	movl	%ecx,%edi
2422	rorl	$2,%ecx
2423	xorl	%ebx,%esi
2424	shrl	$3,%ebx
2425	rorl	$7,%esi
2426	xorl	%edi,%ecx
2427	xorl	%esi,%ebx
2428	rorl	$17,%ecx
2429	addl	36(%esp),%ebx
2430	shrl	$10,%edi
2431	addl	72(%esp),%ebx
2432	movl	%edx,%esi
2433	xorl	%ecx,%edi
2434	movl	16(%esp),%ecx
2435	rorl	$14,%edx
2436	addl	%edi,%ebx
2437	movl	20(%esp),%edi
2438	xorl	%esi,%edx
2439	movl	%ebx,36(%esp)
2440	xorl	%edi,%ecx
2441	rorl	$5,%edx
2442	andl	%esi,%ecx
2443	movl	%esi,12(%esp)
2444	xorl	%esi,%edx
2445	addl	24(%esp),%ebx
2446	xorl	%ecx,%edi
2447	rorl	$6,%edx
2448	movl	%ebp,%esi
2449	addl	%edi,%ebx
2450	rorl	$9,%esi
2451	movl	%ebp,%ecx
2452	movl	(%esp),%edi
2453	xorl	%ebp,%esi
2454	movl	%ebp,28(%esp)
2455	xorl	%edi,%ebp
2456	rorl	$11,%esi
2457	andl	%ebp,%eax
2458	leal	506948616(%ebx,%edx,1),%edx
2459	xorl	%ecx,%esi
2460	xorl	%edi,%eax
2461	movl	44(%esp),%ecx
2462	rorl	$2,%esi
2463	addl	%edx,%eax
2464	addl	8(%esp),%edx
2465	addl	%esi,%eax
2466	movl	32(%esp),%esi
2467	movl	%ecx,%ebx
2468	rorl	$11,%ecx
2469	movl	%esi,%edi
2470	rorl	$2,%esi
2471	xorl	%ebx,%ecx
2472	shrl	$3,%ebx
2473	rorl	$7,%ecx
2474	xorl	%edi,%esi
2475	xorl	%ecx,%ebx
2476	rorl	$17,%esi
2477	addl	40(%esp),%ebx
2478	shrl	$10,%edi
2479	addl	76(%esp),%ebx
2480	movl	%edx,%ecx
2481	xorl	%esi,%edi
2482	movl	12(%esp),%esi
2483	rorl	$14,%edx
2484	addl	%edi,%ebx
2485	movl	16(%esp),%edi
2486	xorl	%ecx,%edx
2487	movl	%ebx,40(%esp)
2488	xorl	%edi,%esi
2489	rorl	$5,%edx
2490	andl	%ecx,%esi
2491	movl	%ecx,8(%esp)
2492	xorl	%ecx,%edx
2493	addl	20(%esp),%ebx
2494	xorl	%esi,%edi
2495	rorl	$6,%edx
2496	movl	%eax,%ecx
2497	addl	%edi,%ebx
2498	rorl	$9,%ecx
2499	movl	%eax,%esi
2500	movl	28(%esp),%edi
2501	xorl	%eax,%ecx
2502	movl	%eax,24(%esp)
2503	xorl	%edi,%eax
2504	rorl	$11,%ecx
2505	andl	%eax,%ebp
2506	leal	659060556(%ebx,%edx,1),%edx
2507	xorl	%esi,%ecx
2508	xorl	%edi,%ebp
2509	movl	48(%esp),%esi
2510	rorl	$2,%ecx
2511	addl	%edx,%ebp
2512	addl	4(%esp),%edx
2513	addl	%ecx,%ebp
2514	movl	36(%esp),%ecx
2515	movl	%esi,%ebx
2516	rorl	$11,%esi
2517	movl	%ecx,%edi
2518	rorl	$2,%ecx
2519	xorl	%ebx,%esi
2520	shrl	$3,%ebx
2521	rorl	$7,%esi
2522	xorl	%edi,%ecx
2523	xorl	%esi,%ebx
2524	rorl	$17,%ecx
2525	addl	44(%esp),%ebx
2526	shrl	$10,%edi
2527	addl	80(%esp),%ebx
2528	movl	%edx,%esi
2529	xorl	%ecx,%edi
2530	movl	8(%esp),%ecx
2531	rorl	$14,%edx
2532	addl	%edi,%ebx
2533	movl	12(%esp),%edi
2534	xorl	%esi,%edx
2535	movl	%ebx,44(%esp)
2536	xorl	%edi,%ecx
2537	rorl	$5,%edx
2538	andl	%esi,%ecx
2539	movl	%esi,4(%esp)
2540	xorl	%esi,%edx
2541	addl	16(%esp),%ebx
2542	xorl	%ecx,%edi
2543	rorl	$6,%edx
2544	movl	%ebp,%esi
2545	addl	%edi,%ebx
2546	rorl	$9,%esi
2547	movl	%ebp,%ecx
2548	movl	24(%esp),%edi
2549	xorl	%ebp,%esi
2550	movl	%ebp,20(%esp)
2551	xorl	%edi,%ebp
2552	rorl	$11,%esi
2553	andl	%ebp,%eax
2554	leal	883997877(%ebx,%edx,1),%edx
2555	xorl	%ecx,%esi
2556	xorl	%edi,%eax
2557	movl	52(%esp),%ecx
2558	rorl	$2,%esi
2559	addl	%edx,%eax
2560	addl	(%esp),%edx
2561	addl	%esi,%eax
2562	movl	40(%esp),%esi
2563	movl	%ecx,%ebx
2564	rorl	$11,%ecx
2565	movl	%esi,%edi
2566	rorl	$2,%esi
2567	xorl	%ebx,%ecx
2568	shrl	$3,%ebx
2569	rorl	$7,%ecx
2570	xorl	%edi,%esi
2571	xorl	%ecx,%ebx
2572	rorl	$17,%esi
2573	addl	48(%esp),%ebx
2574	shrl	$10,%edi
2575	addl	84(%esp),%ebx
2576	movl	%edx,%ecx
2577	xorl	%esi,%edi
2578	movl	4(%esp),%esi
2579	rorl	$14,%edx
2580	addl	%edi,%ebx
2581	movl	8(%esp),%edi
2582	xorl	%ecx,%edx
2583	movl	%ebx,48(%esp)
2584	xorl	%edi,%esi
2585	rorl	$5,%edx
2586	andl	%ecx,%esi
2587	movl	%ecx,(%esp)
2588	xorl	%ecx,%edx
2589	addl	12(%esp),%ebx
2590	xorl	%esi,%edi
2591	rorl	$6,%edx
2592	movl	%eax,%ecx
2593	addl	%edi,%ebx
2594	rorl	$9,%ecx
2595	movl	%eax,%esi
2596	movl	20(%esp),%edi
2597	xorl	%eax,%ecx
2598	movl	%eax,16(%esp)
2599	xorl	%edi,%eax
2600	rorl	$11,%ecx
2601	andl	%eax,%ebp
2602	leal	958139571(%ebx,%edx,1),%edx
2603	xorl	%esi,%ecx
2604	xorl	%edi,%ebp
2605	movl	56(%esp),%esi
2606	rorl	$2,%ecx
2607	addl	%edx,%ebp
2608	addl	28(%esp),%edx
2609	addl	%ecx,%ebp
2610	movl	44(%esp),%ecx
2611	movl	%esi,%ebx
2612	rorl	$11,%esi
2613	movl	%ecx,%edi
2614	rorl	$2,%ecx
2615	xorl	%ebx,%esi
2616	shrl	$3,%ebx
2617	rorl	$7,%esi
2618	xorl	%edi,%ecx
2619	xorl	%esi,%ebx
2620	rorl	$17,%ecx
2621	addl	52(%esp),%ebx
2622	shrl	$10,%edi
2623	addl	88(%esp),%ebx
2624	movl	%edx,%esi
2625	xorl	%ecx,%edi
2626	movl	(%esp),%ecx
2627	rorl	$14,%edx
2628	addl	%edi,%ebx
2629	movl	4(%esp),%edi
2630	xorl	%esi,%edx
2631	movl	%ebx,52(%esp)
2632	xorl	%edi,%ecx
2633	rorl	$5,%edx
2634	andl	%esi,%ecx
2635	movl	%esi,28(%esp)
2636	xorl	%esi,%edx
2637	addl	8(%esp),%ebx
2638	xorl	%ecx,%edi
2639	rorl	$6,%edx
2640	movl	%ebp,%esi
2641	addl	%edi,%ebx
2642	rorl	$9,%esi
2643	movl	%ebp,%ecx
2644	movl	16(%esp),%edi
2645	xorl	%ebp,%esi
2646	movl	%ebp,12(%esp)
2647	xorl	%edi,%ebp
2648	rorl	$11,%esi
2649	andl	%ebp,%eax
2650	leal	1322822218(%ebx,%edx,1),%edx
2651	xorl	%ecx,%esi
2652	xorl	%edi,%eax
2653	movl	60(%esp),%ecx
2654	rorl	$2,%esi
2655	addl	%edx,%eax
2656	addl	24(%esp),%edx
2657	addl	%esi,%eax
2658	movl	48(%esp),%esi
2659	movl	%ecx,%ebx
2660	rorl	$11,%ecx
2661	movl	%esi,%edi
2662	rorl	$2,%esi
2663	xorl	%ebx,%ecx
2664	shrl	$3,%ebx
2665	rorl	$7,%ecx
2666	xorl	%edi,%esi
2667	xorl	%ecx,%ebx
2668	rorl	$17,%esi
2669	addl	56(%esp),%ebx
2670	shrl	$10,%edi
2671	addl	92(%esp),%ebx
2672	movl	%edx,%ecx
2673	xorl	%esi,%edi
2674	movl	28(%esp),%esi
2675	rorl	$14,%edx
2676	addl	%edi,%ebx
2677	movl	(%esp),%edi
2678	xorl	%ecx,%edx
2679	movl	%ebx,56(%esp)
2680	xorl	%edi,%esi
2681	rorl	$5,%edx
2682	andl	%ecx,%esi
2683	movl	%ecx,24(%esp)
2684	xorl	%ecx,%edx
2685	addl	4(%esp),%ebx
2686	xorl	%esi,%edi
2687	rorl	$6,%edx
2688	movl	%eax,%ecx
2689	addl	%edi,%ebx
2690	rorl	$9,%ecx
2691	movl	%eax,%esi
2692	movl	12(%esp),%edi
2693	xorl	%eax,%ecx
2694	movl	%eax,8(%esp)
2695	xorl	%edi,%eax
2696	rorl	$11,%ecx
2697	andl	%eax,%ebp
2698	leal	1537002063(%ebx,%edx,1),%edx
2699	xorl	%esi,%ecx
2700	xorl	%edi,%ebp
2701	movl	64(%esp),%esi
2702	rorl	$2,%ecx
2703	addl	%edx,%ebp
2704	addl	20(%esp),%edx
2705	addl	%ecx,%ebp
2706	movl	52(%esp),%ecx
2707	movl	%esi,%ebx
2708	rorl	$11,%esi
2709	movl	%ecx,%edi
2710	rorl	$2,%ecx
2711	xorl	%ebx,%esi
2712	shrl	$3,%ebx
2713	rorl	$7,%esi
2714	xorl	%edi,%ecx
2715	xorl	%esi,%ebx
2716	rorl	$17,%ecx
2717	addl	60(%esp),%ebx
2718	shrl	$10,%edi
2719	addl	32(%esp),%ebx
2720	movl	%edx,%esi
2721	xorl	%ecx,%edi
2722	movl	24(%esp),%ecx
2723	rorl	$14,%edx
2724	addl	%edi,%ebx
2725	movl	28(%esp),%edi
2726	xorl	%esi,%edx
2727	movl	%ebx,60(%esp)
2728	xorl	%edi,%ecx
2729	rorl	$5,%edx
2730	andl	%esi,%ecx
2731	movl	%esi,20(%esp)
2732	xorl	%esi,%edx
2733	addl	(%esp),%ebx
2734	xorl	%ecx,%edi
2735	rorl	$6,%edx
2736	movl	%ebp,%esi
2737	addl	%edi,%ebx
2738	rorl	$9,%esi
2739	movl	%ebp,%ecx
2740	movl	8(%esp),%edi
2741	xorl	%ebp,%esi
2742	movl	%ebp,4(%esp)
2743	xorl	%edi,%ebp
2744	rorl	$11,%esi
2745	andl	%ebp,%eax
2746	leal	1747873779(%ebx,%edx,1),%edx
2747	xorl	%ecx,%esi
2748	xorl	%edi,%eax
2749	movl	68(%esp),%ecx
2750	rorl	$2,%esi
2751	addl	%edx,%eax
2752	addl	16(%esp),%edx
2753	addl	%esi,%eax
2754	movl	56(%esp),%esi
2755	movl	%ecx,%ebx
2756	rorl	$11,%ecx
2757	movl	%esi,%edi
2758	rorl	$2,%esi
2759	xorl	%ebx,%ecx
2760	shrl	$3,%ebx
2761	rorl	$7,%ecx
2762	xorl	%edi,%esi
2763	xorl	%ecx,%ebx
2764	rorl	$17,%esi
2765	addl	64(%esp),%ebx
2766	shrl	$10,%edi
2767	addl	36(%esp),%ebx
2768	movl	%edx,%ecx
2769	xorl	%esi,%edi
2770	movl	20(%esp),%esi
2771	rorl	$14,%edx
2772	addl	%edi,%ebx
2773	movl	24(%esp),%edi
2774	xorl	%ecx,%edx
2775	movl	%ebx,64(%esp)
2776	xorl	%edi,%esi
2777	rorl	$5,%edx
2778	andl	%ecx,%esi
2779	movl	%ecx,16(%esp)
2780	xorl	%ecx,%edx
2781	addl	28(%esp),%ebx
2782	xorl	%esi,%edi
2783	rorl	$6,%edx
2784	movl	%eax,%ecx
2785	addl	%edi,%ebx
2786	rorl	$9,%ecx
2787	movl	%eax,%esi
2788	movl	4(%esp),%edi
2789	xorl	%eax,%ecx
2790	movl	%eax,(%esp)
2791	xorl	%edi,%eax
2792	rorl	$11,%ecx
2793	andl	%eax,%ebp
2794	leal	1955562222(%ebx,%edx,1),%edx
2795	xorl	%esi,%ecx
2796	xorl	%edi,%ebp
2797	movl	72(%esp),%esi
2798	rorl	$2,%ecx
2799	addl	%edx,%ebp
2800	addl	12(%esp),%edx
2801	addl	%ecx,%ebp
2802	movl	60(%esp),%ecx
2803	movl	%esi,%ebx
2804	rorl	$11,%esi
2805	movl	%ecx,%edi
2806	rorl	$2,%ecx
2807	xorl	%ebx,%esi
2808	shrl	$3,%ebx
2809	rorl	$7,%esi
2810	xorl	%edi,%ecx
2811	xorl	%esi,%ebx
2812	rorl	$17,%ecx
2813	addl	68(%esp),%ebx
2814	shrl	$10,%edi
2815	addl	40(%esp),%ebx
2816	movl	%edx,%esi
2817	xorl	%ecx,%edi
2818	movl	16(%esp),%ecx
2819	rorl	$14,%edx
2820	addl	%edi,%ebx
2821	movl	20(%esp),%edi
2822	xorl	%esi,%edx
2823	movl	%ebx,68(%esp)
2824	xorl	%edi,%ecx
2825	rorl	$5,%edx
2826	andl	%esi,%ecx
2827	movl	%esi,12(%esp)
2828	xorl	%esi,%edx
2829	addl	24(%esp),%ebx
2830	xorl	%ecx,%edi
2831	rorl	$6,%edx
2832	movl	%ebp,%esi
2833	addl	%edi,%ebx
2834	rorl	$9,%esi
2835	movl	%ebp,%ecx
2836	movl	(%esp),%edi
2837	xorl	%ebp,%esi
2838	movl	%ebp,28(%esp)
2839	xorl	%edi,%ebp
2840	rorl	$11,%esi
2841	andl	%ebp,%eax
2842	leal	2024104815(%ebx,%edx,1),%edx
2843	xorl	%ecx,%esi
2844	xorl	%edi,%eax
2845	movl	76(%esp),%ecx
2846	rorl	$2,%esi
2847	addl	%edx,%eax
2848	addl	8(%esp),%edx
2849	addl	%esi,%eax
2850	movl	64(%esp),%esi
2851	movl	%ecx,%ebx
2852	rorl	$11,%ecx
2853	movl	%esi,%edi
2854	rorl	$2,%esi
2855	xorl	%ebx,%ecx
2856	shrl	$3,%ebx
2857	rorl	$7,%ecx
2858	xorl	%edi,%esi
2859	xorl	%ecx,%ebx
2860	rorl	$17,%esi
2861	addl	72(%esp),%ebx
2862	shrl	$10,%edi
2863	addl	44(%esp),%ebx
2864	movl	%edx,%ecx
2865	xorl	%esi,%edi
2866	movl	12(%esp),%esi
2867	rorl	$14,%edx
2868	addl	%edi,%ebx
2869	movl	16(%esp),%edi
2870	xorl	%ecx,%edx
2871	movl	%ebx,72(%esp)
2872	xorl	%edi,%esi
2873	rorl	$5,%edx
2874	andl	%ecx,%esi
2875	movl	%ecx,8(%esp)
2876	xorl	%ecx,%edx
2877	addl	20(%esp),%ebx
2878	xorl	%esi,%edi
2879	rorl	$6,%edx
2880	movl	%eax,%ecx
2881	addl	%edi,%ebx
2882	rorl	$9,%ecx
2883	movl	%eax,%esi
2884	movl	28(%esp),%edi
2885	xorl	%eax,%ecx
2886	movl	%eax,24(%esp)
2887	xorl	%edi,%eax
2888	rorl	$11,%ecx
2889	andl	%eax,%ebp
2890	leal	2227730452(%ebx,%edx,1),%edx
2891	xorl	%esi,%ecx
2892	xorl	%edi,%ebp
2893	movl	80(%esp),%esi
2894	rorl	$2,%ecx
2895	addl	%edx,%ebp
2896	addl	4(%esp),%edx
2897	addl	%ecx,%ebp
2898	movl	68(%esp),%ecx
2899	movl	%esi,%ebx
2900	rorl	$11,%esi
2901	movl	%ecx,%edi
2902	rorl	$2,%ecx
2903	xorl	%ebx,%esi
2904	shrl	$3,%ebx
2905	rorl	$7,%esi
2906	xorl	%edi,%ecx
2907	xorl	%esi,%ebx
2908	rorl	$17,%ecx
2909	addl	76(%esp),%ebx
2910	shrl	$10,%edi
2911	addl	48(%esp),%ebx
2912	movl	%edx,%esi
2913	xorl	%ecx,%edi
2914	movl	8(%esp),%ecx
2915	rorl	$14,%edx
2916	addl	%edi,%ebx
2917	movl	12(%esp),%edi
2918	xorl	%esi,%edx
2919	movl	%ebx,76(%esp)
2920	xorl	%edi,%ecx
2921	rorl	$5,%edx
2922	andl	%esi,%ecx
2923	movl	%esi,4(%esp)
2924	xorl	%esi,%edx
2925	addl	16(%esp),%ebx
2926	xorl	%ecx,%edi
2927	rorl	$6,%edx
2928	movl	%ebp,%esi
2929	addl	%edi,%ebx
2930	rorl	$9,%esi
2931	movl	%ebp,%ecx
2932	movl	24(%esp),%edi
2933	xorl	%ebp,%esi
2934	movl	%ebp,20(%esp)
2935	xorl	%edi,%ebp
2936	rorl	$11,%esi
2937	andl	%ebp,%eax
2938	leal	2361852424(%ebx,%edx,1),%edx
2939	xorl	%ecx,%esi
2940	xorl	%edi,%eax
2941	movl	84(%esp),%ecx
2942	rorl	$2,%esi
2943	addl	%edx,%eax
2944	addl	(%esp),%edx
2945	addl	%esi,%eax
2946	movl	72(%esp),%esi
2947	movl	%ecx,%ebx
2948	rorl	$11,%ecx
2949	movl	%esi,%edi
2950	rorl	$2,%esi
2951	xorl	%ebx,%ecx
2952	shrl	$3,%ebx
2953	rorl	$7,%ecx
2954	xorl	%edi,%esi
2955	xorl	%ecx,%ebx
2956	rorl	$17,%esi
2957	addl	80(%esp),%ebx
2958	shrl	$10,%edi
2959	addl	52(%esp),%ebx
2960	movl	%edx,%ecx
2961	xorl	%esi,%edi
2962	movl	4(%esp),%esi
2963	rorl	$14,%edx
2964	addl	%edi,%ebx
2965	movl	8(%esp),%edi
2966	xorl	%ecx,%edx
2967	movl	%ebx,80(%esp)
2968	xorl	%edi,%esi
2969	rorl	$5,%edx
2970	andl	%ecx,%esi
2971	movl	%ecx,(%esp)
2972	xorl	%ecx,%edx
2973	addl	12(%esp),%ebx
2974	xorl	%esi,%edi
2975	rorl	$6,%edx
2976	movl	%eax,%ecx
2977	addl	%edi,%ebx
2978	rorl	$9,%ecx
2979	movl	%eax,%esi
2980	movl	20(%esp),%edi
2981	xorl	%eax,%ecx
2982	movl	%eax,16(%esp)
2983	xorl	%edi,%eax
2984	rorl	$11,%ecx
2985	andl	%eax,%ebp
2986	leal	2428436474(%ebx,%edx,1),%edx
2987	xorl	%esi,%ecx
2988	xorl	%edi,%ebp
2989	movl	88(%esp),%esi
2990	rorl	$2,%ecx
2991	addl	%edx,%ebp
2992	addl	28(%esp),%edx
2993	addl	%ecx,%ebp
2994	movl	76(%esp),%ecx
2995	movl	%esi,%ebx
2996	rorl	$11,%esi
2997	movl	%ecx,%edi
2998	rorl	$2,%ecx
2999	xorl	%ebx,%esi
3000	shrl	$3,%ebx
3001	rorl	$7,%esi
3002	xorl	%edi,%ecx
3003	xorl	%esi,%ebx
3004	rorl	$17,%ecx
3005	addl	84(%esp),%ebx
3006	shrl	$10,%edi
3007	addl	56(%esp),%ebx
3008	movl	%edx,%esi
3009	xorl	%ecx,%edi
3010	movl	(%esp),%ecx
3011	rorl	$14,%edx
3012	addl	%edi,%ebx
3013	movl	4(%esp),%edi
3014	xorl	%esi,%edx
3015	movl	%ebx,84(%esp)
3016	xorl	%edi,%ecx
3017	rorl	$5,%edx
3018	andl	%esi,%ecx
3019	movl	%esi,28(%esp)
3020	xorl	%esi,%edx
3021	addl	8(%esp),%ebx
3022	xorl	%ecx,%edi
3023	rorl	$6,%edx
3024	movl	%ebp,%esi
3025	addl	%edi,%ebx
3026	rorl	$9,%esi
3027	movl	%ebp,%ecx
3028	movl	16(%esp),%edi
3029	xorl	%ebp,%esi
3030	movl	%ebp,12(%esp)
3031	xorl	%edi,%ebp
3032	rorl	$11,%esi
3033	andl	%ebp,%eax
3034	leal	2756734187(%ebx,%edx,1),%edx
3035	xorl	%ecx,%esi
3036	xorl	%edi,%eax
3037	movl	92(%esp),%ecx
3038	rorl	$2,%esi
3039	addl	%edx,%eax
3040	addl	24(%esp),%edx
3041	addl	%esi,%eax
3042	movl	80(%esp),%esi
3043	movl	%ecx,%ebx
3044	rorl	$11,%ecx
3045	movl	%esi,%edi
3046	rorl	$2,%esi
3047	xorl	%ebx,%ecx
3048	shrl	$3,%ebx
3049	rorl	$7,%ecx
3050	xorl	%edi,%esi
3051	xorl	%ecx,%ebx
3052	rorl	$17,%esi
3053	addl	88(%esp),%ebx
3054	shrl	$10,%edi
3055	addl	60(%esp),%ebx
3056	movl	%edx,%ecx
3057	xorl	%esi,%edi
3058	movl	28(%esp),%esi
3059	rorl	$14,%edx
3060	addl	%edi,%ebx
3061	movl	(%esp),%edi
3062	xorl	%ecx,%edx
3063	xorl	%edi,%esi
3064	rorl	$5,%edx
3065	andl	%ecx,%esi
3066	movl	%ecx,24(%esp)
3067	xorl	%ecx,%edx
3068	addl	4(%esp),%ebx
3069	xorl	%esi,%edi
3070	rorl	$6,%edx
3071	movl	%eax,%ecx
3072	addl	%edi,%ebx
3073	rorl	$9,%ecx
3074	movl	%eax,%esi
3075	movl	12(%esp),%edi
3076	xorl	%eax,%ecx
3077	movl	%eax,8(%esp)
3078	xorl	%edi,%eax
3079	rorl	$11,%ecx
3080	andl	%eax,%ebp
3081	leal	3204031479(%ebx,%edx,1),%edx
3082	xorl	%esi,%ecx
3083	xorl	%edi,%ebp
3084	movl	32(%esp),%esi
3085	rorl	$2,%ecx
3086	addl	%edx,%ebp
3087	addl	20(%esp),%edx
3088	addl	%ecx,%ebp
3089	movl	84(%esp),%ecx
3090	movl	%esi,%ebx
3091	rorl	$11,%esi
3092	movl	%ecx,%edi
3093	rorl	$2,%ecx
3094	xorl	%ebx,%esi
3095	shrl	$3,%ebx
3096	rorl	$7,%esi
3097	xorl	%edi,%ecx
3098	xorl	%esi,%ebx
3099	rorl	$17,%ecx
3100	addl	92(%esp),%ebx
3101	shrl	$10,%edi
3102	addl	64(%esp),%ebx
3103	movl	%edx,%esi
3104	xorl	%ecx,%edi
3105	movl	24(%esp),%ecx
3106	rorl	$14,%edx
3107	addl	%edi,%ebx
3108	movl	28(%esp),%edi
3109	xorl	%esi,%edx
3110	xorl	%edi,%ecx
3111	rorl	$5,%edx
3112	andl	%esi,%ecx
3113	movl	%esi,20(%esp)
3114	xorl	%esi,%edx
3115	addl	(%esp),%ebx
3116	xorl	%ecx,%edi
3117	rorl	$6,%edx
3118	movl	%ebp,%esi
3119	addl	%edi,%ebx
3120	rorl	$9,%esi
3121	movl	%ebp,%ecx
3122	movl	8(%esp),%edi
3123	xorl	%ebp,%esi
3124	movl	%ebp,4(%esp)
3125	xorl	%edi,%ebp
3126	rorl	$11,%esi
3127	andl	%ebp,%eax
3128	leal	3329325298(%ebx,%edx,1),%edx
3129	xorl	%ecx,%esi
3130	xorl	%edi,%eax
3131	rorl	$2,%esi
3132	addl	%edx,%eax
3133	addl	16(%esp),%edx
3134	addl	%esi,%eax
3135	movl	96(%esp),%esi
3136	xorl	%edi,%ebp
3137	movl	12(%esp),%ecx
3138	addl	(%esi),%eax
3139	addl	4(%esi),%ebp
3140	addl	8(%esi),%edi
3141	addl	12(%esi),%ecx
3142	movl	%eax,(%esi)
3143	movl	%ebp,4(%esi)
3144	movl	%edi,8(%esi)
3145	movl	%ecx,12(%esi)
3146	movl	%ebp,4(%esp)
3147	xorl	%edi,%ebp
3148	movl	%edi,8(%esp)
3149	movl	%ecx,12(%esp)
3150	movl	20(%esp),%edi
3151	movl	24(%esp),%ebx
3152	movl	28(%esp),%ecx
3153	addl	16(%esi),%edx
3154	addl	20(%esi),%edi
3155	addl	24(%esi),%ebx
3156	addl	28(%esi),%ecx
3157	movl	%edx,16(%esi)
3158	movl	%edi,20(%esi)
3159	movl	%ebx,24(%esi)
3160	movl	%ecx,28(%esi)
3161	movl	%edi,20(%esp)
3162	movl	100(%esp),%edi
3163	movl	%ebx,24(%esp)
3164	movl	%ecx,28(%esp)
3165	cmpl	104(%esp),%edi
3166	jb	L010grand_loop
3167	movl	108(%esp),%esp
3168	popl	%edi
3169	popl	%esi
3170	popl	%ebx
3171	popl	%ebp
3172	ret
3173.align	5,0x90
3174L004shaext:
3175	subl	$32,%esp
3176	movdqu	(%esi),%xmm1
3177	leal	128(%ebp),%ebp
3178	movdqu	16(%esi),%xmm2
3179	movdqa	128(%ebp),%xmm7
3180	pshufd	$27,%xmm1,%xmm0
3181	pshufd	$177,%xmm1,%xmm1
3182	pshufd	$27,%xmm2,%xmm2
3183.byte	102,15,58,15,202,8
3184	punpcklqdq	%xmm0,%xmm2
3185	jmp	L011loop_shaext
3186.align	4,0x90
3187L011loop_shaext:
3188	movdqu	(%edi),%xmm3
3189	movdqu	16(%edi),%xmm4
3190	movdqu	32(%edi),%xmm5
3191.byte	102,15,56,0,223
3192	movdqu	48(%edi),%xmm6
3193	movdqa	%xmm2,16(%esp)
3194	movdqa	-128(%ebp),%xmm0
3195	paddd	%xmm3,%xmm0
3196.byte	102,15,56,0,231
3197.byte	15,56,203,209
3198	pshufd	$14,%xmm0,%xmm0
3199	nop
3200	movdqa	%xmm1,(%esp)
3201.byte	15,56,203,202
3202	movdqa	-112(%ebp),%xmm0
3203	paddd	%xmm4,%xmm0
3204.byte	102,15,56,0,239
3205.byte	15,56,203,209
3206	pshufd	$14,%xmm0,%xmm0
3207	leal	64(%edi),%edi
3208.byte	15,56,204,220
3209.byte	15,56,203,202
3210	movdqa	-96(%ebp),%xmm0
3211	paddd	%xmm5,%xmm0
3212.byte	102,15,56,0,247
3213.byte	15,56,203,209
3214	pshufd	$14,%xmm0,%xmm0
3215	movdqa	%xmm6,%xmm7
3216.byte	102,15,58,15,253,4
3217	nop
3218	paddd	%xmm7,%xmm3
3219.byte	15,56,204,229
3220.byte	15,56,203,202
3221	movdqa	-80(%ebp),%xmm0
3222	paddd	%xmm6,%xmm0
3223.byte	15,56,205,222
3224.byte	15,56,203,209
3225	pshufd	$14,%xmm0,%xmm0
3226	movdqa	%xmm3,%xmm7
3227.byte	102,15,58,15,254,4
3228	nop
3229	paddd	%xmm7,%xmm4
3230.byte	15,56,204,238
3231.byte	15,56,203,202
3232	movdqa	-64(%ebp),%xmm0
3233	paddd	%xmm3,%xmm0
3234.byte	15,56,205,227
3235.byte	15,56,203,209
3236	pshufd	$14,%xmm0,%xmm0
3237	movdqa	%xmm4,%xmm7
3238.byte	102,15,58,15,251,4
3239	nop
3240	paddd	%xmm7,%xmm5
3241.byte	15,56,204,243
3242.byte	15,56,203,202
3243	movdqa	-48(%ebp),%xmm0
3244	paddd	%xmm4,%xmm0
3245.byte	15,56,205,236
3246.byte	15,56,203,209
3247	pshufd	$14,%xmm0,%xmm0
3248	movdqa	%xmm5,%xmm7
3249.byte	102,15,58,15,252,4
3250	nop
3251	paddd	%xmm7,%xmm6
3252.byte	15,56,204,220
3253.byte	15,56,203,202
3254	movdqa	-32(%ebp),%xmm0
3255	paddd	%xmm5,%xmm0
3256.byte	15,56,205,245
3257.byte	15,56,203,209
3258	pshufd	$14,%xmm0,%xmm0
3259	movdqa	%xmm6,%xmm7
3260.byte	102,15,58,15,253,4
3261	nop
3262	paddd	%xmm7,%xmm3
3263.byte	15,56,204,229
3264.byte	15,56,203,202
3265	movdqa	-16(%ebp),%xmm0
3266	paddd	%xmm6,%xmm0
3267.byte	15,56,205,222
3268.byte	15,56,203,209
3269	pshufd	$14,%xmm0,%xmm0
3270	movdqa	%xmm3,%xmm7
3271.byte	102,15,58,15,254,4
3272	nop
3273	paddd	%xmm7,%xmm4
3274.byte	15,56,204,238
3275.byte	15,56,203,202
3276	movdqa	(%ebp),%xmm0
3277	paddd	%xmm3,%xmm0
3278.byte	15,56,205,227
3279.byte	15,56,203,209
3280	pshufd	$14,%xmm0,%xmm0
3281	movdqa	%xmm4,%xmm7
3282.byte	102,15,58,15,251,4
3283	nop
3284	paddd	%xmm7,%xmm5
3285.byte	15,56,204,243
3286.byte	15,56,203,202
3287	movdqa	16(%ebp),%xmm0
3288	paddd	%xmm4,%xmm0
3289.byte	15,56,205,236
3290.byte	15,56,203,209
3291	pshufd	$14,%xmm0,%xmm0
3292	movdqa	%xmm5,%xmm7
3293.byte	102,15,58,15,252,4
3294	nop
3295	paddd	%xmm7,%xmm6
3296.byte	15,56,204,220
3297.byte	15,56,203,202
3298	movdqa	32(%ebp),%xmm0
3299	paddd	%xmm5,%xmm0
3300.byte	15,56,205,245
3301.byte	15,56,203,209
3302	pshufd	$14,%xmm0,%xmm0
3303	movdqa	%xmm6,%xmm7
3304.byte	102,15,58,15,253,4
3305	nop
3306	paddd	%xmm7,%xmm3
3307.byte	15,56,204,229
3308.byte	15,56,203,202
3309	movdqa	48(%ebp),%xmm0
3310	paddd	%xmm6,%xmm0
3311.byte	15,56,205,222
3312.byte	15,56,203,209
3313	pshufd	$14,%xmm0,%xmm0
3314	movdqa	%xmm3,%xmm7
3315.byte	102,15,58,15,254,4
3316	nop
3317	paddd	%xmm7,%xmm4
3318.byte	15,56,204,238
3319.byte	15,56,203,202
3320	movdqa	64(%ebp),%xmm0
3321	paddd	%xmm3,%xmm0
3322.byte	15,56,205,227
3323.byte	15,56,203,209
3324	pshufd	$14,%xmm0,%xmm0
3325	movdqa	%xmm4,%xmm7
3326.byte	102,15,58,15,251,4
3327	nop
3328	paddd	%xmm7,%xmm5
3329.byte	15,56,204,243
3330.byte	15,56,203,202
3331	movdqa	80(%ebp),%xmm0
3332	paddd	%xmm4,%xmm0
3333.byte	15,56,205,236
3334.byte	15,56,203,209
3335	pshufd	$14,%xmm0,%xmm0
3336	movdqa	%xmm5,%xmm7
3337.byte	102,15,58,15,252,4
3338.byte	15,56,203,202
3339	paddd	%xmm7,%xmm6
3340	movdqa	96(%ebp),%xmm0
3341	paddd	%xmm5,%xmm0
3342.byte	15,56,203,209
3343	pshufd	$14,%xmm0,%xmm0
3344.byte	15,56,205,245
3345	movdqa	128(%ebp),%xmm7
3346.byte	15,56,203,202
3347	movdqa	112(%ebp),%xmm0
3348	paddd	%xmm6,%xmm0
3349	nop
3350.byte	15,56,203,209
3351	pshufd	$14,%xmm0,%xmm0
3352	cmpl	%edi,%eax
3353	nop
3354.byte	15,56,203,202
3355	paddd	16(%esp),%xmm2
3356	paddd	(%esp),%xmm1
3357	jnz	L011loop_shaext
3358	pshufd	$177,%xmm2,%xmm2
3359	pshufd	$27,%xmm1,%xmm7
3360	pshufd	$177,%xmm1,%xmm1
3361	punpckhqdq	%xmm2,%xmm1
3362.byte	102,15,58,15,215,8
3363	movl	44(%esp),%esp
3364	movdqu	%xmm1,(%esi)
3365	movdqu	%xmm2,16(%esi)
3366	popl	%edi
3367	popl	%esi
3368	popl	%ebx
3369	popl	%ebp
3370	ret
3371.align	5,0x90
3372L006SSSE3:
3373	leal	-96(%esp),%esp
3374	movl	(%esi),%eax
3375	movl	4(%esi),%ebx
3376	movl	8(%esi),%ecx
3377	movl	12(%esi),%edi
3378	movl	%ebx,4(%esp)
3379	xorl	%ecx,%ebx
3380	movl	%ecx,8(%esp)
3381	movl	%edi,12(%esp)
3382	movl	16(%esi),%edx
3383	movl	20(%esi),%edi
3384	movl	24(%esi),%ecx
3385	movl	28(%esi),%esi
3386	movl	%edi,20(%esp)
3387	movl	100(%esp),%edi
3388	movl	%ecx,24(%esp)
3389	movl	%esi,28(%esp)
3390	movdqa	256(%ebp),%xmm7
3391	jmp	L012grand_ssse3
3392.align	4,0x90
3393L012grand_ssse3:
3394	movdqu	(%edi),%xmm0
3395	movdqu	16(%edi),%xmm1
3396	movdqu	32(%edi),%xmm2
3397	movdqu	48(%edi),%xmm3
3398	addl	$64,%edi
3399.byte	102,15,56,0,199
3400	movl	%edi,100(%esp)
3401.byte	102,15,56,0,207
3402	movdqa	(%ebp),%xmm4
3403.byte	102,15,56,0,215
3404	movdqa	16(%ebp),%xmm5
3405	paddd	%xmm0,%xmm4
3406.byte	102,15,56,0,223
3407	movdqa	32(%ebp),%xmm6
3408	paddd	%xmm1,%xmm5
3409	movdqa	48(%ebp),%xmm7
3410	movdqa	%xmm4,32(%esp)
3411	paddd	%xmm2,%xmm6
3412	movdqa	%xmm5,48(%esp)
3413	paddd	%xmm3,%xmm7
3414	movdqa	%xmm6,64(%esp)
3415	movdqa	%xmm7,80(%esp)
3416	jmp	L013ssse3_00_47
3417.align	4,0x90
3418L013ssse3_00_47:
3419	addl	$64,%ebp
3420	movl	%edx,%ecx
3421	movdqa	%xmm1,%xmm4
3422	rorl	$14,%edx
3423	movl	20(%esp),%esi
3424	movdqa	%xmm3,%xmm7
3425	xorl	%ecx,%edx
3426	movl	24(%esp),%edi
3427.byte	102,15,58,15,224,4
3428	xorl	%edi,%esi
3429	rorl	$5,%edx
3430	andl	%ecx,%esi
3431.byte	102,15,58,15,250,4
3432	movl	%ecx,16(%esp)
3433	xorl	%ecx,%edx
3434	xorl	%esi,%edi
3435	movdqa	%xmm4,%xmm5
3436	rorl	$6,%edx
3437	movl	%eax,%ecx
3438	movdqa	%xmm4,%xmm6
3439	addl	%edi,%edx
3440	movl	4(%esp),%edi
3441	psrld	$3,%xmm4
3442	movl	%eax,%esi
3443	rorl	$9,%ecx
3444	paddd	%xmm7,%xmm0
3445	movl	%eax,(%esp)
3446	xorl	%eax,%ecx
3447	psrld	$7,%xmm6
3448	xorl	%edi,%eax
3449	addl	28(%esp),%edx
3450	rorl	$11,%ecx
3451	andl	%eax,%ebx
3452	pshufd	$250,%xmm3,%xmm7
3453	xorl	%esi,%ecx
3454	addl	32(%esp),%edx
3455	pslld	$14,%xmm5
3456	xorl	%edi,%ebx
3457	rorl	$2,%ecx
3458	pxor	%xmm6,%xmm4
3459	addl	%edx,%ebx
3460	addl	12(%esp),%edx
3461	psrld	$11,%xmm6
3462	addl	%ecx,%ebx
3463	movl	%edx,%ecx
3464	rorl	$14,%edx
3465	pxor	%xmm5,%xmm4
3466	movl	16(%esp),%esi
3467	xorl	%ecx,%edx
3468	pslld	$11,%xmm5
3469	movl	20(%esp),%edi
3470	xorl	%edi,%esi
3471	rorl	$5,%edx
3472	pxor	%xmm6,%xmm4
3473	andl	%ecx,%esi
3474	movl	%ecx,12(%esp)
3475	movdqa	%xmm7,%xmm6
3476	xorl	%ecx,%edx
3477	xorl	%esi,%edi
3478	rorl	$6,%edx
3479	pxor	%xmm5,%xmm4
3480	movl	%ebx,%ecx
3481	addl	%edi,%edx
3482	psrld	$10,%xmm7
3483	movl	(%esp),%edi
3484	movl	%ebx,%esi
3485	rorl	$9,%ecx
3486	paddd	%xmm4,%xmm0
3487	movl	%ebx,28(%esp)
3488	xorl	%ebx,%ecx
3489	psrlq	$17,%xmm6
3490	xorl	%edi,%ebx
3491	addl	24(%esp),%edx
3492	rorl	$11,%ecx
3493	pxor	%xmm6,%xmm7
3494	andl	%ebx,%eax
3495	xorl	%esi,%ecx
3496	psrlq	$2,%xmm6
3497	addl	36(%esp),%edx
3498	xorl	%edi,%eax
3499	rorl	$2,%ecx
3500	pxor	%xmm6,%xmm7
3501	addl	%edx,%eax
3502	addl	8(%esp),%edx
3503	pshufd	$128,%xmm7,%xmm7
3504	addl	%ecx,%eax
3505	movl	%edx,%ecx
3506	rorl	$14,%edx
3507	movl	12(%esp),%esi
3508	xorl	%ecx,%edx
3509	movl	16(%esp),%edi
3510	xorl	%edi,%esi
3511	rorl	$5,%edx
3512	andl	%ecx,%esi
3513	psrldq	$8,%xmm7
3514	movl	%ecx,8(%esp)
3515	xorl	%ecx,%edx
3516	xorl	%esi,%edi
3517	paddd	%xmm7,%xmm0
3518	rorl	$6,%edx
3519	movl	%eax,%ecx
3520	addl	%edi,%edx
3521	movl	28(%esp),%edi
3522	movl	%eax,%esi
3523	rorl	$9,%ecx
3524	movl	%eax,24(%esp)
3525	pshufd	$80,%xmm0,%xmm7
3526	xorl	%eax,%ecx
3527	xorl	%edi,%eax
3528	addl	20(%esp),%edx
3529	movdqa	%xmm7,%xmm6
3530	rorl	$11,%ecx
3531	psrld	$10,%xmm7
3532	andl	%eax,%ebx
3533	psrlq	$17,%xmm6
3534	xorl	%esi,%ecx
3535	addl	40(%esp),%edx
3536	xorl	%edi,%ebx
3537	rorl	$2,%ecx
3538	pxor	%xmm6,%xmm7
3539	addl	%edx,%ebx
3540	addl	4(%esp),%edx
3541	psrlq	$2,%xmm6
3542	addl	%ecx,%ebx
3543	movl	%edx,%ecx
3544	rorl	$14,%edx
3545	pxor	%xmm6,%xmm7
3546	movl	8(%esp),%esi
3547	xorl	%ecx,%edx
3548	movl	12(%esp),%edi
3549	pshufd	$8,%xmm7,%xmm7
3550	xorl	%edi,%esi
3551	rorl	$5,%edx
3552	movdqa	(%ebp),%xmm6
3553	andl	%ecx,%esi
3554	movl	%ecx,4(%esp)
3555	pslldq	$8,%xmm7
3556	xorl	%ecx,%edx
3557	xorl	%esi,%edi
3558	rorl	$6,%edx
3559	movl	%ebx,%ecx
3560	addl	%edi,%edx
3561	movl	24(%esp),%edi
3562	movl	%ebx,%esi
3563	rorl	$9,%ecx
3564	paddd	%xmm7,%xmm0
3565	movl	%ebx,20(%esp)
3566	xorl	%ebx,%ecx
3567	xorl	%edi,%ebx
3568	addl	16(%esp),%edx
3569	paddd	%xmm0,%xmm6
3570	rorl	$11,%ecx
3571	andl	%ebx,%eax
3572	xorl	%esi,%ecx
3573	addl	44(%esp),%edx
3574	xorl	%edi,%eax
3575	rorl	$2,%ecx
3576	addl	%edx,%eax
3577	addl	(%esp),%edx
3578	addl	%ecx,%eax
3579	movdqa	%xmm6,32(%esp)
3580	movl	%edx,%ecx
3581	movdqa	%xmm2,%xmm4
3582	rorl	$14,%edx
3583	movl	4(%esp),%esi
3584	movdqa	%xmm0,%xmm7
3585	xorl	%ecx,%edx
3586	movl	8(%esp),%edi
3587.byte	102,15,58,15,225,4
3588	xorl	%edi,%esi
3589	rorl	$5,%edx
3590	andl	%ecx,%esi
3591.byte	102,15,58,15,251,4
3592	movl	%ecx,(%esp)
3593	xorl	%ecx,%edx
3594	xorl	%esi,%edi
3595	movdqa	%xmm4,%xmm5
3596	rorl	$6,%edx
3597	movl	%eax,%ecx
3598	movdqa	%xmm4,%xmm6
3599	addl	%edi,%edx
3600	movl	20(%esp),%edi
3601	psrld	$3,%xmm4
3602	movl	%eax,%esi
3603	rorl	$9,%ecx
3604	paddd	%xmm7,%xmm1
3605	movl	%eax,16(%esp)
3606	xorl	%eax,%ecx
3607	psrld	$7,%xmm6
3608	xorl	%edi,%eax
3609	addl	12(%esp),%edx
3610	rorl	$11,%ecx
3611	andl	%eax,%ebx
3612	pshufd	$250,%xmm0,%xmm7
3613	xorl	%esi,%ecx
3614	addl	48(%esp),%edx
3615	pslld	$14,%xmm5
3616	xorl	%edi,%ebx
3617	rorl	$2,%ecx
3618	pxor	%xmm6,%xmm4
3619	addl	%edx,%ebx
3620	addl	28(%esp),%edx
3621	psrld	$11,%xmm6
3622	addl	%ecx,%ebx
3623	movl	%edx,%ecx
3624	rorl	$14,%edx
3625	pxor	%xmm5,%xmm4
3626	movl	(%esp),%esi
3627	xorl	%ecx,%edx
3628	pslld	$11,%xmm5
3629	movl	4(%esp),%edi
3630	xorl	%edi,%esi
3631	rorl	$5,%edx
3632	pxor	%xmm6,%xmm4
3633	andl	%ecx,%esi
3634	movl	%ecx,28(%esp)
3635	movdqa	%xmm7,%xmm6
3636	xorl	%ecx,%edx
3637	xorl	%esi,%edi
3638	rorl	$6,%edx
3639	pxor	%xmm5,%xmm4
3640	movl	%ebx,%ecx
3641	addl	%edi,%edx
3642	psrld	$10,%xmm7
3643	movl	16(%esp),%edi
3644	movl	%ebx,%esi
3645	rorl	$9,%ecx
3646	paddd	%xmm4,%xmm1
3647	movl	%ebx,12(%esp)
3648	xorl	%ebx,%ecx
3649	psrlq	$17,%xmm6
3650	xorl	%edi,%ebx
3651	addl	8(%esp),%edx
3652	rorl	$11,%ecx
3653	pxor	%xmm6,%xmm7
3654	andl	%ebx,%eax
3655	xorl	%esi,%ecx
3656	psrlq	$2,%xmm6
3657	addl	52(%esp),%edx
3658	xorl	%edi,%eax
3659	rorl	$2,%ecx
3660	pxor	%xmm6,%xmm7
3661	addl	%edx,%eax
3662	addl	24(%esp),%edx
3663	pshufd	$128,%xmm7,%xmm7
3664	addl	%ecx,%eax
3665	movl	%edx,%ecx
3666	rorl	$14,%edx
3667	movl	28(%esp),%esi
3668	xorl	%ecx,%edx
3669	movl	(%esp),%edi
3670	xorl	%edi,%esi
3671	rorl	$5,%edx
3672	andl	%ecx,%esi
3673	psrldq	$8,%xmm7
3674	movl	%ecx,24(%esp)
3675	xorl	%ecx,%edx
3676	xorl	%esi,%edi
3677	paddd	%xmm7,%xmm1
3678	rorl	$6,%edx
3679	movl	%eax,%ecx
3680	addl	%edi,%edx
3681	movl	12(%esp),%edi
3682	movl	%eax,%esi
3683	rorl	$9,%ecx
3684	movl	%eax,8(%esp)
3685	pshufd	$80,%xmm1,%xmm7
3686	xorl	%eax,%ecx
3687	xorl	%edi,%eax
3688	addl	4(%esp),%edx
3689	movdqa	%xmm7,%xmm6
3690	rorl	$11,%ecx
3691	psrld	$10,%xmm7
3692	andl	%eax,%ebx
3693	psrlq	$17,%xmm6
3694	xorl	%esi,%ecx
3695	addl	56(%esp),%edx
3696	xorl	%edi,%ebx
3697	rorl	$2,%ecx
3698	pxor	%xmm6,%xmm7
3699	addl	%edx,%ebx
3700	addl	20(%esp),%edx
3701	psrlq	$2,%xmm6
3702	addl	%ecx,%ebx
3703	movl	%edx,%ecx
3704	rorl	$14,%edx
3705	pxor	%xmm6,%xmm7
3706	movl	24(%esp),%esi
3707	xorl	%ecx,%edx
3708	movl	28(%esp),%edi
3709	pshufd	$8,%xmm7,%xmm7
3710	xorl	%edi,%esi
3711	rorl	$5,%edx
3712	movdqa	16(%ebp),%xmm6
3713	andl	%ecx,%esi
3714	movl	%ecx,20(%esp)
3715	pslldq	$8,%xmm7
3716	xorl	%ecx,%edx
3717	xorl	%esi,%edi
3718	rorl	$6,%edx
3719	movl	%ebx,%ecx
3720	addl	%edi,%edx
3721	movl	8(%esp),%edi
3722	movl	%ebx,%esi
3723	rorl	$9,%ecx
3724	paddd	%xmm7,%xmm1
3725	movl	%ebx,4(%esp)
3726	xorl	%ebx,%ecx
3727	xorl	%edi,%ebx
3728	addl	(%esp),%edx
3729	paddd	%xmm1,%xmm6
3730	rorl	$11,%ecx
3731	andl	%ebx,%eax
3732	xorl	%esi,%ecx
3733	addl	60(%esp),%edx
3734	xorl	%edi,%eax
3735	rorl	$2,%ecx
3736	addl	%edx,%eax
3737	addl	16(%esp),%edx
3738	addl	%ecx,%eax
3739	movdqa	%xmm6,48(%esp)
3740	movl	%edx,%ecx
3741	movdqa	%xmm3,%xmm4
3742	rorl	$14,%edx
3743	movl	20(%esp),%esi
3744	movdqa	%xmm1,%xmm7
3745	xorl	%ecx,%edx
3746	movl	24(%esp),%edi
3747.byte	102,15,58,15,226,4
3748	xorl	%edi,%esi
3749	rorl	$5,%edx
3750	andl	%ecx,%esi
3751.byte	102,15,58,15,248,4
3752	movl	%ecx,16(%esp)
3753	xorl	%ecx,%edx
3754	xorl	%esi,%edi
3755	movdqa	%xmm4,%xmm5
3756	rorl	$6,%edx
3757	movl	%eax,%ecx
3758	movdqa	%xmm4,%xmm6
3759	addl	%edi,%edx
3760	movl	4(%esp),%edi
3761	psrld	$3,%xmm4
3762	movl	%eax,%esi
3763	rorl	$9,%ecx
3764	paddd	%xmm7,%xmm2
3765	movl	%eax,(%esp)
3766	xorl	%eax,%ecx
3767	psrld	$7,%xmm6
3768	xorl	%edi,%eax
3769	addl	28(%esp),%edx
3770	rorl	$11,%ecx
3771	andl	%eax,%ebx
3772	pshufd	$250,%xmm1,%xmm7
3773	xorl	%esi,%ecx
3774	addl	64(%esp),%edx
3775	pslld	$14,%xmm5
3776	xorl	%edi,%ebx
3777	rorl	$2,%ecx
3778	pxor	%xmm6,%xmm4
3779	addl	%edx,%ebx
3780	addl	12(%esp),%edx
3781	psrld	$11,%xmm6
3782	addl	%ecx,%ebx
3783	movl	%edx,%ecx
3784	rorl	$14,%edx
3785	pxor	%xmm5,%xmm4
3786	movl	16(%esp),%esi
3787	xorl	%ecx,%edx
3788	pslld	$11,%xmm5
3789	movl	20(%esp),%edi
3790	xorl	%edi,%esi
3791	rorl	$5,%edx
3792	pxor	%xmm6,%xmm4
3793	andl	%ecx,%esi
3794	movl	%ecx,12(%esp)
3795	movdqa	%xmm7,%xmm6
3796	xorl	%ecx,%edx
3797	xorl	%esi,%edi
3798	rorl	$6,%edx
3799	pxor	%xmm5,%xmm4
3800	movl	%ebx,%ecx
3801	addl	%edi,%edx
3802	psrld	$10,%xmm7
3803	movl	(%esp),%edi
3804	movl	%ebx,%esi
3805	rorl	$9,%ecx
3806	paddd	%xmm4,%xmm2
3807	movl	%ebx,28(%esp)
3808	xorl	%ebx,%ecx
3809	psrlq	$17,%xmm6
3810	xorl	%edi,%ebx
3811	addl	24(%esp),%edx
3812	rorl	$11,%ecx
3813	pxor	%xmm6,%xmm7
3814	andl	%ebx,%eax
3815	xorl	%esi,%ecx
3816	psrlq	$2,%xmm6
3817	addl	68(%esp),%edx
3818	xorl	%edi,%eax
3819	rorl	$2,%ecx
3820	pxor	%xmm6,%xmm7
3821	addl	%edx,%eax
3822	addl	8(%esp),%edx
3823	pshufd	$128,%xmm7,%xmm7
3824	addl	%ecx,%eax
3825	movl	%edx,%ecx
3826	rorl	$14,%edx
3827	movl	12(%esp),%esi
3828	xorl	%ecx,%edx
3829	movl	16(%esp),%edi
3830	xorl	%edi,%esi
3831	rorl	$5,%edx
3832	andl	%ecx,%esi
3833	psrldq	$8,%xmm7
3834	movl	%ecx,8(%esp)
3835	xorl	%ecx,%edx
3836	xorl	%esi,%edi
3837	paddd	%xmm7,%xmm2
3838	rorl	$6,%edx
3839	movl	%eax,%ecx
3840	addl	%edi,%edx
3841	movl	28(%esp),%edi
3842	movl	%eax,%esi
3843	rorl	$9,%ecx
3844	movl	%eax,24(%esp)
3845	pshufd	$80,%xmm2,%xmm7
3846	xorl	%eax,%ecx
3847	xorl	%edi,%eax
3848	addl	20(%esp),%edx
3849	movdqa	%xmm7,%xmm6
3850	rorl	$11,%ecx
3851	psrld	$10,%xmm7
3852	andl	%eax,%ebx
3853	psrlq	$17,%xmm6
3854	xorl	%esi,%ecx
3855	addl	72(%esp),%edx
3856	xorl	%edi,%ebx
3857	rorl	$2,%ecx
3858	pxor	%xmm6,%xmm7
3859	addl	%edx,%ebx
3860	addl	4(%esp),%edx
3861	psrlq	$2,%xmm6
3862	addl	%ecx,%ebx
3863	movl	%edx,%ecx
3864	rorl	$14,%edx
3865	pxor	%xmm6,%xmm7
3866	movl	8(%esp),%esi
3867	xorl	%ecx,%edx
3868	movl	12(%esp),%edi
3869	pshufd	$8,%xmm7,%xmm7
3870	xorl	%edi,%esi
3871	rorl	$5,%edx
3872	movdqa	32(%ebp),%xmm6
3873	andl	%ecx,%esi
3874	movl	%ecx,4(%esp)
3875	pslldq	$8,%xmm7
3876	xorl	%ecx,%edx
3877	xorl	%esi,%edi
3878	rorl	$6,%edx
3879	movl	%ebx,%ecx
3880	addl	%edi,%edx
3881	movl	24(%esp),%edi
3882	movl	%ebx,%esi
3883	rorl	$9,%ecx
3884	paddd	%xmm7,%xmm2
3885	movl	%ebx,20(%esp)
3886	xorl	%ebx,%ecx
3887	xorl	%edi,%ebx
3888	addl	16(%esp),%edx
3889	paddd	%xmm2,%xmm6
3890	rorl	$11,%ecx
3891	andl	%ebx,%eax
3892	xorl	%esi,%ecx
3893	addl	76(%esp),%edx
3894	xorl	%edi,%eax
3895	rorl	$2,%ecx
3896	addl	%edx,%eax
3897	addl	(%esp),%edx
3898	addl	%ecx,%eax
3899	movdqa	%xmm6,64(%esp)
3900	movl	%edx,%ecx
3901	movdqa	%xmm0,%xmm4
3902	rorl	$14,%edx
3903	movl	4(%esp),%esi
3904	movdqa	%xmm2,%xmm7
3905	xorl	%ecx,%edx
3906	movl	8(%esp),%edi
3907.byte	102,15,58,15,227,4
3908	xorl	%edi,%esi
3909	rorl	$5,%edx
3910	andl	%ecx,%esi
3911.byte	102,15,58,15,249,4
3912	movl	%ecx,(%esp)
3913	xorl	%ecx,%edx
3914	xorl	%esi,%edi
3915	movdqa	%xmm4,%xmm5
3916	rorl	$6,%edx
3917	movl	%eax,%ecx
3918	movdqa	%xmm4,%xmm6
3919	addl	%edi,%edx
3920	movl	20(%esp),%edi
3921	psrld	$3,%xmm4
3922	movl	%eax,%esi
3923	rorl	$9,%ecx
3924	paddd	%xmm7,%xmm3
3925	movl	%eax,16(%esp)
3926	xorl	%eax,%ecx
3927	psrld	$7,%xmm6
3928	xorl	%edi,%eax
3929	addl	12(%esp),%edx
3930	rorl	$11,%ecx
3931	andl	%eax,%ebx
3932	pshufd	$250,%xmm2,%xmm7
3933	xorl	%esi,%ecx
3934	addl	80(%esp),%edx
3935	pslld	$14,%xmm5
3936	xorl	%edi,%ebx
3937	rorl	$2,%ecx
3938	pxor	%xmm6,%xmm4
3939	addl	%edx,%ebx
3940	addl	28(%esp),%edx
3941	psrld	$11,%xmm6
3942	addl	%ecx,%ebx
3943	movl	%edx,%ecx
3944	rorl	$14,%edx
3945	pxor	%xmm5,%xmm4
3946	movl	(%esp),%esi
3947	xorl	%ecx,%edx
3948	pslld	$11,%xmm5
3949	movl	4(%esp),%edi
3950	xorl	%edi,%esi
3951	rorl	$5,%edx
3952	pxor	%xmm6,%xmm4
3953	andl	%ecx,%esi
3954	movl	%ecx,28(%esp)
3955	movdqa	%xmm7,%xmm6
3956	xorl	%ecx,%edx
3957	xorl	%esi,%edi
3958	rorl	$6,%edx
3959	pxor	%xmm5,%xmm4
3960	movl	%ebx,%ecx
3961	addl	%edi,%edx
3962	psrld	$10,%xmm7
3963	movl	16(%esp),%edi
3964	movl	%ebx,%esi
3965	rorl	$9,%ecx
3966	paddd	%xmm4,%xmm3
3967	movl	%ebx,12(%esp)
3968	xorl	%ebx,%ecx
3969	psrlq	$17,%xmm6
3970	xorl	%edi,%ebx
3971	addl	8(%esp),%edx
3972	rorl	$11,%ecx
3973	pxor	%xmm6,%xmm7
3974	andl	%ebx,%eax
3975	xorl	%esi,%ecx
3976	psrlq	$2,%xmm6
3977	addl	84(%esp),%edx
3978	xorl	%edi,%eax
3979	rorl	$2,%ecx
3980	pxor	%xmm6,%xmm7
3981	addl	%edx,%eax
3982	addl	24(%esp),%edx
3983	pshufd	$128,%xmm7,%xmm7
3984	addl	%ecx,%eax
3985	movl	%edx,%ecx
3986	rorl	$14,%edx
3987	movl	28(%esp),%esi
3988	xorl	%ecx,%edx
3989	movl	(%esp),%edi
3990	xorl	%edi,%esi
3991	rorl	$5,%edx
3992	andl	%ecx,%esi
3993	psrldq	$8,%xmm7
3994	movl	%ecx,24(%esp)
3995	xorl	%ecx,%edx
3996	xorl	%esi,%edi
3997	paddd	%xmm7,%xmm3
3998	rorl	$6,%edx
3999	movl	%eax,%ecx
4000	addl	%edi,%edx
4001	movl	12(%esp),%edi
4002	movl	%eax,%esi
4003	rorl	$9,%ecx
4004	movl	%eax,8(%esp)
4005	pshufd	$80,%xmm3,%xmm7
4006	xorl	%eax,%ecx
4007	xorl	%edi,%eax
4008	addl	4(%esp),%edx
4009	movdqa	%xmm7,%xmm6
4010	rorl	$11,%ecx
4011	psrld	$10,%xmm7
4012	andl	%eax,%ebx
4013	psrlq	$17,%xmm6
4014	xorl	%esi,%ecx
4015	addl	88(%esp),%edx
4016	xorl	%edi,%ebx
4017	rorl	$2,%ecx
4018	pxor	%xmm6,%xmm7
4019	addl	%edx,%ebx
4020	addl	20(%esp),%edx
4021	psrlq	$2,%xmm6
4022	addl	%ecx,%ebx
4023	movl	%edx,%ecx
4024	rorl	$14,%edx
4025	pxor	%xmm6,%xmm7
4026	movl	24(%esp),%esi
4027	xorl	%ecx,%edx
4028	movl	28(%esp),%edi
4029	pshufd	$8,%xmm7,%xmm7
4030	xorl	%edi,%esi
4031	rorl	$5,%edx
4032	movdqa	48(%ebp),%xmm6
4033	andl	%ecx,%esi
4034	movl	%ecx,20(%esp)
4035	pslldq	$8,%xmm7
4036	xorl	%ecx,%edx
4037	xorl	%esi,%edi
4038	rorl	$6,%edx
4039	movl	%ebx,%ecx
4040	addl	%edi,%edx
4041	movl	8(%esp),%edi
4042	movl	%ebx,%esi
4043	rorl	$9,%ecx
4044	paddd	%xmm7,%xmm3
4045	movl	%ebx,4(%esp)
4046	xorl	%ebx,%ecx
4047	xorl	%edi,%ebx
4048	addl	(%esp),%edx
4049	paddd	%xmm3,%xmm6
4050	rorl	$11,%ecx
4051	andl	%ebx,%eax
4052	xorl	%esi,%ecx
4053	addl	92(%esp),%edx
4054	xorl	%edi,%eax
4055	rorl	$2,%ecx
4056	addl	%edx,%eax
4057	addl	16(%esp),%edx
4058	addl	%ecx,%eax
4059	movdqa	%xmm6,80(%esp)
4060	cmpl	$66051,64(%ebp)
4061	jne	L013ssse3_00_47
4062	movl	%edx,%ecx
4063	rorl	$14,%edx
4064	movl	20(%esp),%esi
4065	xorl	%ecx,%edx
4066	movl	24(%esp),%edi
4067	xorl	%edi,%esi
4068	rorl	$5,%edx
4069	andl	%ecx,%esi
4070	movl	%ecx,16(%esp)
4071	xorl	%ecx,%edx
4072	xorl	%esi,%edi
4073	rorl	$6,%edx
4074	movl	%eax,%ecx
4075	addl	%edi,%edx
4076	movl	4(%esp),%edi
4077	movl	%eax,%esi
4078	rorl	$9,%ecx
4079	movl	%eax,(%esp)
4080	xorl	%eax,%ecx
4081	xorl	%edi,%eax
4082	addl	28(%esp),%edx
4083	rorl	$11,%ecx
4084	andl	%eax,%ebx
4085	xorl	%esi,%ecx
4086	addl	32(%esp),%edx
4087	xorl	%edi,%ebx
4088	rorl	$2,%ecx
4089	addl	%edx,%ebx
4090	addl	12(%esp),%edx
4091	addl	%ecx,%ebx
4092	movl	%edx,%ecx
4093	rorl	$14,%edx
4094	movl	16(%esp),%esi
4095	xorl	%ecx,%edx
4096	movl	20(%esp),%edi
4097	xorl	%edi,%esi
4098	rorl	$5,%edx
4099	andl	%ecx,%esi
4100	movl	%ecx,12(%esp)
4101	xorl	%ecx,%edx
4102	xorl	%esi,%edi
4103	rorl	$6,%edx
4104	movl	%ebx,%ecx
4105	addl	%edi,%edx
4106	movl	(%esp),%edi
4107	movl	%ebx,%esi
4108	rorl	$9,%ecx
4109	movl	%ebx,28(%esp)
4110	xorl	%ebx,%ecx
4111	xorl	%edi,%ebx
4112	addl	24(%esp),%edx
4113	rorl	$11,%ecx
4114	andl	%ebx,%eax
4115	xorl	%esi,%ecx
4116	addl	36(%esp),%edx
4117	xorl	%edi,%eax
4118	rorl	$2,%ecx
4119	addl	%edx,%eax
4120	addl	8(%esp),%edx
4121	addl	%ecx,%eax
4122	movl	%edx,%ecx
4123	rorl	$14,%edx
4124	movl	12(%esp),%esi
4125	xorl	%ecx,%edx
4126	movl	16(%esp),%edi
4127	xorl	%edi,%esi
4128	rorl	$5,%edx
4129	andl	%ecx,%esi
4130	movl	%ecx,8(%esp)
4131	xorl	%ecx,%edx
4132	xorl	%esi,%edi
4133	rorl	$6,%edx
4134	movl	%eax,%ecx
4135	addl	%edi,%edx
4136	movl	28(%esp),%edi
4137	movl	%eax,%esi
4138	rorl	$9,%ecx
4139	movl	%eax,24(%esp)
4140	xorl	%eax,%ecx
4141	xorl	%edi,%eax
4142	addl	20(%esp),%edx
4143	rorl	$11,%ecx
4144	andl	%eax,%ebx
4145	xorl	%esi,%ecx
4146	addl	40(%esp),%edx
4147	xorl	%edi,%ebx
4148	rorl	$2,%ecx
4149	addl	%edx,%ebx
4150	addl	4(%esp),%edx
4151	addl	%ecx,%ebx
4152	movl	%edx,%ecx
4153	rorl	$14,%edx
4154	movl	8(%esp),%esi
4155	xorl	%ecx,%edx
4156	movl	12(%esp),%edi
4157	xorl	%edi,%esi
4158	rorl	$5,%edx
4159	andl	%ecx,%esi
4160	movl	%ecx,4(%esp)
4161	xorl	%ecx,%edx
4162	xorl	%esi,%edi
4163	rorl	$6,%edx
4164	movl	%ebx,%ecx
4165	addl	%edi,%edx
4166	movl	24(%esp),%edi
4167	movl	%ebx,%esi
4168	rorl	$9,%ecx
4169	movl	%ebx,20(%esp)
4170	xorl	%ebx,%ecx
4171	xorl	%edi,%ebx
4172	addl	16(%esp),%edx
4173	rorl	$11,%ecx
4174	andl	%ebx,%eax
4175	xorl	%esi,%ecx
4176	addl	44(%esp),%edx
4177	xorl	%edi,%eax
4178	rorl	$2,%ecx
4179	addl	%edx,%eax
4180	addl	(%esp),%edx
4181	addl	%ecx,%eax
4182	movl	%edx,%ecx
4183	rorl	$14,%edx
4184	movl	4(%esp),%esi
4185	xorl	%ecx,%edx
4186	movl	8(%esp),%edi
4187	xorl	%edi,%esi
4188	rorl	$5,%edx
4189	andl	%ecx,%esi
4190	movl	%ecx,(%esp)
4191	xorl	%ecx,%edx
4192	xorl	%esi,%edi
4193	rorl	$6,%edx
4194	movl	%eax,%ecx
4195	addl	%edi,%edx
4196	movl	20(%esp),%edi
4197	movl	%eax,%esi
4198	rorl	$9,%ecx
4199	movl	%eax,16(%esp)
4200	xorl	%eax,%ecx
4201	xorl	%edi,%eax
4202	addl	12(%esp),%edx
4203	rorl	$11,%ecx
4204	andl	%eax,%ebx
4205	xorl	%esi,%ecx
4206	addl	48(%esp),%edx
4207	xorl	%edi,%ebx
4208	rorl	$2,%ecx
4209	addl	%edx,%ebx
4210	addl	28(%esp),%edx
4211	addl	%ecx,%ebx
4212	movl	%edx,%ecx
4213	rorl	$14,%edx
4214	movl	(%esp),%esi
4215	xorl	%ecx,%edx
4216	movl	4(%esp),%edi
4217	xorl	%edi,%esi
4218	rorl	$5,%edx
4219	andl	%ecx,%esi
4220	movl	%ecx,28(%esp)
4221	xorl	%ecx,%edx
4222	xorl	%esi,%edi
4223	rorl	$6,%edx
4224	movl	%ebx,%ecx
4225	addl	%edi,%edx
4226	movl	16(%esp),%edi
4227	movl	%ebx,%esi
4228	rorl	$9,%ecx
4229	movl	%ebx,12(%esp)
4230	xorl	%ebx,%ecx
4231	xorl	%edi,%ebx
4232	addl	8(%esp),%edx
4233	rorl	$11,%ecx
4234	andl	%ebx,%eax
4235	xorl	%esi,%ecx
4236	addl	52(%esp),%edx
4237	xorl	%edi,%eax
4238	rorl	$2,%ecx
4239	addl	%edx,%eax
4240	addl	24(%esp),%edx
4241	addl	%ecx,%eax
4242	movl	%edx,%ecx
4243	rorl	$14,%edx
4244	movl	28(%esp),%esi
4245	xorl	%ecx,%edx
4246	movl	(%esp),%edi
4247	xorl	%edi,%esi
4248	rorl	$5,%edx
4249	andl	%ecx,%esi
4250	movl	%ecx,24(%esp)
4251	xorl	%ecx,%edx
4252	xorl	%esi,%edi
4253	rorl	$6,%edx
4254	movl	%eax,%ecx
4255	addl	%edi,%edx
4256	movl	12(%esp),%edi
4257	movl	%eax,%esi
4258	rorl	$9,%ecx
4259	movl	%eax,8(%esp)
4260	xorl	%eax,%ecx
4261	xorl	%edi,%eax
4262	addl	4(%esp),%edx
4263	rorl	$11,%ecx
4264	andl	%eax,%ebx
4265	xorl	%esi,%ecx
4266	addl	56(%esp),%edx
4267	xorl	%edi,%ebx
4268	rorl	$2,%ecx
4269	addl	%edx,%ebx
4270	addl	20(%esp),%edx
4271	addl	%ecx,%ebx
4272	movl	%edx,%ecx
4273	rorl	$14,%edx
4274	movl	24(%esp),%esi
4275	xorl	%ecx,%edx
4276	movl	28(%esp),%edi
4277	xorl	%edi,%esi
4278	rorl	$5,%edx
4279	andl	%ecx,%esi
4280	movl	%ecx,20(%esp)
4281	xorl	%ecx,%edx
4282	xorl	%esi,%edi
4283	rorl	$6,%edx
4284	movl	%ebx,%ecx
4285	addl	%edi,%edx
4286	movl	8(%esp),%edi
4287	movl	%ebx,%esi
4288	rorl	$9,%ecx
4289	movl	%ebx,4(%esp)
4290	xorl	%ebx,%ecx
4291	xorl	%edi,%ebx
4292	addl	(%esp),%edx
4293	rorl	$11,%ecx
4294	andl	%ebx,%eax
4295	xorl	%esi,%ecx
4296	addl	60(%esp),%edx
4297	xorl	%edi,%eax
4298	rorl	$2,%ecx
4299	addl	%edx,%eax
4300	addl	16(%esp),%edx
4301	addl	%ecx,%eax
4302	movl	%edx,%ecx
4303	rorl	$14,%edx
4304	movl	20(%esp),%esi
4305	xorl	%ecx,%edx
4306	movl	24(%esp),%edi
4307	xorl	%edi,%esi
4308	rorl	$5,%edx
4309	andl	%ecx,%esi
4310	movl	%ecx,16(%esp)
4311	xorl	%ecx,%edx
4312	xorl	%esi,%edi
4313	rorl	$6,%edx
4314	movl	%eax,%ecx
4315	addl	%edi,%edx
4316	movl	4(%esp),%edi
4317	movl	%eax,%esi
4318	rorl	$9,%ecx
4319	movl	%eax,(%esp)
4320	xorl	%eax,%ecx
4321	xorl	%edi,%eax
4322	addl	28(%esp),%edx
4323	rorl	$11,%ecx
4324	andl	%eax,%ebx
4325	xorl	%esi,%ecx
4326	addl	64(%esp),%edx
4327	xorl	%edi,%ebx
4328	rorl	$2,%ecx
4329	addl	%edx,%ebx
4330	addl	12(%esp),%edx
4331	addl	%ecx,%ebx
4332	movl	%edx,%ecx
4333	rorl	$14,%edx
4334	movl	16(%esp),%esi
4335	xorl	%ecx,%edx
4336	movl	20(%esp),%edi
4337	xorl	%edi,%esi
4338	rorl	$5,%edx
4339	andl	%ecx,%esi
4340	movl	%ecx,12(%esp)
4341	xorl	%ecx,%edx
4342	xorl	%esi,%edi
4343	rorl	$6,%edx
4344	movl	%ebx,%ecx
4345	addl	%edi,%edx
4346	movl	(%esp),%edi
4347	movl	%ebx,%esi
4348	rorl	$9,%ecx
4349	movl	%ebx,28(%esp)
4350	xorl	%ebx,%ecx
4351	xorl	%edi,%ebx
4352	addl	24(%esp),%edx
4353	rorl	$11,%ecx
4354	andl	%ebx,%eax
4355	xorl	%esi,%ecx
4356	addl	68(%esp),%edx
4357	xorl	%edi,%eax
4358	rorl	$2,%ecx
4359	addl	%edx,%eax
4360	addl	8(%esp),%edx
4361	addl	%ecx,%eax
4362	movl	%edx,%ecx
4363	rorl	$14,%edx
4364	movl	12(%esp),%esi
4365	xorl	%ecx,%edx
4366	movl	16(%esp),%edi
4367	xorl	%edi,%esi
4368	rorl	$5,%edx
4369	andl	%ecx,%esi
4370	movl	%ecx,8(%esp)
4371	xorl	%ecx,%edx
4372	xorl	%esi,%edi
4373	rorl	$6,%edx
4374	movl	%eax,%ecx
4375	addl	%edi,%edx
4376	movl	28(%esp),%edi
4377	movl	%eax,%esi
4378	rorl	$9,%ecx
4379	movl	%eax,24(%esp)
4380	xorl	%eax,%ecx
4381	xorl	%edi,%eax
4382	addl	20(%esp),%edx
4383	rorl	$11,%ecx
4384	andl	%eax,%ebx
4385	xorl	%esi,%ecx
4386	addl	72(%esp),%edx
4387	xorl	%edi,%ebx
4388	rorl	$2,%ecx
4389	addl	%edx,%ebx
4390	addl	4(%esp),%edx
4391	addl	%ecx,%ebx
4392	movl	%edx,%ecx
4393	rorl	$14,%edx
4394	movl	8(%esp),%esi
4395	xorl	%ecx,%edx
4396	movl	12(%esp),%edi
4397	xorl	%edi,%esi
4398	rorl	$5,%edx
4399	andl	%ecx,%esi
4400	movl	%ecx,4(%esp)
4401	xorl	%ecx,%edx
4402	xorl	%esi,%edi
4403	rorl	$6,%edx
4404	movl	%ebx,%ecx
4405	addl	%edi,%edx
4406	movl	24(%esp),%edi
4407	movl	%ebx,%esi
4408	rorl	$9,%ecx
4409	movl	%ebx,20(%esp)
4410	xorl	%ebx,%ecx
4411	xorl	%edi,%ebx
4412	addl	16(%esp),%edx
4413	rorl	$11,%ecx
4414	andl	%ebx,%eax
4415	xorl	%esi,%ecx
4416	addl	76(%esp),%edx
4417	xorl	%edi,%eax
4418	rorl	$2,%ecx
4419	addl	%edx,%eax
4420	addl	(%esp),%edx
4421	addl	%ecx,%eax
4422	movl	%edx,%ecx
4423	rorl	$14,%edx
4424	movl	4(%esp),%esi
4425	xorl	%ecx,%edx
4426	movl	8(%esp),%edi
4427	xorl	%edi,%esi
4428	rorl	$5,%edx
4429	andl	%ecx,%esi
4430	movl	%ecx,(%esp)
4431	xorl	%ecx,%edx
4432	xorl	%esi,%edi
4433	rorl	$6,%edx
4434	movl	%eax,%ecx
4435	addl	%edi,%edx
4436	movl	20(%esp),%edi
4437	movl	%eax,%esi
4438	rorl	$9,%ecx
4439	movl	%eax,16(%esp)
4440	xorl	%eax,%ecx
4441	xorl	%edi,%eax
4442	addl	12(%esp),%edx
4443	rorl	$11,%ecx
4444	andl	%eax,%ebx
4445	xorl	%esi,%ecx
4446	addl	80(%esp),%edx
4447	xorl	%edi,%ebx
4448	rorl	$2,%ecx
4449	addl	%edx,%ebx
4450	addl	28(%esp),%edx
4451	addl	%ecx,%ebx
4452	movl	%edx,%ecx
4453	rorl	$14,%edx
4454	movl	(%esp),%esi
4455	xorl	%ecx,%edx
4456	movl	4(%esp),%edi
4457	xorl	%edi,%esi
4458	rorl	$5,%edx
4459	andl	%ecx,%esi
4460	movl	%ecx,28(%esp)
4461	xorl	%ecx,%edx
4462	xorl	%esi,%edi
4463	rorl	$6,%edx
4464	movl	%ebx,%ecx
4465	addl	%edi,%edx
4466	movl	16(%esp),%edi
4467	movl	%ebx,%esi
4468	rorl	$9,%ecx
4469	movl	%ebx,12(%esp)
4470	xorl	%ebx,%ecx
4471	xorl	%edi,%ebx
4472	addl	8(%esp),%edx
4473	rorl	$11,%ecx
4474	andl	%ebx,%eax
4475	xorl	%esi,%ecx
4476	addl	84(%esp),%edx
4477	xorl	%edi,%eax
4478	rorl	$2,%ecx
4479	addl	%edx,%eax
4480	addl	24(%esp),%edx
4481	addl	%ecx,%eax
4482	movl	%edx,%ecx
4483	rorl	$14,%edx
4484	movl	28(%esp),%esi
4485	xorl	%ecx,%edx
4486	movl	(%esp),%edi
4487	xorl	%edi,%esi
4488	rorl	$5,%edx
4489	andl	%ecx,%esi
4490	movl	%ecx,24(%esp)
4491	xorl	%ecx,%edx
4492	xorl	%esi,%edi
4493	rorl	$6,%edx
4494	movl	%eax,%ecx
4495	addl	%edi,%edx
4496	movl	12(%esp),%edi
4497	movl	%eax,%esi
4498	rorl	$9,%ecx
4499	movl	%eax,8(%esp)
4500	xorl	%eax,%ecx
4501	xorl	%edi,%eax
4502	addl	4(%esp),%edx
4503	rorl	$11,%ecx
4504	andl	%eax,%ebx
4505	xorl	%esi,%ecx
4506	addl	88(%esp),%edx
4507	xorl	%edi,%ebx
4508	rorl	$2,%ecx
4509	addl	%edx,%ebx
4510	addl	20(%esp),%edx
4511	addl	%ecx,%ebx
4512	movl	%edx,%ecx
4513	rorl	$14,%edx
4514	movl	24(%esp),%esi
4515	xorl	%ecx,%edx
4516	movl	28(%esp),%edi
4517	xorl	%edi,%esi
4518	rorl	$5,%edx
4519	andl	%ecx,%esi
4520	movl	%ecx,20(%esp)
4521	xorl	%ecx,%edx
4522	xorl	%esi,%edi
4523	rorl	$6,%edx
4524	movl	%ebx,%ecx
4525	addl	%edi,%edx
4526	movl	8(%esp),%edi
4527	movl	%ebx,%esi
4528	rorl	$9,%ecx
4529	movl	%ebx,4(%esp)
4530	xorl	%ebx,%ecx
4531	xorl	%edi,%ebx
4532	addl	(%esp),%edx
4533	rorl	$11,%ecx
4534	andl	%ebx,%eax
4535	xorl	%esi,%ecx
4536	addl	92(%esp),%edx
4537	xorl	%edi,%eax
4538	rorl	$2,%ecx
4539	addl	%edx,%eax
4540	addl	16(%esp),%edx
4541	addl	%ecx,%eax
4542	movl	96(%esp),%esi
4543	xorl	%edi,%ebx
4544	movl	12(%esp),%ecx
4545	addl	(%esi),%eax
4546	addl	4(%esi),%ebx
4547	addl	8(%esi),%edi
4548	addl	12(%esi),%ecx
4549	movl	%eax,(%esi)
4550	movl	%ebx,4(%esi)
4551	movl	%edi,8(%esi)
4552	movl	%ecx,12(%esi)
4553	movl	%ebx,4(%esp)
4554	xorl	%edi,%ebx
4555	movl	%edi,8(%esp)
4556	movl	%ecx,12(%esp)
4557	movl	20(%esp),%edi
4558	movl	24(%esp),%ecx
4559	addl	16(%esi),%edx
4560	addl	20(%esi),%edi
4561	addl	24(%esi),%ecx
4562	movl	%edx,16(%esi)
4563	movl	%edi,20(%esi)
4564	movl	%edi,20(%esp)
4565	movl	28(%esp),%edi
4566	movl	%ecx,24(%esi)
4567	addl	28(%esi),%edi
4568	movl	%ecx,24(%esp)
4569	movl	%edi,28(%esi)
4570	movl	%edi,28(%esp)
4571	movl	100(%esp),%edi
4572	movdqa	64(%ebp),%xmm7
4573	subl	$192,%ebp
4574	cmpl	104(%esp),%edi
4575	jb	L012grand_ssse3
4576	movl	108(%esp),%esp
4577	popl	%edi
4578	popl	%esi
4579	popl	%ebx
4580	popl	%ebp
4581	ret
4582.align	5,0x90
4583L005AVX:
4584	andl	$264,%edx
4585	cmpl	$264,%edx
4586	je	L014AVX_BMI
4587	leal	-96(%esp),%esp
4588	vzeroall
4589	movl	(%esi),%eax
4590	movl	4(%esi),%ebx
4591	movl	8(%esi),%ecx
4592	movl	12(%esi),%edi
4593	movl	%ebx,4(%esp)
4594	xorl	%ecx,%ebx
4595	movl	%ecx,8(%esp)
4596	movl	%edi,12(%esp)
4597	movl	16(%esi),%edx
4598	movl	20(%esi),%edi
4599	movl	24(%esi),%ecx
4600	movl	28(%esi),%esi
4601	movl	%edi,20(%esp)
4602	movl	100(%esp),%edi
4603	movl	%ecx,24(%esp)
4604	movl	%esi,28(%esp)
4605	vmovdqa	256(%ebp),%xmm7
4606	jmp	L015grand_avx
4607.align	5,0x90
4608L015grand_avx:
4609	vmovdqu	(%edi),%xmm0
4610	vmovdqu	16(%edi),%xmm1
4611	vmovdqu	32(%edi),%xmm2
4612	vmovdqu	48(%edi),%xmm3
4613	addl	$64,%edi
4614	vpshufb	%xmm7,%xmm0,%xmm0
4615	movl	%edi,100(%esp)
4616	vpshufb	%xmm7,%xmm1,%xmm1
4617	vpshufb	%xmm7,%xmm2,%xmm2
4618	vpaddd	(%ebp),%xmm0,%xmm4
4619	vpshufb	%xmm7,%xmm3,%xmm3
4620	vpaddd	16(%ebp),%xmm1,%xmm5
4621	vpaddd	32(%ebp),%xmm2,%xmm6
4622	vpaddd	48(%ebp),%xmm3,%xmm7
4623	vmovdqa	%xmm4,32(%esp)
4624	vmovdqa	%xmm5,48(%esp)
4625	vmovdqa	%xmm6,64(%esp)
4626	vmovdqa	%xmm7,80(%esp)
4627	jmp	L016avx_00_47
4628.align	4,0x90
4629L016avx_00_47:
4630	addl	$64,%ebp
4631	vpalignr	$4,%xmm0,%xmm1,%xmm4
4632	movl	%edx,%ecx
4633	shrdl	$14,%edx,%edx
4634	movl	20(%esp),%esi
4635	vpalignr	$4,%xmm2,%xmm3,%xmm7
4636	xorl	%ecx,%edx
4637	movl	24(%esp),%edi
4638	xorl	%edi,%esi
4639	vpsrld	$7,%xmm4,%xmm6
4640	shrdl	$5,%edx,%edx
4641	andl	%ecx,%esi
4642	movl	%ecx,16(%esp)
4643	vpaddd	%xmm7,%xmm0,%xmm0
4644	xorl	%ecx,%edx
4645	xorl	%esi,%edi
4646	shrdl	$6,%edx,%edx
4647	vpsrld	$3,%xmm4,%xmm7
4648	movl	%eax,%ecx
4649	addl	%edi,%edx
4650	movl	4(%esp),%edi
4651	vpslld	$14,%xmm4,%xmm5
4652	movl	%eax,%esi
4653	shrdl	$9,%ecx,%ecx
4654	movl	%eax,(%esp)
4655	vpxor	%xmm6,%xmm7,%xmm4
4656	xorl	%eax,%ecx
4657	xorl	%edi,%eax
4658	addl	28(%esp),%edx
4659	vpshufd	$250,%xmm3,%xmm7
4660	shrdl	$11,%ecx,%ecx
4661	andl	%eax,%ebx
4662	xorl	%esi,%ecx
4663	vpsrld	$11,%xmm6,%xmm6
4664	addl	32(%esp),%edx
4665	xorl	%edi,%ebx
4666	shrdl	$2,%ecx,%ecx
4667	vpxor	%xmm5,%xmm4,%xmm4
4668	addl	%edx,%ebx
4669	addl	12(%esp),%edx
4670	addl	%ecx,%ebx
4671	vpslld	$11,%xmm5,%xmm5
4672	movl	%edx,%ecx
4673	shrdl	$14,%edx,%edx
4674	movl	16(%esp),%esi
4675	vpxor	%xmm6,%xmm4,%xmm4
4676	xorl	%ecx,%edx
4677	movl	20(%esp),%edi
4678	xorl	%edi,%esi
4679	vpsrld	$10,%xmm7,%xmm6
4680	shrdl	$5,%edx,%edx
4681	andl	%ecx,%esi
4682	movl	%ecx,12(%esp)
4683	vpxor	%xmm5,%xmm4,%xmm4
4684	xorl	%ecx,%edx
4685	xorl	%esi,%edi
4686	shrdl	$6,%edx,%edx
4687	vpsrlq	$17,%xmm7,%xmm5
4688	movl	%ebx,%ecx
4689	addl	%edi,%edx
4690	movl	(%esp),%edi
4691	vpaddd	%xmm4,%xmm0,%xmm0
4692	movl	%ebx,%esi
4693	shrdl	$9,%ecx,%ecx
4694	movl	%ebx,28(%esp)
4695	vpxor	%xmm5,%xmm6,%xmm6
4696	xorl	%ebx,%ecx
4697	xorl	%edi,%ebx
4698	addl	24(%esp),%edx
4699	vpsrlq	$19,%xmm7,%xmm7
4700	shrdl	$11,%ecx,%ecx
4701	andl	%ebx,%eax
4702	xorl	%esi,%ecx
4703	vpxor	%xmm7,%xmm6,%xmm6
4704	addl	36(%esp),%edx
4705	xorl	%edi,%eax
4706	shrdl	$2,%ecx,%ecx
4707	vpshufd	$132,%xmm6,%xmm7
4708	addl	%edx,%eax
4709	addl	8(%esp),%edx
4710	addl	%ecx,%eax
4711	vpsrldq	$8,%xmm7,%xmm7
4712	movl	%edx,%ecx
4713	shrdl	$14,%edx,%edx
4714	movl	12(%esp),%esi
4715	vpaddd	%xmm7,%xmm0,%xmm0
4716	xorl	%ecx,%edx
4717	movl	16(%esp),%edi
4718	xorl	%edi,%esi
4719	vpshufd	$80,%xmm0,%xmm7
4720	shrdl	$5,%edx,%edx
4721	andl	%ecx,%esi
4722	movl	%ecx,8(%esp)
4723	vpsrld	$10,%xmm7,%xmm6
4724	xorl	%ecx,%edx
4725	xorl	%esi,%edi
4726	shrdl	$6,%edx,%edx
4727	vpsrlq	$17,%xmm7,%xmm5
4728	movl	%eax,%ecx
4729	addl	%edi,%edx
4730	movl	28(%esp),%edi
4731	vpxor	%xmm5,%xmm6,%xmm6
4732	movl	%eax,%esi
4733	shrdl	$9,%ecx,%ecx
4734	movl	%eax,24(%esp)
4735	vpsrlq	$19,%xmm7,%xmm7
4736	xorl	%eax,%ecx
4737	xorl	%edi,%eax
4738	addl	20(%esp),%edx
4739	vpxor	%xmm7,%xmm6,%xmm6
4740	shrdl	$11,%ecx,%ecx
4741	andl	%eax,%ebx
4742	xorl	%esi,%ecx
4743	vpshufd	$232,%xmm6,%xmm7
4744	addl	40(%esp),%edx
4745	xorl	%edi,%ebx
4746	shrdl	$2,%ecx,%ecx
4747	vpslldq	$8,%xmm7,%xmm7
4748	addl	%edx,%ebx
4749	addl	4(%esp),%edx
4750	addl	%ecx,%ebx
4751	vpaddd	%xmm7,%xmm0,%xmm0
4752	movl	%edx,%ecx
4753	shrdl	$14,%edx,%edx
4754	movl	8(%esp),%esi
4755	vpaddd	(%ebp),%xmm0,%xmm6
4756	xorl	%ecx,%edx
4757	movl	12(%esp),%edi
4758	xorl	%edi,%esi
4759	shrdl	$5,%edx,%edx
4760	andl	%ecx,%esi
4761	movl	%ecx,4(%esp)
4762	xorl	%ecx,%edx
4763	xorl	%esi,%edi
4764	shrdl	$6,%edx,%edx
4765	movl	%ebx,%ecx
4766	addl	%edi,%edx
4767	movl	24(%esp),%edi
4768	movl	%ebx,%esi
4769	shrdl	$9,%ecx,%ecx
4770	movl	%ebx,20(%esp)
4771	xorl	%ebx,%ecx
4772	xorl	%edi,%ebx
4773	addl	16(%esp),%edx
4774	shrdl	$11,%ecx,%ecx
4775	andl	%ebx,%eax
4776	xorl	%esi,%ecx
4777	addl	44(%esp),%edx
4778	xorl	%edi,%eax
4779	shrdl	$2,%ecx,%ecx
4780	addl	%edx,%eax
4781	addl	(%esp),%edx
4782	addl	%ecx,%eax
4783	vmovdqa	%xmm6,32(%esp)
4784	vpalignr	$4,%xmm1,%xmm2,%xmm4
4785	movl	%edx,%ecx
4786	shrdl	$14,%edx,%edx
4787	movl	4(%esp),%esi
4788	vpalignr	$4,%xmm3,%xmm0,%xmm7
4789	xorl	%ecx,%edx
4790	movl	8(%esp),%edi
4791	xorl	%edi,%esi
4792	vpsrld	$7,%xmm4,%xmm6
4793	shrdl	$5,%edx,%edx
4794	andl	%ecx,%esi
4795	movl	%ecx,(%esp)
4796	vpaddd	%xmm7,%xmm1,%xmm1
4797	xorl	%ecx,%edx
4798	xorl	%esi,%edi
4799	shrdl	$6,%edx,%edx
4800	vpsrld	$3,%xmm4,%xmm7
4801	movl	%eax,%ecx
4802	addl	%edi,%edx
4803	movl	20(%esp),%edi
4804	vpslld	$14,%xmm4,%xmm5
4805	movl	%eax,%esi
4806	shrdl	$9,%ecx,%ecx
4807	movl	%eax,16(%esp)
4808	vpxor	%xmm6,%xmm7,%xmm4
4809	xorl	%eax,%ecx
4810	xorl	%edi,%eax
4811	addl	12(%esp),%edx
4812	vpshufd	$250,%xmm0,%xmm7
4813	shrdl	$11,%ecx,%ecx
4814	andl	%eax,%ebx
4815	xorl	%esi,%ecx
4816	vpsrld	$11,%xmm6,%xmm6
4817	addl	48(%esp),%edx
4818	xorl	%edi,%ebx
4819	shrdl	$2,%ecx,%ecx
4820	vpxor	%xmm5,%xmm4,%xmm4
4821	addl	%edx,%ebx
4822	addl	28(%esp),%edx
4823	addl	%ecx,%ebx
4824	vpslld	$11,%xmm5,%xmm5
4825	movl	%edx,%ecx
4826	shrdl	$14,%edx,%edx
4827	movl	(%esp),%esi
4828	vpxor	%xmm6,%xmm4,%xmm4
4829	xorl	%ecx,%edx
4830	movl	4(%esp),%edi
4831	xorl	%edi,%esi
4832	vpsrld	$10,%xmm7,%xmm6
4833	shrdl	$5,%edx,%edx
4834	andl	%ecx,%esi
4835	movl	%ecx,28(%esp)
4836	vpxor	%xmm5,%xmm4,%xmm4
4837	xorl	%ecx,%edx
4838	xorl	%esi,%edi
4839	shrdl	$6,%edx,%edx
4840	vpsrlq	$17,%xmm7,%xmm5
4841	movl	%ebx,%ecx
4842	addl	%edi,%edx
4843	movl	16(%esp),%edi
4844	vpaddd	%xmm4,%xmm1,%xmm1
4845	movl	%ebx,%esi
4846	shrdl	$9,%ecx,%ecx
4847	movl	%ebx,12(%esp)
4848	vpxor	%xmm5,%xmm6,%xmm6
4849	xorl	%ebx,%ecx
4850	xorl	%edi,%ebx
4851	addl	8(%esp),%edx
4852	vpsrlq	$19,%xmm7,%xmm7
4853	shrdl	$11,%ecx,%ecx
4854	andl	%ebx,%eax
4855	xorl	%esi,%ecx
4856	vpxor	%xmm7,%xmm6,%xmm6
4857	addl	52(%esp),%edx
4858	xorl	%edi,%eax
4859	shrdl	$2,%ecx,%ecx
4860	vpshufd	$132,%xmm6,%xmm7
4861	addl	%edx,%eax
4862	addl	24(%esp),%edx
4863	addl	%ecx,%eax
4864	vpsrldq	$8,%xmm7,%xmm7
4865	movl	%edx,%ecx
4866	shrdl	$14,%edx,%edx
4867	movl	28(%esp),%esi
4868	vpaddd	%xmm7,%xmm1,%xmm1
4869	xorl	%ecx,%edx
4870	movl	(%esp),%edi
4871	xorl	%edi,%esi
4872	vpshufd	$80,%xmm1,%xmm7
4873	shrdl	$5,%edx,%edx
4874	andl	%ecx,%esi
4875	movl	%ecx,24(%esp)
4876	vpsrld	$10,%xmm7,%xmm6
4877	xorl	%ecx,%edx
4878	xorl	%esi,%edi
4879	shrdl	$6,%edx,%edx
4880	vpsrlq	$17,%xmm7,%xmm5
4881	movl	%eax,%ecx
4882	addl	%edi,%edx
4883	movl	12(%esp),%edi
4884	vpxor	%xmm5,%xmm6,%xmm6
4885	movl	%eax,%esi
4886	shrdl	$9,%ecx,%ecx
4887	movl	%eax,8(%esp)
4888	vpsrlq	$19,%xmm7,%xmm7
4889	xorl	%eax,%ecx
4890	xorl	%edi,%eax
4891	addl	4(%esp),%edx
4892	vpxor	%xmm7,%xmm6,%xmm6
4893	shrdl	$11,%ecx,%ecx
4894	andl	%eax,%ebx
4895	xorl	%esi,%ecx
4896	vpshufd	$232,%xmm6,%xmm7
4897	addl	56(%esp),%edx
4898	xorl	%edi,%ebx
4899	shrdl	$2,%ecx,%ecx
4900	vpslldq	$8,%xmm7,%xmm7
4901	addl	%edx,%ebx
4902	addl	20(%esp),%edx
4903	addl	%ecx,%ebx
4904	vpaddd	%xmm7,%xmm1,%xmm1
4905	movl	%edx,%ecx
4906	shrdl	$14,%edx,%edx
4907	movl	24(%esp),%esi
4908	vpaddd	16(%ebp),%xmm1,%xmm6
4909	xorl	%ecx,%edx
4910	movl	28(%esp),%edi
4911	xorl	%edi,%esi
4912	shrdl	$5,%edx,%edx
4913	andl	%ecx,%esi
4914	movl	%ecx,20(%esp)
4915	xorl	%ecx,%edx
4916	xorl	%esi,%edi
4917	shrdl	$6,%edx,%edx
4918	movl	%ebx,%ecx
4919	addl	%edi,%edx
4920	movl	8(%esp),%edi
4921	movl	%ebx,%esi
4922	shrdl	$9,%ecx,%ecx
4923	movl	%ebx,4(%esp)
4924	xorl	%ebx,%ecx
4925	xorl	%edi,%ebx
4926	addl	(%esp),%edx
4927	shrdl	$11,%ecx,%ecx
4928	andl	%ebx,%eax
4929	xorl	%esi,%ecx
4930	addl	60(%esp),%edx
4931	xorl	%edi,%eax
4932	shrdl	$2,%ecx,%ecx
4933	addl	%edx,%eax
4934	addl	16(%esp),%edx
4935	addl	%ecx,%eax
4936	vmovdqa	%xmm6,48(%esp)
4937	vpalignr	$4,%xmm2,%xmm3,%xmm4
4938	movl	%edx,%ecx
4939	shrdl	$14,%edx,%edx
4940	movl	20(%esp),%esi
4941	vpalignr	$4,%xmm0,%xmm1,%xmm7
4942	xorl	%ecx,%edx
4943	movl	24(%esp),%edi
4944	xorl	%edi,%esi
4945	vpsrld	$7,%xmm4,%xmm6
4946	shrdl	$5,%edx,%edx
4947	andl	%ecx,%esi
4948	movl	%ecx,16(%esp)
4949	vpaddd	%xmm7,%xmm2,%xmm2
4950	xorl	%ecx,%edx
4951	xorl	%esi,%edi
4952	shrdl	$6,%edx,%edx
4953	vpsrld	$3,%xmm4,%xmm7
4954	movl	%eax,%ecx
4955	addl	%edi,%edx
4956	movl	4(%esp),%edi
4957	vpslld	$14,%xmm4,%xmm5
4958	movl	%eax,%esi
4959	shrdl	$9,%ecx,%ecx
4960	movl	%eax,(%esp)
4961	vpxor	%xmm6,%xmm7,%xmm4
4962	xorl	%eax,%ecx
4963	xorl	%edi,%eax
4964	addl	28(%esp),%edx
4965	vpshufd	$250,%xmm1,%xmm7
4966	shrdl	$11,%ecx,%ecx
4967	andl	%eax,%ebx
4968	xorl	%esi,%ecx
4969	vpsrld	$11,%xmm6,%xmm6
4970	addl	64(%esp),%edx
4971	xorl	%edi,%ebx
4972	shrdl	$2,%ecx,%ecx
4973	vpxor	%xmm5,%xmm4,%xmm4
4974	addl	%edx,%ebx
4975	addl	12(%esp),%edx
4976	addl	%ecx,%ebx
4977	vpslld	$11,%xmm5,%xmm5
4978	movl	%edx,%ecx
4979	shrdl	$14,%edx,%edx
4980	movl	16(%esp),%esi
4981	vpxor	%xmm6,%xmm4,%xmm4
4982	xorl	%ecx,%edx
4983	movl	20(%esp),%edi
4984	xorl	%edi,%esi
4985	vpsrld	$10,%xmm7,%xmm6
4986	shrdl	$5,%edx,%edx
4987	andl	%ecx,%esi
4988	movl	%ecx,12(%esp)
4989	vpxor	%xmm5,%xmm4,%xmm4
4990	xorl	%ecx,%edx
4991	xorl	%esi,%edi
4992	shrdl	$6,%edx,%edx
4993	vpsrlq	$17,%xmm7,%xmm5
4994	movl	%ebx,%ecx
4995	addl	%edi,%edx
4996	movl	(%esp),%edi
4997	vpaddd	%xmm4,%xmm2,%xmm2
4998	movl	%ebx,%esi
4999	shrdl	$9,%ecx,%ecx
5000	movl	%ebx,28(%esp)
5001	vpxor	%xmm5,%xmm6,%xmm6
5002	xorl	%ebx,%ecx
5003	xorl	%edi,%ebx
5004	addl	24(%esp),%edx
5005	vpsrlq	$19,%xmm7,%xmm7
5006	shrdl	$11,%ecx,%ecx
5007	andl	%ebx,%eax
5008	xorl	%esi,%ecx
5009	vpxor	%xmm7,%xmm6,%xmm6
5010	addl	68(%esp),%edx
5011	xorl	%edi,%eax
5012	shrdl	$2,%ecx,%ecx
5013	vpshufd	$132,%xmm6,%xmm7
5014	addl	%edx,%eax
5015	addl	8(%esp),%edx
5016	addl	%ecx,%eax
5017	vpsrldq	$8,%xmm7,%xmm7
5018	movl	%edx,%ecx
5019	shrdl	$14,%edx,%edx
5020	movl	12(%esp),%esi
5021	vpaddd	%xmm7,%xmm2,%xmm2
5022	xorl	%ecx,%edx
5023	movl	16(%esp),%edi
5024	xorl	%edi,%esi
5025	vpshufd	$80,%xmm2,%xmm7
5026	shrdl	$5,%edx,%edx
5027	andl	%ecx,%esi
5028	movl	%ecx,8(%esp)
5029	vpsrld	$10,%xmm7,%xmm6
5030	xorl	%ecx,%edx
5031	xorl	%esi,%edi
5032	shrdl	$6,%edx,%edx
5033	vpsrlq	$17,%xmm7,%xmm5
5034	movl	%eax,%ecx
5035	addl	%edi,%edx
5036	movl	28(%esp),%edi
5037	vpxor	%xmm5,%xmm6,%xmm6
5038	movl	%eax,%esi
5039	shrdl	$9,%ecx,%ecx
5040	movl	%eax,24(%esp)
5041	vpsrlq	$19,%xmm7,%xmm7
5042	xorl	%eax,%ecx
5043	xorl	%edi,%eax
5044	addl	20(%esp),%edx
5045	vpxor	%xmm7,%xmm6,%xmm6
5046	shrdl	$11,%ecx,%ecx
5047	andl	%eax,%ebx
5048	xorl	%esi,%ecx
5049	vpshufd	$232,%xmm6,%xmm7
5050	addl	72(%esp),%edx
5051	xorl	%edi,%ebx
5052	shrdl	$2,%ecx,%ecx
5053	vpslldq	$8,%xmm7,%xmm7
5054	addl	%edx,%ebx
5055	addl	4(%esp),%edx
5056	addl	%ecx,%ebx
5057	vpaddd	%xmm7,%xmm2,%xmm2
5058	movl	%edx,%ecx
5059	shrdl	$14,%edx,%edx
5060	movl	8(%esp),%esi
5061	vpaddd	32(%ebp),%xmm2,%xmm6
5062	xorl	%ecx,%edx
5063	movl	12(%esp),%edi
5064	xorl	%edi,%esi
5065	shrdl	$5,%edx,%edx
5066	andl	%ecx,%esi
5067	movl	%ecx,4(%esp)
5068	xorl	%ecx,%edx
5069	xorl	%esi,%edi
5070	shrdl	$6,%edx,%edx
5071	movl	%ebx,%ecx
5072	addl	%edi,%edx
5073	movl	24(%esp),%edi
5074	movl	%ebx,%esi
5075	shrdl	$9,%ecx,%ecx
5076	movl	%ebx,20(%esp)
5077	xorl	%ebx,%ecx
5078	xorl	%edi,%ebx
5079	addl	16(%esp),%edx
5080	shrdl	$11,%ecx,%ecx
5081	andl	%ebx,%eax
5082	xorl	%esi,%ecx
5083	addl	76(%esp),%edx
5084	xorl	%edi,%eax
5085	shrdl	$2,%ecx,%ecx
5086	addl	%edx,%eax
5087	addl	(%esp),%edx
5088	addl	%ecx,%eax
5089	vmovdqa	%xmm6,64(%esp)
5090	vpalignr	$4,%xmm3,%xmm0,%xmm4
5091	movl	%edx,%ecx
5092	shrdl	$14,%edx,%edx
5093	movl	4(%esp),%esi
5094	vpalignr	$4,%xmm1,%xmm2,%xmm7
5095	xorl	%ecx,%edx
5096	movl	8(%esp),%edi
5097	xorl	%edi,%esi
5098	vpsrld	$7,%xmm4,%xmm6
5099	shrdl	$5,%edx,%edx
5100	andl	%ecx,%esi
5101	movl	%ecx,(%esp)
5102	vpaddd	%xmm7,%xmm3,%xmm3
5103	xorl	%ecx,%edx
5104	xorl	%esi,%edi
5105	shrdl	$6,%edx,%edx
5106	vpsrld	$3,%xmm4,%xmm7
5107	movl	%eax,%ecx
5108	addl	%edi,%edx
5109	movl	20(%esp),%edi
5110	vpslld	$14,%xmm4,%xmm5
5111	movl	%eax,%esi
5112	shrdl	$9,%ecx,%ecx
5113	movl	%eax,16(%esp)
5114	vpxor	%xmm6,%xmm7,%xmm4
5115	xorl	%eax,%ecx
5116	xorl	%edi,%eax
5117	addl	12(%esp),%edx
5118	vpshufd	$250,%xmm2,%xmm7
5119	shrdl	$11,%ecx,%ecx
5120	andl	%eax,%ebx
5121	xorl	%esi,%ecx
5122	vpsrld	$11,%xmm6,%xmm6
5123	addl	80(%esp),%edx
5124	xorl	%edi,%ebx
5125	shrdl	$2,%ecx,%ecx
5126	vpxor	%xmm5,%xmm4,%xmm4
5127	addl	%edx,%ebx
5128	addl	28(%esp),%edx
5129	addl	%ecx,%ebx
5130	vpslld	$11,%xmm5,%xmm5
5131	movl	%edx,%ecx
5132	shrdl	$14,%edx,%edx
5133	movl	(%esp),%esi
5134	vpxor	%xmm6,%xmm4,%xmm4
5135	xorl	%ecx,%edx
5136	movl	4(%esp),%edi
5137	xorl	%edi,%esi
5138	vpsrld	$10,%xmm7,%xmm6
5139	shrdl	$5,%edx,%edx
5140	andl	%ecx,%esi
5141	movl	%ecx,28(%esp)
5142	vpxor	%xmm5,%xmm4,%xmm4
5143	xorl	%ecx,%edx
5144	xorl	%esi,%edi
5145	shrdl	$6,%edx,%edx
5146	vpsrlq	$17,%xmm7,%xmm5
5147	movl	%ebx,%ecx
5148	addl	%edi,%edx
5149	movl	16(%esp),%edi
5150	vpaddd	%xmm4,%xmm3,%xmm3
5151	movl	%ebx,%esi
5152	shrdl	$9,%ecx,%ecx
5153	movl	%ebx,12(%esp)
5154	vpxor	%xmm5,%xmm6,%xmm6
5155	xorl	%ebx,%ecx
5156	xorl	%edi,%ebx
5157	addl	8(%esp),%edx
5158	vpsrlq	$19,%xmm7,%xmm7
5159	shrdl	$11,%ecx,%ecx
5160	andl	%ebx,%eax
5161	xorl	%esi,%ecx
5162	vpxor	%xmm7,%xmm6,%xmm6
5163	addl	84(%esp),%edx
5164	xorl	%edi,%eax
5165	shrdl	$2,%ecx,%ecx
5166	vpshufd	$132,%xmm6,%xmm7
5167	addl	%edx,%eax
5168	addl	24(%esp),%edx
5169	addl	%ecx,%eax
5170	vpsrldq	$8,%xmm7,%xmm7
5171	movl	%edx,%ecx
5172	shrdl	$14,%edx,%edx
5173	movl	28(%esp),%esi
5174	vpaddd	%xmm7,%xmm3,%xmm3
5175	xorl	%ecx,%edx
5176	movl	(%esp),%edi
5177	xorl	%edi,%esi
5178	vpshufd	$80,%xmm3,%xmm7
5179	shrdl	$5,%edx,%edx
5180	andl	%ecx,%esi
5181	movl	%ecx,24(%esp)
5182	vpsrld	$10,%xmm7,%xmm6
5183	xorl	%ecx,%edx
5184	xorl	%esi,%edi
5185	shrdl	$6,%edx,%edx
5186	vpsrlq	$17,%xmm7,%xmm5
5187	movl	%eax,%ecx
5188	addl	%edi,%edx
5189	movl	12(%esp),%edi
5190	vpxor	%xmm5,%xmm6,%xmm6
5191	movl	%eax,%esi
5192	shrdl	$9,%ecx,%ecx
5193	movl	%eax,8(%esp)
5194	vpsrlq	$19,%xmm7,%xmm7
5195	xorl	%eax,%ecx
5196	xorl	%edi,%eax
5197	addl	4(%esp),%edx
5198	vpxor	%xmm7,%xmm6,%xmm6
5199	shrdl	$11,%ecx,%ecx
5200	andl	%eax,%ebx
5201	xorl	%esi,%ecx
5202	vpshufd	$232,%xmm6,%xmm7
5203	addl	88(%esp),%edx
5204	xorl	%edi,%ebx
5205	shrdl	$2,%ecx,%ecx
5206	vpslldq	$8,%xmm7,%xmm7
5207	addl	%edx,%ebx
5208	addl	20(%esp),%edx
5209	addl	%ecx,%ebx
5210	vpaddd	%xmm7,%xmm3,%xmm3
5211	movl	%edx,%ecx
5212	shrdl	$14,%edx,%edx
5213	movl	24(%esp),%esi
5214	vpaddd	48(%ebp),%xmm3,%xmm6
5215	xorl	%ecx,%edx
5216	movl	28(%esp),%edi
5217	xorl	%edi,%esi
5218	shrdl	$5,%edx,%edx
5219	andl	%ecx,%esi
5220	movl	%ecx,20(%esp)
5221	xorl	%ecx,%edx
5222	xorl	%esi,%edi
5223	shrdl	$6,%edx,%edx
5224	movl	%ebx,%ecx
5225	addl	%edi,%edx
5226	movl	8(%esp),%edi
5227	movl	%ebx,%esi
5228	shrdl	$9,%ecx,%ecx
5229	movl	%ebx,4(%esp)
5230	xorl	%ebx,%ecx
5231	xorl	%edi,%ebx
5232	addl	(%esp),%edx
5233	shrdl	$11,%ecx,%ecx
5234	andl	%ebx,%eax
5235	xorl	%esi,%ecx
5236	addl	92(%esp),%edx
5237	xorl	%edi,%eax
5238	shrdl	$2,%ecx,%ecx
5239	addl	%edx,%eax
5240	addl	16(%esp),%edx
5241	addl	%ecx,%eax
5242	vmovdqa	%xmm6,80(%esp)
5243	cmpl	$66051,64(%ebp)
5244	jne	L016avx_00_47
5245	movl	%edx,%ecx
5246	shrdl	$14,%edx,%edx
5247	movl	20(%esp),%esi
5248	xorl	%ecx,%edx
5249	movl	24(%esp),%edi
5250	xorl	%edi,%esi
5251	shrdl	$5,%edx,%edx
5252	andl	%ecx,%esi
5253	movl	%ecx,16(%esp)
5254	xorl	%ecx,%edx
5255	xorl	%esi,%edi
5256	shrdl	$6,%edx,%edx
5257	movl	%eax,%ecx
5258	addl	%edi,%edx
5259	movl	4(%esp),%edi
5260	movl	%eax,%esi
5261	shrdl	$9,%ecx,%ecx
5262	movl	%eax,(%esp)
5263	xorl	%eax,%ecx
5264	xorl	%edi,%eax
5265	addl	28(%esp),%edx
5266	shrdl	$11,%ecx,%ecx
5267	andl	%eax,%ebx
5268	xorl	%esi,%ecx
5269	addl	32(%esp),%edx
5270	xorl	%edi,%ebx
5271	shrdl	$2,%ecx,%ecx
5272	addl	%edx,%ebx
5273	addl	12(%esp),%edx
5274	addl	%ecx,%ebx
5275	movl	%edx,%ecx
5276	shrdl	$14,%edx,%edx
5277	movl	16(%esp),%esi
5278	xorl	%ecx,%edx
5279	movl	20(%esp),%edi
5280	xorl	%edi,%esi
5281	shrdl	$5,%edx,%edx
5282	andl	%ecx,%esi
5283	movl	%ecx,12(%esp)
5284	xorl	%ecx,%edx
5285	xorl	%esi,%edi
5286	shrdl	$6,%edx,%edx
5287	movl	%ebx,%ecx
5288	addl	%edi,%edx
5289	movl	(%esp),%edi
5290	movl	%ebx,%esi
5291	shrdl	$9,%ecx,%ecx
5292	movl	%ebx,28(%esp)
5293	xorl	%ebx,%ecx
5294	xorl	%edi,%ebx
5295	addl	24(%esp),%edx
5296	shrdl	$11,%ecx,%ecx
5297	andl	%ebx,%eax
5298	xorl	%esi,%ecx
5299	addl	36(%esp),%edx
5300	xorl	%edi,%eax
5301	shrdl	$2,%ecx,%ecx
5302	addl	%edx,%eax
5303	addl	8(%esp),%edx
5304	addl	%ecx,%eax
5305	movl	%edx,%ecx
5306	shrdl	$14,%edx,%edx
5307	movl	12(%esp),%esi
5308	xorl	%ecx,%edx
5309	movl	16(%esp),%edi
5310	xorl	%edi,%esi
5311	shrdl	$5,%edx,%edx
5312	andl	%ecx,%esi
5313	movl	%ecx,8(%esp)
5314	xorl	%ecx,%edx
5315	xorl	%esi,%edi
5316	shrdl	$6,%edx,%edx
5317	movl	%eax,%ecx
5318	addl	%edi,%edx
5319	movl	28(%esp),%edi
5320	movl	%eax,%esi
5321	shrdl	$9,%ecx,%ecx
5322	movl	%eax,24(%esp)
5323	xorl	%eax,%ecx
5324	xorl	%edi,%eax
5325	addl	20(%esp),%edx
5326	shrdl	$11,%ecx,%ecx
5327	andl	%eax,%ebx
5328	xorl	%esi,%ecx
5329	addl	40(%esp),%edx
5330	xorl	%edi,%ebx
5331	shrdl	$2,%ecx,%ecx
5332	addl	%edx,%ebx
5333	addl	4(%esp),%edx
5334	addl	%ecx,%ebx
5335	movl	%edx,%ecx
5336	shrdl	$14,%edx,%edx
5337	movl	8(%esp),%esi
5338	xorl	%ecx,%edx
5339	movl	12(%esp),%edi
5340	xorl	%edi,%esi
5341	shrdl	$5,%edx,%edx
5342	andl	%ecx,%esi
5343	movl	%ecx,4(%esp)
5344	xorl	%ecx,%edx
5345	xorl	%esi,%edi
5346	shrdl	$6,%edx,%edx
5347	movl	%ebx,%ecx
5348	addl	%edi,%edx
5349	movl	24(%esp),%edi
5350	movl	%ebx,%esi
5351	shrdl	$9,%ecx,%ecx
5352	movl	%ebx,20(%esp)
5353	xorl	%ebx,%ecx
5354	xorl	%edi,%ebx
5355	addl	16(%esp),%edx
5356	shrdl	$11,%ecx,%ecx
5357	andl	%ebx,%eax
5358	xorl	%esi,%ecx
5359	addl	44(%esp),%edx
5360	xorl	%edi,%eax
5361	shrdl	$2,%ecx,%ecx
5362	addl	%edx,%eax
5363	addl	(%esp),%edx
5364	addl	%ecx,%eax
5365	movl	%edx,%ecx
5366	shrdl	$14,%edx,%edx
5367	movl	4(%esp),%esi
5368	xorl	%ecx,%edx
5369	movl	8(%esp),%edi
5370	xorl	%edi,%esi
5371	shrdl	$5,%edx,%edx
5372	andl	%ecx,%esi
5373	movl	%ecx,(%esp)
5374	xorl	%ecx,%edx
5375	xorl	%esi,%edi
5376	shrdl	$6,%edx,%edx
5377	movl	%eax,%ecx
5378	addl	%edi,%edx
5379	movl	20(%esp),%edi
5380	movl	%eax,%esi
5381	shrdl	$9,%ecx,%ecx
5382	movl	%eax,16(%esp)
5383	xorl	%eax,%ecx
5384	xorl	%edi,%eax
5385	addl	12(%esp),%edx
5386	shrdl	$11,%ecx,%ecx
5387	andl	%eax,%ebx
5388	xorl	%esi,%ecx
5389	addl	48(%esp),%edx
5390	xorl	%edi,%ebx
5391	shrdl	$2,%ecx,%ecx
5392	addl	%edx,%ebx
5393	addl	28(%esp),%edx
5394	addl	%ecx,%ebx
5395	movl	%edx,%ecx
5396	shrdl	$14,%edx,%edx
5397	movl	(%esp),%esi
5398	xorl	%ecx,%edx
5399	movl	4(%esp),%edi
5400	xorl	%edi,%esi
5401	shrdl	$5,%edx,%edx
5402	andl	%ecx,%esi
5403	movl	%ecx,28(%esp)
5404	xorl	%ecx,%edx
5405	xorl	%esi,%edi
5406	shrdl	$6,%edx,%edx
5407	movl	%ebx,%ecx
5408	addl	%edi,%edx
5409	movl	16(%esp),%edi
5410	movl	%ebx,%esi
5411	shrdl	$9,%ecx,%ecx
5412	movl	%ebx,12(%esp)
5413	xorl	%ebx,%ecx
5414	xorl	%edi,%ebx
5415	addl	8(%esp),%edx
5416	shrdl	$11,%ecx,%ecx
5417	andl	%ebx,%eax
5418	xorl	%esi,%ecx
5419	addl	52(%esp),%edx
5420	xorl	%edi,%eax
5421	shrdl	$2,%ecx,%ecx
5422	addl	%edx,%eax
5423	addl	24(%esp),%edx
5424	addl	%ecx,%eax
5425	movl	%edx,%ecx
5426	shrdl	$14,%edx,%edx
5427	movl	28(%esp),%esi
5428	xorl	%ecx,%edx
5429	movl	(%esp),%edi
5430	xorl	%edi,%esi
5431	shrdl	$5,%edx,%edx
5432	andl	%ecx,%esi
5433	movl	%ecx,24(%esp)
5434	xorl	%ecx,%edx
5435	xorl	%esi,%edi
5436	shrdl	$6,%edx,%edx
5437	movl	%eax,%ecx
5438	addl	%edi,%edx
5439	movl	12(%esp),%edi
5440	movl	%eax,%esi
5441	shrdl	$9,%ecx,%ecx
5442	movl	%eax,8(%esp)
5443	xorl	%eax,%ecx
5444	xorl	%edi,%eax
5445	addl	4(%esp),%edx
5446	shrdl	$11,%ecx,%ecx
5447	andl	%eax,%ebx
5448	xorl	%esi,%ecx
5449	addl	56(%esp),%edx
5450	xorl	%edi,%ebx
5451	shrdl	$2,%ecx,%ecx
5452	addl	%edx,%ebx
5453	addl	20(%esp),%edx
5454	addl	%ecx,%ebx
5455	movl	%edx,%ecx
5456	shrdl	$14,%edx,%edx
5457	movl	24(%esp),%esi
5458	xorl	%ecx,%edx
5459	movl	28(%esp),%edi
5460	xorl	%edi,%esi
5461	shrdl	$5,%edx,%edx
5462	andl	%ecx,%esi
5463	movl	%ecx,20(%esp)
5464	xorl	%ecx,%edx
5465	xorl	%esi,%edi
5466	shrdl	$6,%edx,%edx
5467	movl	%ebx,%ecx
5468	addl	%edi,%edx
5469	movl	8(%esp),%edi
5470	movl	%ebx,%esi
5471	shrdl	$9,%ecx,%ecx
5472	movl	%ebx,4(%esp)
5473	xorl	%ebx,%ecx
5474	xorl	%edi,%ebx
5475	addl	(%esp),%edx
5476	shrdl	$11,%ecx,%ecx
5477	andl	%ebx,%eax
5478	xorl	%esi,%ecx
5479	addl	60(%esp),%edx
5480	xorl	%edi,%eax
5481	shrdl	$2,%ecx,%ecx
5482	addl	%edx,%eax
5483	addl	16(%esp),%edx
5484	addl	%ecx,%eax
5485	movl	%edx,%ecx
5486	shrdl	$14,%edx,%edx
5487	movl	20(%esp),%esi
5488	xorl	%ecx,%edx
5489	movl	24(%esp),%edi
5490	xorl	%edi,%esi
5491	shrdl	$5,%edx,%edx
5492	andl	%ecx,%esi
5493	movl	%ecx,16(%esp)
5494	xorl	%ecx,%edx
5495	xorl	%esi,%edi
5496	shrdl	$6,%edx,%edx
5497	movl	%eax,%ecx
5498	addl	%edi,%edx
5499	movl	4(%esp),%edi
5500	movl	%eax,%esi
5501	shrdl	$9,%ecx,%ecx
5502	movl	%eax,(%esp)
5503	xorl	%eax,%ecx
5504	xorl	%edi,%eax
5505	addl	28(%esp),%edx
5506	shrdl	$11,%ecx,%ecx
5507	andl	%eax,%ebx
5508	xorl	%esi,%ecx
5509	addl	64(%esp),%edx
5510	xorl	%edi,%ebx
5511	shrdl	$2,%ecx,%ecx
5512	addl	%edx,%ebx
5513	addl	12(%esp),%edx
5514	addl	%ecx,%ebx
5515	movl	%edx,%ecx
5516	shrdl	$14,%edx,%edx
5517	movl	16(%esp),%esi
5518	xorl	%ecx,%edx
5519	movl	20(%esp),%edi
5520	xorl	%edi,%esi
5521	shrdl	$5,%edx,%edx
5522	andl	%ecx,%esi
5523	movl	%ecx,12(%esp)
5524	xorl	%ecx,%edx
5525	xorl	%esi,%edi
5526	shrdl	$6,%edx,%edx
5527	movl	%ebx,%ecx
5528	addl	%edi,%edx
5529	movl	(%esp),%edi
5530	movl	%ebx,%esi
5531	shrdl	$9,%ecx,%ecx
5532	movl	%ebx,28(%esp)
5533	xorl	%ebx,%ecx
5534	xorl	%edi,%ebx
5535	addl	24(%esp),%edx
5536	shrdl	$11,%ecx,%ecx
5537	andl	%ebx,%eax
5538	xorl	%esi,%ecx
5539	addl	68(%esp),%edx
5540	xorl	%edi,%eax
5541	shrdl	$2,%ecx,%ecx
5542	addl	%edx,%eax
5543	addl	8(%esp),%edx
5544	addl	%ecx,%eax
5545	movl	%edx,%ecx
5546	shrdl	$14,%edx,%edx
5547	movl	12(%esp),%esi
5548	xorl	%ecx,%edx
5549	movl	16(%esp),%edi
5550	xorl	%edi,%esi
5551	shrdl	$5,%edx,%edx
5552	andl	%ecx,%esi
5553	movl	%ecx,8(%esp)
5554	xorl	%ecx,%edx
5555	xorl	%esi,%edi
5556	shrdl	$6,%edx,%edx
5557	movl	%eax,%ecx
5558	addl	%edi,%edx
5559	movl	28(%esp),%edi
5560	movl	%eax,%esi
5561	shrdl	$9,%ecx,%ecx
5562	movl	%eax,24(%esp)
5563	xorl	%eax,%ecx
5564	xorl	%edi,%eax
5565	addl	20(%esp),%edx
5566	shrdl	$11,%ecx,%ecx
5567	andl	%eax,%ebx
5568	xorl	%esi,%ecx
5569	addl	72(%esp),%edx
5570	xorl	%edi,%ebx
5571	shrdl	$2,%ecx,%ecx
5572	addl	%edx,%ebx
5573	addl	4(%esp),%edx
5574	addl	%ecx,%ebx
5575	movl	%edx,%ecx
5576	shrdl	$14,%edx,%edx
5577	movl	8(%esp),%esi
5578	xorl	%ecx,%edx
5579	movl	12(%esp),%edi
5580	xorl	%edi,%esi
5581	shrdl	$5,%edx,%edx
5582	andl	%ecx,%esi
5583	movl	%ecx,4(%esp)
5584	xorl	%ecx,%edx
5585	xorl	%esi,%edi
5586	shrdl	$6,%edx,%edx
5587	movl	%ebx,%ecx
5588	addl	%edi,%edx
5589	movl	24(%esp),%edi
5590	movl	%ebx,%esi
5591	shrdl	$9,%ecx,%ecx
5592	movl	%ebx,20(%esp)
5593	xorl	%ebx,%ecx
5594	xorl	%edi,%ebx
5595	addl	16(%esp),%edx
5596	shrdl	$11,%ecx,%ecx
5597	andl	%ebx,%eax
5598	xorl	%esi,%ecx
5599	addl	76(%esp),%edx
5600	xorl	%edi,%eax
5601	shrdl	$2,%ecx,%ecx
5602	addl	%edx,%eax
5603	addl	(%esp),%edx
5604	addl	%ecx,%eax
5605	movl	%edx,%ecx
5606	shrdl	$14,%edx,%edx
5607	movl	4(%esp),%esi
5608	xorl	%ecx,%edx
5609	movl	8(%esp),%edi
5610	xorl	%edi,%esi
5611	shrdl	$5,%edx,%edx
5612	andl	%ecx,%esi
5613	movl	%ecx,(%esp)
5614	xorl	%ecx,%edx
5615	xorl	%esi,%edi
5616	shrdl	$6,%edx,%edx
5617	movl	%eax,%ecx
5618	addl	%edi,%edx
5619	movl	20(%esp),%edi
5620	movl	%eax,%esi
5621	shrdl	$9,%ecx,%ecx
5622	movl	%eax,16(%esp)
5623	xorl	%eax,%ecx
5624	xorl	%edi,%eax
5625	addl	12(%esp),%edx
5626	shrdl	$11,%ecx,%ecx
5627	andl	%eax,%ebx
5628	xorl	%esi,%ecx
5629	addl	80(%esp),%edx
5630	xorl	%edi,%ebx
5631	shrdl	$2,%ecx,%ecx
5632	addl	%edx,%ebx
5633	addl	28(%esp),%edx
5634	addl	%ecx,%ebx
5635	movl	%edx,%ecx
5636	shrdl	$14,%edx,%edx
5637	movl	(%esp),%esi
5638	xorl	%ecx,%edx
5639	movl	4(%esp),%edi
5640	xorl	%edi,%esi
5641	shrdl	$5,%edx,%edx
5642	andl	%ecx,%esi
5643	movl	%ecx,28(%esp)
5644	xorl	%ecx,%edx
5645	xorl	%esi,%edi
5646	shrdl	$6,%edx,%edx
5647	movl	%ebx,%ecx
5648	addl	%edi,%edx
5649	movl	16(%esp),%edi
5650	movl	%ebx,%esi
5651	shrdl	$9,%ecx,%ecx
5652	movl	%ebx,12(%esp)
5653	xorl	%ebx,%ecx
5654	xorl	%edi,%ebx
5655	addl	8(%esp),%edx
5656	shrdl	$11,%ecx,%ecx
5657	andl	%ebx,%eax
5658	xorl	%esi,%ecx
5659	addl	84(%esp),%edx
5660	xorl	%edi,%eax
5661	shrdl	$2,%ecx,%ecx
5662	addl	%edx,%eax
5663	addl	24(%esp),%edx
5664	addl	%ecx,%eax
5665	movl	%edx,%ecx
5666	shrdl	$14,%edx,%edx
5667	movl	28(%esp),%esi
5668	xorl	%ecx,%edx
5669	movl	(%esp),%edi
5670	xorl	%edi,%esi
5671	shrdl	$5,%edx,%edx
5672	andl	%ecx,%esi
5673	movl	%ecx,24(%esp)
5674	xorl	%ecx,%edx
5675	xorl	%esi,%edi
5676	shrdl	$6,%edx,%edx
5677	movl	%eax,%ecx
5678	addl	%edi,%edx
5679	movl	12(%esp),%edi
5680	movl	%eax,%esi
5681	shrdl	$9,%ecx,%ecx
5682	movl	%eax,8(%esp)
5683	xorl	%eax,%ecx
5684	xorl	%edi,%eax
5685	addl	4(%esp),%edx
5686	shrdl	$11,%ecx,%ecx
5687	andl	%eax,%ebx
5688	xorl	%esi,%ecx
5689	addl	88(%esp),%edx
5690	xorl	%edi,%ebx
5691	shrdl	$2,%ecx,%ecx
5692	addl	%edx,%ebx
5693	addl	20(%esp),%edx
5694	addl	%ecx,%ebx
5695	movl	%edx,%ecx
5696	shrdl	$14,%edx,%edx
5697	movl	24(%esp),%esi
5698	xorl	%ecx,%edx
5699	movl	28(%esp),%edi
5700	xorl	%edi,%esi
5701	shrdl	$5,%edx,%edx
5702	andl	%ecx,%esi
5703	movl	%ecx,20(%esp)
5704	xorl	%ecx,%edx
5705	xorl	%esi,%edi
5706	shrdl	$6,%edx,%edx
5707	movl	%ebx,%ecx
5708	addl	%edi,%edx
5709	movl	8(%esp),%edi
5710	movl	%ebx,%esi
5711	shrdl	$9,%ecx,%ecx
5712	movl	%ebx,4(%esp)
5713	xorl	%ebx,%ecx
5714	xorl	%edi,%ebx
5715	addl	(%esp),%edx
5716	shrdl	$11,%ecx,%ecx
5717	andl	%ebx,%eax
5718	xorl	%esi,%ecx
5719	addl	92(%esp),%edx
5720	xorl	%edi,%eax
5721	shrdl	$2,%ecx,%ecx
5722	addl	%edx,%eax
5723	addl	16(%esp),%edx
5724	addl	%ecx,%eax
5725	movl	96(%esp),%esi
5726	xorl	%edi,%ebx
5727	movl	12(%esp),%ecx
5728	addl	(%esi),%eax
5729	addl	4(%esi),%ebx
5730	addl	8(%esi),%edi
5731	addl	12(%esi),%ecx
5732	movl	%eax,(%esi)
5733	movl	%ebx,4(%esi)
5734	movl	%edi,8(%esi)
5735	movl	%ecx,12(%esi)
5736	movl	%ebx,4(%esp)
5737	xorl	%edi,%ebx
5738	movl	%edi,8(%esp)
5739	movl	%ecx,12(%esp)
5740	movl	20(%esp),%edi
5741	movl	24(%esp),%ecx
5742	addl	16(%esi),%edx
5743	addl	20(%esi),%edi
5744	addl	24(%esi),%ecx
5745	movl	%edx,16(%esi)
5746	movl	%edi,20(%esi)
5747	movl	%edi,20(%esp)
5748	movl	28(%esp),%edi
5749	movl	%ecx,24(%esi)
5750	addl	28(%esi),%edi
5751	movl	%ecx,24(%esp)
5752	movl	%edi,28(%esi)
5753	movl	%edi,28(%esp)
5754	movl	100(%esp),%edi
5755	vmovdqa	64(%ebp),%xmm7
5756	subl	$192,%ebp
5757	cmpl	104(%esp),%edi
5758	jb	L015grand_avx
5759	movl	108(%esp),%esp
5760	vzeroall
5761	popl	%edi
5762	popl	%esi
5763	popl	%ebx
5764	popl	%ebp
5765	ret
5766.align	5,0x90
5767L014AVX_BMI:
5768	leal	-96(%esp),%esp
5769	vzeroall
5770	movl	(%esi),%eax
5771	movl	4(%esi),%ebx
5772	movl	8(%esi),%ecx
5773	movl	12(%esi),%edi
5774	movl	%ebx,4(%esp)
5775	xorl	%ecx,%ebx
5776	movl	%ecx,8(%esp)
5777	movl	%edi,12(%esp)
5778	movl	16(%esi),%edx
5779	movl	20(%esi),%edi
5780	movl	24(%esi),%ecx
5781	movl	28(%esi),%esi
5782	movl	%edi,20(%esp)
5783	movl	100(%esp),%edi
5784	movl	%ecx,24(%esp)
5785	movl	%esi,28(%esp)
5786	vmovdqa	256(%ebp),%xmm7
5787	jmp	L017grand_avx_bmi
5788.align	5,0x90
5789L017grand_avx_bmi:
5790	vmovdqu	(%edi),%xmm0
5791	vmovdqu	16(%edi),%xmm1
5792	vmovdqu	32(%edi),%xmm2
5793	vmovdqu	48(%edi),%xmm3
5794	addl	$64,%edi
5795	vpshufb	%xmm7,%xmm0,%xmm0
5796	movl	%edi,100(%esp)
5797	vpshufb	%xmm7,%xmm1,%xmm1
5798	vpshufb	%xmm7,%xmm2,%xmm2
5799	vpaddd	(%ebp),%xmm0,%xmm4
5800	vpshufb	%xmm7,%xmm3,%xmm3
5801	vpaddd	16(%ebp),%xmm1,%xmm5
5802	vpaddd	32(%ebp),%xmm2,%xmm6
5803	vpaddd	48(%ebp),%xmm3,%xmm7
5804	vmovdqa	%xmm4,32(%esp)
5805	vmovdqa	%xmm5,48(%esp)
5806	vmovdqa	%xmm6,64(%esp)
5807	vmovdqa	%xmm7,80(%esp)
5808	jmp	L018avx_bmi_00_47
5809.align	4,0x90
5810L018avx_bmi_00_47:
5811	addl	$64,%ebp
5812	vpalignr	$4,%xmm0,%xmm1,%xmm4
5813	rorxl	$6,%edx,%ecx
5814	rorxl	$11,%edx,%esi
5815	movl	%edx,16(%esp)
5816	vpalignr	$4,%xmm2,%xmm3,%xmm7
5817	rorxl	$25,%edx,%edi
5818	xorl	%esi,%ecx
5819	andnl	24(%esp),%edx,%esi
5820	vpsrld	$7,%xmm4,%xmm6
5821	xorl	%edi,%ecx
5822	andl	20(%esp),%edx
5823	movl	%eax,(%esp)
5824	vpaddd	%xmm7,%xmm0,%xmm0
5825	orl	%esi,%edx
5826	rorxl	$2,%eax,%edi
5827	rorxl	$13,%eax,%esi
5828	vpsrld	$3,%xmm4,%xmm7
5829	leal	(%edx,%ecx,1),%edx
5830	rorxl	$22,%eax,%ecx
5831	xorl	%edi,%esi
5832	vpslld	$14,%xmm4,%xmm5
5833	movl	4(%esp),%edi
5834	xorl	%esi,%ecx
5835	xorl	%edi,%eax
5836	vpxor	%xmm6,%xmm7,%xmm4
5837	addl	28(%esp),%edx
5838	andl	%eax,%ebx
5839	addl	32(%esp),%edx
5840	vpshufd	$250,%xmm3,%xmm7
5841	xorl	%edi,%ebx
5842	addl	%edx,%ecx
5843	addl	12(%esp),%edx
5844	vpsrld	$11,%xmm6,%xmm6
5845	leal	(%ebx,%ecx,1),%ebx
5846	rorxl	$6,%edx,%ecx
5847	rorxl	$11,%edx,%esi
5848	vpxor	%xmm5,%xmm4,%xmm4
5849	movl	%edx,12(%esp)
5850	rorxl	$25,%edx,%edi
5851	xorl	%esi,%ecx
5852	vpslld	$11,%xmm5,%xmm5
5853	andnl	20(%esp),%edx,%esi
5854	xorl	%edi,%ecx
5855	andl	16(%esp),%edx
5856	vpxor	%xmm6,%xmm4,%xmm4
5857	movl	%ebx,28(%esp)
5858	orl	%esi,%edx
5859	rorxl	$2,%ebx,%edi
5860	rorxl	$13,%ebx,%esi
5861	vpsrld	$10,%xmm7,%xmm6
5862	leal	(%edx,%ecx,1),%edx
5863	rorxl	$22,%ebx,%ecx
5864	xorl	%edi,%esi
5865	vpxor	%xmm5,%xmm4,%xmm4
5866	movl	(%esp),%edi
5867	xorl	%esi,%ecx
5868	xorl	%edi,%ebx
5869	vpsrlq	$17,%xmm7,%xmm5
5870	addl	24(%esp),%edx
5871	andl	%ebx,%eax
5872	addl	36(%esp),%edx
5873	vpaddd	%xmm4,%xmm0,%xmm0
5874	xorl	%edi,%eax
5875	addl	%edx,%ecx
5876	addl	8(%esp),%edx
5877	vpxor	%xmm5,%xmm6,%xmm6
5878	leal	(%eax,%ecx,1),%eax
5879	rorxl	$6,%edx,%ecx
5880	rorxl	$11,%edx,%esi
5881	vpsrlq	$19,%xmm7,%xmm7
5882	movl	%edx,8(%esp)
5883	rorxl	$25,%edx,%edi
5884	xorl	%esi,%ecx
5885	vpxor	%xmm7,%xmm6,%xmm6
5886	andnl	16(%esp),%edx,%esi
5887	xorl	%edi,%ecx
5888	andl	12(%esp),%edx
5889	vpshufd	$132,%xmm6,%xmm7
5890	movl	%eax,24(%esp)
5891	orl	%esi,%edx
5892	rorxl	$2,%eax,%edi
5893	rorxl	$13,%eax,%esi
5894	vpsrldq	$8,%xmm7,%xmm7
5895	leal	(%edx,%ecx,1),%edx
5896	rorxl	$22,%eax,%ecx
5897	xorl	%edi,%esi
5898	vpaddd	%xmm7,%xmm0,%xmm0
5899	movl	28(%esp),%edi
5900	xorl	%esi,%ecx
5901	xorl	%edi,%eax
5902	vpshufd	$80,%xmm0,%xmm7
5903	addl	20(%esp),%edx
5904	andl	%eax,%ebx
5905	addl	40(%esp),%edx
5906	vpsrld	$10,%xmm7,%xmm6
5907	xorl	%edi,%ebx
5908	addl	%edx,%ecx
5909	addl	4(%esp),%edx
5910	vpsrlq	$17,%xmm7,%xmm5
5911	leal	(%ebx,%ecx,1),%ebx
5912	rorxl	$6,%edx,%ecx
5913	rorxl	$11,%edx,%esi
5914	vpxor	%xmm5,%xmm6,%xmm6
5915	movl	%edx,4(%esp)
5916	rorxl	$25,%edx,%edi
5917	xorl	%esi,%ecx
5918	vpsrlq	$19,%xmm7,%xmm7
5919	andnl	12(%esp),%edx,%esi
5920	xorl	%edi,%ecx
5921	andl	8(%esp),%edx
5922	vpxor	%xmm7,%xmm6,%xmm6
5923	movl	%ebx,20(%esp)
5924	orl	%esi,%edx
5925	rorxl	$2,%ebx,%edi
5926	rorxl	$13,%ebx,%esi
5927	vpshufd	$232,%xmm6,%xmm7
5928	leal	(%edx,%ecx,1),%edx
5929	rorxl	$22,%ebx,%ecx
5930	xorl	%edi,%esi
5931	vpslldq	$8,%xmm7,%xmm7
5932	movl	24(%esp),%edi
5933	xorl	%esi,%ecx
5934	xorl	%edi,%ebx
5935	vpaddd	%xmm7,%xmm0,%xmm0
5936	addl	16(%esp),%edx
5937	andl	%ebx,%eax
5938	addl	44(%esp),%edx
5939	vpaddd	(%ebp),%xmm0,%xmm6
5940	xorl	%edi,%eax
5941	addl	%edx,%ecx
5942	addl	(%esp),%edx
5943	leal	(%eax,%ecx,1),%eax
5944	vmovdqa	%xmm6,32(%esp)
5945	vpalignr	$4,%xmm1,%xmm2,%xmm4
5946	rorxl	$6,%edx,%ecx
5947	rorxl	$11,%edx,%esi
5948	movl	%edx,(%esp)
5949	vpalignr	$4,%xmm3,%xmm0,%xmm7
5950	rorxl	$25,%edx,%edi
5951	xorl	%esi,%ecx
5952	andnl	8(%esp),%edx,%esi
5953	vpsrld	$7,%xmm4,%xmm6
5954	xorl	%edi,%ecx
5955	andl	4(%esp),%edx
5956	movl	%eax,16(%esp)
5957	vpaddd	%xmm7,%xmm1,%xmm1
5958	orl	%esi,%edx
5959	rorxl	$2,%eax,%edi
5960	rorxl	$13,%eax,%esi
5961	vpsrld	$3,%xmm4,%xmm7
5962	leal	(%edx,%ecx,1),%edx
5963	rorxl	$22,%eax,%ecx
5964	xorl	%edi,%esi
5965	vpslld	$14,%xmm4,%xmm5
5966	movl	20(%esp),%edi
5967	xorl	%esi,%ecx
5968	xorl	%edi,%eax
5969	vpxor	%xmm6,%xmm7,%xmm4
5970	addl	12(%esp),%edx
5971	andl	%eax,%ebx
5972	addl	48(%esp),%edx
5973	vpshufd	$250,%xmm0,%xmm7
5974	xorl	%edi,%ebx
5975	addl	%edx,%ecx
5976	addl	28(%esp),%edx
5977	vpsrld	$11,%xmm6,%xmm6
5978	leal	(%ebx,%ecx,1),%ebx
5979	rorxl	$6,%edx,%ecx
5980	rorxl	$11,%edx,%esi
5981	vpxor	%xmm5,%xmm4,%xmm4
5982	movl	%edx,28(%esp)
5983	rorxl	$25,%edx,%edi
5984	xorl	%esi,%ecx
5985	vpslld	$11,%xmm5,%xmm5
5986	andnl	4(%esp),%edx,%esi
5987	xorl	%edi,%ecx
5988	andl	(%esp),%edx
5989	vpxor	%xmm6,%xmm4,%xmm4
5990	movl	%ebx,12(%esp)
5991	orl	%esi,%edx
5992	rorxl	$2,%ebx,%edi
5993	rorxl	$13,%ebx,%esi
5994	vpsrld	$10,%xmm7,%xmm6
5995	leal	(%edx,%ecx,1),%edx
5996	rorxl	$22,%ebx,%ecx
5997	xorl	%edi,%esi
5998	vpxor	%xmm5,%xmm4,%xmm4
5999	movl	16(%esp),%edi
6000	xorl	%esi,%ecx
6001	xorl	%edi,%ebx
6002	vpsrlq	$17,%xmm7,%xmm5
6003	addl	8(%esp),%edx
6004	andl	%ebx,%eax
6005	addl	52(%esp),%edx
6006	vpaddd	%xmm4,%xmm1,%xmm1
6007	xorl	%edi,%eax
6008	addl	%edx,%ecx
6009	addl	24(%esp),%edx
6010	vpxor	%xmm5,%xmm6,%xmm6
6011	leal	(%eax,%ecx,1),%eax
6012	rorxl	$6,%edx,%ecx
6013	rorxl	$11,%edx,%esi
6014	vpsrlq	$19,%xmm7,%xmm7
6015	movl	%edx,24(%esp)
6016	rorxl	$25,%edx,%edi
6017	xorl	%esi,%ecx
6018	vpxor	%xmm7,%xmm6,%xmm6
6019	andnl	(%esp),%edx,%esi
6020	xorl	%edi,%ecx
6021	andl	28(%esp),%edx
6022	vpshufd	$132,%xmm6,%xmm7
6023	movl	%eax,8(%esp)
6024	orl	%esi,%edx
6025	rorxl	$2,%eax,%edi
6026	rorxl	$13,%eax,%esi
6027	vpsrldq	$8,%xmm7,%xmm7
6028	leal	(%edx,%ecx,1),%edx
6029	rorxl	$22,%eax,%ecx
6030	xorl	%edi,%esi
6031	vpaddd	%xmm7,%xmm1,%xmm1
6032	movl	12(%esp),%edi
6033	xorl	%esi,%ecx
6034	xorl	%edi,%eax
6035	vpshufd	$80,%xmm1,%xmm7
6036	addl	4(%esp),%edx
6037	andl	%eax,%ebx
6038	addl	56(%esp),%edx
6039	vpsrld	$10,%xmm7,%xmm6
6040	xorl	%edi,%ebx
6041	addl	%edx,%ecx
6042	addl	20(%esp),%edx
6043	vpsrlq	$17,%xmm7,%xmm5
6044	leal	(%ebx,%ecx,1),%ebx
6045	rorxl	$6,%edx,%ecx
6046	rorxl	$11,%edx,%esi
6047	vpxor	%xmm5,%xmm6,%xmm6
6048	movl	%edx,20(%esp)
6049	rorxl	$25,%edx,%edi
6050	xorl	%esi,%ecx
6051	vpsrlq	$19,%xmm7,%xmm7
6052	andnl	28(%esp),%edx,%esi
6053	xorl	%edi,%ecx
6054	andl	24(%esp),%edx
6055	vpxor	%xmm7,%xmm6,%xmm6
6056	movl	%ebx,4(%esp)
6057	orl	%esi,%edx
6058	rorxl	$2,%ebx,%edi
6059	rorxl	$13,%ebx,%esi
6060	vpshufd	$232,%xmm6,%xmm7
6061	leal	(%edx,%ecx,1),%edx
6062	rorxl	$22,%ebx,%ecx
6063	xorl	%edi,%esi
6064	vpslldq	$8,%xmm7,%xmm7
6065	movl	8(%esp),%edi
6066	xorl	%esi,%ecx
6067	xorl	%edi,%ebx
6068	vpaddd	%xmm7,%xmm1,%xmm1
6069	addl	(%esp),%edx
6070	andl	%ebx,%eax
6071	addl	60(%esp),%edx
6072	vpaddd	16(%ebp),%xmm1,%xmm6
6073	xorl	%edi,%eax
6074	addl	%edx,%ecx
6075	addl	16(%esp),%edx
6076	leal	(%eax,%ecx,1),%eax
6077	vmovdqa	%xmm6,48(%esp)
6078	vpalignr	$4,%xmm2,%xmm3,%xmm4
6079	rorxl	$6,%edx,%ecx
6080	rorxl	$11,%edx,%esi
6081	movl	%edx,16(%esp)
6082	vpalignr	$4,%xmm0,%xmm1,%xmm7
6083	rorxl	$25,%edx,%edi
6084	xorl	%esi,%ecx
6085	andnl	24(%esp),%edx,%esi
6086	vpsrld	$7,%xmm4,%xmm6
6087	xorl	%edi,%ecx
6088	andl	20(%esp),%edx
6089	movl	%eax,(%esp)
6090	vpaddd	%xmm7,%xmm2,%xmm2
6091	orl	%esi,%edx
6092	rorxl	$2,%eax,%edi
6093	rorxl	$13,%eax,%esi
6094	vpsrld	$3,%xmm4,%xmm7
6095	leal	(%edx,%ecx,1),%edx
6096	rorxl	$22,%eax,%ecx
6097	xorl	%edi,%esi
6098	vpslld	$14,%xmm4,%xmm5
6099	movl	4(%esp),%edi
6100	xorl	%esi,%ecx
6101	xorl	%edi,%eax
6102	vpxor	%xmm6,%xmm7,%xmm4
6103	addl	28(%esp),%edx
6104	andl	%eax,%ebx
6105	addl	64(%esp),%edx
6106	vpshufd	$250,%xmm1,%xmm7
6107	xorl	%edi,%ebx
6108	addl	%edx,%ecx
6109	addl	12(%esp),%edx
6110	vpsrld	$11,%xmm6,%xmm6
6111	leal	(%ebx,%ecx,1),%ebx
6112	rorxl	$6,%edx,%ecx
6113	rorxl	$11,%edx,%esi
6114	vpxor	%xmm5,%xmm4,%xmm4
6115	movl	%edx,12(%esp)
6116	rorxl	$25,%edx,%edi
6117	xorl	%esi,%ecx
6118	vpslld	$11,%xmm5,%xmm5
6119	andnl	20(%esp),%edx,%esi
6120	xorl	%edi,%ecx
6121	andl	16(%esp),%edx
6122	vpxor	%xmm6,%xmm4,%xmm4
6123	movl	%ebx,28(%esp)
6124	orl	%esi,%edx
6125	rorxl	$2,%ebx,%edi
6126	rorxl	$13,%ebx,%esi
6127	vpsrld	$10,%xmm7,%xmm6
6128	leal	(%edx,%ecx,1),%edx
6129	rorxl	$22,%ebx,%ecx
6130	xorl	%edi,%esi
6131	vpxor	%xmm5,%xmm4,%xmm4
6132	movl	(%esp),%edi
6133	xorl	%esi,%ecx
6134	xorl	%edi,%ebx
6135	vpsrlq	$17,%xmm7,%xmm5
6136	addl	24(%esp),%edx
6137	andl	%ebx,%eax
6138	addl	68(%esp),%edx
6139	vpaddd	%xmm4,%xmm2,%xmm2
6140	xorl	%edi,%eax
6141	addl	%edx,%ecx
6142	addl	8(%esp),%edx
6143	vpxor	%xmm5,%xmm6,%xmm6
6144	leal	(%eax,%ecx,1),%eax
6145	rorxl	$6,%edx,%ecx
6146	rorxl	$11,%edx,%esi
6147	vpsrlq	$19,%xmm7,%xmm7
6148	movl	%edx,8(%esp)
6149	rorxl	$25,%edx,%edi
6150	xorl	%esi,%ecx
6151	vpxor	%xmm7,%xmm6,%xmm6
6152	andnl	16(%esp),%edx,%esi
6153	xorl	%edi,%ecx
6154	andl	12(%esp),%edx
6155	vpshufd	$132,%xmm6,%xmm7
6156	movl	%eax,24(%esp)
6157	orl	%esi,%edx
6158	rorxl	$2,%eax,%edi
6159	rorxl	$13,%eax,%esi
6160	vpsrldq	$8,%xmm7,%xmm7
6161	leal	(%edx,%ecx,1),%edx
6162	rorxl	$22,%eax,%ecx
6163	xorl	%edi,%esi
6164	vpaddd	%xmm7,%xmm2,%xmm2
6165	movl	28(%esp),%edi
6166	xorl	%esi,%ecx
6167	xorl	%edi,%eax
6168	vpshufd	$80,%xmm2,%xmm7
6169	addl	20(%esp),%edx
6170	andl	%eax,%ebx
6171	addl	72(%esp),%edx
6172	vpsrld	$10,%xmm7,%xmm6
6173	xorl	%edi,%ebx
6174	addl	%edx,%ecx
6175	addl	4(%esp),%edx
6176	vpsrlq	$17,%xmm7,%xmm5
6177	leal	(%ebx,%ecx,1),%ebx
6178	rorxl	$6,%edx,%ecx
6179	rorxl	$11,%edx,%esi
6180	vpxor	%xmm5,%xmm6,%xmm6
6181	movl	%edx,4(%esp)
6182	rorxl	$25,%edx,%edi
6183	xorl	%esi,%ecx
6184	vpsrlq	$19,%xmm7,%xmm7
6185	andnl	12(%esp),%edx,%esi
6186	xorl	%edi,%ecx
6187	andl	8(%esp),%edx
6188	vpxor	%xmm7,%xmm6,%xmm6
6189	movl	%ebx,20(%esp)
6190	orl	%esi,%edx
6191	rorxl	$2,%ebx,%edi
6192	rorxl	$13,%ebx,%esi
6193	vpshufd	$232,%xmm6,%xmm7
6194	leal	(%edx,%ecx,1),%edx
6195	rorxl	$22,%ebx,%ecx
6196	xorl	%edi,%esi
6197	vpslldq	$8,%xmm7,%xmm7
6198	movl	24(%esp),%edi
6199	xorl	%esi,%ecx
6200	xorl	%edi,%ebx
6201	vpaddd	%xmm7,%xmm2,%xmm2
6202	addl	16(%esp),%edx
6203	andl	%ebx,%eax
6204	addl	76(%esp),%edx
6205	vpaddd	32(%ebp),%xmm2,%xmm6
6206	xorl	%edi,%eax
6207	addl	%edx,%ecx
6208	addl	(%esp),%edx
6209	leal	(%eax,%ecx,1),%eax
6210	vmovdqa	%xmm6,64(%esp)
6211	vpalignr	$4,%xmm3,%xmm0,%xmm4
6212	rorxl	$6,%edx,%ecx
6213	rorxl	$11,%edx,%esi
6214	movl	%edx,(%esp)
6215	vpalignr	$4,%xmm1,%xmm2,%xmm7
6216	rorxl	$25,%edx,%edi
6217	xorl	%esi,%ecx
6218	andnl	8(%esp),%edx,%esi
6219	vpsrld	$7,%xmm4,%xmm6
6220	xorl	%edi,%ecx
6221	andl	4(%esp),%edx
6222	movl	%eax,16(%esp)
6223	vpaddd	%xmm7,%xmm3,%xmm3
6224	orl	%esi,%edx
6225	rorxl	$2,%eax,%edi
6226	rorxl	$13,%eax,%esi
6227	vpsrld	$3,%xmm4,%xmm7
6228	leal	(%edx,%ecx,1),%edx
6229	rorxl	$22,%eax,%ecx
6230	xorl	%edi,%esi
6231	vpslld	$14,%xmm4,%xmm5
6232	movl	20(%esp),%edi
6233	xorl	%esi,%ecx
6234	xorl	%edi,%eax
6235	vpxor	%xmm6,%xmm7,%xmm4
6236	addl	12(%esp),%edx
6237	andl	%eax,%ebx
6238	addl	80(%esp),%edx
6239	vpshufd	$250,%xmm2,%xmm7
6240	xorl	%edi,%ebx
6241	addl	%edx,%ecx
6242	addl	28(%esp),%edx
6243	vpsrld	$11,%xmm6,%xmm6
6244	leal	(%ebx,%ecx,1),%ebx
6245	rorxl	$6,%edx,%ecx
6246	rorxl	$11,%edx,%esi
6247	vpxor	%xmm5,%xmm4,%xmm4
6248	movl	%edx,28(%esp)
6249	rorxl	$25,%edx,%edi
6250	xorl	%esi,%ecx
6251	vpslld	$11,%xmm5,%xmm5
6252	andnl	4(%esp),%edx,%esi
6253	xorl	%edi,%ecx
6254	andl	(%esp),%edx
6255	vpxor	%xmm6,%xmm4,%xmm4
6256	movl	%ebx,12(%esp)
6257	orl	%esi,%edx
6258	rorxl	$2,%ebx,%edi
6259	rorxl	$13,%ebx,%esi
6260	vpsrld	$10,%xmm7,%xmm6
6261	leal	(%edx,%ecx,1),%edx
6262	rorxl	$22,%ebx,%ecx
6263	xorl	%edi,%esi
6264	vpxor	%xmm5,%xmm4,%xmm4
6265	movl	16(%esp),%edi
6266	xorl	%esi,%ecx
6267	xorl	%edi,%ebx
6268	vpsrlq	$17,%xmm7,%xmm5
6269	addl	8(%esp),%edx
6270	andl	%ebx,%eax
6271	addl	84(%esp),%edx
6272	vpaddd	%xmm4,%xmm3,%xmm3
6273	xorl	%edi,%eax
6274	addl	%edx,%ecx
6275	addl	24(%esp),%edx
6276	vpxor	%xmm5,%xmm6,%xmm6
6277	leal	(%eax,%ecx,1),%eax
6278	rorxl	$6,%edx,%ecx
6279	rorxl	$11,%edx,%esi
6280	vpsrlq	$19,%xmm7,%xmm7
6281	movl	%edx,24(%esp)
6282	rorxl	$25,%edx,%edi
6283	xorl	%esi,%ecx
6284	vpxor	%xmm7,%xmm6,%xmm6
6285	andnl	(%esp),%edx,%esi
6286	xorl	%edi,%ecx
6287	andl	28(%esp),%edx
6288	vpshufd	$132,%xmm6,%xmm7
6289	movl	%eax,8(%esp)
6290	orl	%esi,%edx
6291	rorxl	$2,%eax,%edi
6292	rorxl	$13,%eax,%esi
6293	vpsrldq	$8,%xmm7,%xmm7
6294	leal	(%edx,%ecx,1),%edx
6295	rorxl	$22,%eax,%ecx
6296	xorl	%edi,%esi
6297	vpaddd	%xmm7,%xmm3,%xmm3
6298	movl	12(%esp),%edi
6299	xorl	%esi,%ecx
6300	xorl	%edi,%eax
6301	vpshufd	$80,%xmm3,%xmm7
6302	addl	4(%esp),%edx
6303	andl	%eax,%ebx
6304	addl	88(%esp),%edx
6305	vpsrld	$10,%xmm7,%xmm6
6306	xorl	%edi,%ebx
6307	addl	%edx,%ecx
6308	addl	20(%esp),%edx
6309	vpsrlq	$17,%xmm7,%xmm5
6310	leal	(%ebx,%ecx,1),%ebx
6311	rorxl	$6,%edx,%ecx
6312	rorxl	$11,%edx,%esi
6313	vpxor	%xmm5,%xmm6,%xmm6
6314	movl	%edx,20(%esp)
6315	rorxl	$25,%edx,%edi
6316	xorl	%esi,%ecx
6317	vpsrlq	$19,%xmm7,%xmm7
6318	andnl	28(%esp),%edx,%esi
6319	xorl	%edi,%ecx
6320	andl	24(%esp),%edx
6321	vpxor	%xmm7,%xmm6,%xmm6
6322	movl	%ebx,4(%esp)
6323	orl	%esi,%edx
6324	rorxl	$2,%ebx,%edi
6325	rorxl	$13,%ebx,%esi
6326	vpshufd	$232,%xmm6,%xmm7
6327	leal	(%edx,%ecx,1),%edx
6328	rorxl	$22,%ebx,%ecx
6329	xorl	%edi,%esi
6330	vpslldq	$8,%xmm7,%xmm7
6331	movl	8(%esp),%edi
6332	xorl	%esi,%ecx
6333	xorl	%edi,%ebx
6334	vpaddd	%xmm7,%xmm3,%xmm3
6335	addl	(%esp),%edx
6336	andl	%ebx,%eax
6337	addl	92(%esp),%edx
6338	vpaddd	48(%ebp),%xmm3,%xmm6
6339	xorl	%edi,%eax
6340	addl	%edx,%ecx
6341	addl	16(%esp),%edx
6342	leal	(%eax,%ecx,1),%eax
6343	vmovdqa	%xmm6,80(%esp)
6344	cmpl	$66051,64(%ebp)
6345	jne	L018avx_bmi_00_47
6346	rorxl	$6,%edx,%ecx
6347	rorxl	$11,%edx,%esi
6348	movl	%edx,16(%esp)
6349	rorxl	$25,%edx,%edi
6350	xorl	%esi,%ecx
6351	andnl	24(%esp),%edx,%esi
6352	xorl	%edi,%ecx
6353	andl	20(%esp),%edx
6354	movl	%eax,(%esp)
6355	orl	%esi,%edx
6356	rorxl	$2,%eax,%edi
6357	rorxl	$13,%eax,%esi
6358	leal	(%edx,%ecx,1),%edx
6359	rorxl	$22,%eax,%ecx
6360	xorl	%edi,%esi
6361	movl	4(%esp),%edi
6362	xorl	%esi,%ecx
6363	xorl	%edi,%eax
6364	addl	28(%esp),%edx
6365	andl	%eax,%ebx
6366	addl	32(%esp),%edx
6367	xorl	%edi,%ebx
6368	addl	%edx,%ecx
6369	addl	12(%esp),%edx
6370	leal	(%ebx,%ecx,1),%ebx
6371	rorxl	$6,%edx,%ecx
6372	rorxl	$11,%edx,%esi
6373	movl	%edx,12(%esp)
6374	rorxl	$25,%edx,%edi
6375	xorl	%esi,%ecx
6376	andnl	20(%esp),%edx,%esi
6377	xorl	%edi,%ecx
6378	andl	16(%esp),%edx
6379	movl	%ebx,28(%esp)
6380	orl	%esi,%edx
6381	rorxl	$2,%ebx,%edi
6382	rorxl	$13,%ebx,%esi
6383	leal	(%edx,%ecx,1),%edx
6384	rorxl	$22,%ebx,%ecx
6385	xorl	%edi,%esi
6386	movl	(%esp),%edi
6387	xorl	%esi,%ecx
6388	xorl	%edi,%ebx
6389	addl	24(%esp),%edx
6390	andl	%ebx,%eax
6391	addl	36(%esp),%edx
6392	xorl	%edi,%eax
6393	addl	%edx,%ecx
6394	addl	8(%esp),%edx
6395	leal	(%eax,%ecx,1),%eax
6396	rorxl	$6,%edx,%ecx
6397	rorxl	$11,%edx,%esi
6398	movl	%edx,8(%esp)
6399	rorxl	$25,%edx,%edi
6400	xorl	%esi,%ecx
6401	andnl	16(%esp),%edx,%esi
6402	xorl	%edi,%ecx
6403	andl	12(%esp),%edx
6404	movl	%eax,24(%esp)
6405	orl	%esi,%edx
6406	rorxl	$2,%eax,%edi
6407	rorxl	$13,%eax,%esi
6408	leal	(%edx,%ecx,1),%edx
6409	rorxl	$22,%eax,%ecx
6410	xorl	%edi,%esi
6411	movl	28(%esp),%edi
6412	xorl	%esi,%ecx
6413	xorl	%edi,%eax
6414	addl	20(%esp),%edx
6415	andl	%eax,%ebx
6416	addl	40(%esp),%edx
6417	xorl	%edi,%ebx
6418	addl	%edx,%ecx
6419	addl	4(%esp),%edx
6420	leal	(%ebx,%ecx,1),%ebx
6421	rorxl	$6,%edx,%ecx
6422	rorxl	$11,%edx,%esi
6423	movl	%edx,4(%esp)
6424	rorxl	$25,%edx,%edi
6425	xorl	%esi,%ecx
6426	andnl	12(%esp),%edx,%esi
6427	xorl	%edi,%ecx
6428	andl	8(%esp),%edx
6429	movl	%ebx,20(%esp)
6430	orl	%esi,%edx
6431	rorxl	$2,%ebx,%edi
6432	rorxl	$13,%ebx,%esi
6433	leal	(%edx,%ecx,1),%edx
6434	rorxl	$22,%ebx,%ecx
6435	xorl	%edi,%esi
6436	movl	24(%esp),%edi
6437	xorl	%esi,%ecx
6438	xorl	%edi,%ebx
6439	addl	16(%esp),%edx
6440	andl	%ebx,%eax
6441	addl	44(%esp),%edx
6442	xorl	%edi,%eax
6443	addl	%edx,%ecx
6444	addl	(%esp),%edx
6445	leal	(%eax,%ecx,1),%eax
6446	rorxl	$6,%edx,%ecx
6447	rorxl	$11,%edx,%esi
6448	movl	%edx,(%esp)
6449	rorxl	$25,%edx,%edi
6450	xorl	%esi,%ecx
6451	andnl	8(%esp),%edx,%esi
6452	xorl	%edi,%ecx
6453	andl	4(%esp),%edx
6454	movl	%eax,16(%esp)
6455	orl	%esi,%edx
6456	rorxl	$2,%eax,%edi
6457	rorxl	$13,%eax,%esi
6458	leal	(%edx,%ecx,1),%edx
6459	rorxl	$22,%eax,%ecx
6460	xorl	%edi,%esi
6461	movl	20(%esp),%edi
6462	xorl	%esi,%ecx
6463	xorl	%edi,%eax
6464	addl	12(%esp),%edx
6465	andl	%eax,%ebx
6466	addl	48(%esp),%edx
6467	xorl	%edi,%ebx
6468	addl	%edx,%ecx
6469	addl	28(%esp),%edx
6470	leal	(%ebx,%ecx,1),%ebx
6471	rorxl	$6,%edx,%ecx
6472	rorxl	$11,%edx,%esi
6473	movl	%edx,28(%esp)
6474	rorxl	$25,%edx,%edi
6475	xorl	%esi,%ecx
6476	andnl	4(%esp),%edx,%esi
6477	xorl	%edi,%ecx
6478	andl	(%esp),%edx
6479	movl	%ebx,12(%esp)
6480	orl	%esi,%edx
6481	rorxl	$2,%ebx,%edi
6482	rorxl	$13,%ebx,%esi
6483	leal	(%edx,%ecx,1),%edx
6484	rorxl	$22,%ebx,%ecx
6485	xorl	%edi,%esi
6486	movl	16(%esp),%edi
6487	xorl	%esi,%ecx
6488	xorl	%edi,%ebx
6489	addl	8(%esp),%edx
6490	andl	%ebx,%eax
6491	addl	52(%esp),%edx
6492	xorl	%edi,%eax
6493	addl	%edx,%ecx
6494	addl	24(%esp),%edx
6495	leal	(%eax,%ecx,1),%eax
6496	rorxl	$6,%edx,%ecx
6497	rorxl	$11,%edx,%esi
6498	movl	%edx,24(%esp)
6499	rorxl	$25,%edx,%edi
6500	xorl	%esi,%ecx
6501	andnl	(%esp),%edx,%esi
6502	xorl	%edi,%ecx
6503	andl	28(%esp),%edx
6504	movl	%eax,8(%esp)
6505	orl	%esi,%edx
6506	rorxl	$2,%eax,%edi
6507	rorxl	$13,%eax,%esi
6508	leal	(%edx,%ecx,1),%edx
6509	rorxl	$22,%eax,%ecx
6510	xorl	%edi,%esi
6511	movl	12(%esp),%edi
6512	xorl	%esi,%ecx
6513	xorl	%edi,%eax
6514	addl	4(%esp),%edx
6515	andl	%eax,%ebx
6516	addl	56(%esp),%edx
6517	xorl	%edi,%ebx
6518	addl	%edx,%ecx
6519	addl	20(%esp),%edx
6520	leal	(%ebx,%ecx,1),%ebx
6521	rorxl	$6,%edx,%ecx
6522	rorxl	$11,%edx,%esi
6523	movl	%edx,20(%esp)
6524	rorxl	$25,%edx,%edi
6525	xorl	%esi,%ecx
6526	andnl	28(%esp),%edx,%esi
6527	xorl	%edi,%ecx
6528	andl	24(%esp),%edx
6529	movl	%ebx,4(%esp)
6530	orl	%esi,%edx
6531	rorxl	$2,%ebx,%edi
6532	rorxl	$13,%ebx,%esi
6533	leal	(%edx,%ecx,1),%edx
6534	rorxl	$22,%ebx,%ecx
6535	xorl	%edi,%esi
6536	movl	8(%esp),%edi
6537	xorl	%esi,%ecx
6538	xorl	%edi,%ebx
6539	addl	(%esp),%edx
6540	andl	%ebx,%eax
6541	addl	60(%esp),%edx
6542	xorl	%edi,%eax
6543	addl	%edx,%ecx
6544	addl	16(%esp),%edx
6545	leal	(%eax,%ecx,1),%eax
6546	rorxl	$6,%edx,%ecx
6547	rorxl	$11,%edx,%esi
6548	movl	%edx,16(%esp)
6549	rorxl	$25,%edx,%edi
6550	xorl	%esi,%ecx
6551	andnl	24(%esp),%edx,%esi
6552	xorl	%edi,%ecx
6553	andl	20(%esp),%edx
6554	movl	%eax,(%esp)
6555	orl	%esi,%edx
6556	rorxl	$2,%eax,%edi
6557	rorxl	$13,%eax,%esi
6558	leal	(%edx,%ecx,1),%edx
6559	rorxl	$22,%eax,%ecx
6560	xorl	%edi,%esi
6561	movl	4(%esp),%edi
6562	xorl	%esi,%ecx
6563	xorl	%edi,%eax
6564	addl	28(%esp),%edx
6565	andl	%eax,%ebx
6566	addl	64(%esp),%edx
6567	xorl	%edi,%ebx
6568	addl	%edx,%ecx
6569	addl	12(%esp),%edx
6570	leal	(%ebx,%ecx,1),%ebx
6571	rorxl	$6,%edx,%ecx
6572	rorxl	$11,%edx,%esi
6573	movl	%edx,12(%esp)
6574	rorxl	$25,%edx,%edi
6575	xorl	%esi,%ecx
6576	andnl	20(%esp),%edx,%esi
6577	xorl	%edi,%ecx
6578	andl	16(%esp),%edx
6579	movl	%ebx,28(%esp)
6580	orl	%esi,%edx
6581	rorxl	$2,%ebx,%edi
6582	rorxl	$13,%ebx,%esi
6583	leal	(%edx,%ecx,1),%edx
6584	rorxl	$22,%ebx,%ecx
6585	xorl	%edi,%esi
6586	movl	(%esp),%edi
6587	xorl	%esi,%ecx
6588	xorl	%edi,%ebx
6589	addl	24(%esp),%edx
6590	andl	%ebx,%eax
6591	addl	68(%esp),%edx
6592	xorl	%edi,%eax
6593	addl	%edx,%ecx
6594	addl	8(%esp),%edx
6595	leal	(%eax,%ecx,1),%eax
6596	rorxl	$6,%edx,%ecx
6597	rorxl	$11,%edx,%esi
6598	movl	%edx,8(%esp)
6599	rorxl	$25,%edx,%edi
6600	xorl	%esi,%ecx
6601	andnl	16(%esp),%edx,%esi
6602	xorl	%edi,%ecx
6603	andl	12(%esp),%edx
6604	movl	%eax,24(%esp)
6605	orl	%esi,%edx
6606	rorxl	$2,%eax,%edi
6607	rorxl	$13,%eax,%esi
6608	leal	(%edx,%ecx,1),%edx
6609	rorxl	$22,%eax,%ecx
6610	xorl	%edi,%esi
6611	movl	28(%esp),%edi
6612	xorl	%esi,%ecx
6613	xorl	%edi,%eax
6614	addl	20(%esp),%edx
6615	andl	%eax,%ebx
6616	addl	72(%esp),%edx
6617	xorl	%edi,%ebx
6618	addl	%edx,%ecx
6619	addl	4(%esp),%edx
6620	leal	(%ebx,%ecx,1),%ebx
6621	rorxl	$6,%edx,%ecx
6622	rorxl	$11,%edx,%esi
6623	movl	%edx,4(%esp)
6624	rorxl	$25,%edx,%edi
6625	xorl	%esi,%ecx
6626	andnl	12(%esp),%edx,%esi
6627	xorl	%edi,%ecx
6628	andl	8(%esp),%edx
6629	movl	%ebx,20(%esp)
6630	orl	%esi,%edx
6631	rorxl	$2,%ebx,%edi
6632	rorxl	$13,%ebx,%esi
6633	leal	(%edx,%ecx,1),%edx
6634	rorxl	$22,%ebx,%ecx
6635	xorl	%edi,%esi
6636	movl	24(%esp),%edi
6637	xorl	%esi,%ecx
6638	xorl	%edi,%ebx
6639	addl	16(%esp),%edx
6640	andl	%ebx,%eax
6641	addl	76(%esp),%edx
6642	xorl	%edi,%eax
6643	addl	%edx,%ecx
6644	addl	(%esp),%edx
6645	leal	(%eax,%ecx,1),%eax
6646	rorxl	$6,%edx,%ecx
6647	rorxl	$11,%edx,%esi
6648	movl	%edx,(%esp)
6649	rorxl	$25,%edx,%edi
6650	xorl	%esi,%ecx
6651	andnl	8(%esp),%edx,%esi
6652	xorl	%edi,%ecx
6653	andl	4(%esp),%edx
6654	movl	%eax,16(%esp)
6655	orl	%esi,%edx
6656	rorxl	$2,%eax,%edi
6657	rorxl	$13,%eax,%esi
6658	leal	(%edx,%ecx,1),%edx
6659	rorxl	$22,%eax,%ecx
6660	xorl	%edi,%esi
6661	movl	20(%esp),%edi
6662	xorl	%esi,%ecx
6663	xorl	%edi,%eax
6664	addl	12(%esp),%edx
6665	andl	%eax,%ebx
6666	addl	80(%esp),%edx
6667	xorl	%edi,%ebx
6668	addl	%edx,%ecx
6669	addl	28(%esp),%edx
6670	leal	(%ebx,%ecx,1),%ebx
6671	rorxl	$6,%edx,%ecx
6672	rorxl	$11,%edx,%esi
6673	movl	%edx,28(%esp)
6674	rorxl	$25,%edx,%edi
6675	xorl	%esi,%ecx
6676	andnl	4(%esp),%edx,%esi
6677	xorl	%edi,%ecx
6678	andl	(%esp),%edx
6679	movl	%ebx,12(%esp)
6680	orl	%esi,%edx
6681	rorxl	$2,%ebx,%edi
6682	rorxl	$13,%ebx,%esi
6683	leal	(%edx,%ecx,1),%edx
6684	rorxl	$22,%ebx,%ecx
6685	xorl	%edi,%esi
6686	movl	16(%esp),%edi
6687	xorl	%esi,%ecx
6688	xorl	%edi,%ebx
6689	addl	8(%esp),%edx
6690	andl	%ebx,%eax
6691	addl	84(%esp),%edx
6692	xorl	%edi,%eax
6693	addl	%edx,%ecx
6694	addl	24(%esp),%edx
6695	leal	(%eax,%ecx,1),%eax
6696	rorxl	$6,%edx,%ecx
6697	rorxl	$11,%edx,%esi
6698	movl	%edx,24(%esp)
6699	rorxl	$25,%edx,%edi
6700	xorl	%esi,%ecx
6701	andnl	(%esp),%edx,%esi
6702	xorl	%edi,%ecx
6703	andl	28(%esp),%edx
6704	movl	%eax,8(%esp)
6705	orl	%esi,%edx
6706	rorxl	$2,%eax,%edi
6707	rorxl	$13,%eax,%esi
6708	leal	(%edx,%ecx,1),%edx
6709	rorxl	$22,%eax,%ecx
6710	xorl	%edi,%esi
6711	movl	12(%esp),%edi
6712	xorl	%esi,%ecx
6713	xorl	%edi,%eax
6714	addl	4(%esp),%edx
6715	andl	%eax,%ebx
6716	addl	88(%esp),%edx
6717	xorl	%edi,%ebx
6718	addl	%edx,%ecx
6719	addl	20(%esp),%edx
6720	leal	(%ebx,%ecx,1),%ebx
6721	rorxl	$6,%edx,%ecx
6722	rorxl	$11,%edx,%esi
6723	movl	%edx,20(%esp)
6724	rorxl	$25,%edx,%edi
6725	xorl	%esi,%ecx
6726	andnl	28(%esp),%edx,%esi
6727	xorl	%edi,%ecx
6728	andl	24(%esp),%edx
6729	movl	%ebx,4(%esp)
6730	orl	%esi,%edx
6731	rorxl	$2,%ebx,%edi
6732	rorxl	$13,%ebx,%esi
6733	leal	(%edx,%ecx,1),%edx
6734	rorxl	$22,%ebx,%ecx
6735	xorl	%edi,%esi
6736	movl	8(%esp),%edi
6737	xorl	%esi,%ecx
6738	xorl	%edi,%ebx
6739	addl	(%esp),%edx
6740	andl	%ebx,%eax
6741	addl	92(%esp),%edx
6742	xorl	%edi,%eax
6743	addl	%edx,%ecx
6744	addl	16(%esp),%edx
6745	leal	(%eax,%ecx,1),%eax
6746	movl	96(%esp),%esi
6747	xorl	%edi,%ebx
6748	movl	12(%esp),%ecx
6749	addl	(%esi),%eax
6750	addl	4(%esi),%ebx
6751	addl	8(%esi),%edi
6752	addl	12(%esi),%ecx
6753	movl	%eax,(%esi)
6754	movl	%ebx,4(%esi)
6755	movl	%edi,8(%esi)
6756	movl	%ecx,12(%esi)
6757	movl	%ebx,4(%esp)
6758	xorl	%edi,%ebx
6759	movl	%edi,8(%esp)
6760	movl	%ecx,12(%esp)
6761	movl	20(%esp),%edi
6762	movl	24(%esp),%ecx
6763	addl	16(%esi),%edx
6764	addl	20(%esi),%edi
6765	addl	24(%esi),%ecx
6766	movl	%edx,16(%esi)
6767	movl	%edi,20(%esi)
6768	movl	%edi,20(%esp)
6769	movl	28(%esp),%edi
6770	movl	%ecx,24(%esi)
6771	addl	28(%esi),%edi
6772	movl	%ecx,24(%esp)
6773	movl	%edi,28(%esi)
6774	movl	%edi,28(%esp)
6775	movl	100(%esp),%edi
6776	vmovdqa	64(%ebp),%xmm7
6777	subl	$192,%ebp
6778	cmpl	104(%esp),%edi
6779	jb	L017grand_avx_bmi
6780	movl	108(%esp),%esp
6781	vzeroall
6782	popl	%edi
6783	popl	%esi
6784	popl	%ebx
6785	popl	%ebp
6786	ret
6787.comm	_OPENSSL_ia32cap_P,16
6788