aes-586.S revision 305153
1/* $FreeBSD: stable/11/secure/lib/libcrypto/i386/aes-586.S 305153 2016-08-31 20:33:59Z jkim $ */ 2/* Do not modify. This file is auto-generated from aes-586.pl. */ 3#ifdef PIC 4.file "aes-586.S" 5.text 6.type _x86_AES_encrypt_compact,@function 7.align 16 8_x86_AES_encrypt_compact: 9 movl %edi,20(%esp) 10 xorl (%edi),%eax 11 xorl 4(%edi),%ebx 12 xorl 8(%edi),%ecx 13 xorl 12(%edi),%edx 14 movl 240(%edi),%esi 15 leal -2(%esi,%esi,1),%esi 16 leal (%edi,%esi,8),%esi 17 movl %esi,24(%esp) 18 movl -128(%ebp),%edi 19 movl -96(%ebp),%esi 20 movl -64(%ebp),%edi 21 movl -32(%ebp),%esi 22 movl (%ebp),%edi 23 movl 32(%ebp),%esi 24 movl 64(%ebp),%edi 25 movl 96(%ebp),%esi 26.align 16 27.L000loop: 28 movl %eax,%esi 29 andl $255,%esi 30 movzbl -128(%ebp,%esi,1),%esi 31 movzbl %bh,%edi 32 movzbl -128(%ebp,%edi,1),%edi 33 shll $8,%edi 34 xorl %edi,%esi 35 movl %ecx,%edi 36 shrl $16,%edi 37 andl $255,%edi 38 movzbl -128(%ebp,%edi,1),%edi 39 shll $16,%edi 40 xorl %edi,%esi 41 movl %edx,%edi 42 shrl $24,%edi 43 movzbl -128(%ebp,%edi,1),%edi 44 shll $24,%edi 45 xorl %edi,%esi 46 movl %esi,4(%esp) 47 48 movl %ebx,%esi 49 andl $255,%esi 50 shrl $16,%ebx 51 movzbl -128(%ebp,%esi,1),%esi 52 movzbl %ch,%edi 53 movzbl -128(%ebp,%edi,1),%edi 54 shll $8,%edi 55 xorl %edi,%esi 56 movl %edx,%edi 57 shrl $16,%edi 58 andl $255,%edi 59 movzbl -128(%ebp,%edi,1),%edi 60 shll $16,%edi 61 xorl %edi,%esi 62 movl %eax,%edi 63 shrl $24,%edi 64 movzbl -128(%ebp,%edi,1),%edi 65 shll $24,%edi 66 xorl %edi,%esi 67 movl %esi,8(%esp) 68 69 movl %ecx,%esi 70 andl $255,%esi 71 shrl $24,%ecx 72 movzbl -128(%ebp,%esi,1),%esi 73 movzbl %dh,%edi 74 movzbl -128(%ebp,%edi,1),%edi 75 shll $8,%edi 76 xorl %edi,%esi 77 movl %eax,%edi 78 shrl $16,%edi 79 andl $255,%edx 80 andl $255,%edi 81 movzbl -128(%ebp,%edi,1),%edi 82 shll $16,%edi 83 xorl %edi,%esi 84 movzbl %bh,%edi 85 movzbl -128(%ebp,%edi,1),%edi 86 shll $24,%edi 87 xorl %edi,%esi 88 89 andl $255,%edx 90 movzbl -128(%ebp,%edx,1),%edx 91 movzbl %ah,%eax 92 movzbl -128(%ebp,%eax,1),%eax 93 shll $8,%eax 94 xorl %eax,%edx 95 movl 4(%esp),%eax 96 andl $255,%ebx 97 movzbl -128(%ebp,%ebx,1),%ebx 98 shll $16,%ebx 99 xorl %ebx,%edx 100 movl 8(%esp),%ebx 101 movzbl -128(%ebp,%ecx,1),%ecx 102 shll $24,%ecx 103 xorl %ecx,%edx 104 movl %esi,%ecx 105 106 movl $2155905152,%ebp 107 andl %ecx,%ebp 108 leal (%ecx,%ecx,1),%edi 109 movl %ebp,%esi 110 shrl $7,%ebp 111 andl $4278124286,%edi 112 subl %ebp,%esi 113 movl %ecx,%ebp 114 andl $454761243,%esi 115 rorl $16,%ebp 116 xorl %edi,%esi 117 movl %ecx,%edi 118 xorl %esi,%ecx 119 rorl $24,%edi 120 xorl %ebp,%esi 121 roll $24,%ecx 122 xorl %edi,%esi 123 movl $2155905152,%ebp 124 xorl %esi,%ecx 125 andl %edx,%ebp 126 leal (%edx,%edx,1),%edi 127 movl %ebp,%esi 128 shrl $7,%ebp 129 andl $4278124286,%edi 130 subl %ebp,%esi 131 movl %edx,%ebp 132 andl $454761243,%esi 133 rorl $16,%ebp 134 xorl %edi,%esi 135 movl %edx,%edi 136 xorl %esi,%edx 137 rorl $24,%edi 138 xorl %ebp,%esi 139 roll $24,%edx 140 xorl %edi,%esi 141 movl $2155905152,%ebp 142 xorl %esi,%edx 143 andl %eax,%ebp 144 leal (%eax,%eax,1),%edi 145 movl %ebp,%esi 146 shrl $7,%ebp 147 andl $4278124286,%edi 148 subl %ebp,%esi 149 movl %eax,%ebp 150 andl $454761243,%esi 151 rorl $16,%ebp 152 xorl %edi,%esi 153 movl %eax,%edi 154 xorl %esi,%eax 155 rorl $24,%edi 156 xorl %ebp,%esi 157 roll $24,%eax 158 xorl %edi,%esi 159 movl $2155905152,%ebp 160 xorl %esi,%eax 161 andl %ebx,%ebp 162 leal (%ebx,%ebx,1),%edi 163 movl %ebp,%esi 164 shrl $7,%ebp 165 andl $4278124286,%edi 166 subl %ebp,%esi 167 movl %ebx,%ebp 168 andl $454761243,%esi 169 rorl $16,%ebp 170 xorl %edi,%esi 171 movl %ebx,%edi 172 xorl %esi,%ebx 173 rorl $24,%edi 174 xorl %ebp,%esi 175 roll $24,%ebx 176 xorl %edi,%esi 177 xorl %esi,%ebx 178 movl 20(%esp),%edi 179 movl 28(%esp),%ebp 180 addl $16,%edi 181 xorl (%edi),%eax 182 xorl 4(%edi),%ebx 183 xorl 8(%edi),%ecx 184 xorl 12(%edi),%edx 185 cmpl 24(%esp),%edi 186 movl %edi,20(%esp) 187 jb .L000loop 188 movl %eax,%esi 189 andl $255,%esi 190 movzbl -128(%ebp,%esi,1),%esi 191 movzbl %bh,%edi 192 movzbl -128(%ebp,%edi,1),%edi 193 shll $8,%edi 194 xorl %edi,%esi 195 movl %ecx,%edi 196 shrl $16,%edi 197 andl $255,%edi 198 movzbl -128(%ebp,%edi,1),%edi 199 shll $16,%edi 200 xorl %edi,%esi 201 movl %edx,%edi 202 shrl $24,%edi 203 movzbl -128(%ebp,%edi,1),%edi 204 shll $24,%edi 205 xorl %edi,%esi 206 movl %esi,4(%esp) 207 208 movl %ebx,%esi 209 andl $255,%esi 210 shrl $16,%ebx 211 movzbl -128(%ebp,%esi,1),%esi 212 movzbl %ch,%edi 213 movzbl -128(%ebp,%edi,1),%edi 214 shll $8,%edi 215 xorl %edi,%esi 216 movl %edx,%edi 217 shrl $16,%edi 218 andl $255,%edi 219 movzbl -128(%ebp,%edi,1),%edi 220 shll $16,%edi 221 xorl %edi,%esi 222 movl %eax,%edi 223 shrl $24,%edi 224 movzbl -128(%ebp,%edi,1),%edi 225 shll $24,%edi 226 xorl %edi,%esi 227 movl %esi,8(%esp) 228 229 movl %ecx,%esi 230 andl $255,%esi 231 shrl $24,%ecx 232 movzbl -128(%ebp,%esi,1),%esi 233 movzbl %dh,%edi 234 movzbl -128(%ebp,%edi,1),%edi 235 shll $8,%edi 236 xorl %edi,%esi 237 movl %eax,%edi 238 shrl $16,%edi 239 andl $255,%edx 240 andl $255,%edi 241 movzbl -128(%ebp,%edi,1),%edi 242 shll $16,%edi 243 xorl %edi,%esi 244 movzbl %bh,%edi 245 movzbl -128(%ebp,%edi,1),%edi 246 shll $24,%edi 247 xorl %edi,%esi 248 249 movl 20(%esp),%edi 250 andl $255,%edx 251 movzbl -128(%ebp,%edx,1),%edx 252 movzbl %ah,%eax 253 movzbl -128(%ebp,%eax,1),%eax 254 shll $8,%eax 255 xorl %eax,%edx 256 movl 4(%esp),%eax 257 andl $255,%ebx 258 movzbl -128(%ebp,%ebx,1),%ebx 259 shll $16,%ebx 260 xorl %ebx,%edx 261 movl 8(%esp),%ebx 262 movzbl -128(%ebp,%ecx,1),%ecx 263 shll $24,%ecx 264 xorl %ecx,%edx 265 movl %esi,%ecx 266 267 xorl 16(%edi),%eax 268 xorl 20(%edi),%ebx 269 xorl 24(%edi),%ecx 270 xorl 28(%edi),%edx 271 ret 272.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact 273.type _sse_AES_encrypt_compact,@function 274.align 16 275_sse_AES_encrypt_compact: 276 pxor (%edi),%mm0 277 pxor 8(%edi),%mm4 278 movl 240(%edi),%esi 279 leal -2(%esi,%esi,1),%esi 280 leal (%edi,%esi,8),%esi 281 movl %esi,24(%esp) 282 movl $454761243,%eax 283 movl %eax,8(%esp) 284 movl %eax,12(%esp) 285 movl -128(%ebp),%eax 286 movl -96(%ebp),%ebx 287 movl -64(%ebp),%ecx 288 movl -32(%ebp),%edx 289 movl (%ebp),%eax 290 movl 32(%ebp),%ebx 291 movl 64(%ebp),%ecx 292 movl 96(%ebp),%edx 293.align 16 294.L001loop: 295 pshufw $8,%mm0,%mm1 296 pshufw $13,%mm4,%mm5 297 movd %mm1,%eax 298 movd %mm5,%ebx 299 movl %edi,20(%esp) 300 movzbl %al,%esi 301 movzbl %ah,%edx 302 pshufw $13,%mm0,%mm2 303 movzbl -128(%ebp,%esi,1),%ecx 304 movzbl %bl,%edi 305 movzbl -128(%ebp,%edx,1),%edx 306 shrl $16,%eax 307 shll $8,%edx 308 movzbl -128(%ebp,%edi,1),%esi 309 movzbl %bh,%edi 310 shll $16,%esi 311 pshufw $8,%mm4,%mm6 312 orl %esi,%ecx 313 movzbl -128(%ebp,%edi,1),%esi 314 movzbl %ah,%edi 315 shll $24,%esi 316 shrl $16,%ebx 317 orl %esi,%edx 318 movzbl -128(%ebp,%edi,1),%esi 319 movzbl %bh,%edi 320 shll $8,%esi 321 orl %esi,%ecx 322 movzbl -128(%ebp,%edi,1),%esi 323 movzbl %al,%edi 324 shll $24,%esi 325 orl %esi,%ecx 326 movzbl -128(%ebp,%edi,1),%esi 327 movzbl %bl,%edi 328 movd %mm2,%eax 329 movd %ecx,%mm0 330 movzbl -128(%ebp,%edi,1),%ecx 331 movzbl %ah,%edi 332 shll $16,%ecx 333 movd %mm6,%ebx 334 orl %esi,%ecx 335 movzbl -128(%ebp,%edi,1),%esi 336 movzbl %bh,%edi 337 shll $24,%esi 338 orl %esi,%ecx 339 movzbl -128(%ebp,%edi,1),%esi 340 movzbl %bl,%edi 341 shll $8,%esi 342 shrl $16,%ebx 343 orl %esi,%ecx 344 movzbl -128(%ebp,%edi,1),%esi 345 movzbl %al,%edi 346 shrl $16,%eax 347 movd %ecx,%mm1 348 movzbl -128(%ebp,%edi,1),%ecx 349 movzbl %ah,%edi 350 shll $16,%ecx 351 andl $255,%eax 352 orl %esi,%ecx 353 punpckldq %mm1,%mm0 354 movzbl -128(%ebp,%edi,1),%esi 355 movzbl %bh,%edi 356 shll $24,%esi 357 andl $255,%ebx 358 movzbl -128(%ebp,%eax,1),%eax 359 orl %esi,%ecx 360 shll $16,%eax 361 movzbl -128(%ebp,%edi,1),%esi 362 orl %eax,%edx 363 shll $8,%esi 364 movzbl -128(%ebp,%ebx,1),%ebx 365 orl %esi,%ecx 366 orl %ebx,%edx 367 movl 20(%esp),%edi 368 movd %ecx,%mm4 369 movd %edx,%mm5 370 punpckldq %mm5,%mm4 371 addl $16,%edi 372 cmpl 24(%esp),%edi 373 ja .L002out 374 movq 8(%esp),%mm2 375 pxor %mm3,%mm3 376 pxor %mm7,%mm7 377 movq %mm0,%mm1 378 movq %mm4,%mm5 379 pcmpgtb %mm0,%mm3 380 pcmpgtb %mm4,%mm7 381 pand %mm2,%mm3 382 pand %mm2,%mm7 383 pshufw $177,%mm0,%mm2 384 pshufw $177,%mm4,%mm6 385 paddb %mm0,%mm0 386 paddb %mm4,%mm4 387 pxor %mm3,%mm0 388 pxor %mm7,%mm4 389 pshufw $177,%mm2,%mm3 390 pshufw $177,%mm6,%mm7 391 pxor %mm0,%mm1 392 pxor %mm4,%mm5 393 pxor %mm2,%mm0 394 pxor %mm6,%mm4 395 movq %mm3,%mm2 396 movq %mm7,%mm6 397 pslld $8,%mm3 398 pslld $8,%mm7 399 psrld $24,%mm2 400 psrld $24,%mm6 401 pxor %mm3,%mm0 402 pxor %mm7,%mm4 403 pxor %mm2,%mm0 404 pxor %mm6,%mm4 405 movq %mm1,%mm3 406 movq %mm5,%mm7 407 movq (%edi),%mm2 408 movq 8(%edi),%mm6 409 psrld $8,%mm1 410 psrld $8,%mm5 411 movl -128(%ebp),%eax 412 pslld $24,%mm3 413 pslld $24,%mm7 414 movl -64(%ebp),%ebx 415 pxor %mm1,%mm0 416 pxor %mm5,%mm4 417 movl (%ebp),%ecx 418 pxor %mm3,%mm0 419 pxor %mm7,%mm4 420 movl 64(%ebp),%edx 421 pxor %mm2,%mm0 422 pxor %mm6,%mm4 423 jmp .L001loop 424.align 16 425.L002out: 426 pxor (%edi),%mm0 427 pxor 8(%edi),%mm4 428 ret 429.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact 430.type _x86_AES_encrypt,@function 431.align 16 432_x86_AES_encrypt: 433 movl %edi,20(%esp) 434 xorl (%edi),%eax 435 xorl 4(%edi),%ebx 436 xorl 8(%edi),%ecx 437 xorl 12(%edi),%edx 438 movl 240(%edi),%esi 439 leal -2(%esi,%esi,1),%esi 440 leal (%edi,%esi,8),%esi 441 movl %esi,24(%esp) 442.align 16 443.L003loop: 444 movl %eax,%esi 445 andl $255,%esi 446 movl (%ebp,%esi,8),%esi 447 movzbl %bh,%edi 448 xorl 3(%ebp,%edi,8),%esi 449 movl %ecx,%edi 450 shrl $16,%edi 451 andl $255,%edi 452 xorl 2(%ebp,%edi,8),%esi 453 movl %edx,%edi 454 shrl $24,%edi 455 xorl 1(%ebp,%edi,8),%esi 456 movl %esi,4(%esp) 457 458 movl %ebx,%esi 459 andl $255,%esi 460 shrl $16,%ebx 461 movl (%ebp,%esi,8),%esi 462 movzbl %ch,%edi 463 xorl 3(%ebp,%edi,8),%esi 464 movl %edx,%edi 465 shrl $16,%edi 466 andl $255,%edi 467 xorl 2(%ebp,%edi,8),%esi 468 movl %eax,%edi 469 shrl $24,%edi 470 xorl 1(%ebp,%edi,8),%esi 471 movl %esi,8(%esp) 472 473 movl %ecx,%esi 474 andl $255,%esi 475 shrl $24,%ecx 476 movl (%ebp,%esi,8),%esi 477 movzbl %dh,%edi 478 xorl 3(%ebp,%edi,8),%esi 479 movl %eax,%edi 480 shrl $16,%edi 481 andl $255,%edx 482 andl $255,%edi 483 xorl 2(%ebp,%edi,8),%esi 484 movzbl %bh,%edi 485 xorl 1(%ebp,%edi,8),%esi 486 487 movl 20(%esp),%edi 488 movl (%ebp,%edx,8),%edx 489 movzbl %ah,%eax 490 xorl 3(%ebp,%eax,8),%edx 491 movl 4(%esp),%eax 492 andl $255,%ebx 493 xorl 2(%ebp,%ebx,8),%edx 494 movl 8(%esp),%ebx 495 xorl 1(%ebp,%ecx,8),%edx 496 movl %esi,%ecx 497 498 addl $16,%edi 499 xorl (%edi),%eax 500 xorl 4(%edi),%ebx 501 xorl 8(%edi),%ecx 502 xorl 12(%edi),%edx 503 cmpl 24(%esp),%edi 504 movl %edi,20(%esp) 505 jb .L003loop 506 movl %eax,%esi 507 andl $255,%esi 508 movl 2(%ebp,%esi,8),%esi 509 andl $255,%esi 510 movzbl %bh,%edi 511 movl (%ebp,%edi,8),%edi 512 andl $65280,%edi 513 xorl %edi,%esi 514 movl %ecx,%edi 515 shrl $16,%edi 516 andl $255,%edi 517 movl (%ebp,%edi,8),%edi 518 andl $16711680,%edi 519 xorl %edi,%esi 520 movl %edx,%edi 521 shrl $24,%edi 522 movl 2(%ebp,%edi,8),%edi 523 andl $4278190080,%edi 524 xorl %edi,%esi 525 movl %esi,4(%esp) 526 movl %ebx,%esi 527 andl $255,%esi 528 shrl $16,%ebx 529 movl 2(%ebp,%esi,8),%esi 530 andl $255,%esi 531 movzbl %ch,%edi 532 movl (%ebp,%edi,8),%edi 533 andl $65280,%edi 534 xorl %edi,%esi 535 movl %edx,%edi 536 shrl $16,%edi 537 andl $255,%edi 538 movl (%ebp,%edi,8),%edi 539 andl $16711680,%edi 540 xorl %edi,%esi 541 movl %eax,%edi 542 shrl $24,%edi 543 movl 2(%ebp,%edi,8),%edi 544 andl $4278190080,%edi 545 xorl %edi,%esi 546 movl %esi,8(%esp) 547 movl %ecx,%esi 548 andl $255,%esi 549 shrl $24,%ecx 550 movl 2(%ebp,%esi,8),%esi 551 andl $255,%esi 552 movzbl %dh,%edi 553 movl (%ebp,%edi,8),%edi 554 andl $65280,%edi 555 xorl %edi,%esi 556 movl %eax,%edi 557 shrl $16,%edi 558 andl $255,%edx 559 andl $255,%edi 560 movl (%ebp,%edi,8),%edi 561 andl $16711680,%edi 562 xorl %edi,%esi 563 movzbl %bh,%edi 564 movl 2(%ebp,%edi,8),%edi 565 andl $4278190080,%edi 566 xorl %edi,%esi 567 movl 20(%esp),%edi 568 andl $255,%edx 569 movl 2(%ebp,%edx,8),%edx 570 andl $255,%edx 571 movzbl %ah,%eax 572 movl (%ebp,%eax,8),%eax 573 andl $65280,%eax 574 xorl %eax,%edx 575 movl 4(%esp),%eax 576 andl $255,%ebx 577 movl (%ebp,%ebx,8),%ebx 578 andl $16711680,%ebx 579 xorl %ebx,%edx 580 movl 8(%esp),%ebx 581 movl 2(%ebp,%ecx,8),%ecx 582 andl $4278190080,%ecx 583 xorl %ecx,%edx 584 movl %esi,%ecx 585 addl $16,%edi 586 xorl (%edi),%eax 587 xorl 4(%edi),%ebx 588 xorl 8(%edi),%ecx 589 xorl 12(%edi),%edx 590 ret 591.align 64 592.LAES_Te: 593.long 2774754246,2774754246 594.long 2222750968,2222750968 595.long 2574743534,2574743534 596.long 2373680118,2373680118 597.long 234025727,234025727 598.long 3177933782,3177933782 599.long 2976870366,2976870366 600.long 1422247313,1422247313 601.long 1345335392,1345335392 602.long 50397442,50397442 603.long 2842126286,2842126286 604.long 2099981142,2099981142 605.long 436141799,436141799 606.long 1658312629,1658312629 607.long 3870010189,3870010189 608.long 2591454956,2591454956 609.long 1170918031,1170918031 610.long 2642575903,2642575903 611.long 1086966153,1086966153 612.long 2273148410,2273148410 613.long 368769775,368769775 614.long 3948501426,3948501426 615.long 3376891790,3376891790 616.long 200339707,200339707 617.long 3970805057,3970805057 618.long 1742001331,1742001331 619.long 4255294047,4255294047 620.long 3937382213,3937382213 621.long 3214711843,3214711843 622.long 4154762323,4154762323 623.long 2524082916,2524082916 624.long 1539358875,1539358875 625.long 3266819957,3266819957 626.long 486407649,486407649 627.long 2928907069,2928907069 628.long 1780885068,1780885068 629.long 1513502316,1513502316 630.long 1094664062,1094664062 631.long 49805301,49805301 632.long 1338821763,1338821763 633.long 1546925160,1546925160 634.long 4104496465,4104496465 635.long 887481809,887481809 636.long 150073849,150073849 637.long 2473685474,2473685474 638.long 1943591083,1943591083 639.long 1395732834,1395732834 640.long 1058346282,1058346282 641.long 201589768,201589768 642.long 1388824469,1388824469 643.long 1696801606,1696801606 644.long 1589887901,1589887901 645.long 672667696,672667696 646.long 2711000631,2711000631 647.long 251987210,251987210 648.long 3046808111,3046808111 649.long 151455502,151455502 650.long 907153956,907153956 651.long 2608889883,2608889883 652.long 1038279391,1038279391 653.long 652995533,652995533 654.long 1764173646,1764173646 655.long 3451040383,3451040383 656.long 2675275242,2675275242 657.long 453576978,453576978 658.long 2659418909,2659418909 659.long 1949051992,1949051992 660.long 773462580,773462580 661.long 756751158,756751158 662.long 2993581788,2993581788 663.long 3998898868,3998898868 664.long 4221608027,4221608027 665.long 4132590244,4132590244 666.long 1295727478,1295727478 667.long 1641469623,1641469623 668.long 3467883389,3467883389 669.long 2066295122,2066295122 670.long 1055122397,1055122397 671.long 1898917726,1898917726 672.long 2542044179,2542044179 673.long 4115878822,4115878822 674.long 1758581177,1758581177 675.long 0,0 676.long 753790401,753790401 677.long 1612718144,1612718144 678.long 536673507,536673507 679.long 3367088505,3367088505 680.long 3982187446,3982187446 681.long 3194645204,3194645204 682.long 1187761037,1187761037 683.long 3653156455,3653156455 684.long 1262041458,1262041458 685.long 3729410708,3729410708 686.long 3561770136,3561770136 687.long 3898103984,3898103984 688.long 1255133061,1255133061 689.long 1808847035,1808847035 690.long 720367557,720367557 691.long 3853167183,3853167183 692.long 385612781,385612781 693.long 3309519750,3309519750 694.long 3612167578,3612167578 695.long 1429418854,1429418854 696.long 2491778321,2491778321 697.long 3477423498,3477423498 698.long 284817897,284817897 699.long 100794884,100794884 700.long 2172616702,2172616702 701.long 4031795360,4031795360 702.long 1144798328,1144798328 703.long 3131023141,3131023141 704.long 3819481163,3819481163 705.long 4082192802,4082192802 706.long 4272137053,4272137053 707.long 3225436288,3225436288 708.long 2324664069,2324664069 709.long 2912064063,2912064063 710.long 3164445985,3164445985 711.long 1211644016,1211644016 712.long 83228145,83228145 713.long 3753688163,3753688163 714.long 3249976951,3249976951 715.long 1977277103,1977277103 716.long 1663115586,1663115586 717.long 806359072,806359072 718.long 452984805,452984805 719.long 250868733,250868733 720.long 1842533055,1842533055 721.long 1288555905,1288555905 722.long 336333848,336333848 723.long 890442534,890442534 724.long 804056259,804056259 725.long 3781124030,3781124030 726.long 2727843637,2727843637 727.long 3427026056,3427026056 728.long 957814574,957814574 729.long 1472513171,1472513171 730.long 4071073621,4071073621 731.long 2189328124,2189328124 732.long 1195195770,1195195770 733.long 2892260552,2892260552 734.long 3881655738,3881655738 735.long 723065138,723065138 736.long 2507371494,2507371494 737.long 2690670784,2690670784 738.long 2558624025,2558624025 739.long 3511635870,3511635870 740.long 2145180835,2145180835 741.long 1713513028,1713513028 742.long 2116692564,2116692564 743.long 2878378043,2878378043 744.long 2206763019,2206763019 745.long 3393603212,3393603212 746.long 703524551,703524551 747.long 3552098411,3552098411 748.long 1007948840,1007948840 749.long 2044649127,2044649127 750.long 3797835452,3797835452 751.long 487262998,487262998 752.long 1994120109,1994120109 753.long 1004593371,1004593371 754.long 1446130276,1446130276 755.long 1312438900,1312438900 756.long 503974420,503974420 757.long 3679013266,3679013266 758.long 168166924,168166924 759.long 1814307912,1814307912 760.long 3831258296,3831258296 761.long 1573044895,1573044895 762.long 1859376061,1859376061 763.long 4021070915,4021070915 764.long 2791465668,2791465668 765.long 2828112185,2828112185 766.long 2761266481,2761266481 767.long 937747667,937747667 768.long 2339994098,2339994098 769.long 854058965,854058965 770.long 1137232011,1137232011 771.long 1496790894,1496790894 772.long 3077402074,3077402074 773.long 2358086913,2358086913 774.long 1691735473,1691735473 775.long 3528347292,3528347292 776.long 3769215305,3769215305 777.long 3027004632,3027004632 778.long 4199962284,4199962284 779.long 133494003,133494003 780.long 636152527,636152527 781.long 2942657994,2942657994 782.long 2390391540,2390391540 783.long 3920539207,3920539207 784.long 403179536,403179536 785.long 3585784431,3585784431 786.long 2289596656,2289596656 787.long 1864705354,1864705354 788.long 1915629148,1915629148 789.long 605822008,605822008 790.long 4054230615,4054230615 791.long 3350508659,3350508659 792.long 1371981463,1371981463 793.long 602466507,602466507 794.long 2094914977,2094914977 795.long 2624877800,2624877800 796.long 555687742,555687742 797.long 3712699286,3712699286 798.long 3703422305,3703422305 799.long 2257292045,2257292045 800.long 2240449039,2240449039 801.long 2423288032,2423288032 802.long 1111375484,1111375484 803.long 3300242801,3300242801 804.long 2858837708,2858837708 805.long 3628615824,3628615824 806.long 84083462,84083462 807.long 32962295,32962295 808.long 302911004,302911004 809.long 2741068226,2741068226 810.long 1597322602,1597322602 811.long 4183250862,4183250862 812.long 3501832553,3501832553 813.long 2441512471,2441512471 814.long 1489093017,1489093017 815.long 656219450,656219450 816.long 3114180135,3114180135 817.long 954327513,954327513 818.long 335083755,335083755 819.long 3013122091,3013122091 820.long 856756514,856756514 821.long 3144247762,3144247762 822.long 1893325225,1893325225 823.long 2307821063,2307821063 824.long 2811532339,2811532339 825.long 3063651117,3063651117 826.long 572399164,572399164 827.long 2458355477,2458355477 828.long 552200649,552200649 829.long 1238290055,1238290055 830.long 4283782570,4283782570 831.long 2015897680,2015897680 832.long 2061492133,2061492133 833.long 2408352771,2408352771 834.long 4171342169,4171342169 835.long 2156497161,2156497161 836.long 386731290,386731290 837.long 3669999461,3669999461 838.long 837215959,837215959 839.long 3326231172,3326231172 840.long 3093850320,3093850320 841.long 3275833730,3275833730 842.long 2962856233,2962856233 843.long 1999449434,1999449434 844.long 286199582,286199582 845.long 3417354363,3417354363 846.long 4233385128,4233385128 847.long 3602627437,3602627437 848.long 974525996,974525996 849.byte 99,124,119,123,242,107,111,197 850.byte 48,1,103,43,254,215,171,118 851.byte 202,130,201,125,250,89,71,240 852.byte 173,212,162,175,156,164,114,192 853.byte 183,253,147,38,54,63,247,204 854.byte 52,165,229,241,113,216,49,21 855.byte 4,199,35,195,24,150,5,154 856.byte 7,18,128,226,235,39,178,117 857.byte 9,131,44,26,27,110,90,160 858.byte 82,59,214,179,41,227,47,132 859.byte 83,209,0,237,32,252,177,91 860.byte 106,203,190,57,74,76,88,207 861.byte 208,239,170,251,67,77,51,133 862.byte 69,249,2,127,80,60,159,168 863.byte 81,163,64,143,146,157,56,245 864.byte 188,182,218,33,16,255,243,210 865.byte 205,12,19,236,95,151,68,23 866.byte 196,167,126,61,100,93,25,115 867.byte 96,129,79,220,34,42,144,136 868.byte 70,238,184,20,222,94,11,219 869.byte 224,50,58,10,73,6,36,92 870.byte 194,211,172,98,145,149,228,121 871.byte 231,200,55,109,141,213,78,169 872.byte 108,86,244,234,101,122,174,8 873.byte 186,120,37,46,28,166,180,198 874.byte 232,221,116,31,75,189,139,138 875.byte 112,62,181,102,72,3,246,14 876.byte 97,53,87,185,134,193,29,158 877.byte 225,248,152,17,105,217,142,148 878.byte 155,30,135,233,206,85,40,223 879.byte 140,161,137,13,191,230,66,104 880.byte 65,153,45,15,176,84,187,22 881.byte 99,124,119,123,242,107,111,197 882.byte 48,1,103,43,254,215,171,118 883.byte 202,130,201,125,250,89,71,240 884.byte 173,212,162,175,156,164,114,192 885.byte 183,253,147,38,54,63,247,204 886.byte 52,165,229,241,113,216,49,21 887.byte 4,199,35,195,24,150,5,154 888.byte 7,18,128,226,235,39,178,117 889.byte 9,131,44,26,27,110,90,160 890.byte 82,59,214,179,41,227,47,132 891.byte 83,209,0,237,32,252,177,91 892.byte 106,203,190,57,74,76,88,207 893.byte 208,239,170,251,67,77,51,133 894.byte 69,249,2,127,80,60,159,168 895.byte 81,163,64,143,146,157,56,245 896.byte 188,182,218,33,16,255,243,210 897.byte 205,12,19,236,95,151,68,23 898.byte 196,167,126,61,100,93,25,115 899.byte 96,129,79,220,34,42,144,136 900.byte 70,238,184,20,222,94,11,219 901.byte 224,50,58,10,73,6,36,92 902.byte 194,211,172,98,145,149,228,121 903.byte 231,200,55,109,141,213,78,169 904.byte 108,86,244,234,101,122,174,8 905.byte 186,120,37,46,28,166,180,198 906.byte 232,221,116,31,75,189,139,138 907.byte 112,62,181,102,72,3,246,14 908.byte 97,53,87,185,134,193,29,158 909.byte 225,248,152,17,105,217,142,148 910.byte 155,30,135,233,206,85,40,223 911.byte 140,161,137,13,191,230,66,104 912.byte 65,153,45,15,176,84,187,22 913.byte 99,124,119,123,242,107,111,197 914.byte 48,1,103,43,254,215,171,118 915.byte 202,130,201,125,250,89,71,240 916.byte 173,212,162,175,156,164,114,192 917.byte 183,253,147,38,54,63,247,204 918.byte 52,165,229,241,113,216,49,21 919.byte 4,199,35,195,24,150,5,154 920.byte 7,18,128,226,235,39,178,117 921.byte 9,131,44,26,27,110,90,160 922.byte 82,59,214,179,41,227,47,132 923.byte 83,209,0,237,32,252,177,91 924.byte 106,203,190,57,74,76,88,207 925.byte 208,239,170,251,67,77,51,133 926.byte 69,249,2,127,80,60,159,168 927.byte 81,163,64,143,146,157,56,245 928.byte 188,182,218,33,16,255,243,210 929.byte 205,12,19,236,95,151,68,23 930.byte 196,167,126,61,100,93,25,115 931.byte 96,129,79,220,34,42,144,136 932.byte 70,238,184,20,222,94,11,219 933.byte 224,50,58,10,73,6,36,92 934.byte 194,211,172,98,145,149,228,121 935.byte 231,200,55,109,141,213,78,169 936.byte 108,86,244,234,101,122,174,8 937.byte 186,120,37,46,28,166,180,198 938.byte 232,221,116,31,75,189,139,138 939.byte 112,62,181,102,72,3,246,14 940.byte 97,53,87,185,134,193,29,158 941.byte 225,248,152,17,105,217,142,148 942.byte 155,30,135,233,206,85,40,223 943.byte 140,161,137,13,191,230,66,104 944.byte 65,153,45,15,176,84,187,22 945.byte 99,124,119,123,242,107,111,197 946.byte 48,1,103,43,254,215,171,118 947.byte 202,130,201,125,250,89,71,240 948.byte 173,212,162,175,156,164,114,192 949.byte 183,253,147,38,54,63,247,204 950.byte 52,165,229,241,113,216,49,21 951.byte 4,199,35,195,24,150,5,154 952.byte 7,18,128,226,235,39,178,117 953.byte 9,131,44,26,27,110,90,160 954.byte 82,59,214,179,41,227,47,132 955.byte 83,209,0,237,32,252,177,91 956.byte 106,203,190,57,74,76,88,207 957.byte 208,239,170,251,67,77,51,133 958.byte 69,249,2,127,80,60,159,168 959.byte 81,163,64,143,146,157,56,245 960.byte 188,182,218,33,16,255,243,210 961.byte 205,12,19,236,95,151,68,23 962.byte 196,167,126,61,100,93,25,115 963.byte 96,129,79,220,34,42,144,136 964.byte 70,238,184,20,222,94,11,219 965.byte 224,50,58,10,73,6,36,92 966.byte 194,211,172,98,145,149,228,121 967.byte 231,200,55,109,141,213,78,169 968.byte 108,86,244,234,101,122,174,8 969.byte 186,120,37,46,28,166,180,198 970.byte 232,221,116,31,75,189,139,138 971.byte 112,62,181,102,72,3,246,14 972.byte 97,53,87,185,134,193,29,158 973.byte 225,248,152,17,105,217,142,148 974.byte 155,30,135,233,206,85,40,223 975.byte 140,161,137,13,191,230,66,104 976.byte 65,153,45,15,176,84,187,22 977.long 1,2,4,8 978.long 16,32,64,128 979.long 27,54,0,0 980.long 0,0,0,0 981.size _x86_AES_encrypt,.-_x86_AES_encrypt 982.globl AES_encrypt 983.type AES_encrypt,@function 984.align 16 985AES_encrypt: 986.L_AES_encrypt_begin: 987 pushl %ebp 988 pushl %ebx 989 pushl %esi 990 pushl %edi 991 movl 20(%esp),%esi 992 movl 28(%esp),%edi 993 movl %esp,%eax 994 subl $36,%esp 995 andl $-64,%esp 996 leal -127(%edi),%ebx 997 subl %esp,%ebx 998 negl %ebx 999 andl $960,%ebx 1000 subl %ebx,%esp 1001 addl $4,%esp 1002 movl %eax,28(%esp) 1003 call .L004pic_point 1004.L004pic_point: 1005 popl %ebp 1006 leal OPENSSL_ia32cap_P-.L004pic_point(%ebp),%eax 1007 leal .LAES_Te-.L004pic_point(%ebp),%ebp 1008 leal 764(%esp),%ebx 1009 subl %ebp,%ebx 1010 andl $768,%ebx 1011 leal 2176(%ebp,%ebx,1),%ebp 1012 btl $25,(%eax) 1013 jnc .L005x86 1014 movq (%esi),%mm0 1015 movq 8(%esi),%mm4 1016 call _sse_AES_encrypt_compact 1017 movl 28(%esp),%esp 1018 movl 24(%esp),%esi 1019 movq %mm0,(%esi) 1020 movq %mm4,8(%esi) 1021 emms 1022 popl %edi 1023 popl %esi 1024 popl %ebx 1025 popl %ebp 1026 ret 1027.align 16 1028.L005x86: 1029 movl %ebp,24(%esp) 1030 movl (%esi),%eax 1031 movl 4(%esi),%ebx 1032 movl 8(%esi),%ecx 1033 movl 12(%esi),%edx 1034 call _x86_AES_encrypt_compact 1035 movl 28(%esp),%esp 1036 movl 24(%esp),%esi 1037 movl %eax,(%esi) 1038 movl %ebx,4(%esi) 1039 movl %ecx,8(%esi) 1040 movl %edx,12(%esi) 1041 popl %edi 1042 popl %esi 1043 popl %ebx 1044 popl %ebp 1045 ret 1046.size AES_encrypt,.-.L_AES_encrypt_begin 1047.type _x86_AES_decrypt_compact,@function 1048.align 16 1049_x86_AES_decrypt_compact: 1050 movl %edi,20(%esp) 1051 xorl (%edi),%eax 1052 xorl 4(%edi),%ebx 1053 xorl 8(%edi),%ecx 1054 xorl 12(%edi),%edx 1055 movl 240(%edi),%esi 1056 leal -2(%esi,%esi,1),%esi 1057 leal (%edi,%esi,8),%esi 1058 movl %esi,24(%esp) 1059 movl -128(%ebp),%edi 1060 movl -96(%ebp),%esi 1061 movl -64(%ebp),%edi 1062 movl -32(%ebp),%esi 1063 movl (%ebp),%edi 1064 movl 32(%ebp),%esi 1065 movl 64(%ebp),%edi 1066 movl 96(%ebp),%esi 1067.align 16 1068.L006loop: 1069 movl %eax,%esi 1070 andl $255,%esi 1071 movzbl -128(%ebp,%esi,1),%esi 1072 movzbl %dh,%edi 1073 movzbl -128(%ebp,%edi,1),%edi 1074 shll $8,%edi 1075 xorl %edi,%esi 1076 movl %ecx,%edi 1077 shrl $16,%edi 1078 andl $255,%edi 1079 movzbl -128(%ebp,%edi,1),%edi 1080 shll $16,%edi 1081 xorl %edi,%esi 1082 movl %ebx,%edi 1083 shrl $24,%edi 1084 movzbl -128(%ebp,%edi,1),%edi 1085 shll $24,%edi 1086 xorl %edi,%esi 1087 movl %esi,4(%esp) 1088 movl %ebx,%esi 1089 andl $255,%esi 1090 movzbl -128(%ebp,%esi,1),%esi 1091 movzbl %ah,%edi 1092 movzbl -128(%ebp,%edi,1),%edi 1093 shll $8,%edi 1094 xorl %edi,%esi 1095 movl %edx,%edi 1096 shrl $16,%edi 1097 andl $255,%edi 1098 movzbl -128(%ebp,%edi,1),%edi 1099 shll $16,%edi 1100 xorl %edi,%esi 1101 movl %ecx,%edi 1102 shrl $24,%edi 1103 movzbl -128(%ebp,%edi,1),%edi 1104 shll $24,%edi 1105 xorl %edi,%esi 1106 movl %esi,8(%esp) 1107 movl %ecx,%esi 1108 andl $255,%esi 1109 movzbl -128(%ebp,%esi,1),%esi 1110 movzbl %bh,%edi 1111 movzbl -128(%ebp,%edi,1),%edi 1112 shll $8,%edi 1113 xorl %edi,%esi 1114 movl %eax,%edi 1115 shrl $16,%edi 1116 andl $255,%edi 1117 movzbl -128(%ebp,%edi,1),%edi 1118 shll $16,%edi 1119 xorl %edi,%esi 1120 movl %edx,%edi 1121 shrl $24,%edi 1122 movzbl -128(%ebp,%edi,1),%edi 1123 shll $24,%edi 1124 xorl %edi,%esi 1125 andl $255,%edx 1126 movzbl -128(%ebp,%edx,1),%edx 1127 movzbl %ch,%ecx 1128 movzbl -128(%ebp,%ecx,1),%ecx 1129 shll $8,%ecx 1130 xorl %ecx,%edx 1131 movl %esi,%ecx 1132 shrl $16,%ebx 1133 andl $255,%ebx 1134 movzbl -128(%ebp,%ebx,1),%ebx 1135 shll $16,%ebx 1136 xorl %ebx,%edx 1137 shrl $24,%eax 1138 movzbl -128(%ebp,%eax,1),%eax 1139 shll $24,%eax 1140 xorl %eax,%edx 1141 movl $2155905152,%edi 1142 andl %ecx,%edi 1143 movl %edi,%esi 1144 shrl $7,%edi 1145 leal (%ecx,%ecx,1),%eax 1146 subl %edi,%esi 1147 andl $4278124286,%eax 1148 andl $454761243,%esi 1149 xorl %esi,%eax 1150 movl $2155905152,%edi 1151 andl %eax,%edi 1152 movl %edi,%esi 1153 shrl $7,%edi 1154 leal (%eax,%eax,1),%ebx 1155 subl %edi,%esi 1156 andl $4278124286,%ebx 1157 andl $454761243,%esi 1158 xorl %ecx,%eax 1159 xorl %esi,%ebx 1160 movl $2155905152,%edi 1161 andl %ebx,%edi 1162 movl %edi,%esi 1163 shrl $7,%edi 1164 leal (%ebx,%ebx,1),%ebp 1165 subl %edi,%esi 1166 andl $4278124286,%ebp 1167 andl $454761243,%esi 1168 xorl %ecx,%ebx 1169 roll $8,%ecx 1170 xorl %esi,%ebp 1171 xorl %eax,%ecx 1172 xorl %ebp,%eax 1173 xorl %ebx,%ecx 1174 xorl %ebp,%ebx 1175 roll $24,%eax 1176 xorl %ebp,%ecx 1177 roll $16,%ebx 1178 xorl %eax,%ecx 1179 roll $8,%ebp 1180 xorl %ebx,%ecx 1181 movl 4(%esp),%eax 1182 xorl %ebp,%ecx 1183 movl %ecx,12(%esp) 1184 movl $2155905152,%edi 1185 andl %edx,%edi 1186 movl %edi,%esi 1187 shrl $7,%edi 1188 leal (%edx,%edx,1),%ebx 1189 subl %edi,%esi 1190 andl $4278124286,%ebx 1191 andl $454761243,%esi 1192 xorl %esi,%ebx 1193 movl $2155905152,%edi 1194 andl %ebx,%edi 1195 movl %edi,%esi 1196 shrl $7,%edi 1197 leal (%ebx,%ebx,1),%ecx 1198 subl %edi,%esi 1199 andl $4278124286,%ecx 1200 andl $454761243,%esi 1201 xorl %edx,%ebx 1202 xorl %esi,%ecx 1203 movl $2155905152,%edi 1204 andl %ecx,%edi 1205 movl %edi,%esi 1206 shrl $7,%edi 1207 leal (%ecx,%ecx,1),%ebp 1208 subl %edi,%esi 1209 andl $4278124286,%ebp 1210 andl $454761243,%esi 1211 xorl %edx,%ecx 1212 roll $8,%edx 1213 xorl %esi,%ebp 1214 xorl %ebx,%edx 1215 xorl %ebp,%ebx 1216 xorl %ecx,%edx 1217 xorl %ebp,%ecx 1218 roll $24,%ebx 1219 xorl %ebp,%edx 1220 roll $16,%ecx 1221 xorl %ebx,%edx 1222 roll $8,%ebp 1223 xorl %ecx,%edx 1224 movl 8(%esp),%ebx 1225 xorl %ebp,%edx 1226 movl %edx,16(%esp) 1227 movl $2155905152,%edi 1228 andl %eax,%edi 1229 movl %edi,%esi 1230 shrl $7,%edi 1231 leal (%eax,%eax,1),%ecx 1232 subl %edi,%esi 1233 andl $4278124286,%ecx 1234 andl $454761243,%esi 1235 xorl %esi,%ecx 1236 movl $2155905152,%edi 1237 andl %ecx,%edi 1238 movl %edi,%esi 1239 shrl $7,%edi 1240 leal (%ecx,%ecx,1),%edx 1241 subl %edi,%esi 1242 andl $4278124286,%edx 1243 andl $454761243,%esi 1244 xorl %eax,%ecx 1245 xorl %esi,%edx 1246 movl $2155905152,%edi 1247 andl %edx,%edi 1248 movl %edi,%esi 1249 shrl $7,%edi 1250 leal (%edx,%edx,1),%ebp 1251 subl %edi,%esi 1252 andl $4278124286,%ebp 1253 andl $454761243,%esi 1254 xorl %eax,%edx 1255 roll $8,%eax 1256 xorl %esi,%ebp 1257 xorl %ecx,%eax 1258 xorl %ebp,%ecx 1259 xorl %edx,%eax 1260 xorl %ebp,%edx 1261 roll $24,%ecx 1262 xorl %ebp,%eax 1263 roll $16,%edx 1264 xorl %ecx,%eax 1265 roll $8,%ebp 1266 xorl %edx,%eax 1267 xorl %ebp,%eax 1268 movl $2155905152,%edi 1269 andl %ebx,%edi 1270 movl %edi,%esi 1271 shrl $7,%edi 1272 leal (%ebx,%ebx,1),%ecx 1273 subl %edi,%esi 1274 andl $4278124286,%ecx 1275 andl $454761243,%esi 1276 xorl %esi,%ecx 1277 movl $2155905152,%edi 1278 andl %ecx,%edi 1279 movl %edi,%esi 1280 shrl $7,%edi 1281 leal (%ecx,%ecx,1),%edx 1282 subl %edi,%esi 1283 andl $4278124286,%edx 1284 andl $454761243,%esi 1285 xorl %ebx,%ecx 1286 xorl %esi,%edx 1287 movl $2155905152,%edi 1288 andl %edx,%edi 1289 movl %edi,%esi 1290 shrl $7,%edi 1291 leal (%edx,%edx,1),%ebp 1292 subl %edi,%esi 1293 andl $4278124286,%ebp 1294 andl $454761243,%esi 1295 xorl %ebx,%edx 1296 roll $8,%ebx 1297 xorl %esi,%ebp 1298 xorl %ecx,%ebx 1299 xorl %ebp,%ecx 1300 xorl %edx,%ebx 1301 xorl %ebp,%edx 1302 roll $24,%ecx 1303 xorl %ebp,%ebx 1304 roll $16,%edx 1305 xorl %ecx,%ebx 1306 roll $8,%ebp 1307 xorl %edx,%ebx 1308 movl 12(%esp),%ecx 1309 xorl %ebp,%ebx 1310 movl 16(%esp),%edx 1311 movl 20(%esp),%edi 1312 movl 28(%esp),%ebp 1313 addl $16,%edi 1314 xorl (%edi),%eax 1315 xorl 4(%edi),%ebx 1316 xorl 8(%edi),%ecx 1317 xorl 12(%edi),%edx 1318 cmpl 24(%esp),%edi 1319 movl %edi,20(%esp) 1320 jb .L006loop 1321 movl %eax,%esi 1322 andl $255,%esi 1323 movzbl -128(%ebp,%esi,1),%esi 1324 movzbl %dh,%edi 1325 movzbl -128(%ebp,%edi,1),%edi 1326 shll $8,%edi 1327 xorl %edi,%esi 1328 movl %ecx,%edi 1329 shrl $16,%edi 1330 andl $255,%edi 1331 movzbl -128(%ebp,%edi,1),%edi 1332 shll $16,%edi 1333 xorl %edi,%esi 1334 movl %ebx,%edi 1335 shrl $24,%edi 1336 movzbl -128(%ebp,%edi,1),%edi 1337 shll $24,%edi 1338 xorl %edi,%esi 1339 movl %esi,4(%esp) 1340 movl %ebx,%esi 1341 andl $255,%esi 1342 movzbl -128(%ebp,%esi,1),%esi 1343 movzbl %ah,%edi 1344 movzbl -128(%ebp,%edi,1),%edi 1345 shll $8,%edi 1346 xorl %edi,%esi 1347 movl %edx,%edi 1348 shrl $16,%edi 1349 andl $255,%edi 1350 movzbl -128(%ebp,%edi,1),%edi 1351 shll $16,%edi 1352 xorl %edi,%esi 1353 movl %ecx,%edi 1354 shrl $24,%edi 1355 movzbl -128(%ebp,%edi,1),%edi 1356 shll $24,%edi 1357 xorl %edi,%esi 1358 movl %esi,8(%esp) 1359 movl %ecx,%esi 1360 andl $255,%esi 1361 movzbl -128(%ebp,%esi,1),%esi 1362 movzbl %bh,%edi 1363 movzbl -128(%ebp,%edi,1),%edi 1364 shll $8,%edi 1365 xorl %edi,%esi 1366 movl %eax,%edi 1367 shrl $16,%edi 1368 andl $255,%edi 1369 movzbl -128(%ebp,%edi,1),%edi 1370 shll $16,%edi 1371 xorl %edi,%esi 1372 movl %edx,%edi 1373 shrl $24,%edi 1374 movzbl -128(%ebp,%edi,1),%edi 1375 shll $24,%edi 1376 xorl %edi,%esi 1377 movl 20(%esp),%edi 1378 andl $255,%edx 1379 movzbl -128(%ebp,%edx,1),%edx 1380 movzbl %ch,%ecx 1381 movzbl -128(%ebp,%ecx,1),%ecx 1382 shll $8,%ecx 1383 xorl %ecx,%edx 1384 movl %esi,%ecx 1385 shrl $16,%ebx 1386 andl $255,%ebx 1387 movzbl -128(%ebp,%ebx,1),%ebx 1388 shll $16,%ebx 1389 xorl %ebx,%edx 1390 movl 8(%esp),%ebx 1391 shrl $24,%eax 1392 movzbl -128(%ebp,%eax,1),%eax 1393 shll $24,%eax 1394 xorl %eax,%edx 1395 movl 4(%esp),%eax 1396 xorl 16(%edi),%eax 1397 xorl 20(%edi),%ebx 1398 xorl 24(%edi),%ecx 1399 xorl 28(%edi),%edx 1400 ret 1401.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact 1402.type _sse_AES_decrypt_compact,@function 1403.align 16 1404_sse_AES_decrypt_compact: 1405 pxor (%edi),%mm0 1406 pxor 8(%edi),%mm4 1407 movl 240(%edi),%esi 1408 leal -2(%esi,%esi,1),%esi 1409 leal (%edi,%esi,8),%esi 1410 movl %esi,24(%esp) 1411 movl $454761243,%eax 1412 movl %eax,8(%esp) 1413 movl %eax,12(%esp) 1414 movl -128(%ebp),%eax 1415 movl -96(%ebp),%ebx 1416 movl -64(%ebp),%ecx 1417 movl -32(%ebp),%edx 1418 movl (%ebp),%eax 1419 movl 32(%ebp),%ebx 1420 movl 64(%ebp),%ecx 1421 movl 96(%ebp),%edx 1422.align 16 1423.L007loop: 1424 pshufw $12,%mm0,%mm1 1425 pshufw $9,%mm4,%mm5 1426 movd %mm1,%eax 1427 movd %mm5,%ebx 1428 movl %edi,20(%esp) 1429 movzbl %al,%esi 1430 movzbl %ah,%edx 1431 pshufw $6,%mm0,%mm2 1432 movzbl -128(%ebp,%esi,1),%ecx 1433 movzbl %bl,%edi 1434 movzbl -128(%ebp,%edx,1),%edx 1435 shrl $16,%eax 1436 shll $8,%edx 1437 movzbl -128(%ebp,%edi,1),%esi 1438 movzbl %bh,%edi 1439 shll $16,%esi 1440 pshufw $3,%mm4,%mm6 1441 orl %esi,%ecx 1442 movzbl -128(%ebp,%edi,1),%esi 1443 movzbl %ah,%edi 1444 shll $24,%esi 1445 shrl $16,%ebx 1446 orl %esi,%edx 1447 movzbl -128(%ebp,%edi,1),%esi 1448 movzbl %bh,%edi 1449 shll $24,%esi 1450 orl %esi,%ecx 1451 movzbl -128(%ebp,%edi,1),%esi 1452 movzbl %al,%edi 1453 shll $8,%esi 1454 movd %mm2,%eax 1455 orl %esi,%ecx 1456 movzbl -128(%ebp,%edi,1),%esi 1457 movzbl %bl,%edi 1458 shll $16,%esi 1459 movd %mm6,%ebx 1460 movd %ecx,%mm0 1461 movzbl -128(%ebp,%edi,1),%ecx 1462 movzbl %al,%edi 1463 orl %esi,%ecx 1464 movzbl -128(%ebp,%edi,1),%esi 1465 movzbl %bl,%edi 1466 orl %esi,%edx 1467 movzbl -128(%ebp,%edi,1),%esi 1468 movzbl %ah,%edi 1469 shll $16,%esi 1470 shrl $16,%eax 1471 orl %esi,%edx 1472 movzbl -128(%ebp,%edi,1),%esi 1473 movzbl %bh,%edi 1474 shrl $16,%ebx 1475 shll $8,%esi 1476 movd %edx,%mm1 1477 movzbl -128(%ebp,%edi,1),%edx 1478 movzbl %bh,%edi 1479 shll $24,%edx 1480 andl $255,%ebx 1481 orl %esi,%edx 1482 punpckldq %mm1,%mm0 1483 movzbl -128(%ebp,%edi,1),%esi 1484 movzbl %al,%edi 1485 shll $8,%esi 1486 movzbl %ah,%eax 1487 movzbl -128(%ebp,%ebx,1),%ebx 1488 orl %esi,%ecx 1489 movzbl -128(%ebp,%edi,1),%esi 1490 orl %ebx,%edx 1491 shll $16,%esi 1492 movzbl -128(%ebp,%eax,1),%eax 1493 orl %esi,%edx 1494 shll $24,%eax 1495 orl %eax,%ecx 1496 movl 20(%esp),%edi 1497 movd %edx,%mm4 1498 movd %ecx,%mm5 1499 punpckldq %mm5,%mm4 1500 addl $16,%edi 1501 cmpl 24(%esp),%edi 1502 ja .L008out 1503 movq %mm0,%mm3 1504 movq %mm4,%mm7 1505 pshufw $228,%mm0,%mm2 1506 pshufw $228,%mm4,%mm6 1507 movq %mm0,%mm1 1508 movq %mm4,%mm5 1509 pshufw $177,%mm0,%mm0 1510 pshufw $177,%mm4,%mm4 1511 pslld $8,%mm2 1512 pslld $8,%mm6 1513 psrld $8,%mm3 1514 psrld $8,%mm7 1515 pxor %mm2,%mm0 1516 pxor %mm6,%mm4 1517 pxor %mm3,%mm0 1518 pxor %mm7,%mm4 1519 pslld $16,%mm2 1520 pslld $16,%mm6 1521 psrld $16,%mm3 1522 psrld $16,%mm7 1523 pxor %mm2,%mm0 1524 pxor %mm6,%mm4 1525 pxor %mm3,%mm0 1526 pxor %mm7,%mm4 1527 movq 8(%esp),%mm3 1528 pxor %mm2,%mm2 1529 pxor %mm6,%mm6 1530 pcmpgtb %mm1,%mm2 1531 pcmpgtb %mm5,%mm6 1532 pand %mm3,%mm2 1533 pand %mm3,%mm6 1534 paddb %mm1,%mm1 1535 paddb %mm5,%mm5 1536 pxor %mm2,%mm1 1537 pxor %mm6,%mm5 1538 movq %mm1,%mm3 1539 movq %mm5,%mm7 1540 movq %mm1,%mm2 1541 movq %mm5,%mm6 1542 pxor %mm1,%mm0 1543 pxor %mm5,%mm4 1544 pslld $24,%mm3 1545 pslld $24,%mm7 1546 psrld $8,%mm2 1547 psrld $8,%mm6 1548 pxor %mm3,%mm0 1549 pxor %mm7,%mm4 1550 pxor %mm2,%mm0 1551 pxor %mm6,%mm4 1552 movq 8(%esp),%mm2 1553 pxor %mm3,%mm3 1554 pxor %mm7,%mm7 1555 pcmpgtb %mm1,%mm3 1556 pcmpgtb %mm5,%mm7 1557 pand %mm2,%mm3 1558 pand %mm2,%mm7 1559 paddb %mm1,%mm1 1560 paddb %mm5,%mm5 1561 pxor %mm3,%mm1 1562 pxor %mm7,%mm5 1563 pshufw $177,%mm1,%mm3 1564 pshufw $177,%mm5,%mm7 1565 pxor %mm1,%mm0 1566 pxor %mm5,%mm4 1567 pxor %mm3,%mm0 1568 pxor %mm7,%mm4 1569 pxor %mm3,%mm3 1570 pxor %mm7,%mm7 1571 pcmpgtb %mm1,%mm3 1572 pcmpgtb %mm5,%mm7 1573 pand %mm2,%mm3 1574 pand %mm2,%mm7 1575 paddb %mm1,%mm1 1576 paddb %mm5,%mm5 1577 pxor %mm3,%mm1 1578 pxor %mm7,%mm5 1579 pxor %mm1,%mm0 1580 pxor %mm5,%mm4 1581 movq %mm1,%mm3 1582 movq %mm5,%mm7 1583 pshufw $177,%mm1,%mm2 1584 pshufw $177,%mm5,%mm6 1585 pxor %mm2,%mm0 1586 pxor %mm6,%mm4 1587 pslld $8,%mm1 1588 pslld $8,%mm5 1589 psrld $8,%mm3 1590 psrld $8,%mm7 1591 movq (%edi),%mm2 1592 movq 8(%edi),%mm6 1593 pxor %mm1,%mm0 1594 pxor %mm5,%mm4 1595 pxor %mm3,%mm0 1596 pxor %mm7,%mm4 1597 movl -128(%ebp),%eax 1598 pslld $16,%mm1 1599 pslld $16,%mm5 1600 movl -64(%ebp),%ebx 1601 psrld $16,%mm3 1602 psrld $16,%mm7 1603 movl (%ebp),%ecx 1604 pxor %mm1,%mm0 1605 pxor %mm5,%mm4 1606 movl 64(%ebp),%edx 1607 pxor %mm3,%mm0 1608 pxor %mm7,%mm4 1609 pxor %mm2,%mm0 1610 pxor %mm6,%mm4 1611 jmp .L007loop 1612.align 16 1613.L008out: 1614 pxor (%edi),%mm0 1615 pxor 8(%edi),%mm4 1616 ret 1617.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact 1618.type _x86_AES_decrypt,@function 1619.align 16 1620_x86_AES_decrypt: 1621 movl %edi,20(%esp) 1622 xorl (%edi),%eax 1623 xorl 4(%edi),%ebx 1624 xorl 8(%edi),%ecx 1625 xorl 12(%edi),%edx 1626 movl 240(%edi),%esi 1627 leal -2(%esi,%esi,1),%esi 1628 leal (%edi,%esi,8),%esi 1629 movl %esi,24(%esp) 1630.align 16 1631.L009loop: 1632 movl %eax,%esi 1633 andl $255,%esi 1634 movl (%ebp,%esi,8),%esi 1635 movzbl %dh,%edi 1636 xorl 3(%ebp,%edi,8),%esi 1637 movl %ecx,%edi 1638 shrl $16,%edi 1639 andl $255,%edi 1640 xorl 2(%ebp,%edi,8),%esi 1641 movl %ebx,%edi 1642 shrl $24,%edi 1643 xorl 1(%ebp,%edi,8),%esi 1644 movl %esi,4(%esp) 1645 1646 movl %ebx,%esi 1647 andl $255,%esi 1648 movl (%ebp,%esi,8),%esi 1649 movzbl %ah,%edi 1650 xorl 3(%ebp,%edi,8),%esi 1651 movl %edx,%edi 1652 shrl $16,%edi 1653 andl $255,%edi 1654 xorl 2(%ebp,%edi,8),%esi 1655 movl %ecx,%edi 1656 shrl $24,%edi 1657 xorl 1(%ebp,%edi,8),%esi 1658 movl %esi,8(%esp) 1659 1660 movl %ecx,%esi 1661 andl $255,%esi 1662 movl (%ebp,%esi,8),%esi 1663 movzbl %bh,%edi 1664 xorl 3(%ebp,%edi,8),%esi 1665 movl %eax,%edi 1666 shrl $16,%edi 1667 andl $255,%edi 1668 xorl 2(%ebp,%edi,8),%esi 1669 movl %edx,%edi 1670 shrl $24,%edi 1671 xorl 1(%ebp,%edi,8),%esi 1672 1673 movl 20(%esp),%edi 1674 andl $255,%edx 1675 movl (%ebp,%edx,8),%edx 1676 movzbl %ch,%ecx 1677 xorl 3(%ebp,%ecx,8),%edx 1678 movl %esi,%ecx 1679 shrl $16,%ebx 1680 andl $255,%ebx 1681 xorl 2(%ebp,%ebx,8),%edx 1682 movl 8(%esp),%ebx 1683 shrl $24,%eax 1684 xorl 1(%ebp,%eax,8),%edx 1685 movl 4(%esp),%eax 1686 1687 addl $16,%edi 1688 xorl (%edi),%eax 1689 xorl 4(%edi),%ebx 1690 xorl 8(%edi),%ecx 1691 xorl 12(%edi),%edx 1692 cmpl 24(%esp),%edi 1693 movl %edi,20(%esp) 1694 jb .L009loop 1695 leal 2176(%ebp),%ebp 1696 movl -128(%ebp),%edi 1697 movl -96(%ebp),%esi 1698 movl -64(%ebp),%edi 1699 movl -32(%ebp),%esi 1700 movl (%ebp),%edi 1701 movl 32(%ebp),%esi 1702 movl 64(%ebp),%edi 1703 movl 96(%ebp),%esi 1704 leal -128(%ebp),%ebp 1705 movl %eax,%esi 1706 andl $255,%esi 1707 movzbl (%ebp,%esi,1),%esi 1708 movzbl %dh,%edi 1709 movzbl (%ebp,%edi,1),%edi 1710 shll $8,%edi 1711 xorl %edi,%esi 1712 movl %ecx,%edi 1713 shrl $16,%edi 1714 andl $255,%edi 1715 movzbl (%ebp,%edi,1),%edi 1716 shll $16,%edi 1717 xorl %edi,%esi 1718 movl %ebx,%edi 1719 shrl $24,%edi 1720 movzbl (%ebp,%edi,1),%edi 1721 shll $24,%edi 1722 xorl %edi,%esi 1723 movl %esi,4(%esp) 1724 movl %ebx,%esi 1725 andl $255,%esi 1726 movzbl (%ebp,%esi,1),%esi 1727 movzbl %ah,%edi 1728 movzbl (%ebp,%edi,1),%edi 1729 shll $8,%edi 1730 xorl %edi,%esi 1731 movl %edx,%edi 1732 shrl $16,%edi 1733 andl $255,%edi 1734 movzbl (%ebp,%edi,1),%edi 1735 shll $16,%edi 1736 xorl %edi,%esi 1737 movl %ecx,%edi 1738 shrl $24,%edi 1739 movzbl (%ebp,%edi,1),%edi 1740 shll $24,%edi 1741 xorl %edi,%esi 1742 movl %esi,8(%esp) 1743 movl %ecx,%esi 1744 andl $255,%esi 1745 movzbl (%ebp,%esi,1),%esi 1746 movzbl %bh,%edi 1747 movzbl (%ebp,%edi,1),%edi 1748 shll $8,%edi 1749 xorl %edi,%esi 1750 movl %eax,%edi 1751 shrl $16,%edi 1752 andl $255,%edi 1753 movzbl (%ebp,%edi,1),%edi 1754 shll $16,%edi 1755 xorl %edi,%esi 1756 movl %edx,%edi 1757 shrl $24,%edi 1758 movzbl (%ebp,%edi,1),%edi 1759 shll $24,%edi 1760 xorl %edi,%esi 1761 movl 20(%esp),%edi 1762 andl $255,%edx 1763 movzbl (%ebp,%edx,1),%edx 1764 movzbl %ch,%ecx 1765 movzbl (%ebp,%ecx,1),%ecx 1766 shll $8,%ecx 1767 xorl %ecx,%edx 1768 movl %esi,%ecx 1769 shrl $16,%ebx 1770 andl $255,%ebx 1771 movzbl (%ebp,%ebx,1),%ebx 1772 shll $16,%ebx 1773 xorl %ebx,%edx 1774 movl 8(%esp),%ebx 1775 shrl $24,%eax 1776 movzbl (%ebp,%eax,1),%eax 1777 shll $24,%eax 1778 xorl %eax,%edx 1779 movl 4(%esp),%eax 1780 leal -2048(%ebp),%ebp 1781 addl $16,%edi 1782 xorl (%edi),%eax 1783 xorl 4(%edi),%ebx 1784 xorl 8(%edi),%ecx 1785 xorl 12(%edi),%edx 1786 ret 1787.align 64 1788.LAES_Td: 1789.long 1353184337,1353184337 1790.long 1399144830,1399144830 1791.long 3282310938,3282310938 1792.long 2522752826,2522752826 1793.long 3412831035,3412831035 1794.long 4047871263,4047871263 1795.long 2874735276,2874735276 1796.long 2466505547,2466505547 1797.long 1442459680,1442459680 1798.long 4134368941,4134368941 1799.long 2440481928,2440481928 1800.long 625738485,625738485 1801.long 4242007375,4242007375 1802.long 3620416197,3620416197 1803.long 2151953702,2151953702 1804.long 2409849525,2409849525 1805.long 1230680542,1230680542 1806.long 1729870373,1729870373 1807.long 2551114309,2551114309 1808.long 3787521629,3787521629 1809.long 41234371,41234371 1810.long 317738113,317738113 1811.long 2744600205,2744600205 1812.long 3338261355,3338261355 1813.long 3881799427,3881799427 1814.long 2510066197,2510066197 1815.long 3950669247,3950669247 1816.long 3663286933,3663286933 1817.long 763608788,763608788 1818.long 3542185048,3542185048 1819.long 694804553,694804553 1820.long 1154009486,1154009486 1821.long 1787413109,1787413109 1822.long 2021232372,2021232372 1823.long 1799248025,1799248025 1824.long 3715217703,3715217703 1825.long 3058688446,3058688446 1826.long 397248752,397248752 1827.long 1722556617,1722556617 1828.long 3023752829,3023752829 1829.long 407560035,407560035 1830.long 2184256229,2184256229 1831.long 1613975959,1613975959 1832.long 1165972322,1165972322 1833.long 3765920945,3765920945 1834.long 2226023355,2226023355 1835.long 480281086,480281086 1836.long 2485848313,2485848313 1837.long 1483229296,1483229296 1838.long 436028815,436028815 1839.long 2272059028,2272059028 1840.long 3086515026,3086515026 1841.long 601060267,601060267 1842.long 3791801202,3791801202 1843.long 1468997603,1468997603 1844.long 715871590,715871590 1845.long 120122290,120122290 1846.long 63092015,63092015 1847.long 2591802758,2591802758 1848.long 2768779219,2768779219 1849.long 4068943920,4068943920 1850.long 2997206819,2997206819 1851.long 3127509762,3127509762 1852.long 1552029421,1552029421 1853.long 723308426,723308426 1854.long 2461301159,2461301159 1855.long 4042393587,4042393587 1856.long 2715969870,2715969870 1857.long 3455375973,3455375973 1858.long 3586000134,3586000134 1859.long 526529745,526529745 1860.long 2331944644,2331944644 1861.long 2639474228,2639474228 1862.long 2689987490,2689987490 1863.long 853641733,853641733 1864.long 1978398372,1978398372 1865.long 971801355,971801355 1866.long 2867814464,2867814464 1867.long 111112542,111112542 1868.long 1360031421,1360031421 1869.long 4186579262,4186579262 1870.long 1023860118,1023860118 1871.long 2919579357,2919579357 1872.long 1186850381,1186850381 1873.long 3045938321,3045938321 1874.long 90031217,90031217 1875.long 1876166148,1876166148 1876.long 4279586912,4279586912 1877.long 620468249,620468249 1878.long 2548678102,2548678102 1879.long 3426959497,3426959497 1880.long 2006899047,2006899047 1881.long 3175278768,3175278768 1882.long 2290845959,2290845959 1883.long 945494503,945494503 1884.long 3689859193,3689859193 1885.long 1191869601,1191869601 1886.long 3910091388,3910091388 1887.long 3374220536,3374220536 1888.long 0,0 1889.long 2206629897,2206629897 1890.long 1223502642,1223502642 1891.long 2893025566,2893025566 1892.long 1316117100,1316117100 1893.long 4227796733,4227796733 1894.long 1446544655,1446544655 1895.long 517320253,517320253 1896.long 658058550,658058550 1897.long 1691946762,1691946762 1898.long 564550760,564550760 1899.long 3511966619,3511966619 1900.long 976107044,976107044 1901.long 2976320012,2976320012 1902.long 266819475,266819475 1903.long 3533106868,3533106868 1904.long 2660342555,2660342555 1905.long 1338359936,1338359936 1906.long 2720062561,2720062561 1907.long 1766553434,1766553434 1908.long 370807324,370807324 1909.long 179999714,179999714 1910.long 3844776128,3844776128 1911.long 1138762300,1138762300 1912.long 488053522,488053522 1913.long 185403662,185403662 1914.long 2915535858,2915535858 1915.long 3114841645,3114841645 1916.long 3366526484,3366526484 1917.long 2233069911,2233069911 1918.long 1275557295,1275557295 1919.long 3151862254,3151862254 1920.long 4250959779,4250959779 1921.long 2670068215,2670068215 1922.long 3170202204,3170202204 1923.long 3309004356,3309004356 1924.long 880737115,880737115 1925.long 1982415755,1982415755 1926.long 3703972811,3703972811 1927.long 1761406390,1761406390 1928.long 1676797112,1676797112 1929.long 3403428311,3403428311 1930.long 277177154,277177154 1931.long 1076008723,1076008723 1932.long 538035844,538035844 1933.long 2099530373,2099530373 1934.long 4164795346,4164795346 1935.long 288553390,288553390 1936.long 1839278535,1839278535 1937.long 1261411869,1261411869 1938.long 4080055004,4080055004 1939.long 3964831245,3964831245 1940.long 3504587127,3504587127 1941.long 1813426987,1813426987 1942.long 2579067049,2579067049 1943.long 4199060497,4199060497 1944.long 577038663,577038663 1945.long 3297574056,3297574056 1946.long 440397984,440397984 1947.long 3626794326,3626794326 1948.long 4019204898,4019204898 1949.long 3343796615,3343796615 1950.long 3251714265,3251714265 1951.long 4272081548,4272081548 1952.long 906744984,906744984 1953.long 3481400742,3481400742 1954.long 685669029,685669029 1955.long 646887386,646887386 1956.long 2764025151,2764025151 1957.long 3835509292,3835509292 1958.long 227702864,227702864 1959.long 2613862250,2613862250 1960.long 1648787028,1648787028 1961.long 3256061430,3256061430 1962.long 3904428176,3904428176 1963.long 1593260334,1593260334 1964.long 4121936770,4121936770 1965.long 3196083615,3196083615 1966.long 2090061929,2090061929 1967.long 2838353263,2838353263 1968.long 3004310991,3004310991 1969.long 999926984,999926984 1970.long 2809993232,2809993232 1971.long 1852021992,1852021992 1972.long 2075868123,2075868123 1973.long 158869197,158869197 1974.long 4095236462,4095236462 1975.long 28809964,28809964 1976.long 2828685187,2828685187 1977.long 1701746150,1701746150 1978.long 2129067946,2129067946 1979.long 147831841,147831841 1980.long 3873969647,3873969647 1981.long 3650873274,3650873274 1982.long 3459673930,3459673930 1983.long 3557400554,3557400554 1984.long 3598495785,3598495785 1985.long 2947720241,2947720241 1986.long 824393514,824393514 1987.long 815048134,815048134 1988.long 3227951669,3227951669 1989.long 935087732,935087732 1990.long 2798289660,2798289660 1991.long 2966458592,2966458592 1992.long 366520115,366520115 1993.long 1251476721,1251476721 1994.long 4158319681,4158319681 1995.long 240176511,240176511 1996.long 804688151,804688151 1997.long 2379631990,2379631990 1998.long 1303441219,1303441219 1999.long 1414376140,1414376140 2000.long 3741619940,3741619940 2001.long 3820343710,3820343710 2002.long 461924940,461924940 2003.long 3089050817,3089050817 2004.long 2136040774,2136040774 2005.long 82468509,82468509 2006.long 1563790337,1563790337 2007.long 1937016826,1937016826 2008.long 776014843,776014843 2009.long 1511876531,1511876531 2010.long 1389550482,1389550482 2011.long 861278441,861278441 2012.long 323475053,323475053 2013.long 2355222426,2355222426 2014.long 2047648055,2047648055 2015.long 2383738969,2383738969 2016.long 2302415851,2302415851 2017.long 3995576782,3995576782 2018.long 902390199,902390199 2019.long 3991215329,3991215329 2020.long 1018251130,1018251130 2021.long 1507840668,1507840668 2022.long 1064563285,1064563285 2023.long 2043548696,2043548696 2024.long 3208103795,3208103795 2025.long 3939366739,3939366739 2026.long 1537932639,1537932639 2027.long 342834655,342834655 2028.long 2262516856,2262516856 2029.long 2180231114,2180231114 2030.long 1053059257,1053059257 2031.long 741614648,741614648 2032.long 1598071746,1598071746 2033.long 1925389590,1925389590 2034.long 203809468,203809468 2035.long 2336832552,2336832552 2036.long 1100287487,1100287487 2037.long 1895934009,1895934009 2038.long 3736275976,3736275976 2039.long 2632234200,2632234200 2040.long 2428589668,2428589668 2041.long 1636092795,1636092795 2042.long 1890988757,1890988757 2043.long 1952214088,1952214088 2044.long 1113045200,1113045200 2045.byte 82,9,106,213,48,54,165,56 2046.byte 191,64,163,158,129,243,215,251 2047.byte 124,227,57,130,155,47,255,135 2048.byte 52,142,67,68,196,222,233,203 2049.byte 84,123,148,50,166,194,35,61 2050.byte 238,76,149,11,66,250,195,78 2051.byte 8,46,161,102,40,217,36,178 2052.byte 118,91,162,73,109,139,209,37 2053.byte 114,248,246,100,134,104,152,22 2054.byte 212,164,92,204,93,101,182,146 2055.byte 108,112,72,80,253,237,185,218 2056.byte 94,21,70,87,167,141,157,132 2057.byte 144,216,171,0,140,188,211,10 2058.byte 247,228,88,5,184,179,69,6 2059.byte 208,44,30,143,202,63,15,2 2060.byte 193,175,189,3,1,19,138,107 2061.byte 58,145,17,65,79,103,220,234 2062.byte 151,242,207,206,240,180,230,115 2063.byte 150,172,116,34,231,173,53,133 2064.byte 226,249,55,232,28,117,223,110 2065.byte 71,241,26,113,29,41,197,137 2066.byte 111,183,98,14,170,24,190,27 2067.byte 252,86,62,75,198,210,121,32 2068.byte 154,219,192,254,120,205,90,244 2069.byte 31,221,168,51,136,7,199,49 2070.byte 177,18,16,89,39,128,236,95 2071.byte 96,81,127,169,25,181,74,13 2072.byte 45,229,122,159,147,201,156,239 2073.byte 160,224,59,77,174,42,245,176 2074.byte 200,235,187,60,131,83,153,97 2075.byte 23,43,4,126,186,119,214,38 2076.byte 225,105,20,99,85,33,12,125 2077.byte 82,9,106,213,48,54,165,56 2078.byte 191,64,163,158,129,243,215,251 2079.byte 124,227,57,130,155,47,255,135 2080.byte 52,142,67,68,196,222,233,203 2081.byte 84,123,148,50,166,194,35,61 2082.byte 238,76,149,11,66,250,195,78 2083.byte 8,46,161,102,40,217,36,178 2084.byte 118,91,162,73,109,139,209,37 2085.byte 114,248,246,100,134,104,152,22 2086.byte 212,164,92,204,93,101,182,146 2087.byte 108,112,72,80,253,237,185,218 2088.byte 94,21,70,87,167,141,157,132 2089.byte 144,216,171,0,140,188,211,10 2090.byte 247,228,88,5,184,179,69,6 2091.byte 208,44,30,143,202,63,15,2 2092.byte 193,175,189,3,1,19,138,107 2093.byte 58,145,17,65,79,103,220,234 2094.byte 151,242,207,206,240,180,230,115 2095.byte 150,172,116,34,231,173,53,133 2096.byte 226,249,55,232,28,117,223,110 2097.byte 71,241,26,113,29,41,197,137 2098.byte 111,183,98,14,170,24,190,27 2099.byte 252,86,62,75,198,210,121,32 2100.byte 154,219,192,254,120,205,90,244 2101.byte 31,221,168,51,136,7,199,49 2102.byte 177,18,16,89,39,128,236,95 2103.byte 96,81,127,169,25,181,74,13 2104.byte 45,229,122,159,147,201,156,239 2105.byte 160,224,59,77,174,42,245,176 2106.byte 200,235,187,60,131,83,153,97 2107.byte 23,43,4,126,186,119,214,38 2108.byte 225,105,20,99,85,33,12,125 2109.byte 82,9,106,213,48,54,165,56 2110.byte 191,64,163,158,129,243,215,251 2111.byte 124,227,57,130,155,47,255,135 2112.byte 52,142,67,68,196,222,233,203 2113.byte 84,123,148,50,166,194,35,61 2114.byte 238,76,149,11,66,250,195,78 2115.byte 8,46,161,102,40,217,36,178 2116.byte 118,91,162,73,109,139,209,37 2117.byte 114,248,246,100,134,104,152,22 2118.byte 212,164,92,204,93,101,182,146 2119.byte 108,112,72,80,253,237,185,218 2120.byte 94,21,70,87,167,141,157,132 2121.byte 144,216,171,0,140,188,211,10 2122.byte 247,228,88,5,184,179,69,6 2123.byte 208,44,30,143,202,63,15,2 2124.byte 193,175,189,3,1,19,138,107 2125.byte 58,145,17,65,79,103,220,234 2126.byte 151,242,207,206,240,180,230,115 2127.byte 150,172,116,34,231,173,53,133 2128.byte 226,249,55,232,28,117,223,110 2129.byte 71,241,26,113,29,41,197,137 2130.byte 111,183,98,14,170,24,190,27 2131.byte 252,86,62,75,198,210,121,32 2132.byte 154,219,192,254,120,205,90,244 2133.byte 31,221,168,51,136,7,199,49 2134.byte 177,18,16,89,39,128,236,95 2135.byte 96,81,127,169,25,181,74,13 2136.byte 45,229,122,159,147,201,156,239 2137.byte 160,224,59,77,174,42,245,176 2138.byte 200,235,187,60,131,83,153,97 2139.byte 23,43,4,126,186,119,214,38 2140.byte 225,105,20,99,85,33,12,125 2141.byte 82,9,106,213,48,54,165,56 2142.byte 191,64,163,158,129,243,215,251 2143.byte 124,227,57,130,155,47,255,135 2144.byte 52,142,67,68,196,222,233,203 2145.byte 84,123,148,50,166,194,35,61 2146.byte 238,76,149,11,66,250,195,78 2147.byte 8,46,161,102,40,217,36,178 2148.byte 118,91,162,73,109,139,209,37 2149.byte 114,248,246,100,134,104,152,22 2150.byte 212,164,92,204,93,101,182,146 2151.byte 108,112,72,80,253,237,185,218 2152.byte 94,21,70,87,167,141,157,132 2153.byte 144,216,171,0,140,188,211,10 2154.byte 247,228,88,5,184,179,69,6 2155.byte 208,44,30,143,202,63,15,2 2156.byte 193,175,189,3,1,19,138,107 2157.byte 58,145,17,65,79,103,220,234 2158.byte 151,242,207,206,240,180,230,115 2159.byte 150,172,116,34,231,173,53,133 2160.byte 226,249,55,232,28,117,223,110 2161.byte 71,241,26,113,29,41,197,137 2162.byte 111,183,98,14,170,24,190,27 2163.byte 252,86,62,75,198,210,121,32 2164.byte 154,219,192,254,120,205,90,244 2165.byte 31,221,168,51,136,7,199,49 2166.byte 177,18,16,89,39,128,236,95 2167.byte 96,81,127,169,25,181,74,13 2168.byte 45,229,122,159,147,201,156,239 2169.byte 160,224,59,77,174,42,245,176 2170.byte 200,235,187,60,131,83,153,97 2171.byte 23,43,4,126,186,119,214,38 2172.byte 225,105,20,99,85,33,12,125 2173.size _x86_AES_decrypt,.-_x86_AES_decrypt 2174.globl AES_decrypt 2175.type AES_decrypt,@function 2176.align 16 2177AES_decrypt: 2178.L_AES_decrypt_begin: 2179 pushl %ebp 2180 pushl %ebx 2181 pushl %esi 2182 pushl %edi 2183 movl 20(%esp),%esi 2184 movl 28(%esp),%edi 2185 movl %esp,%eax 2186 subl $36,%esp 2187 andl $-64,%esp 2188 leal -127(%edi),%ebx 2189 subl %esp,%ebx 2190 negl %ebx 2191 andl $960,%ebx 2192 subl %ebx,%esp 2193 addl $4,%esp 2194 movl %eax,28(%esp) 2195 call .L010pic_point 2196.L010pic_point: 2197 popl %ebp 2198 leal OPENSSL_ia32cap_P-.L010pic_point(%ebp),%eax 2199 leal .LAES_Td-.L010pic_point(%ebp),%ebp 2200 leal 764(%esp),%ebx 2201 subl %ebp,%ebx 2202 andl $768,%ebx 2203 leal 2176(%ebp,%ebx,1),%ebp 2204 btl $25,(%eax) 2205 jnc .L011x86 2206 movq (%esi),%mm0 2207 movq 8(%esi),%mm4 2208 call _sse_AES_decrypt_compact 2209 movl 28(%esp),%esp 2210 movl 24(%esp),%esi 2211 movq %mm0,(%esi) 2212 movq %mm4,8(%esi) 2213 emms 2214 popl %edi 2215 popl %esi 2216 popl %ebx 2217 popl %ebp 2218 ret 2219.align 16 2220.L011x86: 2221 movl %ebp,24(%esp) 2222 movl (%esi),%eax 2223 movl 4(%esi),%ebx 2224 movl 8(%esi),%ecx 2225 movl 12(%esi),%edx 2226 call _x86_AES_decrypt_compact 2227 movl 28(%esp),%esp 2228 movl 24(%esp),%esi 2229 movl %eax,(%esi) 2230 movl %ebx,4(%esi) 2231 movl %ecx,8(%esi) 2232 movl %edx,12(%esi) 2233 popl %edi 2234 popl %esi 2235 popl %ebx 2236 popl %ebp 2237 ret 2238.size AES_decrypt,.-.L_AES_decrypt_begin 2239.globl AES_cbc_encrypt 2240.type AES_cbc_encrypt,@function 2241.align 16 2242AES_cbc_encrypt: 2243.L_AES_cbc_encrypt_begin: 2244 pushl %ebp 2245 pushl %ebx 2246 pushl %esi 2247 pushl %edi 2248 movl 28(%esp),%ecx 2249 cmpl $0,%ecx 2250 je .L012drop_out 2251 call .L013pic_point 2252.L013pic_point: 2253 popl %ebp 2254 leal OPENSSL_ia32cap_P-.L013pic_point(%ebp),%eax 2255 cmpl $0,40(%esp) 2256 leal .LAES_Te-.L013pic_point(%ebp),%ebp 2257 jne .L014picked_te 2258 leal .LAES_Td-.LAES_Te(%ebp),%ebp 2259.L014picked_te: 2260 pushfl 2261 cld 2262 cmpl $512,%ecx 2263 jb .L015slow_way 2264 testl $15,%ecx 2265 jnz .L015slow_way 2266 btl $28,(%eax) 2267 jc .L015slow_way 2268 leal -324(%esp),%esi 2269 andl $-64,%esi 2270 movl %ebp,%eax 2271 leal 2304(%ebp),%ebx 2272 movl %esi,%edx 2273 andl $4095,%eax 2274 andl $4095,%ebx 2275 andl $4095,%edx 2276 cmpl %ebx,%edx 2277 jb .L016tbl_break_out 2278 subl %ebx,%edx 2279 subl %edx,%esi 2280 jmp .L017tbl_ok 2281.align 4 2282.L016tbl_break_out: 2283 subl %eax,%edx 2284 andl $4095,%edx 2285 addl $384,%edx 2286 subl %edx,%esi 2287.align 4 2288.L017tbl_ok: 2289 leal 24(%esp),%edx 2290 xchgl %esi,%esp 2291 addl $4,%esp 2292 movl %ebp,24(%esp) 2293 movl %esi,28(%esp) 2294 movl (%edx),%eax 2295 movl 4(%edx),%ebx 2296 movl 12(%edx),%edi 2297 movl 16(%edx),%esi 2298 movl 20(%edx),%edx 2299 movl %eax,32(%esp) 2300 movl %ebx,36(%esp) 2301 movl %ecx,40(%esp) 2302 movl %edi,44(%esp) 2303 movl %esi,48(%esp) 2304 movl $0,316(%esp) 2305 movl %edi,%ebx 2306 movl $61,%ecx 2307 subl %ebp,%ebx 2308 movl %edi,%esi 2309 andl $4095,%ebx 2310 leal 76(%esp),%edi 2311 cmpl $2304,%ebx 2312 jb .L018do_copy 2313 cmpl $3852,%ebx 2314 jb .L019skip_copy 2315.align 4 2316.L018do_copy: 2317 movl %edi,44(%esp) 2318.long 2784229001 2319.L019skip_copy: 2320 movl $16,%edi 2321.align 4 2322.L020prefetch_tbl: 2323 movl (%ebp),%eax 2324 movl 32(%ebp),%ebx 2325 movl 64(%ebp),%ecx 2326 movl 96(%ebp),%esi 2327 leal 128(%ebp),%ebp 2328 subl $1,%edi 2329 jnz .L020prefetch_tbl 2330 subl $2048,%ebp 2331 movl 32(%esp),%esi 2332 movl 48(%esp),%edi 2333 cmpl $0,%edx 2334 je .L021fast_decrypt 2335 movl (%edi),%eax 2336 movl 4(%edi),%ebx 2337.align 16 2338.L022fast_enc_loop: 2339 movl 8(%edi),%ecx 2340 movl 12(%edi),%edx 2341 xorl (%esi),%eax 2342 xorl 4(%esi),%ebx 2343 xorl 8(%esi),%ecx 2344 xorl 12(%esi),%edx 2345 movl 44(%esp),%edi 2346 call _x86_AES_encrypt 2347 movl 32(%esp),%esi 2348 movl 36(%esp),%edi 2349 movl %eax,(%edi) 2350 movl %ebx,4(%edi) 2351 movl %ecx,8(%edi) 2352 movl %edx,12(%edi) 2353 leal 16(%esi),%esi 2354 movl 40(%esp),%ecx 2355 movl %esi,32(%esp) 2356 leal 16(%edi),%edx 2357 movl %edx,36(%esp) 2358 subl $16,%ecx 2359 movl %ecx,40(%esp) 2360 jnz .L022fast_enc_loop 2361 movl 48(%esp),%esi 2362 movl 8(%edi),%ecx 2363 movl 12(%edi),%edx 2364 movl %eax,(%esi) 2365 movl %ebx,4(%esi) 2366 movl %ecx,8(%esi) 2367 movl %edx,12(%esi) 2368 cmpl $0,316(%esp) 2369 movl 44(%esp),%edi 2370 je .L023skip_ezero 2371 movl $60,%ecx 2372 xorl %eax,%eax 2373.align 4 2374.long 2884892297 2375.L023skip_ezero: 2376 movl 28(%esp),%esp 2377 popfl 2378.L012drop_out: 2379 popl %edi 2380 popl %esi 2381 popl %ebx 2382 popl %ebp 2383 ret 2384 pushfl 2385.align 16 2386.L021fast_decrypt: 2387 cmpl 36(%esp),%esi 2388 je .L024fast_dec_in_place 2389 movl %edi,52(%esp) 2390.align 4 2391.align 16 2392.L025fast_dec_loop: 2393 movl (%esi),%eax 2394 movl 4(%esi),%ebx 2395 movl 8(%esi),%ecx 2396 movl 12(%esi),%edx 2397 movl 44(%esp),%edi 2398 call _x86_AES_decrypt 2399 movl 52(%esp),%edi 2400 movl 40(%esp),%esi 2401 xorl (%edi),%eax 2402 xorl 4(%edi),%ebx 2403 xorl 8(%edi),%ecx 2404 xorl 12(%edi),%edx 2405 movl 36(%esp),%edi 2406 movl 32(%esp),%esi 2407 movl %eax,(%edi) 2408 movl %ebx,4(%edi) 2409 movl %ecx,8(%edi) 2410 movl %edx,12(%edi) 2411 movl 40(%esp),%ecx 2412 movl %esi,52(%esp) 2413 leal 16(%esi),%esi 2414 movl %esi,32(%esp) 2415 leal 16(%edi),%edi 2416 movl %edi,36(%esp) 2417 subl $16,%ecx 2418 movl %ecx,40(%esp) 2419 jnz .L025fast_dec_loop 2420 movl 52(%esp),%edi 2421 movl 48(%esp),%esi 2422 movl (%edi),%eax 2423 movl 4(%edi),%ebx 2424 movl 8(%edi),%ecx 2425 movl 12(%edi),%edx 2426 movl %eax,(%esi) 2427 movl %ebx,4(%esi) 2428 movl %ecx,8(%esi) 2429 movl %edx,12(%esi) 2430 jmp .L026fast_dec_out 2431.align 16 2432.L024fast_dec_in_place: 2433.L027fast_dec_in_place_loop: 2434 movl (%esi),%eax 2435 movl 4(%esi),%ebx 2436 movl 8(%esi),%ecx 2437 movl 12(%esi),%edx 2438 leal 60(%esp),%edi 2439 movl %eax,(%edi) 2440 movl %ebx,4(%edi) 2441 movl %ecx,8(%edi) 2442 movl %edx,12(%edi) 2443 movl 44(%esp),%edi 2444 call _x86_AES_decrypt 2445 movl 48(%esp),%edi 2446 movl 36(%esp),%esi 2447 xorl (%edi),%eax 2448 xorl 4(%edi),%ebx 2449 xorl 8(%edi),%ecx 2450 xorl 12(%edi),%edx 2451 movl %eax,(%esi) 2452 movl %ebx,4(%esi) 2453 movl %ecx,8(%esi) 2454 movl %edx,12(%esi) 2455 leal 16(%esi),%esi 2456 movl %esi,36(%esp) 2457 leal 60(%esp),%esi 2458 movl (%esi),%eax 2459 movl 4(%esi),%ebx 2460 movl 8(%esi),%ecx 2461 movl 12(%esi),%edx 2462 movl %eax,(%edi) 2463 movl %ebx,4(%edi) 2464 movl %ecx,8(%edi) 2465 movl %edx,12(%edi) 2466 movl 32(%esp),%esi 2467 movl 40(%esp),%ecx 2468 leal 16(%esi),%esi 2469 movl %esi,32(%esp) 2470 subl $16,%ecx 2471 movl %ecx,40(%esp) 2472 jnz .L027fast_dec_in_place_loop 2473.align 4 2474.L026fast_dec_out: 2475 cmpl $0,316(%esp) 2476 movl 44(%esp),%edi 2477 je .L028skip_dzero 2478 movl $60,%ecx 2479 xorl %eax,%eax 2480.align 4 2481.long 2884892297 2482.L028skip_dzero: 2483 movl 28(%esp),%esp 2484 popfl 2485 popl %edi 2486 popl %esi 2487 popl %ebx 2488 popl %ebp 2489 ret 2490 pushfl 2491.align 16 2492.L015slow_way: 2493 movl (%eax),%eax 2494 movl 36(%esp),%edi 2495 leal -80(%esp),%esi 2496 andl $-64,%esi 2497 leal -143(%edi),%ebx 2498 subl %esi,%ebx 2499 negl %ebx 2500 andl $960,%ebx 2501 subl %ebx,%esi 2502 leal 768(%esi),%ebx 2503 subl %ebp,%ebx 2504 andl $768,%ebx 2505 leal 2176(%ebp,%ebx,1),%ebp 2506 leal 24(%esp),%edx 2507 xchgl %esi,%esp 2508 addl $4,%esp 2509 movl %ebp,24(%esp) 2510 movl %esi,28(%esp) 2511 movl %eax,52(%esp) 2512 movl (%edx),%eax 2513 movl 4(%edx),%ebx 2514 movl 16(%edx),%esi 2515 movl 20(%edx),%edx 2516 movl %eax,32(%esp) 2517 movl %ebx,36(%esp) 2518 movl %ecx,40(%esp) 2519 movl %edi,44(%esp) 2520 movl %esi,48(%esp) 2521 movl %esi,%edi 2522 movl %eax,%esi 2523 cmpl $0,%edx 2524 je .L029slow_decrypt 2525 cmpl $16,%ecx 2526 movl %ebx,%edx 2527 jb .L030slow_enc_tail 2528 btl $25,52(%esp) 2529 jnc .L031slow_enc_x86 2530 movq (%edi),%mm0 2531 movq 8(%edi),%mm4 2532.align 16 2533.L032slow_enc_loop_sse: 2534 pxor (%esi),%mm0 2535 pxor 8(%esi),%mm4 2536 movl 44(%esp),%edi 2537 call _sse_AES_encrypt_compact 2538 movl 32(%esp),%esi 2539 movl 36(%esp),%edi 2540 movl 40(%esp),%ecx 2541 movq %mm0,(%edi) 2542 movq %mm4,8(%edi) 2543 leal 16(%esi),%esi 2544 movl %esi,32(%esp) 2545 leal 16(%edi),%edx 2546 movl %edx,36(%esp) 2547 subl $16,%ecx 2548 cmpl $16,%ecx 2549 movl %ecx,40(%esp) 2550 jae .L032slow_enc_loop_sse 2551 testl $15,%ecx 2552 jnz .L030slow_enc_tail 2553 movl 48(%esp),%esi 2554 movq %mm0,(%esi) 2555 movq %mm4,8(%esi) 2556 emms 2557 movl 28(%esp),%esp 2558 popfl 2559 popl %edi 2560 popl %esi 2561 popl %ebx 2562 popl %ebp 2563 ret 2564 pushfl 2565.align 16 2566.L031slow_enc_x86: 2567 movl (%edi),%eax 2568 movl 4(%edi),%ebx 2569.align 4 2570.L033slow_enc_loop_x86: 2571 movl 8(%edi),%ecx 2572 movl 12(%edi),%edx 2573 xorl (%esi),%eax 2574 xorl 4(%esi),%ebx 2575 xorl 8(%esi),%ecx 2576 xorl 12(%esi),%edx 2577 movl 44(%esp),%edi 2578 call _x86_AES_encrypt_compact 2579 movl 32(%esp),%esi 2580 movl 36(%esp),%edi 2581 movl %eax,(%edi) 2582 movl %ebx,4(%edi) 2583 movl %ecx,8(%edi) 2584 movl %edx,12(%edi) 2585 movl 40(%esp),%ecx 2586 leal 16(%esi),%esi 2587 movl %esi,32(%esp) 2588 leal 16(%edi),%edx 2589 movl %edx,36(%esp) 2590 subl $16,%ecx 2591 cmpl $16,%ecx 2592 movl %ecx,40(%esp) 2593 jae .L033slow_enc_loop_x86 2594 testl $15,%ecx 2595 jnz .L030slow_enc_tail 2596 movl 48(%esp),%esi 2597 movl 8(%edi),%ecx 2598 movl 12(%edi),%edx 2599 movl %eax,(%esi) 2600 movl %ebx,4(%esi) 2601 movl %ecx,8(%esi) 2602 movl %edx,12(%esi) 2603 movl 28(%esp),%esp 2604 popfl 2605 popl %edi 2606 popl %esi 2607 popl %ebx 2608 popl %ebp 2609 ret 2610 pushfl 2611.align 16 2612.L030slow_enc_tail: 2613 emms 2614 movl %edx,%edi 2615 movl $16,%ebx 2616 subl %ecx,%ebx 2617 cmpl %esi,%edi 2618 je .L034enc_in_place 2619.align 4 2620.long 2767451785 2621 jmp .L035enc_skip_in_place 2622.L034enc_in_place: 2623 leal (%edi,%ecx,1),%edi 2624.L035enc_skip_in_place: 2625 movl %ebx,%ecx 2626 xorl %eax,%eax 2627.align 4 2628.long 2868115081 2629 movl 48(%esp),%edi 2630 movl %edx,%esi 2631 movl (%edi),%eax 2632 movl 4(%edi),%ebx 2633 movl $16,40(%esp) 2634 jmp .L033slow_enc_loop_x86 2635.align 16 2636.L029slow_decrypt: 2637 btl $25,52(%esp) 2638 jnc .L036slow_dec_loop_x86 2639.align 4 2640.L037slow_dec_loop_sse: 2641 movq (%esi),%mm0 2642 movq 8(%esi),%mm4 2643 movl 44(%esp),%edi 2644 call _sse_AES_decrypt_compact 2645 movl 32(%esp),%esi 2646 leal 60(%esp),%eax 2647 movl 36(%esp),%ebx 2648 movl 40(%esp),%ecx 2649 movl 48(%esp),%edi 2650 movq (%esi),%mm1 2651 movq 8(%esi),%mm5 2652 pxor (%edi),%mm0 2653 pxor 8(%edi),%mm4 2654 movq %mm1,(%edi) 2655 movq %mm5,8(%edi) 2656 subl $16,%ecx 2657 jc .L038slow_dec_partial_sse 2658 movq %mm0,(%ebx) 2659 movq %mm4,8(%ebx) 2660 leal 16(%ebx),%ebx 2661 movl %ebx,36(%esp) 2662 leal 16(%esi),%esi 2663 movl %esi,32(%esp) 2664 movl %ecx,40(%esp) 2665 jnz .L037slow_dec_loop_sse 2666 emms 2667 movl 28(%esp),%esp 2668 popfl 2669 popl %edi 2670 popl %esi 2671 popl %ebx 2672 popl %ebp 2673 ret 2674 pushfl 2675.align 16 2676.L038slow_dec_partial_sse: 2677 movq %mm0,(%eax) 2678 movq %mm4,8(%eax) 2679 emms 2680 addl $16,%ecx 2681 movl %ebx,%edi 2682 movl %eax,%esi 2683.align 4 2684.long 2767451785 2685 movl 28(%esp),%esp 2686 popfl 2687 popl %edi 2688 popl %esi 2689 popl %ebx 2690 popl %ebp 2691 ret 2692 pushfl 2693.align 16 2694.L036slow_dec_loop_x86: 2695 movl (%esi),%eax 2696 movl 4(%esi),%ebx 2697 movl 8(%esi),%ecx 2698 movl 12(%esi),%edx 2699 leal 60(%esp),%edi 2700 movl %eax,(%edi) 2701 movl %ebx,4(%edi) 2702 movl %ecx,8(%edi) 2703 movl %edx,12(%edi) 2704 movl 44(%esp),%edi 2705 call _x86_AES_decrypt_compact 2706 movl 48(%esp),%edi 2707 movl 40(%esp),%esi 2708 xorl (%edi),%eax 2709 xorl 4(%edi),%ebx 2710 xorl 8(%edi),%ecx 2711 xorl 12(%edi),%edx 2712 subl $16,%esi 2713 jc .L039slow_dec_partial_x86 2714 movl %esi,40(%esp) 2715 movl 36(%esp),%esi 2716 movl %eax,(%esi) 2717 movl %ebx,4(%esi) 2718 movl %ecx,8(%esi) 2719 movl %edx,12(%esi) 2720 leal 16(%esi),%esi 2721 movl %esi,36(%esp) 2722 leal 60(%esp),%esi 2723 movl (%esi),%eax 2724 movl 4(%esi),%ebx 2725 movl 8(%esi),%ecx 2726 movl 12(%esi),%edx 2727 movl %eax,(%edi) 2728 movl %ebx,4(%edi) 2729 movl %ecx,8(%edi) 2730 movl %edx,12(%edi) 2731 movl 32(%esp),%esi 2732 leal 16(%esi),%esi 2733 movl %esi,32(%esp) 2734 jnz .L036slow_dec_loop_x86 2735 movl 28(%esp),%esp 2736 popfl 2737 popl %edi 2738 popl %esi 2739 popl %ebx 2740 popl %ebp 2741 ret 2742 pushfl 2743.align 16 2744.L039slow_dec_partial_x86: 2745 leal 60(%esp),%esi 2746 movl %eax,(%esi) 2747 movl %ebx,4(%esi) 2748 movl %ecx,8(%esi) 2749 movl %edx,12(%esi) 2750 movl 32(%esp),%esi 2751 movl (%esi),%eax 2752 movl 4(%esi),%ebx 2753 movl 8(%esi),%ecx 2754 movl 12(%esi),%edx 2755 movl %eax,(%edi) 2756 movl %ebx,4(%edi) 2757 movl %ecx,8(%edi) 2758 movl %edx,12(%edi) 2759 movl 40(%esp),%ecx 2760 movl 36(%esp),%edi 2761 leal 60(%esp),%esi 2762.align 4 2763.long 2767451785 2764 movl 28(%esp),%esp 2765 popfl 2766 popl %edi 2767 popl %esi 2768 popl %ebx 2769 popl %ebp 2770 ret 2771.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin 2772.type _x86_AES_set_encrypt_key,@function 2773.align 16 2774_x86_AES_set_encrypt_key: 2775 pushl %ebp 2776 pushl %ebx 2777 pushl %esi 2778 pushl %edi 2779 movl 24(%esp),%esi 2780 movl 32(%esp),%edi 2781 testl $-1,%esi 2782 jz .L040badpointer 2783 testl $-1,%edi 2784 jz .L040badpointer 2785 call .L041pic_point 2786.L041pic_point: 2787 popl %ebp 2788 leal .LAES_Te-.L041pic_point(%ebp),%ebp 2789 leal 2176(%ebp),%ebp 2790 movl -128(%ebp),%eax 2791 movl -96(%ebp),%ebx 2792 movl -64(%ebp),%ecx 2793 movl -32(%ebp),%edx 2794 movl (%ebp),%eax 2795 movl 32(%ebp),%ebx 2796 movl 64(%ebp),%ecx 2797 movl 96(%ebp),%edx 2798 movl 28(%esp),%ecx 2799 cmpl $128,%ecx 2800 je .L04210rounds 2801 cmpl $192,%ecx 2802 je .L04312rounds 2803 cmpl $256,%ecx 2804 je .L04414rounds 2805 movl $-2,%eax 2806 jmp .L045exit 2807.L04210rounds: 2808 movl (%esi),%eax 2809 movl 4(%esi),%ebx 2810 movl 8(%esi),%ecx 2811 movl 12(%esi),%edx 2812 movl %eax,(%edi) 2813 movl %ebx,4(%edi) 2814 movl %ecx,8(%edi) 2815 movl %edx,12(%edi) 2816 xorl %ecx,%ecx 2817 jmp .L04610shortcut 2818.align 4 2819.L04710loop: 2820 movl (%edi),%eax 2821 movl 12(%edi),%edx 2822.L04610shortcut: 2823 movzbl %dl,%esi 2824 movzbl -128(%ebp,%esi,1),%ebx 2825 movzbl %dh,%esi 2826 shll $24,%ebx 2827 xorl %ebx,%eax 2828 movzbl -128(%ebp,%esi,1),%ebx 2829 shrl $16,%edx 2830 movzbl %dl,%esi 2831 xorl %ebx,%eax 2832 movzbl -128(%ebp,%esi,1),%ebx 2833 movzbl %dh,%esi 2834 shll $8,%ebx 2835 xorl %ebx,%eax 2836 movzbl -128(%ebp,%esi,1),%ebx 2837 shll $16,%ebx 2838 xorl %ebx,%eax 2839 xorl 896(%ebp,%ecx,4),%eax 2840 movl %eax,16(%edi) 2841 xorl 4(%edi),%eax 2842 movl %eax,20(%edi) 2843 xorl 8(%edi),%eax 2844 movl %eax,24(%edi) 2845 xorl 12(%edi),%eax 2846 movl %eax,28(%edi) 2847 incl %ecx 2848 addl $16,%edi 2849 cmpl $10,%ecx 2850 jl .L04710loop 2851 movl $10,80(%edi) 2852 xorl %eax,%eax 2853 jmp .L045exit 2854.L04312rounds: 2855 movl (%esi),%eax 2856 movl 4(%esi),%ebx 2857 movl 8(%esi),%ecx 2858 movl 12(%esi),%edx 2859 movl %eax,(%edi) 2860 movl %ebx,4(%edi) 2861 movl %ecx,8(%edi) 2862 movl %edx,12(%edi) 2863 movl 16(%esi),%ecx 2864 movl 20(%esi),%edx 2865 movl %ecx,16(%edi) 2866 movl %edx,20(%edi) 2867 xorl %ecx,%ecx 2868 jmp .L04812shortcut 2869.align 4 2870.L04912loop: 2871 movl (%edi),%eax 2872 movl 20(%edi),%edx 2873.L04812shortcut: 2874 movzbl %dl,%esi 2875 movzbl -128(%ebp,%esi,1),%ebx 2876 movzbl %dh,%esi 2877 shll $24,%ebx 2878 xorl %ebx,%eax 2879 movzbl -128(%ebp,%esi,1),%ebx 2880 shrl $16,%edx 2881 movzbl %dl,%esi 2882 xorl %ebx,%eax 2883 movzbl -128(%ebp,%esi,1),%ebx 2884 movzbl %dh,%esi 2885 shll $8,%ebx 2886 xorl %ebx,%eax 2887 movzbl -128(%ebp,%esi,1),%ebx 2888 shll $16,%ebx 2889 xorl %ebx,%eax 2890 xorl 896(%ebp,%ecx,4),%eax 2891 movl %eax,24(%edi) 2892 xorl 4(%edi),%eax 2893 movl %eax,28(%edi) 2894 xorl 8(%edi),%eax 2895 movl %eax,32(%edi) 2896 xorl 12(%edi),%eax 2897 movl %eax,36(%edi) 2898 cmpl $7,%ecx 2899 je .L05012break 2900 incl %ecx 2901 xorl 16(%edi),%eax 2902 movl %eax,40(%edi) 2903 xorl 20(%edi),%eax 2904 movl %eax,44(%edi) 2905 addl $24,%edi 2906 jmp .L04912loop 2907.L05012break: 2908 movl $12,72(%edi) 2909 xorl %eax,%eax 2910 jmp .L045exit 2911.L04414rounds: 2912 movl (%esi),%eax 2913 movl 4(%esi),%ebx 2914 movl 8(%esi),%ecx 2915 movl 12(%esi),%edx 2916 movl %eax,(%edi) 2917 movl %ebx,4(%edi) 2918 movl %ecx,8(%edi) 2919 movl %edx,12(%edi) 2920 movl 16(%esi),%eax 2921 movl 20(%esi),%ebx 2922 movl 24(%esi),%ecx 2923 movl 28(%esi),%edx 2924 movl %eax,16(%edi) 2925 movl %ebx,20(%edi) 2926 movl %ecx,24(%edi) 2927 movl %edx,28(%edi) 2928 xorl %ecx,%ecx 2929 jmp .L05114shortcut 2930.align 4 2931.L05214loop: 2932 movl 28(%edi),%edx 2933.L05114shortcut: 2934 movl (%edi),%eax 2935 movzbl %dl,%esi 2936 movzbl -128(%ebp,%esi,1),%ebx 2937 movzbl %dh,%esi 2938 shll $24,%ebx 2939 xorl %ebx,%eax 2940 movzbl -128(%ebp,%esi,1),%ebx 2941 shrl $16,%edx 2942 movzbl %dl,%esi 2943 xorl %ebx,%eax 2944 movzbl -128(%ebp,%esi,1),%ebx 2945 movzbl %dh,%esi 2946 shll $8,%ebx 2947 xorl %ebx,%eax 2948 movzbl -128(%ebp,%esi,1),%ebx 2949 shll $16,%ebx 2950 xorl %ebx,%eax 2951 xorl 896(%ebp,%ecx,4),%eax 2952 movl %eax,32(%edi) 2953 xorl 4(%edi),%eax 2954 movl %eax,36(%edi) 2955 xorl 8(%edi),%eax 2956 movl %eax,40(%edi) 2957 xorl 12(%edi),%eax 2958 movl %eax,44(%edi) 2959 cmpl $6,%ecx 2960 je .L05314break 2961 incl %ecx 2962 movl %eax,%edx 2963 movl 16(%edi),%eax 2964 movzbl %dl,%esi 2965 movzbl -128(%ebp,%esi,1),%ebx 2966 movzbl %dh,%esi 2967 xorl %ebx,%eax 2968 movzbl -128(%ebp,%esi,1),%ebx 2969 shrl $16,%edx 2970 shll $8,%ebx 2971 movzbl %dl,%esi 2972 xorl %ebx,%eax 2973 movzbl -128(%ebp,%esi,1),%ebx 2974 movzbl %dh,%esi 2975 shll $16,%ebx 2976 xorl %ebx,%eax 2977 movzbl -128(%ebp,%esi,1),%ebx 2978 shll $24,%ebx 2979 xorl %ebx,%eax 2980 movl %eax,48(%edi) 2981 xorl 20(%edi),%eax 2982 movl %eax,52(%edi) 2983 xorl 24(%edi),%eax 2984 movl %eax,56(%edi) 2985 xorl 28(%edi),%eax 2986 movl %eax,60(%edi) 2987 addl $32,%edi 2988 jmp .L05214loop 2989.L05314break: 2990 movl $14,48(%edi) 2991 xorl %eax,%eax 2992 jmp .L045exit 2993.L040badpointer: 2994 movl $-1,%eax 2995.L045exit: 2996 popl %edi 2997 popl %esi 2998 popl %ebx 2999 popl %ebp 3000 ret 3001.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key 3002.globl private_AES_set_encrypt_key 3003.type private_AES_set_encrypt_key,@function 3004.align 16 3005private_AES_set_encrypt_key: 3006.L_private_AES_set_encrypt_key_begin: 3007 call _x86_AES_set_encrypt_key 3008 ret 3009.size private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin 3010.globl private_AES_set_decrypt_key 3011.type private_AES_set_decrypt_key,@function 3012.align 16 3013private_AES_set_decrypt_key: 3014.L_private_AES_set_decrypt_key_begin: 3015 call _x86_AES_set_encrypt_key 3016 cmpl $0,%eax 3017 je .L054proceed 3018 ret 3019.L054proceed: 3020 pushl %ebp 3021 pushl %ebx 3022 pushl %esi 3023 pushl %edi 3024 movl 28(%esp),%esi 3025 movl 240(%esi),%ecx 3026 leal (,%ecx,4),%ecx 3027 leal (%esi,%ecx,4),%edi 3028.align 4 3029.L055invert: 3030 movl (%esi),%eax 3031 movl 4(%esi),%ebx 3032 movl (%edi),%ecx 3033 movl 4(%edi),%edx 3034 movl %eax,(%edi) 3035 movl %ebx,4(%edi) 3036 movl %ecx,(%esi) 3037 movl %edx,4(%esi) 3038 movl 8(%esi),%eax 3039 movl 12(%esi),%ebx 3040 movl 8(%edi),%ecx 3041 movl 12(%edi),%edx 3042 movl %eax,8(%edi) 3043 movl %ebx,12(%edi) 3044 movl %ecx,8(%esi) 3045 movl %edx,12(%esi) 3046 addl $16,%esi 3047 subl $16,%edi 3048 cmpl %edi,%esi 3049 jne .L055invert 3050 movl 28(%esp),%edi 3051 movl 240(%edi),%esi 3052 leal -2(%esi,%esi,1),%esi 3053 leal (%edi,%esi,8),%esi 3054 movl %esi,28(%esp) 3055 movl 16(%edi),%eax 3056.align 4 3057.L056permute: 3058 addl $16,%edi 3059 movl $2155905152,%ebp 3060 andl %eax,%ebp 3061 leal (%eax,%eax,1),%ebx 3062 movl %ebp,%esi 3063 shrl $7,%ebp 3064 subl %ebp,%esi 3065 andl $4278124286,%ebx 3066 andl $454761243,%esi 3067 xorl %esi,%ebx 3068 movl $2155905152,%ebp 3069 andl %ebx,%ebp 3070 leal (%ebx,%ebx,1),%ecx 3071 movl %ebp,%esi 3072 shrl $7,%ebp 3073 subl %ebp,%esi 3074 andl $4278124286,%ecx 3075 andl $454761243,%esi 3076 xorl %eax,%ebx 3077 xorl %esi,%ecx 3078 movl $2155905152,%ebp 3079 andl %ecx,%ebp 3080 leal (%ecx,%ecx,1),%edx 3081 movl %ebp,%esi 3082 shrl $7,%ebp 3083 xorl %eax,%ecx 3084 subl %ebp,%esi 3085 andl $4278124286,%edx 3086 andl $454761243,%esi 3087 roll $8,%eax 3088 xorl %esi,%edx 3089 movl 4(%edi),%ebp 3090 xorl %ebx,%eax 3091 xorl %edx,%ebx 3092 xorl %ecx,%eax 3093 roll $24,%ebx 3094 xorl %edx,%ecx 3095 xorl %edx,%eax 3096 roll $16,%ecx 3097 xorl %ebx,%eax 3098 roll $8,%edx 3099 xorl %ecx,%eax 3100 movl %ebp,%ebx 3101 xorl %edx,%eax 3102 movl %eax,(%edi) 3103 movl $2155905152,%ebp 3104 andl %ebx,%ebp 3105 leal (%ebx,%ebx,1),%ecx 3106 movl %ebp,%esi 3107 shrl $7,%ebp 3108 subl %ebp,%esi 3109 andl $4278124286,%ecx 3110 andl $454761243,%esi 3111 xorl %esi,%ecx 3112 movl $2155905152,%ebp 3113 andl %ecx,%ebp 3114 leal (%ecx,%ecx,1),%edx 3115 movl %ebp,%esi 3116 shrl $7,%ebp 3117 subl %ebp,%esi 3118 andl $4278124286,%edx 3119 andl $454761243,%esi 3120 xorl %ebx,%ecx 3121 xorl %esi,%edx 3122 movl $2155905152,%ebp 3123 andl %edx,%ebp 3124 leal (%edx,%edx,1),%eax 3125 movl %ebp,%esi 3126 shrl $7,%ebp 3127 xorl %ebx,%edx 3128 subl %ebp,%esi 3129 andl $4278124286,%eax 3130 andl $454761243,%esi 3131 roll $8,%ebx 3132 xorl %esi,%eax 3133 movl 8(%edi),%ebp 3134 xorl %ecx,%ebx 3135 xorl %eax,%ecx 3136 xorl %edx,%ebx 3137 roll $24,%ecx 3138 xorl %eax,%edx 3139 xorl %eax,%ebx 3140 roll $16,%edx 3141 xorl %ecx,%ebx 3142 roll $8,%eax 3143 xorl %edx,%ebx 3144 movl %ebp,%ecx 3145 xorl %eax,%ebx 3146 movl %ebx,4(%edi) 3147 movl $2155905152,%ebp 3148 andl %ecx,%ebp 3149 leal (%ecx,%ecx,1),%edx 3150 movl %ebp,%esi 3151 shrl $7,%ebp 3152 subl %ebp,%esi 3153 andl $4278124286,%edx 3154 andl $454761243,%esi 3155 xorl %esi,%edx 3156 movl $2155905152,%ebp 3157 andl %edx,%ebp 3158 leal (%edx,%edx,1),%eax 3159 movl %ebp,%esi 3160 shrl $7,%ebp 3161 subl %ebp,%esi 3162 andl $4278124286,%eax 3163 andl $454761243,%esi 3164 xorl %ecx,%edx 3165 xorl %esi,%eax 3166 movl $2155905152,%ebp 3167 andl %eax,%ebp 3168 leal (%eax,%eax,1),%ebx 3169 movl %ebp,%esi 3170 shrl $7,%ebp 3171 xorl %ecx,%eax 3172 subl %ebp,%esi 3173 andl $4278124286,%ebx 3174 andl $454761243,%esi 3175 roll $8,%ecx 3176 xorl %esi,%ebx 3177 movl 12(%edi),%ebp 3178 xorl %edx,%ecx 3179 xorl %ebx,%edx 3180 xorl %eax,%ecx 3181 roll $24,%edx 3182 xorl %ebx,%eax 3183 xorl %ebx,%ecx 3184 roll $16,%eax 3185 xorl %edx,%ecx 3186 roll $8,%ebx 3187 xorl %eax,%ecx 3188 movl %ebp,%edx 3189 xorl %ebx,%ecx 3190 movl %ecx,8(%edi) 3191 movl $2155905152,%ebp 3192 andl %edx,%ebp 3193 leal (%edx,%edx,1),%eax 3194 movl %ebp,%esi 3195 shrl $7,%ebp 3196 subl %ebp,%esi 3197 andl $4278124286,%eax 3198 andl $454761243,%esi 3199 xorl %esi,%eax 3200 movl $2155905152,%ebp 3201 andl %eax,%ebp 3202 leal (%eax,%eax,1),%ebx 3203 movl %ebp,%esi 3204 shrl $7,%ebp 3205 subl %ebp,%esi 3206 andl $4278124286,%ebx 3207 andl $454761243,%esi 3208 xorl %edx,%eax 3209 xorl %esi,%ebx 3210 movl $2155905152,%ebp 3211 andl %ebx,%ebp 3212 leal (%ebx,%ebx,1),%ecx 3213 movl %ebp,%esi 3214 shrl $7,%ebp 3215 xorl %edx,%ebx 3216 subl %ebp,%esi 3217 andl $4278124286,%ecx 3218 andl $454761243,%esi 3219 roll $8,%edx 3220 xorl %esi,%ecx 3221 movl 16(%edi),%ebp 3222 xorl %eax,%edx 3223 xorl %ecx,%eax 3224 xorl %ebx,%edx 3225 roll $24,%eax 3226 xorl %ecx,%ebx 3227 xorl %ecx,%edx 3228 roll $16,%ebx 3229 xorl %eax,%edx 3230 roll $8,%ecx 3231 xorl %ebx,%edx 3232 movl %ebp,%eax 3233 xorl %ecx,%edx 3234 movl %edx,12(%edi) 3235 cmpl 28(%esp),%edi 3236 jb .L056permute 3237 xorl %eax,%eax 3238 popl %edi 3239 popl %esi 3240 popl %ebx 3241 popl %ebp 3242 ret 3243.size private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin 3244.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 3245.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 3246.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 3247.comm OPENSSL_ia32cap_P,16,4 3248#else 3249.file "aes-586.S" 3250.text 3251.type _x86_AES_encrypt_compact,@function 3252.align 16 3253_x86_AES_encrypt_compact: 3254 movl %edi,20(%esp) 3255 xorl (%edi),%eax 3256 xorl 4(%edi),%ebx 3257 xorl 8(%edi),%ecx 3258 xorl 12(%edi),%edx 3259 movl 240(%edi),%esi 3260 leal -2(%esi,%esi,1),%esi 3261 leal (%edi,%esi,8),%esi 3262 movl %esi,24(%esp) 3263 movl -128(%ebp),%edi 3264 movl -96(%ebp),%esi 3265 movl -64(%ebp),%edi 3266 movl -32(%ebp),%esi 3267 movl (%ebp),%edi 3268 movl 32(%ebp),%esi 3269 movl 64(%ebp),%edi 3270 movl 96(%ebp),%esi 3271.align 16 3272.L000loop: 3273 movl %eax,%esi 3274 andl $255,%esi 3275 movzbl -128(%ebp,%esi,1),%esi 3276 movzbl %bh,%edi 3277 movzbl -128(%ebp,%edi,1),%edi 3278 shll $8,%edi 3279 xorl %edi,%esi 3280 movl %ecx,%edi 3281 shrl $16,%edi 3282 andl $255,%edi 3283 movzbl -128(%ebp,%edi,1),%edi 3284 shll $16,%edi 3285 xorl %edi,%esi 3286 movl %edx,%edi 3287 shrl $24,%edi 3288 movzbl -128(%ebp,%edi,1),%edi 3289 shll $24,%edi 3290 xorl %edi,%esi 3291 movl %esi,4(%esp) 3292 3293 movl %ebx,%esi 3294 andl $255,%esi 3295 shrl $16,%ebx 3296 movzbl -128(%ebp,%esi,1),%esi 3297 movzbl %ch,%edi 3298 movzbl -128(%ebp,%edi,1),%edi 3299 shll $8,%edi 3300 xorl %edi,%esi 3301 movl %edx,%edi 3302 shrl $16,%edi 3303 andl $255,%edi 3304 movzbl -128(%ebp,%edi,1),%edi 3305 shll $16,%edi 3306 xorl %edi,%esi 3307 movl %eax,%edi 3308 shrl $24,%edi 3309 movzbl -128(%ebp,%edi,1),%edi 3310 shll $24,%edi 3311 xorl %edi,%esi 3312 movl %esi,8(%esp) 3313 3314 movl %ecx,%esi 3315 andl $255,%esi 3316 shrl $24,%ecx 3317 movzbl -128(%ebp,%esi,1),%esi 3318 movzbl %dh,%edi 3319 movzbl -128(%ebp,%edi,1),%edi 3320 shll $8,%edi 3321 xorl %edi,%esi 3322 movl %eax,%edi 3323 shrl $16,%edi 3324 andl $255,%edx 3325 andl $255,%edi 3326 movzbl -128(%ebp,%edi,1),%edi 3327 shll $16,%edi 3328 xorl %edi,%esi 3329 movzbl %bh,%edi 3330 movzbl -128(%ebp,%edi,1),%edi 3331 shll $24,%edi 3332 xorl %edi,%esi 3333 3334 andl $255,%edx 3335 movzbl -128(%ebp,%edx,1),%edx 3336 movzbl %ah,%eax 3337 movzbl -128(%ebp,%eax,1),%eax 3338 shll $8,%eax 3339 xorl %eax,%edx 3340 movl 4(%esp),%eax 3341 andl $255,%ebx 3342 movzbl -128(%ebp,%ebx,1),%ebx 3343 shll $16,%ebx 3344 xorl %ebx,%edx 3345 movl 8(%esp),%ebx 3346 movzbl -128(%ebp,%ecx,1),%ecx 3347 shll $24,%ecx 3348 xorl %ecx,%edx 3349 movl %esi,%ecx 3350 3351 movl $2155905152,%ebp 3352 andl %ecx,%ebp 3353 leal (%ecx,%ecx,1),%edi 3354 movl %ebp,%esi 3355 shrl $7,%ebp 3356 andl $4278124286,%edi 3357 subl %ebp,%esi 3358 movl %ecx,%ebp 3359 andl $454761243,%esi 3360 rorl $16,%ebp 3361 xorl %edi,%esi 3362 movl %ecx,%edi 3363 xorl %esi,%ecx 3364 rorl $24,%edi 3365 xorl %ebp,%esi 3366 roll $24,%ecx 3367 xorl %edi,%esi 3368 movl $2155905152,%ebp 3369 xorl %esi,%ecx 3370 andl %edx,%ebp 3371 leal (%edx,%edx,1),%edi 3372 movl %ebp,%esi 3373 shrl $7,%ebp 3374 andl $4278124286,%edi 3375 subl %ebp,%esi 3376 movl %edx,%ebp 3377 andl $454761243,%esi 3378 rorl $16,%ebp 3379 xorl %edi,%esi 3380 movl %edx,%edi 3381 xorl %esi,%edx 3382 rorl $24,%edi 3383 xorl %ebp,%esi 3384 roll $24,%edx 3385 xorl %edi,%esi 3386 movl $2155905152,%ebp 3387 xorl %esi,%edx 3388 andl %eax,%ebp 3389 leal (%eax,%eax,1),%edi 3390 movl %ebp,%esi 3391 shrl $7,%ebp 3392 andl $4278124286,%edi 3393 subl %ebp,%esi 3394 movl %eax,%ebp 3395 andl $454761243,%esi 3396 rorl $16,%ebp 3397 xorl %edi,%esi 3398 movl %eax,%edi 3399 xorl %esi,%eax 3400 rorl $24,%edi 3401 xorl %ebp,%esi 3402 roll $24,%eax 3403 xorl %edi,%esi 3404 movl $2155905152,%ebp 3405 xorl %esi,%eax 3406 andl %ebx,%ebp 3407 leal (%ebx,%ebx,1),%edi 3408 movl %ebp,%esi 3409 shrl $7,%ebp 3410 andl $4278124286,%edi 3411 subl %ebp,%esi 3412 movl %ebx,%ebp 3413 andl $454761243,%esi 3414 rorl $16,%ebp 3415 xorl %edi,%esi 3416 movl %ebx,%edi 3417 xorl %esi,%ebx 3418 rorl $24,%edi 3419 xorl %ebp,%esi 3420 roll $24,%ebx 3421 xorl %edi,%esi 3422 xorl %esi,%ebx 3423 movl 20(%esp),%edi 3424 movl 28(%esp),%ebp 3425 addl $16,%edi 3426 xorl (%edi),%eax 3427 xorl 4(%edi),%ebx 3428 xorl 8(%edi),%ecx 3429 xorl 12(%edi),%edx 3430 cmpl 24(%esp),%edi 3431 movl %edi,20(%esp) 3432 jb .L000loop 3433 movl %eax,%esi 3434 andl $255,%esi 3435 movzbl -128(%ebp,%esi,1),%esi 3436 movzbl %bh,%edi 3437 movzbl -128(%ebp,%edi,1),%edi 3438 shll $8,%edi 3439 xorl %edi,%esi 3440 movl %ecx,%edi 3441 shrl $16,%edi 3442 andl $255,%edi 3443 movzbl -128(%ebp,%edi,1),%edi 3444 shll $16,%edi 3445 xorl %edi,%esi 3446 movl %edx,%edi 3447 shrl $24,%edi 3448 movzbl -128(%ebp,%edi,1),%edi 3449 shll $24,%edi 3450 xorl %edi,%esi 3451 movl %esi,4(%esp) 3452 3453 movl %ebx,%esi 3454 andl $255,%esi 3455 shrl $16,%ebx 3456 movzbl -128(%ebp,%esi,1),%esi 3457 movzbl %ch,%edi 3458 movzbl -128(%ebp,%edi,1),%edi 3459 shll $8,%edi 3460 xorl %edi,%esi 3461 movl %edx,%edi 3462 shrl $16,%edi 3463 andl $255,%edi 3464 movzbl -128(%ebp,%edi,1),%edi 3465 shll $16,%edi 3466 xorl %edi,%esi 3467 movl %eax,%edi 3468 shrl $24,%edi 3469 movzbl -128(%ebp,%edi,1),%edi 3470 shll $24,%edi 3471 xorl %edi,%esi 3472 movl %esi,8(%esp) 3473 3474 movl %ecx,%esi 3475 andl $255,%esi 3476 shrl $24,%ecx 3477 movzbl -128(%ebp,%esi,1),%esi 3478 movzbl %dh,%edi 3479 movzbl -128(%ebp,%edi,1),%edi 3480 shll $8,%edi 3481 xorl %edi,%esi 3482 movl %eax,%edi 3483 shrl $16,%edi 3484 andl $255,%edx 3485 andl $255,%edi 3486 movzbl -128(%ebp,%edi,1),%edi 3487 shll $16,%edi 3488 xorl %edi,%esi 3489 movzbl %bh,%edi 3490 movzbl -128(%ebp,%edi,1),%edi 3491 shll $24,%edi 3492 xorl %edi,%esi 3493 3494 movl 20(%esp),%edi 3495 andl $255,%edx 3496 movzbl -128(%ebp,%edx,1),%edx 3497 movzbl %ah,%eax 3498 movzbl -128(%ebp,%eax,1),%eax 3499 shll $8,%eax 3500 xorl %eax,%edx 3501 movl 4(%esp),%eax 3502 andl $255,%ebx 3503 movzbl -128(%ebp,%ebx,1),%ebx 3504 shll $16,%ebx 3505 xorl %ebx,%edx 3506 movl 8(%esp),%ebx 3507 movzbl -128(%ebp,%ecx,1),%ecx 3508 shll $24,%ecx 3509 xorl %ecx,%edx 3510 movl %esi,%ecx 3511 3512 xorl 16(%edi),%eax 3513 xorl 20(%edi),%ebx 3514 xorl 24(%edi),%ecx 3515 xorl 28(%edi),%edx 3516 ret 3517.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact 3518.type _sse_AES_encrypt_compact,@function 3519.align 16 3520_sse_AES_encrypt_compact: 3521 pxor (%edi),%mm0 3522 pxor 8(%edi),%mm4 3523 movl 240(%edi),%esi 3524 leal -2(%esi,%esi,1),%esi 3525 leal (%edi,%esi,8),%esi 3526 movl %esi,24(%esp) 3527 movl $454761243,%eax 3528 movl %eax,8(%esp) 3529 movl %eax,12(%esp) 3530 movl -128(%ebp),%eax 3531 movl -96(%ebp),%ebx 3532 movl -64(%ebp),%ecx 3533 movl -32(%ebp),%edx 3534 movl (%ebp),%eax 3535 movl 32(%ebp),%ebx 3536 movl 64(%ebp),%ecx 3537 movl 96(%ebp),%edx 3538.align 16 3539.L001loop: 3540 pshufw $8,%mm0,%mm1 3541 pshufw $13,%mm4,%mm5 3542 movd %mm1,%eax 3543 movd %mm5,%ebx 3544 movl %edi,20(%esp) 3545 movzbl %al,%esi 3546 movzbl %ah,%edx 3547 pshufw $13,%mm0,%mm2 3548 movzbl -128(%ebp,%esi,1),%ecx 3549 movzbl %bl,%edi 3550 movzbl -128(%ebp,%edx,1),%edx 3551 shrl $16,%eax 3552 shll $8,%edx 3553 movzbl -128(%ebp,%edi,1),%esi 3554 movzbl %bh,%edi 3555 shll $16,%esi 3556 pshufw $8,%mm4,%mm6 3557 orl %esi,%ecx 3558 movzbl -128(%ebp,%edi,1),%esi 3559 movzbl %ah,%edi 3560 shll $24,%esi 3561 shrl $16,%ebx 3562 orl %esi,%edx 3563 movzbl -128(%ebp,%edi,1),%esi 3564 movzbl %bh,%edi 3565 shll $8,%esi 3566 orl %esi,%ecx 3567 movzbl -128(%ebp,%edi,1),%esi 3568 movzbl %al,%edi 3569 shll $24,%esi 3570 orl %esi,%ecx 3571 movzbl -128(%ebp,%edi,1),%esi 3572 movzbl %bl,%edi 3573 movd %mm2,%eax 3574 movd %ecx,%mm0 3575 movzbl -128(%ebp,%edi,1),%ecx 3576 movzbl %ah,%edi 3577 shll $16,%ecx 3578 movd %mm6,%ebx 3579 orl %esi,%ecx 3580 movzbl -128(%ebp,%edi,1),%esi 3581 movzbl %bh,%edi 3582 shll $24,%esi 3583 orl %esi,%ecx 3584 movzbl -128(%ebp,%edi,1),%esi 3585 movzbl %bl,%edi 3586 shll $8,%esi 3587 shrl $16,%ebx 3588 orl %esi,%ecx 3589 movzbl -128(%ebp,%edi,1),%esi 3590 movzbl %al,%edi 3591 shrl $16,%eax 3592 movd %ecx,%mm1 3593 movzbl -128(%ebp,%edi,1),%ecx 3594 movzbl %ah,%edi 3595 shll $16,%ecx 3596 andl $255,%eax 3597 orl %esi,%ecx 3598 punpckldq %mm1,%mm0 3599 movzbl -128(%ebp,%edi,1),%esi 3600 movzbl %bh,%edi 3601 shll $24,%esi 3602 andl $255,%ebx 3603 movzbl -128(%ebp,%eax,1),%eax 3604 orl %esi,%ecx 3605 shll $16,%eax 3606 movzbl -128(%ebp,%edi,1),%esi 3607 orl %eax,%edx 3608 shll $8,%esi 3609 movzbl -128(%ebp,%ebx,1),%ebx 3610 orl %esi,%ecx 3611 orl %ebx,%edx 3612 movl 20(%esp),%edi 3613 movd %ecx,%mm4 3614 movd %edx,%mm5 3615 punpckldq %mm5,%mm4 3616 addl $16,%edi 3617 cmpl 24(%esp),%edi 3618 ja .L002out 3619 movq 8(%esp),%mm2 3620 pxor %mm3,%mm3 3621 pxor %mm7,%mm7 3622 movq %mm0,%mm1 3623 movq %mm4,%mm5 3624 pcmpgtb %mm0,%mm3 3625 pcmpgtb %mm4,%mm7 3626 pand %mm2,%mm3 3627 pand %mm2,%mm7 3628 pshufw $177,%mm0,%mm2 3629 pshufw $177,%mm4,%mm6 3630 paddb %mm0,%mm0 3631 paddb %mm4,%mm4 3632 pxor %mm3,%mm0 3633 pxor %mm7,%mm4 3634 pshufw $177,%mm2,%mm3 3635 pshufw $177,%mm6,%mm7 3636 pxor %mm0,%mm1 3637 pxor %mm4,%mm5 3638 pxor %mm2,%mm0 3639 pxor %mm6,%mm4 3640 movq %mm3,%mm2 3641 movq %mm7,%mm6 3642 pslld $8,%mm3 3643 pslld $8,%mm7 3644 psrld $24,%mm2 3645 psrld $24,%mm6 3646 pxor %mm3,%mm0 3647 pxor %mm7,%mm4 3648 pxor %mm2,%mm0 3649 pxor %mm6,%mm4 3650 movq %mm1,%mm3 3651 movq %mm5,%mm7 3652 movq (%edi),%mm2 3653 movq 8(%edi),%mm6 3654 psrld $8,%mm1 3655 psrld $8,%mm5 3656 movl -128(%ebp),%eax 3657 pslld $24,%mm3 3658 pslld $24,%mm7 3659 movl -64(%ebp),%ebx 3660 pxor %mm1,%mm0 3661 pxor %mm5,%mm4 3662 movl (%ebp),%ecx 3663 pxor %mm3,%mm0 3664 pxor %mm7,%mm4 3665 movl 64(%ebp),%edx 3666 pxor %mm2,%mm0 3667 pxor %mm6,%mm4 3668 jmp .L001loop 3669.align 16 3670.L002out: 3671 pxor (%edi),%mm0 3672 pxor 8(%edi),%mm4 3673 ret 3674.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact 3675.type _x86_AES_encrypt,@function 3676.align 16 3677_x86_AES_encrypt: 3678 movl %edi,20(%esp) 3679 xorl (%edi),%eax 3680 xorl 4(%edi),%ebx 3681 xorl 8(%edi),%ecx 3682 xorl 12(%edi),%edx 3683 movl 240(%edi),%esi 3684 leal -2(%esi,%esi,1),%esi 3685 leal (%edi,%esi,8),%esi 3686 movl %esi,24(%esp) 3687.align 16 3688.L003loop: 3689 movl %eax,%esi 3690 andl $255,%esi 3691 movl (%ebp,%esi,8),%esi 3692 movzbl %bh,%edi 3693 xorl 3(%ebp,%edi,8),%esi 3694 movl %ecx,%edi 3695 shrl $16,%edi 3696 andl $255,%edi 3697 xorl 2(%ebp,%edi,8),%esi 3698 movl %edx,%edi 3699 shrl $24,%edi 3700 xorl 1(%ebp,%edi,8),%esi 3701 movl %esi,4(%esp) 3702 3703 movl %ebx,%esi 3704 andl $255,%esi 3705 shrl $16,%ebx 3706 movl (%ebp,%esi,8),%esi 3707 movzbl %ch,%edi 3708 xorl 3(%ebp,%edi,8),%esi 3709 movl %edx,%edi 3710 shrl $16,%edi 3711 andl $255,%edi 3712 xorl 2(%ebp,%edi,8),%esi 3713 movl %eax,%edi 3714 shrl $24,%edi 3715 xorl 1(%ebp,%edi,8),%esi 3716 movl %esi,8(%esp) 3717 3718 movl %ecx,%esi 3719 andl $255,%esi 3720 shrl $24,%ecx 3721 movl (%ebp,%esi,8),%esi 3722 movzbl %dh,%edi 3723 xorl 3(%ebp,%edi,8),%esi 3724 movl %eax,%edi 3725 shrl $16,%edi 3726 andl $255,%edx 3727 andl $255,%edi 3728 xorl 2(%ebp,%edi,8),%esi 3729 movzbl %bh,%edi 3730 xorl 1(%ebp,%edi,8),%esi 3731 3732 movl 20(%esp),%edi 3733 movl (%ebp,%edx,8),%edx 3734 movzbl %ah,%eax 3735 xorl 3(%ebp,%eax,8),%edx 3736 movl 4(%esp),%eax 3737 andl $255,%ebx 3738 xorl 2(%ebp,%ebx,8),%edx 3739 movl 8(%esp),%ebx 3740 xorl 1(%ebp,%ecx,8),%edx 3741 movl %esi,%ecx 3742 3743 addl $16,%edi 3744 xorl (%edi),%eax 3745 xorl 4(%edi),%ebx 3746 xorl 8(%edi),%ecx 3747 xorl 12(%edi),%edx 3748 cmpl 24(%esp),%edi 3749 movl %edi,20(%esp) 3750 jb .L003loop 3751 movl %eax,%esi 3752 andl $255,%esi 3753 movl 2(%ebp,%esi,8),%esi 3754 andl $255,%esi 3755 movzbl %bh,%edi 3756 movl (%ebp,%edi,8),%edi 3757 andl $65280,%edi 3758 xorl %edi,%esi 3759 movl %ecx,%edi 3760 shrl $16,%edi 3761 andl $255,%edi 3762 movl (%ebp,%edi,8),%edi 3763 andl $16711680,%edi 3764 xorl %edi,%esi 3765 movl %edx,%edi 3766 shrl $24,%edi 3767 movl 2(%ebp,%edi,8),%edi 3768 andl $4278190080,%edi 3769 xorl %edi,%esi 3770 movl %esi,4(%esp) 3771 movl %ebx,%esi 3772 andl $255,%esi 3773 shrl $16,%ebx 3774 movl 2(%ebp,%esi,8),%esi 3775 andl $255,%esi 3776 movzbl %ch,%edi 3777 movl (%ebp,%edi,8),%edi 3778 andl $65280,%edi 3779 xorl %edi,%esi 3780 movl %edx,%edi 3781 shrl $16,%edi 3782 andl $255,%edi 3783 movl (%ebp,%edi,8),%edi 3784 andl $16711680,%edi 3785 xorl %edi,%esi 3786 movl %eax,%edi 3787 shrl $24,%edi 3788 movl 2(%ebp,%edi,8),%edi 3789 andl $4278190080,%edi 3790 xorl %edi,%esi 3791 movl %esi,8(%esp) 3792 movl %ecx,%esi 3793 andl $255,%esi 3794 shrl $24,%ecx 3795 movl 2(%ebp,%esi,8),%esi 3796 andl $255,%esi 3797 movzbl %dh,%edi 3798 movl (%ebp,%edi,8),%edi 3799 andl $65280,%edi 3800 xorl %edi,%esi 3801 movl %eax,%edi 3802 shrl $16,%edi 3803 andl $255,%edx 3804 andl $255,%edi 3805 movl (%ebp,%edi,8),%edi 3806 andl $16711680,%edi 3807 xorl %edi,%esi 3808 movzbl %bh,%edi 3809 movl 2(%ebp,%edi,8),%edi 3810 andl $4278190080,%edi 3811 xorl %edi,%esi 3812 movl 20(%esp),%edi 3813 andl $255,%edx 3814 movl 2(%ebp,%edx,8),%edx 3815 andl $255,%edx 3816 movzbl %ah,%eax 3817 movl (%ebp,%eax,8),%eax 3818 andl $65280,%eax 3819 xorl %eax,%edx 3820 movl 4(%esp),%eax 3821 andl $255,%ebx 3822 movl (%ebp,%ebx,8),%ebx 3823 andl $16711680,%ebx 3824 xorl %ebx,%edx 3825 movl 8(%esp),%ebx 3826 movl 2(%ebp,%ecx,8),%ecx 3827 andl $4278190080,%ecx 3828 xorl %ecx,%edx 3829 movl %esi,%ecx 3830 addl $16,%edi 3831 xorl (%edi),%eax 3832 xorl 4(%edi),%ebx 3833 xorl 8(%edi),%ecx 3834 xorl 12(%edi),%edx 3835 ret 3836.align 64 3837.LAES_Te: 3838.long 2774754246,2774754246 3839.long 2222750968,2222750968 3840.long 2574743534,2574743534 3841.long 2373680118,2373680118 3842.long 234025727,234025727 3843.long 3177933782,3177933782 3844.long 2976870366,2976870366 3845.long 1422247313,1422247313 3846.long 1345335392,1345335392 3847.long 50397442,50397442 3848.long 2842126286,2842126286 3849.long 2099981142,2099981142 3850.long 436141799,436141799 3851.long 1658312629,1658312629 3852.long 3870010189,3870010189 3853.long 2591454956,2591454956 3854.long 1170918031,1170918031 3855.long 2642575903,2642575903 3856.long 1086966153,1086966153 3857.long 2273148410,2273148410 3858.long 368769775,368769775 3859.long 3948501426,3948501426 3860.long 3376891790,3376891790 3861.long 200339707,200339707 3862.long 3970805057,3970805057 3863.long 1742001331,1742001331 3864.long 4255294047,4255294047 3865.long 3937382213,3937382213 3866.long 3214711843,3214711843 3867.long 4154762323,4154762323 3868.long 2524082916,2524082916 3869.long 1539358875,1539358875 3870.long 3266819957,3266819957 3871.long 486407649,486407649 3872.long 2928907069,2928907069 3873.long 1780885068,1780885068 3874.long 1513502316,1513502316 3875.long 1094664062,1094664062 3876.long 49805301,49805301 3877.long 1338821763,1338821763 3878.long 1546925160,1546925160 3879.long 4104496465,4104496465 3880.long 887481809,887481809 3881.long 150073849,150073849 3882.long 2473685474,2473685474 3883.long 1943591083,1943591083 3884.long 1395732834,1395732834 3885.long 1058346282,1058346282 3886.long 201589768,201589768 3887.long 1388824469,1388824469 3888.long 1696801606,1696801606 3889.long 1589887901,1589887901 3890.long 672667696,672667696 3891.long 2711000631,2711000631 3892.long 251987210,251987210 3893.long 3046808111,3046808111 3894.long 151455502,151455502 3895.long 907153956,907153956 3896.long 2608889883,2608889883 3897.long 1038279391,1038279391 3898.long 652995533,652995533 3899.long 1764173646,1764173646 3900.long 3451040383,3451040383 3901.long 2675275242,2675275242 3902.long 453576978,453576978 3903.long 2659418909,2659418909 3904.long 1949051992,1949051992 3905.long 773462580,773462580 3906.long 756751158,756751158 3907.long 2993581788,2993581788 3908.long 3998898868,3998898868 3909.long 4221608027,4221608027 3910.long 4132590244,4132590244 3911.long 1295727478,1295727478 3912.long 1641469623,1641469623 3913.long 3467883389,3467883389 3914.long 2066295122,2066295122 3915.long 1055122397,1055122397 3916.long 1898917726,1898917726 3917.long 2542044179,2542044179 3918.long 4115878822,4115878822 3919.long 1758581177,1758581177 3920.long 0,0 3921.long 753790401,753790401 3922.long 1612718144,1612718144 3923.long 536673507,536673507 3924.long 3367088505,3367088505 3925.long 3982187446,3982187446 3926.long 3194645204,3194645204 3927.long 1187761037,1187761037 3928.long 3653156455,3653156455 3929.long 1262041458,1262041458 3930.long 3729410708,3729410708 3931.long 3561770136,3561770136 3932.long 3898103984,3898103984 3933.long 1255133061,1255133061 3934.long 1808847035,1808847035 3935.long 720367557,720367557 3936.long 3853167183,3853167183 3937.long 385612781,385612781 3938.long 3309519750,3309519750 3939.long 3612167578,3612167578 3940.long 1429418854,1429418854 3941.long 2491778321,2491778321 3942.long 3477423498,3477423498 3943.long 284817897,284817897 3944.long 100794884,100794884 3945.long 2172616702,2172616702 3946.long 4031795360,4031795360 3947.long 1144798328,1144798328 3948.long 3131023141,3131023141 3949.long 3819481163,3819481163 3950.long 4082192802,4082192802 3951.long 4272137053,4272137053 3952.long 3225436288,3225436288 3953.long 2324664069,2324664069 3954.long 2912064063,2912064063 3955.long 3164445985,3164445985 3956.long 1211644016,1211644016 3957.long 83228145,83228145 3958.long 3753688163,3753688163 3959.long 3249976951,3249976951 3960.long 1977277103,1977277103 3961.long 1663115586,1663115586 3962.long 806359072,806359072 3963.long 452984805,452984805 3964.long 250868733,250868733 3965.long 1842533055,1842533055 3966.long 1288555905,1288555905 3967.long 336333848,336333848 3968.long 890442534,890442534 3969.long 804056259,804056259 3970.long 3781124030,3781124030 3971.long 2727843637,2727843637 3972.long 3427026056,3427026056 3973.long 957814574,957814574 3974.long 1472513171,1472513171 3975.long 4071073621,4071073621 3976.long 2189328124,2189328124 3977.long 1195195770,1195195770 3978.long 2892260552,2892260552 3979.long 3881655738,3881655738 3980.long 723065138,723065138 3981.long 2507371494,2507371494 3982.long 2690670784,2690670784 3983.long 2558624025,2558624025 3984.long 3511635870,3511635870 3985.long 2145180835,2145180835 3986.long 1713513028,1713513028 3987.long 2116692564,2116692564 3988.long 2878378043,2878378043 3989.long 2206763019,2206763019 3990.long 3393603212,3393603212 3991.long 703524551,703524551 3992.long 3552098411,3552098411 3993.long 1007948840,1007948840 3994.long 2044649127,2044649127 3995.long 3797835452,3797835452 3996.long 487262998,487262998 3997.long 1994120109,1994120109 3998.long 1004593371,1004593371 3999.long 1446130276,1446130276 4000.long 1312438900,1312438900 4001.long 503974420,503974420 4002.long 3679013266,3679013266 4003.long 168166924,168166924 4004.long 1814307912,1814307912 4005.long 3831258296,3831258296 4006.long 1573044895,1573044895 4007.long 1859376061,1859376061 4008.long 4021070915,4021070915 4009.long 2791465668,2791465668 4010.long 2828112185,2828112185 4011.long 2761266481,2761266481 4012.long 937747667,937747667 4013.long 2339994098,2339994098 4014.long 854058965,854058965 4015.long 1137232011,1137232011 4016.long 1496790894,1496790894 4017.long 3077402074,3077402074 4018.long 2358086913,2358086913 4019.long 1691735473,1691735473 4020.long 3528347292,3528347292 4021.long 3769215305,3769215305 4022.long 3027004632,3027004632 4023.long 4199962284,4199962284 4024.long 133494003,133494003 4025.long 636152527,636152527 4026.long 2942657994,2942657994 4027.long 2390391540,2390391540 4028.long 3920539207,3920539207 4029.long 403179536,403179536 4030.long 3585784431,3585784431 4031.long 2289596656,2289596656 4032.long 1864705354,1864705354 4033.long 1915629148,1915629148 4034.long 605822008,605822008 4035.long 4054230615,4054230615 4036.long 3350508659,3350508659 4037.long 1371981463,1371981463 4038.long 602466507,602466507 4039.long 2094914977,2094914977 4040.long 2624877800,2624877800 4041.long 555687742,555687742 4042.long 3712699286,3712699286 4043.long 3703422305,3703422305 4044.long 2257292045,2257292045 4045.long 2240449039,2240449039 4046.long 2423288032,2423288032 4047.long 1111375484,1111375484 4048.long 3300242801,3300242801 4049.long 2858837708,2858837708 4050.long 3628615824,3628615824 4051.long 84083462,84083462 4052.long 32962295,32962295 4053.long 302911004,302911004 4054.long 2741068226,2741068226 4055.long 1597322602,1597322602 4056.long 4183250862,4183250862 4057.long 3501832553,3501832553 4058.long 2441512471,2441512471 4059.long 1489093017,1489093017 4060.long 656219450,656219450 4061.long 3114180135,3114180135 4062.long 954327513,954327513 4063.long 335083755,335083755 4064.long 3013122091,3013122091 4065.long 856756514,856756514 4066.long 3144247762,3144247762 4067.long 1893325225,1893325225 4068.long 2307821063,2307821063 4069.long 2811532339,2811532339 4070.long 3063651117,3063651117 4071.long 572399164,572399164 4072.long 2458355477,2458355477 4073.long 552200649,552200649 4074.long 1238290055,1238290055 4075.long 4283782570,4283782570 4076.long 2015897680,2015897680 4077.long 2061492133,2061492133 4078.long 2408352771,2408352771 4079.long 4171342169,4171342169 4080.long 2156497161,2156497161 4081.long 386731290,386731290 4082.long 3669999461,3669999461 4083.long 837215959,837215959 4084.long 3326231172,3326231172 4085.long 3093850320,3093850320 4086.long 3275833730,3275833730 4087.long 2962856233,2962856233 4088.long 1999449434,1999449434 4089.long 286199582,286199582 4090.long 3417354363,3417354363 4091.long 4233385128,4233385128 4092.long 3602627437,3602627437 4093.long 974525996,974525996 4094.byte 99,124,119,123,242,107,111,197 4095.byte 48,1,103,43,254,215,171,118 4096.byte 202,130,201,125,250,89,71,240 4097.byte 173,212,162,175,156,164,114,192 4098.byte 183,253,147,38,54,63,247,204 4099.byte 52,165,229,241,113,216,49,21 4100.byte 4,199,35,195,24,150,5,154 4101.byte 7,18,128,226,235,39,178,117 4102.byte 9,131,44,26,27,110,90,160 4103.byte 82,59,214,179,41,227,47,132 4104.byte 83,209,0,237,32,252,177,91 4105.byte 106,203,190,57,74,76,88,207 4106.byte 208,239,170,251,67,77,51,133 4107.byte 69,249,2,127,80,60,159,168 4108.byte 81,163,64,143,146,157,56,245 4109.byte 188,182,218,33,16,255,243,210 4110.byte 205,12,19,236,95,151,68,23 4111.byte 196,167,126,61,100,93,25,115 4112.byte 96,129,79,220,34,42,144,136 4113.byte 70,238,184,20,222,94,11,219 4114.byte 224,50,58,10,73,6,36,92 4115.byte 194,211,172,98,145,149,228,121 4116.byte 231,200,55,109,141,213,78,169 4117.byte 108,86,244,234,101,122,174,8 4118.byte 186,120,37,46,28,166,180,198 4119.byte 232,221,116,31,75,189,139,138 4120.byte 112,62,181,102,72,3,246,14 4121.byte 97,53,87,185,134,193,29,158 4122.byte 225,248,152,17,105,217,142,148 4123.byte 155,30,135,233,206,85,40,223 4124.byte 140,161,137,13,191,230,66,104 4125.byte 65,153,45,15,176,84,187,22 4126.byte 99,124,119,123,242,107,111,197 4127.byte 48,1,103,43,254,215,171,118 4128.byte 202,130,201,125,250,89,71,240 4129.byte 173,212,162,175,156,164,114,192 4130.byte 183,253,147,38,54,63,247,204 4131.byte 52,165,229,241,113,216,49,21 4132.byte 4,199,35,195,24,150,5,154 4133.byte 7,18,128,226,235,39,178,117 4134.byte 9,131,44,26,27,110,90,160 4135.byte 82,59,214,179,41,227,47,132 4136.byte 83,209,0,237,32,252,177,91 4137.byte 106,203,190,57,74,76,88,207 4138.byte 208,239,170,251,67,77,51,133 4139.byte 69,249,2,127,80,60,159,168 4140.byte 81,163,64,143,146,157,56,245 4141.byte 188,182,218,33,16,255,243,210 4142.byte 205,12,19,236,95,151,68,23 4143.byte 196,167,126,61,100,93,25,115 4144.byte 96,129,79,220,34,42,144,136 4145.byte 70,238,184,20,222,94,11,219 4146.byte 224,50,58,10,73,6,36,92 4147.byte 194,211,172,98,145,149,228,121 4148.byte 231,200,55,109,141,213,78,169 4149.byte 108,86,244,234,101,122,174,8 4150.byte 186,120,37,46,28,166,180,198 4151.byte 232,221,116,31,75,189,139,138 4152.byte 112,62,181,102,72,3,246,14 4153.byte 97,53,87,185,134,193,29,158 4154.byte 225,248,152,17,105,217,142,148 4155.byte 155,30,135,233,206,85,40,223 4156.byte 140,161,137,13,191,230,66,104 4157.byte 65,153,45,15,176,84,187,22 4158.byte 99,124,119,123,242,107,111,197 4159.byte 48,1,103,43,254,215,171,118 4160.byte 202,130,201,125,250,89,71,240 4161.byte 173,212,162,175,156,164,114,192 4162.byte 183,253,147,38,54,63,247,204 4163.byte 52,165,229,241,113,216,49,21 4164.byte 4,199,35,195,24,150,5,154 4165.byte 7,18,128,226,235,39,178,117 4166.byte 9,131,44,26,27,110,90,160 4167.byte 82,59,214,179,41,227,47,132 4168.byte 83,209,0,237,32,252,177,91 4169.byte 106,203,190,57,74,76,88,207 4170.byte 208,239,170,251,67,77,51,133 4171.byte 69,249,2,127,80,60,159,168 4172.byte 81,163,64,143,146,157,56,245 4173.byte 188,182,218,33,16,255,243,210 4174.byte 205,12,19,236,95,151,68,23 4175.byte 196,167,126,61,100,93,25,115 4176.byte 96,129,79,220,34,42,144,136 4177.byte 70,238,184,20,222,94,11,219 4178.byte 224,50,58,10,73,6,36,92 4179.byte 194,211,172,98,145,149,228,121 4180.byte 231,200,55,109,141,213,78,169 4181.byte 108,86,244,234,101,122,174,8 4182.byte 186,120,37,46,28,166,180,198 4183.byte 232,221,116,31,75,189,139,138 4184.byte 112,62,181,102,72,3,246,14 4185.byte 97,53,87,185,134,193,29,158 4186.byte 225,248,152,17,105,217,142,148 4187.byte 155,30,135,233,206,85,40,223 4188.byte 140,161,137,13,191,230,66,104 4189.byte 65,153,45,15,176,84,187,22 4190.byte 99,124,119,123,242,107,111,197 4191.byte 48,1,103,43,254,215,171,118 4192.byte 202,130,201,125,250,89,71,240 4193.byte 173,212,162,175,156,164,114,192 4194.byte 183,253,147,38,54,63,247,204 4195.byte 52,165,229,241,113,216,49,21 4196.byte 4,199,35,195,24,150,5,154 4197.byte 7,18,128,226,235,39,178,117 4198.byte 9,131,44,26,27,110,90,160 4199.byte 82,59,214,179,41,227,47,132 4200.byte 83,209,0,237,32,252,177,91 4201.byte 106,203,190,57,74,76,88,207 4202.byte 208,239,170,251,67,77,51,133 4203.byte 69,249,2,127,80,60,159,168 4204.byte 81,163,64,143,146,157,56,245 4205.byte 188,182,218,33,16,255,243,210 4206.byte 205,12,19,236,95,151,68,23 4207.byte 196,167,126,61,100,93,25,115 4208.byte 96,129,79,220,34,42,144,136 4209.byte 70,238,184,20,222,94,11,219 4210.byte 224,50,58,10,73,6,36,92 4211.byte 194,211,172,98,145,149,228,121 4212.byte 231,200,55,109,141,213,78,169 4213.byte 108,86,244,234,101,122,174,8 4214.byte 186,120,37,46,28,166,180,198 4215.byte 232,221,116,31,75,189,139,138 4216.byte 112,62,181,102,72,3,246,14 4217.byte 97,53,87,185,134,193,29,158 4218.byte 225,248,152,17,105,217,142,148 4219.byte 155,30,135,233,206,85,40,223 4220.byte 140,161,137,13,191,230,66,104 4221.byte 65,153,45,15,176,84,187,22 4222.long 1,2,4,8 4223.long 16,32,64,128 4224.long 27,54,0,0 4225.long 0,0,0,0 4226.size _x86_AES_encrypt,.-_x86_AES_encrypt 4227.globl AES_encrypt 4228.type AES_encrypt,@function 4229.align 16 4230AES_encrypt: 4231.L_AES_encrypt_begin: 4232 pushl %ebp 4233 pushl %ebx 4234 pushl %esi 4235 pushl %edi 4236 movl 20(%esp),%esi 4237 movl 28(%esp),%edi 4238 movl %esp,%eax 4239 subl $36,%esp 4240 andl $-64,%esp 4241 leal -127(%edi),%ebx 4242 subl %esp,%ebx 4243 negl %ebx 4244 andl $960,%ebx 4245 subl %ebx,%esp 4246 addl $4,%esp 4247 movl %eax,28(%esp) 4248 call .L004pic_point 4249.L004pic_point: 4250 popl %ebp 4251 leal OPENSSL_ia32cap_P,%eax 4252 leal .LAES_Te-.L004pic_point(%ebp),%ebp 4253 leal 764(%esp),%ebx 4254 subl %ebp,%ebx 4255 andl $768,%ebx 4256 leal 2176(%ebp,%ebx,1),%ebp 4257 btl $25,(%eax) 4258 jnc .L005x86 4259 movq (%esi),%mm0 4260 movq 8(%esi),%mm4 4261 call _sse_AES_encrypt_compact 4262 movl 28(%esp),%esp 4263 movl 24(%esp),%esi 4264 movq %mm0,(%esi) 4265 movq %mm4,8(%esi) 4266 emms 4267 popl %edi 4268 popl %esi 4269 popl %ebx 4270 popl %ebp 4271 ret 4272.align 16 4273.L005x86: 4274 movl %ebp,24(%esp) 4275 movl (%esi),%eax 4276 movl 4(%esi),%ebx 4277 movl 8(%esi),%ecx 4278 movl 12(%esi),%edx 4279 call _x86_AES_encrypt_compact 4280 movl 28(%esp),%esp 4281 movl 24(%esp),%esi 4282 movl %eax,(%esi) 4283 movl %ebx,4(%esi) 4284 movl %ecx,8(%esi) 4285 movl %edx,12(%esi) 4286 popl %edi 4287 popl %esi 4288 popl %ebx 4289 popl %ebp 4290 ret 4291.size AES_encrypt,.-.L_AES_encrypt_begin 4292.type _x86_AES_decrypt_compact,@function 4293.align 16 4294_x86_AES_decrypt_compact: 4295 movl %edi,20(%esp) 4296 xorl (%edi),%eax 4297 xorl 4(%edi),%ebx 4298 xorl 8(%edi),%ecx 4299 xorl 12(%edi),%edx 4300 movl 240(%edi),%esi 4301 leal -2(%esi,%esi,1),%esi 4302 leal (%edi,%esi,8),%esi 4303 movl %esi,24(%esp) 4304 movl -128(%ebp),%edi 4305 movl -96(%ebp),%esi 4306 movl -64(%ebp),%edi 4307 movl -32(%ebp),%esi 4308 movl (%ebp),%edi 4309 movl 32(%ebp),%esi 4310 movl 64(%ebp),%edi 4311 movl 96(%ebp),%esi 4312.align 16 4313.L006loop: 4314 movl %eax,%esi 4315 andl $255,%esi 4316 movzbl -128(%ebp,%esi,1),%esi 4317 movzbl %dh,%edi 4318 movzbl -128(%ebp,%edi,1),%edi 4319 shll $8,%edi 4320 xorl %edi,%esi 4321 movl %ecx,%edi 4322 shrl $16,%edi 4323 andl $255,%edi 4324 movzbl -128(%ebp,%edi,1),%edi 4325 shll $16,%edi 4326 xorl %edi,%esi 4327 movl %ebx,%edi 4328 shrl $24,%edi 4329 movzbl -128(%ebp,%edi,1),%edi 4330 shll $24,%edi 4331 xorl %edi,%esi 4332 movl %esi,4(%esp) 4333 movl %ebx,%esi 4334 andl $255,%esi 4335 movzbl -128(%ebp,%esi,1),%esi 4336 movzbl %ah,%edi 4337 movzbl -128(%ebp,%edi,1),%edi 4338 shll $8,%edi 4339 xorl %edi,%esi 4340 movl %edx,%edi 4341 shrl $16,%edi 4342 andl $255,%edi 4343 movzbl -128(%ebp,%edi,1),%edi 4344 shll $16,%edi 4345 xorl %edi,%esi 4346 movl %ecx,%edi 4347 shrl $24,%edi 4348 movzbl -128(%ebp,%edi,1),%edi 4349 shll $24,%edi 4350 xorl %edi,%esi 4351 movl %esi,8(%esp) 4352 movl %ecx,%esi 4353 andl $255,%esi 4354 movzbl -128(%ebp,%esi,1),%esi 4355 movzbl %bh,%edi 4356 movzbl -128(%ebp,%edi,1),%edi 4357 shll $8,%edi 4358 xorl %edi,%esi 4359 movl %eax,%edi 4360 shrl $16,%edi 4361 andl $255,%edi 4362 movzbl -128(%ebp,%edi,1),%edi 4363 shll $16,%edi 4364 xorl %edi,%esi 4365 movl %edx,%edi 4366 shrl $24,%edi 4367 movzbl -128(%ebp,%edi,1),%edi 4368 shll $24,%edi 4369 xorl %edi,%esi 4370 andl $255,%edx 4371 movzbl -128(%ebp,%edx,1),%edx 4372 movzbl %ch,%ecx 4373 movzbl -128(%ebp,%ecx,1),%ecx 4374 shll $8,%ecx 4375 xorl %ecx,%edx 4376 movl %esi,%ecx 4377 shrl $16,%ebx 4378 andl $255,%ebx 4379 movzbl -128(%ebp,%ebx,1),%ebx 4380 shll $16,%ebx 4381 xorl %ebx,%edx 4382 shrl $24,%eax 4383 movzbl -128(%ebp,%eax,1),%eax 4384 shll $24,%eax 4385 xorl %eax,%edx 4386 movl $2155905152,%edi 4387 andl %ecx,%edi 4388 movl %edi,%esi 4389 shrl $7,%edi 4390 leal (%ecx,%ecx,1),%eax 4391 subl %edi,%esi 4392 andl $4278124286,%eax 4393 andl $454761243,%esi 4394 xorl %esi,%eax 4395 movl $2155905152,%edi 4396 andl %eax,%edi 4397 movl %edi,%esi 4398 shrl $7,%edi 4399 leal (%eax,%eax,1),%ebx 4400 subl %edi,%esi 4401 andl $4278124286,%ebx 4402 andl $454761243,%esi 4403 xorl %ecx,%eax 4404 xorl %esi,%ebx 4405 movl $2155905152,%edi 4406 andl %ebx,%edi 4407 movl %edi,%esi 4408 shrl $7,%edi 4409 leal (%ebx,%ebx,1),%ebp 4410 subl %edi,%esi 4411 andl $4278124286,%ebp 4412 andl $454761243,%esi 4413 xorl %ecx,%ebx 4414 roll $8,%ecx 4415 xorl %esi,%ebp 4416 xorl %eax,%ecx 4417 xorl %ebp,%eax 4418 xorl %ebx,%ecx 4419 xorl %ebp,%ebx 4420 roll $24,%eax 4421 xorl %ebp,%ecx 4422 roll $16,%ebx 4423 xorl %eax,%ecx 4424 roll $8,%ebp 4425 xorl %ebx,%ecx 4426 movl 4(%esp),%eax 4427 xorl %ebp,%ecx 4428 movl %ecx,12(%esp) 4429 movl $2155905152,%edi 4430 andl %edx,%edi 4431 movl %edi,%esi 4432 shrl $7,%edi 4433 leal (%edx,%edx,1),%ebx 4434 subl %edi,%esi 4435 andl $4278124286,%ebx 4436 andl $454761243,%esi 4437 xorl %esi,%ebx 4438 movl $2155905152,%edi 4439 andl %ebx,%edi 4440 movl %edi,%esi 4441 shrl $7,%edi 4442 leal (%ebx,%ebx,1),%ecx 4443 subl %edi,%esi 4444 andl $4278124286,%ecx 4445 andl $454761243,%esi 4446 xorl %edx,%ebx 4447 xorl %esi,%ecx 4448 movl $2155905152,%edi 4449 andl %ecx,%edi 4450 movl %edi,%esi 4451 shrl $7,%edi 4452 leal (%ecx,%ecx,1),%ebp 4453 subl %edi,%esi 4454 andl $4278124286,%ebp 4455 andl $454761243,%esi 4456 xorl %edx,%ecx 4457 roll $8,%edx 4458 xorl %esi,%ebp 4459 xorl %ebx,%edx 4460 xorl %ebp,%ebx 4461 xorl %ecx,%edx 4462 xorl %ebp,%ecx 4463 roll $24,%ebx 4464 xorl %ebp,%edx 4465 roll $16,%ecx 4466 xorl %ebx,%edx 4467 roll $8,%ebp 4468 xorl %ecx,%edx 4469 movl 8(%esp),%ebx 4470 xorl %ebp,%edx 4471 movl %edx,16(%esp) 4472 movl $2155905152,%edi 4473 andl %eax,%edi 4474 movl %edi,%esi 4475 shrl $7,%edi 4476 leal (%eax,%eax,1),%ecx 4477 subl %edi,%esi 4478 andl $4278124286,%ecx 4479 andl $454761243,%esi 4480 xorl %esi,%ecx 4481 movl $2155905152,%edi 4482 andl %ecx,%edi 4483 movl %edi,%esi 4484 shrl $7,%edi 4485 leal (%ecx,%ecx,1),%edx 4486 subl %edi,%esi 4487 andl $4278124286,%edx 4488 andl $454761243,%esi 4489 xorl %eax,%ecx 4490 xorl %esi,%edx 4491 movl $2155905152,%edi 4492 andl %edx,%edi 4493 movl %edi,%esi 4494 shrl $7,%edi 4495 leal (%edx,%edx,1),%ebp 4496 subl %edi,%esi 4497 andl $4278124286,%ebp 4498 andl $454761243,%esi 4499 xorl %eax,%edx 4500 roll $8,%eax 4501 xorl %esi,%ebp 4502 xorl %ecx,%eax 4503 xorl %ebp,%ecx 4504 xorl %edx,%eax 4505 xorl %ebp,%edx 4506 roll $24,%ecx 4507 xorl %ebp,%eax 4508 roll $16,%edx 4509 xorl %ecx,%eax 4510 roll $8,%ebp 4511 xorl %edx,%eax 4512 xorl %ebp,%eax 4513 movl $2155905152,%edi 4514 andl %ebx,%edi 4515 movl %edi,%esi 4516 shrl $7,%edi 4517 leal (%ebx,%ebx,1),%ecx 4518 subl %edi,%esi 4519 andl $4278124286,%ecx 4520 andl $454761243,%esi 4521 xorl %esi,%ecx 4522 movl $2155905152,%edi 4523 andl %ecx,%edi 4524 movl %edi,%esi 4525 shrl $7,%edi 4526 leal (%ecx,%ecx,1),%edx 4527 subl %edi,%esi 4528 andl $4278124286,%edx 4529 andl $454761243,%esi 4530 xorl %ebx,%ecx 4531 xorl %esi,%edx 4532 movl $2155905152,%edi 4533 andl %edx,%edi 4534 movl %edi,%esi 4535 shrl $7,%edi 4536 leal (%edx,%edx,1),%ebp 4537 subl %edi,%esi 4538 andl $4278124286,%ebp 4539 andl $454761243,%esi 4540 xorl %ebx,%edx 4541 roll $8,%ebx 4542 xorl %esi,%ebp 4543 xorl %ecx,%ebx 4544 xorl %ebp,%ecx 4545 xorl %edx,%ebx 4546 xorl %ebp,%edx 4547 roll $24,%ecx 4548 xorl %ebp,%ebx 4549 roll $16,%edx 4550 xorl %ecx,%ebx 4551 roll $8,%ebp 4552 xorl %edx,%ebx 4553 movl 12(%esp),%ecx 4554 xorl %ebp,%ebx 4555 movl 16(%esp),%edx 4556 movl 20(%esp),%edi 4557 movl 28(%esp),%ebp 4558 addl $16,%edi 4559 xorl (%edi),%eax 4560 xorl 4(%edi),%ebx 4561 xorl 8(%edi),%ecx 4562 xorl 12(%edi),%edx 4563 cmpl 24(%esp),%edi 4564 movl %edi,20(%esp) 4565 jb .L006loop 4566 movl %eax,%esi 4567 andl $255,%esi 4568 movzbl -128(%ebp,%esi,1),%esi 4569 movzbl %dh,%edi 4570 movzbl -128(%ebp,%edi,1),%edi 4571 shll $8,%edi 4572 xorl %edi,%esi 4573 movl %ecx,%edi 4574 shrl $16,%edi 4575 andl $255,%edi 4576 movzbl -128(%ebp,%edi,1),%edi 4577 shll $16,%edi 4578 xorl %edi,%esi 4579 movl %ebx,%edi 4580 shrl $24,%edi 4581 movzbl -128(%ebp,%edi,1),%edi 4582 shll $24,%edi 4583 xorl %edi,%esi 4584 movl %esi,4(%esp) 4585 movl %ebx,%esi 4586 andl $255,%esi 4587 movzbl -128(%ebp,%esi,1),%esi 4588 movzbl %ah,%edi 4589 movzbl -128(%ebp,%edi,1),%edi 4590 shll $8,%edi 4591 xorl %edi,%esi 4592 movl %edx,%edi 4593 shrl $16,%edi 4594 andl $255,%edi 4595 movzbl -128(%ebp,%edi,1),%edi 4596 shll $16,%edi 4597 xorl %edi,%esi 4598 movl %ecx,%edi 4599 shrl $24,%edi 4600 movzbl -128(%ebp,%edi,1),%edi 4601 shll $24,%edi 4602 xorl %edi,%esi 4603 movl %esi,8(%esp) 4604 movl %ecx,%esi 4605 andl $255,%esi 4606 movzbl -128(%ebp,%esi,1),%esi 4607 movzbl %bh,%edi 4608 movzbl -128(%ebp,%edi,1),%edi 4609 shll $8,%edi 4610 xorl %edi,%esi 4611 movl %eax,%edi 4612 shrl $16,%edi 4613 andl $255,%edi 4614 movzbl -128(%ebp,%edi,1),%edi 4615 shll $16,%edi 4616 xorl %edi,%esi 4617 movl %edx,%edi 4618 shrl $24,%edi 4619 movzbl -128(%ebp,%edi,1),%edi 4620 shll $24,%edi 4621 xorl %edi,%esi 4622 movl 20(%esp),%edi 4623 andl $255,%edx 4624 movzbl -128(%ebp,%edx,1),%edx 4625 movzbl %ch,%ecx 4626 movzbl -128(%ebp,%ecx,1),%ecx 4627 shll $8,%ecx 4628 xorl %ecx,%edx 4629 movl %esi,%ecx 4630 shrl $16,%ebx 4631 andl $255,%ebx 4632 movzbl -128(%ebp,%ebx,1),%ebx 4633 shll $16,%ebx 4634 xorl %ebx,%edx 4635 movl 8(%esp),%ebx 4636 shrl $24,%eax 4637 movzbl -128(%ebp,%eax,1),%eax 4638 shll $24,%eax 4639 xorl %eax,%edx 4640 movl 4(%esp),%eax 4641 xorl 16(%edi),%eax 4642 xorl 20(%edi),%ebx 4643 xorl 24(%edi),%ecx 4644 xorl 28(%edi),%edx 4645 ret 4646.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact 4647.type _sse_AES_decrypt_compact,@function 4648.align 16 4649_sse_AES_decrypt_compact: 4650 pxor (%edi),%mm0 4651 pxor 8(%edi),%mm4 4652 movl 240(%edi),%esi 4653 leal -2(%esi,%esi,1),%esi 4654 leal (%edi,%esi,8),%esi 4655 movl %esi,24(%esp) 4656 movl $454761243,%eax 4657 movl %eax,8(%esp) 4658 movl %eax,12(%esp) 4659 movl -128(%ebp),%eax 4660 movl -96(%ebp),%ebx 4661 movl -64(%ebp),%ecx 4662 movl -32(%ebp),%edx 4663 movl (%ebp),%eax 4664 movl 32(%ebp),%ebx 4665 movl 64(%ebp),%ecx 4666 movl 96(%ebp),%edx 4667.align 16 4668.L007loop: 4669 pshufw $12,%mm0,%mm1 4670 pshufw $9,%mm4,%mm5 4671 movd %mm1,%eax 4672 movd %mm5,%ebx 4673 movl %edi,20(%esp) 4674 movzbl %al,%esi 4675 movzbl %ah,%edx 4676 pshufw $6,%mm0,%mm2 4677 movzbl -128(%ebp,%esi,1),%ecx 4678 movzbl %bl,%edi 4679 movzbl -128(%ebp,%edx,1),%edx 4680 shrl $16,%eax 4681 shll $8,%edx 4682 movzbl -128(%ebp,%edi,1),%esi 4683 movzbl %bh,%edi 4684 shll $16,%esi 4685 pshufw $3,%mm4,%mm6 4686 orl %esi,%ecx 4687 movzbl -128(%ebp,%edi,1),%esi 4688 movzbl %ah,%edi 4689 shll $24,%esi 4690 shrl $16,%ebx 4691 orl %esi,%edx 4692 movzbl -128(%ebp,%edi,1),%esi 4693 movzbl %bh,%edi 4694 shll $24,%esi 4695 orl %esi,%ecx 4696 movzbl -128(%ebp,%edi,1),%esi 4697 movzbl %al,%edi 4698 shll $8,%esi 4699 movd %mm2,%eax 4700 orl %esi,%ecx 4701 movzbl -128(%ebp,%edi,1),%esi 4702 movzbl %bl,%edi 4703 shll $16,%esi 4704 movd %mm6,%ebx 4705 movd %ecx,%mm0 4706 movzbl -128(%ebp,%edi,1),%ecx 4707 movzbl %al,%edi 4708 orl %esi,%ecx 4709 movzbl -128(%ebp,%edi,1),%esi 4710 movzbl %bl,%edi 4711 orl %esi,%edx 4712 movzbl -128(%ebp,%edi,1),%esi 4713 movzbl %ah,%edi 4714 shll $16,%esi 4715 shrl $16,%eax 4716 orl %esi,%edx 4717 movzbl -128(%ebp,%edi,1),%esi 4718 movzbl %bh,%edi 4719 shrl $16,%ebx 4720 shll $8,%esi 4721 movd %edx,%mm1 4722 movzbl -128(%ebp,%edi,1),%edx 4723 movzbl %bh,%edi 4724 shll $24,%edx 4725 andl $255,%ebx 4726 orl %esi,%edx 4727 punpckldq %mm1,%mm0 4728 movzbl -128(%ebp,%edi,1),%esi 4729 movzbl %al,%edi 4730 shll $8,%esi 4731 movzbl %ah,%eax 4732 movzbl -128(%ebp,%ebx,1),%ebx 4733 orl %esi,%ecx 4734 movzbl -128(%ebp,%edi,1),%esi 4735 orl %ebx,%edx 4736 shll $16,%esi 4737 movzbl -128(%ebp,%eax,1),%eax 4738 orl %esi,%edx 4739 shll $24,%eax 4740 orl %eax,%ecx 4741 movl 20(%esp),%edi 4742 movd %edx,%mm4 4743 movd %ecx,%mm5 4744 punpckldq %mm5,%mm4 4745 addl $16,%edi 4746 cmpl 24(%esp),%edi 4747 ja .L008out 4748 movq %mm0,%mm3 4749 movq %mm4,%mm7 4750 pshufw $228,%mm0,%mm2 4751 pshufw $228,%mm4,%mm6 4752 movq %mm0,%mm1 4753 movq %mm4,%mm5 4754 pshufw $177,%mm0,%mm0 4755 pshufw $177,%mm4,%mm4 4756 pslld $8,%mm2 4757 pslld $8,%mm6 4758 psrld $8,%mm3 4759 psrld $8,%mm7 4760 pxor %mm2,%mm0 4761 pxor %mm6,%mm4 4762 pxor %mm3,%mm0 4763 pxor %mm7,%mm4 4764 pslld $16,%mm2 4765 pslld $16,%mm6 4766 psrld $16,%mm3 4767 psrld $16,%mm7 4768 pxor %mm2,%mm0 4769 pxor %mm6,%mm4 4770 pxor %mm3,%mm0 4771 pxor %mm7,%mm4 4772 movq 8(%esp),%mm3 4773 pxor %mm2,%mm2 4774 pxor %mm6,%mm6 4775 pcmpgtb %mm1,%mm2 4776 pcmpgtb %mm5,%mm6 4777 pand %mm3,%mm2 4778 pand %mm3,%mm6 4779 paddb %mm1,%mm1 4780 paddb %mm5,%mm5 4781 pxor %mm2,%mm1 4782 pxor %mm6,%mm5 4783 movq %mm1,%mm3 4784 movq %mm5,%mm7 4785 movq %mm1,%mm2 4786 movq %mm5,%mm6 4787 pxor %mm1,%mm0 4788 pxor %mm5,%mm4 4789 pslld $24,%mm3 4790 pslld $24,%mm7 4791 psrld $8,%mm2 4792 psrld $8,%mm6 4793 pxor %mm3,%mm0 4794 pxor %mm7,%mm4 4795 pxor %mm2,%mm0 4796 pxor %mm6,%mm4 4797 movq 8(%esp),%mm2 4798 pxor %mm3,%mm3 4799 pxor %mm7,%mm7 4800 pcmpgtb %mm1,%mm3 4801 pcmpgtb %mm5,%mm7 4802 pand %mm2,%mm3 4803 pand %mm2,%mm7 4804 paddb %mm1,%mm1 4805 paddb %mm5,%mm5 4806 pxor %mm3,%mm1 4807 pxor %mm7,%mm5 4808 pshufw $177,%mm1,%mm3 4809 pshufw $177,%mm5,%mm7 4810 pxor %mm1,%mm0 4811 pxor %mm5,%mm4 4812 pxor %mm3,%mm0 4813 pxor %mm7,%mm4 4814 pxor %mm3,%mm3 4815 pxor %mm7,%mm7 4816 pcmpgtb %mm1,%mm3 4817 pcmpgtb %mm5,%mm7 4818 pand %mm2,%mm3 4819 pand %mm2,%mm7 4820 paddb %mm1,%mm1 4821 paddb %mm5,%mm5 4822 pxor %mm3,%mm1 4823 pxor %mm7,%mm5 4824 pxor %mm1,%mm0 4825 pxor %mm5,%mm4 4826 movq %mm1,%mm3 4827 movq %mm5,%mm7 4828 pshufw $177,%mm1,%mm2 4829 pshufw $177,%mm5,%mm6 4830 pxor %mm2,%mm0 4831 pxor %mm6,%mm4 4832 pslld $8,%mm1 4833 pslld $8,%mm5 4834 psrld $8,%mm3 4835 psrld $8,%mm7 4836 movq (%edi),%mm2 4837 movq 8(%edi),%mm6 4838 pxor %mm1,%mm0 4839 pxor %mm5,%mm4 4840 pxor %mm3,%mm0 4841 pxor %mm7,%mm4 4842 movl -128(%ebp),%eax 4843 pslld $16,%mm1 4844 pslld $16,%mm5 4845 movl -64(%ebp),%ebx 4846 psrld $16,%mm3 4847 psrld $16,%mm7 4848 movl (%ebp),%ecx 4849 pxor %mm1,%mm0 4850 pxor %mm5,%mm4 4851 movl 64(%ebp),%edx 4852 pxor %mm3,%mm0 4853 pxor %mm7,%mm4 4854 pxor %mm2,%mm0 4855 pxor %mm6,%mm4 4856 jmp .L007loop 4857.align 16 4858.L008out: 4859 pxor (%edi),%mm0 4860 pxor 8(%edi),%mm4 4861 ret 4862.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact 4863.type _x86_AES_decrypt,@function 4864.align 16 4865_x86_AES_decrypt: 4866 movl %edi,20(%esp) 4867 xorl (%edi),%eax 4868 xorl 4(%edi),%ebx 4869 xorl 8(%edi),%ecx 4870 xorl 12(%edi),%edx 4871 movl 240(%edi),%esi 4872 leal -2(%esi,%esi,1),%esi 4873 leal (%edi,%esi,8),%esi 4874 movl %esi,24(%esp) 4875.align 16 4876.L009loop: 4877 movl %eax,%esi 4878 andl $255,%esi 4879 movl (%ebp,%esi,8),%esi 4880 movzbl %dh,%edi 4881 xorl 3(%ebp,%edi,8),%esi 4882 movl %ecx,%edi 4883 shrl $16,%edi 4884 andl $255,%edi 4885 xorl 2(%ebp,%edi,8),%esi 4886 movl %ebx,%edi 4887 shrl $24,%edi 4888 xorl 1(%ebp,%edi,8),%esi 4889 movl %esi,4(%esp) 4890 4891 movl %ebx,%esi 4892 andl $255,%esi 4893 movl (%ebp,%esi,8),%esi 4894 movzbl %ah,%edi 4895 xorl 3(%ebp,%edi,8),%esi 4896 movl %edx,%edi 4897 shrl $16,%edi 4898 andl $255,%edi 4899 xorl 2(%ebp,%edi,8),%esi 4900 movl %ecx,%edi 4901 shrl $24,%edi 4902 xorl 1(%ebp,%edi,8),%esi 4903 movl %esi,8(%esp) 4904 4905 movl %ecx,%esi 4906 andl $255,%esi 4907 movl (%ebp,%esi,8),%esi 4908 movzbl %bh,%edi 4909 xorl 3(%ebp,%edi,8),%esi 4910 movl %eax,%edi 4911 shrl $16,%edi 4912 andl $255,%edi 4913 xorl 2(%ebp,%edi,8),%esi 4914 movl %edx,%edi 4915 shrl $24,%edi 4916 xorl 1(%ebp,%edi,8),%esi 4917 4918 movl 20(%esp),%edi 4919 andl $255,%edx 4920 movl (%ebp,%edx,8),%edx 4921 movzbl %ch,%ecx 4922 xorl 3(%ebp,%ecx,8),%edx 4923 movl %esi,%ecx 4924 shrl $16,%ebx 4925 andl $255,%ebx 4926 xorl 2(%ebp,%ebx,8),%edx 4927 movl 8(%esp),%ebx 4928 shrl $24,%eax 4929 xorl 1(%ebp,%eax,8),%edx 4930 movl 4(%esp),%eax 4931 4932 addl $16,%edi 4933 xorl (%edi),%eax 4934 xorl 4(%edi),%ebx 4935 xorl 8(%edi),%ecx 4936 xorl 12(%edi),%edx 4937 cmpl 24(%esp),%edi 4938 movl %edi,20(%esp) 4939 jb .L009loop 4940 leal 2176(%ebp),%ebp 4941 movl -128(%ebp),%edi 4942 movl -96(%ebp),%esi 4943 movl -64(%ebp),%edi 4944 movl -32(%ebp),%esi 4945 movl (%ebp),%edi 4946 movl 32(%ebp),%esi 4947 movl 64(%ebp),%edi 4948 movl 96(%ebp),%esi 4949 leal -128(%ebp),%ebp 4950 movl %eax,%esi 4951 andl $255,%esi 4952 movzbl (%ebp,%esi,1),%esi 4953 movzbl %dh,%edi 4954 movzbl (%ebp,%edi,1),%edi 4955 shll $8,%edi 4956 xorl %edi,%esi 4957 movl %ecx,%edi 4958 shrl $16,%edi 4959 andl $255,%edi 4960 movzbl (%ebp,%edi,1),%edi 4961 shll $16,%edi 4962 xorl %edi,%esi 4963 movl %ebx,%edi 4964 shrl $24,%edi 4965 movzbl (%ebp,%edi,1),%edi 4966 shll $24,%edi 4967 xorl %edi,%esi 4968 movl %esi,4(%esp) 4969 movl %ebx,%esi 4970 andl $255,%esi 4971 movzbl (%ebp,%esi,1),%esi 4972 movzbl %ah,%edi 4973 movzbl (%ebp,%edi,1),%edi 4974 shll $8,%edi 4975 xorl %edi,%esi 4976 movl %edx,%edi 4977 shrl $16,%edi 4978 andl $255,%edi 4979 movzbl (%ebp,%edi,1),%edi 4980 shll $16,%edi 4981 xorl %edi,%esi 4982 movl %ecx,%edi 4983 shrl $24,%edi 4984 movzbl (%ebp,%edi,1),%edi 4985 shll $24,%edi 4986 xorl %edi,%esi 4987 movl %esi,8(%esp) 4988 movl %ecx,%esi 4989 andl $255,%esi 4990 movzbl (%ebp,%esi,1),%esi 4991 movzbl %bh,%edi 4992 movzbl (%ebp,%edi,1),%edi 4993 shll $8,%edi 4994 xorl %edi,%esi 4995 movl %eax,%edi 4996 shrl $16,%edi 4997 andl $255,%edi 4998 movzbl (%ebp,%edi,1),%edi 4999 shll $16,%edi 5000 xorl %edi,%esi 5001 movl %edx,%edi 5002 shrl $24,%edi 5003 movzbl (%ebp,%edi,1),%edi 5004 shll $24,%edi 5005 xorl %edi,%esi 5006 movl 20(%esp),%edi 5007 andl $255,%edx 5008 movzbl (%ebp,%edx,1),%edx 5009 movzbl %ch,%ecx 5010 movzbl (%ebp,%ecx,1),%ecx 5011 shll $8,%ecx 5012 xorl %ecx,%edx 5013 movl %esi,%ecx 5014 shrl $16,%ebx 5015 andl $255,%ebx 5016 movzbl (%ebp,%ebx,1),%ebx 5017 shll $16,%ebx 5018 xorl %ebx,%edx 5019 movl 8(%esp),%ebx 5020 shrl $24,%eax 5021 movzbl (%ebp,%eax,1),%eax 5022 shll $24,%eax 5023 xorl %eax,%edx 5024 movl 4(%esp),%eax 5025 leal -2048(%ebp),%ebp 5026 addl $16,%edi 5027 xorl (%edi),%eax 5028 xorl 4(%edi),%ebx 5029 xorl 8(%edi),%ecx 5030 xorl 12(%edi),%edx 5031 ret 5032.align 64 5033.LAES_Td: 5034.long 1353184337,1353184337 5035.long 1399144830,1399144830 5036.long 3282310938,3282310938 5037.long 2522752826,2522752826 5038.long 3412831035,3412831035 5039.long 4047871263,4047871263 5040.long 2874735276,2874735276 5041.long 2466505547,2466505547 5042.long 1442459680,1442459680 5043.long 4134368941,4134368941 5044.long 2440481928,2440481928 5045.long 625738485,625738485 5046.long 4242007375,4242007375 5047.long 3620416197,3620416197 5048.long 2151953702,2151953702 5049.long 2409849525,2409849525 5050.long 1230680542,1230680542 5051.long 1729870373,1729870373 5052.long 2551114309,2551114309 5053.long 3787521629,3787521629 5054.long 41234371,41234371 5055.long 317738113,317738113 5056.long 2744600205,2744600205 5057.long 3338261355,3338261355 5058.long 3881799427,3881799427 5059.long 2510066197,2510066197 5060.long 3950669247,3950669247 5061.long 3663286933,3663286933 5062.long 763608788,763608788 5063.long 3542185048,3542185048 5064.long 694804553,694804553 5065.long 1154009486,1154009486 5066.long 1787413109,1787413109 5067.long 2021232372,2021232372 5068.long 1799248025,1799248025 5069.long 3715217703,3715217703 5070.long 3058688446,3058688446 5071.long 397248752,397248752 5072.long 1722556617,1722556617 5073.long 3023752829,3023752829 5074.long 407560035,407560035 5075.long 2184256229,2184256229 5076.long 1613975959,1613975959 5077.long 1165972322,1165972322 5078.long 3765920945,3765920945 5079.long 2226023355,2226023355 5080.long 480281086,480281086 5081.long 2485848313,2485848313 5082.long 1483229296,1483229296 5083.long 436028815,436028815 5084.long 2272059028,2272059028 5085.long 3086515026,3086515026 5086.long 601060267,601060267 5087.long 3791801202,3791801202 5088.long 1468997603,1468997603 5089.long 715871590,715871590 5090.long 120122290,120122290 5091.long 63092015,63092015 5092.long 2591802758,2591802758 5093.long 2768779219,2768779219 5094.long 4068943920,4068943920 5095.long 2997206819,2997206819 5096.long 3127509762,3127509762 5097.long 1552029421,1552029421 5098.long 723308426,723308426 5099.long 2461301159,2461301159 5100.long 4042393587,4042393587 5101.long 2715969870,2715969870 5102.long 3455375973,3455375973 5103.long 3586000134,3586000134 5104.long 526529745,526529745 5105.long 2331944644,2331944644 5106.long 2639474228,2639474228 5107.long 2689987490,2689987490 5108.long 853641733,853641733 5109.long 1978398372,1978398372 5110.long 971801355,971801355 5111.long 2867814464,2867814464 5112.long 111112542,111112542 5113.long 1360031421,1360031421 5114.long 4186579262,4186579262 5115.long 1023860118,1023860118 5116.long 2919579357,2919579357 5117.long 1186850381,1186850381 5118.long 3045938321,3045938321 5119.long 90031217,90031217 5120.long 1876166148,1876166148 5121.long 4279586912,4279586912 5122.long 620468249,620468249 5123.long 2548678102,2548678102 5124.long 3426959497,3426959497 5125.long 2006899047,2006899047 5126.long 3175278768,3175278768 5127.long 2290845959,2290845959 5128.long 945494503,945494503 5129.long 3689859193,3689859193 5130.long 1191869601,1191869601 5131.long 3910091388,3910091388 5132.long 3374220536,3374220536 5133.long 0,0 5134.long 2206629897,2206629897 5135.long 1223502642,1223502642 5136.long 2893025566,2893025566 5137.long 1316117100,1316117100 5138.long 4227796733,4227796733 5139.long 1446544655,1446544655 5140.long 517320253,517320253 5141.long 658058550,658058550 5142.long 1691946762,1691946762 5143.long 564550760,564550760 5144.long 3511966619,3511966619 5145.long 976107044,976107044 5146.long 2976320012,2976320012 5147.long 266819475,266819475 5148.long 3533106868,3533106868 5149.long 2660342555,2660342555 5150.long 1338359936,1338359936 5151.long 2720062561,2720062561 5152.long 1766553434,1766553434 5153.long 370807324,370807324 5154.long 179999714,179999714 5155.long 3844776128,3844776128 5156.long 1138762300,1138762300 5157.long 488053522,488053522 5158.long 185403662,185403662 5159.long 2915535858,2915535858 5160.long 3114841645,3114841645 5161.long 3366526484,3366526484 5162.long 2233069911,2233069911 5163.long 1275557295,1275557295 5164.long 3151862254,3151862254 5165.long 4250959779,4250959779 5166.long 2670068215,2670068215 5167.long 3170202204,3170202204 5168.long 3309004356,3309004356 5169.long 880737115,880737115 5170.long 1982415755,1982415755 5171.long 3703972811,3703972811 5172.long 1761406390,1761406390 5173.long 1676797112,1676797112 5174.long 3403428311,3403428311 5175.long 277177154,277177154 5176.long 1076008723,1076008723 5177.long 538035844,538035844 5178.long 2099530373,2099530373 5179.long 4164795346,4164795346 5180.long 288553390,288553390 5181.long 1839278535,1839278535 5182.long 1261411869,1261411869 5183.long 4080055004,4080055004 5184.long 3964831245,3964831245 5185.long 3504587127,3504587127 5186.long 1813426987,1813426987 5187.long 2579067049,2579067049 5188.long 4199060497,4199060497 5189.long 577038663,577038663 5190.long 3297574056,3297574056 5191.long 440397984,440397984 5192.long 3626794326,3626794326 5193.long 4019204898,4019204898 5194.long 3343796615,3343796615 5195.long 3251714265,3251714265 5196.long 4272081548,4272081548 5197.long 906744984,906744984 5198.long 3481400742,3481400742 5199.long 685669029,685669029 5200.long 646887386,646887386 5201.long 2764025151,2764025151 5202.long 3835509292,3835509292 5203.long 227702864,227702864 5204.long 2613862250,2613862250 5205.long 1648787028,1648787028 5206.long 3256061430,3256061430 5207.long 3904428176,3904428176 5208.long 1593260334,1593260334 5209.long 4121936770,4121936770 5210.long 3196083615,3196083615 5211.long 2090061929,2090061929 5212.long 2838353263,2838353263 5213.long 3004310991,3004310991 5214.long 999926984,999926984 5215.long 2809993232,2809993232 5216.long 1852021992,1852021992 5217.long 2075868123,2075868123 5218.long 158869197,158869197 5219.long 4095236462,4095236462 5220.long 28809964,28809964 5221.long 2828685187,2828685187 5222.long 1701746150,1701746150 5223.long 2129067946,2129067946 5224.long 147831841,147831841 5225.long 3873969647,3873969647 5226.long 3650873274,3650873274 5227.long 3459673930,3459673930 5228.long 3557400554,3557400554 5229.long 3598495785,3598495785 5230.long 2947720241,2947720241 5231.long 824393514,824393514 5232.long 815048134,815048134 5233.long 3227951669,3227951669 5234.long 935087732,935087732 5235.long 2798289660,2798289660 5236.long 2966458592,2966458592 5237.long 366520115,366520115 5238.long 1251476721,1251476721 5239.long 4158319681,4158319681 5240.long 240176511,240176511 5241.long 804688151,804688151 5242.long 2379631990,2379631990 5243.long 1303441219,1303441219 5244.long 1414376140,1414376140 5245.long 3741619940,3741619940 5246.long 3820343710,3820343710 5247.long 461924940,461924940 5248.long 3089050817,3089050817 5249.long 2136040774,2136040774 5250.long 82468509,82468509 5251.long 1563790337,1563790337 5252.long 1937016826,1937016826 5253.long 776014843,776014843 5254.long 1511876531,1511876531 5255.long 1389550482,1389550482 5256.long 861278441,861278441 5257.long 323475053,323475053 5258.long 2355222426,2355222426 5259.long 2047648055,2047648055 5260.long 2383738969,2383738969 5261.long 2302415851,2302415851 5262.long 3995576782,3995576782 5263.long 902390199,902390199 5264.long 3991215329,3991215329 5265.long 1018251130,1018251130 5266.long 1507840668,1507840668 5267.long 1064563285,1064563285 5268.long 2043548696,2043548696 5269.long 3208103795,3208103795 5270.long 3939366739,3939366739 5271.long 1537932639,1537932639 5272.long 342834655,342834655 5273.long 2262516856,2262516856 5274.long 2180231114,2180231114 5275.long 1053059257,1053059257 5276.long 741614648,741614648 5277.long 1598071746,1598071746 5278.long 1925389590,1925389590 5279.long 203809468,203809468 5280.long 2336832552,2336832552 5281.long 1100287487,1100287487 5282.long 1895934009,1895934009 5283.long 3736275976,3736275976 5284.long 2632234200,2632234200 5285.long 2428589668,2428589668 5286.long 1636092795,1636092795 5287.long 1890988757,1890988757 5288.long 1952214088,1952214088 5289.long 1113045200,1113045200 5290.byte 82,9,106,213,48,54,165,56 5291.byte 191,64,163,158,129,243,215,251 5292.byte 124,227,57,130,155,47,255,135 5293.byte 52,142,67,68,196,222,233,203 5294.byte 84,123,148,50,166,194,35,61 5295.byte 238,76,149,11,66,250,195,78 5296.byte 8,46,161,102,40,217,36,178 5297.byte 118,91,162,73,109,139,209,37 5298.byte 114,248,246,100,134,104,152,22 5299.byte 212,164,92,204,93,101,182,146 5300.byte 108,112,72,80,253,237,185,218 5301.byte 94,21,70,87,167,141,157,132 5302.byte 144,216,171,0,140,188,211,10 5303.byte 247,228,88,5,184,179,69,6 5304.byte 208,44,30,143,202,63,15,2 5305.byte 193,175,189,3,1,19,138,107 5306.byte 58,145,17,65,79,103,220,234 5307.byte 151,242,207,206,240,180,230,115 5308.byte 150,172,116,34,231,173,53,133 5309.byte 226,249,55,232,28,117,223,110 5310.byte 71,241,26,113,29,41,197,137 5311.byte 111,183,98,14,170,24,190,27 5312.byte 252,86,62,75,198,210,121,32 5313.byte 154,219,192,254,120,205,90,244 5314.byte 31,221,168,51,136,7,199,49 5315.byte 177,18,16,89,39,128,236,95 5316.byte 96,81,127,169,25,181,74,13 5317.byte 45,229,122,159,147,201,156,239 5318.byte 160,224,59,77,174,42,245,176 5319.byte 200,235,187,60,131,83,153,97 5320.byte 23,43,4,126,186,119,214,38 5321.byte 225,105,20,99,85,33,12,125 5322.byte 82,9,106,213,48,54,165,56 5323.byte 191,64,163,158,129,243,215,251 5324.byte 124,227,57,130,155,47,255,135 5325.byte 52,142,67,68,196,222,233,203 5326.byte 84,123,148,50,166,194,35,61 5327.byte 238,76,149,11,66,250,195,78 5328.byte 8,46,161,102,40,217,36,178 5329.byte 118,91,162,73,109,139,209,37 5330.byte 114,248,246,100,134,104,152,22 5331.byte 212,164,92,204,93,101,182,146 5332.byte 108,112,72,80,253,237,185,218 5333.byte 94,21,70,87,167,141,157,132 5334.byte 144,216,171,0,140,188,211,10 5335.byte 247,228,88,5,184,179,69,6 5336.byte 208,44,30,143,202,63,15,2 5337.byte 193,175,189,3,1,19,138,107 5338.byte 58,145,17,65,79,103,220,234 5339.byte 151,242,207,206,240,180,230,115 5340.byte 150,172,116,34,231,173,53,133 5341.byte 226,249,55,232,28,117,223,110 5342.byte 71,241,26,113,29,41,197,137 5343.byte 111,183,98,14,170,24,190,27 5344.byte 252,86,62,75,198,210,121,32 5345.byte 154,219,192,254,120,205,90,244 5346.byte 31,221,168,51,136,7,199,49 5347.byte 177,18,16,89,39,128,236,95 5348.byte 96,81,127,169,25,181,74,13 5349.byte 45,229,122,159,147,201,156,239 5350.byte 160,224,59,77,174,42,245,176 5351.byte 200,235,187,60,131,83,153,97 5352.byte 23,43,4,126,186,119,214,38 5353.byte 225,105,20,99,85,33,12,125 5354.byte 82,9,106,213,48,54,165,56 5355.byte 191,64,163,158,129,243,215,251 5356.byte 124,227,57,130,155,47,255,135 5357.byte 52,142,67,68,196,222,233,203 5358.byte 84,123,148,50,166,194,35,61 5359.byte 238,76,149,11,66,250,195,78 5360.byte 8,46,161,102,40,217,36,178 5361.byte 118,91,162,73,109,139,209,37 5362.byte 114,248,246,100,134,104,152,22 5363.byte 212,164,92,204,93,101,182,146 5364.byte 108,112,72,80,253,237,185,218 5365.byte 94,21,70,87,167,141,157,132 5366.byte 144,216,171,0,140,188,211,10 5367.byte 247,228,88,5,184,179,69,6 5368.byte 208,44,30,143,202,63,15,2 5369.byte 193,175,189,3,1,19,138,107 5370.byte 58,145,17,65,79,103,220,234 5371.byte 151,242,207,206,240,180,230,115 5372.byte 150,172,116,34,231,173,53,133 5373.byte 226,249,55,232,28,117,223,110 5374.byte 71,241,26,113,29,41,197,137 5375.byte 111,183,98,14,170,24,190,27 5376.byte 252,86,62,75,198,210,121,32 5377.byte 154,219,192,254,120,205,90,244 5378.byte 31,221,168,51,136,7,199,49 5379.byte 177,18,16,89,39,128,236,95 5380.byte 96,81,127,169,25,181,74,13 5381.byte 45,229,122,159,147,201,156,239 5382.byte 160,224,59,77,174,42,245,176 5383.byte 200,235,187,60,131,83,153,97 5384.byte 23,43,4,126,186,119,214,38 5385.byte 225,105,20,99,85,33,12,125 5386.byte 82,9,106,213,48,54,165,56 5387.byte 191,64,163,158,129,243,215,251 5388.byte 124,227,57,130,155,47,255,135 5389.byte 52,142,67,68,196,222,233,203 5390.byte 84,123,148,50,166,194,35,61 5391.byte 238,76,149,11,66,250,195,78 5392.byte 8,46,161,102,40,217,36,178 5393.byte 118,91,162,73,109,139,209,37 5394.byte 114,248,246,100,134,104,152,22 5395.byte 212,164,92,204,93,101,182,146 5396.byte 108,112,72,80,253,237,185,218 5397.byte 94,21,70,87,167,141,157,132 5398.byte 144,216,171,0,140,188,211,10 5399.byte 247,228,88,5,184,179,69,6 5400.byte 208,44,30,143,202,63,15,2 5401.byte 193,175,189,3,1,19,138,107 5402.byte 58,145,17,65,79,103,220,234 5403.byte 151,242,207,206,240,180,230,115 5404.byte 150,172,116,34,231,173,53,133 5405.byte 226,249,55,232,28,117,223,110 5406.byte 71,241,26,113,29,41,197,137 5407.byte 111,183,98,14,170,24,190,27 5408.byte 252,86,62,75,198,210,121,32 5409.byte 154,219,192,254,120,205,90,244 5410.byte 31,221,168,51,136,7,199,49 5411.byte 177,18,16,89,39,128,236,95 5412.byte 96,81,127,169,25,181,74,13 5413.byte 45,229,122,159,147,201,156,239 5414.byte 160,224,59,77,174,42,245,176 5415.byte 200,235,187,60,131,83,153,97 5416.byte 23,43,4,126,186,119,214,38 5417.byte 225,105,20,99,85,33,12,125 5418.size _x86_AES_decrypt,.-_x86_AES_decrypt 5419.globl AES_decrypt 5420.type AES_decrypt,@function 5421.align 16 5422AES_decrypt: 5423.L_AES_decrypt_begin: 5424 pushl %ebp 5425 pushl %ebx 5426 pushl %esi 5427 pushl %edi 5428 movl 20(%esp),%esi 5429 movl 28(%esp),%edi 5430 movl %esp,%eax 5431 subl $36,%esp 5432 andl $-64,%esp 5433 leal -127(%edi),%ebx 5434 subl %esp,%ebx 5435 negl %ebx 5436 andl $960,%ebx 5437 subl %ebx,%esp 5438 addl $4,%esp 5439 movl %eax,28(%esp) 5440 call .L010pic_point 5441.L010pic_point: 5442 popl %ebp 5443 leal OPENSSL_ia32cap_P,%eax 5444 leal .LAES_Td-.L010pic_point(%ebp),%ebp 5445 leal 764(%esp),%ebx 5446 subl %ebp,%ebx 5447 andl $768,%ebx 5448 leal 2176(%ebp,%ebx,1),%ebp 5449 btl $25,(%eax) 5450 jnc .L011x86 5451 movq (%esi),%mm0 5452 movq 8(%esi),%mm4 5453 call _sse_AES_decrypt_compact 5454 movl 28(%esp),%esp 5455 movl 24(%esp),%esi 5456 movq %mm0,(%esi) 5457 movq %mm4,8(%esi) 5458 emms 5459 popl %edi 5460 popl %esi 5461 popl %ebx 5462 popl %ebp 5463 ret 5464.align 16 5465.L011x86: 5466 movl %ebp,24(%esp) 5467 movl (%esi),%eax 5468 movl 4(%esi),%ebx 5469 movl 8(%esi),%ecx 5470 movl 12(%esi),%edx 5471 call _x86_AES_decrypt_compact 5472 movl 28(%esp),%esp 5473 movl 24(%esp),%esi 5474 movl %eax,(%esi) 5475 movl %ebx,4(%esi) 5476 movl %ecx,8(%esi) 5477 movl %edx,12(%esi) 5478 popl %edi 5479 popl %esi 5480 popl %ebx 5481 popl %ebp 5482 ret 5483.size AES_decrypt,.-.L_AES_decrypt_begin 5484.globl AES_cbc_encrypt 5485.type AES_cbc_encrypt,@function 5486.align 16 5487AES_cbc_encrypt: 5488.L_AES_cbc_encrypt_begin: 5489 pushl %ebp 5490 pushl %ebx 5491 pushl %esi 5492 pushl %edi 5493 movl 28(%esp),%ecx 5494 cmpl $0,%ecx 5495 je .L012drop_out 5496 call .L013pic_point 5497.L013pic_point: 5498 popl %ebp 5499 leal OPENSSL_ia32cap_P,%eax 5500 cmpl $0,40(%esp) 5501 leal .LAES_Te-.L013pic_point(%ebp),%ebp 5502 jne .L014picked_te 5503 leal .LAES_Td-.LAES_Te(%ebp),%ebp 5504.L014picked_te: 5505 pushfl 5506 cld 5507 cmpl $512,%ecx 5508 jb .L015slow_way 5509 testl $15,%ecx 5510 jnz .L015slow_way 5511 btl $28,(%eax) 5512 jc .L015slow_way 5513 leal -324(%esp),%esi 5514 andl $-64,%esi 5515 movl %ebp,%eax 5516 leal 2304(%ebp),%ebx 5517 movl %esi,%edx 5518 andl $4095,%eax 5519 andl $4095,%ebx 5520 andl $4095,%edx 5521 cmpl %ebx,%edx 5522 jb .L016tbl_break_out 5523 subl %ebx,%edx 5524 subl %edx,%esi 5525 jmp .L017tbl_ok 5526.align 4 5527.L016tbl_break_out: 5528 subl %eax,%edx 5529 andl $4095,%edx 5530 addl $384,%edx 5531 subl %edx,%esi 5532.align 4 5533.L017tbl_ok: 5534 leal 24(%esp),%edx 5535 xchgl %esi,%esp 5536 addl $4,%esp 5537 movl %ebp,24(%esp) 5538 movl %esi,28(%esp) 5539 movl (%edx),%eax 5540 movl 4(%edx),%ebx 5541 movl 12(%edx),%edi 5542 movl 16(%edx),%esi 5543 movl 20(%edx),%edx 5544 movl %eax,32(%esp) 5545 movl %ebx,36(%esp) 5546 movl %ecx,40(%esp) 5547 movl %edi,44(%esp) 5548 movl %esi,48(%esp) 5549 movl $0,316(%esp) 5550 movl %edi,%ebx 5551 movl $61,%ecx 5552 subl %ebp,%ebx 5553 movl %edi,%esi 5554 andl $4095,%ebx 5555 leal 76(%esp),%edi 5556 cmpl $2304,%ebx 5557 jb .L018do_copy 5558 cmpl $3852,%ebx 5559 jb .L019skip_copy 5560.align 4 5561.L018do_copy: 5562 movl %edi,44(%esp) 5563.long 2784229001 5564.L019skip_copy: 5565 movl $16,%edi 5566.align 4 5567.L020prefetch_tbl: 5568 movl (%ebp),%eax 5569 movl 32(%ebp),%ebx 5570 movl 64(%ebp),%ecx 5571 movl 96(%ebp),%esi 5572 leal 128(%ebp),%ebp 5573 subl $1,%edi 5574 jnz .L020prefetch_tbl 5575 subl $2048,%ebp 5576 movl 32(%esp),%esi 5577 movl 48(%esp),%edi 5578 cmpl $0,%edx 5579 je .L021fast_decrypt 5580 movl (%edi),%eax 5581 movl 4(%edi),%ebx 5582.align 16 5583.L022fast_enc_loop: 5584 movl 8(%edi),%ecx 5585 movl 12(%edi),%edx 5586 xorl (%esi),%eax 5587 xorl 4(%esi),%ebx 5588 xorl 8(%esi),%ecx 5589 xorl 12(%esi),%edx 5590 movl 44(%esp),%edi 5591 call _x86_AES_encrypt 5592 movl 32(%esp),%esi 5593 movl 36(%esp),%edi 5594 movl %eax,(%edi) 5595 movl %ebx,4(%edi) 5596 movl %ecx,8(%edi) 5597 movl %edx,12(%edi) 5598 leal 16(%esi),%esi 5599 movl 40(%esp),%ecx 5600 movl %esi,32(%esp) 5601 leal 16(%edi),%edx 5602 movl %edx,36(%esp) 5603 subl $16,%ecx 5604 movl %ecx,40(%esp) 5605 jnz .L022fast_enc_loop 5606 movl 48(%esp),%esi 5607 movl 8(%edi),%ecx 5608 movl 12(%edi),%edx 5609 movl %eax,(%esi) 5610 movl %ebx,4(%esi) 5611 movl %ecx,8(%esi) 5612 movl %edx,12(%esi) 5613 cmpl $0,316(%esp) 5614 movl 44(%esp),%edi 5615 je .L023skip_ezero 5616 movl $60,%ecx 5617 xorl %eax,%eax 5618.align 4 5619.long 2884892297 5620.L023skip_ezero: 5621 movl 28(%esp),%esp 5622 popfl 5623.L012drop_out: 5624 popl %edi 5625 popl %esi 5626 popl %ebx 5627 popl %ebp 5628 ret 5629 pushfl 5630.align 16 5631.L021fast_decrypt: 5632 cmpl 36(%esp),%esi 5633 je .L024fast_dec_in_place 5634 movl %edi,52(%esp) 5635.align 4 5636.align 16 5637.L025fast_dec_loop: 5638 movl (%esi),%eax 5639 movl 4(%esi),%ebx 5640 movl 8(%esi),%ecx 5641 movl 12(%esi),%edx 5642 movl 44(%esp),%edi 5643 call _x86_AES_decrypt 5644 movl 52(%esp),%edi 5645 movl 40(%esp),%esi 5646 xorl (%edi),%eax 5647 xorl 4(%edi),%ebx 5648 xorl 8(%edi),%ecx 5649 xorl 12(%edi),%edx 5650 movl 36(%esp),%edi 5651 movl 32(%esp),%esi 5652 movl %eax,(%edi) 5653 movl %ebx,4(%edi) 5654 movl %ecx,8(%edi) 5655 movl %edx,12(%edi) 5656 movl 40(%esp),%ecx 5657 movl %esi,52(%esp) 5658 leal 16(%esi),%esi 5659 movl %esi,32(%esp) 5660 leal 16(%edi),%edi 5661 movl %edi,36(%esp) 5662 subl $16,%ecx 5663 movl %ecx,40(%esp) 5664 jnz .L025fast_dec_loop 5665 movl 52(%esp),%edi 5666 movl 48(%esp),%esi 5667 movl (%edi),%eax 5668 movl 4(%edi),%ebx 5669 movl 8(%edi),%ecx 5670 movl 12(%edi),%edx 5671 movl %eax,(%esi) 5672 movl %ebx,4(%esi) 5673 movl %ecx,8(%esi) 5674 movl %edx,12(%esi) 5675 jmp .L026fast_dec_out 5676.align 16 5677.L024fast_dec_in_place: 5678.L027fast_dec_in_place_loop: 5679 movl (%esi),%eax 5680 movl 4(%esi),%ebx 5681 movl 8(%esi),%ecx 5682 movl 12(%esi),%edx 5683 leal 60(%esp),%edi 5684 movl %eax,(%edi) 5685 movl %ebx,4(%edi) 5686 movl %ecx,8(%edi) 5687 movl %edx,12(%edi) 5688 movl 44(%esp),%edi 5689 call _x86_AES_decrypt 5690 movl 48(%esp),%edi 5691 movl 36(%esp),%esi 5692 xorl (%edi),%eax 5693 xorl 4(%edi),%ebx 5694 xorl 8(%edi),%ecx 5695 xorl 12(%edi),%edx 5696 movl %eax,(%esi) 5697 movl %ebx,4(%esi) 5698 movl %ecx,8(%esi) 5699 movl %edx,12(%esi) 5700 leal 16(%esi),%esi 5701 movl %esi,36(%esp) 5702 leal 60(%esp),%esi 5703 movl (%esi),%eax 5704 movl 4(%esi),%ebx 5705 movl 8(%esi),%ecx 5706 movl 12(%esi),%edx 5707 movl %eax,(%edi) 5708 movl %ebx,4(%edi) 5709 movl %ecx,8(%edi) 5710 movl %edx,12(%edi) 5711 movl 32(%esp),%esi 5712 movl 40(%esp),%ecx 5713 leal 16(%esi),%esi 5714 movl %esi,32(%esp) 5715 subl $16,%ecx 5716 movl %ecx,40(%esp) 5717 jnz .L027fast_dec_in_place_loop 5718.align 4 5719.L026fast_dec_out: 5720 cmpl $0,316(%esp) 5721 movl 44(%esp),%edi 5722 je .L028skip_dzero 5723 movl $60,%ecx 5724 xorl %eax,%eax 5725.align 4 5726.long 2884892297 5727.L028skip_dzero: 5728 movl 28(%esp),%esp 5729 popfl 5730 popl %edi 5731 popl %esi 5732 popl %ebx 5733 popl %ebp 5734 ret 5735 pushfl 5736.align 16 5737.L015slow_way: 5738 movl (%eax),%eax 5739 movl 36(%esp),%edi 5740 leal -80(%esp),%esi 5741 andl $-64,%esi 5742 leal -143(%edi),%ebx 5743 subl %esi,%ebx 5744 negl %ebx 5745 andl $960,%ebx 5746 subl %ebx,%esi 5747 leal 768(%esi),%ebx 5748 subl %ebp,%ebx 5749 andl $768,%ebx 5750 leal 2176(%ebp,%ebx,1),%ebp 5751 leal 24(%esp),%edx 5752 xchgl %esi,%esp 5753 addl $4,%esp 5754 movl %ebp,24(%esp) 5755 movl %esi,28(%esp) 5756 movl %eax,52(%esp) 5757 movl (%edx),%eax 5758 movl 4(%edx),%ebx 5759 movl 16(%edx),%esi 5760 movl 20(%edx),%edx 5761 movl %eax,32(%esp) 5762 movl %ebx,36(%esp) 5763 movl %ecx,40(%esp) 5764 movl %edi,44(%esp) 5765 movl %esi,48(%esp) 5766 movl %esi,%edi 5767 movl %eax,%esi 5768 cmpl $0,%edx 5769 je .L029slow_decrypt 5770 cmpl $16,%ecx 5771 movl %ebx,%edx 5772 jb .L030slow_enc_tail 5773 btl $25,52(%esp) 5774 jnc .L031slow_enc_x86 5775 movq (%edi),%mm0 5776 movq 8(%edi),%mm4 5777.align 16 5778.L032slow_enc_loop_sse: 5779 pxor (%esi),%mm0 5780 pxor 8(%esi),%mm4 5781 movl 44(%esp),%edi 5782 call _sse_AES_encrypt_compact 5783 movl 32(%esp),%esi 5784 movl 36(%esp),%edi 5785 movl 40(%esp),%ecx 5786 movq %mm0,(%edi) 5787 movq %mm4,8(%edi) 5788 leal 16(%esi),%esi 5789 movl %esi,32(%esp) 5790 leal 16(%edi),%edx 5791 movl %edx,36(%esp) 5792 subl $16,%ecx 5793 cmpl $16,%ecx 5794 movl %ecx,40(%esp) 5795 jae .L032slow_enc_loop_sse 5796 testl $15,%ecx 5797 jnz .L030slow_enc_tail 5798 movl 48(%esp),%esi 5799 movq %mm0,(%esi) 5800 movq %mm4,8(%esi) 5801 emms 5802 movl 28(%esp),%esp 5803 popfl 5804 popl %edi 5805 popl %esi 5806 popl %ebx 5807 popl %ebp 5808 ret 5809 pushfl 5810.align 16 5811.L031slow_enc_x86: 5812 movl (%edi),%eax 5813 movl 4(%edi),%ebx 5814.align 4 5815.L033slow_enc_loop_x86: 5816 movl 8(%edi),%ecx 5817 movl 12(%edi),%edx 5818 xorl (%esi),%eax 5819 xorl 4(%esi),%ebx 5820 xorl 8(%esi),%ecx 5821 xorl 12(%esi),%edx 5822 movl 44(%esp),%edi 5823 call _x86_AES_encrypt_compact 5824 movl 32(%esp),%esi 5825 movl 36(%esp),%edi 5826 movl %eax,(%edi) 5827 movl %ebx,4(%edi) 5828 movl %ecx,8(%edi) 5829 movl %edx,12(%edi) 5830 movl 40(%esp),%ecx 5831 leal 16(%esi),%esi 5832 movl %esi,32(%esp) 5833 leal 16(%edi),%edx 5834 movl %edx,36(%esp) 5835 subl $16,%ecx 5836 cmpl $16,%ecx 5837 movl %ecx,40(%esp) 5838 jae .L033slow_enc_loop_x86 5839 testl $15,%ecx 5840 jnz .L030slow_enc_tail 5841 movl 48(%esp),%esi 5842 movl 8(%edi),%ecx 5843 movl 12(%edi),%edx 5844 movl %eax,(%esi) 5845 movl %ebx,4(%esi) 5846 movl %ecx,8(%esi) 5847 movl %edx,12(%esi) 5848 movl 28(%esp),%esp 5849 popfl 5850 popl %edi 5851 popl %esi 5852 popl %ebx 5853 popl %ebp 5854 ret 5855 pushfl 5856.align 16 5857.L030slow_enc_tail: 5858 emms 5859 movl %edx,%edi 5860 movl $16,%ebx 5861 subl %ecx,%ebx 5862 cmpl %esi,%edi 5863 je .L034enc_in_place 5864.align 4 5865.long 2767451785 5866 jmp .L035enc_skip_in_place 5867.L034enc_in_place: 5868 leal (%edi,%ecx,1),%edi 5869.L035enc_skip_in_place: 5870 movl %ebx,%ecx 5871 xorl %eax,%eax 5872.align 4 5873.long 2868115081 5874 movl 48(%esp),%edi 5875 movl %edx,%esi 5876 movl (%edi),%eax 5877 movl 4(%edi),%ebx 5878 movl $16,40(%esp) 5879 jmp .L033slow_enc_loop_x86 5880.align 16 5881.L029slow_decrypt: 5882 btl $25,52(%esp) 5883 jnc .L036slow_dec_loop_x86 5884.align 4 5885.L037slow_dec_loop_sse: 5886 movq (%esi),%mm0 5887 movq 8(%esi),%mm4 5888 movl 44(%esp),%edi 5889 call _sse_AES_decrypt_compact 5890 movl 32(%esp),%esi 5891 leal 60(%esp),%eax 5892 movl 36(%esp),%ebx 5893 movl 40(%esp),%ecx 5894 movl 48(%esp),%edi 5895 movq (%esi),%mm1 5896 movq 8(%esi),%mm5 5897 pxor (%edi),%mm0 5898 pxor 8(%edi),%mm4 5899 movq %mm1,(%edi) 5900 movq %mm5,8(%edi) 5901 subl $16,%ecx 5902 jc .L038slow_dec_partial_sse 5903 movq %mm0,(%ebx) 5904 movq %mm4,8(%ebx) 5905 leal 16(%ebx),%ebx 5906 movl %ebx,36(%esp) 5907 leal 16(%esi),%esi 5908 movl %esi,32(%esp) 5909 movl %ecx,40(%esp) 5910 jnz .L037slow_dec_loop_sse 5911 emms 5912 movl 28(%esp),%esp 5913 popfl 5914 popl %edi 5915 popl %esi 5916 popl %ebx 5917 popl %ebp 5918 ret 5919 pushfl 5920.align 16 5921.L038slow_dec_partial_sse: 5922 movq %mm0,(%eax) 5923 movq %mm4,8(%eax) 5924 emms 5925 addl $16,%ecx 5926 movl %ebx,%edi 5927 movl %eax,%esi 5928.align 4 5929.long 2767451785 5930 movl 28(%esp),%esp 5931 popfl 5932 popl %edi 5933 popl %esi 5934 popl %ebx 5935 popl %ebp 5936 ret 5937 pushfl 5938.align 16 5939.L036slow_dec_loop_x86: 5940 movl (%esi),%eax 5941 movl 4(%esi),%ebx 5942 movl 8(%esi),%ecx 5943 movl 12(%esi),%edx 5944 leal 60(%esp),%edi 5945 movl %eax,(%edi) 5946 movl %ebx,4(%edi) 5947 movl %ecx,8(%edi) 5948 movl %edx,12(%edi) 5949 movl 44(%esp),%edi 5950 call _x86_AES_decrypt_compact 5951 movl 48(%esp),%edi 5952 movl 40(%esp),%esi 5953 xorl (%edi),%eax 5954 xorl 4(%edi),%ebx 5955 xorl 8(%edi),%ecx 5956 xorl 12(%edi),%edx 5957 subl $16,%esi 5958 jc .L039slow_dec_partial_x86 5959 movl %esi,40(%esp) 5960 movl 36(%esp),%esi 5961 movl %eax,(%esi) 5962 movl %ebx,4(%esi) 5963 movl %ecx,8(%esi) 5964 movl %edx,12(%esi) 5965 leal 16(%esi),%esi 5966 movl %esi,36(%esp) 5967 leal 60(%esp),%esi 5968 movl (%esi),%eax 5969 movl 4(%esi),%ebx 5970 movl 8(%esi),%ecx 5971 movl 12(%esi),%edx 5972 movl %eax,(%edi) 5973 movl %ebx,4(%edi) 5974 movl %ecx,8(%edi) 5975 movl %edx,12(%edi) 5976 movl 32(%esp),%esi 5977 leal 16(%esi),%esi 5978 movl %esi,32(%esp) 5979 jnz .L036slow_dec_loop_x86 5980 movl 28(%esp),%esp 5981 popfl 5982 popl %edi 5983 popl %esi 5984 popl %ebx 5985 popl %ebp 5986 ret 5987 pushfl 5988.align 16 5989.L039slow_dec_partial_x86: 5990 leal 60(%esp),%esi 5991 movl %eax,(%esi) 5992 movl %ebx,4(%esi) 5993 movl %ecx,8(%esi) 5994 movl %edx,12(%esi) 5995 movl 32(%esp),%esi 5996 movl (%esi),%eax 5997 movl 4(%esi),%ebx 5998 movl 8(%esi),%ecx 5999 movl 12(%esi),%edx 6000 movl %eax,(%edi) 6001 movl %ebx,4(%edi) 6002 movl %ecx,8(%edi) 6003 movl %edx,12(%edi) 6004 movl 40(%esp),%ecx 6005 movl 36(%esp),%edi 6006 leal 60(%esp),%esi 6007.align 4 6008.long 2767451785 6009 movl 28(%esp),%esp 6010 popfl 6011 popl %edi 6012 popl %esi 6013 popl %ebx 6014 popl %ebp 6015 ret 6016.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin 6017.type _x86_AES_set_encrypt_key,@function 6018.align 16 6019_x86_AES_set_encrypt_key: 6020 pushl %ebp 6021 pushl %ebx 6022 pushl %esi 6023 pushl %edi 6024 movl 24(%esp),%esi 6025 movl 32(%esp),%edi 6026 testl $-1,%esi 6027 jz .L040badpointer 6028 testl $-1,%edi 6029 jz .L040badpointer 6030 call .L041pic_point 6031.L041pic_point: 6032 popl %ebp 6033 leal .LAES_Te-.L041pic_point(%ebp),%ebp 6034 leal 2176(%ebp),%ebp 6035 movl -128(%ebp),%eax 6036 movl -96(%ebp),%ebx 6037 movl -64(%ebp),%ecx 6038 movl -32(%ebp),%edx 6039 movl (%ebp),%eax 6040 movl 32(%ebp),%ebx 6041 movl 64(%ebp),%ecx 6042 movl 96(%ebp),%edx 6043 movl 28(%esp),%ecx 6044 cmpl $128,%ecx 6045 je .L04210rounds 6046 cmpl $192,%ecx 6047 je .L04312rounds 6048 cmpl $256,%ecx 6049 je .L04414rounds 6050 movl $-2,%eax 6051 jmp .L045exit 6052.L04210rounds: 6053 movl (%esi),%eax 6054 movl 4(%esi),%ebx 6055 movl 8(%esi),%ecx 6056 movl 12(%esi),%edx 6057 movl %eax,(%edi) 6058 movl %ebx,4(%edi) 6059 movl %ecx,8(%edi) 6060 movl %edx,12(%edi) 6061 xorl %ecx,%ecx 6062 jmp .L04610shortcut 6063.align 4 6064.L04710loop: 6065 movl (%edi),%eax 6066 movl 12(%edi),%edx 6067.L04610shortcut: 6068 movzbl %dl,%esi 6069 movzbl -128(%ebp,%esi,1),%ebx 6070 movzbl %dh,%esi 6071 shll $24,%ebx 6072 xorl %ebx,%eax 6073 movzbl -128(%ebp,%esi,1),%ebx 6074 shrl $16,%edx 6075 movzbl %dl,%esi 6076 xorl %ebx,%eax 6077 movzbl -128(%ebp,%esi,1),%ebx 6078 movzbl %dh,%esi 6079 shll $8,%ebx 6080 xorl %ebx,%eax 6081 movzbl -128(%ebp,%esi,1),%ebx 6082 shll $16,%ebx 6083 xorl %ebx,%eax 6084 xorl 896(%ebp,%ecx,4),%eax 6085 movl %eax,16(%edi) 6086 xorl 4(%edi),%eax 6087 movl %eax,20(%edi) 6088 xorl 8(%edi),%eax 6089 movl %eax,24(%edi) 6090 xorl 12(%edi),%eax 6091 movl %eax,28(%edi) 6092 incl %ecx 6093 addl $16,%edi 6094 cmpl $10,%ecx 6095 jl .L04710loop 6096 movl $10,80(%edi) 6097 xorl %eax,%eax 6098 jmp .L045exit 6099.L04312rounds: 6100 movl (%esi),%eax 6101 movl 4(%esi),%ebx 6102 movl 8(%esi),%ecx 6103 movl 12(%esi),%edx 6104 movl %eax,(%edi) 6105 movl %ebx,4(%edi) 6106 movl %ecx,8(%edi) 6107 movl %edx,12(%edi) 6108 movl 16(%esi),%ecx 6109 movl 20(%esi),%edx 6110 movl %ecx,16(%edi) 6111 movl %edx,20(%edi) 6112 xorl %ecx,%ecx 6113 jmp .L04812shortcut 6114.align 4 6115.L04912loop: 6116 movl (%edi),%eax 6117 movl 20(%edi),%edx 6118.L04812shortcut: 6119 movzbl %dl,%esi 6120 movzbl -128(%ebp,%esi,1),%ebx 6121 movzbl %dh,%esi 6122 shll $24,%ebx 6123 xorl %ebx,%eax 6124 movzbl -128(%ebp,%esi,1),%ebx 6125 shrl $16,%edx 6126 movzbl %dl,%esi 6127 xorl %ebx,%eax 6128 movzbl -128(%ebp,%esi,1),%ebx 6129 movzbl %dh,%esi 6130 shll $8,%ebx 6131 xorl %ebx,%eax 6132 movzbl -128(%ebp,%esi,1),%ebx 6133 shll $16,%ebx 6134 xorl %ebx,%eax 6135 xorl 896(%ebp,%ecx,4),%eax 6136 movl %eax,24(%edi) 6137 xorl 4(%edi),%eax 6138 movl %eax,28(%edi) 6139 xorl 8(%edi),%eax 6140 movl %eax,32(%edi) 6141 xorl 12(%edi),%eax 6142 movl %eax,36(%edi) 6143 cmpl $7,%ecx 6144 je .L05012break 6145 incl %ecx 6146 xorl 16(%edi),%eax 6147 movl %eax,40(%edi) 6148 xorl 20(%edi),%eax 6149 movl %eax,44(%edi) 6150 addl $24,%edi 6151 jmp .L04912loop 6152.L05012break: 6153 movl $12,72(%edi) 6154 xorl %eax,%eax 6155 jmp .L045exit 6156.L04414rounds: 6157 movl (%esi),%eax 6158 movl 4(%esi),%ebx 6159 movl 8(%esi),%ecx 6160 movl 12(%esi),%edx 6161 movl %eax,(%edi) 6162 movl %ebx,4(%edi) 6163 movl %ecx,8(%edi) 6164 movl %edx,12(%edi) 6165 movl 16(%esi),%eax 6166 movl 20(%esi),%ebx 6167 movl 24(%esi),%ecx 6168 movl 28(%esi),%edx 6169 movl %eax,16(%edi) 6170 movl %ebx,20(%edi) 6171 movl %ecx,24(%edi) 6172 movl %edx,28(%edi) 6173 xorl %ecx,%ecx 6174 jmp .L05114shortcut 6175.align 4 6176.L05214loop: 6177 movl 28(%edi),%edx 6178.L05114shortcut: 6179 movl (%edi),%eax 6180 movzbl %dl,%esi 6181 movzbl -128(%ebp,%esi,1),%ebx 6182 movzbl %dh,%esi 6183 shll $24,%ebx 6184 xorl %ebx,%eax 6185 movzbl -128(%ebp,%esi,1),%ebx 6186 shrl $16,%edx 6187 movzbl %dl,%esi 6188 xorl %ebx,%eax 6189 movzbl -128(%ebp,%esi,1),%ebx 6190 movzbl %dh,%esi 6191 shll $8,%ebx 6192 xorl %ebx,%eax 6193 movzbl -128(%ebp,%esi,1),%ebx 6194 shll $16,%ebx 6195 xorl %ebx,%eax 6196 xorl 896(%ebp,%ecx,4),%eax 6197 movl %eax,32(%edi) 6198 xorl 4(%edi),%eax 6199 movl %eax,36(%edi) 6200 xorl 8(%edi),%eax 6201 movl %eax,40(%edi) 6202 xorl 12(%edi),%eax 6203 movl %eax,44(%edi) 6204 cmpl $6,%ecx 6205 je .L05314break 6206 incl %ecx 6207 movl %eax,%edx 6208 movl 16(%edi),%eax 6209 movzbl %dl,%esi 6210 movzbl -128(%ebp,%esi,1),%ebx 6211 movzbl %dh,%esi 6212 xorl %ebx,%eax 6213 movzbl -128(%ebp,%esi,1),%ebx 6214 shrl $16,%edx 6215 shll $8,%ebx 6216 movzbl %dl,%esi 6217 xorl %ebx,%eax 6218 movzbl -128(%ebp,%esi,1),%ebx 6219 movzbl %dh,%esi 6220 shll $16,%ebx 6221 xorl %ebx,%eax 6222 movzbl -128(%ebp,%esi,1),%ebx 6223 shll $24,%ebx 6224 xorl %ebx,%eax 6225 movl %eax,48(%edi) 6226 xorl 20(%edi),%eax 6227 movl %eax,52(%edi) 6228 xorl 24(%edi),%eax 6229 movl %eax,56(%edi) 6230 xorl 28(%edi),%eax 6231 movl %eax,60(%edi) 6232 addl $32,%edi 6233 jmp .L05214loop 6234.L05314break: 6235 movl $14,48(%edi) 6236 xorl %eax,%eax 6237 jmp .L045exit 6238.L040badpointer: 6239 movl $-1,%eax 6240.L045exit: 6241 popl %edi 6242 popl %esi 6243 popl %ebx 6244 popl %ebp 6245 ret 6246.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key 6247.globl private_AES_set_encrypt_key 6248.type private_AES_set_encrypt_key,@function 6249.align 16 6250private_AES_set_encrypt_key: 6251.L_private_AES_set_encrypt_key_begin: 6252 call _x86_AES_set_encrypt_key 6253 ret 6254.size private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin 6255.globl private_AES_set_decrypt_key 6256.type private_AES_set_decrypt_key,@function 6257.align 16 6258private_AES_set_decrypt_key: 6259.L_private_AES_set_decrypt_key_begin: 6260 call _x86_AES_set_encrypt_key 6261 cmpl $0,%eax 6262 je .L054proceed 6263 ret 6264.L054proceed: 6265 pushl %ebp 6266 pushl %ebx 6267 pushl %esi 6268 pushl %edi 6269 movl 28(%esp),%esi 6270 movl 240(%esi),%ecx 6271 leal (,%ecx,4),%ecx 6272 leal (%esi,%ecx,4),%edi 6273.align 4 6274.L055invert: 6275 movl (%esi),%eax 6276 movl 4(%esi),%ebx 6277 movl (%edi),%ecx 6278 movl 4(%edi),%edx 6279 movl %eax,(%edi) 6280 movl %ebx,4(%edi) 6281 movl %ecx,(%esi) 6282 movl %edx,4(%esi) 6283 movl 8(%esi),%eax 6284 movl 12(%esi),%ebx 6285 movl 8(%edi),%ecx 6286 movl 12(%edi),%edx 6287 movl %eax,8(%edi) 6288 movl %ebx,12(%edi) 6289 movl %ecx,8(%esi) 6290 movl %edx,12(%esi) 6291 addl $16,%esi 6292 subl $16,%edi 6293 cmpl %edi,%esi 6294 jne .L055invert 6295 movl 28(%esp),%edi 6296 movl 240(%edi),%esi 6297 leal -2(%esi,%esi,1),%esi 6298 leal (%edi,%esi,8),%esi 6299 movl %esi,28(%esp) 6300 movl 16(%edi),%eax 6301.align 4 6302.L056permute: 6303 addl $16,%edi 6304 movl $2155905152,%ebp 6305 andl %eax,%ebp 6306 leal (%eax,%eax,1),%ebx 6307 movl %ebp,%esi 6308 shrl $7,%ebp 6309 subl %ebp,%esi 6310 andl $4278124286,%ebx 6311 andl $454761243,%esi 6312 xorl %esi,%ebx 6313 movl $2155905152,%ebp 6314 andl %ebx,%ebp 6315 leal (%ebx,%ebx,1),%ecx 6316 movl %ebp,%esi 6317 shrl $7,%ebp 6318 subl %ebp,%esi 6319 andl $4278124286,%ecx 6320 andl $454761243,%esi 6321 xorl %eax,%ebx 6322 xorl %esi,%ecx 6323 movl $2155905152,%ebp 6324 andl %ecx,%ebp 6325 leal (%ecx,%ecx,1),%edx 6326 movl %ebp,%esi 6327 shrl $7,%ebp 6328 xorl %eax,%ecx 6329 subl %ebp,%esi 6330 andl $4278124286,%edx 6331 andl $454761243,%esi 6332 roll $8,%eax 6333 xorl %esi,%edx 6334 movl 4(%edi),%ebp 6335 xorl %ebx,%eax 6336 xorl %edx,%ebx 6337 xorl %ecx,%eax 6338 roll $24,%ebx 6339 xorl %edx,%ecx 6340 xorl %edx,%eax 6341 roll $16,%ecx 6342 xorl %ebx,%eax 6343 roll $8,%edx 6344 xorl %ecx,%eax 6345 movl %ebp,%ebx 6346 xorl %edx,%eax 6347 movl %eax,(%edi) 6348 movl $2155905152,%ebp 6349 andl %ebx,%ebp 6350 leal (%ebx,%ebx,1),%ecx 6351 movl %ebp,%esi 6352 shrl $7,%ebp 6353 subl %ebp,%esi 6354 andl $4278124286,%ecx 6355 andl $454761243,%esi 6356 xorl %esi,%ecx 6357 movl $2155905152,%ebp 6358 andl %ecx,%ebp 6359 leal (%ecx,%ecx,1),%edx 6360 movl %ebp,%esi 6361 shrl $7,%ebp 6362 subl %ebp,%esi 6363 andl $4278124286,%edx 6364 andl $454761243,%esi 6365 xorl %ebx,%ecx 6366 xorl %esi,%edx 6367 movl $2155905152,%ebp 6368 andl %edx,%ebp 6369 leal (%edx,%edx,1),%eax 6370 movl %ebp,%esi 6371 shrl $7,%ebp 6372 xorl %ebx,%edx 6373 subl %ebp,%esi 6374 andl $4278124286,%eax 6375 andl $454761243,%esi 6376 roll $8,%ebx 6377 xorl %esi,%eax 6378 movl 8(%edi),%ebp 6379 xorl %ecx,%ebx 6380 xorl %eax,%ecx 6381 xorl %edx,%ebx 6382 roll $24,%ecx 6383 xorl %eax,%edx 6384 xorl %eax,%ebx 6385 roll $16,%edx 6386 xorl %ecx,%ebx 6387 roll $8,%eax 6388 xorl %edx,%ebx 6389 movl %ebp,%ecx 6390 xorl %eax,%ebx 6391 movl %ebx,4(%edi) 6392 movl $2155905152,%ebp 6393 andl %ecx,%ebp 6394 leal (%ecx,%ecx,1),%edx 6395 movl %ebp,%esi 6396 shrl $7,%ebp 6397 subl %ebp,%esi 6398 andl $4278124286,%edx 6399 andl $454761243,%esi 6400 xorl %esi,%edx 6401 movl $2155905152,%ebp 6402 andl %edx,%ebp 6403 leal (%edx,%edx,1),%eax 6404 movl %ebp,%esi 6405 shrl $7,%ebp 6406 subl %ebp,%esi 6407 andl $4278124286,%eax 6408 andl $454761243,%esi 6409 xorl %ecx,%edx 6410 xorl %esi,%eax 6411 movl $2155905152,%ebp 6412 andl %eax,%ebp 6413 leal (%eax,%eax,1),%ebx 6414 movl %ebp,%esi 6415 shrl $7,%ebp 6416 xorl %ecx,%eax 6417 subl %ebp,%esi 6418 andl $4278124286,%ebx 6419 andl $454761243,%esi 6420 roll $8,%ecx 6421 xorl %esi,%ebx 6422 movl 12(%edi),%ebp 6423 xorl %edx,%ecx 6424 xorl %ebx,%edx 6425 xorl %eax,%ecx 6426 roll $24,%edx 6427 xorl %ebx,%eax 6428 xorl %ebx,%ecx 6429 roll $16,%eax 6430 xorl %edx,%ecx 6431 roll $8,%ebx 6432 xorl %eax,%ecx 6433 movl %ebp,%edx 6434 xorl %ebx,%ecx 6435 movl %ecx,8(%edi) 6436 movl $2155905152,%ebp 6437 andl %edx,%ebp 6438 leal (%edx,%edx,1),%eax 6439 movl %ebp,%esi 6440 shrl $7,%ebp 6441 subl %ebp,%esi 6442 andl $4278124286,%eax 6443 andl $454761243,%esi 6444 xorl %esi,%eax 6445 movl $2155905152,%ebp 6446 andl %eax,%ebp 6447 leal (%eax,%eax,1),%ebx 6448 movl %ebp,%esi 6449 shrl $7,%ebp 6450 subl %ebp,%esi 6451 andl $4278124286,%ebx 6452 andl $454761243,%esi 6453 xorl %edx,%eax 6454 xorl %esi,%ebx 6455 movl $2155905152,%ebp 6456 andl %ebx,%ebp 6457 leal (%ebx,%ebx,1),%ecx 6458 movl %ebp,%esi 6459 shrl $7,%ebp 6460 xorl %edx,%ebx 6461 subl %ebp,%esi 6462 andl $4278124286,%ecx 6463 andl $454761243,%esi 6464 roll $8,%edx 6465 xorl %esi,%ecx 6466 movl 16(%edi),%ebp 6467 xorl %eax,%edx 6468 xorl %ecx,%eax 6469 xorl %ebx,%edx 6470 roll $24,%eax 6471 xorl %ecx,%ebx 6472 xorl %ecx,%edx 6473 roll $16,%ebx 6474 xorl %eax,%edx 6475 roll $8,%ecx 6476 xorl %ebx,%edx 6477 movl %ebp,%eax 6478 xorl %ecx,%edx 6479 movl %edx,12(%edi) 6480 cmpl 28(%esp),%edi 6481 jb .L056permute 6482 xorl %eax,%eax 6483 popl %edi 6484 popl %esi 6485 popl %ebx 6486 popl %ebp 6487 ret 6488.size private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin 6489.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 6490.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 6491.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 6492.comm OPENSSL_ia32cap_P,16,4 6493#endif 6494