cryptlib/bn-sol.s

Tue, 28 Aug 2012 18:29:30 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 28 Aug 2012 18:29:30 +0200
changeset 534
d2d0020cfafa
permissions
-rw-r--r--

Update from Drupal 6.x to 7.x and introduce several new HTML5 themes. Because
many themes from Drupal 6.x have since been abandoned, left unmaintained, or
not ported to Drupal 7.x, this package has changed in size and utility.

     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