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