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