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