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