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