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