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