1/* Do not modify. This file is auto-generated from e_padlock-x86.pl. */ 2#ifdef PIC 3.text 4.globl padlock_capability 5.type padlock_capability,@function 6.align 16 7padlock_capability: 8.L_padlock_capability_begin: 9 #ifdef __CET__ 10 11.byte 243,15,30,251 12 #endif 13 14 pushl %ebx 15 pushfl 16 popl %eax 17 movl %eax,%ecx 18 xorl $2097152,%eax 19 pushl %eax 20 popfl 21 pushfl 22 popl %eax 23 xorl %eax,%ecx 24 xorl %eax,%eax 25 btl $21,%ecx 26 jnc .L000noluck 27 .byte 0x0f,0xa2 28 xorl %eax,%eax 29 cmpl $0x746e6543,%ebx 30 jne .L001zhaoxin 31 cmpl $0x48727561,%edx 32 jne .L000noluck 33 cmpl $0x736c7561,%ecx 34 jne .L000noluck 35 jmp .L002zhaoxinEnd 36.L001zhaoxin: 37 cmpl $0x68532020,%ebx 38 jne .L000noluck 39 cmpl $0x68676e61,%edx 40 jne .L000noluck 41 cmpl $0x20206961,%ecx 42 jne .L000noluck 43.L002zhaoxinEnd: 44 movl $3221225472,%eax 45 .byte 0x0f,0xa2 46 movl %eax,%edx 47 xorl %eax,%eax 48 cmpl $3221225473,%edx 49 jb .L000noluck 50 movl $1,%eax 51 .byte 0x0f,0xa2 52 orl $15,%eax 53 xorl %ebx,%ebx 54 andl $4095,%eax 55 cmpl $1791,%eax 56 sete %bl 57 movl $3221225473,%eax 58 pushl %ebx 59 .byte 0x0f,0xa2 60 popl %ebx 61 movl %edx,%eax 62 shll $4,%ebx 63 andl $4294967279,%eax 64 orl %ebx,%eax 65.L000noluck: 66 popl %ebx 67 ret 68.size padlock_capability,.-.L_padlock_capability_begin 69.globl padlock_key_bswap 70.type padlock_key_bswap,@function 71.align 16 72padlock_key_bswap: 73.L_padlock_key_bswap_begin: 74 #ifdef __CET__ 75 76.byte 243,15,30,251 77 #endif 78 79 movl 4(%esp),%edx 80 movl 240(%edx),%ecx 81 incl %ecx 82 shll $2,%ecx 83.L003bswap_loop: 84 movl (%edx),%eax 85 bswap %eax 86 movl %eax,(%edx) 87 leal 4(%edx),%edx 88 subl $1,%ecx 89 jnz .L003bswap_loop 90 ret 91.size padlock_key_bswap,.-.L_padlock_key_bswap_begin 92.globl padlock_verify_context 93.type padlock_verify_context,@function 94.align 16 95padlock_verify_context: 96.L_padlock_verify_context_begin: 97 #ifdef __CET__ 98 99.byte 243,15,30,251 100 #endif 101 102 movl 4(%esp),%edx 103 leal .Lpadlock_saved_context-.L004verify_pic_point,%eax 104 pushfl 105 call _padlock_verify_ctx 106.L004verify_pic_point: 107 leal 4(%esp),%esp 108 ret 109.size padlock_verify_context,.-.L_padlock_verify_context_begin 110.type _padlock_verify_ctx,@function 111.align 16 112_padlock_verify_ctx: 113 #ifdef __CET__ 114 115.byte 243,15,30,251 116 #endif 117 118 addl (%esp),%eax 119 btl $30,4(%esp) 120 jnc .L005verified 121 cmpl (%eax),%edx 122 je .L005verified 123 pushfl 124 popfl 125.L005verified: 126 movl %edx,(%eax) 127 ret 128.size _padlock_verify_ctx,.-_padlock_verify_ctx 129.globl padlock_reload_key 130.type padlock_reload_key,@function 131.align 16 132padlock_reload_key: 133.L_padlock_reload_key_begin: 134 #ifdef __CET__ 135 136.byte 243,15,30,251 137 #endif 138 139 pushfl 140 popfl 141 ret 142.size padlock_reload_key,.-.L_padlock_reload_key_begin 143.globl padlock_aes_block 144.type padlock_aes_block,@function 145.align 16 146padlock_aes_block: 147.L_padlock_aes_block_begin: 148 #ifdef __CET__ 149 150.byte 243,15,30,251 151 #endif 152 153 pushl %edi 154 pushl %esi 155 pushl %ebx 156 movl 16(%esp),%edi 157 movl 20(%esp),%esi 158 movl 24(%esp),%edx 159 movl $1,%ecx 160 leal 32(%edx),%ebx 161 leal 16(%edx),%edx 162.byte 243,15,167,200 163 popl %ebx 164 popl %esi 165 popl %edi 166 ret 167.size padlock_aes_block,.-.L_padlock_aes_block_begin 168.globl padlock_ecb_encrypt 169.type padlock_ecb_encrypt,@function 170.align 16 171padlock_ecb_encrypt: 172.L_padlock_ecb_encrypt_begin: 173 #ifdef __CET__ 174 175.byte 243,15,30,251 176 #endif 177 178 pushl %ebp 179 pushl %ebx 180 pushl %esi 181 pushl %edi 182 movl 20(%esp),%edi 183 movl 24(%esp),%esi 184 movl 28(%esp),%edx 185 movl 32(%esp),%ecx 186 testl $15,%edx 187 jnz .L006ecb_abort 188 testl $15,%ecx 189 jnz .L006ecb_abort 190 leal .Lpadlock_saved_context-.L007ecb_pic_point,%eax 191 pushfl 192 cld 193 call _padlock_verify_ctx 194.L007ecb_pic_point: 195 leal 16(%edx),%edx 196 xorl %eax,%eax 197 xorl %ebx,%ebx 198 testl $32,(%edx) 199 jnz .L008ecb_aligned 200 testl $15,%edi 201 setz %al 202 testl $15,%esi 203 setz %bl 204 testl %ebx,%eax 205 jnz .L008ecb_aligned 206 negl %eax 207 movl $512,%ebx 208 notl %eax 209 leal -24(%esp),%ebp 210 cmpl %ebx,%ecx 211 cmovcl %ecx,%ebx 212 andl %ebx,%eax 213 movl %ecx,%ebx 214 negl %eax 215 andl $511,%ebx 216 leal (%eax,%ebp,1),%esp 217 movl $512,%eax 218 cmovzl %eax,%ebx 219 movl %ebp,%eax 220 andl $-16,%ebp 221 andl $-16,%esp 222 movl %eax,16(%ebp) 223 cmpl %ebx,%ecx 224 ja .L009ecb_loop 225 movl %esi,%eax 226 cmpl %esp,%ebp 227 cmovel %edi,%eax 228 addl %ecx,%eax 229 negl %eax 230 andl $4095,%eax 231 cmpl $128,%eax 232 movl $-128,%eax 233 cmovael %ebx,%eax 234 andl %eax,%ebx 235 jz .L010ecb_unaligned_tail 236 jmp .L009ecb_loop 237.align 16 238.L009ecb_loop: 239 movl %edi,(%ebp) 240 movl %esi,4(%ebp) 241 movl %ecx,8(%ebp) 242 movl %ebx,%ecx 243 movl %ebx,12(%ebp) 244 testl $15,%edi 245 cmovnzl %esp,%edi 246 testl $15,%esi 247 jz .L011ecb_inp_aligned 248 shrl $2,%ecx 249.byte 243,165 250 subl %ebx,%edi 251 movl %ebx,%ecx 252 movl %edi,%esi 253.L011ecb_inp_aligned: 254 leal -16(%edx),%eax 255 leal 16(%edx),%ebx 256 shrl $4,%ecx 257.byte 243,15,167,200 258 movl (%ebp),%edi 259 movl 12(%ebp),%ebx 260 testl $15,%edi 261 jz .L012ecb_out_aligned 262 movl %ebx,%ecx 263 leal (%esp),%esi 264 shrl $2,%ecx 265.byte 243,165 266 subl %ebx,%edi 267.L012ecb_out_aligned: 268 movl 4(%ebp),%esi 269 movl 8(%ebp),%ecx 270 addl %ebx,%edi 271 addl %ebx,%esi 272 subl %ebx,%ecx 273 movl $512,%ebx 274 jz .L013ecb_break 275 cmpl %ebx,%ecx 276 jae .L009ecb_loop 277.L010ecb_unaligned_tail: 278 xorl %eax,%eax 279 cmpl %ebp,%esp 280 cmovel %ecx,%eax 281 subl %eax,%esp 282 movl %edi,%eax 283 movl %ecx,%ebx 284 shrl $2,%ecx 285 leal (%esp),%edi 286.byte 243,165 287 movl %esp,%esi 288 movl %eax,%edi 289 movl %ebx,%ecx 290 jmp .L009ecb_loop 291.align 16 292.L013ecb_break: 293 cmpl %ebp,%esp 294 je .L014ecb_done 295 pxor %xmm0,%xmm0 296 leal (%esp),%eax 297.L015ecb_bzero: 298 movaps %xmm0,(%eax) 299 leal 16(%eax),%eax 300 cmpl %eax,%ebp 301 ja .L015ecb_bzero 302.L014ecb_done: 303 movl 16(%ebp),%ebp 304 leal 24(%ebp),%esp 305 jmp .L016ecb_exit 306.align 16 307.L008ecb_aligned: 308 leal (%esi,%ecx,1),%ebp 309 negl %ebp 310 andl $4095,%ebp 311 xorl %eax,%eax 312 cmpl $128,%ebp 313 movl $127,%ebp 314 cmovael %eax,%ebp 315 andl %ecx,%ebp 316 subl %ebp,%ecx 317 jz .L017ecb_aligned_tail 318 leal -16(%edx),%eax 319 leal 16(%edx),%ebx 320 shrl $4,%ecx 321.byte 243,15,167,200 322 testl %ebp,%ebp 323 jz .L016ecb_exit 324.L017ecb_aligned_tail: 325 movl %ebp,%ecx 326 leal -24(%esp),%ebp 327 movl %ebp,%esp 328 movl %ebp,%eax 329 subl %ecx,%esp 330 andl $-16,%ebp 331 andl $-16,%esp 332 movl %eax,16(%ebp) 333 movl %edi,%eax 334 movl %ecx,%ebx 335 shrl $2,%ecx 336 leal (%esp),%edi 337.byte 243,165 338 movl %esp,%esi 339 movl %eax,%edi 340 movl %ebx,%ecx 341 jmp .L009ecb_loop 342.L016ecb_exit: 343 movl $1,%eax 344 leal 4(%esp),%esp 345.L006ecb_abort: 346 popl %edi 347 popl %esi 348 popl %ebx 349 popl %ebp 350 ret 351.size padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin 352.globl padlock_cbc_encrypt 353.type padlock_cbc_encrypt,@function 354.align 16 355padlock_cbc_encrypt: 356.L_padlock_cbc_encrypt_begin: 357 #ifdef __CET__ 358 359.byte 243,15,30,251 360 #endif 361 362 pushl %ebp 363 pushl %ebx 364 pushl %esi 365 pushl %edi 366 movl 20(%esp),%edi 367 movl 24(%esp),%esi 368 movl 28(%esp),%edx 369 movl 32(%esp),%ecx 370 testl $15,%edx 371 jnz .L018cbc_abort 372 testl $15,%ecx 373 jnz .L018cbc_abort 374 leal .Lpadlock_saved_context-.L019cbc_pic_point,%eax 375 pushfl 376 cld 377 call _padlock_verify_ctx 378.L019cbc_pic_point: 379 leal 16(%edx),%edx 380 xorl %eax,%eax 381 xorl %ebx,%ebx 382 testl $32,(%edx) 383 jnz .L020cbc_aligned 384 testl $15,%edi 385 setz %al 386 testl $15,%esi 387 setz %bl 388 testl %ebx,%eax 389 jnz .L020cbc_aligned 390 negl %eax 391 movl $512,%ebx 392 notl %eax 393 leal -24(%esp),%ebp 394 cmpl %ebx,%ecx 395 cmovcl %ecx,%ebx 396 andl %ebx,%eax 397 movl %ecx,%ebx 398 negl %eax 399 andl $511,%ebx 400 leal (%eax,%ebp,1),%esp 401 movl $512,%eax 402 cmovzl %eax,%ebx 403 movl %ebp,%eax 404 andl $-16,%ebp 405 andl $-16,%esp 406 movl %eax,16(%ebp) 407 cmpl %ebx,%ecx 408 ja .L021cbc_loop 409 movl %esi,%eax 410 cmpl %esp,%ebp 411 cmovel %edi,%eax 412 addl %ecx,%eax 413 negl %eax 414 andl $4095,%eax 415 cmpl $64,%eax 416 movl $-64,%eax 417 cmovael %ebx,%eax 418 andl %eax,%ebx 419 jz .L022cbc_unaligned_tail 420 jmp .L021cbc_loop 421.align 16 422.L021cbc_loop: 423 movl %edi,(%ebp) 424 movl %esi,4(%ebp) 425 movl %ecx,8(%ebp) 426 movl %ebx,%ecx 427 movl %ebx,12(%ebp) 428 testl $15,%edi 429 cmovnzl %esp,%edi 430 testl $15,%esi 431 jz .L023cbc_inp_aligned 432 shrl $2,%ecx 433.byte 243,165 434 subl %ebx,%edi 435 movl %ebx,%ecx 436 movl %edi,%esi 437.L023cbc_inp_aligned: 438 leal -16(%edx),%eax 439 leal 16(%edx),%ebx 440 shrl $4,%ecx 441.byte 243,15,167,208 442 movaps (%eax),%xmm0 443 movaps %xmm0,-16(%edx) 444 movl (%ebp),%edi 445 movl 12(%ebp),%ebx 446 testl $15,%edi 447 jz .L024cbc_out_aligned 448 movl %ebx,%ecx 449 leal (%esp),%esi 450 shrl $2,%ecx 451.byte 243,165 452 subl %ebx,%edi 453.L024cbc_out_aligned: 454 movl 4(%ebp),%esi 455 movl 8(%ebp),%ecx 456 addl %ebx,%edi 457 addl %ebx,%esi 458 subl %ebx,%ecx 459 movl $512,%ebx 460 jz .L025cbc_break 461 cmpl %ebx,%ecx 462 jae .L021cbc_loop 463.L022cbc_unaligned_tail: 464 xorl %eax,%eax 465 cmpl %ebp,%esp 466 cmovel %ecx,%eax 467 subl %eax,%esp 468 movl %edi,%eax 469 movl %ecx,%ebx 470 shrl $2,%ecx 471 leal (%esp),%edi 472.byte 243,165 473 movl %esp,%esi 474 movl %eax,%edi 475 movl %ebx,%ecx 476 jmp .L021cbc_loop 477.align 16 478.L025cbc_break: 479 cmpl %ebp,%esp 480 je .L026cbc_done 481 pxor %xmm0,%xmm0 482 leal (%esp),%eax 483.L027cbc_bzero: 484 movaps %xmm0,(%eax) 485 leal 16(%eax),%eax 486 cmpl %eax,%ebp 487 ja .L027cbc_bzero 488.L026cbc_done: 489 movl 16(%ebp),%ebp 490 leal 24(%ebp),%esp 491 jmp .L028cbc_exit 492.align 16 493.L020cbc_aligned: 494 leal (%esi,%ecx,1),%ebp 495 negl %ebp 496 andl $4095,%ebp 497 xorl %eax,%eax 498 cmpl $64,%ebp 499 movl $63,%ebp 500 cmovael %eax,%ebp 501 andl %ecx,%ebp 502 subl %ebp,%ecx 503 jz .L029cbc_aligned_tail 504 leal -16(%edx),%eax 505 leal 16(%edx),%ebx 506 shrl $4,%ecx 507.byte 243,15,167,208 508 movaps (%eax),%xmm0 509 movaps %xmm0,-16(%edx) 510 testl %ebp,%ebp 511 jz .L028cbc_exit 512.L029cbc_aligned_tail: 513 movl %ebp,%ecx 514 leal -24(%esp),%ebp 515 movl %ebp,%esp 516 movl %ebp,%eax 517 subl %ecx,%esp 518 andl $-16,%ebp 519 andl $-16,%esp 520 movl %eax,16(%ebp) 521 movl %edi,%eax 522 movl %ecx,%ebx 523 shrl $2,%ecx 524 leal (%esp),%edi 525.byte 243,165 526 movl %esp,%esi 527 movl %eax,%edi 528 movl %ebx,%ecx 529 jmp .L021cbc_loop 530.L028cbc_exit: 531 movl $1,%eax 532 leal 4(%esp),%esp 533.L018cbc_abort: 534 popl %edi 535 popl %esi 536 popl %ebx 537 popl %ebp 538 ret 539.size padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin 540.globl padlock_cfb_encrypt 541.type padlock_cfb_encrypt,@function 542.align 16 543padlock_cfb_encrypt: 544.L_padlock_cfb_encrypt_begin: 545 #ifdef __CET__ 546 547.byte 243,15,30,251 548 #endif 549 550 pushl %ebp 551 pushl %ebx 552 pushl %esi 553 pushl %edi 554 movl 20(%esp),%edi 555 movl 24(%esp),%esi 556 movl 28(%esp),%edx 557 movl 32(%esp),%ecx 558 testl $15,%edx 559 jnz .L030cfb_abort 560 testl $15,%ecx 561 jnz .L030cfb_abort 562 leal .Lpadlock_saved_context-.L031cfb_pic_point,%eax 563 pushfl 564 cld 565 call _padlock_verify_ctx 566.L031cfb_pic_point: 567 leal 16(%edx),%edx 568 xorl %eax,%eax 569 xorl %ebx,%ebx 570 testl $32,(%edx) 571 jnz .L032cfb_aligned 572 testl $15,%edi 573 setz %al 574 testl $15,%esi 575 setz %bl 576 testl %ebx,%eax 577 jnz .L032cfb_aligned 578 negl %eax 579 movl $512,%ebx 580 notl %eax 581 leal -24(%esp),%ebp 582 cmpl %ebx,%ecx 583 cmovcl %ecx,%ebx 584 andl %ebx,%eax 585 movl %ecx,%ebx 586 negl %eax 587 andl $511,%ebx 588 leal (%eax,%ebp,1),%esp 589 movl $512,%eax 590 cmovzl %eax,%ebx 591 movl %ebp,%eax 592 andl $-16,%ebp 593 andl $-16,%esp 594 movl %eax,16(%ebp) 595 jmp .L033cfb_loop 596.align 16 597.L033cfb_loop: 598 movl %edi,(%ebp) 599 movl %esi,4(%ebp) 600 movl %ecx,8(%ebp) 601 movl %ebx,%ecx 602 movl %ebx,12(%ebp) 603 testl $15,%edi 604 cmovnzl %esp,%edi 605 testl $15,%esi 606 jz .L034cfb_inp_aligned 607 shrl $2,%ecx 608.byte 243,165 609 subl %ebx,%edi 610 movl %ebx,%ecx 611 movl %edi,%esi 612.L034cfb_inp_aligned: 613 leal -16(%edx),%eax 614 leal 16(%edx),%ebx 615 shrl $4,%ecx 616.byte 243,15,167,224 617 movaps (%eax),%xmm0 618 movaps %xmm0,-16(%edx) 619 movl (%ebp),%edi 620 movl 12(%ebp),%ebx 621 testl $15,%edi 622 jz .L035cfb_out_aligned 623 movl %ebx,%ecx 624 leal (%esp),%esi 625 shrl $2,%ecx 626.byte 243,165 627 subl %ebx,%edi 628.L035cfb_out_aligned: 629 movl 4(%ebp),%esi 630 movl 8(%ebp),%ecx 631 addl %ebx,%edi 632 addl %ebx,%esi 633 subl %ebx,%ecx 634 movl $512,%ebx 635 jnz .L033cfb_loop 636 cmpl %ebp,%esp 637 je .L036cfb_done 638 pxor %xmm0,%xmm0 639 leal (%esp),%eax 640.L037cfb_bzero: 641 movaps %xmm0,(%eax) 642 leal 16(%eax),%eax 643 cmpl %eax,%ebp 644 ja .L037cfb_bzero 645.L036cfb_done: 646 movl 16(%ebp),%ebp 647 leal 24(%ebp),%esp 648 jmp .L038cfb_exit 649.align 16 650.L032cfb_aligned: 651 leal -16(%edx),%eax 652 leal 16(%edx),%ebx 653 shrl $4,%ecx 654.byte 243,15,167,224 655 movaps (%eax),%xmm0 656 movaps %xmm0,-16(%edx) 657.L038cfb_exit: 658 movl $1,%eax 659 leal 4(%esp),%esp 660.L030cfb_abort: 661 popl %edi 662 popl %esi 663 popl %ebx 664 popl %ebp 665 ret 666.size padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin 667.globl padlock_ofb_encrypt 668.type padlock_ofb_encrypt,@function 669.align 16 670padlock_ofb_encrypt: 671.L_padlock_ofb_encrypt_begin: 672 #ifdef __CET__ 673 674.byte 243,15,30,251 675 #endif 676 677 pushl %ebp 678 pushl %ebx 679 pushl %esi 680 pushl %edi 681 movl 20(%esp),%edi 682 movl 24(%esp),%esi 683 movl 28(%esp),%edx 684 movl 32(%esp),%ecx 685 testl $15,%edx 686 jnz .L039ofb_abort 687 testl $15,%ecx 688 jnz .L039ofb_abort 689 leal .Lpadlock_saved_context-.L040ofb_pic_point,%eax 690 pushfl 691 cld 692 call _padlock_verify_ctx 693.L040ofb_pic_point: 694 leal 16(%edx),%edx 695 xorl %eax,%eax 696 xorl %ebx,%ebx 697 testl $32,(%edx) 698 jnz .L041ofb_aligned 699 testl $15,%edi 700 setz %al 701 testl $15,%esi 702 setz %bl 703 testl %ebx,%eax 704 jnz .L041ofb_aligned 705 negl %eax 706 movl $512,%ebx 707 notl %eax 708 leal -24(%esp),%ebp 709 cmpl %ebx,%ecx 710 cmovcl %ecx,%ebx 711 andl %ebx,%eax 712 movl %ecx,%ebx 713 negl %eax 714 andl $511,%ebx 715 leal (%eax,%ebp,1),%esp 716 movl $512,%eax 717 cmovzl %eax,%ebx 718 movl %ebp,%eax 719 andl $-16,%ebp 720 andl $-16,%esp 721 movl %eax,16(%ebp) 722 jmp .L042ofb_loop 723.align 16 724.L042ofb_loop: 725 movl %edi,(%ebp) 726 movl %esi,4(%ebp) 727 movl %ecx,8(%ebp) 728 movl %ebx,%ecx 729 movl %ebx,12(%ebp) 730 testl $15,%edi 731 cmovnzl %esp,%edi 732 testl $15,%esi 733 jz .L043ofb_inp_aligned 734 shrl $2,%ecx 735.byte 243,165 736 subl %ebx,%edi 737 movl %ebx,%ecx 738 movl %edi,%esi 739.L043ofb_inp_aligned: 740 leal -16(%edx),%eax 741 leal 16(%edx),%ebx 742 shrl $4,%ecx 743.byte 243,15,167,232 744 movaps (%eax),%xmm0 745 movaps %xmm0,-16(%edx) 746 movl (%ebp),%edi 747 movl 12(%ebp),%ebx 748 testl $15,%edi 749 jz .L044ofb_out_aligned 750 movl %ebx,%ecx 751 leal (%esp),%esi 752 shrl $2,%ecx 753.byte 243,165 754 subl %ebx,%edi 755.L044ofb_out_aligned: 756 movl 4(%ebp),%esi 757 movl 8(%ebp),%ecx 758 addl %ebx,%edi 759 addl %ebx,%esi 760 subl %ebx,%ecx 761 movl $512,%ebx 762 jnz .L042ofb_loop 763 cmpl %ebp,%esp 764 je .L045ofb_done 765 pxor %xmm0,%xmm0 766 leal (%esp),%eax 767.L046ofb_bzero: 768 movaps %xmm0,(%eax) 769 leal 16(%eax),%eax 770 cmpl %eax,%ebp 771 ja .L046ofb_bzero 772.L045ofb_done: 773 movl 16(%ebp),%ebp 774 leal 24(%ebp),%esp 775 jmp .L047ofb_exit 776.align 16 777.L041ofb_aligned: 778 leal -16(%edx),%eax 779 leal 16(%edx),%ebx 780 shrl $4,%ecx 781.byte 243,15,167,232 782 movaps (%eax),%xmm0 783 movaps %xmm0,-16(%edx) 784.L047ofb_exit: 785 movl $1,%eax 786 leal 4(%esp),%esp 787.L039ofb_abort: 788 popl %edi 789 popl %esi 790 popl %ebx 791 popl %ebp 792 ret 793.size padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin 794.globl padlock_ctr32_encrypt 795.type padlock_ctr32_encrypt,@function 796.align 16 797padlock_ctr32_encrypt: 798.L_padlock_ctr32_encrypt_begin: 799 #ifdef __CET__ 800 801.byte 243,15,30,251 802 #endif 803 804 pushl %ebp 805 pushl %ebx 806 pushl %esi 807 pushl %edi 808 movl 20(%esp),%edi 809 movl 24(%esp),%esi 810 movl 28(%esp),%edx 811 movl 32(%esp),%ecx 812 testl $15,%edx 813 jnz .L048ctr32_abort 814 testl $15,%ecx 815 jnz .L048ctr32_abort 816 leal .Lpadlock_saved_context-.L049ctr32_pic_point,%eax 817 pushfl 818 cld 819 call _padlock_verify_ctx 820.L049ctr32_pic_point: 821 leal 16(%edx),%edx 822 xorl %eax,%eax 823 movq -16(%edx),%mm0 824 movl $512,%ebx 825 notl %eax 826 leal -24(%esp),%ebp 827 cmpl %ebx,%ecx 828 cmovcl %ecx,%ebx 829 andl %ebx,%eax 830 movl %ecx,%ebx 831 negl %eax 832 andl $511,%ebx 833 leal (%eax,%ebp,1),%esp 834 movl $512,%eax 835 cmovzl %eax,%ebx 836 movl %ebp,%eax 837 andl $-16,%ebp 838 andl $-16,%esp 839 movl %eax,16(%ebp) 840 jmp .L050ctr32_loop 841.align 16 842.L050ctr32_loop: 843 movl %edi,(%ebp) 844 movl %esi,4(%ebp) 845 movl %ecx,8(%ebp) 846 movl %ebx,%ecx 847 movl %ebx,12(%ebp) 848 movl -4(%edx),%ecx 849 xorl %edi,%edi 850 movl -8(%edx),%eax 851.L051ctr32_prepare: 852 movl %ecx,12(%esp,%edi,1) 853 bswap %ecx 854 movq %mm0,(%esp,%edi,1) 855 incl %ecx 856 movl %eax,8(%esp,%edi,1) 857 bswap %ecx 858 leal 16(%edi),%edi 859 cmpl %ebx,%edi 860 jb .L051ctr32_prepare 861 movl %ecx,-4(%edx) 862 leal (%esp),%esi 863 leal (%esp),%edi 864 movl %ebx,%ecx 865 leal -16(%edx),%eax 866 leal 16(%edx),%ebx 867 shrl $4,%ecx 868.byte 243,15,167,200 869 movl (%ebp),%edi 870 movl 12(%ebp),%ebx 871 movl 4(%ebp),%esi 872 xorl %ecx,%ecx 873.L052ctr32_xor: 874 movups (%esi,%ecx,1),%xmm1 875 leal 16(%ecx),%ecx 876 pxor -16(%esp,%ecx,1),%xmm1 877 movups %xmm1,-16(%edi,%ecx,1) 878 cmpl %ebx,%ecx 879 jb .L052ctr32_xor 880 movl 8(%ebp),%ecx 881 addl %ebx,%edi 882 addl %ebx,%esi 883 subl %ebx,%ecx 884 movl $512,%ebx 885 jnz .L050ctr32_loop 886 pxor %xmm0,%xmm0 887 leal (%esp),%eax 888.L053ctr32_bzero: 889 movaps %xmm0,(%eax) 890 leal 16(%eax),%eax 891 cmpl %eax,%ebp 892 ja .L053ctr32_bzero 893.L054ctr32_done: 894 movl 16(%ebp),%ebp 895 leal 24(%ebp),%esp 896 movl $1,%eax 897 leal 4(%esp),%esp 898 emms 899.L048ctr32_abort: 900 popl %edi 901 popl %esi 902 popl %ebx 903 popl %ebp 904 ret 905.size padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin 906.globl padlock_xstore 907.type padlock_xstore,@function 908.align 16 909padlock_xstore: 910.L_padlock_xstore_begin: 911 #ifdef __CET__ 912 913.byte 243,15,30,251 914 #endif 915 916 pushl %edi 917 movl 8(%esp),%edi 918 movl 12(%esp),%edx 919.byte 15,167,192 920 popl %edi 921 ret 922.size padlock_xstore,.-.L_padlock_xstore_begin 923.type _win32_segv_handler,@function 924.align 16 925_win32_segv_handler: 926 #ifdef __CET__ 927 928.byte 243,15,30,251 929 #endif 930 931 movl $1,%eax 932 movl 4(%esp),%edx 933 movl 12(%esp),%ecx 934 cmpl $3221225477,(%edx) 935 jne .L055ret 936 addl $4,184(%ecx) 937 movl $0,%eax 938.L055ret: 939 ret 940.size _win32_segv_handler,.-_win32_segv_handler 941.globl padlock_sha1_oneshot 942.type padlock_sha1_oneshot,@function 943.align 16 944padlock_sha1_oneshot: 945.L_padlock_sha1_oneshot_begin: 946 #ifdef __CET__ 947 948.byte 243,15,30,251 949 #endif 950 951 pushl %edi 952 pushl %esi 953 xorl %eax,%eax 954 movl 12(%esp),%edi 955 movl 16(%esp),%esi 956 movl 20(%esp),%ecx 957 movl %esp,%edx 958 addl $-128,%esp 959 movups (%edi),%xmm0 960 andl $-16,%esp 961 movl 16(%edi),%eax 962 movaps %xmm0,(%esp) 963 movl %esp,%edi 964 movl %eax,16(%esp) 965 xorl %eax,%eax 966.byte 243,15,166,200 967 movaps (%esp),%xmm0 968 movl 16(%esp),%eax 969 movl %edx,%esp 970 movl 12(%esp),%edi 971 movups %xmm0,(%edi) 972 movl %eax,16(%edi) 973 popl %esi 974 popl %edi 975 ret 976.size padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin 977.globl padlock_sha1_blocks 978.type padlock_sha1_blocks,@function 979.align 16 980padlock_sha1_blocks: 981.L_padlock_sha1_blocks_begin: 982 #ifdef __CET__ 983 984.byte 243,15,30,251 985 #endif 986 987 pushl %edi 988 pushl %esi 989 movl 12(%esp),%edi 990 movl 16(%esp),%esi 991 movl %esp,%edx 992 movl 20(%esp),%ecx 993 addl $-128,%esp 994 movups (%edi),%xmm0 995 andl $-16,%esp 996 movl 16(%edi),%eax 997 movaps %xmm0,(%esp) 998 movl %esp,%edi 999 movl %eax,16(%esp) 1000 movl $-1,%eax 1001.byte 243,15,166,200 1002 movaps (%esp),%xmm0 1003 movl 16(%esp),%eax 1004 movl %edx,%esp 1005 movl 12(%esp),%edi 1006 movups %xmm0,(%edi) 1007 movl %eax,16(%edi) 1008 popl %esi 1009 popl %edi 1010 ret 1011.size padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin 1012.globl padlock_sha256_oneshot 1013.type padlock_sha256_oneshot,@function 1014.align 16 1015padlock_sha256_oneshot: 1016.L_padlock_sha256_oneshot_begin: 1017 #ifdef __CET__ 1018 1019.byte 243,15,30,251 1020 #endif 1021 1022 pushl %edi 1023 pushl %esi 1024 xorl %eax,%eax 1025 movl 12(%esp),%edi 1026 movl 16(%esp),%esi 1027 movl 20(%esp),%ecx 1028 movl %esp,%edx 1029 addl $-128,%esp 1030 movups (%edi),%xmm0 1031 andl $-16,%esp 1032 movups 16(%edi),%xmm1 1033 movaps %xmm0,(%esp) 1034 movl %esp,%edi 1035 movaps %xmm1,16(%esp) 1036 xorl %eax,%eax 1037.byte 243,15,166,208 1038 movaps (%esp),%xmm0 1039 movaps 16(%esp),%xmm1 1040 movl %edx,%esp 1041 movl 12(%esp),%edi 1042 movups %xmm0,(%edi) 1043 movups %xmm1,16(%edi) 1044 popl %esi 1045 popl %edi 1046 ret 1047.size padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin 1048.globl padlock_sha256_blocks 1049.type padlock_sha256_blocks,@function 1050.align 16 1051padlock_sha256_blocks: 1052.L_padlock_sha256_blocks_begin: 1053 #ifdef __CET__ 1054 1055.byte 243,15,30,251 1056 #endif 1057 1058 pushl %edi 1059 pushl %esi 1060 movl 12(%esp),%edi 1061 movl 16(%esp),%esi 1062 movl 20(%esp),%ecx 1063 movl %esp,%edx 1064 addl $-128,%esp 1065 movups (%edi),%xmm0 1066 andl $-16,%esp 1067 movups 16(%edi),%xmm1 1068 movaps %xmm0,(%esp) 1069 movl %esp,%edi 1070 movaps %xmm1,16(%esp) 1071 movl $-1,%eax 1072.byte 243,15,166,208 1073 movaps (%esp),%xmm0 1074 movaps 16(%esp),%xmm1 1075 movl %edx,%esp 1076 movl 12(%esp),%edi 1077 movups %xmm0,(%edi) 1078 movups %xmm1,16(%edi) 1079 popl %esi 1080 popl %edi 1081 ret 1082.size padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin 1083.globl padlock_sha512_blocks 1084.type padlock_sha512_blocks,@function 1085.align 16 1086padlock_sha512_blocks: 1087.L_padlock_sha512_blocks_begin: 1088 #ifdef __CET__ 1089 1090.byte 243,15,30,251 1091 #endif 1092 1093 pushl %edi 1094 pushl %esi 1095 movl 12(%esp),%edi 1096 movl 16(%esp),%esi 1097 movl 20(%esp),%ecx 1098 movl %esp,%edx 1099 addl $-128,%esp 1100 movups (%edi),%xmm0 1101 andl $-16,%esp 1102 movups 16(%edi),%xmm1 1103 movups 32(%edi),%xmm2 1104 movups 48(%edi),%xmm3 1105 movaps %xmm0,(%esp) 1106 movl %esp,%edi 1107 movaps %xmm1,16(%esp) 1108 movaps %xmm2,32(%esp) 1109 movaps %xmm3,48(%esp) 1110.byte 243,15,166,224 1111 movaps (%esp),%xmm0 1112 movaps 16(%esp),%xmm1 1113 movaps 32(%esp),%xmm2 1114 movaps 48(%esp),%xmm3 1115 movl %edx,%esp 1116 movl 12(%esp),%edi 1117 movups %xmm0,(%edi) 1118 movups %xmm1,16(%edi) 1119 movups %xmm2,32(%edi) 1120 movups %xmm3,48(%edi) 1121 popl %esi 1122 popl %edi 1123 ret 1124.size padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin 1125.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32 1126.byte 109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65 1127.byte 77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101 1128.byte 110,115,115,108,46,111,114,103,62,0 1129.align 16 1130.data 1131.align 4 1132.Lpadlock_saved_context: 1133.long 0 1134 1135 .section ".note.gnu.property", "a" 1136 .p2align 2 1137 .long 1f - 0f 1138 .long 4f - 1f 1139 .long 5 11400: 1141 .asciz "GNU" 11421: 1143 .p2align 2 1144 .long 0xc0000002 1145 .long 3f - 2f 11462: 1147 .long 3 11483: 1149 .p2align 2 11504: 1151#else 1152.text 1153.globl padlock_capability 1154.type padlock_capability,@function 1155.align 16 1156padlock_capability: 1157.L_padlock_capability_begin: 1158 #ifdef __CET__ 1159 1160.byte 243,15,30,251 1161 #endif 1162 1163 pushl %ebx 1164 pushfl 1165 popl %eax 1166 movl %eax,%ecx 1167 xorl $2097152,%eax 1168 pushl %eax 1169 popfl 1170 pushfl 1171 popl %eax 1172 xorl %eax,%ecx 1173 xorl %eax,%eax 1174 btl $21,%ecx 1175 jnc .L000noluck 1176 .byte 0x0f,0xa2 1177 xorl %eax,%eax 1178 cmpl $0x746e6543,%ebx 1179 jne .L001zhaoxin 1180 cmpl $0x48727561,%edx 1181 jne .L000noluck 1182 cmpl $0x736c7561,%ecx 1183 jne .L000noluck 1184 jmp .L002zhaoxinEnd 1185.L001zhaoxin: 1186 cmpl $0x68532020,%ebx 1187 jne .L000noluck 1188 cmpl $0x68676e61,%edx 1189 jne .L000noluck 1190 cmpl $0x20206961,%ecx 1191 jne .L000noluck 1192.L002zhaoxinEnd: 1193 movl $3221225472,%eax 1194 .byte 0x0f,0xa2 1195 movl %eax,%edx 1196 xorl %eax,%eax 1197 cmpl $3221225473,%edx 1198 jb .L000noluck 1199 movl $1,%eax 1200 .byte 0x0f,0xa2 1201 orl $15,%eax 1202 xorl %ebx,%ebx 1203 andl $4095,%eax 1204 cmpl $1791,%eax 1205 sete %bl 1206 movl $3221225473,%eax 1207 pushl %ebx 1208 .byte 0x0f,0xa2 1209 popl %ebx 1210 movl %edx,%eax 1211 shll $4,%ebx 1212 andl $4294967279,%eax 1213 orl %ebx,%eax 1214.L000noluck: 1215 popl %ebx 1216 ret 1217.size padlock_capability,.-.L_padlock_capability_begin 1218.globl padlock_key_bswap 1219.type padlock_key_bswap,@function 1220.align 16 1221padlock_key_bswap: 1222.L_padlock_key_bswap_begin: 1223 #ifdef __CET__ 1224 1225.byte 243,15,30,251 1226 #endif 1227 1228 movl 4(%esp),%edx 1229 movl 240(%edx),%ecx 1230 incl %ecx 1231 shll $2,%ecx 1232.L003bswap_loop: 1233 movl (%edx),%eax 1234 bswap %eax 1235 movl %eax,(%edx) 1236 leal 4(%edx),%edx 1237 subl $1,%ecx 1238 jnz .L003bswap_loop 1239 ret 1240.size padlock_key_bswap,.-.L_padlock_key_bswap_begin 1241.globl padlock_verify_context 1242.type padlock_verify_context,@function 1243.align 16 1244padlock_verify_context: 1245.L_padlock_verify_context_begin: 1246 #ifdef __CET__ 1247 1248.byte 243,15,30,251 1249 #endif 1250 1251 movl 4(%esp),%edx 1252 leal .Lpadlock_saved_context-.L004verify_pic_point,%eax 1253 pushfl 1254 call _padlock_verify_ctx 1255.L004verify_pic_point: 1256 leal 4(%esp),%esp 1257 ret 1258.size padlock_verify_context,.-.L_padlock_verify_context_begin 1259.type _padlock_verify_ctx,@function 1260.align 16 1261_padlock_verify_ctx: 1262 #ifdef __CET__ 1263 1264.byte 243,15,30,251 1265 #endif 1266 1267 addl (%esp),%eax 1268 btl $30,4(%esp) 1269 jnc .L005verified 1270 cmpl (%eax),%edx 1271 je .L005verified 1272 pushfl 1273 popfl 1274.L005verified: 1275 movl %edx,(%eax) 1276 ret 1277.size _padlock_verify_ctx,.-_padlock_verify_ctx 1278.globl padlock_reload_key 1279.type padlock_reload_key,@function 1280.align 16 1281padlock_reload_key: 1282.L_padlock_reload_key_begin: 1283 #ifdef __CET__ 1284 1285.byte 243,15,30,251 1286 #endif 1287 1288 pushfl 1289 popfl 1290 ret 1291.size padlock_reload_key,.-.L_padlock_reload_key_begin 1292.globl padlock_aes_block 1293.type padlock_aes_block,@function 1294.align 16 1295padlock_aes_block: 1296.L_padlock_aes_block_begin: 1297 #ifdef __CET__ 1298 1299.byte 243,15,30,251 1300 #endif 1301 1302 pushl %edi 1303 pushl %esi 1304 pushl %ebx 1305 movl 16(%esp),%edi 1306 movl 20(%esp),%esi 1307 movl 24(%esp),%edx 1308 movl $1,%ecx 1309 leal 32(%edx),%ebx 1310 leal 16(%edx),%edx 1311.byte 243,15,167,200 1312 popl %ebx 1313 popl %esi 1314 popl %edi 1315 ret 1316.size padlock_aes_block,.-.L_padlock_aes_block_begin 1317.globl padlock_ecb_encrypt 1318.type padlock_ecb_encrypt,@function 1319.align 16 1320padlock_ecb_encrypt: 1321.L_padlock_ecb_encrypt_begin: 1322 #ifdef __CET__ 1323 1324.byte 243,15,30,251 1325 #endif 1326 1327 pushl %ebp 1328 pushl %ebx 1329 pushl %esi 1330 pushl %edi 1331 movl 20(%esp),%edi 1332 movl 24(%esp),%esi 1333 movl 28(%esp),%edx 1334 movl 32(%esp),%ecx 1335 testl $15,%edx 1336 jnz .L006ecb_abort 1337 testl $15,%ecx 1338 jnz .L006ecb_abort 1339 leal .Lpadlock_saved_context-.L007ecb_pic_point,%eax 1340 pushfl 1341 cld 1342 call _padlock_verify_ctx 1343.L007ecb_pic_point: 1344 leal 16(%edx),%edx 1345 xorl %eax,%eax 1346 xorl %ebx,%ebx 1347 testl $32,(%edx) 1348 jnz .L008ecb_aligned 1349 testl $15,%edi 1350 setz %al 1351 testl $15,%esi 1352 setz %bl 1353 testl %ebx,%eax 1354 jnz .L008ecb_aligned 1355 negl %eax 1356 movl $512,%ebx 1357 notl %eax 1358 leal -24(%esp),%ebp 1359 cmpl %ebx,%ecx 1360 cmovcl %ecx,%ebx 1361 andl %ebx,%eax 1362 movl %ecx,%ebx 1363 negl %eax 1364 andl $511,%ebx 1365 leal (%eax,%ebp,1),%esp 1366 movl $512,%eax 1367 cmovzl %eax,%ebx 1368 movl %ebp,%eax 1369 andl $-16,%ebp 1370 andl $-16,%esp 1371 movl %eax,16(%ebp) 1372 cmpl %ebx,%ecx 1373 ja .L009ecb_loop 1374 movl %esi,%eax 1375 cmpl %esp,%ebp 1376 cmovel %edi,%eax 1377 addl %ecx,%eax 1378 negl %eax 1379 andl $4095,%eax 1380 cmpl $128,%eax 1381 movl $-128,%eax 1382 cmovael %ebx,%eax 1383 andl %eax,%ebx 1384 jz .L010ecb_unaligned_tail 1385 jmp .L009ecb_loop 1386.align 16 1387.L009ecb_loop: 1388 movl %edi,(%ebp) 1389 movl %esi,4(%ebp) 1390 movl %ecx,8(%ebp) 1391 movl %ebx,%ecx 1392 movl %ebx,12(%ebp) 1393 testl $15,%edi 1394 cmovnzl %esp,%edi 1395 testl $15,%esi 1396 jz .L011ecb_inp_aligned 1397 shrl $2,%ecx 1398.byte 243,165 1399 subl %ebx,%edi 1400 movl %ebx,%ecx 1401 movl %edi,%esi 1402.L011ecb_inp_aligned: 1403 leal -16(%edx),%eax 1404 leal 16(%edx),%ebx 1405 shrl $4,%ecx 1406.byte 243,15,167,200 1407 movl (%ebp),%edi 1408 movl 12(%ebp),%ebx 1409 testl $15,%edi 1410 jz .L012ecb_out_aligned 1411 movl %ebx,%ecx 1412 leal (%esp),%esi 1413 shrl $2,%ecx 1414.byte 243,165 1415 subl %ebx,%edi 1416.L012ecb_out_aligned: 1417 movl 4(%ebp),%esi 1418 movl 8(%ebp),%ecx 1419 addl %ebx,%edi 1420 addl %ebx,%esi 1421 subl %ebx,%ecx 1422 movl $512,%ebx 1423 jz .L013ecb_break 1424 cmpl %ebx,%ecx 1425 jae .L009ecb_loop 1426.L010ecb_unaligned_tail: 1427 xorl %eax,%eax 1428 cmpl %ebp,%esp 1429 cmovel %ecx,%eax 1430 subl %eax,%esp 1431 movl %edi,%eax 1432 movl %ecx,%ebx 1433 shrl $2,%ecx 1434 leal (%esp),%edi 1435.byte 243,165 1436 movl %esp,%esi 1437 movl %eax,%edi 1438 movl %ebx,%ecx 1439 jmp .L009ecb_loop 1440.align 16 1441.L013ecb_break: 1442 cmpl %ebp,%esp 1443 je .L014ecb_done 1444 pxor %xmm0,%xmm0 1445 leal (%esp),%eax 1446.L015ecb_bzero: 1447 movaps %xmm0,(%eax) 1448 leal 16(%eax),%eax 1449 cmpl %eax,%ebp 1450 ja .L015ecb_bzero 1451.L014ecb_done: 1452 movl 16(%ebp),%ebp 1453 leal 24(%ebp),%esp 1454 jmp .L016ecb_exit 1455.align 16 1456.L008ecb_aligned: 1457 leal (%esi,%ecx,1),%ebp 1458 negl %ebp 1459 andl $4095,%ebp 1460 xorl %eax,%eax 1461 cmpl $128,%ebp 1462 movl $127,%ebp 1463 cmovael %eax,%ebp 1464 andl %ecx,%ebp 1465 subl %ebp,%ecx 1466 jz .L017ecb_aligned_tail 1467 leal -16(%edx),%eax 1468 leal 16(%edx),%ebx 1469 shrl $4,%ecx 1470.byte 243,15,167,200 1471 testl %ebp,%ebp 1472 jz .L016ecb_exit 1473.L017ecb_aligned_tail: 1474 movl %ebp,%ecx 1475 leal -24(%esp),%ebp 1476 movl %ebp,%esp 1477 movl %ebp,%eax 1478 subl %ecx,%esp 1479 andl $-16,%ebp 1480 andl $-16,%esp 1481 movl %eax,16(%ebp) 1482 movl %edi,%eax 1483 movl %ecx,%ebx 1484 shrl $2,%ecx 1485 leal (%esp),%edi 1486.byte 243,165 1487 movl %esp,%esi 1488 movl %eax,%edi 1489 movl %ebx,%ecx 1490 jmp .L009ecb_loop 1491.L016ecb_exit: 1492 movl $1,%eax 1493 leal 4(%esp),%esp 1494.L006ecb_abort: 1495 popl %edi 1496 popl %esi 1497 popl %ebx 1498 popl %ebp 1499 ret 1500.size padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin 1501.globl padlock_cbc_encrypt 1502.type padlock_cbc_encrypt,@function 1503.align 16 1504padlock_cbc_encrypt: 1505.L_padlock_cbc_encrypt_begin: 1506 #ifdef __CET__ 1507 1508.byte 243,15,30,251 1509 #endif 1510 1511 pushl %ebp 1512 pushl %ebx 1513 pushl %esi 1514 pushl %edi 1515 movl 20(%esp),%edi 1516 movl 24(%esp),%esi 1517 movl 28(%esp),%edx 1518 movl 32(%esp),%ecx 1519 testl $15,%edx 1520 jnz .L018cbc_abort 1521 testl $15,%ecx 1522 jnz .L018cbc_abort 1523 leal .Lpadlock_saved_context-.L019cbc_pic_point,%eax 1524 pushfl 1525 cld 1526 call _padlock_verify_ctx 1527.L019cbc_pic_point: 1528 leal 16(%edx),%edx 1529 xorl %eax,%eax 1530 xorl %ebx,%ebx 1531 testl $32,(%edx) 1532 jnz .L020cbc_aligned 1533 testl $15,%edi 1534 setz %al 1535 testl $15,%esi 1536 setz %bl 1537 testl %ebx,%eax 1538 jnz .L020cbc_aligned 1539 negl %eax 1540 movl $512,%ebx 1541 notl %eax 1542 leal -24(%esp),%ebp 1543 cmpl %ebx,%ecx 1544 cmovcl %ecx,%ebx 1545 andl %ebx,%eax 1546 movl %ecx,%ebx 1547 negl %eax 1548 andl $511,%ebx 1549 leal (%eax,%ebp,1),%esp 1550 movl $512,%eax 1551 cmovzl %eax,%ebx 1552 movl %ebp,%eax 1553 andl $-16,%ebp 1554 andl $-16,%esp 1555 movl %eax,16(%ebp) 1556 cmpl %ebx,%ecx 1557 ja .L021cbc_loop 1558 movl %esi,%eax 1559 cmpl %esp,%ebp 1560 cmovel %edi,%eax 1561 addl %ecx,%eax 1562 negl %eax 1563 andl $4095,%eax 1564 cmpl $64,%eax 1565 movl $-64,%eax 1566 cmovael %ebx,%eax 1567 andl %eax,%ebx 1568 jz .L022cbc_unaligned_tail 1569 jmp .L021cbc_loop 1570.align 16 1571.L021cbc_loop: 1572 movl %edi,(%ebp) 1573 movl %esi,4(%ebp) 1574 movl %ecx,8(%ebp) 1575 movl %ebx,%ecx 1576 movl %ebx,12(%ebp) 1577 testl $15,%edi 1578 cmovnzl %esp,%edi 1579 testl $15,%esi 1580 jz .L023cbc_inp_aligned 1581 shrl $2,%ecx 1582.byte 243,165 1583 subl %ebx,%edi 1584 movl %ebx,%ecx 1585 movl %edi,%esi 1586.L023cbc_inp_aligned: 1587 leal -16(%edx),%eax 1588 leal 16(%edx),%ebx 1589 shrl $4,%ecx 1590.byte 243,15,167,208 1591 movaps (%eax),%xmm0 1592 movaps %xmm0,-16(%edx) 1593 movl (%ebp),%edi 1594 movl 12(%ebp),%ebx 1595 testl $15,%edi 1596 jz .L024cbc_out_aligned 1597 movl %ebx,%ecx 1598 leal (%esp),%esi 1599 shrl $2,%ecx 1600.byte 243,165 1601 subl %ebx,%edi 1602.L024cbc_out_aligned: 1603 movl 4(%ebp),%esi 1604 movl 8(%ebp),%ecx 1605 addl %ebx,%edi 1606 addl %ebx,%esi 1607 subl %ebx,%ecx 1608 movl $512,%ebx 1609 jz .L025cbc_break 1610 cmpl %ebx,%ecx 1611 jae .L021cbc_loop 1612.L022cbc_unaligned_tail: 1613 xorl %eax,%eax 1614 cmpl %ebp,%esp 1615 cmovel %ecx,%eax 1616 subl %eax,%esp 1617 movl %edi,%eax 1618 movl %ecx,%ebx 1619 shrl $2,%ecx 1620 leal (%esp),%edi 1621.byte 243,165 1622 movl %esp,%esi 1623 movl %eax,%edi 1624 movl %ebx,%ecx 1625 jmp .L021cbc_loop 1626.align 16 1627.L025cbc_break: 1628 cmpl %ebp,%esp 1629 je .L026cbc_done 1630 pxor %xmm0,%xmm0 1631 leal (%esp),%eax 1632.L027cbc_bzero: 1633 movaps %xmm0,(%eax) 1634 leal 16(%eax),%eax 1635 cmpl %eax,%ebp 1636 ja .L027cbc_bzero 1637.L026cbc_done: 1638 movl 16(%ebp),%ebp 1639 leal 24(%ebp),%esp 1640 jmp .L028cbc_exit 1641.align 16 1642.L020cbc_aligned: 1643 leal (%esi,%ecx,1),%ebp 1644 negl %ebp 1645 andl $4095,%ebp 1646 xorl %eax,%eax 1647 cmpl $64,%ebp 1648 movl $63,%ebp 1649 cmovael %eax,%ebp 1650 andl %ecx,%ebp 1651 subl %ebp,%ecx 1652 jz .L029cbc_aligned_tail 1653 leal -16(%edx),%eax 1654 leal 16(%edx),%ebx 1655 shrl $4,%ecx 1656.byte 243,15,167,208 1657 movaps (%eax),%xmm0 1658 movaps %xmm0,-16(%edx) 1659 testl %ebp,%ebp 1660 jz .L028cbc_exit 1661.L029cbc_aligned_tail: 1662 movl %ebp,%ecx 1663 leal -24(%esp),%ebp 1664 movl %ebp,%esp 1665 movl %ebp,%eax 1666 subl %ecx,%esp 1667 andl $-16,%ebp 1668 andl $-16,%esp 1669 movl %eax,16(%ebp) 1670 movl %edi,%eax 1671 movl %ecx,%ebx 1672 shrl $2,%ecx 1673 leal (%esp),%edi 1674.byte 243,165 1675 movl %esp,%esi 1676 movl %eax,%edi 1677 movl %ebx,%ecx 1678 jmp .L021cbc_loop 1679.L028cbc_exit: 1680 movl $1,%eax 1681 leal 4(%esp),%esp 1682.L018cbc_abort: 1683 popl %edi 1684 popl %esi 1685 popl %ebx 1686 popl %ebp 1687 ret 1688.size padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin 1689.globl padlock_cfb_encrypt 1690.type padlock_cfb_encrypt,@function 1691.align 16 1692padlock_cfb_encrypt: 1693.L_padlock_cfb_encrypt_begin: 1694 #ifdef __CET__ 1695 1696.byte 243,15,30,251 1697 #endif 1698 1699 pushl %ebp 1700 pushl %ebx 1701 pushl %esi 1702 pushl %edi 1703 movl 20(%esp),%edi 1704 movl 24(%esp),%esi 1705 movl 28(%esp),%edx 1706 movl 32(%esp),%ecx 1707 testl $15,%edx 1708 jnz .L030cfb_abort 1709 testl $15,%ecx 1710 jnz .L030cfb_abort 1711 leal .Lpadlock_saved_context-.L031cfb_pic_point,%eax 1712 pushfl 1713 cld 1714 call _padlock_verify_ctx 1715.L031cfb_pic_point: 1716 leal 16(%edx),%edx 1717 xorl %eax,%eax 1718 xorl %ebx,%ebx 1719 testl $32,(%edx) 1720 jnz .L032cfb_aligned 1721 testl $15,%edi 1722 setz %al 1723 testl $15,%esi 1724 setz %bl 1725 testl %ebx,%eax 1726 jnz .L032cfb_aligned 1727 negl %eax 1728 movl $512,%ebx 1729 notl %eax 1730 leal -24(%esp),%ebp 1731 cmpl %ebx,%ecx 1732 cmovcl %ecx,%ebx 1733 andl %ebx,%eax 1734 movl %ecx,%ebx 1735 negl %eax 1736 andl $511,%ebx 1737 leal (%eax,%ebp,1),%esp 1738 movl $512,%eax 1739 cmovzl %eax,%ebx 1740 movl %ebp,%eax 1741 andl $-16,%ebp 1742 andl $-16,%esp 1743 movl %eax,16(%ebp) 1744 jmp .L033cfb_loop 1745.align 16 1746.L033cfb_loop: 1747 movl %edi,(%ebp) 1748 movl %esi,4(%ebp) 1749 movl %ecx,8(%ebp) 1750 movl %ebx,%ecx 1751 movl %ebx,12(%ebp) 1752 testl $15,%edi 1753 cmovnzl %esp,%edi 1754 testl $15,%esi 1755 jz .L034cfb_inp_aligned 1756 shrl $2,%ecx 1757.byte 243,165 1758 subl %ebx,%edi 1759 movl %ebx,%ecx 1760 movl %edi,%esi 1761.L034cfb_inp_aligned: 1762 leal -16(%edx),%eax 1763 leal 16(%edx),%ebx 1764 shrl $4,%ecx 1765.byte 243,15,167,224 1766 movaps (%eax),%xmm0 1767 movaps %xmm0,-16(%edx) 1768 movl (%ebp),%edi 1769 movl 12(%ebp),%ebx 1770 testl $15,%edi 1771 jz .L035cfb_out_aligned 1772 movl %ebx,%ecx 1773 leal (%esp),%esi 1774 shrl $2,%ecx 1775.byte 243,165 1776 subl %ebx,%edi 1777.L035cfb_out_aligned: 1778 movl 4(%ebp),%esi 1779 movl 8(%ebp),%ecx 1780 addl %ebx,%edi 1781 addl %ebx,%esi 1782 subl %ebx,%ecx 1783 movl $512,%ebx 1784 jnz .L033cfb_loop 1785 cmpl %ebp,%esp 1786 je .L036cfb_done 1787 pxor %xmm0,%xmm0 1788 leal (%esp),%eax 1789.L037cfb_bzero: 1790 movaps %xmm0,(%eax) 1791 leal 16(%eax),%eax 1792 cmpl %eax,%ebp 1793 ja .L037cfb_bzero 1794.L036cfb_done: 1795 movl 16(%ebp),%ebp 1796 leal 24(%ebp),%esp 1797 jmp .L038cfb_exit 1798.align 16 1799.L032cfb_aligned: 1800 leal -16(%edx),%eax 1801 leal 16(%edx),%ebx 1802 shrl $4,%ecx 1803.byte 243,15,167,224 1804 movaps (%eax),%xmm0 1805 movaps %xmm0,-16(%edx) 1806.L038cfb_exit: 1807 movl $1,%eax 1808 leal 4(%esp),%esp 1809.L030cfb_abort: 1810 popl %edi 1811 popl %esi 1812 popl %ebx 1813 popl %ebp 1814 ret 1815.size padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin 1816.globl padlock_ofb_encrypt 1817.type padlock_ofb_encrypt,@function 1818.align 16 1819padlock_ofb_encrypt: 1820.L_padlock_ofb_encrypt_begin: 1821 #ifdef __CET__ 1822 1823.byte 243,15,30,251 1824 #endif 1825 1826 pushl %ebp 1827 pushl %ebx 1828 pushl %esi 1829 pushl %edi 1830 movl 20(%esp),%edi 1831 movl 24(%esp),%esi 1832 movl 28(%esp),%edx 1833 movl 32(%esp),%ecx 1834 testl $15,%edx 1835 jnz .L039ofb_abort 1836 testl $15,%ecx 1837 jnz .L039ofb_abort 1838 leal .Lpadlock_saved_context-.L040ofb_pic_point,%eax 1839 pushfl 1840 cld 1841 call _padlock_verify_ctx 1842.L040ofb_pic_point: 1843 leal 16(%edx),%edx 1844 xorl %eax,%eax 1845 xorl %ebx,%ebx 1846 testl $32,(%edx) 1847 jnz .L041ofb_aligned 1848 testl $15,%edi 1849 setz %al 1850 testl $15,%esi 1851 setz %bl 1852 testl %ebx,%eax 1853 jnz .L041ofb_aligned 1854 negl %eax 1855 movl $512,%ebx 1856 notl %eax 1857 leal -24(%esp),%ebp 1858 cmpl %ebx,%ecx 1859 cmovcl %ecx,%ebx 1860 andl %ebx,%eax 1861 movl %ecx,%ebx 1862 negl %eax 1863 andl $511,%ebx 1864 leal (%eax,%ebp,1),%esp 1865 movl $512,%eax 1866 cmovzl %eax,%ebx 1867 movl %ebp,%eax 1868 andl $-16,%ebp 1869 andl $-16,%esp 1870 movl %eax,16(%ebp) 1871 jmp .L042ofb_loop 1872.align 16 1873.L042ofb_loop: 1874 movl %edi,(%ebp) 1875 movl %esi,4(%ebp) 1876 movl %ecx,8(%ebp) 1877 movl %ebx,%ecx 1878 movl %ebx,12(%ebp) 1879 testl $15,%edi 1880 cmovnzl %esp,%edi 1881 testl $15,%esi 1882 jz .L043ofb_inp_aligned 1883 shrl $2,%ecx 1884.byte 243,165 1885 subl %ebx,%edi 1886 movl %ebx,%ecx 1887 movl %edi,%esi 1888.L043ofb_inp_aligned: 1889 leal -16(%edx),%eax 1890 leal 16(%edx),%ebx 1891 shrl $4,%ecx 1892.byte 243,15,167,232 1893 movaps (%eax),%xmm0 1894 movaps %xmm0,-16(%edx) 1895 movl (%ebp),%edi 1896 movl 12(%ebp),%ebx 1897 testl $15,%edi 1898 jz .L044ofb_out_aligned 1899 movl %ebx,%ecx 1900 leal (%esp),%esi 1901 shrl $2,%ecx 1902.byte 243,165 1903 subl %ebx,%edi 1904.L044ofb_out_aligned: 1905 movl 4(%ebp),%esi 1906 movl 8(%ebp),%ecx 1907 addl %ebx,%edi 1908 addl %ebx,%esi 1909 subl %ebx,%ecx 1910 movl $512,%ebx 1911 jnz .L042ofb_loop 1912 cmpl %ebp,%esp 1913 je .L045ofb_done 1914 pxor %xmm0,%xmm0 1915 leal (%esp),%eax 1916.L046ofb_bzero: 1917 movaps %xmm0,(%eax) 1918 leal 16(%eax),%eax 1919 cmpl %eax,%ebp 1920 ja .L046ofb_bzero 1921.L045ofb_done: 1922 movl 16(%ebp),%ebp 1923 leal 24(%ebp),%esp 1924 jmp .L047ofb_exit 1925.align 16 1926.L041ofb_aligned: 1927 leal -16(%edx),%eax 1928 leal 16(%edx),%ebx 1929 shrl $4,%ecx 1930.byte 243,15,167,232 1931 movaps (%eax),%xmm0 1932 movaps %xmm0,-16(%edx) 1933.L047ofb_exit: 1934 movl $1,%eax 1935 leal 4(%esp),%esp 1936.L039ofb_abort: 1937 popl %edi 1938 popl %esi 1939 popl %ebx 1940 popl %ebp 1941 ret 1942.size padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin 1943.globl padlock_ctr32_encrypt 1944.type padlock_ctr32_encrypt,@function 1945.align 16 1946padlock_ctr32_encrypt: 1947.L_padlock_ctr32_encrypt_begin: 1948 #ifdef __CET__ 1949 1950.byte 243,15,30,251 1951 #endif 1952 1953 pushl %ebp 1954 pushl %ebx 1955 pushl %esi 1956 pushl %edi 1957 movl 20(%esp),%edi 1958 movl 24(%esp),%esi 1959 movl 28(%esp),%edx 1960 movl 32(%esp),%ecx 1961 testl $15,%edx 1962 jnz .L048ctr32_abort 1963 testl $15,%ecx 1964 jnz .L048ctr32_abort 1965 leal .Lpadlock_saved_context-.L049ctr32_pic_point,%eax 1966 pushfl 1967 cld 1968 call _padlock_verify_ctx 1969.L049ctr32_pic_point: 1970 leal 16(%edx),%edx 1971 xorl %eax,%eax 1972 movq -16(%edx),%mm0 1973 movl $512,%ebx 1974 notl %eax 1975 leal -24(%esp),%ebp 1976 cmpl %ebx,%ecx 1977 cmovcl %ecx,%ebx 1978 andl %ebx,%eax 1979 movl %ecx,%ebx 1980 negl %eax 1981 andl $511,%ebx 1982 leal (%eax,%ebp,1),%esp 1983 movl $512,%eax 1984 cmovzl %eax,%ebx 1985 movl %ebp,%eax 1986 andl $-16,%ebp 1987 andl $-16,%esp 1988 movl %eax,16(%ebp) 1989 jmp .L050ctr32_loop 1990.align 16 1991.L050ctr32_loop: 1992 movl %edi,(%ebp) 1993 movl %esi,4(%ebp) 1994 movl %ecx,8(%ebp) 1995 movl %ebx,%ecx 1996 movl %ebx,12(%ebp) 1997 movl -4(%edx),%ecx 1998 xorl %edi,%edi 1999 movl -8(%edx),%eax 2000.L051ctr32_prepare: 2001 movl %ecx,12(%esp,%edi,1) 2002 bswap %ecx 2003 movq %mm0,(%esp,%edi,1) 2004 incl %ecx 2005 movl %eax,8(%esp,%edi,1) 2006 bswap %ecx 2007 leal 16(%edi),%edi 2008 cmpl %ebx,%edi 2009 jb .L051ctr32_prepare 2010 movl %ecx,-4(%edx) 2011 leal (%esp),%esi 2012 leal (%esp),%edi 2013 movl %ebx,%ecx 2014 leal -16(%edx),%eax 2015 leal 16(%edx),%ebx 2016 shrl $4,%ecx 2017.byte 243,15,167,200 2018 movl (%ebp),%edi 2019 movl 12(%ebp),%ebx 2020 movl 4(%ebp),%esi 2021 xorl %ecx,%ecx 2022.L052ctr32_xor: 2023 movups (%esi,%ecx,1),%xmm1 2024 leal 16(%ecx),%ecx 2025 pxor -16(%esp,%ecx,1),%xmm1 2026 movups %xmm1,-16(%edi,%ecx,1) 2027 cmpl %ebx,%ecx 2028 jb .L052ctr32_xor 2029 movl 8(%ebp),%ecx 2030 addl %ebx,%edi 2031 addl %ebx,%esi 2032 subl %ebx,%ecx 2033 movl $512,%ebx 2034 jnz .L050ctr32_loop 2035 pxor %xmm0,%xmm0 2036 leal (%esp),%eax 2037.L053ctr32_bzero: 2038 movaps %xmm0,(%eax) 2039 leal 16(%eax),%eax 2040 cmpl %eax,%ebp 2041 ja .L053ctr32_bzero 2042.L054ctr32_done: 2043 movl 16(%ebp),%ebp 2044 leal 24(%ebp),%esp 2045 movl $1,%eax 2046 leal 4(%esp),%esp 2047 emms 2048.L048ctr32_abort: 2049 popl %edi 2050 popl %esi 2051 popl %ebx 2052 popl %ebp 2053 ret 2054.size padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin 2055.globl padlock_xstore 2056.type padlock_xstore,@function 2057.align 16 2058padlock_xstore: 2059.L_padlock_xstore_begin: 2060 #ifdef __CET__ 2061 2062.byte 243,15,30,251 2063 #endif 2064 2065 pushl %edi 2066 movl 8(%esp),%edi 2067 movl 12(%esp),%edx 2068.byte 15,167,192 2069 popl %edi 2070 ret 2071.size padlock_xstore,.-.L_padlock_xstore_begin 2072.type _win32_segv_handler,@function 2073.align 16 2074_win32_segv_handler: 2075 #ifdef __CET__ 2076 2077.byte 243,15,30,251 2078 #endif 2079 2080 movl $1,%eax 2081 movl 4(%esp),%edx 2082 movl 12(%esp),%ecx 2083 cmpl $3221225477,(%edx) 2084 jne .L055ret 2085 addl $4,184(%ecx) 2086 movl $0,%eax 2087.L055ret: 2088 ret 2089.size _win32_segv_handler,.-_win32_segv_handler 2090.globl padlock_sha1_oneshot 2091.type padlock_sha1_oneshot,@function 2092.align 16 2093padlock_sha1_oneshot: 2094.L_padlock_sha1_oneshot_begin: 2095 #ifdef __CET__ 2096 2097.byte 243,15,30,251 2098 #endif 2099 2100 pushl %edi 2101 pushl %esi 2102 xorl %eax,%eax 2103 movl 12(%esp),%edi 2104 movl 16(%esp),%esi 2105 movl 20(%esp),%ecx 2106 movl %esp,%edx 2107 addl $-128,%esp 2108 movups (%edi),%xmm0 2109 andl $-16,%esp 2110 movl 16(%edi),%eax 2111 movaps %xmm0,(%esp) 2112 movl %esp,%edi 2113 movl %eax,16(%esp) 2114 xorl %eax,%eax 2115.byte 243,15,166,200 2116 movaps (%esp),%xmm0 2117 movl 16(%esp),%eax 2118 movl %edx,%esp 2119 movl 12(%esp),%edi 2120 movups %xmm0,(%edi) 2121 movl %eax,16(%edi) 2122 popl %esi 2123 popl %edi 2124 ret 2125.size padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin 2126.globl padlock_sha1_blocks 2127.type padlock_sha1_blocks,@function 2128.align 16 2129padlock_sha1_blocks: 2130.L_padlock_sha1_blocks_begin: 2131 #ifdef __CET__ 2132 2133.byte 243,15,30,251 2134 #endif 2135 2136 pushl %edi 2137 pushl %esi 2138 movl 12(%esp),%edi 2139 movl 16(%esp),%esi 2140 movl %esp,%edx 2141 movl 20(%esp),%ecx 2142 addl $-128,%esp 2143 movups (%edi),%xmm0 2144 andl $-16,%esp 2145 movl 16(%edi),%eax 2146 movaps %xmm0,(%esp) 2147 movl %esp,%edi 2148 movl %eax,16(%esp) 2149 movl $-1,%eax 2150.byte 243,15,166,200 2151 movaps (%esp),%xmm0 2152 movl 16(%esp),%eax 2153 movl %edx,%esp 2154 movl 12(%esp),%edi 2155 movups %xmm0,(%edi) 2156 movl %eax,16(%edi) 2157 popl %esi 2158 popl %edi 2159 ret 2160.size padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin 2161.globl padlock_sha256_oneshot 2162.type padlock_sha256_oneshot,@function 2163.align 16 2164padlock_sha256_oneshot: 2165.L_padlock_sha256_oneshot_begin: 2166 #ifdef __CET__ 2167 2168.byte 243,15,30,251 2169 #endif 2170 2171 pushl %edi 2172 pushl %esi 2173 xorl %eax,%eax 2174 movl 12(%esp),%edi 2175 movl 16(%esp),%esi 2176 movl 20(%esp),%ecx 2177 movl %esp,%edx 2178 addl $-128,%esp 2179 movups (%edi),%xmm0 2180 andl $-16,%esp 2181 movups 16(%edi),%xmm1 2182 movaps %xmm0,(%esp) 2183 movl %esp,%edi 2184 movaps %xmm1,16(%esp) 2185 xorl %eax,%eax 2186.byte 243,15,166,208 2187 movaps (%esp),%xmm0 2188 movaps 16(%esp),%xmm1 2189 movl %edx,%esp 2190 movl 12(%esp),%edi 2191 movups %xmm0,(%edi) 2192 movups %xmm1,16(%edi) 2193 popl %esi 2194 popl %edi 2195 ret 2196.size padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin 2197.globl padlock_sha256_blocks 2198.type padlock_sha256_blocks,@function 2199.align 16 2200padlock_sha256_blocks: 2201.L_padlock_sha256_blocks_begin: 2202 #ifdef __CET__ 2203 2204.byte 243,15,30,251 2205 #endif 2206 2207 pushl %edi 2208 pushl %esi 2209 movl 12(%esp),%edi 2210 movl 16(%esp),%esi 2211 movl 20(%esp),%ecx 2212 movl %esp,%edx 2213 addl $-128,%esp 2214 movups (%edi),%xmm0 2215 andl $-16,%esp 2216 movups 16(%edi),%xmm1 2217 movaps %xmm0,(%esp) 2218 movl %esp,%edi 2219 movaps %xmm1,16(%esp) 2220 movl $-1,%eax 2221.byte 243,15,166,208 2222 movaps (%esp),%xmm0 2223 movaps 16(%esp),%xmm1 2224 movl %edx,%esp 2225 movl 12(%esp),%edi 2226 movups %xmm0,(%edi) 2227 movups %xmm1,16(%edi) 2228 popl %esi 2229 popl %edi 2230 ret 2231.size padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin 2232.globl padlock_sha512_blocks 2233.type padlock_sha512_blocks,@function 2234.align 16 2235padlock_sha512_blocks: 2236.L_padlock_sha512_blocks_begin: 2237 #ifdef __CET__ 2238 2239.byte 243,15,30,251 2240 #endif 2241 2242 pushl %edi 2243 pushl %esi 2244 movl 12(%esp),%edi 2245 movl 16(%esp),%esi 2246 movl 20(%esp),%ecx 2247 movl %esp,%edx 2248 addl $-128,%esp 2249 movups (%edi),%xmm0 2250 andl $-16,%esp 2251 movups 16(%edi),%xmm1 2252 movups 32(%edi),%xmm2 2253 movups 48(%edi),%xmm3 2254 movaps %xmm0,(%esp) 2255 movl %esp,%edi 2256 movaps %xmm1,16(%esp) 2257 movaps %xmm2,32(%esp) 2258 movaps %xmm3,48(%esp) 2259.byte 243,15,166,224 2260 movaps (%esp),%xmm0 2261 movaps 16(%esp),%xmm1 2262 movaps 32(%esp),%xmm2 2263 movaps 48(%esp),%xmm3 2264 movl %edx,%esp 2265 movl 12(%esp),%edi 2266 movups %xmm0,(%edi) 2267 movups %xmm1,16(%edi) 2268 movups %xmm2,32(%edi) 2269 movups %xmm3,48(%edi) 2270 popl %esi 2271 popl %edi 2272 ret 2273.size padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin 2274.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32 2275.byte 109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65 2276.byte 77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101 2277.byte 110,115,115,108,46,111,114,103,62,0 2278.align 16 2279.data 2280.align 4 2281.Lpadlock_saved_context: 2282.long 0 2283 2284 .section ".note.gnu.property", "a" 2285 .p2align 2 2286 .long 1f - 0f 2287 .long 4f - 1f 2288 .long 5 22890: 2290 .asciz "GNU" 22911: 2292 .p2align 2 2293 .long 0xc0000002 2294 .long 3f - 2f 22952: 2296 .long 3 22973: 2298 .p2align 2 22994: 2300#endif 2301