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