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