Home | History | Annotate | Download | only in fipsmodule
      1 #if defined(__i386__)
      2 .text
      3 .globl	bn_mul_add_words
      4 .hidden	bn_mul_add_words
      5 .type	bn_mul_add_words,@function
      6 .align	16
      7 bn_mul_add_words:
      8 .L_bn_mul_add_words_begin:
      9 	call	.L000PIC_me_up
     10 .L000PIC_me_up:
     11 	popl	%eax
     12 	leal	OPENSSL_ia32cap_P-.L000PIC_me_up(%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 .hidden	bn_mul_words
    289 .type	bn_mul_words,@function
    290 .align	16
    291 bn_mul_words:
    292 .L_bn_mul_words_begin:
    293 	call	.L010PIC_me_up
    294 .L010PIC_me_up:
    295 	popl	%eax
    296 	leal	OPENSSL_ia32cap_P-.L010PIC_me_up(%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 .hidden	bn_sqr_words
    472 .type	bn_sqr_words,@function
    473 .align	16
    474 bn_sqr_words:
    475 .L_bn_sqr_words_begin:
    476 	call	.L017PIC_me_up
    477 .L017PIC_me_up:
    478 	popl	%eax
    479 	leal	OPENSSL_ia32cap_P-.L017PIC_me_up(%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 .hidden	bn_div_words
    614 .type	bn_div_words,@function
    615 .align	16
    616 bn_div_words:
    617 .L_bn_div_words_begin:
    618 	movl	4(%esp),%edx
    619 	movl	8(%esp),%eax
    620 	movl	12(%esp),%ecx
    621 	divl	%ecx
    622 	ret
    623 .size	bn_div_words,.-.L_bn_div_words_begin
    624 .globl	bn_add_words
    625 .hidden	bn_add_words
    626 .type	bn_add_words,@function
    627 .align	16
    628 bn_add_words:
    629 .L_bn_add_words_begin:
    630 	pushl	%ebp
    631 	pushl	%ebx
    632 	pushl	%esi
    633 	pushl	%edi
    634 
    635 	movl	20(%esp),%ebx
    636 	movl	24(%esp),%esi
    637 	movl	28(%esp),%edi
    638 	movl	32(%esp),%ebp
    639 	xorl	%eax,%eax
    640 	andl	$4294967288,%ebp
    641 	jz	.L023aw_finish
    642 .L024aw_loop:
    643 
    644 	movl	(%esi),%ecx
    645 	movl	(%edi),%edx
    646 	addl	%eax,%ecx
    647 	movl	$0,%eax
    648 	adcl	%eax,%eax
    649 	addl	%edx,%ecx
    650 	adcl	$0,%eax
    651 	movl	%ecx,(%ebx)
    652 
    653 	movl	4(%esi),%ecx
    654 	movl	4(%edi),%edx
    655 	addl	%eax,%ecx
    656 	movl	$0,%eax
    657 	adcl	%eax,%eax
    658 	addl	%edx,%ecx
    659 	adcl	$0,%eax
    660 	movl	%ecx,4(%ebx)
    661 
    662 	movl	8(%esi),%ecx
    663 	movl	8(%edi),%edx
    664 	addl	%eax,%ecx
    665 	movl	$0,%eax
    666 	adcl	%eax,%eax
    667 	addl	%edx,%ecx
    668 	adcl	$0,%eax
    669 	movl	%ecx,8(%ebx)
    670 
    671 	movl	12(%esi),%ecx
    672 	movl	12(%edi),%edx
    673 	addl	%eax,%ecx
    674 	movl	$0,%eax
    675 	adcl	%eax,%eax
    676 	addl	%edx,%ecx
    677 	adcl	$0,%eax
    678 	movl	%ecx,12(%ebx)
    679 
    680 	movl	16(%esi),%ecx
    681 	movl	16(%edi),%edx
    682 	addl	%eax,%ecx
    683 	movl	$0,%eax
    684 	adcl	%eax,%eax
    685 	addl	%edx,%ecx
    686 	adcl	$0,%eax
    687 	movl	%ecx,16(%ebx)
    688 
    689 	movl	20(%esi),%ecx
    690 	movl	20(%edi),%edx
    691 	addl	%eax,%ecx
    692 	movl	$0,%eax
    693 	adcl	%eax,%eax
    694 	addl	%edx,%ecx
    695 	adcl	$0,%eax
    696 	movl	%ecx,20(%ebx)
    697 
    698 	movl	24(%esi),%ecx
    699 	movl	24(%edi),%edx
    700 	addl	%eax,%ecx
    701 	movl	$0,%eax
    702 	adcl	%eax,%eax
    703 	addl	%edx,%ecx
    704 	adcl	$0,%eax
    705 	movl	%ecx,24(%ebx)
    706 
    707 	movl	28(%esi),%ecx
    708 	movl	28(%edi),%edx
    709 	addl	%eax,%ecx
    710 	movl	$0,%eax
    711 	adcl	%eax,%eax
    712 	addl	%edx,%ecx
    713 	adcl	$0,%eax
    714 	movl	%ecx,28(%ebx)
    715 
    716 	addl	$32,%esi
    717 	addl	$32,%edi
    718 	addl	$32,%ebx
    719 	subl	$8,%ebp
    720 	jnz	.L024aw_loop
    721 .L023aw_finish:
    722 	movl	32(%esp),%ebp
    723 	andl	$7,%ebp
    724 	jz	.L025aw_end
    725 
    726 	movl	(%esi),%ecx
    727 	movl	(%edi),%edx
    728 	addl	%eax,%ecx
    729 	movl	$0,%eax
    730 	adcl	%eax,%eax
    731 	addl	%edx,%ecx
    732 	adcl	$0,%eax
    733 	decl	%ebp
    734 	movl	%ecx,(%ebx)
    735 	jz	.L025aw_end
    736 
    737 	movl	4(%esi),%ecx
    738 	movl	4(%edi),%edx
    739 	addl	%eax,%ecx
    740 	movl	$0,%eax
    741 	adcl	%eax,%eax
    742 	addl	%edx,%ecx
    743 	adcl	$0,%eax
    744 	decl	%ebp
    745 	movl	%ecx,4(%ebx)
    746 	jz	.L025aw_end
    747 
    748 	movl	8(%esi),%ecx
    749 	movl	8(%edi),%edx
    750 	addl	%eax,%ecx
    751 	movl	$0,%eax
    752 	adcl	%eax,%eax
    753 	addl	%edx,%ecx
    754 	adcl	$0,%eax
    755 	decl	%ebp
    756 	movl	%ecx,8(%ebx)
    757 	jz	.L025aw_end
    758 
    759 	movl	12(%esi),%ecx
    760 	movl	12(%edi),%edx
    761 	addl	%eax,%ecx
    762 	movl	$0,%eax
    763 	adcl	%eax,%eax
    764 	addl	%edx,%ecx
    765 	adcl	$0,%eax
    766 	decl	%ebp
    767 	movl	%ecx,12(%ebx)
    768 	jz	.L025aw_end
    769 
    770 	movl	16(%esi),%ecx
    771 	movl	16(%edi),%edx
    772 	addl	%eax,%ecx
    773 	movl	$0,%eax
    774 	adcl	%eax,%eax
    775 	addl	%edx,%ecx
    776 	adcl	$0,%eax
    777 	decl	%ebp
    778 	movl	%ecx,16(%ebx)
    779 	jz	.L025aw_end
    780 
    781 	movl	20(%esi),%ecx
    782 	movl	20(%edi),%edx
    783 	addl	%eax,%ecx
    784 	movl	$0,%eax
    785 	adcl	%eax,%eax
    786 	addl	%edx,%ecx
    787 	adcl	$0,%eax
    788 	decl	%ebp
    789 	movl	%ecx,20(%ebx)
    790 	jz	.L025aw_end
    791 
    792 	movl	24(%esi),%ecx
    793 	movl	24(%edi),%edx
    794 	addl	%eax,%ecx
    795 	movl	$0,%eax
    796 	adcl	%eax,%eax
    797 	addl	%edx,%ecx
    798 	adcl	$0,%eax
    799 	movl	%ecx,24(%ebx)
    800 .L025aw_end:
    801 	popl	%edi
    802 	popl	%esi
    803 	popl	%ebx
    804 	popl	%ebp
    805 	ret
    806 .size	bn_add_words,.-.L_bn_add_words_begin
    807 .globl	bn_sub_words
    808 .hidden	bn_sub_words
    809 .type	bn_sub_words,@function
    810 .align	16
    811 bn_sub_words:
    812 .L_bn_sub_words_begin:
    813 	pushl	%ebp
    814 	pushl	%ebx
    815 	pushl	%esi
    816 	pushl	%edi
    817 
    818 	movl	20(%esp),%ebx
    819 	movl	24(%esp),%esi
    820 	movl	28(%esp),%edi
    821 	movl	32(%esp),%ebp
    822 	xorl	%eax,%eax
    823 	andl	$4294967288,%ebp
    824 	jz	.L026aw_finish
    825 .L027aw_loop:
    826 
    827 	movl	(%esi),%ecx
    828 	movl	(%edi),%edx
    829 	subl	%eax,%ecx
    830 	movl	$0,%eax
    831 	adcl	%eax,%eax
    832 	subl	%edx,%ecx
    833 	adcl	$0,%eax
    834 	movl	%ecx,(%ebx)
    835 
    836 	movl	4(%esi),%ecx
    837 	movl	4(%edi),%edx
    838 	subl	%eax,%ecx
    839 	movl	$0,%eax
    840 	adcl	%eax,%eax
    841 	subl	%edx,%ecx
    842 	adcl	$0,%eax
    843 	movl	%ecx,4(%ebx)
    844 
    845 	movl	8(%esi),%ecx
    846 	movl	8(%edi),%edx
    847 	subl	%eax,%ecx
    848 	movl	$0,%eax
    849 	adcl	%eax,%eax
    850 	subl	%edx,%ecx
    851 	adcl	$0,%eax
    852 	movl	%ecx,8(%ebx)
    853 
    854 	movl	12(%esi),%ecx
    855 	movl	12(%edi),%edx
    856 	subl	%eax,%ecx
    857 	movl	$0,%eax
    858 	adcl	%eax,%eax
    859 	subl	%edx,%ecx
    860 	adcl	$0,%eax
    861 	movl	%ecx,12(%ebx)
    862 
    863 	movl	16(%esi),%ecx
    864 	movl	16(%edi),%edx
    865 	subl	%eax,%ecx
    866 	movl	$0,%eax
    867 	adcl	%eax,%eax
    868 	subl	%edx,%ecx
    869 	adcl	$0,%eax
    870 	movl	%ecx,16(%ebx)
    871 
    872 	movl	20(%esi),%ecx
    873 	movl	20(%edi),%edx
    874 	subl	%eax,%ecx
    875 	movl	$0,%eax
    876 	adcl	%eax,%eax
    877 	subl	%edx,%ecx
    878 	adcl	$0,%eax
    879 	movl	%ecx,20(%ebx)
    880 
    881 	movl	24(%esi),%ecx
    882 	movl	24(%edi),%edx
    883 	subl	%eax,%ecx
    884 	movl	$0,%eax
    885 	adcl	%eax,%eax
    886 	subl	%edx,%ecx
    887 	adcl	$0,%eax
    888 	movl	%ecx,24(%ebx)
    889 
    890 	movl	28(%esi),%ecx
    891 	movl	28(%edi),%edx
    892 	subl	%eax,%ecx
    893 	movl	$0,%eax
    894 	adcl	%eax,%eax
    895 	subl	%edx,%ecx
    896 	adcl	$0,%eax
    897 	movl	%ecx,28(%ebx)
    898 
    899 	addl	$32,%esi
    900 	addl	$32,%edi
    901 	addl	$32,%ebx
    902 	subl	$8,%ebp
    903 	jnz	.L027aw_loop
    904 .L026aw_finish:
    905 	movl	32(%esp),%ebp
    906 	andl	$7,%ebp
    907 	jz	.L028aw_end
    908 
    909 	movl	(%esi),%ecx
    910 	movl	(%edi),%edx
    911 	subl	%eax,%ecx
    912 	movl	$0,%eax
    913 	adcl	%eax,%eax
    914 	subl	%edx,%ecx
    915 	adcl	$0,%eax
    916 	decl	%ebp
    917 	movl	%ecx,(%ebx)
    918 	jz	.L028aw_end
    919 
    920 	movl	4(%esi),%ecx
    921 	movl	4(%edi),%edx
    922 	subl	%eax,%ecx
    923 	movl	$0,%eax
    924 	adcl	%eax,%eax
    925 	subl	%edx,%ecx
    926 	adcl	$0,%eax
    927 	decl	%ebp
    928 	movl	%ecx,4(%ebx)
    929 	jz	.L028aw_end
    930 
    931 	movl	8(%esi),%ecx
    932 	movl	8(%edi),%edx
    933 	subl	%eax,%ecx
    934 	movl	$0,%eax
    935 	adcl	%eax,%eax
    936 	subl	%edx,%ecx
    937 	adcl	$0,%eax
    938 	decl	%ebp
    939 	movl	%ecx,8(%ebx)
    940 	jz	.L028aw_end
    941 
    942 	movl	12(%esi),%ecx
    943 	movl	12(%edi),%edx
    944 	subl	%eax,%ecx
    945 	movl	$0,%eax
    946 	adcl	%eax,%eax
    947 	subl	%edx,%ecx
    948 	adcl	$0,%eax
    949 	decl	%ebp
    950 	movl	%ecx,12(%ebx)
    951 	jz	.L028aw_end
    952 
    953 	movl	16(%esi),%ecx
    954 	movl	16(%edi),%edx
    955 	subl	%eax,%ecx
    956 	movl	$0,%eax
    957 	adcl	%eax,%eax
    958 	subl	%edx,%ecx
    959 	adcl	$0,%eax
    960 	decl	%ebp
    961 	movl	%ecx,16(%ebx)
    962 	jz	.L028aw_end
    963 
    964 	movl	20(%esi),%ecx
    965 	movl	20(%edi),%edx
    966 	subl	%eax,%ecx
    967 	movl	$0,%eax
    968 	adcl	%eax,%eax
    969 	subl	%edx,%ecx
    970 	adcl	$0,%eax
    971 	decl	%ebp
    972 	movl	%ecx,20(%ebx)
    973 	jz	.L028aw_end
    974 
    975 	movl	24(%esi),%ecx
    976 	movl	24(%edi),%edx
    977 	subl	%eax,%ecx
    978 	movl	$0,%eax
    979 	adcl	%eax,%eax
    980 	subl	%edx,%ecx
    981 	adcl	$0,%eax
    982 	movl	%ecx,24(%ebx)
    983 .L028aw_end:
    984 	popl	%edi
    985 	popl	%esi
    986 	popl	%ebx
    987 	popl	%ebp
    988 	ret
    989 .size	bn_sub_words,.-.L_bn_sub_words_begin
    990 .globl	bn_sub_part_words
    991 .hidden	bn_sub_part_words
    992 .type	bn_sub_part_words,@function
    993 .align	16
    994 bn_sub_part_words:
    995 .L_bn_sub_part_words_begin:
    996 	pushl	%ebp
    997 	pushl	%ebx
    998 	pushl	%esi
    999 	pushl	%edi
   1000 
   1001 	movl	20(%esp),%ebx
   1002 	movl	24(%esp),%esi
   1003 	movl	28(%esp),%edi
   1004 	movl	32(%esp),%ebp
   1005 	xorl	%eax,%eax
   1006 	andl	$4294967288,%ebp
   1007 	jz	.L029aw_finish
   1008 .L030aw_loop:
   1009 
   1010 	movl	(%esi),%ecx
   1011 	movl	(%edi),%edx
   1012 	subl	%eax,%ecx
   1013 	movl	$0,%eax
   1014 	adcl	%eax,%eax
   1015 	subl	%edx,%ecx
   1016 	adcl	$0,%eax
   1017 	movl	%ecx,(%ebx)
   1018 
   1019 	movl	4(%esi),%ecx
   1020 	movl	4(%edi),%edx
   1021 	subl	%eax,%ecx
   1022 	movl	$0,%eax
   1023 	adcl	%eax,%eax
   1024 	subl	%edx,%ecx
   1025 	adcl	$0,%eax
   1026 	movl	%ecx,4(%ebx)
   1027 
   1028 	movl	8(%esi),%ecx
   1029 	movl	8(%edi),%edx
   1030 	subl	%eax,%ecx
   1031 	movl	$0,%eax
   1032 	adcl	%eax,%eax
   1033 	subl	%edx,%ecx
   1034 	adcl	$0,%eax
   1035 	movl	%ecx,8(%ebx)
   1036 
   1037 	movl	12(%esi),%ecx
   1038 	movl	12(%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,12(%ebx)
   1045 
   1046 	movl	16(%esi),%ecx
   1047 	movl	16(%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,16(%ebx)
   1054 
   1055 	movl	20(%esi),%ecx
   1056 	movl	20(%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,20(%ebx)
   1063 
   1064 	movl	24(%esi),%ecx
   1065 	movl	24(%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,24(%ebx)
   1072 
   1073 	movl	28(%esi),%ecx
   1074 	movl	28(%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,28(%ebx)
   1081 
   1082 	addl	$32,%esi
   1083 	addl	$32,%edi
   1084 	addl	$32,%ebx
   1085 	subl	$8,%ebp
   1086 	jnz	.L030aw_loop
   1087 .L029aw_finish:
   1088 	movl	32(%esp),%ebp
   1089 	andl	$7,%ebp
   1090 	jz	.L031aw_end
   1091 
   1092 	movl	(%esi),%ecx
   1093 	movl	(%edi),%edx
   1094 	subl	%eax,%ecx
   1095 	movl	$0,%eax
   1096 	adcl	%eax,%eax
   1097 	subl	%edx,%ecx
   1098 	adcl	$0,%eax
   1099 	movl	%ecx,(%ebx)
   1100 	addl	$4,%esi
   1101 	addl	$4,%edi
   1102 	addl	$4,%ebx
   1103 	decl	%ebp
   1104 	jz	.L031aw_end
   1105 
   1106 	movl	(%esi),%ecx
   1107 	movl	(%edi),%edx
   1108 	subl	%eax,%ecx
   1109 	movl	$0,%eax
   1110 	adcl	%eax,%eax
   1111 	subl	%edx,%ecx
   1112 	adcl	$0,%eax
   1113 	movl	%ecx,(%ebx)
   1114 	addl	$4,%esi
   1115 	addl	$4,%edi
   1116 	addl	$4,%ebx
   1117 	decl	%ebp
   1118 	jz	.L031aw_end
   1119 
   1120 	movl	(%esi),%ecx
   1121 	movl	(%edi),%edx
   1122 	subl	%eax,%ecx
   1123 	movl	$0,%eax
   1124 	adcl	%eax,%eax
   1125 	subl	%edx,%ecx
   1126 	adcl	$0,%eax
   1127 	movl	%ecx,(%ebx)
   1128 	addl	$4,%esi
   1129 	addl	$4,%edi
   1130 	addl	$4,%ebx
   1131 	decl	%ebp
   1132 	jz	.L031aw_end
   1133 
   1134 	movl	(%esi),%ecx
   1135 	movl	(%edi),%edx
   1136 	subl	%eax,%ecx
   1137 	movl	$0,%eax
   1138 	adcl	%eax,%eax
   1139 	subl	%edx,%ecx
   1140 	adcl	$0,%eax
   1141 	movl	%ecx,(%ebx)
   1142 	addl	$4,%esi
   1143 	addl	$4,%edi
   1144 	addl	$4,%ebx
   1145 	decl	%ebp
   1146 	jz	.L031aw_end
   1147 
   1148 	movl	(%esi),%ecx
   1149 	movl	(%edi),%edx
   1150 	subl	%eax,%ecx
   1151 	movl	$0,%eax
   1152 	adcl	%eax,%eax
   1153 	subl	%edx,%ecx
   1154 	adcl	$0,%eax
   1155 	movl	%ecx,(%ebx)
   1156 	addl	$4,%esi
   1157 	addl	$4,%edi
   1158 	addl	$4,%ebx
   1159 	decl	%ebp
   1160 	jz	.L031aw_end
   1161 
   1162 	movl	(%esi),%ecx
   1163 	movl	(%edi),%edx
   1164 	subl	%eax,%ecx
   1165 	movl	$0,%eax
   1166 	adcl	%eax,%eax
   1167 	subl	%edx,%ecx
   1168 	adcl	$0,%eax
   1169 	movl	%ecx,(%ebx)
   1170 	addl	$4,%esi
   1171 	addl	$4,%edi
   1172 	addl	$4,%ebx
   1173 	decl	%ebp
   1174 	jz	.L031aw_end
   1175 
   1176 	movl	(%esi),%ecx
   1177 	movl	(%edi),%edx
   1178 	subl	%eax,%ecx
   1179 	movl	$0,%eax
   1180 	adcl	%eax,%eax
   1181 	subl	%edx,%ecx
   1182 	adcl	$0,%eax
   1183 	movl	%ecx,(%ebx)
   1184 	addl	$4,%esi
   1185 	addl	$4,%edi
   1186 	addl	$4,%ebx
   1187 .L031aw_end:
   1188 	cmpl	$0,36(%esp)
   1189 	je	.L032pw_end
   1190 	movl	36(%esp),%ebp
   1191 	cmpl	$0,%ebp
   1192 	je	.L032pw_end
   1193 	jge	.L033pw_pos
   1194 
   1195 	movl	$0,%edx
   1196 	subl	%ebp,%edx
   1197 	movl	%edx,%ebp
   1198 	andl	$4294967288,%ebp
   1199 	jz	.L034pw_neg_finish
   1200 .L035pw_neg_loop:
   1201 
   1202 	movl	$0,%ecx
   1203 	movl	(%edi),%edx
   1204 	subl	%eax,%ecx
   1205 	movl	$0,%eax
   1206 	adcl	%eax,%eax
   1207 	subl	%edx,%ecx
   1208 	adcl	$0,%eax
   1209 	movl	%ecx,(%ebx)
   1210 
   1211 	movl	$0,%ecx
   1212 	movl	4(%edi),%edx
   1213 	subl	%eax,%ecx
   1214 	movl	$0,%eax
   1215 	adcl	%eax,%eax
   1216 	subl	%edx,%ecx
   1217 	adcl	$0,%eax
   1218 	movl	%ecx,4(%ebx)
   1219 
   1220 	movl	$0,%ecx
   1221 	movl	8(%edi),%edx
   1222 	subl	%eax,%ecx
   1223 	movl	$0,%eax
   1224 	adcl	%eax,%eax
   1225 	subl	%edx,%ecx
   1226 	adcl	$0,%eax
   1227 	movl	%ecx,8(%ebx)
   1228 
   1229 	movl	$0,%ecx
   1230 	movl	12(%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,12(%ebx)
   1237 
   1238 	movl	$0,%ecx
   1239 	movl	16(%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,16(%ebx)
   1246 
   1247 	movl	$0,%ecx
   1248 	movl	20(%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,20(%ebx)
   1255 
   1256 	movl	$0,%ecx
   1257 	movl	24(%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,24(%ebx)
   1264 
   1265 	movl	$0,%ecx
   1266 	movl	28(%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,28(%ebx)
   1273 
   1274 	addl	$32,%edi
   1275 	addl	$32,%ebx
   1276 	subl	$8,%ebp
   1277 	jnz	.L035pw_neg_loop
   1278 .L034pw_neg_finish:
   1279 	movl	36(%esp),%edx
   1280 	movl	$0,%ebp
   1281 	subl	%edx,%ebp
   1282 	andl	$7,%ebp
   1283 	jz	.L032pw_end
   1284 
   1285 	movl	$0,%ecx
   1286 	movl	(%edi),%edx
   1287 	subl	%eax,%ecx
   1288 	movl	$0,%eax
   1289 	adcl	%eax,%eax
   1290 	subl	%edx,%ecx
   1291 	adcl	$0,%eax
   1292 	decl	%ebp
   1293 	movl	%ecx,(%ebx)
   1294 	jz	.L032pw_end
   1295 
   1296 	movl	$0,%ecx
   1297 	movl	4(%edi),%edx
   1298 	subl	%eax,%ecx
   1299 	movl	$0,%eax
   1300 	adcl	%eax,%eax
   1301 	subl	%edx,%ecx
   1302 	adcl	$0,%eax
   1303 	decl	%ebp
   1304 	movl	%ecx,4(%ebx)
   1305 	jz	.L032pw_end
   1306 
   1307 	movl	$0,%ecx
   1308 	movl	8(%edi),%edx
   1309 	subl	%eax,%ecx
   1310 	movl	$0,%eax
   1311 	adcl	%eax,%eax
   1312 	subl	%edx,%ecx
   1313 	adcl	$0,%eax
   1314 	decl	%ebp
   1315 	movl	%ecx,8(%ebx)
   1316 	jz	.L032pw_end
   1317 
   1318 	movl	$0,%ecx
   1319 	movl	12(%edi),%edx
   1320 	subl	%eax,%ecx
   1321 	movl	$0,%eax
   1322 	adcl	%eax,%eax
   1323 	subl	%edx,%ecx
   1324 	adcl	$0,%eax
   1325 	decl	%ebp
   1326 	movl	%ecx,12(%ebx)
   1327 	jz	.L032pw_end
   1328 
   1329 	movl	$0,%ecx
   1330 	movl	16(%edi),%edx
   1331 	subl	%eax,%ecx
   1332 	movl	$0,%eax
   1333 	adcl	%eax,%eax
   1334 	subl	%edx,%ecx
   1335 	adcl	$0,%eax
   1336 	decl	%ebp
   1337 	movl	%ecx,16(%ebx)
   1338 	jz	.L032pw_end
   1339 
   1340 	movl	$0,%ecx
   1341 	movl	20(%edi),%edx
   1342 	subl	%eax,%ecx
   1343 	movl	$0,%eax
   1344 	adcl	%eax,%eax
   1345 	subl	%edx,%ecx
   1346 	adcl	$0,%eax
   1347 	decl	%ebp
   1348 	movl	%ecx,20(%ebx)
   1349 	jz	.L032pw_end
   1350 
   1351 	movl	$0,%ecx
   1352 	movl	24(%edi),%edx
   1353 	subl	%eax,%ecx
   1354 	movl	$0,%eax
   1355 	adcl	%eax,%eax
   1356 	subl	%edx,%ecx
   1357 	adcl	$0,%eax
   1358 	movl	%ecx,24(%ebx)
   1359 	jmp	.L032pw_end
   1360 .L033pw_pos:
   1361 	andl	$4294967288,%ebp
   1362 	jz	.L036pw_pos_finish
   1363 .L037pw_pos_loop:
   1364 
   1365 	movl	(%esi),%ecx
   1366 	subl	%eax,%ecx
   1367 	movl	%ecx,(%ebx)
   1368 	jnc	.L038pw_nc0
   1369 
   1370 	movl	4(%esi),%ecx
   1371 	subl	%eax,%ecx
   1372 	movl	%ecx,4(%ebx)
   1373 	jnc	.L039pw_nc1
   1374 
   1375 	movl	8(%esi),%ecx
   1376 	subl	%eax,%ecx
   1377 	movl	%ecx,8(%ebx)
   1378 	jnc	.L040pw_nc2
   1379 
   1380 	movl	12(%esi),%ecx
   1381 	subl	%eax,%ecx
   1382 	movl	%ecx,12(%ebx)
   1383 	jnc	.L041pw_nc3
   1384 
   1385 	movl	16(%esi),%ecx
   1386 	subl	%eax,%ecx
   1387 	movl	%ecx,16(%ebx)
   1388 	jnc	.L042pw_nc4
   1389 
   1390 	movl	20(%esi),%ecx
   1391 	subl	%eax,%ecx
   1392 	movl	%ecx,20(%ebx)
   1393 	jnc	.L043pw_nc5
   1394 
   1395 	movl	24(%esi),%ecx
   1396 	subl	%eax,%ecx
   1397 	movl	%ecx,24(%ebx)
   1398 	jnc	.L044pw_nc6
   1399 
   1400 	movl	28(%esi),%ecx
   1401 	subl	%eax,%ecx
   1402 	movl	%ecx,28(%ebx)
   1403 	jnc	.L045pw_nc7
   1404 
   1405 	addl	$32,%esi
   1406 	addl	$32,%ebx
   1407 	subl	$8,%ebp
   1408 	jnz	.L037pw_pos_loop
   1409 .L036pw_pos_finish:
   1410 	movl	36(%esp),%ebp
   1411 	andl	$7,%ebp
   1412 	jz	.L032pw_end
   1413 
   1414 	movl	(%esi),%ecx
   1415 	subl	%eax,%ecx
   1416 	movl	%ecx,(%ebx)
   1417 	jnc	.L046pw_tail_nc0
   1418 	decl	%ebp
   1419 	jz	.L032pw_end
   1420 
   1421 	movl	4(%esi),%ecx
   1422 	subl	%eax,%ecx
   1423 	movl	%ecx,4(%ebx)
   1424 	jnc	.L047pw_tail_nc1
   1425 	decl	%ebp
   1426 	jz	.L032pw_end
   1427 
   1428 	movl	8(%esi),%ecx
   1429 	subl	%eax,%ecx
   1430 	movl	%ecx,8(%ebx)
   1431 	jnc	.L048pw_tail_nc2
   1432 	decl	%ebp
   1433 	jz	.L032pw_end
   1434 
   1435 	movl	12(%esi),%ecx
   1436 	subl	%eax,%ecx
   1437 	movl	%ecx,12(%ebx)
   1438 	jnc	.L049pw_tail_nc3
   1439 	decl	%ebp
   1440 	jz	.L032pw_end
   1441 
   1442 	movl	16(%esi),%ecx
   1443 	subl	%eax,%ecx
   1444 	movl	%ecx,16(%ebx)
   1445 	jnc	.L050pw_tail_nc4
   1446 	decl	%ebp
   1447 	jz	.L032pw_end
   1448 
   1449 	movl	20(%esi),%ecx
   1450 	subl	%eax,%ecx
   1451 	movl	%ecx,20(%ebx)
   1452 	jnc	.L051pw_tail_nc5
   1453 	decl	%ebp
   1454 	jz	.L032pw_end
   1455 
   1456 	movl	24(%esi),%ecx
   1457 	subl	%eax,%ecx
   1458 	movl	%ecx,24(%ebx)
   1459 	jnc	.L052pw_tail_nc6
   1460 	movl	$1,%eax
   1461 	jmp	.L032pw_end
   1462 .L053pw_nc_loop:
   1463 	movl	(%esi),%ecx
   1464 	movl	%ecx,(%ebx)
   1465 .L038pw_nc0:
   1466 	movl	4(%esi),%ecx
   1467 	movl	%ecx,4(%ebx)
   1468 .L039pw_nc1:
   1469 	movl	8(%esi),%ecx
   1470 	movl	%ecx,8(%ebx)
   1471 .L040pw_nc2:
   1472 	movl	12(%esi),%ecx
   1473 	movl	%ecx,12(%ebx)
   1474 .L041pw_nc3:
   1475 	movl	16(%esi),%ecx
   1476 	movl	%ecx,16(%ebx)
   1477 .L042pw_nc4:
   1478 	movl	20(%esi),%ecx
   1479 	movl	%ecx,20(%ebx)
   1480 .L043pw_nc5:
   1481 	movl	24(%esi),%ecx
   1482 	movl	%ecx,24(%ebx)
   1483 .L044pw_nc6:
   1484 	movl	28(%esi),%ecx
   1485 	movl	%ecx,28(%ebx)
   1486 .L045pw_nc7:
   1487 
   1488 	addl	$32,%esi
   1489 	addl	$32,%ebx
   1490 	subl	$8,%ebp
   1491 	jnz	.L053pw_nc_loop
   1492 	movl	36(%esp),%ebp
   1493 	andl	$7,%ebp
   1494 	jz	.L054pw_nc_end
   1495 	movl	(%esi),%ecx
   1496 	movl	%ecx,(%ebx)
   1497 .L046pw_tail_nc0:
   1498 	decl	%ebp
   1499 	jz	.L054pw_nc_end
   1500 	movl	4(%esi),%ecx
   1501 	movl	%ecx,4(%ebx)
   1502 .L047pw_tail_nc1:
   1503 	decl	%ebp
   1504 	jz	.L054pw_nc_end
   1505 	movl	8(%esi),%ecx
   1506 	movl	%ecx,8(%ebx)
   1507 .L048pw_tail_nc2:
   1508 	decl	%ebp
   1509 	jz	.L054pw_nc_end
   1510 	movl	12(%esi),%ecx
   1511 	movl	%ecx,12(%ebx)
   1512 .L049pw_tail_nc3:
   1513 	decl	%ebp
   1514 	jz	.L054pw_nc_end
   1515 	movl	16(%esi),%ecx
   1516 	movl	%ecx,16(%ebx)
   1517 .L050pw_tail_nc4:
   1518 	decl	%ebp
   1519 	jz	.L054pw_nc_end
   1520 	movl	20(%esi),%ecx
   1521 	movl	%ecx,20(%ebx)
   1522 .L051pw_tail_nc5:
   1523 	decl	%ebp
   1524 	jz	.L054pw_nc_end
   1525 	movl	24(%esi),%ecx
   1526 	movl	%ecx,24(%ebx)
   1527 .L052pw_tail_nc6:
   1528 .L054pw_nc_end:
   1529 	movl	$0,%eax
   1530 .L032pw_end:
   1531 	popl	%edi
   1532 	popl	%esi
   1533 	popl	%ebx
   1534 	popl	%ebp
   1535 	ret
   1536 .size	bn_sub_part_words,.-.L_bn_sub_part_words_begin
   1537 #endif
   1538