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