1 .text
2 .globl	bn_mul_add_words
3 .type	bn_mul_add_words,@function
4 .align	16
5 bn_mul_add_words:
6 .L_bn_mul_add_words_begin:
7 	%ifdef __CET__
8 
9 .byte	243,15,30,251
10 	%endif
11 
12 	call	.L000PIC_me_up
13 .L000PIC_me_up:
14 	popl	%eax
15 	leal	OPENSSL_ia32cap_P-.L000PIC_me_up(%eax),%eax
16 	btl	$26,(%eax)
17 	jnc	.L001maw_non_sse2
18 	movl	4(%esp),%eax
19 	movl	8(%esp),%edx
20 	movl	12(%esp),%ecx
21 	movd	16(%esp),%mm0
22 	pxor	%mm1,%mm1
23 	jmp	.L002maw_sse2_entry
24 .align	16
25 .L003maw_sse2_unrolled:
26 	movd	(%eax),%mm3
27 	paddq	%mm3,%mm1
28 	movd	(%edx),%mm2
29 	pmuludq	%mm0,%mm2
30 	movd	4(%edx),%mm4
31 	pmuludq	%mm0,%mm4
32 	movd	8(%edx),%mm6
33 	pmuludq	%mm0,%mm6
34 	movd	12(%edx),%mm7
35 	pmuludq	%mm0,%mm7
36 	paddq	%mm2,%mm1
37 	movd	4(%eax),%mm3
38 	paddq	%mm4,%mm3
39 	movd	8(%eax),%mm5
40 	paddq	%mm6,%mm5
41 	movd	12(%eax),%mm4
42 	paddq	%mm4,%mm7
43 	movd	%mm1,(%eax)
44 	movd	16(%edx),%mm2
45 	pmuludq	%mm0,%mm2
46 	psrlq	$32,%mm1
47 	movd	20(%edx),%mm4
48 	pmuludq	%mm0,%mm4
49 	paddq	%mm3,%mm1
50 	movd	24(%edx),%mm6
51 	pmuludq	%mm0,%mm6
52 	movd	%mm1,4(%eax)
53 	psrlq	$32,%mm1
54 	movd	28(%edx),%mm3
55 	addl	$32,%edx
56 	pmuludq	%mm0,%mm3
57 	paddq	%mm5,%mm1
58 	movd	16(%eax),%mm5
59 	paddq	%mm5,%mm2
60 	movd	%mm1,8(%eax)
61 	psrlq	$32,%mm1
62 	paddq	%mm7,%mm1
63 	movd	20(%eax),%mm5
64 	paddq	%mm5,%mm4
65 	movd	%mm1,12(%eax)
66 	psrlq	$32,%mm1
67 	paddq	%mm2,%mm1
68 	movd	24(%eax),%mm5
69 	paddq	%mm5,%mm6
70 	movd	%mm1,16(%eax)
71 	psrlq	$32,%mm1
72 	paddq	%mm4,%mm1
73 	movd	28(%eax),%mm5
74 	paddq	%mm5,%mm3
75 	movd	%mm1,20(%eax)
76 	psrlq	$32,%mm1
77 	paddq	%mm6,%mm1
78 	movd	%mm1,24(%eax)
79 	psrlq	$32,%mm1
80 	paddq	%mm3,%mm1
81 	movd	%mm1,28(%eax)
82 	leal	32(%eax),%eax
83 	psrlq	$32,%mm1
84 	subl	$8,%ecx
85 	jz	.L004maw_sse2_exit
86 .L002maw_sse2_entry:
87 	testl	$4294967288,%ecx
88 	jnz	.L003maw_sse2_unrolled
89 .align	4
90 .L005maw_sse2_loop:
91 	movd	(%edx),%mm2
92 	movd	(%eax),%mm3
93 	pmuludq	%mm0,%mm2
94 	leal	4(%edx),%edx
95 	paddq	%mm3,%mm1
96 	paddq	%mm2,%mm1
97 	movd	%mm1,(%eax)
98 	subl	$1,%ecx
99 	psrlq	$32,%mm1
100 	leal	4(%eax),%eax
101 	jnz	.L005maw_sse2_loop
102 .L004maw_sse2_exit:
103 	movd	%mm1,%eax
104 	emms
105 	ret
106 .align	16
107 .L001maw_non_sse2:
108 	pushl	%ebp
109 	pushl	%ebx
110 	pushl	%esi
111 	pushl	%edi
112 
113 	xorl	%esi,%esi
114 	movl	20(%esp),%edi
115 	movl	28(%esp),%ecx
116 	movl	24(%esp),%ebx
117 	andl	$4294967288,%ecx
118 	movl	32(%esp),%ebp
119 	pushl	%ecx
120 	jz	.L006maw_finish
121 .align	16
122 .L007maw_loop:
123 
124 	movl	(%ebx),%eax
125 	mull	%ebp
126 	addl	%esi,%eax
127 	adcl	$0,%edx
128 	addl	(%edi),%eax
129 	adcl	$0,%edx
130 	movl	%eax,(%edi)
131 	movl	%edx,%esi
132 
133 	movl	4(%ebx),%eax
134 	mull	%ebp
135 	addl	%esi,%eax
136 	adcl	$0,%edx
137 	addl	4(%edi),%eax
138 	adcl	$0,%edx
139 	movl	%eax,4(%edi)
140 	movl	%edx,%esi
141 
142 	movl	8(%ebx),%eax
143 	mull	%ebp
144 	addl	%esi,%eax
145 	adcl	$0,%edx
146 	addl	8(%edi),%eax
147 	adcl	$0,%edx
148 	movl	%eax,8(%edi)
149 	movl	%edx,%esi
150 
151 	movl	12(%ebx),%eax
152 	mull	%ebp
153 	addl	%esi,%eax
154 	adcl	$0,%edx
155 	addl	12(%edi),%eax
156 	adcl	$0,%edx
157 	movl	%eax,12(%edi)
158 	movl	%edx,%esi
159 
160 	movl	16(%ebx),%eax
161 	mull	%ebp
162 	addl	%esi,%eax
163 	adcl	$0,%edx
164 	addl	16(%edi),%eax
165 	adcl	$0,%edx
166 	movl	%eax,16(%edi)
167 	movl	%edx,%esi
168 
169 	movl	20(%ebx),%eax
170 	mull	%ebp
171 	addl	%esi,%eax
172 	adcl	$0,%edx
173 	addl	20(%edi),%eax
174 	adcl	$0,%edx
175 	movl	%eax,20(%edi)
176 	movl	%edx,%esi
177 
178 	movl	24(%ebx),%eax
179 	mull	%ebp
180 	addl	%esi,%eax
181 	adcl	$0,%edx
182 	addl	24(%edi),%eax
183 	adcl	$0,%edx
184 	movl	%eax,24(%edi)
185 	movl	%edx,%esi
186 
187 	movl	28(%ebx),%eax
188 	mull	%ebp
189 	addl	%esi,%eax
190 	adcl	$0,%edx
191 	addl	28(%edi),%eax
192 	adcl	$0,%edx
193 	movl	%eax,28(%edi)
194 	movl	%edx,%esi
195 
196 	subl	$8,%ecx
197 	leal	32(%ebx),%ebx
198 	leal	32(%edi),%edi
199 	jnz	.L007maw_loop
200 .L006maw_finish:
201 	movl	32(%esp),%ecx
202 	andl	$7,%ecx
203 	jnz	.L008maw_finish2
204 	jmp	.L009maw_end
205 .L008maw_finish2:
206 
207 	movl	(%ebx),%eax
208 	mull	%ebp
209 	addl	%esi,%eax
210 	adcl	$0,%edx
211 	addl	(%edi),%eax
212 	adcl	$0,%edx
213 	decl	%ecx
214 	movl	%eax,(%edi)
215 	movl	%edx,%esi
216 	jz	.L009maw_end
217 
218 	movl	4(%ebx),%eax
219 	mull	%ebp
220 	addl	%esi,%eax
221 	adcl	$0,%edx
222 	addl	4(%edi),%eax
223 	adcl	$0,%edx
224 	decl	%ecx
225 	movl	%eax,4(%edi)
226 	movl	%edx,%esi
227 	jz	.L009maw_end
228 
229 	movl	8(%ebx),%eax
230 	mull	%ebp
231 	addl	%esi,%eax
232 	adcl	$0,%edx
233 	addl	8(%edi),%eax
234 	adcl	$0,%edx
235 	decl	%ecx
236 	movl	%eax,8(%edi)
237 	movl	%edx,%esi
238 	jz	.L009maw_end
239 
240 	movl	12(%ebx),%eax
241 	mull	%ebp
242 	addl	%esi,%eax
243 	adcl	$0,%edx
244 	addl	12(%edi),%eax
245 	adcl	$0,%edx
246 	decl	%ecx
247 	movl	%eax,12(%edi)
248 	movl	%edx,%esi
249 	jz	.L009maw_end
250 
251 	movl	16(%ebx),%eax
252 	mull	%ebp
253 	addl	%esi,%eax
254 	adcl	$0,%edx
255 	addl	16(%edi),%eax
256 	adcl	$0,%edx
257 	decl	%ecx
258 	movl	%eax,16(%edi)
259 	movl	%edx,%esi
260 	jz	.L009maw_end
261 
262 	movl	20(%ebx),%eax
263 	mull	%ebp
264 	addl	%esi,%eax
265 	adcl	$0,%edx
266 	addl	20(%edi),%eax
267 	adcl	$0,%edx
268 	decl	%ecx
269 	movl	%eax,20(%edi)
270 	movl	%edx,%esi
271 	jz	.L009maw_end
272 
273 	movl	24(%ebx),%eax
274 	mull	%ebp
275 	addl	%esi,%eax
276 	adcl	$0,%edx
277 	addl	24(%edi),%eax
278 	adcl	$0,%edx
279 	movl	%eax,24(%edi)
280 	movl	%edx,%esi
281 .L009maw_end:
282 	movl	%esi,%eax
283 	popl	%ecx
284 	popl	%edi
285 	popl	%esi
286 	popl	%ebx
287 	popl	%ebp
288 	ret
289 .size	bn_mul_add_words,.-.L_bn_mul_add_words_begin
290 .globl	bn_mul_words
291 .type	bn_mul_words,@function
292 .align	16
293 bn_mul_words:
294 .L_bn_mul_words_begin:
295 	%ifdef __CET__
296 
297 .byte	243,15,30,251
298 	%endif
299 
300 	call	.L010PIC_me_up
301 .L010PIC_me_up:
302 	popl	%eax
303 	leal	OPENSSL_ia32cap_P-.L010PIC_me_up(%eax),%eax
304 	btl	$26,(%eax)
305 	jnc	.L011mw_non_sse2
306 	movl	4(%esp),%eax
307 	movl	8(%esp),%edx
308 	movl	12(%esp),%ecx
309 	movd	16(%esp),%mm0
310 	pxor	%mm1,%mm1
311 .align	16
312 .L012mw_sse2_loop:
313 	movd	(%edx),%mm2
314 	pmuludq	%mm0,%mm2
315 	leal	4(%edx),%edx
316 	paddq	%mm2,%mm1
317 	movd	%mm1,(%eax)
318 	subl	$1,%ecx
319 	psrlq	$32,%mm1
320 	leal	4(%eax),%eax
321 	jnz	.L012mw_sse2_loop
322 	movd	%mm1,%eax
323 	emms
324 	ret
325 .align	16
326 .L011mw_non_sse2:
327 	pushl	%ebp
328 	pushl	%ebx
329 	pushl	%esi
330 	pushl	%edi
331 
332 	xorl	%esi,%esi
333 	movl	20(%esp),%edi
334 	movl	24(%esp),%ebx
335 	movl	28(%esp),%ebp
336 	movl	32(%esp),%ecx
337 	andl	$4294967288,%ebp
338 	jz	.L013mw_finish
339 .L014mw_loop:
340 
341 	movl	(%ebx),%eax
342 	mull	%ecx
343 	addl	%esi,%eax
344 	adcl	$0,%edx
345 	movl	%eax,(%edi)
346 	movl	%edx,%esi
347 
348 	movl	4(%ebx),%eax
349 	mull	%ecx
350 	addl	%esi,%eax
351 	adcl	$0,%edx
352 	movl	%eax,4(%edi)
353 	movl	%edx,%esi
354 
355 	movl	8(%ebx),%eax
356 	mull	%ecx
357 	addl	%esi,%eax
358 	adcl	$0,%edx
359 	movl	%eax,8(%edi)
360 	movl	%edx,%esi
361 
362 	movl	12(%ebx),%eax
363 	mull	%ecx
364 	addl	%esi,%eax
365 	adcl	$0,%edx
366 	movl	%eax,12(%edi)
367 	movl	%edx,%esi
368 
369 	movl	16(%ebx),%eax
370 	mull	%ecx
371 	addl	%esi,%eax
372 	adcl	$0,%edx
373 	movl	%eax,16(%edi)
374 	movl	%edx,%esi
375 
376 	movl	20(%ebx),%eax
377 	mull	%ecx
378 	addl	%esi,%eax
379 	adcl	$0,%edx
380 	movl	%eax,20(%edi)
381 	movl	%edx,%esi
382 
383 	movl	24(%ebx),%eax
384 	mull	%ecx
385 	addl	%esi,%eax
386 	adcl	$0,%edx
387 	movl	%eax,24(%edi)
388 	movl	%edx,%esi
389 
390 	movl	28(%ebx),%eax
391 	mull	%ecx
392 	addl	%esi,%eax
393 	adcl	$0,%edx
394 	movl	%eax,28(%edi)
395 	movl	%edx,%esi
396 
397 	addl	$32,%ebx
398 	addl	$32,%edi
399 	subl	$8,%ebp
400 	jz	.L013mw_finish
401 	jmp	.L014mw_loop
402 .L013mw_finish:
403 	movl	28(%esp),%ebp
404 	andl	$7,%ebp
405 	jnz	.L015mw_finish2
406 	jmp	.L016mw_end
407 .L015mw_finish2:
408 
409 	movl	(%ebx),%eax
410 	mull	%ecx
411 	addl	%esi,%eax
412 	adcl	$0,%edx
413 	movl	%eax,(%edi)
414 	movl	%edx,%esi
415 	decl	%ebp
416 	jz	.L016mw_end
417 
418 	movl	4(%ebx),%eax
419 	mull	%ecx
420 	addl	%esi,%eax
421 	adcl	$0,%edx
422 	movl	%eax,4(%edi)
423 	movl	%edx,%esi
424 	decl	%ebp
425 	jz	.L016mw_end
426 
427 	movl	8(%ebx),%eax
428 	mull	%ecx
429 	addl	%esi,%eax
430 	adcl	$0,%edx
431 	movl	%eax,8(%edi)
432 	movl	%edx,%esi
433 	decl	%ebp
434 	jz	.L016mw_end
435 
436 	movl	12(%ebx),%eax
437 	mull	%ecx
438 	addl	%esi,%eax
439 	adcl	$0,%edx
440 	movl	%eax,12(%edi)
441 	movl	%edx,%esi
442 	decl	%ebp
443 	jz	.L016mw_end
444 
445 	movl	16(%ebx),%eax
446 	mull	%ecx
447 	addl	%esi,%eax
448 	adcl	$0,%edx
449 	movl	%eax,16(%edi)
450 	movl	%edx,%esi
451 	decl	%ebp
452 	jz	.L016mw_end
453 
454 	movl	20(%ebx),%eax
455 	mull	%ecx
456 	addl	%esi,%eax
457 	adcl	$0,%edx
458 	movl	%eax,20(%edi)
459 	movl	%edx,%esi
460 	decl	%ebp
461 	jz	.L016mw_end
462 
463 	movl	24(%ebx),%eax
464 	mull	%ecx
465 	addl	%esi,%eax
466 	adcl	$0,%edx
467 	movl	%eax,24(%edi)
468 	movl	%edx,%esi
469 .L016mw_end:
470 	movl	%esi,%eax
471 	popl	%edi
472 	popl	%esi
473 	popl	%ebx
474 	popl	%ebp
475 	ret
476 .size	bn_mul_words,.-.L_bn_mul_words_begin
477 .globl	bn_sqr_words
478 .type	bn_sqr_words,@function
479 .align	16
480 bn_sqr_words:
481 .L_bn_sqr_words_begin:
482 	%ifdef __CET__
483 
484 .byte	243,15,30,251
485 	%endif
486 
487 	call	.L017PIC_me_up
488 .L017PIC_me_up:
489 	popl	%eax
490 	leal	OPENSSL_ia32cap_P-.L017PIC_me_up(%eax),%eax
491 	btl	$26,(%eax)
492 	jnc	.L018sqr_non_sse2
493 	movl	4(%esp),%eax
494 	movl	8(%esp),%edx
495 	movl	12(%esp),%ecx
496 .align	16
497 .L019sqr_sse2_loop:
498 	movd	(%edx),%mm0
499 	pmuludq	%mm0,%mm0
500 	leal	4(%edx),%edx
501 	movq	%mm0,(%eax)
502 	subl	$1,%ecx
503 	leal	8(%eax),%eax
504 	jnz	.L019sqr_sse2_loop
505 	emms
506 	ret
507 .align	16
508 .L018sqr_non_sse2:
509 	pushl	%ebp
510 	pushl	%ebx
511 	pushl	%esi
512 	pushl	%edi
513 
514 	movl	20(%esp),%esi
515 	movl	24(%esp),%edi
516 	movl	28(%esp),%ebx
517 	andl	$4294967288,%ebx
518 	jz	.L020sw_finish
519 .L021sw_loop:
520 
521 	movl	(%edi),%eax
522 	mull	%eax
523 	movl	%eax,(%esi)
524 	movl	%edx,4(%esi)
525 
526 	movl	4(%edi),%eax
527 	mull	%eax
528 	movl	%eax,8(%esi)
529 	movl	%edx,12(%esi)
530 
531 	movl	8(%edi),%eax
532 	mull	%eax
533 	movl	%eax,16(%esi)
534 	movl	%edx,20(%esi)
535 
536 	movl	12(%edi),%eax
537 	mull	%eax
538 	movl	%eax,24(%esi)
539 	movl	%edx,28(%esi)
540 
541 	movl	16(%edi),%eax
542 	mull	%eax
543 	movl	%eax,32(%esi)
544 	movl	%edx,36(%esi)
545 
546 	movl	20(%edi),%eax
547 	mull	%eax
548 	movl	%eax,40(%esi)
549 	movl	%edx,44(%esi)
550 
551 	movl	24(%edi),%eax
552 	mull	%eax
553 	movl	%eax,48(%esi)
554 	movl	%edx,52(%esi)
555 
556 	movl	28(%edi),%eax
557 	mull	%eax
558 	movl	%eax,56(%esi)
559 	movl	%edx,60(%esi)
560 
561 	addl	$32,%edi
562 	addl	$64,%esi
563 	subl	$8,%ebx
564 	jnz	.L021sw_loop
565 .L020sw_finish:
566 	movl	28(%esp),%ebx
567 	andl	$7,%ebx
568 	jz	.L022sw_end
569 
570 	movl	(%edi),%eax
571 	mull	%eax
572 	movl	%eax,(%esi)
573 	decl	%ebx
574 	movl	%edx,4(%esi)
575 	jz	.L022sw_end
576 
577 	movl	4(%edi),%eax
578 	mull	%eax
579 	movl	%eax,8(%esi)
580 	decl	%ebx
581 	movl	%edx,12(%esi)
582 	jz	.L022sw_end
583 
584 	movl	8(%edi),%eax
585 	mull	%eax
586 	movl	%eax,16(%esi)
587 	decl	%ebx
588 	movl	%edx,20(%esi)
589 	jz	.L022sw_end
590 
591 	movl	12(%edi),%eax
592 	mull	%eax
593 	movl	%eax,24(%esi)
594 	decl	%ebx
595 	movl	%edx,28(%esi)
596 	jz	.L022sw_end
597 
598 	movl	16(%edi),%eax
599 	mull	%eax
600 	movl	%eax,32(%esi)
601 	decl	%ebx
602 	movl	%edx,36(%esi)
603 	jz	.L022sw_end
604 
605 	movl	20(%edi),%eax
606 	mull	%eax
607 	movl	%eax,40(%esi)
608 	decl	%ebx
609 	movl	%edx,44(%esi)
610 	jz	.L022sw_end
611 
612 	movl	24(%edi),%eax
613 	mull	%eax
614 	movl	%eax,48(%esi)
615 	movl	%edx,52(%esi)
616 .L022sw_end:
617 	popl	%edi
618 	popl	%esi
619 	popl	%ebx
620 	popl	%ebp
621 	ret
622 .size	bn_sqr_words,.-.L_bn_sqr_words_begin
623 .globl	bn_div_words
624 .type	bn_div_words,@function
625 .align	16
626 bn_div_words:
627 .L_bn_div_words_begin:
628 	%ifdef __CET__
629 
630 .byte	243,15,30,251
631 	%endif
632 
633 	movl	4(%esp),%edx
634 	movl	8(%esp),%eax
635 	movl	12(%esp),%ecx
636 	divl	%ecx
637 	ret
638 .size	bn_div_words,.-.L_bn_div_words_begin
639 .globl	bn_add_words
640 .type	bn_add_words,@function
641 .align	16
642 bn_add_words:
643 .L_bn_add_words_begin:
644 	%ifdef __CET__
645 
646 .byte	243,15,30,251
647 	%endif
648 
649 	pushl	%ebp
650 	pushl	%ebx
651 	pushl	%esi
652 	pushl	%edi
653 
654 	movl	20(%esp),%ebx
655 	movl	24(%esp),%esi
656 	movl	28(%esp),%edi
657 	movl	32(%esp),%ebp
658 	xorl	%eax,%eax
659 	andl	$4294967288,%ebp
660 	jz	.L023aw_finish
661 .L024aw_loop:
662 
663 	movl	(%esi),%ecx
664 	movl	(%edi),%edx
665 	addl	%eax,%ecx
666 	movl	$0,%eax
667 	adcl	%eax,%eax
668 	addl	%edx,%ecx
669 	adcl	$0,%eax
670 	movl	%ecx,(%ebx)
671 
672 	movl	4(%esi),%ecx
673 	movl	4(%edi),%edx
674 	addl	%eax,%ecx
675 	movl	$0,%eax
676 	adcl	%eax,%eax
677 	addl	%edx,%ecx
678 	adcl	$0,%eax
679 	movl	%ecx,4(%ebx)
680 
681 	movl	8(%esi),%ecx
682 	movl	8(%edi),%edx
683 	addl	%eax,%ecx
684 	movl	$0,%eax
685 	adcl	%eax,%eax
686 	addl	%edx,%ecx
687 	adcl	$0,%eax
688 	movl	%ecx,8(%ebx)
689 
690 	movl	12(%esi),%ecx
691 	movl	12(%edi),%edx
692 	addl	%eax,%ecx
693 	movl	$0,%eax
694 	adcl	%eax,%eax
695 	addl	%edx,%ecx
696 	adcl	$0,%eax
697 	movl	%ecx,12(%ebx)
698 
699 	movl	16(%esi),%ecx
700 	movl	16(%edi),%edx
701 	addl	%eax,%ecx
702 	movl	$0,%eax
703 	adcl	%eax,%eax
704 	addl	%edx,%ecx
705 	adcl	$0,%eax
706 	movl	%ecx,16(%ebx)
707 
708 	movl	20(%esi),%ecx
709 	movl	20(%edi),%edx
710 	addl	%eax,%ecx
711 	movl	$0,%eax
712 	adcl	%eax,%eax
713 	addl	%edx,%ecx
714 	adcl	$0,%eax
715 	movl	%ecx,20(%ebx)
716 
717 	movl	24(%esi),%ecx
718 	movl	24(%edi),%edx
719 	addl	%eax,%ecx
720 	movl	$0,%eax
721 	adcl	%eax,%eax
722 	addl	%edx,%ecx
723 	adcl	$0,%eax
724 	movl	%ecx,24(%ebx)
725 
726 	movl	28(%esi),%ecx
727 	movl	28(%edi),%edx
728 	addl	%eax,%ecx
729 	movl	$0,%eax
730 	adcl	%eax,%eax
731 	addl	%edx,%ecx
732 	adcl	$0,%eax
733 	movl	%ecx,28(%ebx)
734 
735 	addl	$32,%esi
736 	addl	$32,%edi
737 	addl	$32,%ebx
738 	subl	$8,%ebp
739 	jnz	.L024aw_loop
740 .L023aw_finish:
741 	movl	32(%esp),%ebp
742 	andl	$7,%ebp
743 	jz	.L025aw_end
744 
745 	movl	(%esi),%ecx
746 	movl	(%edi),%edx
747 	addl	%eax,%ecx
748 	movl	$0,%eax
749 	adcl	%eax,%eax
750 	addl	%edx,%ecx
751 	adcl	$0,%eax
752 	decl	%ebp
753 	movl	%ecx,(%ebx)
754 	jz	.L025aw_end
755 
756 	movl	4(%esi),%ecx
757 	movl	4(%edi),%edx
758 	addl	%eax,%ecx
759 	movl	$0,%eax
760 	adcl	%eax,%eax
761 	addl	%edx,%ecx
762 	adcl	$0,%eax
763 	decl	%ebp
764 	movl	%ecx,4(%ebx)
765 	jz	.L025aw_end
766 
767 	movl	8(%esi),%ecx
768 	movl	8(%edi),%edx
769 	addl	%eax,%ecx
770 	movl	$0,%eax
771 	adcl	%eax,%eax
772 	addl	%edx,%ecx
773 	adcl	$0,%eax
774 	decl	%ebp
775 	movl	%ecx,8(%ebx)
776 	jz	.L025aw_end
777 
778 	movl	12(%esi),%ecx
779 	movl	12(%edi),%edx
780 	addl	%eax,%ecx
781 	movl	$0,%eax
782 	adcl	%eax,%eax
783 	addl	%edx,%ecx
784 	adcl	$0,%eax
785 	decl	%ebp
786 	movl	%ecx,12(%ebx)
787 	jz	.L025aw_end
788 
789 	movl	16(%esi),%ecx
790 	movl	16(%edi),%edx
791 	addl	%eax,%ecx
792 	movl	$0,%eax
793 	adcl	%eax,%eax
794 	addl	%edx,%ecx
795 	adcl	$0,%eax
796 	decl	%ebp
797 	movl	%ecx,16(%ebx)
798 	jz	.L025aw_end
799 
800 	movl	20(%esi),%ecx
801 	movl	20(%edi),%edx
802 	addl	%eax,%ecx
803 	movl	$0,%eax
804 	adcl	%eax,%eax
805 	addl	%edx,%ecx
806 	adcl	$0,%eax
807 	decl	%ebp
808 	movl	%ecx,20(%ebx)
809 	jz	.L025aw_end
810 
811 	movl	24(%esi),%ecx
812 	movl	24(%edi),%edx
813 	addl	%eax,%ecx
814 	movl	$0,%eax
815 	adcl	%eax,%eax
816 	addl	%edx,%ecx
817 	adcl	$0,%eax
818 	movl	%ecx,24(%ebx)
819 .L025aw_end:
820 	popl	%edi
821 	popl	%esi
822 	popl	%ebx
823 	popl	%ebp
824 	ret
825 .size	bn_add_words,.-.L_bn_add_words_begin
826 .globl	bn_sub_words
827 .type	bn_sub_words,@function
828 .align	16
829 bn_sub_words:
830 .L_bn_sub_words_begin:
831 	%ifdef __CET__
832 
833 .byte	243,15,30,251
834 	%endif
835 
836 	pushl	%ebp
837 	pushl	%ebx
838 	pushl	%esi
839 	pushl	%edi
840 
841 	movl	20(%esp),%ebx
842 	movl	24(%esp),%esi
843 	movl	28(%esp),%edi
844 	movl	32(%esp),%ebp
845 	xorl	%eax,%eax
846 	andl	$4294967288,%ebp
847 	jz	.L026aw_finish
848 .L027aw_loop:
849 
850 	movl	(%esi),%ecx
851 	movl	(%edi),%edx
852 	subl	%eax,%ecx
853 	movl	$0,%eax
854 	adcl	%eax,%eax
855 	subl	%edx,%ecx
856 	adcl	$0,%eax
857 	movl	%ecx,(%ebx)
858 
859 	movl	4(%esi),%ecx
860 	movl	4(%edi),%edx
861 	subl	%eax,%ecx
862 	movl	$0,%eax
863 	adcl	%eax,%eax
864 	subl	%edx,%ecx
865 	adcl	$0,%eax
866 	movl	%ecx,4(%ebx)
867 
868 	movl	8(%esi),%ecx
869 	movl	8(%edi),%edx
870 	subl	%eax,%ecx
871 	movl	$0,%eax
872 	adcl	%eax,%eax
873 	subl	%edx,%ecx
874 	adcl	$0,%eax
875 	movl	%ecx,8(%ebx)
876 
877 	movl	12(%esi),%ecx
878 	movl	12(%edi),%edx
879 	subl	%eax,%ecx
880 	movl	$0,%eax
881 	adcl	%eax,%eax
882 	subl	%edx,%ecx
883 	adcl	$0,%eax
884 	movl	%ecx,12(%ebx)
885 
886 	movl	16(%esi),%ecx
887 	movl	16(%edi),%edx
888 	subl	%eax,%ecx
889 	movl	$0,%eax
890 	adcl	%eax,%eax
891 	subl	%edx,%ecx
892 	adcl	$0,%eax
893 	movl	%ecx,16(%ebx)
894 
895 	movl	20(%esi),%ecx
896 	movl	20(%edi),%edx
897 	subl	%eax,%ecx
898 	movl	$0,%eax
899 	adcl	%eax,%eax
900 	subl	%edx,%ecx
901 	adcl	$0,%eax
902 	movl	%ecx,20(%ebx)
903 
904 	movl	24(%esi),%ecx
905 	movl	24(%edi),%edx
906 	subl	%eax,%ecx
907 	movl	$0,%eax
908 	adcl	%eax,%eax
909 	subl	%edx,%ecx
910 	adcl	$0,%eax
911 	movl	%ecx,24(%ebx)
912 
913 	movl	28(%esi),%ecx
914 	movl	28(%edi),%edx
915 	subl	%eax,%ecx
916 	movl	$0,%eax
917 	adcl	%eax,%eax
918 	subl	%edx,%ecx
919 	adcl	$0,%eax
920 	movl	%ecx,28(%ebx)
921 
922 	addl	$32,%esi
923 	addl	$32,%edi
924 	addl	$32,%ebx
925 	subl	$8,%ebp
926 	jnz	.L027aw_loop
927 .L026aw_finish:
928 	movl	32(%esp),%ebp
929 	andl	$7,%ebp
930 	jz	.L028aw_end
931 
932 	movl	(%esi),%ecx
933 	movl	(%edi),%edx
934 	subl	%eax,%ecx
935 	movl	$0,%eax
936 	adcl	%eax,%eax
937 	subl	%edx,%ecx
938 	adcl	$0,%eax
939 	decl	%ebp
940 	movl	%ecx,(%ebx)
941 	jz	.L028aw_end
942 
943 	movl	4(%esi),%ecx
944 	movl	4(%edi),%edx
945 	subl	%eax,%ecx
946 	movl	$0,%eax
947 	adcl	%eax,%eax
948 	subl	%edx,%ecx
949 	adcl	$0,%eax
950 	decl	%ebp
951 	movl	%ecx,4(%ebx)
952 	jz	.L028aw_end
953 
954 	movl	8(%esi),%ecx
955 	movl	8(%edi),%edx
956 	subl	%eax,%ecx
957 	movl	$0,%eax
958 	adcl	%eax,%eax
959 	subl	%edx,%ecx
960 	adcl	$0,%eax
961 	decl	%ebp
962 	movl	%ecx,8(%ebx)
963 	jz	.L028aw_end
964 
965 	movl	12(%esi),%ecx
966 	movl	12(%edi),%edx
967 	subl	%eax,%ecx
968 	movl	$0,%eax
969 	adcl	%eax,%eax
970 	subl	%edx,%ecx
971 	adcl	$0,%eax
972 	decl	%ebp
973 	movl	%ecx,12(%ebx)
974 	jz	.L028aw_end
975 
976 	movl	16(%esi),%ecx
977 	movl	16(%edi),%edx
978 	subl	%eax,%ecx
979 	movl	$0,%eax
980 	adcl	%eax,%eax
981 	subl	%edx,%ecx
982 	adcl	$0,%eax
983 	decl	%ebp
984 	movl	%ecx,16(%ebx)
985 	jz	.L028aw_end
986 
987 	movl	20(%esi),%ecx
988 	movl	20(%edi),%edx
989 	subl	%eax,%ecx
990 	movl	$0,%eax
991 	adcl	%eax,%eax
992 	subl	%edx,%ecx
993 	adcl	$0,%eax
994 	decl	%ebp
995 	movl	%ecx,20(%ebx)
996 	jz	.L028aw_end
997 
998 	movl	24(%esi),%ecx
999 	movl	24(%edi),%edx
1000 	subl	%eax,%ecx
1001 	movl	$0,%eax
1002 	adcl	%eax,%eax
1003 	subl	%edx,%ecx
1004 	adcl	$0,%eax
1005 	movl	%ecx,24(%ebx)
1006 .L028aw_end:
1007 	popl	%edi
1008 	popl	%esi
1009 	popl	%ebx
1010 	popl	%ebp
1011 	ret
1012 .size	bn_sub_words,.-.L_bn_sub_words_begin
1013 .globl	bn_sub_part_words
1014 .type	bn_sub_part_words,@function
1015 .align	16
1016 bn_sub_part_words:
1017 .L_bn_sub_part_words_begin:
1018 	%ifdef __CET__
1019 
1020 .byte	243,15,30,251
1021 	%endif
1022 
1023 	pushl	%ebp
1024 	pushl	%ebx
1025 	pushl	%esi
1026 	pushl	%edi
1027 
1028 	movl	20(%esp),%ebx
1029 	movl	24(%esp),%esi
1030 	movl	28(%esp),%edi
1031 	movl	32(%esp),%ebp
1032 	xorl	%eax,%eax
1033 	andl	$4294967288,%ebp
1034 	jz	.L029aw_finish
1035 .L030aw_loop:
1036 
1037 	movl	(%esi),%ecx
1038 	movl	(%edi),%edx
1039 	subl	%eax,%ecx
1040 	movl	$0,%eax
1041 	adcl	%eax,%eax
1042 	subl	%edx,%ecx
1043 	adcl	$0,%eax
1044 	movl	%ecx,(%ebx)
1045 
1046 	movl	4(%esi),%ecx
1047 	movl	4(%edi),%edx
1048 	subl	%eax,%ecx
1049 	movl	$0,%eax
1050 	adcl	%eax,%eax
1051 	subl	%edx,%ecx
1052 	adcl	$0,%eax
1053 	movl	%ecx,4(%ebx)
1054 
1055 	movl	8(%esi),%ecx
1056 	movl	8(%edi),%edx
1057 	subl	%eax,%ecx
1058 	movl	$0,%eax
1059 	adcl	%eax,%eax
1060 	subl	%edx,%ecx
1061 	adcl	$0,%eax
1062 	movl	%ecx,8(%ebx)
1063 
1064 	movl	12(%esi),%ecx
1065 	movl	12(%edi),%edx
1066 	subl	%eax,%ecx
1067 	movl	$0,%eax
1068 	adcl	%eax,%eax
1069 	subl	%edx,%ecx
1070 	adcl	$0,%eax
1071 	movl	%ecx,12(%ebx)
1072 
1073 	movl	16(%esi),%ecx
1074 	movl	16(%edi),%edx
1075 	subl	%eax,%ecx
1076 	movl	$0,%eax
1077 	adcl	%eax,%eax
1078 	subl	%edx,%ecx
1079 	adcl	$0,%eax
1080 	movl	%ecx,16(%ebx)
1081 
1082 	movl	20(%esi),%ecx
1083 	movl	20(%edi),%edx
1084 	subl	%eax,%ecx
1085 	movl	$0,%eax
1086 	adcl	%eax,%eax
1087 	subl	%edx,%ecx
1088 	adcl	$0,%eax
1089 	movl	%ecx,20(%ebx)
1090 
1091 	movl	24(%esi),%ecx
1092 	movl	24(%edi),%edx
1093 	subl	%eax,%ecx
1094 	movl	$0,%eax
1095 	adcl	%eax,%eax
1096 	subl	%edx,%ecx
1097 	adcl	$0,%eax
1098 	movl	%ecx,24(%ebx)
1099 
1100 	movl	28(%esi),%ecx
1101 	movl	28(%edi),%edx
1102 	subl	%eax,%ecx
1103 	movl	$0,%eax
1104 	adcl	%eax,%eax
1105 	subl	%edx,%ecx
1106 	adcl	$0,%eax
1107 	movl	%ecx,28(%ebx)
1108 
1109 	addl	$32,%esi
1110 	addl	$32,%edi
1111 	addl	$32,%ebx
1112 	subl	$8,%ebp
1113 	jnz	.L030aw_loop
1114 .L029aw_finish:
1115 	movl	32(%esp),%ebp
1116 	andl	$7,%ebp
1117 	jz	.L031aw_end
1118 
1119 	movl	(%esi),%ecx
1120 	movl	(%edi),%edx
1121 	subl	%eax,%ecx
1122 	movl	$0,%eax
1123 	adcl	%eax,%eax
1124 	subl	%edx,%ecx
1125 	adcl	$0,%eax
1126 	movl	%ecx,(%ebx)
1127 	addl	$4,%esi
1128 	addl	$4,%edi
1129 	addl	$4,%ebx
1130 	decl	%ebp
1131 	jz	.L031aw_end
1132 
1133 	movl	(%esi),%ecx
1134 	movl	(%edi),%edx
1135 	subl	%eax,%ecx
1136 	movl	$0,%eax
1137 	adcl	%eax,%eax
1138 	subl	%edx,%ecx
1139 	adcl	$0,%eax
1140 	movl	%ecx,(%ebx)
1141 	addl	$4,%esi
1142 	addl	$4,%edi
1143 	addl	$4,%ebx
1144 	decl	%ebp
1145 	jz	.L031aw_end
1146 
1147 	movl	(%esi),%ecx
1148 	movl	(%edi),%edx
1149 	subl	%eax,%ecx
1150 	movl	$0,%eax
1151 	adcl	%eax,%eax
1152 	subl	%edx,%ecx
1153 	adcl	$0,%eax
1154 	movl	%ecx,(%ebx)
1155 	addl	$4,%esi
1156 	addl	$4,%edi
1157 	addl	$4,%ebx
1158 	decl	%ebp
1159 	jz	.L031aw_end
1160 
1161 	movl	(%esi),%ecx
1162 	movl	(%edi),%edx
1163 	subl	%eax,%ecx
1164 	movl	$0,%eax
1165 	adcl	%eax,%eax
1166 	subl	%edx,%ecx
1167 	adcl	$0,%eax
1168 	movl	%ecx,(%ebx)
1169 	addl	$4,%esi
1170 	addl	$4,%edi
1171 	addl	$4,%ebx
1172 	decl	%ebp
1173 	jz	.L031aw_end
1174 
1175 	movl	(%esi),%ecx
1176 	movl	(%edi),%edx
1177 	subl	%eax,%ecx
1178 	movl	$0,%eax
1179 	adcl	%eax,%eax
1180 	subl	%edx,%ecx
1181 	adcl	$0,%eax
1182 	movl	%ecx,(%ebx)
1183 	addl	$4,%esi
1184 	addl	$4,%edi
1185 	addl	$4,%ebx
1186 	decl	%ebp
1187 	jz	.L031aw_end
1188 
1189 	movl	(%esi),%ecx
1190 	movl	(%edi),%edx
1191 	subl	%eax,%ecx
1192 	movl	$0,%eax
1193 	adcl	%eax,%eax
1194 	subl	%edx,%ecx
1195 	adcl	$0,%eax
1196 	movl	%ecx,(%ebx)
1197 	addl	$4,%esi
1198 	addl	$4,%edi
1199 	addl	$4,%ebx
1200 	decl	%ebp
1201 	jz	.L031aw_end
1202 
1203 	movl	(%esi),%ecx
1204 	movl	(%edi),%edx
1205 	subl	%eax,%ecx
1206 	movl	$0,%eax
1207 	adcl	%eax,%eax
1208 	subl	%edx,%ecx
1209 	adcl	$0,%eax
1210 	movl	%ecx,(%ebx)
1211 	addl	$4,%esi
1212 	addl	$4,%edi
1213 	addl	$4,%ebx
1214 .L031aw_end:
1215 	cmpl	$0,36(%esp)
1216 	je	.L032pw_end
1217 	movl	36(%esp),%ebp
1218 	cmpl	$0,%ebp
1219 	je	.L032pw_end
1220 	jge	.L033pw_pos
1221 
1222 	movl	$0,%edx
1223 	subl	%ebp,%edx
1224 	movl	%edx,%ebp
1225 	andl	$4294967288,%ebp
1226 	jz	.L034pw_neg_finish
1227 .L035pw_neg_loop:
1228 
1229 	movl	$0,%ecx
1230 	movl	(%edi),%edx
1231 	subl	%eax,%ecx
1232 	movl	$0,%eax
1233 	adcl	%eax,%eax
1234 	subl	%edx,%ecx
1235 	adcl	$0,%eax
1236 	movl	%ecx,(%ebx)
1237 
1238 	movl	$0,%ecx
1239 	movl	4(%edi),%edx
1240 	subl	%eax,%ecx
1241 	movl	$0,%eax
1242 	adcl	%eax,%eax
1243 	subl	%edx,%ecx
1244 	adcl	$0,%eax
1245 	movl	%ecx,4(%ebx)
1246 
1247 	movl	$0,%ecx
1248 	movl	8(%edi),%edx
1249 	subl	%eax,%ecx
1250 	movl	$0,%eax
1251 	adcl	%eax,%eax
1252 	subl	%edx,%ecx
1253 	adcl	$0,%eax
1254 	movl	%ecx,8(%ebx)
1255 
1256 	movl	$0,%ecx
1257 	movl	12(%edi),%edx
1258 	subl	%eax,%ecx
1259 	movl	$0,%eax
1260 	adcl	%eax,%eax
1261 	subl	%edx,%ecx
1262 	adcl	$0,%eax
1263 	movl	%ecx,12(%ebx)
1264 
1265 	movl	$0,%ecx
1266 	movl	16(%edi),%edx
1267 	subl	%eax,%ecx
1268 	movl	$0,%eax
1269 	adcl	%eax,%eax
1270 	subl	%edx,%ecx
1271 	adcl	$0,%eax
1272 	movl	%ecx,16(%ebx)
1273 
1274 	movl	$0,%ecx
1275 	movl	20(%edi),%edx
1276 	subl	%eax,%ecx
1277 	movl	$0,%eax
1278 	adcl	%eax,%eax
1279 	subl	%edx,%ecx
1280 	adcl	$0,%eax
1281 	movl	%ecx,20(%ebx)
1282 
1283 	movl	$0,%ecx
1284 	movl	24(%edi),%edx
1285 	subl	%eax,%ecx
1286 	movl	$0,%eax
1287 	adcl	%eax,%eax
1288 	subl	%edx,%ecx
1289 	adcl	$0,%eax
1290 	movl	%ecx,24(%ebx)
1291 
1292 	movl	$0,%ecx
1293 	movl	28(%edi),%edx
1294 	subl	%eax,%ecx
1295 	movl	$0,%eax
1296 	adcl	%eax,%eax
1297 	subl	%edx,%ecx
1298 	adcl	$0,%eax
1299 	movl	%ecx,28(%ebx)
1300 
1301 	addl	$32,%edi
1302 	addl	$32,%ebx
1303 	subl	$8,%ebp
1304 	jnz	.L035pw_neg_loop
1305 .L034pw_neg_finish:
1306 	movl	36(%esp),%edx
1307 	movl	$0,%ebp
1308 	subl	%edx,%ebp
1309 	andl	$7,%ebp
1310 	jz	.L032pw_end
1311 
1312 	movl	$0,%ecx
1313 	movl	(%edi),%edx
1314 	subl	%eax,%ecx
1315 	movl	$0,%eax
1316 	adcl	%eax,%eax
1317 	subl	%edx,%ecx
1318 	adcl	$0,%eax
1319 	decl	%ebp
1320 	movl	%ecx,(%ebx)
1321 	jz	.L032pw_end
1322 
1323 	movl	$0,%ecx
1324 	movl	4(%edi),%edx
1325 	subl	%eax,%ecx
1326 	movl	$0,%eax
1327 	adcl	%eax,%eax
1328 	subl	%edx,%ecx
1329 	adcl	$0,%eax
1330 	decl	%ebp
1331 	movl	%ecx,4(%ebx)
1332 	jz	.L032pw_end
1333 
1334 	movl	$0,%ecx
1335 	movl	8(%edi),%edx
1336 	subl	%eax,%ecx
1337 	movl	$0,%eax
1338 	adcl	%eax,%eax
1339 	subl	%edx,%ecx
1340 	adcl	$0,%eax
1341 	decl	%ebp
1342 	movl	%ecx,8(%ebx)
1343 	jz	.L032pw_end
1344 
1345 	movl	$0,%ecx
1346 	movl	12(%edi),%edx
1347 	subl	%eax,%ecx
1348 	movl	$0,%eax
1349 	adcl	%eax,%eax
1350 	subl	%edx,%ecx
1351 	adcl	$0,%eax
1352 	decl	%ebp
1353 	movl	%ecx,12(%ebx)
1354 	jz	.L032pw_end
1355 
1356 	movl	$0,%ecx
1357 	movl	16(%edi),%edx
1358 	subl	%eax,%ecx
1359 	movl	$0,%eax
1360 	adcl	%eax,%eax
1361 	subl	%edx,%ecx
1362 	adcl	$0,%eax
1363 	decl	%ebp
1364 	movl	%ecx,16(%ebx)
1365 	jz	.L032pw_end
1366 
1367 	movl	$0,%ecx
1368 	movl	20(%edi),%edx
1369 	subl	%eax,%ecx
1370 	movl	$0,%eax
1371 	adcl	%eax,%eax
1372 	subl	%edx,%ecx
1373 	adcl	$0,%eax
1374 	decl	%ebp
1375 	movl	%ecx,20(%ebx)
1376 	jz	.L032pw_end
1377 
1378 	movl	$0,%ecx
1379 	movl	24(%edi),%edx
1380 	subl	%eax,%ecx
1381 	movl	$0,%eax
1382 	adcl	%eax,%eax
1383 	subl	%edx,%ecx
1384 	adcl	$0,%eax
1385 	movl	%ecx,24(%ebx)
1386 	jmp	.L032pw_end
1387 .L033pw_pos:
1388 	andl	$4294967288,%ebp
1389 	jz	.L036pw_pos_finish
1390 .L037pw_pos_loop:
1391 
1392 	movl	(%esi),%ecx
1393 	subl	%eax,%ecx
1394 	movl	%ecx,(%ebx)
1395 	jnc	.L038pw_nc0
1396 
1397 	movl	4(%esi),%ecx
1398 	subl	%eax,%ecx
1399 	movl	%ecx,4(%ebx)
1400 	jnc	.L039pw_nc1
1401 
1402 	movl	8(%esi),%ecx
1403 	subl	%eax,%ecx
1404 	movl	%ecx,8(%ebx)
1405 	jnc	.L040pw_nc2
1406 
1407 	movl	12(%esi),%ecx
1408 	subl	%eax,%ecx
1409 	movl	%ecx,12(%ebx)
1410 	jnc	.L041pw_nc3
1411 
1412 	movl	16(%esi),%ecx
1413 	subl	%eax,%ecx
1414 	movl	%ecx,16(%ebx)
1415 	jnc	.L042pw_nc4
1416 
1417 	movl	20(%esi),%ecx
1418 	subl	%eax,%ecx
1419 	movl	%ecx,20(%ebx)
1420 	jnc	.L043pw_nc5
1421 
1422 	movl	24(%esi),%ecx
1423 	subl	%eax,%ecx
1424 	movl	%ecx,24(%ebx)
1425 	jnc	.L044pw_nc6
1426 
1427 	movl	28(%esi),%ecx
1428 	subl	%eax,%ecx
1429 	movl	%ecx,28(%ebx)
1430 	jnc	.L045pw_nc7
1431 
1432 	addl	$32,%esi
1433 	addl	$32,%ebx
1434 	subl	$8,%ebp
1435 	jnz	.L037pw_pos_loop
1436 .L036pw_pos_finish:
1437 	movl	36(%esp),%ebp
1438 	andl	$7,%ebp
1439 	jz	.L032pw_end
1440 
1441 	movl	(%esi),%ecx
1442 	subl	%eax,%ecx
1443 	movl	%ecx,(%ebx)
1444 	jnc	.L046pw_tail_nc0
1445 	decl	%ebp
1446 	jz	.L032pw_end
1447 
1448 	movl	4(%esi),%ecx
1449 	subl	%eax,%ecx
1450 	movl	%ecx,4(%ebx)
1451 	jnc	.L047pw_tail_nc1
1452 	decl	%ebp
1453 	jz	.L032pw_end
1454 
1455 	movl	8(%esi),%ecx
1456 	subl	%eax,%ecx
1457 	movl	%ecx,8(%ebx)
1458 	jnc	.L048pw_tail_nc2
1459 	decl	%ebp
1460 	jz	.L032pw_end
1461 
1462 	movl	12(%esi),%ecx
1463 	subl	%eax,%ecx
1464 	movl	%ecx,12(%ebx)
1465 	jnc	.L049pw_tail_nc3
1466 	decl	%ebp
1467 	jz	.L032pw_end
1468 
1469 	movl	16(%esi),%ecx
1470 	subl	%eax,%ecx
1471 	movl	%ecx,16(%ebx)
1472 	jnc	.L050pw_tail_nc4
1473 	decl	%ebp
1474 	jz	.L032pw_end
1475 
1476 	movl	20(%esi),%ecx
1477 	subl	%eax,%ecx
1478 	movl	%ecx,20(%ebx)
1479 	jnc	.L051pw_tail_nc5
1480 	decl	%ebp
1481 	jz	.L032pw_end
1482 
1483 	movl	24(%esi),%ecx
1484 	subl	%eax,%ecx
1485 	movl	%ecx,24(%ebx)
1486 	jnc	.L052pw_tail_nc6
1487 	movl	$1,%eax
1488 	jmp	.L032pw_end
1489 .L053pw_nc_loop:
1490 	movl	(%esi),%ecx
1491 	movl	%ecx,(%ebx)
1492 .L038pw_nc0:
1493 	movl	4(%esi),%ecx
1494 	movl	%ecx,4(%ebx)
1495 .L039pw_nc1:
1496 	movl	8(%esi),%ecx
1497 	movl	%ecx,8(%ebx)
1498 .L040pw_nc2:
1499 	movl	12(%esi),%ecx
1500 	movl	%ecx,12(%ebx)
1501 .L041pw_nc3:
1502 	movl	16(%esi),%ecx
1503 	movl	%ecx,16(%ebx)
1504 .L042pw_nc4:
1505 	movl	20(%esi),%ecx
1506 	movl	%ecx,20(%ebx)
1507 .L043pw_nc5:
1508 	movl	24(%esi),%ecx
1509 	movl	%ecx,24(%ebx)
1510 .L044pw_nc6:
1511 	movl	28(%esi),%ecx
1512 	movl	%ecx,28(%ebx)
1513 .L045pw_nc7:
1514 
1515 	addl	$32,%esi
1516 	addl	$32,%ebx
1517 	subl	$8,%ebp
1518 	jnz	.L053pw_nc_loop
1519 	movl	36(%esp),%ebp
1520 	andl	$7,%ebp
1521 	jz	.L054pw_nc_end
1522 	movl	(%esi),%ecx
1523 	movl	%ecx,(%ebx)
1524 .L046pw_tail_nc0:
1525 	decl	%ebp
1526 	jz	.L054pw_nc_end
1527 	movl	4(%esi),%ecx
1528 	movl	%ecx,4(%ebx)
1529 .L047pw_tail_nc1:
1530 	decl	%ebp
1531 	jz	.L054pw_nc_end
1532 	movl	8(%esi),%ecx
1533 	movl	%ecx,8(%ebx)
1534 .L048pw_tail_nc2:
1535 	decl	%ebp
1536 	jz	.L054pw_nc_end
1537 	movl	12(%esi),%ecx
1538 	movl	%ecx,12(%ebx)
1539 .L049pw_tail_nc3:
1540 	decl	%ebp
1541 	jz	.L054pw_nc_end
1542 	movl	16(%esi),%ecx
1543 	movl	%ecx,16(%ebx)
1544 .L050pw_tail_nc4:
1545 	decl	%ebp
1546 	jz	.L054pw_nc_end
1547 	movl	20(%esi),%ecx
1548 	movl	%ecx,20(%ebx)
1549 .L051pw_tail_nc5:
1550 	decl	%ebp
1551 	jz	.L054pw_nc_end
1552 	movl	24(%esi),%ecx
1553 	movl	%ecx,24(%ebx)
1554 .L052pw_tail_nc6:
1555 .L054pw_nc_end:
1556 	movl	$0,%eax
1557 .L032pw_end:
1558 	popl	%edi
1559 	popl	%esi
1560 	popl	%ebx
1561 	popl	%ebp
1562 	ret
1563 .size	bn_sub_part_words,.-.L_bn_sub_part_words_begin
1564 .comm	OPENSSL_ia32cap_P,16,4
1565 
1566 	.section ".note.gnu.property", "a"
1567 	.p2align 2
1568 	.long 1f - 0f
1569 	.long 4f - 1f
1570 	.long 5
1571 0:
1572 	.asciz "GNU"
1573 1:
1574 	.p2align 2
1575 	.long 0xc0000002
1576 	.long 3f - 2f
1577 2:
1578 	.long 3
1579 3:
1580 	.p2align 2
1581 4:
1582