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