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