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