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