Home | History | Annotate | Download | only in fipsmodule
      1 #if defined(__i386__)
      2 .text
      3 .private_extern	__x86_AES_encrypt_compact
      4 .align	4
      5 __x86_AES_encrypt_compact:
      6 	movl	%edi,20(%esp)
      7 	xorl	(%edi),%eax
      8 	xorl	4(%edi),%ebx
      9 	xorl	8(%edi),%ecx
     10 	xorl	12(%edi),%edx
     11 	movl	240(%edi),%esi
     12 	leal	-2(%esi,%esi,1),%esi
     13 	leal	(%edi,%esi,8),%esi
     14 	movl	%esi,24(%esp)
     15 	movl	-128(%ebp),%edi
     16 	movl	-96(%ebp),%esi
     17 	movl	-64(%ebp),%edi
     18 	movl	-32(%ebp),%esi
     19 	movl	(%ebp),%edi
     20 	movl	32(%ebp),%esi
     21 	movl	64(%ebp),%edi
     22 	movl	96(%ebp),%esi
     23 .align	4,0x90
     24 L000loop:
     25 	movl	%eax,%esi
     26 	andl	$255,%esi
     27 	movzbl	-128(%ebp,%esi,1),%esi
     28 	movzbl	%bh,%edi
     29 	movzbl	-128(%ebp,%edi,1),%edi
     30 	shll	$8,%edi
     31 	xorl	%edi,%esi
     32 	movl	%ecx,%edi
     33 	shrl	$16,%edi
     34 	andl	$255,%edi
     35 	movzbl	-128(%ebp,%edi,1),%edi
     36 	shll	$16,%edi
     37 	xorl	%edi,%esi
     38 	movl	%edx,%edi
     39 	shrl	$24,%edi
     40 	movzbl	-128(%ebp,%edi,1),%edi
     41 	shll	$24,%edi
     42 	xorl	%edi,%esi
     43 	movl	%esi,4(%esp)
     44 	movl	%ebx,%esi
     45 	andl	$255,%esi
     46 	shrl	$16,%ebx
     47 	movzbl	-128(%ebp,%esi,1),%esi
     48 	movzbl	%ch,%edi
     49 	movzbl	-128(%ebp,%edi,1),%edi
     50 	shll	$8,%edi
     51 	xorl	%edi,%esi
     52 	movl	%edx,%edi
     53 	shrl	$16,%edi
     54 	andl	$255,%edi
     55 	movzbl	-128(%ebp,%edi,1),%edi
     56 	shll	$16,%edi
     57 	xorl	%edi,%esi
     58 	movl	%eax,%edi
     59 	shrl	$24,%edi
     60 	movzbl	-128(%ebp,%edi,1),%edi
     61 	shll	$24,%edi
     62 	xorl	%edi,%esi
     63 	movl	%esi,8(%esp)
     64 	movl	%ecx,%esi
     65 	andl	$255,%esi
     66 	shrl	$24,%ecx
     67 	movzbl	-128(%ebp,%esi,1),%esi
     68 	movzbl	%dh,%edi
     69 	movzbl	-128(%ebp,%edi,1),%edi
     70 	shll	$8,%edi
     71 	xorl	%edi,%esi
     72 	movl	%eax,%edi
     73 	shrl	$16,%edi
     74 	andl	$255,%edx
     75 	andl	$255,%edi
     76 	movzbl	-128(%ebp,%edi,1),%edi
     77 	shll	$16,%edi
     78 	xorl	%edi,%esi
     79 	movzbl	%bh,%edi
     80 	movzbl	-128(%ebp,%edi,1),%edi
     81 	shll	$24,%edi
     82 	xorl	%edi,%esi
     83 	andl	$255,%edx
     84 	movzbl	-128(%ebp,%edx,1),%edx
     85 	movzbl	%ah,%eax
     86 	movzbl	-128(%ebp,%eax,1),%eax
     87 	shll	$8,%eax
     88 	xorl	%eax,%edx
     89 	movl	4(%esp),%eax
     90 	andl	$255,%ebx
     91 	movzbl	-128(%ebp,%ebx,1),%ebx
     92 	shll	$16,%ebx
     93 	xorl	%ebx,%edx
     94 	movl	8(%esp),%ebx
     95 	movzbl	-128(%ebp,%ecx,1),%ecx
     96 	shll	$24,%ecx
     97 	xorl	%ecx,%edx
     98 	movl	%esi,%ecx
     99 	movl	$2155905152,%ebp
    100 	andl	%ecx,%ebp
    101 	leal	(%ecx,%ecx,1),%edi
    102 	movl	%ebp,%esi
    103 	shrl	$7,%ebp
    104 	andl	$4278124286,%edi
    105 	subl	%ebp,%esi
    106 	movl	%ecx,%ebp
    107 	andl	$454761243,%esi
    108 	rorl	$16,%ebp
    109 	xorl	%edi,%esi
    110 	movl	%ecx,%edi
    111 	xorl	%esi,%ecx
    112 	rorl	$24,%edi
    113 	xorl	%ebp,%esi
    114 	roll	$24,%ecx
    115 	xorl	%edi,%esi
    116 	movl	$2155905152,%ebp
    117 	xorl	%esi,%ecx
    118 	andl	%edx,%ebp
    119 	leal	(%edx,%edx,1),%edi
    120 	movl	%ebp,%esi
    121 	shrl	$7,%ebp
    122 	andl	$4278124286,%edi
    123 	subl	%ebp,%esi
    124 	movl	%edx,%ebp
    125 	andl	$454761243,%esi
    126 	rorl	$16,%ebp
    127 	xorl	%edi,%esi
    128 	movl	%edx,%edi
    129 	xorl	%esi,%edx
    130 	rorl	$24,%edi
    131 	xorl	%ebp,%esi
    132 	roll	$24,%edx
    133 	xorl	%edi,%esi
    134 	movl	$2155905152,%ebp
    135 	xorl	%esi,%edx
    136 	andl	%eax,%ebp
    137 	leal	(%eax,%eax,1),%edi
    138 	movl	%ebp,%esi
    139 	shrl	$7,%ebp
    140 	andl	$4278124286,%edi
    141 	subl	%ebp,%esi
    142 	movl	%eax,%ebp
    143 	andl	$454761243,%esi
    144 	rorl	$16,%ebp
    145 	xorl	%edi,%esi
    146 	movl	%eax,%edi
    147 	xorl	%esi,%eax
    148 	rorl	$24,%edi
    149 	xorl	%ebp,%esi
    150 	roll	$24,%eax
    151 	xorl	%edi,%esi
    152 	movl	$2155905152,%ebp
    153 	xorl	%esi,%eax
    154 	andl	%ebx,%ebp
    155 	leal	(%ebx,%ebx,1),%edi
    156 	movl	%ebp,%esi
    157 	shrl	$7,%ebp
    158 	andl	$4278124286,%edi
    159 	subl	%ebp,%esi
    160 	movl	%ebx,%ebp
    161 	andl	$454761243,%esi
    162 	rorl	$16,%ebp
    163 	xorl	%edi,%esi
    164 	movl	%ebx,%edi
    165 	xorl	%esi,%ebx
    166 	rorl	$24,%edi
    167 	xorl	%ebp,%esi
    168 	roll	$24,%ebx
    169 	xorl	%edi,%esi
    170 	xorl	%esi,%ebx
    171 	movl	20(%esp),%edi
    172 	movl	28(%esp),%ebp
    173 	addl	$16,%edi
    174 	xorl	(%edi),%eax
    175 	xorl	4(%edi),%ebx
    176 	xorl	8(%edi),%ecx
    177 	xorl	12(%edi),%edx
    178 	cmpl	24(%esp),%edi
    179 	movl	%edi,20(%esp)
    180 	jb	L000loop
    181 	movl	%eax,%esi
    182 	andl	$255,%esi
    183 	movzbl	-128(%ebp,%esi,1),%esi
    184 	movzbl	%bh,%edi
    185 	movzbl	-128(%ebp,%edi,1),%edi
    186 	shll	$8,%edi
    187 	xorl	%edi,%esi
    188 	movl	%ecx,%edi
    189 	shrl	$16,%edi
    190 	andl	$255,%edi
    191 	movzbl	-128(%ebp,%edi,1),%edi
    192 	shll	$16,%edi
    193 	xorl	%edi,%esi
    194 	movl	%edx,%edi
    195 	shrl	$24,%edi
    196 	movzbl	-128(%ebp,%edi,1),%edi
    197 	shll	$24,%edi
    198 	xorl	%edi,%esi
    199 	movl	%esi,4(%esp)
    200 	movl	%ebx,%esi
    201 	andl	$255,%esi
    202 	shrl	$16,%ebx
    203 	movzbl	-128(%ebp,%esi,1),%esi
    204 	movzbl	%ch,%edi
    205 	movzbl	-128(%ebp,%edi,1),%edi
    206 	shll	$8,%edi
    207 	xorl	%edi,%esi
    208 	movl	%edx,%edi
    209 	shrl	$16,%edi
    210 	andl	$255,%edi
    211 	movzbl	-128(%ebp,%edi,1),%edi
    212 	shll	$16,%edi
    213 	xorl	%edi,%esi
    214 	movl	%eax,%edi
    215 	shrl	$24,%edi
    216 	movzbl	-128(%ebp,%edi,1),%edi
    217 	shll	$24,%edi
    218 	xorl	%edi,%esi
    219 	movl	%esi,8(%esp)
    220 	movl	%ecx,%esi
    221 	andl	$255,%esi
    222 	shrl	$24,%ecx
    223 	movzbl	-128(%ebp,%esi,1),%esi
    224 	movzbl	%dh,%edi
    225 	movzbl	-128(%ebp,%edi,1),%edi
    226 	shll	$8,%edi
    227 	xorl	%edi,%esi
    228 	movl	%eax,%edi
    229 	shrl	$16,%edi
    230 	andl	$255,%edx
    231 	andl	$255,%edi
    232 	movzbl	-128(%ebp,%edi,1),%edi
    233 	shll	$16,%edi
    234 	xorl	%edi,%esi
    235 	movzbl	%bh,%edi
    236 	movzbl	-128(%ebp,%edi,1),%edi
    237 	shll	$24,%edi
    238 	xorl	%edi,%esi
    239 	movl	20(%esp),%edi
    240 	andl	$255,%edx
    241 	movzbl	-128(%ebp,%edx,1),%edx
    242 	movzbl	%ah,%eax
    243 	movzbl	-128(%ebp,%eax,1),%eax
    244 	shll	$8,%eax
    245 	xorl	%eax,%edx
    246 	movl	4(%esp),%eax
    247 	andl	$255,%ebx
    248 	movzbl	-128(%ebp,%ebx,1),%ebx
    249 	shll	$16,%ebx
    250 	xorl	%ebx,%edx
    251 	movl	8(%esp),%ebx
    252 	movzbl	-128(%ebp,%ecx,1),%ecx
    253 	shll	$24,%ecx
    254 	xorl	%ecx,%edx
    255 	movl	%esi,%ecx
    256 	xorl	16(%edi),%eax
    257 	xorl	20(%edi),%ebx
    258 	xorl	24(%edi),%ecx
    259 	xorl	28(%edi),%edx
    260 	ret
    261 .private_extern	__sse_AES_encrypt_compact
    262 .align	4
    263 __sse_AES_encrypt_compact:
    264 	pxor	(%edi),%mm0
    265 	pxor	8(%edi),%mm4
    266 	movl	240(%edi),%esi
    267 	leal	-2(%esi,%esi,1),%esi
    268 	leal	(%edi,%esi,8),%esi
    269 	movl	%esi,24(%esp)
    270 	movl	$454761243,%eax
    271 	movl	%eax,8(%esp)
    272 	movl	%eax,12(%esp)
    273 	movl	-128(%ebp),%eax
    274 	movl	-96(%ebp),%ebx
    275 	movl	-64(%ebp),%ecx
    276 	movl	-32(%ebp),%edx
    277 	movl	(%ebp),%eax
    278 	movl	32(%ebp),%ebx
    279 	movl	64(%ebp),%ecx
    280 	movl	96(%ebp),%edx
    281 .align	4,0x90
    282 L001loop:
    283 	pshufw	$8,%mm0,%mm1
    284 	pshufw	$13,%mm4,%mm5
    285 	movd	%mm1,%eax
    286 	movd	%mm5,%ebx
    287 	movl	%edi,20(%esp)
    288 	movzbl	%al,%esi
    289 	movzbl	%ah,%edx
    290 	pshufw	$13,%mm0,%mm2
    291 	movzbl	-128(%ebp,%esi,1),%ecx
    292 	movzbl	%bl,%edi
    293 	movzbl	-128(%ebp,%edx,1),%edx
    294 	shrl	$16,%eax
    295 	shll	$8,%edx
    296 	movzbl	-128(%ebp,%edi,1),%esi
    297 	movzbl	%bh,%edi
    298 	shll	$16,%esi
    299 	pshufw	$8,%mm4,%mm6
    300 	orl	%esi,%ecx
    301 	movzbl	-128(%ebp,%edi,1),%esi
    302 	movzbl	%ah,%edi
    303 	shll	$24,%esi
    304 	shrl	$16,%ebx
    305 	orl	%esi,%edx
    306 	movzbl	-128(%ebp,%edi,1),%esi
    307 	movzbl	%bh,%edi
    308 	shll	$8,%esi
    309 	orl	%esi,%ecx
    310 	movzbl	-128(%ebp,%edi,1),%esi
    311 	movzbl	%al,%edi
    312 	shll	$24,%esi
    313 	orl	%esi,%ecx
    314 	movzbl	-128(%ebp,%edi,1),%esi
    315 	movzbl	%bl,%edi
    316 	movd	%mm2,%eax
    317 	movd	%ecx,%mm0
    318 	movzbl	-128(%ebp,%edi,1),%ecx
    319 	movzbl	%ah,%edi
    320 	shll	$16,%ecx
    321 	movd	%mm6,%ebx
    322 	orl	%esi,%ecx
    323 	movzbl	-128(%ebp,%edi,1),%esi
    324 	movzbl	%bh,%edi
    325 	shll	$24,%esi
    326 	orl	%esi,%ecx
    327 	movzbl	-128(%ebp,%edi,1),%esi
    328 	movzbl	%bl,%edi
    329 	shll	$8,%esi
    330 	shrl	$16,%ebx
    331 	orl	%esi,%ecx
    332 	movzbl	-128(%ebp,%edi,1),%esi
    333 	movzbl	%al,%edi
    334 	shrl	$16,%eax
    335 	movd	%ecx,%mm1
    336 	movzbl	-128(%ebp,%edi,1),%ecx
    337 	movzbl	%ah,%edi
    338 	shll	$16,%ecx
    339 	andl	$255,%eax
    340 	orl	%esi,%ecx
    341 	punpckldq	%mm1,%mm0
    342 	movzbl	-128(%ebp,%edi,1),%esi
    343 	movzbl	%bh,%edi
    344 	shll	$24,%esi
    345 	andl	$255,%ebx
    346 	movzbl	-128(%ebp,%eax,1),%eax
    347 	orl	%esi,%ecx
    348 	shll	$16,%eax
    349 	movzbl	-128(%ebp,%edi,1),%esi
    350 	orl	%eax,%edx
    351 	shll	$8,%esi
    352 	movzbl	-128(%ebp,%ebx,1),%ebx
    353 	orl	%esi,%ecx
    354 	orl	%ebx,%edx
    355 	movl	20(%esp),%edi
    356 	movd	%ecx,%mm4
    357 	movd	%edx,%mm5
    358 	punpckldq	%mm5,%mm4
    359 	addl	$16,%edi
    360 	cmpl	24(%esp),%edi
    361 	ja	L002out
    362 	movq	8(%esp),%mm2
    363 	pxor	%mm3,%mm3
    364 	pxor	%mm7,%mm7
    365 	movq	%mm0,%mm1
    366 	movq	%mm4,%mm5
    367 	pcmpgtb	%mm0,%mm3
    368 	pcmpgtb	%mm4,%mm7
    369 	pand	%mm2,%mm3
    370 	pand	%mm2,%mm7
    371 	pshufw	$177,%mm0,%mm2
    372 	pshufw	$177,%mm4,%mm6
    373 	paddb	%mm0,%mm0
    374 	paddb	%mm4,%mm4
    375 	pxor	%mm3,%mm0
    376 	pxor	%mm7,%mm4
    377 	pshufw	$177,%mm2,%mm3
    378 	pshufw	$177,%mm6,%mm7
    379 	pxor	%mm0,%mm1
    380 	pxor	%mm4,%mm5
    381 	pxor	%mm2,%mm0
    382 	pxor	%mm6,%mm4
    383 	movq	%mm3,%mm2
    384 	movq	%mm7,%mm6
    385 	pslld	$8,%mm3
    386 	pslld	$8,%mm7
    387 	psrld	$24,%mm2
    388 	psrld	$24,%mm6
    389 	pxor	%mm3,%mm0
    390 	pxor	%mm7,%mm4
    391 	pxor	%mm2,%mm0
    392 	pxor	%mm6,%mm4
    393 	movq	%mm1,%mm3
    394 	movq	%mm5,%mm7
    395 	movq	(%edi),%mm2
    396 	movq	8(%edi),%mm6
    397 	psrld	$8,%mm1
    398 	psrld	$8,%mm5
    399 	movl	-128(%ebp),%eax
    400 	pslld	$24,%mm3
    401 	pslld	$24,%mm7
    402 	movl	-64(%ebp),%ebx
    403 	pxor	%mm1,%mm0
    404 	pxor	%mm5,%mm4
    405 	movl	(%ebp),%ecx
    406 	pxor	%mm3,%mm0
    407 	pxor	%mm7,%mm4
    408 	movl	64(%ebp),%edx
    409 	pxor	%mm2,%mm0
    410 	pxor	%mm6,%mm4
    411 	jmp	L001loop
    412 .align	4,0x90
    413 L002out:
    414 	pxor	(%edi),%mm0
    415 	pxor	8(%edi),%mm4
    416 	ret
    417 .private_extern	__x86_AES_encrypt
    418 .align	4
    419 __x86_AES_encrypt:
    420 	movl	%edi,20(%esp)
    421 	xorl	(%edi),%eax
    422 	xorl	4(%edi),%ebx
    423 	xorl	8(%edi),%ecx
    424 	xorl	12(%edi),%edx
    425 	movl	240(%edi),%esi
    426 	leal	-2(%esi,%esi,1),%esi
    427 	leal	(%edi,%esi,8),%esi
    428 	movl	%esi,24(%esp)
    429 .align	4,0x90
    430 L003loop:
    431 	movl	%eax,%esi
    432 	andl	$255,%esi
    433 	movl	(%ebp,%esi,8),%esi
    434 	movzbl	%bh,%edi
    435 	xorl	3(%ebp,%edi,8),%esi
    436 	movl	%ecx,%edi
    437 	shrl	$16,%edi
    438 	andl	$255,%edi
    439 	xorl	2(%ebp,%edi,8),%esi
    440 	movl	%edx,%edi
    441 	shrl	$24,%edi
    442 	xorl	1(%ebp,%edi,8),%esi
    443 	movl	%esi,4(%esp)
    444 	movl	%ebx,%esi
    445 	andl	$255,%esi
    446 	shrl	$16,%ebx
    447 	movl	(%ebp,%esi,8),%esi
    448 	movzbl	%ch,%edi
    449 	xorl	3(%ebp,%edi,8),%esi
    450 	movl	%edx,%edi
    451 	shrl	$16,%edi
    452 	andl	$255,%edi
    453 	xorl	2(%ebp,%edi,8),%esi
    454 	movl	%eax,%edi
    455 	shrl	$24,%edi
    456 	xorl	1(%ebp,%edi,8),%esi
    457 	movl	%esi,8(%esp)
    458 	movl	%ecx,%esi
    459 	andl	$255,%esi
    460 	shrl	$24,%ecx
    461 	movl	(%ebp,%esi,8),%esi
    462 	movzbl	%dh,%edi
    463 	xorl	3(%ebp,%edi,8),%esi
    464 	movl	%eax,%edi
    465 	shrl	$16,%edi
    466 	andl	$255,%edx
    467 	andl	$255,%edi
    468 	xorl	2(%ebp,%edi,8),%esi
    469 	movzbl	%bh,%edi
    470 	xorl	1(%ebp,%edi,8),%esi
    471 	movl	20(%esp),%edi
    472 	movl	(%ebp,%edx,8),%edx
    473 	movzbl	%ah,%eax
    474 	xorl	3(%ebp,%eax,8),%edx
    475 	movl	4(%esp),%eax
    476 	andl	$255,%ebx
    477 	xorl	2(%ebp,%ebx,8),%edx
    478 	movl	8(%esp),%ebx
    479 	xorl	1(%ebp,%ecx,8),%edx
    480 	movl	%esi,%ecx
    481 	addl	$16,%edi
    482 	xorl	(%edi),%eax
    483 	xorl	4(%edi),%ebx
    484 	xorl	8(%edi),%ecx
    485 	xorl	12(%edi),%edx
    486 	cmpl	24(%esp),%edi
    487 	movl	%edi,20(%esp)
    488 	jb	L003loop
    489 	movl	%eax,%esi
    490 	andl	$255,%esi
    491 	movl	2(%ebp,%esi,8),%esi
    492 	andl	$255,%esi
    493 	movzbl	%bh,%edi
    494 	movl	(%ebp,%edi,8),%edi
    495 	andl	$65280,%edi
    496 	xorl	%edi,%esi
    497 	movl	%ecx,%edi
    498 	shrl	$16,%edi
    499 	andl	$255,%edi
    500 	movl	(%ebp,%edi,8),%edi
    501 	andl	$16711680,%edi
    502 	xorl	%edi,%esi
    503 	movl	%edx,%edi
    504 	shrl	$24,%edi
    505 	movl	2(%ebp,%edi,8),%edi
    506 	andl	$4278190080,%edi
    507 	xorl	%edi,%esi
    508 	movl	%esi,4(%esp)
    509 	movl	%ebx,%esi
    510 	andl	$255,%esi
    511 	shrl	$16,%ebx
    512 	movl	2(%ebp,%esi,8),%esi
    513 	andl	$255,%esi
    514 	movzbl	%ch,%edi
    515 	movl	(%ebp,%edi,8),%edi
    516 	andl	$65280,%edi
    517 	xorl	%edi,%esi
    518 	movl	%edx,%edi
    519 	shrl	$16,%edi
    520 	andl	$255,%edi
    521 	movl	(%ebp,%edi,8),%edi
    522 	andl	$16711680,%edi
    523 	xorl	%edi,%esi
    524 	movl	%eax,%edi
    525 	shrl	$24,%edi
    526 	movl	2(%ebp,%edi,8),%edi
    527 	andl	$4278190080,%edi
    528 	xorl	%edi,%esi
    529 	movl	%esi,8(%esp)
    530 	movl	%ecx,%esi
    531 	andl	$255,%esi
    532 	shrl	$24,%ecx
    533 	movl	2(%ebp,%esi,8),%esi
    534 	andl	$255,%esi
    535 	movzbl	%dh,%edi
    536 	movl	(%ebp,%edi,8),%edi
    537 	andl	$65280,%edi
    538 	xorl	%edi,%esi
    539 	movl	%eax,%edi
    540 	shrl	$16,%edi
    541 	andl	$255,%edx
    542 	andl	$255,%edi
    543 	movl	(%ebp,%edi,8),%edi
    544 	andl	$16711680,%edi
    545 	xorl	%edi,%esi
    546 	movzbl	%bh,%edi
    547 	movl	2(%ebp,%edi,8),%edi
    548 	andl	$4278190080,%edi
    549 	xorl	%edi,%esi
    550 	movl	20(%esp),%edi
    551 	andl	$255,%edx
    552 	movl	2(%ebp,%edx,8),%edx
    553 	andl	$255,%edx
    554 	movzbl	%ah,%eax
    555 	movl	(%ebp,%eax,8),%eax
    556 	andl	$65280,%eax
    557 	xorl	%eax,%edx
    558 	movl	4(%esp),%eax
    559 	andl	$255,%ebx
    560 	movl	(%ebp,%ebx,8),%ebx
    561 	andl	$16711680,%ebx
    562 	xorl	%ebx,%edx
    563 	movl	8(%esp),%ebx
    564 	movl	2(%ebp,%ecx,8),%ecx
    565 	andl	$4278190080,%ecx
    566 	xorl	%ecx,%edx
    567 	movl	%esi,%ecx
    568 	addl	$16,%edi
    569 	xorl	(%edi),%eax
    570 	xorl	4(%edi),%ebx
    571 	xorl	8(%edi),%ecx
    572 	xorl	12(%edi),%edx
    573 	ret
    574 .align	6,0x90
    575 LAES_Te:
    576 .long	2774754246,2774754246
    577 .long	2222750968,2222750968
    578 .long	2574743534,2574743534
    579 .long	2373680118,2373680118
    580 .long	234025727,234025727
    581 .long	3177933782,3177933782
    582 .long	2976870366,2976870366
    583 .long	1422247313,1422247313
    584 .long	1345335392,1345335392
    585 .long	50397442,50397442
    586 .long	2842126286,2842126286
    587 .long	2099981142,2099981142
    588 .long	436141799,436141799
    589 .long	1658312629,1658312629
    590 .long	3870010189,3870010189
    591 .long	2591454956,2591454956
    592 .long	1170918031,1170918031
    593 .long	2642575903,2642575903
    594 .long	1086966153,1086966153
    595 .long	2273148410,2273148410
    596 .long	368769775,368769775
    597 .long	3948501426,3948501426
    598 .long	3376891790,3376891790
    599 .long	200339707,200339707
    600 .long	3970805057,3970805057
    601 .long	1742001331,1742001331
    602 .long	4255294047,4255294047
    603 .long	3937382213,3937382213
    604 .long	3214711843,3214711843
    605 .long	4154762323,4154762323
    606 .long	2524082916,2524082916
    607 .long	1539358875,1539358875
    608 .long	3266819957,3266819957
    609 .long	486407649,486407649
    610 .long	2928907069,2928907069
    611 .long	1780885068,1780885068
    612 .long	1513502316,1513502316
    613 .long	1094664062,1094664062
    614 .long	49805301,49805301
    615 .long	1338821763,1338821763
    616 .long	1546925160,1546925160
    617 .long	4104496465,4104496465
    618 .long	887481809,887481809
    619 .long	150073849,150073849
    620 .long	2473685474,2473685474
    621 .long	1943591083,1943591083
    622 .long	1395732834,1395732834
    623 .long	1058346282,1058346282
    624 .long	201589768,201589768
    625 .long	1388824469,1388824469
    626 .long	1696801606,1696801606
    627 .long	1589887901,1589887901
    628 .long	672667696,672667696
    629 .long	2711000631,2711000631
    630 .long	251987210,251987210
    631 .long	3046808111,3046808111
    632 .long	151455502,151455502
    633 .long	907153956,907153956
    634 .long	2608889883,2608889883
    635 .long	1038279391,1038279391
    636 .long	652995533,652995533
    637 .long	1764173646,1764173646
    638 .long	3451040383,3451040383
    639 .long	2675275242,2675275242
    640 .long	453576978,453576978
    641 .long	2659418909,2659418909
    642 .long	1949051992,1949051992
    643 .long	773462580,773462580
    644 .long	756751158,756751158
    645 .long	2993581788,2993581788
    646 .long	3998898868,3998898868
    647 .long	4221608027,4221608027
    648 .long	4132590244,4132590244
    649 .long	1295727478,1295727478
    650 .long	1641469623,1641469623
    651 .long	3467883389,3467883389
    652 .long	2066295122,2066295122
    653 .long	1055122397,1055122397
    654 .long	1898917726,1898917726
    655 .long	2542044179,2542044179
    656 .long	4115878822,4115878822
    657 .long	1758581177,1758581177
    658 .long	0,0
    659 .long	753790401,753790401
    660 .long	1612718144,1612718144
    661 .long	536673507,536673507
    662 .long	3367088505,3367088505
    663 .long	3982187446,3982187446
    664 .long	3194645204,3194645204
    665 .long	1187761037,1187761037
    666 .long	3653156455,3653156455
    667 .long	1262041458,1262041458
    668 .long	3729410708,3729410708
    669 .long	3561770136,3561770136
    670 .long	3898103984,3898103984
    671 .long	1255133061,1255133061
    672 .long	1808847035,1808847035
    673 .long	720367557,720367557
    674 .long	3853167183,3853167183
    675 .long	385612781,385612781
    676 .long	3309519750,3309519750
    677 .long	3612167578,3612167578
    678 .long	1429418854,1429418854
    679 .long	2491778321,2491778321
    680 .long	3477423498,3477423498
    681 .long	284817897,284817897
    682 .long	100794884,100794884
    683 .long	2172616702,2172616702
    684 .long	4031795360,4031795360
    685 .long	1144798328,1144798328
    686 .long	3131023141,3131023141
    687 .long	3819481163,3819481163
    688 .long	4082192802,4082192802
    689 .long	4272137053,4272137053
    690 .long	3225436288,3225436288
    691 .long	2324664069,2324664069
    692 .long	2912064063,2912064063
    693 .long	3164445985,3164445985
    694 .long	1211644016,1211644016
    695 .long	83228145,83228145
    696 .long	3753688163,3753688163
    697 .long	3249976951,3249976951
    698 .long	1977277103,1977277103
    699 .long	1663115586,1663115586
    700 .long	806359072,806359072
    701 .long	452984805,452984805
    702 .long	250868733,250868733
    703 .long	1842533055,1842533055
    704 .long	1288555905,1288555905
    705 .long	336333848,336333848
    706 .long	890442534,890442534
    707 .long	804056259,804056259
    708 .long	3781124030,3781124030
    709 .long	2727843637,2727843637
    710 .long	3427026056,3427026056
    711 .long	957814574,957814574
    712 .long	1472513171,1472513171
    713 .long	4071073621,4071073621
    714 .long	2189328124,2189328124
    715 .long	1195195770,1195195770
    716 .long	2892260552,2892260552
    717 .long	3881655738,3881655738
    718 .long	723065138,723065138
    719 .long	2507371494,2507371494
    720 .long	2690670784,2690670784
    721 .long	2558624025,2558624025
    722 .long	3511635870,3511635870
    723 .long	2145180835,2145180835
    724 .long	1713513028,1713513028
    725 .long	2116692564,2116692564
    726 .long	2878378043,2878378043
    727 .long	2206763019,2206763019
    728 .long	3393603212,3393603212
    729 .long	703524551,703524551
    730 .long	3552098411,3552098411
    731 .long	1007948840,1007948840
    732 .long	2044649127,2044649127
    733 .long	3797835452,3797835452
    734 .long	487262998,487262998
    735 .long	1994120109,1994120109
    736 .long	1004593371,1004593371
    737 .long	1446130276,1446130276
    738 .long	1312438900,1312438900
    739 .long	503974420,503974420
    740 .long	3679013266,3679013266
    741 .long	168166924,168166924
    742 .long	1814307912,1814307912
    743 .long	3831258296,3831258296
    744 .long	1573044895,1573044895
    745 .long	1859376061,1859376061
    746 .long	4021070915,4021070915
    747 .long	2791465668,2791465668
    748 .long	2828112185,2828112185
    749 .long	2761266481,2761266481
    750 .long	937747667,937747667
    751 .long	2339994098,2339994098
    752 .long	854058965,854058965
    753 .long	1137232011,1137232011
    754 .long	1496790894,1496790894
    755 .long	3077402074,3077402074
    756 .long	2358086913,2358086913
    757 .long	1691735473,1691735473
    758 .long	3528347292,3528347292
    759 .long	3769215305,3769215305
    760 .long	3027004632,3027004632
    761 .long	4199962284,4199962284
    762 .long	133494003,133494003
    763 .long	636152527,636152527
    764 .long	2942657994,2942657994
    765 .long	2390391540,2390391540
    766 .long	3920539207,3920539207
    767 .long	403179536,403179536
    768 .long	3585784431,3585784431
    769 .long	2289596656,2289596656
    770 .long	1864705354,1864705354
    771 .long	1915629148,1915629148
    772 .long	605822008,605822008
    773 .long	4054230615,4054230615
    774 .long	3350508659,3350508659
    775 .long	1371981463,1371981463
    776 .long	602466507,602466507
    777 .long	2094914977,2094914977
    778 .long	2624877800,2624877800
    779 .long	555687742,555687742
    780 .long	3712699286,3712699286
    781 .long	3703422305,3703422305
    782 .long	2257292045,2257292045
    783 .long	2240449039,2240449039
    784 .long	2423288032,2423288032
    785 .long	1111375484,1111375484
    786 .long	3300242801,3300242801
    787 .long	2858837708,2858837708
    788 .long	3628615824,3628615824
    789 .long	84083462,84083462
    790 .long	32962295,32962295
    791 .long	302911004,302911004
    792 .long	2741068226,2741068226
    793 .long	1597322602,1597322602
    794 .long	4183250862,4183250862
    795 .long	3501832553,3501832553
    796 .long	2441512471,2441512471
    797 .long	1489093017,1489093017
    798 .long	656219450,656219450
    799 .long	3114180135,3114180135
    800 .long	954327513,954327513
    801 .long	335083755,335083755
    802 .long	3013122091,3013122091
    803 .long	856756514,856756514
    804 .long	3144247762,3144247762
    805 .long	1893325225,1893325225
    806 .long	2307821063,2307821063
    807 .long	2811532339,2811532339
    808 .long	3063651117,3063651117
    809 .long	572399164,572399164
    810 .long	2458355477,2458355477
    811 .long	552200649,552200649
    812 .long	1238290055,1238290055
    813 .long	4283782570,4283782570
    814 .long	2015897680,2015897680
    815 .long	2061492133,2061492133
    816 .long	2408352771,2408352771
    817 .long	4171342169,4171342169
    818 .long	2156497161,2156497161
    819 .long	386731290,386731290
    820 .long	3669999461,3669999461
    821 .long	837215959,837215959
    822 .long	3326231172,3326231172
    823 .long	3093850320,3093850320
    824 .long	3275833730,3275833730
    825 .long	2962856233,2962856233
    826 .long	1999449434,1999449434
    827 .long	286199582,286199582
    828 .long	3417354363,3417354363
    829 .long	4233385128,4233385128
    830 .long	3602627437,3602627437
    831 .long	974525996,974525996
    832 .byte	99,124,119,123,242,107,111,197
    833 .byte	48,1,103,43,254,215,171,118
    834 .byte	202,130,201,125,250,89,71,240
    835 .byte	173,212,162,175,156,164,114,192
    836 .byte	183,253,147,38,54,63,247,204
    837 .byte	52,165,229,241,113,216,49,21
    838 .byte	4,199,35,195,24,150,5,154
    839 .byte	7,18,128,226,235,39,178,117
    840 .byte	9,131,44,26,27,110,90,160
    841 .byte	82,59,214,179,41,227,47,132
    842 .byte	83,209,0,237,32,252,177,91
    843 .byte	106,203,190,57,74,76,88,207
    844 .byte	208,239,170,251,67,77,51,133
    845 .byte	69,249,2,127,80,60,159,168
    846 .byte	81,163,64,143,146,157,56,245
    847 .byte	188,182,218,33,16,255,243,210
    848 .byte	205,12,19,236,95,151,68,23
    849 .byte	196,167,126,61,100,93,25,115
    850 .byte	96,129,79,220,34,42,144,136
    851 .byte	70,238,184,20,222,94,11,219
    852 .byte	224,50,58,10,73,6,36,92
    853 .byte	194,211,172,98,145,149,228,121
    854 .byte	231,200,55,109,141,213,78,169
    855 .byte	108,86,244,234,101,122,174,8
    856 .byte	186,120,37,46,28,166,180,198
    857 .byte	232,221,116,31,75,189,139,138
    858 .byte	112,62,181,102,72,3,246,14
    859 .byte	97,53,87,185,134,193,29,158
    860 .byte	225,248,152,17,105,217,142,148
    861 .byte	155,30,135,233,206,85,40,223
    862 .byte	140,161,137,13,191,230,66,104
    863 .byte	65,153,45,15,176,84,187,22
    864 .byte	99,124,119,123,242,107,111,197
    865 .byte	48,1,103,43,254,215,171,118
    866 .byte	202,130,201,125,250,89,71,240
    867 .byte	173,212,162,175,156,164,114,192
    868 .byte	183,253,147,38,54,63,247,204
    869 .byte	52,165,229,241,113,216,49,21
    870 .byte	4,199,35,195,24,150,5,154
    871 .byte	7,18,128,226,235,39,178,117
    872 .byte	9,131,44,26,27,110,90,160
    873 .byte	82,59,214,179,41,227,47,132
    874 .byte	83,209,0,237,32,252,177,91
    875 .byte	106,203,190,57,74,76,88,207
    876 .byte	208,239,170,251,67,77,51,133
    877 .byte	69,249,2,127,80,60,159,168
    878 .byte	81,163,64,143,146,157,56,245
    879 .byte	188,182,218,33,16,255,243,210
    880 .byte	205,12,19,236,95,151,68,23
    881 .byte	196,167,126,61,100,93,25,115
    882 .byte	96,129,79,220,34,42,144,136
    883 .byte	70,238,184,20,222,94,11,219
    884 .byte	224,50,58,10,73,6,36,92
    885 .byte	194,211,172,98,145,149,228,121
    886 .byte	231,200,55,109,141,213,78,169
    887 .byte	108,86,244,234,101,122,174,8
    888 .byte	186,120,37,46,28,166,180,198
    889 .byte	232,221,116,31,75,189,139,138
    890 .byte	112,62,181,102,72,3,246,14
    891 .byte	97,53,87,185,134,193,29,158
    892 .byte	225,248,152,17,105,217,142,148
    893 .byte	155,30,135,233,206,85,40,223
    894 .byte	140,161,137,13,191,230,66,104
    895 .byte	65,153,45,15,176,84,187,22
    896 .byte	99,124,119,123,242,107,111,197
    897 .byte	48,1,103,43,254,215,171,118
    898 .byte	202,130,201,125,250,89,71,240
    899 .byte	173,212,162,175,156,164,114,192
    900 .byte	183,253,147,38,54,63,247,204
    901 .byte	52,165,229,241,113,216,49,21
    902 .byte	4,199,35,195,24,150,5,154
    903 .byte	7,18,128,226,235,39,178,117
    904 .byte	9,131,44,26,27,110,90,160
    905 .byte	82,59,214,179,41,227,47,132
    906 .byte	83,209,0,237,32,252,177,91
    907 .byte	106,203,190,57,74,76,88,207
    908 .byte	208,239,170,251,67,77,51,133
    909 .byte	69,249,2,127,80,60,159,168
    910 .byte	81,163,64,143,146,157,56,245
    911 .byte	188,182,218,33,16,255,243,210
    912 .byte	205,12,19,236,95,151,68,23
    913 .byte	196,167,126,61,100,93,25,115
    914 .byte	96,129,79,220,34,42,144,136
    915 .byte	70,238,184,20,222,94,11,219
    916 .byte	224,50,58,10,73,6,36,92
    917 .byte	194,211,172,98,145,149,228,121
    918 .byte	231,200,55,109,141,213,78,169
    919 .byte	108,86,244,234,101,122,174,8
    920 .byte	186,120,37,46,28,166,180,198
    921 .byte	232,221,116,31,75,189,139,138
    922 .byte	112,62,181,102,72,3,246,14
    923 .byte	97,53,87,185,134,193,29,158
    924 .byte	225,248,152,17,105,217,142,148
    925 .byte	155,30,135,233,206,85,40,223
    926 .byte	140,161,137,13,191,230,66,104
    927 .byte	65,153,45,15,176,84,187,22
    928 .byte	99,124,119,123,242,107,111,197
    929 .byte	48,1,103,43,254,215,171,118
    930 .byte	202,130,201,125,250,89,71,240
    931 .byte	173,212,162,175,156,164,114,192
    932 .byte	183,253,147,38,54,63,247,204
    933 .byte	52,165,229,241,113,216,49,21
    934 .byte	4,199,35,195,24,150,5,154
    935 .byte	7,18,128,226,235,39,178,117
    936 .byte	9,131,44,26,27,110,90,160
    937 .byte	82,59,214,179,41,227,47,132
    938 .byte	83,209,0,237,32,252,177,91
    939 .byte	106,203,190,57,74,76,88,207
    940 .byte	208,239,170,251,67,77,51,133
    941 .byte	69,249,2,127,80,60,159,168
    942 .byte	81,163,64,143,146,157,56,245
    943 .byte	188,182,218,33,16,255,243,210
    944 .byte	205,12,19,236,95,151,68,23
    945 .byte	196,167,126,61,100,93,25,115
    946 .byte	96,129,79,220,34,42,144,136
    947 .byte	70,238,184,20,222,94,11,219
    948 .byte	224,50,58,10,73,6,36,92
    949 .byte	194,211,172,98,145,149,228,121
    950 .byte	231,200,55,109,141,213,78,169
    951 .byte	108,86,244,234,101,122,174,8
    952 .byte	186,120,37,46,28,166,180,198
    953 .byte	232,221,116,31,75,189,139,138
    954 .byte	112,62,181,102,72,3,246,14
    955 .byte	97,53,87,185,134,193,29,158
    956 .byte	225,248,152,17,105,217,142,148
    957 .byte	155,30,135,233,206,85,40,223
    958 .byte	140,161,137,13,191,230,66,104
    959 .byte	65,153,45,15,176,84,187,22
    960 .long	1,2,4,8
    961 .long	16,32,64,128
    962 .long	27,54,0,0
    963 .long	0,0,0,0
    964 .globl	_asm_AES_encrypt
    965 .private_extern	_asm_AES_encrypt
    966 .align	4
    967 _asm_AES_encrypt:
    968 L_asm_AES_encrypt_begin:
    969 	pushl	%ebp
    970 	pushl	%ebx
    971 	pushl	%esi
    972 	pushl	%edi
    973 	movl	20(%esp),%esi
    974 	movl	28(%esp),%edi
    975 	movl	%esp,%eax
    976 	subl	$36,%esp
    977 	andl	$-64,%esp
    978 	leal	-127(%edi),%ebx
    979 	subl	%esp,%ebx
    980 	negl	%ebx
    981 	andl	$960,%ebx
    982 	subl	%ebx,%esp
    983 	addl	$4,%esp
    984 	movl	%eax,28(%esp)
    985 	call	L004pic_point
    986 L004pic_point:
    987 	popl	%ebp
    988 	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L004pic_point(%ebp),%eax
    989 	leal	LAES_Te-L004pic_point(%ebp),%ebp
    990 	leal	764(%esp),%ebx
    991 	subl	%ebp,%ebx
    992 	andl	$768,%ebx
    993 	leal	2176(%ebp,%ebx,1),%ebp
    994 	btl	$25,(%eax)
    995 	jnc	L005x86
    996 	movq	(%esi),%mm0
    997 	movq	8(%esi),%mm4
    998 	call	__sse_AES_encrypt_compact
    999 	movl	28(%esp),%esp
   1000 	movl	24(%esp),%esi
   1001 	movq	%mm0,(%esi)
   1002 	movq	%mm4,8(%esi)
   1003 	emms
   1004 	popl	%edi
   1005 	popl	%esi
   1006 	popl	%ebx
   1007 	popl	%ebp
   1008 	ret
   1009 .align	4,0x90
   1010 L005x86:
   1011 	movl	%ebp,24(%esp)
   1012 	movl	(%esi),%eax
   1013 	movl	4(%esi),%ebx
   1014 	movl	8(%esi),%ecx
   1015 	movl	12(%esi),%edx
   1016 	call	__x86_AES_encrypt_compact
   1017 	movl	28(%esp),%esp
   1018 	movl	24(%esp),%esi
   1019 	movl	%eax,(%esi)
   1020 	movl	%ebx,4(%esi)
   1021 	movl	%ecx,8(%esi)
   1022 	movl	%edx,12(%esi)
   1023 	popl	%edi
   1024 	popl	%esi
   1025 	popl	%ebx
   1026 	popl	%ebp
   1027 	ret
   1028 .private_extern	__x86_AES_decrypt_compact
   1029 .align	4
   1030 __x86_AES_decrypt_compact:
   1031 	movl	%edi,20(%esp)
   1032 	xorl	(%edi),%eax
   1033 	xorl	4(%edi),%ebx
   1034 	xorl	8(%edi),%ecx
   1035 	xorl	12(%edi),%edx
   1036 	movl	240(%edi),%esi
   1037 	leal	-2(%esi,%esi,1),%esi
   1038 	leal	(%edi,%esi,8),%esi
   1039 	movl	%esi,24(%esp)
   1040 	movl	-128(%ebp),%edi
   1041 	movl	-96(%ebp),%esi
   1042 	movl	-64(%ebp),%edi
   1043 	movl	-32(%ebp),%esi
   1044 	movl	(%ebp),%edi
   1045 	movl	32(%ebp),%esi
   1046 	movl	64(%ebp),%edi
   1047 	movl	96(%ebp),%esi
   1048 .align	4,0x90
   1049 L006loop:
   1050 	movl	%eax,%esi
   1051 	andl	$255,%esi
   1052 	movzbl	-128(%ebp,%esi,1),%esi
   1053 	movzbl	%dh,%edi
   1054 	movzbl	-128(%ebp,%edi,1),%edi
   1055 	shll	$8,%edi
   1056 	xorl	%edi,%esi
   1057 	movl	%ecx,%edi
   1058 	shrl	$16,%edi
   1059 	andl	$255,%edi
   1060 	movzbl	-128(%ebp,%edi,1),%edi
   1061 	shll	$16,%edi
   1062 	xorl	%edi,%esi
   1063 	movl	%ebx,%edi
   1064 	shrl	$24,%edi
   1065 	movzbl	-128(%ebp,%edi,1),%edi
   1066 	shll	$24,%edi
   1067 	xorl	%edi,%esi
   1068 	movl	%esi,4(%esp)
   1069 	movl	%ebx,%esi
   1070 	andl	$255,%esi
   1071 	movzbl	-128(%ebp,%esi,1),%esi
   1072 	movzbl	%ah,%edi
   1073 	movzbl	-128(%ebp,%edi,1),%edi
   1074 	shll	$8,%edi
   1075 	xorl	%edi,%esi
   1076 	movl	%edx,%edi
   1077 	shrl	$16,%edi
   1078 	andl	$255,%edi
   1079 	movzbl	-128(%ebp,%edi,1),%edi
   1080 	shll	$16,%edi
   1081 	xorl	%edi,%esi
   1082 	movl	%ecx,%edi
   1083 	shrl	$24,%edi
   1084 	movzbl	-128(%ebp,%edi,1),%edi
   1085 	shll	$24,%edi
   1086 	xorl	%edi,%esi
   1087 	movl	%esi,8(%esp)
   1088 	movl	%ecx,%esi
   1089 	andl	$255,%esi
   1090 	movzbl	-128(%ebp,%esi,1),%esi
   1091 	movzbl	%bh,%edi
   1092 	movzbl	-128(%ebp,%edi,1),%edi
   1093 	shll	$8,%edi
   1094 	xorl	%edi,%esi
   1095 	movl	%eax,%edi
   1096 	shrl	$16,%edi
   1097 	andl	$255,%edi
   1098 	movzbl	-128(%ebp,%edi,1),%edi
   1099 	shll	$16,%edi
   1100 	xorl	%edi,%esi
   1101 	movl	%edx,%edi
   1102 	shrl	$24,%edi
   1103 	movzbl	-128(%ebp,%edi,1),%edi
   1104 	shll	$24,%edi
   1105 	xorl	%edi,%esi
   1106 	andl	$255,%edx
   1107 	movzbl	-128(%ebp,%edx,1),%edx
   1108 	movzbl	%ch,%ecx
   1109 	movzbl	-128(%ebp,%ecx,1),%ecx
   1110 	shll	$8,%ecx
   1111 	xorl	%ecx,%edx
   1112 	movl	%esi,%ecx
   1113 	shrl	$16,%ebx
   1114 	andl	$255,%ebx
   1115 	movzbl	-128(%ebp,%ebx,1),%ebx
   1116 	shll	$16,%ebx
   1117 	xorl	%ebx,%edx
   1118 	shrl	$24,%eax
   1119 	movzbl	-128(%ebp,%eax,1),%eax
   1120 	shll	$24,%eax
   1121 	xorl	%eax,%edx
   1122 	movl	$2155905152,%edi
   1123 	andl	%ecx,%edi
   1124 	movl	%edi,%esi
   1125 	shrl	$7,%edi
   1126 	leal	(%ecx,%ecx,1),%eax
   1127 	subl	%edi,%esi
   1128 	andl	$4278124286,%eax
   1129 	andl	$454761243,%esi
   1130 	xorl	%esi,%eax
   1131 	movl	$2155905152,%edi
   1132 	andl	%eax,%edi
   1133 	movl	%edi,%esi
   1134 	shrl	$7,%edi
   1135 	leal	(%eax,%eax,1),%ebx
   1136 	subl	%edi,%esi
   1137 	andl	$4278124286,%ebx
   1138 	andl	$454761243,%esi
   1139 	xorl	%ecx,%eax
   1140 	xorl	%esi,%ebx
   1141 	movl	$2155905152,%edi
   1142 	andl	%ebx,%edi
   1143 	movl	%edi,%esi
   1144 	shrl	$7,%edi
   1145 	leal	(%ebx,%ebx,1),%ebp
   1146 	subl	%edi,%esi
   1147 	andl	$4278124286,%ebp
   1148 	andl	$454761243,%esi
   1149 	xorl	%ecx,%ebx
   1150 	roll	$8,%ecx
   1151 	xorl	%esi,%ebp
   1152 	xorl	%eax,%ecx
   1153 	xorl	%ebp,%eax
   1154 	xorl	%ebx,%ecx
   1155 	xorl	%ebp,%ebx
   1156 	roll	$24,%eax
   1157 	xorl	%ebp,%ecx
   1158 	roll	$16,%ebx
   1159 	xorl	%eax,%ecx
   1160 	roll	$8,%ebp
   1161 	xorl	%ebx,%ecx
   1162 	movl	4(%esp),%eax
   1163 	xorl	%ebp,%ecx
   1164 	movl	%ecx,12(%esp)
   1165 	movl	$2155905152,%edi
   1166 	andl	%edx,%edi
   1167 	movl	%edi,%esi
   1168 	shrl	$7,%edi
   1169 	leal	(%edx,%edx,1),%ebx
   1170 	subl	%edi,%esi
   1171 	andl	$4278124286,%ebx
   1172 	andl	$454761243,%esi
   1173 	xorl	%esi,%ebx
   1174 	movl	$2155905152,%edi
   1175 	andl	%ebx,%edi
   1176 	movl	%edi,%esi
   1177 	shrl	$7,%edi
   1178 	leal	(%ebx,%ebx,1),%ecx
   1179 	subl	%edi,%esi
   1180 	andl	$4278124286,%ecx
   1181 	andl	$454761243,%esi
   1182 	xorl	%edx,%ebx
   1183 	xorl	%esi,%ecx
   1184 	movl	$2155905152,%edi
   1185 	andl	%ecx,%edi
   1186 	movl	%edi,%esi
   1187 	shrl	$7,%edi
   1188 	leal	(%ecx,%ecx,1),%ebp
   1189 	subl	%edi,%esi
   1190 	andl	$4278124286,%ebp
   1191 	andl	$454761243,%esi
   1192 	xorl	%edx,%ecx
   1193 	roll	$8,%edx
   1194 	xorl	%esi,%ebp
   1195 	xorl	%ebx,%edx
   1196 	xorl	%ebp,%ebx
   1197 	xorl	%ecx,%edx
   1198 	xorl	%ebp,%ecx
   1199 	roll	$24,%ebx
   1200 	xorl	%ebp,%edx
   1201 	roll	$16,%ecx
   1202 	xorl	%ebx,%edx
   1203 	roll	$8,%ebp
   1204 	xorl	%ecx,%edx
   1205 	movl	8(%esp),%ebx
   1206 	xorl	%ebp,%edx
   1207 	movl	%edx,16(%esp)
   1208 	movl	$2155905152,%edi
   1209 	andl	%eax,%edi
   1210 	movl	%edi,%esi
   1211 	shrl	$7,%edi
   1212 	leal	(%eax,%eax,1),%ecx
   1213 	subl	%edi,%esi
   1214 	andl	$4278124286,%ecx
   1215 	andl	$454761243,%esi
   1216 	xorl	%esi,%ecx
   1217 	movl	$2155905152,%edi
   1218 	andl	%ecx,%edi
   1219 	movl	%edi,%esi
   1220 	shrl	$7,%edi
   1221 	leal	(%ecx,%ecx,1),%edx
   1222 	subl	%edi,%esi
   1223 	andl	$4278124286,%edx
   1224 	andl	$454761243,%esi
   1225 	xorl	%eax,%ecx
   1226 	xorl	%esi,%edx
   1227 	movl	$2155905152,%edi
   1228 	andl	%edx,%edi
   1229 	movl	%edi,%esi
   1230 	shrl	$7,%edi
   1231 	leal	(%edx,%edx,1),%ebp
   1232 	subl	%edi,%esi
   1233 	andl	$4278124286,%ebp
   1234 	andl	$454761243,%esi
   1235 	xorl	%eax,%edx
   1236 	roll	$8,%eax
   1237 	xorl	%esi,%ebp
   1238 	xorl	%ecx,%eax
   1239 	xorl	%ebp,%ecx
   1240 	xorl	%edx,%eax
   1241 	xorl	%ebp,%edx
   1242 	roll	$24,%ecx
   1243 	xorl	%ebp,%eax
   1244 	roll	$16,%edx
   1245 	xorl	%ecx,%eax
   1246 	roll	$8,%ebp
   1247 	xorl	%edx,%eax
   1248 	xorl	%ebp,%eax
   1249 	movl	$2155905152,%edi
   1250 	andl	%ebx,%edi
   1251 	movl	%edi,%esi
   1252 	shrl	$7,%edi
   1253 	leal	(%ebx,%ebx,1),%ecx
   1254 	subl	%edi,%esi
   1255 	andl	$4278124286,%ecx
   1256 	andl	$454761243,%esi
   1257 	xorl	%esi,%ecx
   1258 	movl	$2155905152,%edi
   1259 	andl	%ecx,%edi
   1260 	movl	%edi,%esi
   1261 	shrl	$7,%edi
   1262 	leal	(%ecx,%ecx,1),%edx
   1263 	subl	%edi,%esi
   1264 	andl	$4278124286,%edx
   1265 	andl	$454761243,%esi
   1266 	xorl	%ebx,%ecx
   1267 	xorl	%esi,%edx
   1268 	movl	$2155905152,%edi
   1269 	andl	%edx,%edi
   1270 	movl	%edi,%esi
   1271 	shrl	$7,%edi
   1272 	leal	(%edx,%edx,1),%ebp
   1273 	subl	%edi,%esi
   1274 	andl	$4278124286,%ebp
   1275 	andl	$454761243,%esi
   1276 	xorl	%ebx,%edx
   1277 	roll	$8,%ebx
   1278 	xorl	%esi,%ebp
   1279 	xorl	%ecx,%ebx
   1280 	xorl	%ebp,%ecx
   1281 	xorl	%edx,%ebx
   1282 	xorl	%ebp,%edx
   1283 	roll	$24,%ecx
   1284 	xorl	%ebp,%ebx
   1285 	roll	$16,%edx
   1286 	xorl	%ecx,%ebx
   1287 	roll	$8,%ebp
   1288 	xorl	%edx,%ebx
   1289 	movl	12(%esp),%ecx
   1290 	xorl	%ebp,%ebx
   1291 	movl	16(%esp),%edx
   1292 	movl	20(%esp),%edi
   1293 	movl	28(%esp),%ebp
   1294 	addl	$16,%edi
   1295 	xorl	(%edi),%eax
   1296 	xorl	4(%edi),%ebx
   1297 	xorl	8(%edi),%ecx
   1298 	xorl	12(%edi),%edx
   1299 	cmpl	24(%esp),%edi
   1300 	movl	%edi,20(%esp)
   1301 	jb	L006loop
   1302 	movl	%eax,%esi
   1303 	andl	$255,%esi
   1304 	movzbl	-128(%ebp,%esi,1),%esi
   1305 	movzbl	%dh,%edi
   1306 	movzbl	-128(%ebp,%edi,1),%edi
   1307 	shll	$8,%edi
   1308 	xorl	%edi,%esi
   1309 	movl	%ecx,%edi
   1310 	shrl	$16,%edi
   1311 	andl	$255,%edi
   1312 	movzbl	-128(%ebp,%edi,1),%edi
   1313 	shll	$16,%edi
   1314 	xorl	%edi,%esi
   1315 	movl	%ebx,%edi
   1316 	shrl	$24,%edi
   1317 	movzbl	-128(%ebp,%edi,1),%edi
   1318 	shll	$24,%edi
   1319 	xorl	%edi,%esi
   1320 	movl	%esi,4(%esp)
   1321 	movl	%ebx,%esi
   1322 	andl	$255,%esi
   1323 	movzbl	-128(%ebp,%esi,1),%esi
   1324 	movzbl	%ah,%edi
   1325 	movzbl	-128(%ebp,%edi,1),%edi
   1326 	shll	$8,%edi
   1327 	xorl	%edi,%esi
   1328 	movl	%edx,%edi
   1329 	shrl	$16,%edi
   1330 	andl	$255,%edi
   1331 	movzbl	-128(%ebp,%edi,1),%edi
   1332 	shll	$16,%edi
   1333 	xorl	%edi,%esi
   1334 	movl	%ecx,%edi
   1335 	shrl	$24,%edi
   1336 	movzbl	-128(%ebp,%edi,1),%edi
   1337 	shll	$24,%edi
   1338 	xorl	%edi,%esi
   1339 	movl	%esi,8(%esp)
   1340 	movl	%ecx,%esi
   1341 	andl	$255,%esi
   1342 	movzbl	-128(%ebp,%esi,1),%esi
   1343 	movzbl	%bh,%edi
   1344 	movzbl	-128(%ebp,%edi,1),%edi
   1345 	shll	$8,%edi
   1346 	xorl	%edi,%esi
   1347 	movl	%eax,%edi
   1348 	shrl	$16,%edi
   1349 	andl	$255,%edi
   1350 	movzbl	-128(%ebp,%edi,1),%edi
   1351 	shll	$16,%edi
   1352 	xorl	%edi,%esi
   1353 	movl	%edx,%edi
   1354 	shrl	$24,%edi
   1355 	movzbl	-128(%ebp,%edi,1),%edi
   1356 	shll	$24,%edi
   1357 	xorl	%edi,%esi
   1358 	movl	20(%esp),%edi
   1359 	andl	$255,%edx
   1360 	movzbl	-128(%ebp,%edx,1),%edx
   1361 	movzbl	%ch,%ecx
   1362 	movzbl	-128(%ebp,%ecx,1),%ecx
   1363 	shll	$8,%ecx
   1364 	xorl	%ecx,%edx
   1365 	movl	%esi,%ecx
   1366 	shrl	$16,%ebx
   1367 	andl	$255,%ebx
   1368 	movzbl	-128(%ebp,%ebx,1),%ebx
   1369 	shll	$16,%ebx
   1370 	xorl	%ebx,%edx
   1371 	movl	8(%esp),%ebx
   1372 	shrl	$24,%eax
   1373 	movzbl	-128(%ebp,%eax,1),%eax
   1374 	shll	$24,%eax
   1375 	xorl	%eax,%edx
   1376 	movl	4(%esp),%eax
   1377 	xorl	16(%edi),%eax
   1378 	xorl	20(%edi),%ebx
   1379 	xorl	24(%edi),%ecx
   1380 	xorl	28(%edi),%edx
   1381 	ret
   1382 .private_extern	__sse_AES_decrypt_compact
   1383 .align	4
   1384 __sse_AES_decrypt_compact:
   1385 	pxor	(%edi),%mm0
   1386 	pxor	8(%edi),%mm4
   1387 	movl	240(%edi),%esi
   1388 	leal	-2(%esi,%esi,1),%esi
   1389 	leal	(%edi,%esi,8),%esi
   1390 	movl	%esi,24(%esp)
   1391 	movl	$454761243,%eax
   1392 	movl	%eax,8(%esp)
   1393 	movl	%eax,12(%esp)
   1394 	movl	-128(%ebp),%eax
   1395 	movl	-96(%ebp),%ebx
   1396 	movl	-64(%ebp),%ecx
   1397 	movl	-32(%ebp),%edx
   1398 	movl	(%ebp),%eax
   1399 	movl	32(%ebp),%ebx
   1400 	movl	64(%ebp),%ecx
   1401 	movl	96(%ebp),%edx
   1402 .align	4,0x90
   1403 L007loop:
   1404 	pshufw	$12,%mm0,%mm1
   1405 	pshufw	$9,%mm4,%mm5
   1406 	movd	%mm1,%eax
   1407 	movd	%mm5,%ebx
   1408 	movl	%edi,20(%esp)
   1409 	movzbl	%al,%esi
   1410 	movzbl	%ah,%edx
   1411 	pshufw	$6,%mm0,%mm2
   1412 	movzbl	-128(%ebp,%esi,1),%ecx
   1413 	movzbl	%bl,%edi
   1414 	movzbl	-128(%ebp,%edx,1),%edx
   1415 	shrl	$16,%eax
   1416 	shll	$8,%edx
   1417 	movzbl	-128(%ebp,%edi,1),%esi
   1418 	movzbl	%bh,%edi
   1419 	shll	$16,%esi
   1420 	pshufw	$3,%mm4,%mm6
   1421 	orl	%esi,%ecx
   1422 	movzbl	-128(%ebp,%edi,1),%esi
   1423 	movzbl	%ah,%edi
   1424 	shll	$24,%esi
   1425 	shrl	$16,%ebx
   1426 	orl	%esi,%edx
   1427 	movzbl	-128(%ebp,%edi,1),%esi
   1428 	movzbl	%bh,%edi
   1429 	shll	$24,%esi
   1430 	orl	%esi,%ecx
   1431 	movzbl	-128(%ebp,%edi,1),%esi
   1432 	movzbl	%al,%edi
   1433 	shll	$8,%esi
   1434 	movd	%mm2,%eax
   1435 	orl	%esi,%ecx
   1436 	movzbl	-128(%ebp,%edi,1),%esi
   1437 	movzbl	%bl,%edi
   1438 	shll	$16,%esi
   1439 	movd	%mm6,%ebx
   1440 	movd	%ecx,%mm0
   1441 	movzbl	-128(%ebp,%edi,1),%ecx
   1442 	movzbl	%al,%edi
   1443 	orl	%esi,%ecx
   1444 	movzbl	-128(%ebp,%edi,1),%esi
   1445 	movzbl	%bl,%edi
   1446 	orl	%esi,%edx
   1447 	movzbl	-128(%ebp,%edi,1),%esi
   1448 	movzbl	%ah,%edi
   1449 	shll	$16,%esi
   1450 	shrl	$16,%eax
   1451 	orl	%esi,%edx
   1452 	movzbl	-128(%ebp,%edi,1),%esi
   1453 	movzbl	%bh,%edi
   1454 	shrl	$16,%ebx
   1455 	shll	$8,%esi
   1456 	movd	%edx,%mm1
   1457 	movzbl	-128(%ebp,%edi,1),%edx
   1458 	movzbl	%bh,%edi
   1459 	shll	$24,%edx
   1460 	andl	$255,%ebx
   1461 	orl	%esi,%edx
   1462 	punpckldq	%mm1,%mm0
   1463 	movzbl	-128(%ebp,%edi,1),%esi
   1464 	movzbl	%al,%edi
   1465 	shll	$8,%esi
   1466 	movzbl	%ah,%eax
   1467 	movzbl	-128(%ebp,%ebx,1),%ebx
   1468 	orl	%esi,%ecx
   1469 	movzbl	-128(%ebp,%edi,1),%esi
   1470 	orl	%ebx,%edx
   1471 	shll	$16,%esi
   1472 	movzbl	-128(%ebp,%eax,1),%eax
   1473 	orl	%esi,%edx
   1474 	shll	$24,%eax
   1475 	orl	%eax,%ecx
   1476 	movl	20(%esp),%edi
   1477 	movd	%edx,%mm4
   1478 	movd	%ecx,%mm5
   1479 	punpckldq	%mm5,%mm4
   1480 	addl	$16,%edi
   1481 	cmpl	24(%esp),%edi
   1482 	ja	L008out
   1483 	movq	%mm0,%mm3
   1484 	movq	%mm4,%mm7
   1485 	pshufw	$228,%mm0,%mm2
   1486 	pshufw	$228,%mm4,%mm6
   1487 	movq	%mm0,%mm1
   1488 	movq	%mm4,%mm5
   1489 	pshufw	$177,%mm0,%mm0
   1490 	pshufw	$177,%mm4,%mm4
   1491 	pslld	$8,%mm2
   1492 	pslld	$8,%mm6
   1493 	psrld	$8,%mm3
   1494 	psrld	$8,%mm7
   1495 	pxor	%mm2,%mm0
   1496 	pxor	%mm6,%mm4
   1497 	pxor	%mm3,%mm0
   1498 	pxor	%mm7,%mm4
   1499 	pslld	$16,%mm2
   1500 	pslld	$16,%mm6
   1501 	psrld	$16,%mm3
   1502 	psrld	$16,%mm7
   1503 	pxor	%mm2,%mm0
   1504 	pxor	%mm6,%mm4
   1505 	pxor	%mm3,%mm0
   1506 	pxor	%mm7,%mm4
   1507 	movq	8(%esp),%mm3
   1508 	pxor	%mm2,%mm2
   1509 	pxor	%mm6,%mm6
   1510 	pcmpgtb	%mm1,%mm2
   1511 	pcmpgtb	%mm5,%mm6
   1512 	pand	%mm3,%mm2
   1513 	pand	%mm3,%mm6
   1514 	paddb	%mm1,%mm1
   1515 	paddb	%mm5,%mm5
   1516 	pxor	%mm2,%mm1
   1517 	pxor	%mm6,%mm5
   1518 	movq	%mm1,%mm3
   1519 	movq	%mm5,%mm7
   1520 	movq	%mm1,%mm2
   1521 	movq	%mm5,%mm6
   1522 	pxor	%mm1,%mm0
   1523 	pxor	%mm5,%mm4
   1524 	pslld	$24,%mm3
   1525 	pslld	$24,%mm7
   1526 	psrld	$8,%mm2
   1527 	psrld	$8,%mm6
   1528 	pxor	%mm3,%mm0
   1529 	pxor	%mm7,%mm4
   1530 	pxor	%mm2,%mm0
   1531 	pxor	%mm6,%mm4
   1532 	movq	8(%esp),%mm2
   1533 	pxor	%mm3,%mm3
   1534 	pxor	%mm7,%mm7
   1535 	pcmpgtb	%mm1,%mm3
   1536 	pcmpgtb	%mm5,%mm7
   1537 	pand	%mm2,%mm3
   1538 	pand	%mm2,%mm7
   1539 	paddb	%mm1,%mm1
   1540 	paddb	%mm5,%mm5
   1541 	pxor	%mm3,%mm1
   1542 	pxor	%mm7,%mm5
   1543 	pshufw	$177,%mm1,%mm3
   1544 	pshufw	$177,%mm5,%mm7
   1545 	pxor	%mm1,%mm0
   1546 	pxor	%mm5,%mm4
   1547 	pxor	%mm3,%mm0
   1548 	pxor	%mm7,%mm4
   1549 	pxor	%mm3,%mm3
   1550 	pxor	%mm7,%mm7
   1551 	pcmpgtb	%mm1,%mm3
   1552 	pcmpgtb	%mm5,%mm7
   1553 	pand	%mm2,%mm3
   1554 	pand	%mm2,%mm7
   1555 	paddb	%mm1,%mm1
   1556 	paddb	%mm5,%mm5
   1557 	pxor	%mm3,%mm1
   1558 	pxor	%mm7,%mm5
   1559 	pxor	%mm1,%mm0
   1560 	pxor	%mm5,%mm4
   1561 	movq	%mm1,%mm3
   1562 	movq	%mm5,%mm7
   1563 	pshufw	$177,%mm1,%mm2
   1564 	pshufw	$177,%mm5,%mm6
   1565 	pxor	%mm2,%mm0
   1566 	pxor	%mm6,%mm4
   1567 	pslld	$8,%mm1
   1568 	pslld	$8,%mm5
   1569 	psrld	$8,%mm3
   1570 	psrld	$8,%mm7
   1571 	movq	(%edi),%mm2
   1572 	movq	8(%edi),%mm6
   1573 	pxor	%mm1,%mm0
   1574 	pxor	%mm5,%mm4
   1575 	pxor	%mm3,%mm0
   1576 	pxor	%mm7,%mm4
   1577 	movl	-128(%ebp),%eax
   1578 	pslld	$16,%mm1
   1579 	pslld	$16,%mm5
   1580 	movl	-64(%ebp),%ebx
   1581 	psrld	$16,%mm3
   1582 	psrld	$16,%mm7
   1583 	movl	(%ebp),%ecx
   1584 	pxor	%mm1,%mm0
   1585 	pxor	%mm5,%mm4
   1586 	movl	64(%ebp),%edx
   1587 	pxor	%mm3,%mm0
   1588 	pxor	%mm7,%mm4
   1589 	pxor	%mm2,%mm0
   1590 	pxor	%mm6,%mm4
   1591 	jmp	L007loop
   1592 .align	4,0x90
   1593 L008out:
   1594 	pxor	(%edi),%mm0
   1595 	pxor	8(%edi),%mm4
   1596 	ret
   1597 .private_extern	__x86_AES_decrypt
   1598 .align	4
   1599 __x86_AES_decrypt:
   1600 	movl	%edi,20(%esp)
   1601 	xorl	(%edi),%eax
   1602 	xorl	4(%edi),%ebx
   1603 	xorl	8(%edi),%ecx
   1604 	xorl	12(%edi),%edx
   1605 	movl	240(%edi),%esi
   1606 	leal	-2(%esi,%esi,1),%esi
   1607 	leal	(%edi,%esi,8),%esi
   1608 	movl	%esi,24(%esp)
   1609 .align	4,0x90
   1610 L009loop:
   1611 	movl	%eax,%esi
   1612 	andl	$255,%esi
   1613 	movl	(%ebp,%esi,8),%esi
   1614 	movzbl	%dh,%edi
   1615 	xorl	3(%ebp,%edi,8),%esi
   1616 	movl	%ecx,%edi
   1617 	shrl	$16,%edi
   1618 	andl	$255,%edi
   1619 	xorl	2(%ebp,%edi,8),%esi
   1620 	movl	%ebx,%edi
   1621 	shrl	$24,%edi
   1622 	xorl	1(%ebp,%edi,8),%esi
   1623 	movl	%esi,4(%esp)
   1624 	movl	%ebx,%esi
   1625 	andl	$255,%esi
   1626 	movl	(%ebp,%esi,8),%esi
   1627 	movzbl	%ah,%edi
   1628 	xorl	3(%ebp,%edi,8),%esi
   1629 	movl	%edx,%edi
   1630 	shrl	$16,%edi
   1631 	andl	$255,%edi
   1632 	xorl	2(%ebp,%edi,8),%esi
   1633 	movl	%ecx,%edi
   1634 	shrl	$24,%edi
   1635 	xorl	1(%ebp,%edi,8),%esi
   1636 	movl	%esi,8(%esp)
   1637 	movl	%ecx,%esi
   1638 	andl	$255,%esi
   1639 	movl	(%ebp,%esi,8),%esi
   1640 	movzbl	%bh,%edi
   1641 	xorl	3(%ebp,%edi,8),%esi
   1642 	movl	%eax,%edi
   1643 	shrl	$16,%edi
   1644 	andl	$255,%edi
   1645 	xorl	2(%ebp,%edi,8),%esi
   1646 	movl	%edx,%edi
   1647 	shrl	$24,%edi
   1648 	xorl	1(%ebp,%edi,8),%esi
   1649 	movl	20(%esp),%edi
   1650 	andl	$255,%edx
   1651 	movl	(%ebp,%edx,8),%edx
   1652 	movzbl	%ch,%ecx
   1653 	xorl	3(%ebp,%ecx,8),%edx
   1654 	movl	%esi,%ecx
   1655 	shrl	$16,%ebx
   1656 	andl	$255,%ebx
   1657 	xorl	2(%ebp,%ebx,8),%edx
   1658 	movl	8(%esp),%ebx
   1659 	shrl	$24,%eax
   1660 	xorl	1(%ebp,%eax,8),%edx
   1661 	movl	4(%esp),%eax
   1662 	addl	$16,%edi
   1663 	xorl	(%edi),%eax
   1664 	xorl	4(%edi),%ebx
   1665 	xorl	8(%edi),%ecx
   1666 	xorl	12(%edi),%edx
   1667 	cmpl	24(%esp),%edi
   1668 	movl	%edi,20(%esp)
   1669 	jb	L009loop
   1670 	leal	2176(%ebp),%ebp
   1671 	movl	-128(%ebp),%edi
   1672 	movl	-96(%ebp),%esi
   1673 	movl	-64(%ebp),%edi
   1674 	movl	-32(%ebp),%esi
   1675 	movl	(%ebp),%edi
   1676 	movl	32(%ebp),%esi
   1677 	movl	64(%ebp),%edi
   1678 	movl	96(%ebp),%esi
   1679 	leal	-128(%ebp),%ebp
   1680 	movl	%eax,%esi
   1681 	andl	$255,%esi
   1682 	movzbl	(%ebp,%esi,1),%esi
   1683 	movzbl	%dh,%edi
   1684 	movzbl	(%ebp,%edi,1),%edi
   1685 	shll	$8,%edi
   1686 	xorl	%edi,%esi
   1687 	movl	%ecx,%edi
   1688 	shrl	$16,%edi
   1689 	andl	$255,%edi
   1690 	movzbl	(%ebp,%edi,1),%edi
   1691 	shll	$16,%edi
   1692 	xorl	%edi,%esi
   1693 	movl	%ebx,%edi
   1694 	shrl	$24,%edi
   1695 	movzbl	(%ebp,%edi,1),%edi
   1696 	shll	$24,%edi
   1697 	xorl	%edi,%esi
   1698 	movl	%esi,4(%esp)
   1699 	movl	%ebx,%esi
   1700 	andl	$255,%esi
   1701 	movzbl	(%ebp,%esi,1),%esi
   1702 	movzbl	%ah,%edi
   1703 	movzbl	(%ebp,%edi,1),%edi
   1704 	shll	$8,%edi
   1705 	xorl	%edi,%esi
   1706 	movl	%edx,%edi
   1707 	shrl	$16,%edi
   1708 	andl	$255,%edi
   1709 	movzbl	(%ebp,%edi,1),%edi
   1710 	shll	$16,%edi
   1711 	xorl	%edi,%esi
   1712 	movl	%ecx,%edi
   1713 	shrl	$24,%edi
   1714 	movzbl	(%ebp,%edi,1),%edi
   1715 	shll	$24,%edi
   1716 	xorl	%edi,%esi
   1717 	movl	%esi,8(%esp)
   1718 	movl	%ecx,%esi
   1719 	andl	$255,%esi
   1720 	movzbl	(%ebp,%esi,1),%esi
   1721 	movzbl	%bh,%edi
   1722 	movzbl	(%ebp,%edi,1),%edi
   1723 	shll	$8,%edi
   1724 	xorl	%edi,%esi
   1725 	movl	%eax,%edi
   1726 	shrl	$16,%edi
   1727 	andl	$255,%edi
   1728 	movzbl	(%ebp,%edi,1),%edi
   1729 	shll	$16,%edi
   1730 	xorl	%edi,%esi
   1731 	movl	%edx,%edi
   1732 	shrl	$24,%edi
   1733 	movzbl	(%ebp,%edi,1),%edi
   1734 	shll	$24,%edi
   1735 	xorl	%edi,%esi
   1736 	movl	20(%esp),%edi
   1737 	andl	$255,%edx
   1738 	movzbl	(%ebp,%edx,1),%edx
   1739 	movzbl	%ch,%ecx
   1740 	movzbl	(%ebp,%ecx,1),%ecx
   1741 	shll	$8,%ecx
   1742 	xorl	%ecx,%edx
   1743 	movl	%esi,%ecx
   1744 	shrl	$16,%ebx
   1745 	andl	$255,%ebx
   1746 	movzbl	(%ebp,%ebx,1),%ebx
   1747 	shll	$16,%ebx
   1748 	xorl	%ebx,%edx
   1749 	movl	8(%esp),%ebx
   1750 	shrl	$24,%eax
   1751 	movzbl	(%ebp,%eax,1),%eax
   1752 	shll	$24,%eax
   1753 	xorl	%eax,%edx
   1754 	movl	4(%esp),%eax
   1755 	leal	-2048(%ebp),%ebp
   1756 	addl	$16,%edi
   1757 	xorl	(%edi),%eax
   1758 	xorl	4(%edi),%ebx
   1759 	xorl	8(%edi),%ecx
   1760 	xorl	12(%edi),%edx
   1761 	ret
   1762 .align	6,0x90
   1763 LAES_Td:
   1764 .long	1353184337,1353184337
   1765 .long	1399144830,1399144830
   1766 .long	3282310938,3282310938
   1767 .long	2522752826,2522752826
   1768 .long	3412831035,3412831035
   1769 .long	4047871263,4047871263
   1770 .long	2874735276,2874735276
   1771 .long	2466505547,2466505547
   1772 .long	1442459680,1442459680
   1773 .long	4134368941,4134368941
   1774 .long	2440481928,2440481928
   1775 .long	625738485,625738485
   1776 .long	4242007375,4242007375
   1777 .long	3620416197,3620416197
   1778 .long	2151953702,2151953702
   1779 .long	2409849525,2409849525
   1780 .long	1230680542,1230680542
   1781 .long	1729870373,1729870373
   1782 .long	2551114309,2551114309
   1783 .long	3787521629,3787521629
   1784 .long	41234371,41234371
   1785 .long	317738113,317738113
   1786 .long	2744600205,2744600205
   1787 .long	3338261355,3338261355
   1788 .long	3881799427,3881799427
   1789 .long	2510066197,2510066197
   1790 .long	3950669247,3950669247
   1791 .long	3663286933,3663286933
   1792 .long	763608788,763608788
   1793 .long	3542185048,3542185048
   1794 .long	694804553,694804553
   1795 .long	1154009486,1154009486
   1796 .long	1787413109,1787413109
   1797 .long	2021232372,2021232372
   1798 .long	1799248025,1799248025
   1799 .long	3715217703,3715217703
   1800 .long	3058688446,3058688446
   1801 .long	397248752,397248752
   1802 .long	1722556617,1722556617
   1803 .long	3023752829,3023752829
   1804 .long	407560035,407560035
   1805 .long	2184256229,2184256229
   1806 .long	1613975959,1613975959
   1807 .long	1165972322,1165972322
   1808 .long	3765920945,3765920945
   1809 .long	2226023355,2226023355
   1810 .long	480281086,480281086
   1811 .long	2485848313,2485848313
   1812 .long	1483229296,1483229296
   1813 .long	436028815,436028815
   1814 .long	2272059028,2272059028
   1815 .long	3086515026,3086515026
   1816 .long	601060267,601060267
   1817 .long	3791801202,3791801202
   1818 .long	1468997603,1468997603
   1819 .long	715871590,715871590
   1820 .long	120122290,120122290
   1821 .long	63092015,63092015
   1822 .long	2591802758,2591802758
   1823 .long	2768779219,2768779219
   1824 .long	4068943920,4068943920
   1825 .long	2997206819,2997206819
   1826 .long	3127509762,3127509762
   1827 .long	1552029421,1552029421
   1828 .long	723308426,723308426
   1829 .long	2461301159,2461301159
   1830 .long	4042393587,4042393587
   1831 .long	2715969870,2715969870
   1832 .long	3455375973,3455375973
   1833 .long	3586000134,3586000134
   1834 .long	526529745,526529745
   1835 .long	2331944644,2331944644
   1836 .long	2639474228,2639474228
   1837 .long	2689987490,2689987490
   1838 .long	853641733,853641733
   1839 .long	1978398372,1978398372
   1840 .long	971801355,971801355
   1841 .long	2867814464,2867814464
   1842 .long	111112542,111112542
   1843 .long	1360031421,1360031421
   1844 .long	4186579262,4186579262
   1845 .long	1023860118,1023860118
   1846 .long	2919579357,2919579357
   1847 .long	1186850381,1186850381
   1848 .long	3045938321,3045938321
   1849 .long	90031217,90031217
   1850 .long	1876166148,1876166148
   1851 .long	4279586912,4279586912
   1852 .long	620468249,620468249
   1853 .long	2548678102,2548678102
   1854 .long	3426959497,3426959497
   1855 .long	2006899047,2006899047
   1856 .long	3175278768,3175278768
   1857 .long	2290845959,2290845959
   1858 .long	945494503,945494503
   1859 .long	3689859193,3689859193
   1860 .long	1191869601,1191869601
   1861 .long	3910091388,3910091388
   1862 .long	3374220536,3374220536
   1863 .long	0,0
   1864 .long	2206629897,2206629897
   1865 .long	1223502642,1223502642
   1866 .long	2893025566,2893025566
   1867 .long	1316117100,1316117100
   1868 .long	4227796733,4227796733
   1869 .long	1446544655,1446544655
   1870 .long	517320253,517320253
   1871 .long	658058550,658058550
   1872 .long	1691946762,1691946762
   1873 .long	564550760,564550760
   1874 .long	3511966619,3511966619
   1875 .long	976107044,976107044
   1876 .long	2976320012,2976320012
   1877 .long	266819475,266819475
   1878 .long	3533106868,3533106868
   1879 .long	2660342555,2660342555
   1880 .long	1338359936,1338359936
   1881 .long	2720062561,2720062561
   1882 .long	1766553434,1766553434
   1883 .long	370807324,370807324
   1884 .long	179999714,179999714
   1885 .long	3844776128,3844776128
   1886 .long	1138762300,1138762300
   1887 .long	488053522,488053522
   1888 .long	185403662,185403662
   1889 .long	2915535858,2915535858
   1890 .long	3114841645,3114841645
   1891 .long	3366526484,3366526484
   1892 .long	2233069911,2233069911
   1893 .long	1275557295,1275557295
   1894 .long	3151862254,3151862254
   1895 .long	4250959779,4250959779
   1896 .long	2670068215,2670068215
   1897 .long	3170202204,3170202204
   1898 .long	3309004356,3309004356
   1899 .long	880737115,880737115
   1900 .long	1982415755,1982415755
   1901 .long	3703972811,3703972811
   1902 .long	1761406390,1761406390
   1903 .long	1676797112,1676797112
   1904 .long	3403428311,3403428311
   1905 .long	277177154,277177154
   1906 .long	1076008723,1076008723
   1907 .long	538035844,538035844
   1908 .long	2099530373,2099530373
   1909 .long	4164795346,4164795346
   1910 .long	288553390,288553390
   1911 .long	1839278535,1839278535
   1912 .long	1261411869,1261411869
   1913 .long	4080055004,4080055004
   1914 .long	3964831245,3964831245
   1915 .long	3504587127,3504587127
   1916 .long	1813426987,1813426987
   1917 .long	2579067049,2579067049
   1918 .long	4199060497,4199060497
   1919 .long	577038663,577038663
   1920 .long	3297574056,3297574056
   1921 .long	440397984,440397984
   1922 .long	3626794326,3626794326
   1923 .long	4019204898,4019204898
   1924 .long	3343796615,3343796615
   1925 .long	3251714265,3251714265
   1926 .long	4272081548,4272081548
   1927 .long	906744984,906744984
   1928 .long	3481400742,3481400742
   1929 .long	685669029,685669029
   1930 .long	646887386,646887386
   1931 .long	2764025151,2764025151
   1932 .long	3835509292,3835509292
   1933 .long	227702864,227702864
   1934 .long	2613862250,2613862250
   1935 .long	1648787028,1648787028
   1936 .long	3256061430,3256061430
   1937 .long	3904428176,3904428176
   1938 .long	1593260334,1593260334
   1939 .long	4121936770,4121936770
   1940 .long	3196083615,3196083615
   1941 .long	2090061929,2090061929
   1942 .long	2838353263,2838353263
   1943 .long	3004310991,3004310991
   1944 .long	999926984,999926984
   1945 .long	2809993232,2809993232
   1946 .long	1852021992,1852021992
   1947 .long	2075868123,2075868123
   1948 .long	158869197,158869197
   1949 .long	4095236462,4095236462
   1950 .long	28809964,28809964
   1951 .long	2828685187,2828685187
   1952 .long	1701746150,1701746150
   1953 .long	2129067946,2129067946
   1954 .long	147831841,147831841
   1955 .long	3873969647,3873969647
   1956 .long	3650873274,3650873274
   1957 .long	3459673930,3459673930
   1958 .long	3557400554,3557400554
   1959 .long	3598495785,3598495785
   1960 .long	2947720241,2947720241
   1961 .long	824393514,824393514
   1962 .long	815048134,815048134
   1963 .long	3227951669,3227951669
   1964 .long	935087732,935087732
   1965 .long	2798289660,2798289660
   1966 .long	2966458592,2966458592
   1967 .long	366520115,366520115
   1968 .long	1251476721,1251476721
   1969 .long	4158319681,4158319681
   1970 .long	240176511,240176511
   1971 .long	804688151,804688151
   1972 .long	2379631990,2379631990
   1973 .long	1303441219,1303441219
   1974 .long	1414376140,1414376140
   1975 .long	3741619940,3741619940
   1976 .long	3820343710,3820343710
   1977 .long	461924940,461924940
   1978 .long	3089050817,3089050817
   1979 .long	2136040774,2136040774
   1980 .long	82468509,82468509
   1981 .long	1563790337,1563790337
   1982 .long	1937016826,1937016826
   1983 .long	776014843,776014843
   1984 .long	1511876531,1511876531
   1985 .long	1389550482,1389550482
   1986 .long	861278441,861278441
   1987 .long	323475053,323475053
   1988 .long	2355222426,2355222426
   1989 .long	2047648055,2047648055
   1990 .long	2383738969,2383738969
   1991 .long	2302415851,2302415851
   1992 .long	3995576782,3995576782
   1993 .long	902390199,902390199
   1994 .long	3991215329,3991215329
   1995 .long	1018251130,1018251130
   1996 .long	1507840668,1507840668
   1997 .long	1064563285,1064563285
   1998 .long	2043548696,2043548696
   1999 .long	3208103795,3208103795
   2000 .long	3939366739,3939366739
   2001 .long	1537932639,1537932639
   2002 .long	342834655,342834655
   2003 .long	2262516856,2262516856
   2004 .long	2180231114,2180231114
   2005 .long	1053059257,1053059257
   2006 .long	741614648,741614648
   2007 .long	1598071746,1598071746
   2008 .long	1925389590,1925389590
   2009 .long	203809468,203809468
   2010 .long	2336832552,2336832552
   2011 .long	1100287487,1100287487
   2012 .long	1895934009,1895934009
   2013 .long	3736275976,3736275976
   2014 .long	2632234200,2632234200
   2015 .long	2428589668,2428589668
   2016 .long	1636092795,1636092795
   2017 .long	1890988757,1890988757
   2018 .long	1952214088,1952214088
   2019 .long	1113045200,1113045200
   2020 .byte	82,9,106,213,48,54,165,56
   2021 .byte	191,64,163,158,129,243,215,251
   2022 .byte	124,227,57,130,155,47,255,135
   2023 .byte	52,142,67,68,196,222,233,203
   2024 .byte	84,123,148,50,166,194,35,61
   2025 .byte	238,76,149,11,66,250,195,78
   2026 .byte	8,46,161,102,40,217,36,178
   2027 .byte	118,91,162,73,109,139,209,37
   2028 .byte	114,248,246,100,134,104,152,22
   2029 .byte	212,164,92,204,93,101,182,146
   2030 .byte	108,112,72,80,253,237,185,218
   2031 .byte	94,21,70,87,167,141,157,132
   2032 .byte	144,216,171,0,140,188,211,10
   2033 .byte	247,228,88,5,184,179,69,6
   2034 .byte	208,44,30,143,202,63,15,2
   2035 .byte	193,175,189,3,1,19,138,107
   2036 .byte	58,145,17,65,79,103,220,234
   2037 .byte	151,242,207,206,240,180,230,115
   2038 .byte	150,172,116,34,231,173,53,133
   2039 .byte	226,249,55,232,28,117,223,110
   2040 .byte	71,241,26,113,29,41,197,137
   2041 .byte	111,183,98,14,170,24,190,27
   2042 .byte	252,86,62,75,198,210,121,32
   2043 .byte	154,219,192,254,120,205,90,244
   2044 .byte	31,221,168,51,136,7,199,49
   2045 .byte	177,18,16,89,39,128,236,95
   2046 .byte	96,81,127,169,25,181,74,13
   2047 .byte	45,229,122,159,147,201,156,239
   2048 .byte	160,224,59,77,174,42,245,176
   2049 .byte	200,235,187,60,131,83,153,97
   2050 .byte	23,43,4,126,186,119,214,38
   2051 .byte	225,105,20,99,85,33,12,125
   2052 .byte	82,9,106,213,48,54,165,56
   2053 .byte	191,64,163,158,129,243,215,251
   2054 .byte	124,227,57,130,155,47,255,135
   2055 .byte	52,142,67,68,196,222,233,203
   2056 .byte	84,123,148,50,166,194,35,61
   2057 .byte	238,76,149,11,66,250,195,78
   2058 .byte	8,46,161,102,40,217,36,178
   2059 .byte	118,91,162,73,109,139,209,37
   2060 .byte	114,248,246,100,134,104,152,22
   2061 .byte	212,164,92,204,93,101,182,146
   2062 .byte	108,112,72,80,253,237,185,218
   2063 .byte	94,21,70,87,167,141,157,132
   2064 .byte	144,216,171,0,140,188,211,10
   2065 .byte	247,228,88,5,184,179,69,6
   2066 .byte	208,44,30,143,202,63,15,2
   2067 .byte	193,175,189,3,1,19,138,107
   2068 .byte	58,145,17,65,79,103,220,234
   2069 .byte	151,242,207,206,240,180,230,115
   2070 .byte	150,172,116,34,231,173,53,133
   2071 .byte	226,249,55,232,28,117,223,110
   2072 .byte	71,241,26,113,29,41,197,137
   2073 .byte	111,183,98,14,170,24,190,27
   2074 .byte	252,86,62,75,198,210,121,32
   2075 .byte	154,219,192,254,120,205,90,244
   2076 .byte	31,221,168,51,136,7,199,49
   2077 .byte	177,18,16,89,39,128,236,95
   2078 .byte	96,81,127,169,25,181,74,13
   2079 .byte	45,229,122,159,147,201,156,239
   2080 .byte	160,224,59,77,174,42,245,176
   2081 .byte	200,235,187,60,131,83,153,97
   2082 .byte	23,43,4,126,186,119,214,38
   2083 .byte	225,105,20,99,85,33,12,125
   2084 .byte	82,9,106,213,48,54,165,56
   2085 .byte	191,64,163,158,129,243,215,251
   2086 .byte	124,227,57,130,155,47,255,135
   2087 .byte	52,142,67,68,196,222,233,203
   2088 .byte	84,123,148,50,166,194,35,61
   2089 .byte	238,76,149,11,66,250,195,78
   2090 .byte	8,46,161,102,40,217,36,178
   2091 .byte	118,91,162,73,109,139,209,37
   2092 .byte	114,248,246,100,134,104,152,22
   2093 .byte	212,164,92,204,93,101,182,146
   2094 .byte	108,112,72,80,253,237,185,218
   2095 .byte	94,21,70,87,167,141,157,132
   2096 .byte	144,216,171,0,140,188,211,10
   2097 .byte	247,228,88,5,184,179,69,6
   2098 .byte	208,44,30,143,202,63,15,2
   2099 .byte	193,175,189,3,1,19,138,107
   2100 .byte	58,145,17,65,79,103,220,234
   2101 .byte	151,242,207,206,240,180,230,115
   2102 .byte	150,172,116,34,231,173,53,133
   2103 .byte	226,249,55,232,28,117,223,110
   2104 .byte	71,241,26,113,29,41,197,137
   2105 .byte	111,183,98,14,170,24,190,27
   2106 .byte	252,86,62,75,198,210,121,32
   2107 .byte	154,219,192,254,120,205,90,244
   2108 .byte	31,221,168,51,136,7,199,49
   2109 .byte	177,18,16,89,39,128,236,95
   2110 .byte	96,81,127,169,25,181,74,13
   2111 .byte	45,229,122,159,147,201,156,239
   2112 .byte	160,224,59,77,174,42,245,176
   2113 .byte	200,235,187,60,131,83,153,97
   2114 .byte	23,43,4,126,186,119,214,38
   2115 .byte	225,105,20,99,85,33,12,125
   2116 .byte	82,9,106,213,48,54,165,56
   2117 .byte	191,64,163,158,129,243,215,251
   2118 .byte	124,227,57,130,155,47,255,135
   2119 .byte	52,142,67,68,196,222,233,203
   2120 .byte	84,123,148,50,166,194,35,61
   2121 .byte	238,76,149,11,66,250,195,78
   2122 .byte	8,46,161,102,40,217,36,178
   2123 .byte	118,91,162,73,109,139,209,37
   2124 .byte	114,248,246,100,134,104,152,22
   2125 .byte	212,164,92,204,93,101,182,146
   2126 .byte	108,112,72,80,253,237,185,218
   2127 .byte	94,21,70,87,167,141,157,132
   2128 .byte	144,216,171,0,140,188,211,10
   2129 .byte	247,228,88,5,184,179,69,6
   2130 .byte	208,44,30,143,202,63,15,2
   2131 .byte	193,175,189,3,1,19,138,107
   2132 .byte	58,145,17,65,79,103,220,234
   2133 .byte	151,242,207,206,240,180,230,115
   2134 .byte	150,172,116,34,231,173,53,133
   2135 .byte	226,249,55,232,28,117,223,110
   2136 .byte	71,241,26,113,29,41,197,137
   2137 .byte	111,183,98,14,170,24,190,27
   2138 .byte	252,86,62,75,198,210,121,32
   2139 .byte	154,219,192,254,120,205,90,244
   2140 .byte	31,221,168,51,136,7,199,49
   2141 .byte	177,18,16,89,39,128,236,95
   2142 .byte	96,81,127,169,25,181,74,13
   2143 .byte	45,229,122,159,147,201,156,239
   2144 .byte	160,224,59,77,174,42,245,176
   2145 .byte	200,235,187,60,131,83,153,97
   2146 .byte	23,43,4,126,186,119,214,38
   2147 .byte	225,105,20,99,85,33,12,125
   2148 .globl	_asm_AES_decrypt
   2149 .private_extern	_asm_AES_decrypt
   2150 .align	4
   2151 _asm_AES_decrypt:
   2152 L_asm_AES_decrypt_begin:
   2153 	pushl	%ebp
   2154 	pushl	%ebx
   2155 	pushl	%esi
   2156 	pushl	%edi
   2157 	movl	20(%esp),%esi
   2158 	movl	28(%esp),%edi
   2159 	movl	%esp,%eax
   2160 	subl	$36,%esp
   2161 	andl	$-64,%esp
   2162 	leal	-127(%edi),%ebx
   2163 	subl	%esp,%ebx
   2164 	negl	%ebx
   2165 	andl	$960,%ebx
   2166 	subl	%ebx,%esp
   2167 	addl	$4,%esp
   2168 	movl	%eax,28(%esp)
   2169 	call	L010pic_point
   2170 L010pic_point:
   2171 	popl	%ebp
   2172 	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L010pic_point(%ebp),%eax
   2173 	leal	LAES_Td-L010pic_point(%ebp),%ebp
   2174 	leal	764(%esp),%ebx
   2175 	subl	%ebp,%ebx
   2176 	andl	$768,%ebx
   2177 	leal	2176(%ebp,%ebx,1),%ebp
   2178 	btl	$25,(%eax)
   2179 	jnc	L011x86
   2180 	movq	(%esi),%mm0
   2181 	movq	8(%esi),%mm4
   2182 	call	__sse_AES_decrypt_compact
   2183 	movl	28(%esp),%esp
   2184 	movl	24(%esp),%esi
   2185 	movq	%mm0,(%esi)
   2186 	movq	%mm4,8(%esi)
   2187 	emms
   2188 	popl	%edi
   2189 	popl	%esi
   2190 	popl	%ebx
   2191 	popl	%ebp
   2192 	ret
   2193 .align	4,0x90
   2194 L011x86:
   2195 	movl	%ebp,24(%esp)
   2196 	movl	(%esi),%eax
   2197 	movl	4(%esi),%ebx
   2198 	movl	8(%esi),%ecx
   2199 	movl	12(%esi),%edx
   2200 	call	__x86_AES_decrypt_compact
   2201 	movl	28(%esp),%esp
   2202 	movl	24(%esp),%esi
   2203 	movl	%eax,(%esi)
   2204 	movl	%ebx,4(%esi)
   2205 	movl	%ecx,8(%esi)
   2206 	movl	%edx,12(%esi)
   2207 	popl	%edi
   2208 	popl	%esi
   2209 	popl	%ebx
   2210 	popl	%ebp
   2211 	ret
   2212 .globl	_asm_AES_cbc_encrypt
   2213 .private_extern	_asm_AES_cbc_encrypt
   2214 .align	4
   2215 _asm_AES_cbc_encrypt:
   2216 L_asm_AES_cbc_encrypt_begin:
   2217 	pushl	%ebp
   2218 	pushl	%ebx
   2219 	pushl	%esi
   2220 	pushl	%edi
   2221 	movl	28(%esp),%ecx
   2222 	cmpl	$0,%ecx
   2223 	je	L012drop_out
   2224 	call	L013pic_point
   2225 L013pic_point:
   2226 	popl	%ebp
   2227 	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L013pic_point(%ebp),%eax
   2228 	cmpl	$0,40(%esp)
   2229 	leal	LAES_Te-L013pic_point(%ebp),%ebp
   2230 	jne	L014picked_te
   2231 	leal	LAES_Td-LAES_Te(%ebp),%ebp
   2232 L014picked_te:
   2233 	pushfl
   2234 	cld
   2235 	cmpl	$512,%ecx
   2236 	jb	L015slow_way
   2237 	testl	$15,%ecx
   2238 	jnz	L015slow_way
   2239 	btl	$28,(%eax)
   2240 	jc	L015slow_way
   2241 	leal	-324(%esp),%esi
   2242 	andl	$-64,%esi
   2243 	movl	%ebp,%eax
   2244 	leal	2304(%ebp),%ebx
   2245 	movl	%esi,%edx
   2246 	andl	$4095,%eax
   2247 	andl	$4095,%ebx
   2248 	andl	$4095,%edx
   2249 	cmpl	%ebx,%edx
   2250 	jb	L016tbl_break_out
   2251 	subl	%ebx,%edx
   2252 	subl	%edx,%esi
   2253 	jmp	L017tbl_ok
   2254 .align	2,0x90
   2255 L016tbl_break_out:
   2256 	subl	%eax,%edx
   2257 	andl	$4095,%edx
   2258 	addl	$384,%edx
   2259 	subl	%edx,%esi
   2260 .align	2,0x90
   2261 L017tbl_ok:
   2262 	leal	24(%esp),%edx
   2263 	xchgl	%esi,%esp
   2264 	addl	$4,%esp
   2265 	movl	%ebp,24(%esp)
   2266 	movl	%esi,28(%esp)
   2267 	movl	(%edx),%eax
   2268 	movl	4(%edx),%ebx
   2269 	movl	12(%edx),%edi
   2270 	movl	16(%edx),%esi
   2271 	movl	20(%edx),%edx
   2272 	movl	%eax,32(%esp)
   2273 	movl	%ebx,36(%esp)
   2274 	movl	%ecx,40(%esp)
   2275 	movl	%edi,44(%esp)
   2276 	movl	%esi,48(%esp)
   2277 	movl	$0,316(%esp)
   2278 	movl	%edi,%ebx
   2279 	movl	$61,%ecx
   2280 	subl	%ebp,%ebx
   2281 	movl	%edi,%esi
   2282 	andl	$4095,%ebx
   2283 	leal	76(%esp),%edi
   2284 	cmpl	$2304,%ebx
   2285 	jb	L018do_copy
   2286 	cmpl	$3852,%ebx
   2287 	jb	L019skip_copy
   2288 .align	2,0x90
   2289 L018do_copy:
   2290 	movl	%edi,44(%esp)
   2291 .long	2784229001
   2292 L019skip_copy:
   2293 	movl	$16,%edi
   2294 .align	2,0x90
   2295 L020prefetch_tbl:
   2296 	movl	(%ebp),%eax
   2297 	movl	32(%ebp),%ebx
   2298 	movl	64(%ebp),%ecx
   2299 	movl	96(%ebp),%esi
   2300 	leal	128(%ebp),%ebp
   2301 	subl	$1,%edi
   2302 	jnz	L020prefetch_tbl
   2303 	subl	$2048,%ebp
   2304 	movl	32(%esp),%esi
   2305 	movl	48(%esp),%edi
   2306 	cmpl	$0,%edx
   2307 	je	L021fast_decrypt
   2308 	movl	(%edi),%eax
   2309 	movl	4(%edi),%ebx
   2310 .align	4,0x90
   2311 L022fast_enc_loop:
   2312 	movl	8(%edi),%ecx
   2313 	movl	12(%edi),%edx
   2314 	xorl	(%esi),%eax
   2315 	xorl	4(%esi),%ebx
   2316 	xorl	8(%esi),%ecx
   2317 	xorl	12(%esi),%edx
   2318 	movl	44(%esp),%edi
   2319 	call	__x86_AES_encrypt
   2320 	movl	32(%esp),%esi
   2321 	movl	36(%esp),%edi
   2322 	movl	%eax,(%edi)
   2323 	movl	%ebx,4(%edi)
   2324 	movl	%ecx,8(%edi)
   2325 	movl	%edx,12(%edi)
   2326 	leal	16(%esi),%esi
   2327 	movl	40(%esp),%ecx
   2328 	movl	%esi,32(%esp)
   2329 	leal	16(%edi),%edx
   2330 	movl	%edx,36(%esp)
   2331 	subl	$16,%ecx
   2332 	movl	%ecx,40(%esp)
   2333 	jnz	L022fast_enc_loop
   2334 	movl	48(%esp),%esi
   2335 	movl	8(%edi),%ecx
   2336 	movl	12(%edi),%edx
   2337 	movl	%eax,(%esi)
   2338 	movl	%ebx,4(%esi)
   2339 	movl	%ecx,8(%esi)
   2340 	movl	%edx,12(%esi)
   2341 	cmpl	$0,316(%esp)
   2342 	movl	44(%esp),%edi
   2343 	je	L023skip_ezero
   2344 	movl	$60,%ecx
   2345 	xorl	%eax,%eax
   2346 .align	2,0x90
   2347 .long	2884892297
   2348 L023skip_ezero:
   2349 	movl	28(%esp),%esp
   2350 	popfl
   2351 L012drop_out:
   2352 	popl	%edi
   2353 	popl	%esi
   2354 	popl	%ebx
   2355 	popl	%ebp
   2356 	ret
   2357 	pushfl
   2358 .align	4,0x90
   2359 L021fast_decrypt:
   2360 	cmpl	36(%esp),%esi
   2361 	je	L024fast_dec_in_place
   2362 	movl	%edi,52(%esp)
   2363 .align	2,0x90
   2364 .align	4,0x90
   2365 L025fast_dec_loop:
   2366 	movl	(%esi),%eax
   2367 	movl	4(%esi),%ebx
   2368 	movl	8(%esi),%ecx
   2369 	movl	12(%esi),%edx
   2370 	movl	44(%esp),%edi
   2371 	call	__x86_AES_decrypt
   2372 	movl	52(%esp),%edi
   2373 	movl	40(%esp),%esi
   2374 	xorl	(%edi),%eax
   2375 	xorl	4(%edi),%ebx
   2376 	xorl	8(%edi),%ecx
   2377 	xorl	12(%edi),%edx
   2378 	movl	36(%esp),%edi
   2379 	movl	32(%esp),%esi
   2380 	movl	%eax,(%edi)
   2381 	movl	%ebx,4(%edi)
   2382 	movl	%ecx,8(%edi)
   2383 	movl	%edx,12(%edi)
   2384 	movl	40(%esp),%ecx
   2385 	movl	%esi,52(%esp)
   2386 	leal	16(%esi),%esi
   2387 	movl	%esi,32(%esp)
   2388 	leal	16(%edi),%edi
   2389 	movl	%edi,36(%esp)
   2390 	subl	$16,%ecx
   2391 	movl	%ecx,40(%esp)
   2392 	jnz	L025fast_dec_loop
   2393 	movl	52(%esp),%edi
   2394 	movl	48(%esp),%esi
   2395 	movl	(%edi),%eax
   2396 	movl	4(%edi),%ebx
   2397 	movl	8(%edi),%ecx
   2398 	movl	12(%edi),%edx
   2399 	movl	%eax,(%esi)
   2400 	movl	%ebx,4(%esi)
   2401 	movl	%ecx,8(%esi)
   2402 	movl	%edx,12(%esi)
   2403 	jmp	L026fast_dec_out
   2404 .align	4,0x90
   2405 L024fast_dec_in_place:
   2406 L027fast_dec_in_place_loop:
   2407 	movl	(%esi),%eax
   2408 	movl	4(%esi),%ebx
   2409 	movl	8(%esi),%ecx
   2410 	movl	12(%esi),%edx
   2411 	leal	60(%esp),%edi
   2412 	movl	%eax,(%edi)
   2413 	movl	%ebx,4(%edi)
   2414 	movl	%ecx,8(%edi)
   2415 	movl	%edx,12(%edi)
   2416 	movl	44(%esp),%edi
   2417 	call	__x86_AES_decrypt
   2418 	movl	48(%esp),%edi
   2419 	movl	36(%esp),%esi
   2420 	xorl	(%edi),%eax
   2421 	xorl	4(%edi),%ebx
   2422 	xorl	8(%edi),%ecx
   2423 	xorl	12(%edi),%edx
   2424 	movl	%eax,(%esi)
   2425 	movl	%ebx,4(%esi)
   2426 	movl	%ecx,8(%esi)
   2427 	movl	%edx,12(%esi)
   2428 	leal	16(%esi),%esi
   2429 	movl	%esi,36(%esp)
   2430 	leal	60(%esp),%esi
   2431 	movl	(%esi),%eax
   2432 	movl	4(%esi),%ebx
   2433 	movl	8(%esi),%ecx
   2434 	movl	12(%esi),%edx
   2435 	movl	%eax,(%edi)
   2436 	movl	%ebx,4(%edi)
   2437 	movl	%ecx,8(%edi)
   2438 	movl	%edx,12(%edi)
   2439 	movl	32(%esp),%esi
   2440 	movl	40(%esp),%ecx
   2441 	leal	16(%esi),%esi
   2442 	movl	%esi,32(%esp)
   2443 	subl	$16,%ecx
   2444 	movl	%ecx,40(%esp)
   2445 	jnz	L027fast_dec_in_place_loop
   2446 .align	2,0x90
   2447 L026fast_dec_out:
   2448 	cmpl	$0,316(%esp)
   2449 	movl	44(%esp),%edi
   2450 	je	L028skip_dzero
   2451 	movl	$60,%ecx
   2452 	xorl	%eax,%eax
   2453 .align	2,0x90
   2454 .long	2884892297
   2455 L028skip_dzero:
   2456 	movl	28(%esp),%esp
   2457 	popfl
   2458 	popl	%edi
   2459 	popl	%esi
   2460 	popl	%ebx
   2461 	popl	%ebp
   2462 	ret
   2463 	pushfl
   2464 .align	4,0x90
   2465 L015slow_way:
   2466 	movl	(%eax),%eax
   2467 	movl	36(%esp),%edi
   2468 	leal	-80(%esp),%esi
   2469 	andl	$-64,%esi
   2470 	leal	-143(%edi),%ebx
   2471 	subl	%esi,%ebx
   2472 	negl	%ebx
   2473 	andl	$960,%ebx
   2474 	subl	%ebx,%esi
   2475 	leal	768(%esi),%ebx
   2476 	subl	%ebp,%ebx
   2477 	andl	$768,%ebx
   2478 	leal	2176(%ebp,%ebx,1),%ebp
   2479 	leal	24(%esp),%edx
   2480 	xchgl	%esi,%esp
   2481 	addl	$4,%esp
   2482 	movl	%ebp,24(%esp)
   2483 	movl	%esi,28(%esp)
   2484 	movl	%eax,52(%esp)
   2485 	movl	(%edx),%eax
   2486 	movl	4(%edx),%ebx
   2487 	movl	16(%edx),%esi
   2488 	movl	20(%edx),%edx
   2489 	movl	%eax,32(%esp)
   2490 	movl	%ebx,36(%esp)
   2491 	movl	%ecx,40(%esp)
   2492 	movl	%edi,44(%esp)
   2493 	movl	%esi,48(%esp)
   2494 	movl	%esi,%edi
   2495 	movl	%eax,%esi
   2496 	cmpl	$0,%edx
   2497 	je	L029slow_decrypt
   2498 	cmpl	$16,%ecx
   2499 	movl	%ebx,%edx
   2500 	jb	L030slow_enc_tail
   2501 	btl	$25,52(%esp)
   2502 	jnc	L031slow_enc_x86
   2503 	movq	(%edi),%mm0
   2504 	movq	8(%edi),%mm4
   2505 .align	4,0x90
   2506 L032slow_enc_loop_sse:
   2507 	pxor	(%esi),%mm0
   2508 	pxor	8(%esi),%mm4
   2509 	movl	44(%esp),%edi
   2510 	call	__sse_AES_encrypt_compact
   2511 	movl	32(%esp),%esi
   2512 	movl	36(%esp),%edi
   2513 	movl	40(%esp),%ecx
   2514 	movq	%mm0,(%edi)
   2515 	movq	%mm4,8(%edi)
   2516 	leal	16(%esi),%esi
   2517 	movl	%esi,32(%esp)
   2518 	leal	16(%edi),%edx
   2519 	movl	%edx,36(%esp)
   2520 	subl	$16,%ecx
   2521 	cmpl	$16,%ecx
   2522 	movl	%ecx,40(%esp)
   2523 	jae	L032slow_enc_loop_sse
   2524 	testl	$15,%ecx
   2525 	jnz	L030slow_enc_tail
   2526 	movl	48(%esp),%esi
   2527 	movq	%mm0,(%esi)
   2528 	movq	%mm4,8(%esi)
   2529 	emms
   2530 	movl	28(%esp),%esp
   2531 	popfl
   2532 	popl	%edi
   2533 	popl	%esi
   2534 	popl	%ebx
   2535 	popl	%ebp
   2536 	ret
   2537 	pushfl
   2538 .align	4,0x90
   2539 L031slow_enc_x86:
   2540 	movl	(%edi),%eax
   2541 	movl	4(%edi),%ebx
   2542 .align	2,0x90
   2543 L033slow_enc_loop_x86:
   2544 	movl	8(%edi),%ecx
   2545 	movl	12(%edi),%edx
   2546 	xorl	(%esi),%eax
   2547 	xorl	4(%esi),%ebx
   2548 	xorl	8(%esi),%ecx
   2549 	xorl	12(%esi),%edx
   2550 	movl	44(%esp),%edi
   2551 	call	__x86_AES_encrypt_compact
   2552 	movl	32(%esp),%esi
   2553 	movl	36(%esp),%edi
   2554 	movl	%eax,(%edi)
   2555 	movl	%ebx,4(%edi)
   2556 	movl	%ecx,8(%edi)
   2557 	movl	%edx,12(%edi)
   2558 	movl	40(%esp),%ecx
   2559 	leal	16(%esi),%esi
   2560 	movl	%esi,32(%esp)
   2561 	leal	16(%edi),%edx
   2562 	movl	%edx,36(%esp)
   2563 	subl	$16,%ecx
   2564 	cmpl	$16,%ecx
   2565 	movl	%ecx,40(%esp)
   2566 	jae	L033slow_enc_loop_x86
   2567 	testl	$15,%ecx
   2568 	jnz	L030slow_enc_tail
   2569 	movl	48(%esp),%esi
   2570 	movl	8(%edi),%ecx
   2571 	movl	12(%edi),%edx
   2572 	movl	%eax,(%esi)
   2573 	movl	%ebx,4(%esi)
   2574 	movl	%ecx,8(%esi)
   2575 	movl	%edx,12(%esi)
   2576 	movl	28(%esp),%esp
   2577 	popfl
   2578 	popl	%edi
   2579 	popl	%esi
   2580 	popl	%ebx
   2581 	popl	%ebp
   2582 	ret
   2583 	pushfl
   2584 .align	4,0x90
   2585 L030slow_enc_tail:
   2586 	emms
   2587 	movl	%edx,%edi
   2588 	movl	$16,%ebx
   2589 	subl	%ecx,%ebx
   2590 	cmpl	%esi,%edi
   2591 	je	L034enc_in_place
   2592 .align	2,0x90
   2593 .long	2767451785
   2594 	jmp	L035enc_skip_in_place
   2595 L034enc_in_place:
   2596 	leal	(%edi,%ecx,1),%edi
   2597 L035enc_skip_in_place:
   2598 	movl	%ebx,%ecx
   2599 	xorl	%eax,%eax
   2600 .align	2,0x90
   2601 .long	2868115081
   2602 	movl	48(%esp),%edi
   2603 	movl	%edx,%esi
   2604 	movl	(%edi),%eax
   2605 	movl	4(%edi),%ebx
   2606 	movl	$16,40(%esp)
   2607 	jmp	L033slow_enc_loop_x86
   2608 .align	4,0x90
   2609 L029slow_decrypt:
   2610 	btl	$25,52(%esp)
   2611 	jnc	L036slow_dec_loop_x86
   2612 .align	2,0x90
   2613 L037slow_dec_loop_sse:
   2614 	movq	(%esi),%mm0
   2615 	movq	8(%esi),%mm4
   2616 	movl	44(%esp),%edi
   2617 	call	__sse_AES_decrypt_compact
   2618 	movl	32(%esp),%esi
   2619 	leal	60(%esp),%eax
   2620 	movl	36(%esp),%ebx
   2621 	movl	40(%esp),%ecx
   2622 	movl	48(%esp),%edi
   2623 	movq	(%esi),%mm1
   2624 	movq	8(%esi),%mm5
   2625 	pxor	(%edi),%mm0
   2626 	pxor	8(%edi),%mm4
   2627 	movq	%mm1,(%edi)
   2628 	movq	%mm5,8(%edi)
   2629 	subl	$16,%ecx
   2630 	jc	L038slow_dec_partial_sse
   2631 	movq	%mm0,(%ebx)
   2632 	movq	%mm4,8(%ebx)
   2633 	leal	16(%ebx),%ebx
   2634 	movl	%ebx,36(%esp)
   2635 	leal	16(%esi),%esi
   2636 	movl	%esi,32(%esp)
   2637 	movl	%ecx,40(%esp)
   2638 	jnz	L037slow_dec_loop_sse
   2639 	emms
   2640 	movl	28(%esp),%esp
   2641 	popfl
   2642 	popl	%edi
   2643 	popl	%esi
   2644 	popl	%ebx
   2645 	popl	%ebp
   2646 	ret
   2647 	pushfl
   2648 .align	4,0x90
   2649 L038slow_dec_partial_sse:
   2650 	movq	%mm0,(%eax)
   2651 	movq	%mm4,8(%eax)
   2652 	emms
   2653 	addl	$16,%ecx
   2654 	movl	%ebx,%edi
   2655 	movl	%eax,%esi
   2656 .align	2,0x90
   2657 .long	2767451785
   2658 	movl	28(%esp),%esp
   2659 	popfl
   2660 	popl	%edi
   2661 	popl	%esi
   2662 	popl	%ebx
   2663 	popl	%ebp
   2664 	ret
   2665 	pushfl
   2666 .align	4,0x90
   2667 L036slow_dec_loop_x86:
   2668 	movl	(%esi),%eax
   2669 	movl	4(%esi),%ebx
   2670 	movl	8(%esi),%ecx
   2671 	movl	12(%esi),%edx
   2672 	leal	60(%esp),%edi
   2673 	movl	%eax,(%edi)
   2674 	movl	%ebx,4(%edi)
   2675 	movl	%ecx,8(%edi)
   2676 	movl	%edx,12(%edi)
   2677 	movl	44(%esp),%edi
   2678 	call	__x86_AES_decrypt_compact
   2679 	movl	48(%esp),%edi
   2680 	movl	40(%esp),%esi
   2681 	xorl	(%edi),%eax
   2682 	xorl	4(%edi),%ebx
   2683 	xorl	8(%edi),%ecx
   2684 	xorl	12(%edi),%edx
   2685 	subl	$16,%esi
   2686 	jc	L039slow_dec_partial_x86
   2687 	movl	%esi,40(%esp)
   2688 	movl	36(%esp),%esi
   2689 	movl	%eax,(%esi)
   2690 	movl	%ebx,4(%esi)
   2691 	movl	%ecx,8(%esi)
   2692 	movl	%edx,12(%esi)
   2693 	leal	16(%esi),%esi
   2694 	movl	%esi,36(%esp)
   2695 	leal	60(%esp),%esi
   2696 	movl	(%esi),%eax
   2697 	movl	4(%esi),%ebx
   2698 	movl	8(%esi),%ecx
   2699 	movl	12(%esi),%edx
   2700 	movl	%eax,(%edi)
   2701 	movl	%ebx,4(%edi)
   2702 	movl	%ecx,8(%edi)
   2703 	movl	%edx,12(%edi)
   2704 	movl	32(%esp),%esi
   2705 	leal	16(%esi),%esi
   2706 	movl	%esi,32(%esp)
   2707 	jnz	L036slow_dec_loop_x86
   2708 	movl	28(%esp),%esp
   2709 	popfl
   2710 	popl	%edi
   2711 	popl	%esi
   2712 	popl	%ebx
   2713 	popl	%ebp
   2714 	ret
   2715 	pushfl
   2716 .align	4,0x90
   2717 L039slow_dec_partial_x86:
   2718 	leal	60(%esp),%esi
   2719 	movl	%eax,(%esi)
   2720 	movl	%ebx,4(%esi)
   2721 	movl	%ecx,8(%esi)
   2722 	movl	%edx,12(%esi)
   2723 	movl	32(%esp),%esi
   2724 	movl	(%esi),%eax
   2725 	movl	4(%esi),%ebx
   2726 	movl	8(%esi),%ecx
   2727 	movl	12(%esi),%edx
   2728 	movl	%eax,(%edi)
   2729 	movl	%ebx,4(%edi)
   2730 	movl	%ecx,8(%edi)
   2731 	movl	%edx,12(%edi)
   2732 	movl	40(%esp),%ecx
   2733 	movl	36(%esp),%edi
   2734 	leal	60(%esp),%esi
   2735 .align	2,0x90
   2736 .long	2767451785
   2737 	movl	28(%esp),%esp
   2738 	popfl
   2739 	popl	%edi
   2740 	popl	%esi
   2741 	popl	%ebx
   2742 	popl	%ebp
   2743 	ret
   2744 .private_extern	__x86_AES_set_encrypt_key
   2745 .align	4
   2746 __x86_AES_set_encrypt_key:
   2747 	pushl	%ebp
   2748 	pushl	%ebx
   2749 	pushl	%esi
   2750 	pushl	%edi
   2751 	movl	24(%esp),%esi
   2752 	movl	32(%esp),%edi
   2753 	testl	$-1,%esi
   2754 	jz	L040badpointer
   2755 	testl	$-1,%edi
   2756 	jz	L040badpointer
   2757 	call	L041pic_point
   2758 L041pic_point:
   2759 	popl	%ebp
   2760 	leal	LAES_Te-L041pic_point(%ebp),%ebp
   2761 	leal	2176(%ebp),%ebp
   2762 	movl	-128(%ebp),%eax
   2763 	movl	-96(%ebp),%ebx
   2764 	movl	-64(%ebp),%ecx
   2765 	movl	-32(%ebp),%edx
   2766 	movl	(%ebp),%eax
   2767 	movl	32(%ebp),%ebx
   2768 	movl	64(%ebp),%ecx
   2769 	movl	96(%ebp),%edx
   2770 	movl	28(%esp),%ecx
   2771 	cmpl	$128,%ecx
   2772 	je	L04210rounds
   2773 	cmpl	$192,%ecx
   2774 	je	L04312rounds
   2775 	cmpl	$256,%ecx
   2776 	je	L04414rounds
   2777 	movl	$-2,%eax
   2778 	jmp	L045exit
   2779 L04210rounds:
   2780 	movl	(%esi),%eax
   2781 	movl	4(%esi),%ebx
   2782 	movl	8(%esi),%ecx
   2783 	movl	12(%esi),%edx
   2784 	movl	%eax,(%edi)
   2785 	movl	%ebx,4(%edi)
   2786 	movl	%ecx,8(%edi)
   2787 	movl	%edx,12(%edi)
   2788 	xorl	%ecx,%ecx
   2789 	jmp	L04610shortcut
   2790 .align	2,0x90
   2791 L04710loop:
   2792 	movl	(%edi),%eax
   2793 	movl	12(%edi),%edx
   2794 L04610shortcut:
   2795 	movzbl	%dl,%esi
   2796 	movzbl	-128(%ebp,%esi,1),%ebx
   2797 	movzbl	%dh,%esi
   2798 	shll	$24,%ebx
   2799 	xorl	%ebx,%eax
   2800 	movzbl	-128(%ebp,%esi,1),%ebx
   2801 	shrl	$16,%edx
   2802 	movzbl	%dl,%esi
   2803 	xorl	%ebx,%eax
   2804 	movzbl	-128(%ebp,%esi,1),%ebx
   2805 	movzbl	%dh,%esi
   2806 	shll	$8,%ebx
   2807 	xorl	%ebx,%eax
   2808 	movzbl	-128(%ebp,%esi,1),%ebx
   2809 	shll	$16,%ebx
   2810 	xorl	%ebx,%eax
   2811 	xorl	896(%ebp,%ecx,4),%eax
   2812 	movl	%eax,16(%edi)
   2813 	xorl	4(%edi),%eax
   2814 	movl	%eax,20(%edi)
   2815 	xorl	8(%edi),%eax
   2816 	movl	%eax,24(%edi)
   2817 	xorl	12(%edi),%eax
   2818 	movl	%eax,28(%edi)
   2819 	incl	%ecx
   2820 	addl	$16,%edi
   2821 	cmpl	$10,%ecx
   2822 	jl	L04710loop
   2823 	movl	$10,80(%edi)
   2824 	xorl	%eax,%eax
   2825 	jmp	L045exit
   2826 L04312rounds:
   2827 	movl	(%esi),%eax
   2828 	movl	4(%esi),%ebx
   2829 	movl	8(%esi),%ecx
   2830 	movl	12(%esi),%edx
   2831 	movl	%eax,(%edi)
   2832 	movl	%ebx,4(%edi)
   2833 	movl	%ecx,8(%edi)
   2834 	movl	%edx,12(%edi)
   2835 	movl	16(%esi),%ecx
   2836 	movl	20(%esi),%edx
   2837 	movl	%ecx,16(%edi)
   2838 	movl	%edx,20(%edi)
   2839 	xorl	%ecx,%ecx
   2840 	jmp	L04812shortcut
   2841 .align	2,0x90
   2842 L04912loop:
   2843 	movl	(%edi),%eax
   2844 	movl	20(%edi),%edx
   2845 L04812shortcut:
   2846 	movzbl	%dl,%esi
   2847 	movzbl	-128(%ebp,%esi,1),%ebx
   2848 	movzbl	%dh,%esi
   2849 	shll	$24,%ebx
   2850 	xorl	%ebx,%eax
   2851 	movzbl	-128(%ebp,%esi,1),%ebx
   2852 	shrl	$16,%edx
   2853 	movzbl	%dl,%esi
   2854 	xorl	%ebx,%eax
   2855 	movzbl	-128(%ebp,%esi,1),%ebx
   2856 	movzbl	%dh,%esi
   2857 	shll	$8,%ebx
   2858 	xorl	%ebx,%eax
   2859 	movzbl	-128(%ebp,%esi,1),%ebx
   2860 	shll	$16,%ebx
   2861 	xorl	%ebx,%eax
   2862 	xorl	896(%ebp,%ecx,4),%eax
   2863 	movl	%eax,24(%edi)
   2864 	xorl	4(%edi),%eax
   2865 	movl	%eax,28(%edi)
   2866 	xorl	8(%edi),%eax
   2867 	movl	%eax,32(%edi)
   2868 	xorl	12(%edi),%eax
   2869 	movl	%eax,36(%edi)
   2870 	cmpl	$7,%ecx
   2871 	je	L05012break
   2872 	incl	%ecx
   2873 	xorl	16(%edi),%eax
   2874 	movl	%eax,40(%edi)
   2875 	xorl	20(%edi),%eax
   2876 	movl	%eax,44(%edi)
   2877 	addl	$24,%edi
   2878 	jmp	L04912loop
   2879 L05012break:
   2880 	movl	$12,72(%edi)
   2881 	xorl	%eax,%eax
   2882 	jmp	L045exit
   2883 L04414rounds:
   2884 	movl	(%esi),%eax
   2885 	movl	4(%esi),%ebx
   2886 	movl	8(%esi),%ecx
   2887 	movl	12(%esi),%edx
   2888 	movl	%eax,(%edi)
   2889 	movl	%ebx,4(%edi)
   2890 	movl	%ecx,8(%edi)
   2891 	movl	%edx,12(%edi)
   2892 	movl	16(%esi),%eax
   2893 	movl	20(%esi),%ebx
   2894 	movl	24(%esi),%ecx
   2895 	movl	28(%esi),%edx
   2896 	movl	%eax,16(%edi)
   2897 	movl	%ebx,20(%edi)
   2898 	movl	%ecx,24(%edi)
   2899 	movl	%edx,28(%edi)
   2900 	xorl	%ecx,%ecx
   2901 	jmp	L05114shortcut
   2902 .align	2,0x90
   2903 L05214loop:
   2904 	movl	28(%edi),%edx
   2905 L05114shortcut:
   2906 	movl	(%edi),%eax
   2907 	movzbl	%dl,%esi
   2908 	movzbl	-128(%ebp,%esi,1),%ebx
   2909 	movzbl	%dh,%esi
   2910 	shll	$24,%ebx
   2911 	xorl	%ebx,%eax
   2912 	movzbl	-128(%ebp,%esi,1),%ebx
   2913 	shrl	$16,%edx
   2914 	movzbl	%dl,%esi
   2915 	xorl	%ebx,%eax
   2916 	movzbl	-128(%ebp,%esi,1),%ebx
   2917 	movzbl	%dh,%esi
   2918 	shll	$8,%ebx
   2919 	xorl	%ebx,%eax
   2920 	movzbl	-128(%ebp,%esi,1),%ebx
   2921 	shll	$16,%ebx
   2922 	xorl	%ebx,%eax
   2923 	xorl	896(%ebp,%ecx,4),%eax
   2924 	movl	%eax,32(%edi)
   2925 	xorl	4(%edi),%eax
   2926 	movl	%eax,36(%edi)
   2927 	xorl	8(%edi),%eax
   2928 	movl	%eax,40(%edi)
   2929 	xorl	12(%edi),%eax
   2930 	movl	%eax,44(%edi)
   2931 	cmpl	$6,%ecx
   2932 	je	L05314break
   2933 	incl	%ecx
   2934 	movl	%eax,%edx
   2935 	movl	16(%edi),%eax
   2936 	movzbl	%dl,%esi
   2937 	movzbl	-128(%ebp,%esi,1),%ebx
   2938 	movzbl	%dh,%esi
   2939 	xorl	%ebx,%eax
   2940 	movzbl	-128(%ebp,%esi,1),%ebx
   2941 	shrl	$16,%edx
   2942 	shll	$8,%ebx
   2943 	movzbl	%dl,%esi
   2944 	xorl	%ebx,%eax
   2945 	movzbl	-128(%ebp,%esi,1),%ebx
   2946 	movzbl	%dh,%esi
   2947 	shll	$16,%ebx
   2948 	xorl	%ebx,%eax
   2949 	movzbl	-128(%ebp,%esi,1),%ebx
   2950 	shll	$24,%ebx
   2951 	xorl	%ebx,%eax
   2952 	movl	%eax,48(%edi)
   2953 	xorl	20(%edi),%eax
   2954 	movl	%eax,52(%edi)
   2955 	xorl	24(%edi),%eax
   2956 	movl	%eax,56(%edi)
   2957 	xorl	28(%edi),%eax
   2958 	movl	%eax,60(%edi)
   2959 	addl	$32,%edi
   2960 	jmp	L05214loop
   2961 L05314break:
   2962 	movl	$14,48(%edi)
   2963 	xorl	%eax,%eax
   2964 	jmp	L045exit
   2965 L040badpointer:
   2966 	movl	$-1,%eax
   2967 L045exit:
   2968 	popl	%edi
   2969 	popl	%esi
   2970 	popl	%ebx
   2971 	popl	%ebp
   2972 	ret
   2973 .globl	_asm_AES_set_encrypt_key
   2974 .private_extern	_asm_AES_set_encrypt_key
   2975 .align	4
   2976 _asm_AES_set_encrypt_key:
   2977 L_asm_AES_set_encrypt_key_begin:
   2978 	call	__x86_AES_set_encrypt_key
   2979 	ret
   2980 .globl	_asm_AES_set_decrypt_key
   2981 .private_extern	_asm_AES_set_decrypt_key
   2982 .align	4
   2983 _asm_AES_set_decrypt_key:
   2984 L_asm_AES_set_decrypt_key_begin:
   2985 	call	__x86_AES_set_encrypt_key
   2986 	cmpl	$0,%eax
   2987 	je	L054proceed
   2988 	ret
   2989 L054proceed:
   2990 	pushl	%ebp
   2991 	pushl	%ebx
   2992 	pushl	%esi
   2993 	pushl	%edi
   2994 	movl	28(%esp),%esi
   2995 	movl	240(%esi),%ecx
   2996 	leal	(,%ecx,4),%ecx
   2997 	leal	(%esi,%ecx,4),%edi
   2998 .align	2,0x90
   2999 L055invert:
   3000 	movl	(%esi),%eax
   3001 	movl	4(%esi),%ebx
   3002 	movl	(%edi),%ecx
   3003 	movl	4(%edi),%edx
   3004 	movl	%eax,(%edi)
   3005 	movl	%ebx,4(%edi)
   3006 	movl	%ecx,(%esi)
   3007 	movl	%edx,4(%esi)
   3008 	movl	8(%esi),%eax
   3009 	movl	12(%esi),%ebx
   3010 	movl	8(%edi),%ecx
   3011 	movl	12(%edi),%edx
   3012 	movl	%eax,8(%edi)
   3013 	movl	%ebx,12(%edi)
   3014 	movl	%ecx,8(%esi)
   3015 	movl	%edx,12(%esi)
   3016 	addl	$16,%esi
   3017 	subl	$16,%edi
   3018 	cmpl	%edi,%esi
   3019 	jne	L055invert
   3020 	movl	28(%esp),%edi
   3021 	movl	240(%edi),%esi
   3022 	leal	-2(%esi,%esi,1),%esi
   3023 	leal	(%edi,%esi,8),%esi
   3024 	movl	%esi,28(%esp)
   3025 	movl	16(%edi),%eax
   3026 .align	2,0x90
   3027 L056permute:
   3028 	addl	$16,%edi
   3029 	movl	$2155905152,%ebp
   3030 	andl	%eax,%ebp
   3031 	leal	(%eax,%eax,1),%ebx
   3032 	movl	%ebp,%esi
   3033 	shrl	$7,%ebp
   3034 	subl	%ebp,%esi
   3035 	andl	$4278124286,%ebx
   3036 	andl	$454761243,%esi
   3037 	xorl	%esi,%ebx
   3038 	movl	$2155905152,%ebp
   3039 	andl	%ebx,%ebp
   3040 	leal	(%ebx,%ebx,1),%ecx
   3041 	movl	%ebp,%esi
   3042 	shrl	$7,%ebp
   3043 	subl	%ebp,%esi
   3044 	andl	$4278124286,%ecx
   3045 	andl	$454761243,%esi
   3046 	xorl	%eax,%ebx
   3047 	xorl	%esi,%ecx
   3048 	movl	$2155905152,%ebp
   3049 	andl	%ecx,%ebp
   3050 	leal	(%ecx,%ecx,1),%edx
   3051 	movl	%ebp,%esi
   3052 	shrl	$7,%ebp
   3053 	xorl	%eax,%ecx
   3054 	subl	%ebp,%esi
   3055 	andl	$4278124286,%edx
   3056 	andl	$454761243,%esi
   3057 	roll	$8,%eax
   3058 	xorl	%esi,%edx
   3059 	movl	4(%edi),%ebp
   3060 	xorl	%ebx,%eax
   3061 	xorl	%edx,%ebx
   3062 	xorl	%ecx,%eax
   3063 	roll	$24,%ebx
   3064 	xorl	%edx,%ecx
   3065 	xorl	%edx,%eax
   3066 	roll	$16,%ecx
   3067 	xorl	%ebx,%eax
   3068 	roll	$8,%edx
   3069 	xorl	%ecx,%eax
   3070 	movl	%ebp,%ebx
   3071 	xorl	%edx,%eax
   3072 	movl	%eax,(%edi)
   3073 	movl	$2155905152,%ebp
   3074 	andl	%ebx,%ebp
   3075 	leal	(%ebx,%ebx,1),%ecx
   3076 	movl	%ebp,%esi
   3077 	shrl	$7,%ebp
   3078 	subl	%ebp,%esi
   3079 	andl	$4278124286,%ecx
   3080 	andl	$454761243,%esi
   3081 	xorl	%esi,%ecx
   3082 	movl	$2155905152,%ebp
   3083 	andl	%ecx,%ebp
   3084 	leal	(%ecx,%ecx,1),%edx
   3085 	movl	%ebp,%esi
   3086 	shrl	$7,%ebp
   3087 	subl	%ebp,%esi
   3088 	andl	$4278124286,%edx
   3089 	andl	$454761243,%esi
   3090 	xorl	%ebx,%ecx
   3091 	xorl	%esi,%edx
   3092 	movl	$2155905152,%ebp
   3093 	andl	%edx,%ebp
   3094 	leal	(%edx,%edx,1),%eax
   3095 	movl	%ebp,%esi
   3096 	shrl	$7,%ebp
   3097 	xorl	%ebx,%edx
   3098 	subl	%ebp,%esi
   3099 	andl	$4278124286,%eax
   3100 	andl	$454761243,%esi
   3101 	roll	$8,%ebx
   3102 	xorl	%esi,%eax
   3103 	movl	8(%edi),%ebp
   3104 	xorl	%ecx,%ebx
   3105 	xorl	%eax,%ecx
   3106 	xorl	%edx,%ebx
   3107 	roll	$24,%ecx
   3108 	xorl	%eax,%edx
   3109 	xorl	%eax,%ebx
   3110 	roll	$16,%edx
   3111 	xorl	%ecx,%ebx
   3112 	roll	$8,%eax
   3113 	xorl	%edx,%ebx
   3114 	movl	%ebp,%ecx
   3115 	xorl	%eax,%ebx
   3116 	movl	%ebx,4(%edi)
   3117 	movl	$2155905152,%ebp
   3118 	andl	%ecx,%ebp
   3119 	leal	(%ecx,%ecx,1),%edx
   3120 	movl	%ebp,%esi
   3121 	shrl	$7,%ebp
   3122 	subl	%ebp,%esi
   3123 	andl	$4278124286,%edx
   3124 	andl	$454761243,%esi
   3125 	xorl	%esi,%edx
   3126 	movl	$2155905152,%ebp
   3127 	andl	%edx,%ebp
   3128 	leal	(%edx,%edx,1),%eax
   3129 	movl	%ebp,%esi
   3130 	shrl	$7,%ebp
   3131 	subl	%ebp,%esi
   3132 	andl	$4278124286,%eax
   3133 	andl	$454761243,%esi
   3134 	xorl	%ecx,%edx
   3135 	xorl	%esi,%eax
   3136 	movl	$2155905152,%ebp
   3137 	andl	%eax,%ebp
   3138 	leal	(%eax,%eax,1),%ebx
   3139 	movl	%ebp,%esi
   3140 	shrl	$7,%ebp
   3141 	xorl	%ecx,%eax
   3142 	subl	%ebp,%esi
   3143 	andl	$4278124286,%ebx
   3144 	andl	$454761243,%esi
   3145 	roll	$8,%ecx
   3146 	xorl	%esi,%ebx
   3147 	movl	12(%edi),%ebp
   3148 	xorl	%edx,%ecx
   3149 	xorl	%ebx,%edx
   3150 	xorl	%eax,%ecx
   3151 	roll	$24,%edx
   3152 	xorl	%ebx,%eax
   3153 	xorl	%ebx,%ecx
   3154 	roll	$16,%eax
   3155 	xorl	%edx,%ecx
   3156 	roll	$8,%ebx
   3157 	xorl	%eax,%ecx
   3158 	movl	%ebp,%edx
   3159 	xorl	%ebx,%ecx
   3160 	movl	%ecx,8(%edi)
   3161 	movl	$2155905152,%ebp
   3162 	andl	%edx,%ebp
   3163 	leal	(%edx,%edx,1),%eax
   3164 	movl	%ebp,%esi
   3165 	shrl	$7,%ebp
   3166 	subl	%ebp,%esi
   3167 	andl	$4278124286,%eax
   3168 	andl	$454761243,%esi
   3169 	xorl	%esi,%eax
   3170 	movl	$2155905152,%ebp
   3171 	andl	%eax,%ebp
   3172 	leal	(%eax,%eax,1),%ebx
   3173 	movl	%ebp,%esi
   3174 	shrl	$7,%ebp
   3175 	subl	%ebp,%esi
   3176 	andl	$4278124286,%ebx
   3177 	andl	$454761243,%esi
   3178 	xorl	%edx,%eax
   3179 	xorl	%esi,%ebx
   3180 	movl	$2155905152,%ebp
   3181 	andl	%ebx,%ebp
   3182 	leal	(%ebx,%ebx,1),%ecx
   3183 	movl	%ebp,%esi
   3184 	shrl	$7,%ebp
   3185 	xorl	%edx,%ebx
   3186 	subl	%ebp,%esi
   3187 	andl	$4278124286,%ecx
   3188 	andl	$454761243,%esi
   3189 	roll	$8,%edx
   3190 	xorl	%esi,%ecx
   3191 	movl	16(%edi),%ebp
   3192 	xorl	%eax,%edx
   3193 	xorl	%ecx,%eax
   3194 	xorl	%ebx,%edx
   3195 	roll	$24,%eax
   3196 	xorl	%ecx,%ebx
   3197 	xorl	%ecx,%edx
   3198 	roll	$16,%ebx
   3199 	xorl	%eax,%edx
   3200 	roll	$8,%ecx
   3201 	xorl	%ebx,%edx
   3202 	movl	%ebp,%eax
   3203 	xorl	%ecx,%edx
   3204 	movl	%edx,12(%edi)
   3205 	cmpl	28(%esp),%edi
   3206 	jb	L056permute
   3207 	xorl	%eax,%eax
   3208 	popl	%edi
   3209 	popl	%esi
   3210 	popl	%ebx
   3211 	popl	%ebp
   3212 	ret
   3213 .byte	65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
   3214 .byte	80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
   3215 .byte	111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
   3216 .section __IMPORT,__pointers,non_lazy_symbol_pointers
   3217 L_OPENSSL_ia32cap_P$non_lazy_ptr:
   3218 .indirect_symbol	_OPENSSL_ia32cap_P
   3219 .long	0
   3220 #endif
   3221