cryptlib/c-sol.s

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
parent 38
7fea9071f237
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

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

mercurial