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