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