1// This file is generated from a similarly-named Perl script in the BoringSSL 2// source tree. Do not edit by hand. 3 4#include <openssl/asm_base.h> 5 6#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 7.text 8#ifdef BORINGSSL_DISPATCH_TEST 9#endif 10.globl aes_hw_encrypt 11.hidden aes_hw_encrypt 12.type aes_hw_encrypt,@function 13.align 16 14aes_hw_encrypt: 15.L_aes_hw_encrypt_begin: 16#ifdef BORINGSSL_DISPATCH_TEST 17 pushl %ebx 18 pushl %edx 19 call .L000pic_for_function_hit 20.L000pic_for_function_hit: 21 popl %ebx 22 leal BORINGSSL_function_hit+1-.L000pic_for_function_hit(%ebx),%ebx 23 movl $1,%edx 24 movb %dl,(%ebx) 25 popl %edx 26 popl %ebx 27#endif 28 movl 4(%esp),%eax 29 movl 12(%esp),%edx 30 movups (%eax),%xmm2 31 movl 240(%edx),%ecx 32 movl 8(%esp),%eax 33 movups (%edx),%xmm0 34 movups 16(%edx),%xmm1 35 leal 32(%edx),%edx 36 xorps %xmm0,%xmm2 37.L001enc1_loop_1: 38.byte 102,15,56,220,209 39 decl %ecx 40 movups (%edx),%xmm1 41 leal 16(%edx),%edx 42 jnz .L001enc1_loop_1 43.byte 102,15,56,221,209 44 pxor %xmm0,%xmm0 45 pxor %xmm1,%xmm1 46 movups %xmm2,(%eax) 47 pxor %xmm2,%xmm2 48 ret 49.size aes_hw_encrypt,.-.L_aes_hw_encrypt_begin 50.globl aes_hw_decrypt 51.hidden aes_hw_decrypt 52.type aes_hw_decrypt,@function 53.align 16 54aes_hw_decrypt: 55.L_aes_hw_decrypt_begin: 56 movl 4(%esp),%eax 57 movl 12(%esp),%edx 58 movups (%eax),%xmm2 59 movl 240(%edx),%ecx 60 movl 8(%esp),%eax 61 movups (%edx),%xmm0 62 movups 16(%edx),%xmm1 63 leal 32(%edx),%edx 64 xorps %xmm0,%xmm2 65.L002dec1_loop_2: 66.byte 102,15,56,222,209 67 decl %ecx 68 movups (%edx),%xmm1 69 leal 16(%edx),%edx 70 jnz .L002dec1_loop_2 71.byte 102,15,56,223,209 72 pxor %xmm0,%xmm0 73 pxor %xmm1,%xmm1 74 movups %xmm2,(%eax) 75 pxor %xmm2,%xmm2 76 ret 77.size aes_hw_decrypt,.-.L_aes_hw_decrypt_begin 78.hidden _aesni_encrypt2 79.type _aesni_encrypt2,@function 80.align 16 81_aesni_encrypt2: 82 movups (%edx),%xmm0 83 shll $4,%ecx 84 movups 16(%edx),%xmm1 85 xorps %xmm0,%xmm2 86 pxor %xmm0,%xmm3 87 movups 32(%edx),%xmm0 88 leal 32(%edx,%ecx,1),%edx 89 negl %ecx 90 addl $16,%ecx 91.L003enc2_loop: 92.byte 102,15,56,220,209 93.byte 102,15,56,220,217 94 movups (%edx,%ecx,1),%xmm1 95 addl $32,%ecx 96.byte 102,15,56,220,208 97.byte 102,15,56,220,216 98 movups -16(%edx,%ecx,1),%xmm0 99 jnz .L003enc2_loop 100.byte 102,15,56,220,209 101.byte 102,15,56,220,217 102.byte 102,15,56,221,208 103.byte 102,15,56,221,216 104 ret 105.size _aesni_encrypt2,.-_aesni_encrypt2 106.hidden _aesni_decrypt2 107.type _aesni_decrypt2,@function 108.align 16 109_aesni_decrypt2: 110 movups (%edx),%xmm0 111 shll $4,%ecx 112 movups 16(%edx),%xmm1 113 xorps %xmm0,%xmm2 114 pxor %xmm0,%xmm3 115 movups 32(%edx),%xmm0 116 leal 32(%edx,%ecx,1),%edx 117 negl %ecx 118 addl $16,%ecx 119.L004dec2_loop: 120.byte 102,15,56,222,209 121.byte 102,15,56,222,217 122 movups (%edx,%ecx,1),%xmm1 123 addl $32,%ecx 124.byte 102,15,56,222,208 125.byte 102,15,56,222,216 126 movups -16(%edx,%ecx,1),%xmm0 127 jnz .L004dec2_loop 128.byte 102,15,56,222,209 129.byte 102,15,56,222,217 130.byte 102,15,56,223,208 131.byte 102,15,56,223,216 132 ret 133.size _aesni_decrypt2,.-_aesni_decrypt2 134.hidden _aesni_encrypt3 135.type _aesni_encrypt3,@function 136.align 16 137_aesni_encrypt3: 138 movups (%edx),%xmm0 139 shll $4,%ecx 140 movups 16(%edx),%xmm1 141 xorps %xmm0,%xmm2 142 pxor %xmm0,%xmm3 143 pxor %xmm0,%xmm4 144 movups 32(%edx),%xmm0 145 leal 32(%edx,%ecx,1),%edx 146 negl %ecx 147 addl $16,%ecx 148.L005enc3_loop: 149.byte 102,15,56,220,209 150.byte 102,15,56,220,217 151.byte 102,15,56,220,225 152 movups (%edx,%ecx,1),%xmm1 153 addl $32,%ecx 154.byte 102,15,56,220,208 155.byte 102,15,56,220,216 156.byte 102,15,56,220,224 157 movups -16(%edx,%ecx,1),%xmm0 158 jnz .L005enc3_loop 159.byte 102,15,56,220,209 160.byte 102,15,56,220,217 161.byte 102,15,56,220,225 162.byte 102,15,56,221,208 163.byte 102,15,56,221,216 164.byte 102,15,56,221,224 165 ret 166.size _aesni_encrypt3,.-_aesni_encrypt3 167.hidden _aesni_decrypt3 168.type _aesni_decrypt3,@function 169.align 16 170_aesni_decrypt3: 171 movups (%edx),%xmm0 172 shll $4,%ecx 173 movups 16(%edx),%xmm1 174 xorps %xmm0,%xmm2 175 pxor %xmm0,%xmm3 176 pxor %xmm0,%xmm4 177 movups 32(%edx),%xmm0 178 leal 32(%edx,%ecx,1),%edx 179 negl %ecx 180 addl $16,%ecx 181.L006dec3_loop: 182.byte 102,15,56,222,209 183.byte 102,15,56,222,217 184.byte 102,15,56,222,225 185 movups (%edx,%ecx,1),%xmm1 186 addl $32,%ecx 187.byte 102,15,56,222,208 188.byte 102,15,56,222,216 189.byte 102,15,56,222,224 190 movups -16(%edx,%ecx,1),%xmm0 191 jnz .L006dec3_loop 192.byte 102,15,56,222,209 193.byte 102,15,56,222,217 194.byte 102,15,56,222,225 195.byte 102,15,56,223,208 196.byte 102,15,56,223,216 197.byte 102,15,56,223,224 198 ret 199.size _aesni_decrypt3,.-_aesni_decrypt3 200.hidden _aesni_encrypt4 201.type _aesni_encrypt4,@function 202.align 16 203_aesni_encrypt4: 204 movups (%edx),%xmm0 205 movups 16(%edx),%xmm1 206 shll $4,%ecx 207 xorps %xmm0,%xmm2 208 pxor %xmm0,%xmm3 209 pxor %xmm0,%xmm4 210 pxor %xmm0,%xmm5 211 movups 32(%edx),%xmm0 212 leal 32(%edx,%ecx,1),%edx 213 negl %ecx 214.byte 15,31,64,0 215 addl $16,%ecx 216.L007enc4_loop: 217.byte 102,15,56,220,209 218.byte 102,15,56,220,217 219.byte 102,15,56,220,225 220.byte 102,15,56,220,233 221 movups (%edx,%ecx,1),%xmm1 222 addl $32,%ecx 223.byte 102,15,56,220,208 224.byte 102,15,56,220,216 225.byte 102,15,56,220,224 226.byte 102,15,56,220,232 227 movups -16(%edx,%ecx,1),%xmm0 228 jnz .L007enc4_loop 229.byte 102,15,56,220,209 230.byte 102,15,56,220,217 231.byte 102,15,56,220,225 232.byte 102,15,56,220,233 233.byte 102,15,56,221,208 234.byte 102,15,56,221,216 235.byte 102,15,56,221,224 236.byte 102,15,56,221,232 237 ret 238.size _aesni_encrypt4,.-_aesni_encrypt4 239.hidden _aesni_decrypt4 240.type _aesni_decrypt4,@function 241.align 16 242_aesni_decrypt4: 243 movups (%edx),%xmm0 244 movups 16(%edx),%xmm1 245 shll $4,%ecx 246 xorps %xmm0,%xmm2 247 pxor %xmm0,%xmm3 248 pxor %xmm0,%xmm4 249 pxor %xmm0,%xmm5 250 movups 32(%edx),%xmm0 251 leal 32(%edx,%ecx,1),%edx 252 negl %ecx 253.byte 15,31,64,0 254 addl $16,%ecx 255.L008dec4_loop: 256.byte 102,15,56,222,209 257.byte 102,15,56,222,217 258.byte 102,15,56,222,225 259.byte 102,15,56,222,233 260 movups (%edx,%ecx,1),%xmm1 261 addl $32,%ecx 262.byte 102,15,56,222,208 263.byte 102,15,56,222,216 264.byte 102,15,56,222,224 265.byte 102,15,56,222,232 266 movups -16(%edx,%ecx,1),%xmm0 267 jnz .L008dec4_loop 268.byte 102,15,56,222,209 269.byte 102,15,56,222,217 270.byte 102,15,56,222,225 271.byte 102,15,56,222,233 272.byte 102,15,56,223,208 273.byte 102,15,56,223,216 274.byte 102,15,56,223,224 275.byte 102,15,56,223,232 276 ret 277.size _aesni_decrypt4,.-_aesni_decrypt4 278.hidden _aesni_encrypt6 279.type _aesni_encrypt6,@function 280.align 16 281_aesni_encrypt6: 282 movups (%edx),%xmm0 283 shll $4,%ecx 284 movups 16(%edx),%xmm1 285 xorps %xmm0,%xmm2 286 pxor %xmm0,%xmm3 287 pxor %xmm0,%xmm4 288.byte 102,15,56,220,209 289 pxor %xmm0,%xmm5 290 pxor %xmm0,%xmm6 291.byte 102,15,56,220,217 292 leal 32(%edx,%ecx,1),%edx 293 negl %ecx 294.byte 102,15,56,220,225 295 pxor %xmm0,%xmm7 296 movups (%edx,%ecx,1),%xmm0 297 addl $16,%ecx 298 jmp .L009_aesni_encrypt6_inner 299.align 16 300.L010enc6_loop: 301.byte 102,15,56,220,209 302.byte 102,15,56,220,217 303.byte 102,15,56,220,225 304.L009_aesni_encrypt6_inner: 305.byte 102,15,56,220,233 306.byte 102,15,56,220,241 307.byte 102,15,56,220,249 308.L_aesni_encrypt6_enter: 309 movups (%edx,%ecx,1),%xmm1 310 addl $32,%ecx 311.byte 102,15,56,220,208 312.byte 102,15,56,220,216 313.byte 102,15,56,220,224 314.byte 102,15,56,220,232 315.byte 102,15,56,220,240 316.byte 102,15,56,220,248 317 movups -16(%edx,%ecx,1),%xmm0 318 jnz .L010enc6_loop 319.byte 102,15,56,220,209 320.byte 102,15,56,220,217 321.byte 102,15,56,220,225 322.byte 102,15,56,220,233 323.byte 102,15,56,220,241 324.byte 102,15,56,220,249 325.byte 102,15,56,221,208 326.byte 102,15,56,221,216 327.byte 102,15,56,221,224 328.byte 102,15,56,221,232 329.byte 102,15,56,221,240 330.byte 102,15,56,221,248 331 ret 332.size _aesni_encrypt6,.-_aesni_encrypt6 333.hidden _aesni_decrypt6 334.type _aesni_decrypt6,@function 335.align 16 336_aesni_decrypt6: 337 movups (%edx),%xmm0 338 shll $4,%ecx 339 movups 16(%edx),%xmm1 340 xorps %xmm0,%xmm2 341 pxor %xmm0,%xmm3 342 pxor %xmm0,%xmm4 343.byte 102,15,56,222,209 344 pxor %xmm0,%xmm5 345 pxor %xmm0,%xmm6 346.byte 102,15,56,222,217 347 leal 32(%edx,%ecx,1),%edx 348 negl %ecx 349.byte 102,15,56,222,225 350 pxor %xmm0,%xmm7 351 movups (%edx,%ecx,1),%xmm0 352 addl $16,%ecx 353 jmp .L011_aesni_decrypt6_inner 354.align 16 355.L012dec6_loop: 356.byte 102,15,56,222,209 357.byte 102,15,56,222,217 358.byte 102,15,56,222,225 359.L011_aesni_decrypt6_inner: 360.byte 102,15,56,222,233 361.byte 102,15,56,222,241 362.byte 102,15,56,222,249 363.L_aesni_decrypt6_enter: 364 movups (%edx,%ecx,1),%xmm1 365 addl $32,%ecx 366.byte 102,15,56,222,208 367.byte 102,15,56,222,216 368.byte 102,15,56,222,224 369.byte 102,15,56,222,232 370.byte 102,15,56,222,240 371.byte 102,15,56,222,248 372 movups -16(%edx,%ecx,1),%xmm0 373 jnz .L012dec6_loop 374.byte 102,15,56,222,209 375.byte 102,15,56,222,217 376.byte 102,15,56,222,225 377.byte 102,15,56,222,233 378.byte 102,15,56,222,241 379.byte 102,15,56,222,249 380.byte 102,15,56,223,208 381.byte 102,15,56,223,216 382.byte 102,15,56,223,224 383.byte 102,15,56,223,232 384.byte 102,15,56,223,240 385.byte 102,15,56,223,248 386 ret 387.size _aesni_decrypt6,.-_aesni_decrypt6 388.globl aes_hw_ecb_encrypt 389.hidden aes_hw_ecb_encrypt 390.type aes_hw_ecb_encrypt,@function 391.align 16 392aes_hw_ecb_encrypt: 393.L_aes_hw_ecb_encrypt_begin: 394 pushl %ebp 395 pushl %ebx 396 pushl %esi 397 pushl %edi 398 movl 20(%esp),%esi 399 movl 24(%esp),%edi 400 movl 28(%esp),%eax 401 movl 32(%esp),%edx 402 movl 36(%esp),%ebx 403 andl $-16,%eax 404 jz .L013ecb_ret 405 movl 240(%edx),%ecx 406 testl %ebx,%ebx 407 jz .L014ecb_decrypt 408 movl %edx,%ebp 409 movl %ecx,%ebx 410 cmpl $96,%eax 411 jb .L015ecb_enc_tail 412 movdqu (%esi),%xmm2 413 movdqu 16(%esi),%xmm3 414 movdqu 32(%esi),%xmm4 415 movdqu 48(%esi),%xmm5 416 movdqu 64(%esi),%xmm6 417 movdqu 80(%esi),%xmm7 418 leal 96(%esi),%esi 419 subl $96,%eax 420 jmp .L016ecb_enc_loop6_enter 421.align 16 422.L017ecb_enc_loop6: 423 movups %xmm2,(%edi) 424 movdqu (%esi),%xmm2 425 movups %xmm3,16(%edi) 426 movdqu 16(%esi),%xmm3 427 movups %xmm4,32(%edi) 428 movdqu 32(%esi),%xmm4 429 movups %xmm5,48(%edi) 430 movdqu 48(%esi),%xmm5 431 movups %xmm6,64(%edi) 432 movdqu 64(%esi),%xmm6 433 movups %xmm7,80(%edi) 434 leal 96(%edi),%edi 435 movdqu 80(%esi),%xmm7 436 leal 96(%esi),%esi 437.L016ecb_enc_loop6_enter: 438 call _aesni_encrypt6 439 movl %ebp,%edx 440 movl %ebx,%ecx 441 subl $96,%eax 442 jnc .L017ecb_enc_loop6 443 movups %xmm2,(%edi) 444 movups %xmm3,16(%edi) 445 movups %xmm4,32(%edi) 446 movups %xmm5,48(%edi) 447 movups %xmm6,64(%edi) 448 movups %xmm7,80(%edi) 449 leal 96(%edi),%edi 450 addl $96,%eax 451 jz .L013ecb_ret 452.L015ecb_enc_tail: 453 movups (%esi),%xmm2 454 cmpl $32,%eax 455 jb .L018ecb_enc_one 456 movups 16(%esi),%xmm3 457 je .L019ecb_enc_two 458 movups 32(%esi),%xmm4 459 cmpl $64,%eax 460 jb .L020ecb_enc_three 461 movups 48(%esi),%xmm5 462 je .L021ecb_enc_four 463 movups 64(%esi),%xmm6 464 xorps %xmm7,%xmm7 465 call _aesni_encrypt6 466 movups %xmm2,(%edi) 467 movups %xmm3,16(%edi) 468 movups %xmm4,32(%edi) 469 movups %xmm5,48(%edi) 470 movups %xmm6,64(%edi) 471 jmp .L013ecb_ret 472.align 16 473.L018ecb_enc_one: 474 movups (%edx),%xmm0 475 movups 16(%edx),%xmm1 476 leal 32(%edx),%edx 477 xorps %xmm0,%xmm2 478.L022enc1_loop_3: 479.byte 102,15,56,220,209 480 decl %ecx 481 movups (%edx),%xmm1 482 leal 16(%edx),%edx 483 jnz .L022enc1_loop_3 484.byte 102,15,56,221,209 485 movups %xmm2,(%edi) 486 jmp .L013ecb_ret 487.align 16 488.L019ecb_enc_two: 489 call _aesni_encrypt2 490 movups %xmm2,(%edi) 491 movups %xmm3,16(%edi) 492 jmp .L013ecb_ret 493.align 16 494.L020ecb_enc_three: 495 call _aesni_encrypt3 496 movups %xmm2,(%edi) 497 movups %xmm3,16(%edi) 498 movups %xmm4,32(%edi) 499 jmp .L013ecb_ret 500.align 16 501.L021ecb_enc_four: 502 call _aesni_encrypt4 503 movups %xmm2,(%edi) 504 movups %xmm3,16(%edi) 505 movups %xmm4,32(%edi) 506 movups %xmm5,48(%edi) 507 jmp .L013ecb_ret 508.align 16 509.L014ecb_decrypt: 510 movl %edx,%ebp 511 movl %ecx,%ebx 512 cmpl $96,%eax 513 jb .L023ecb_dec_tail 514 movdqu (%esi),%xmm2 515 movdqu 16(%esi),%xmm3 516 movdqu 32(%esi),%xmm4 517 movdqu 48(%esi),%xmm5 518 movdqu 64(%esi),%xmm6 519 movdqu 80(%esi),%xmm7 520 leal 96(%esi),%esi 521 subl $96,%eax 522 jmp .L024ecb_dec_loop6_enter 523.align 16 524.L025ecb_dec_loop6: 525 movups %xmm2,(%edi) 526 movdqu (%esi),%xmm2 527 movups %xmm3,16(%edi) 528 movdqu 16(%esi),%xmm3 529 movups %xmm4,32(%edi) 530 movdqu 32(%esi),%xmm4 531 movups %xmm5,48(%edi) 532 movdqu 48(%esi),%xmm5 533 movups %xmm6,64(%edi) 534 movdqu 64(%esi),%xmm6 535 movups %xmm7,80(%edi) 536 leal 96(%edi),%edi 537 movdqu 80(%esi),%xmm7 538 leal 96(%esi),%esi 539.L024ecb_dec_loop6_enter: 540 call _aesni_decrypt6 541 movl %ebp,%edx 542 movl %ebx,%ecx 543 subl $96,%eax 544 jnc .L025ecb_dec_loop6 545 movups %xmm2,(%edi) 546 movups %xmm3,16(%edi) 547 movups %xmm4,32(%edi) 548 movups %xmm5,48(%edi) 549 movups %xmm6,64(%edi) 550 movups %xmm7,80(%edi) 551 leal 96(%edi),%edi 552 addl $96,%eax 553 jz .L013ecb_ret 554.L023ecb_dec_tail: 555 movups (%esi),%xmm2 556 cmpl $32,%eax 557 jb .L026ecb_dec_one 558 movups 16(%esi),%xmm3 559 je .L027ecb_dec_two 560 movups 32(%esi),%xmm4 561 cmpl $64,%eax 562 jb .L028ecb_dec_three 563 movups 48(%esi),%xmm5 564 je .L029ecb_dec_four 565 movups 64(%esi),%xmm6 566 xorps %xmm7,%xmm7 567 call _aesni_decrypt6 568 movups %xmm2,(%edi) 569 movups %xmm3,16(%edi) 570 movups %xmm4,32(%edi) 571 movups %xmm5,48(%edi) 572 movups %xmm6,64(%edi) 573 jmp .L013ecb_ret 574.align 16 575.L026ecb_dec_one: 576 movups (%edx),%xmm0 577 movups 16(%edx),%xmm1 578 leal 32(%edx),%edx 579 xorps %xmm0,%xmm2 580.L030dec1_loop_4: 581.byte 102,15,56,222,209 582 decl %ecx 583 movups (%edx),%xmm1 584 leal 16(%edx),%edx 585 jnz .L030dec1_loop_4 586.byte 102,15,56,223,209 587 movups %xmm2,(%edi) 588 jmp .L013ecb_ret 589.align 16 590.L027ecb_dec_two: 591 call _aesni_decrypt2 592 movups %xmm2,(%edi) 593 movups %xmm3,16(%edi) 594 jmp .L013ecb_ret 595.align 16 596.L028ecb_dec_three: 597 call _aesni_decrypt3 598 movups %xmm2,(%edi) 599 movups %xmm3,16(%edi) 600 movups %xmm4,32(%edi) 601 jmp .L013ecb_ret 602.align 16 603.L029ecb_dec_four: 604 call _aesni_decrypt4 605 movups %xmm2,(%edi) 606 movups %xmm3,16(%edi) 607 movups %xmm4,32(%edi) 608 movups %xmm5,48(%edi) 609.L013ecb_ret: 610 pxor %xmm0,%xmm0 611 pxor %xmm1,%xmm1 612 pxor %xmm2,%xmm2 613 pxor %xmm3,%xmm3 614 pxor %xmm4,%xmm4 615 pxor %xmm5,%xmm5 616 pxor %xmm6,%xmm6 617 pxor %xmm7,%xmm7 618 popl %edi 619 popl %esi 620 popl %ebx 621 popl %ebp 622 ret 623.size aes_hw_ecb_encrypt,.-.L_aes_hw_ecb_encrypt_begin 624.globl aes_hw_ccm64_encrypt_blocks 625.hidden aes_hw_ccm64_encrypt_blocks 626.type aes_hw_ccm64_encrypt_blocks,@function 627.align 16 628aes_hw_ccm64_encrypt_blocks: 629.L_aes_hw_ccm64_encrypt_blocks_begin: 630 pushl %ebp 631 pushl %ebx 632 pushl %esi 633 pushl %edi 634 movl 20(%esp),%esi 635 movl 24(%esp),%edi 636 movl 28(%esp),%eax 637 movl 32(%esp),%edx 638 movl 36(%esp),%ebx 639 movl 40(%esp),%ecx 640 movl %esp,%ebp 641 subl $60,%esp 642 andl $-16,%esp 643 movl %ebp,48(%esp) 644 movdqu (%ebx),%xmm7 645 movdqu (%ecx),%xmm3 646 movl 240(%edx),%ecx 647 movl $202182159,(%esp) 648 movl $134810123,4(%esp) 649 movl $67438087,8(%esp) 650 movl $66051,12(%esp) 651 movl $1,%ebx 652 xorl %ebp,%ebp 653 movl %ebx,16(%esp) 654 movl %ebp,20(%esp) 655 movl %ebp,24(%esp) 656 movl %ebp,28(%esp) 657 shll $4,%ecx 658 movl $16,%ebx 659 leal (%edx),%ebp 660 movdqa (%esp),%xmm5 661 movdqa %xmm7,%xmm2 662 leal 32(%edx,%ecx,1),%edx 663 subl %ecx,%ebx 664.byte 102,15,56,0,253 665.L031ccm64_enc_outer: 666 movups (%ebp),%xmm0 667 movl %ebx,%ecx 668 movups (%esi),%xmm6 669 xorps %xmm0,%xmm2 670 movups 16(%ebp),%xmm1 671 xorps %xmm6,%xmm0 672 xorps %xmm0,%xmm3 673 movups 32(%ebp),%xmm0 674.L032ccm64_enc2_loop: 675.byte 102,15,56,220,209 676.byte 102,15,56,220,217 677 movups (%edx,%ecx,1),%xmm1 678 addl $32,%ecx 679.byte 102,15,56,220,208 680.byte 102,15,56,220,216 681 movups -16(%edx,%ecx,1),%xmm0 682 jnz .L032ccm64_enc2_loop 683.byte 102,15,56,220,209 684.byte 102,15,56,220,217 685 paddq 16(%esp),%xmm7 686 decl %eax 687.byte 102,15,56,221,208 688.byte 102,15,56,221,216 689 leal 16(%esi),%esi 690 xorps %xmm2,%xmm6 691 movdqa %xmm7,%xmm2 692 movups %xmm6,(%edi) 693.byte 102,15,56,0,213 694 leal 16(%edi),%edi 695 jnz .L031ccm64_enc_outer 696 movl 48(%esp),%esp 697 movl 40(%esp),%edi 698 movups %xmm3,(%edi) 699 pxor %xmm0,%xmm0 700 pxor %xmm1,%xmm1 701 pxor %xmm2,%xmm2 702 pxor %xmm3,%xmm3 703 pxor %xmm4,%xmm4 704 pxor %xmm5,%xmm5 705 pxor %xmm6,%xmm6 706 pxor %xmm7,%xmm7 707 popl %edi 708 popl %esi 709 popl %ebx 710 popl %ebp 711 ret 712.size aes_hw_ccm64_encrypt_blocks,.-.L_aes_hw_ccm64_encrypt_blocks_begin 713.globl aes_hw_ccm64_decrypt_blocks 714.hidden aes_hw_ccm64_decrypt_blocks 715.type aes_hw_ccm64_decrypt_blocks,@function 716.align 16 717aes_hw_ccm64_decrypt_blocks: 718.L_aes_hw_ccm64_decrypt_blocks_begin: 719 pushl %ebp 720 pushl %ebx 721 pushl %esi 722 pushl %edi 723 movl 20(%esp),%esi 724 movl 24(%esp),%edi 725 movl 28(%esp),%eax 726 movl 32(%esp),%edx 727 movl 36(%esp),%ebx 728 movl 40(%esp),%ecx 729 movl %esp,%ebp 730 subl $60,%esp 731 andl $-16,%esp 732 movl %ebp,48(%esp) 733 movdqu (%ebx),%xmm7 734 movdqu (%ecx),%xmm3 735 movl 240(%edx),%ecx 736 movl $202182159,(%esp) 737 movl $134810123,4(%esp) 738 movl $67438087,8(%esp) 739 movl $66051,12(%esp) 740 movl $1,%ebx 741 xorl %ebp,%ebp 742 movl %ebx,16(%esp) 743 movl %ebp,20(%esp) 744 movl %ebp,24(%esp) 745 movl %ebp,28(%esp) 746 movdqa (%esp),%xmm5 747 movdqa %xmm7,%xmm2 748 movl %edx,%ebp 749 movl %ecx,%ebx 750.byte 102,15,56,0,253 751 movups (%edx),%xmm0 752 movups 16(%edx),%xmm1 753 leal 32(%edx),%edx 754 xorps %xmm0,%xmm2 755.L033enc1_loop_5: 756.byte 102,15,56,220,209 757 decl %ecx 758 movups (%edx),%xmm1 759 leal 16(%edx),%edx 760 jnz .L033enc1_loop_5 761.byte 102,15,56,221,209 762 shll $4,%ebx 763 movl $16,%ecx 764 movups (%esi),%xmm6 765 paddq 16(%esp),%xmm7 766 leal 16(%esi),%esi 767 subl %ebx,%ecx 768 leal 32(%ebp,%ebx,1),%edx 769 movl %ecx,%ebx 770 jmp .L034ccm64_dec_outer 771.align 16 772.L034ccm64_dec_outer: 773 xorps %xmm2,%xmm6 774 movdqa %xmm7,%xmm2 775 movups %xmm6,(%edi) 776 leal 16(%edi),%edi 777.byte 102,15,56,0,213 778 subl $1,%eax 779 jz .L035ccm64_dec_break 780 movups (%ebp),%xmm0 781 movl %ebx,%ecx 782 movups 16(%ebp),%xmm1 783 xorps %xmm0,%xmm6 784 xorps %xmm0,%xmm2 785 xorps %xmm6,%xmm3 786 movups 32(%ebp),%xmm0 787.L036ccm64_dec2_loop: 788.byte 102,15,56,220,209 789.byte 102,15,56,220,217 790 movups (%edx,%ecx,1),%xmm1 791 addl $32,%ecx 792.byte 102,15,56,220,208 793.byte 102,15,56,220,216 794 movups -16(%edx,%ecx,1),%xmm0 795 jnz .L036ccm64_dec2_loop 796 movups (%esi),%xmm6 797 paddq 16(%esp),%xmm7 798.byte 102,15,56,220,209 799.byte 102,15,56,220,217 800.byte 102,15,56,221,208 801.byte 102,15,56,221,216 802 leal 16(%esi),%esi 803 jmp .L034ccm64_dec_outer 804.align 16 805.L035ccm64_dec_break: 806 movl 240(%ebp),%ecx 807 movl %ebp,%edx 808 movups (%edx),%xmm0 809 movups 16(%edx),%xmm1 810 xorps %xmm0,%xmm6 811 leal 32(%edx),%edx 812 xorps %xmm6,%xmm3 813.L037enc1_loop_6: 814.byte 102,15,56,220,217 815 decl %ecx 816 movups (%edx),%xmm1 817 leal 16(%edx),%edx 818 jnz .L037enc1_loop_6 819.byte 102,15,56,221,217 820 movl 48(%esp),%esp 821 movl 40(%esp),%edi 822 movups %xmm3,(%edi) 823 pxor %xmm0,%xmm0 824 pxor %xmm1,%xmm1 825 pxor %xmm2,%xmm2 826 pxor %xmm3,%xmm3 827 pxor %xmm4,%xmm4 828 pxor %xmm5,%xmm5 829 pxor %xmm6,%xmm6 830 pxor %xmm7,%xmm7 831 popl %edi 832 popl %esi 833 popl %ebx 834 popl %ebp 835 ret 836.size aes_hw_ccm64_decrypt_blocks,.-.L_aes_hw_ccm64_decrypt_blocks_begin 837.globl aes_hw_ctr32_encrypt_blocks 838.hidden aes_hw_ctr32_encrypt_blocks 839.type aes_hw_ctr32_encrypt_blocks,@function 840.align 16 841aes_hw_ctr32_encrypt_blocks: 842.L_aes_hw_ctr32_encrypt_blocks_begin: 843 pushl %ebp 844 pushl %ebx 845 pushl %esi 846 pushl %edi 847#ifdef BORINGSSL_DISPATCH_TEST 848 pushl %ebx 849 pushl %edx 850 call .L038pic_for_function_hit 851.L038pic_for_function_hit: 852 popl %ebx 853 leal BORINGSSL_function_hit+0-.L038pic_for_function_hit(%ebx),%ebx 854 movl $1,%edx 855 movb %dl,(%ebx) 856 popl %edx 857 popl %ebx 858#endif 859 movl 20(%esp),%esi 860 movl 24(%esp),%edi 861 movl 28(%esp),%eax 862 movl 32(%esp),%edx 863 movl 36(%esp),%ebx 864 movl %esp,%ebp 865 subl $88,%esp 866 andl $-16,%esp 867 movl %ebp,80(%esp) 868 cmpl $1,%eax 869 je .L039ctr32_one_shortcut 870 movdqu (%ebx),%xmm7 871 movl $202182159,(%esp) 872 movl $134810123,4(%esp) 873 movl $67438087,8(%esp) 874 movl $66051,12(%esp) 875 movl $6,%ecx 876 xorl %ebp,%ebp 877 movl %ecx,16(%esp) 878 movl %ecx,20(%esp) 879 movl %ecx,24(%esp) 880 movl %ebp,28(%esp) 881.byte 102,15,58,22,251,3 882.byte 102,15,58,34,253,3 883 movl 240(%edx),%ecx 884 bswap %ebx 885 pxor %xmm0,%xmm0 886 pxor %xmm1,%xmm1 887 movdqa (%esp),%xmm2 888.byte 102,15,58,34,195,0 889 leal 3(%ebx),%ebp 890.byte 102,15,58,34,205,0 891 incl %ebx 892.byte 102,15,58,34,195,1 893 incl %ebp 894.byte 102,15,58,34,205,1 895 incl %ebx 896.byte 102,15,58,34,195,2 897 incl %ebp 898.byte 102,15,58,34,205,2 899 movdqa %xmm0,48(%esp) 900.byte 102,15,56,0,194 901 movdqu (%edx),%xmm6 902 movdqa %xmm1,64(%esp) 903.byte 102,15,56,0,202 904 pshufd $192,%xmm0,%xmm2 905 pshufd $128,%xmm0,%xmm3 906 cmpl $6,%eax 907 jb .L040ctr32_tail 908 pxor %xmm6,%xmm7 909 shll $4,%ecx 910 movl $16,%ebx 911 movdqa %xmm7,32(%esp) 912 movl %edx,%ebp 913 subl %ecx,%ebx 914 leal 32(%edx,%ecx,1),%edx 915 subl $6,%eax 916 jmp .L041ctr32_loop6 917.align 16 918.L041ctr32_loop6: 919 pshufd $64,%xmm0,%xmm4 920 movdqa 32(%esp),%xmm0 921 pshufd $192,%xmm1,%xmm5 922 pxor %xmm0,%xmm2 923 pshufd $128,%xmm1,%xmm6 924 pxor %xmm0,%xmm3 925 pshufd $64,%xmm1,%xmm7 926 movups 16(%ebp),%xmm1 927 pxor %xmm0,%xmm4 928 pxor %xmm0,%xmm5 929.byte 102,15,56,220,209 930 pxor %xmm0,%xmm6 931 pxor %xmm0,%xmm7 932.byte 102,15,56,220,217 933 movups 32(%ebp),%xmm0 934 movl %ebx,%ecx 935.byte 102,15,56,220,225 936.byte 102,15,56,220,233 937.byte 102,15,56,220,241 938.byte 102,15,56,220,249 939 call .L_aesni_encrypt6_enter 940 movups (%esi),%xmm1 941 movups 16(%esi),%xmm0 942 xorps %xmm1,%xmm2 943 movups 32(%esi),%xmm1 944 xorps %xmm0,%xmm3 945 movups %xmm2,(%edi) 946 movdqa 16(%esp),%xmm0 947 xorps %xmm1,%xmm4 948 movdqa 64(%esp),%xmm1 949 movups %xmm3,16(%edi) 950 movups %xmm4,32(%edi) 951 paddd %xmm0,%xmm1 952 paddd 48(%esp),%xmm0 953 movdqa (%esp),%xmm2 954 movups 48(%esi),%xmm3 955 movups 64(%esi),%xmm4 956 xorps %xmm3,%xmm5 957 movups 80(%esi),%xmm3 958 leal 96(%esi),%esi 959 movdqa %xmm0,48(%esp) 960.byte 102,15,56,0,194 961 xorps %xmm4,%xmm6 962 movups %xmm5,48(%edi) 963 xorps %xmm3,%xmm7 964 movdqa %xmm1,64(%esp) 965.byte 102,15,56,0,202 966 movups %xmm6,64(%edi) 967 pshufd $192,%xmm0,%xmm2 968 movups %xmm7,80(%edi) 969 leal 96(%edi),%edi 970 pshufd $128,%xmm0,%xmm3 971 subl $6,%eax 972 jnc .L041ctr32_loop6 973 addl $6,%eax 974 jz .L042ctr32_ret 975 movdqu (%ebp),%xmm7 976 movl %ebp,%edx 977 pxor 32(%esp),%xmm7 978 movl 240(%ebp),%ecx 979.L040ctr32_tail: 980 por %xmm7,%xmm2 981 cmpl $2,%eax 982 jb .L043ctr32_one 983 pshufd $64,%xmm0,%xmm4 984 por %xmm7,%xmm3 985 je .L044ctr32_two 986 pshufd $192,%xmm1,%xmm5 987 por %xmm7,%xmm4 988 cmpl $4,%eax 989 jb .L045ctr32_three 990 pshufd $128,%xmm1,%xmm6 991 por %xmm7,%xmm5 992 je .L046ctr32_four 993 por %xmm7,%xmm6 994 call _aesni_encrypt6 995 movups (%esi),%xmm1 996 movups 16(%esi),%xmm0 997 xorps %xmm1,%xmm2 998 movups 32(%esi),%xmm1 999 xorps %xmm0,%xmm3 1000 movups 48(%esi),%xmm0 1001 xorps %xmm1,%xmm4 1002 movups 64(%esi),%xmm1 1003 xorps %xmm0,%xmm5 1004 movups %xmm2,(%edi) 1005 xorps %xmm1,%xmm6 1006 movups %xmm3,16(%edi) 1007 movups %xmm4,32(%edi) 1008 movups %xmm5,48(%edi) 1009 movups %xmm6,64(%edi) 1010 jmp .L042ctr32_ret 1011.align 16 1012.L039ctr32_one_shortcut: 1013 movups (%ebx),%xmm2 1014 movl 240(%edx),%ecx 1015.L043ctr32_one: 1016 movups (%edx),%xmm0 1017 movups 16(%edx),%xmm1 1018 leal 32(%edx),%edx 1019 xorps %xmm0,%xmm2 1020.L047enc1_loop_7: 1021.byte 102,15,56,220,209 1022 decl %ecx 1023 movups (%edx),%xmm1 1024 leal 16(%edx),%edx 1025 jnz .L047enc1_loop_7 1026.byte 102,15,56,221,209 1027 movups (%esi),%xmm6 1028 xorps %xmm2,%xmm6 1029 movups %xmm6,(%edi) 1030 jmp .L042ctr32_ret 1031.align 16 1032.L044ctr32_two: 1033 call _aesni_encrypt2 1034 movups (%esi),%xmm5 1035 movups 16(%esi),%xmm6 1036 xorps %xmm5,%xmm2 1037 xorps %xmm6,%xmm3 1038 movups %xmm2,(%edi) 1039 movups %xmm3,16(%edi) 1040 jmp .L042ctr32_ret 1041.align 16 1042.L045ctr32_three: 1043 call _aesni_encrypt3 1044 movups (%esi),%xmm5 1045 movups 16(%esi),%xmm6 1046 xorps %xmm5,%xmm2 1047 movups 32(%esi),%xmm7 1048 xorps %xmm6,%xmm3 1049 movups %xmm2,(%edi) 1050 xorps %xmm7,%xmm4 1051 movups %xmm3,16(%edi) 1052 movups %xmm4,32(%edi) 1053 jmp .L042ctr32_ret 1054.align 16 1055.L046ctr32_four: 1056 call _aesni_encrypt4 1057 movups (%esi),%xmm6 1058 movups 16(%esi),%xmm7 1059 movups 32(%esi),%xmm1 1060 xorps %xmm6,%xmm2 1061 movups 48(%esi),%xmm0 1062 xorps %xmm7,%xmm3 1063 movups %xmm2,(%edi) 1064 xorps %xmm1,%xmm4 1065 movups %xmm3,16(%edi) 1066 xorps %xmm0,%xmm5 1067 movups %xmm4,32(%edi) 1068 movups %xmm5,48(%edi) 1069.L042ctr32_ret: 1070 pxor %xmm0,%xmm0 1071 pxor %xmm1,%xmm1 1072 pxor %xmm2,%xmm2 1073 pxor %xmm3,%xmm3 1074 pxor %xmm4,%xmm4 1075 movdqa %xmm0,32(%esp) 1076 pxor %xmm5,%xmm5 1077 movdqa %xmm0,48(%esp) 1078 pxor %xmm6,%xmm6 1079 movdqa %xmm0,64(%esp) 1080 pxor %xmm7,%xmm7 1081 movl 80(%esp),%esp 1082 popl %edi 1083 popl %esi 1084 popl %ebx 1085 popl %ebp 1086 ret 1087.size aes_hw_ctr32_encrypt_blocks,.-.L_aes_hw_ctr32_encrypt_blocks_begin 1088.globl aes_hw_xts_encrypt 1089.hidden aes_hw_xts_encrypt 1090.type aes_hw_xts_encrypt,@function 1091.align 16 1092aes_hw_xts_encrypt: 1093.L_aes_hw_xts_encrypt_begin: 1094 pushl %ebp 1095 pushl %ebx 1096 pushl %esi 1097 pushl %edi 1098 movl 36(%esp),%edx 1099 movl 40(%esp),%esi 1100 movl 240(%edx),%ecx 1101 movups (%esi),%xmm2 1102 movups (%edx),%xmm0 1103 movups 16(%edx),%xmm1 1104 leal 32(%edx),%edx 1105 xorps %xmm0,%xmm2 1106.L048enc1_loop_8: 1107.byte 102,15,56,220,209 1108 decl %ecx 1109 movups (%edx),%xmm1 1110 leal 16(%edx),%edx 1111 jnz .L048enc1_loop_8 1112.byte 102,15,56,221,209 1113 movl 20(%esp),%esi 1114 movl 24(%esp),%edi 1115 movl 28(%esp),%eax 1116 movl 32(%esp),%edx 1117 movl %esp,%ebp 1118 subl $120,%esp 1119 movl 240(%edx),%ecx 1120 andl $-16,%esp 1121 movl $135,96(%esp) 1122 movl $0,100(%esp) 1123 movl $1,104(%esp) 1124 movl $0,108(%esp) 1125 movl %eax,112(%esp) 1126 movl %ebp,116(%esp) 1127 movdqa %xmm2,%xmm1 1128 pxor %xmm0,%xmm0 1129 movdqa 96(%esp),%xmm3 1130 pcmpgtd %xmm1,%xmm0 1131 andl $-16,%eax 1132 movl %edx,%ebp 1133 movl %ecx,%ebx 1134 subl $96,%eax 1135 jc .L049xts_enc_short 1136 shll $4,%ecx 1137 movl $16,%ebx 1138 subl %ecx,%ebx 1139 leal 32(%edx,%ecx,1),%edx 1140 jmp .L050xts_enc_loop6 1141.align 16 1142.L050xts_enc_loop6: 1143 pshufd $19,%xmm0,%xmm2 1144 pxor %xmm0,%xmm0 1145 movdqa %xmm1,(%esp) 1146 paddq %xmm1,%xmm1 1147 pand %xmm3,%xmm2 1148 pcmpgtd %xmm1,%xmm0 1149 pxor %xmm2,%xmm1 1150 pshufd $19,%xmm0,%xmm2 1151 pxor %xmm0,%xmm0 1152 movdqa %xmm1,16(%esp) 1153 paddq %xmm1,%xmm1 1154 pand %xmm3,%xmm2 1155 pcmpgtd %xmm1,%xmm0 1156 pxor %xmm2,%xmm1 1157 pshufd $19,%xmm0,%xmm2 1158 pxor %xmm0,%xmm0 1159 movdqa %xmm1,32(%esp) 1160 paddq %xmm1,%xmm1 1161 pand %xmm3,%xmm2 1162 pcmpgtd %xmm1,%xmm0 1163 pxor %xmm2,%xmm1 1164 pshufd $19,%xmm0,%xmm2 1165 pxor %xmm0,%xmm0 1166 movdqa %xmm1,48(%esp) 1167 paddq %xmm1,%xmm1 1168 pand %xmm3,%xmm2 1169 pcmpgtd %xmm1,%xmm0 1170 pxor %xmm2,%xmm1 1171 pshufd $19,%xmm0,%xmm7 1172 movdqa %xmm1,64(%esp) 1173 paddq %xmm1,%xmm1 1174 movups (%ebp),%xmm0 1175 pand %xmm3,%xmm7 1176 movups (%esi),%xmm2 1177 pxor %xmm1,%xmm7 1178 movl %ebx,%ecx 1179 movdqu 16(%esi),%xmm3 1180 xorps %xmm0,%xmm2 1181 movdqu 32(%esi),%xmm4 1182 pxor %xmm0,%xmm3 1183 movdqu 48(%esi),%xmm5 1184 pxor %xmm0,%xmm4 1185 movdqu 64(%esi),%xmm6 1186 pxor %xmm0,%xmm5 1187 movdqu 80(%esi),%xmm1 1188 pxor %xmm0,%xmm6 1189 leal 96(%esi),%esi 1190 pxor (%esp),%xmm2 1191 movdqa %xmm7,80(%esp) 1192 pxor %xmm1,%xmm7 1193 movups 16(%ebp),%xmm1 1194 pxor 16(%esp),%xmm3 1195 pxor 32(%esp),%xmm4 1196.byte 102,15,56,220,209 1197 pxor 48(%esp),%xmm5 1198 pxor 64(%esp),%xmm6 1199.byte 102,15,56,220,217 1200 pxor %xmm0,%xmm7 1201 movups 32(%ebp),%xmm0 1202.byte 102,15,56,220,225 1203.byte 102,15,56,220,233 1204.byte 102,15,56,220,241 1205.byte 102,15,56,220,249 1206 call .L_aesni_encrypt6_enter 1207 movdqa 80(%esp),%xmm1 1208 pxor %xmm0,%xmm0 1209 xorps (%esp),%xmm2 1210 pcmpgtd %xmm1,%xmm0 1211 xorps 16(%esp),%xmm3 1212 movups %xmm2,(%edi) 1213 xorps 32(%esp),%xmm4 1214 movups %xmm3,16(%edi) 1215 xorps 48(%esp),%xmm5 1216 movups %xmm4,32(%edi) 1217 xorps 64(%esp),%xmm6 1218 movups %xmm5,48(%edi) 1219 xorps %xmm1,%xmm7 1220 movups %xmm6,64(%edi) 1221 pshufd $19,%xmm0,%xmm2 1222 movups %xmm7,80(%edi) 1223 leal 96(%edi),%edi 1224 movdqa 96(%esp),%xmm3 1225 pxor %xmm0,%xmm0 1226 paddq %xmm1,%xmm1 1227 pand %xmm3,%xmm2 1228 pcmpgtd %xmm1,%xmm0 1229 pxor %xmm2,%xmm1 1230 subl $96,%eax 1231 jnc .L050xts_enc_loop6 1232 movl 240(%ebp),%ecx 1233 movl %ebp,%edx 1234 movl %ecx,%ebx 1235.L049xts_enc_short: 1236 addl $96,%eax 1237 jz .L051xts_enc_done6x 1238 movdqa %xmm1,%xmm5 1239 cmpl $32,%eax 1240 jb .L052xts_enc_one 1241 pshufd $19,%xmm0,%xmm2 1242 pxor %xmm0,%xmm0 1243 paddq %xmm1,%xmm1 1244 pand %xmm3,%xmm2 1245 pcmpgtd %xmm1,%xmm0 1246 pxor %xmm2,%xmm1 1247 je .L053xts_enc_two 1248 pshufd $19,%xmm0,%xmm2 1249 pxor %xmm0,%xmm0 1250 movdqa %xmm1,%xmm6 1251 paddq %xmm1,%xmm1 1252 pand %xmm3,%xmm2 1253 pcmpgtd %xmm1,%xmm0 1254 pxor %xmm2,%xmm1 1255 cmpl $64,%eax 1256 jb .L054xts_enc_three 1257 pshufd $19,%xmm0,%xmm2 1258 pxor %xmm0,%xmm0 1259 movdqa %xmm1,%xmm7 1260 paddq %xmm1,%xmm1 1261 pand %xmm3,%xmm2 1262 pcmpgtd %xmm1,%xmm0 1263 pxor %xmm2,%xmm1 1264 movdqa %xmm5,(%esp) 1265 movdqa %xmm6,16(%esp) 1266 je .L055xts_enc_four 1267 movdqa %xmm7,32(%esp) 1268 pshufd $19,%xmm0,%xmm7 1269 movdqa %xmm1,48(%esp) 1270 paddq %xmm1,%xmm1 1271 pand %xmm3,%xmm7 1272 pxor %xmm1,%xmm7 1273 movdqu (%esi),%xmm2 1274 movdqu 16(%esi),%xmm3 1275 movdqu 32(%esi),%xmm4 1276 pxor (%esp),%xmm2 1277 movdqu 48(%esi),%xmm5 1278 pxor 16(%esp),%xmm3 1279 movdqu 64(%esi),%xmm6 1280 pxor 32(%esp),%xmm4 1281 leal 80(%esi),%esi 1282 pxor 48(%esp),%xmm5 1283 movdqa %xmm7,64(%esp) 1284 pxor %xmm7,%xmm6 1285 call _aesni_encrypt6 1286 movaps 64(%esp),%xmm1 1287 xorps (%esp),%xmm2 1288 xorps 16(%esp),%xmm3 1289 xorps 32(%esp),%xmm4 1290 movups %xmm2,(%edi) 1291 xorps 48(%esp),%xmm5 1292 movups %xmm3,16(%edi) 1293 xorps %xmm1,%xmm6 1294 movups %xmm4,32(%edi) 1295 movups %xmm5,48(%edi) 1296 movups %xmm6,64(%edi) 1297 leal 80(%edi),%edi 1298 jmp .L056xts_enc_done 1299.align 16 1300.L052xts_enc_one: 1301 movups (%esi),%xmm2 1302 leal 16(%esi),%esi 1303 xorps %xmm5,%xmm2 1304 movups (%edx),%xmm0 1305 movups 16(%edx),%xmm1 1306 leal 32(%edx),%edx 1307 xorps %xmm0,%xmm2 1308.L057enc1_loop_9: 1309.byte 102,15,56,220,209 1310 decl %ecx 1311 movups (%edx),%xmm1 1312 leal 16(%edx),%edx 1313 jnz .L057enc1_loop_9 1314.byte 102,15,56,221,209 1315 xorps %xmm5,%xmm2 1316 movups %xmm2,(%edi) 1317 leal 16(%edi),%edi 1318 movdqa %xmm5,%xmm1 1319 jmp .L056xts_enc_done 1320.align 16 1321.L053xts_enc_two: 1322 movaps %xmm1,%xmm6 1323 movups (%esi),%xmm2 1324 movups 16(%esi),%xmm3 1325 leal 32(%esi),%esi 1326 xorps %xmm5,%xmm2 1327 xorps %xmm6,%xmm3 1328 call _aesni_encrypt2 1329 xorps %xmm5,%xmm2 1330 xorps %xmm6,%xmm3 1331 movups %xmm2,(%edi) 1332 movups %xmm3,16(%edi) 1333 leal 32(%edi),%edi 1334 movdqa %xmm6,%xmm1 1335 jmp .L056xts_enc_done 1336.align 16 1337.L054xts_enc_three: 1338 movaps %xmm1,%xmm7 1339 movups (%esi),%xmm2 1340 movups 16(%esi),%xmm3 1341 movups 32(%esi),%xmm4 1342 leal 48(%esi),%esi 1343 xorps %xmm5,%xmm2 1344 xorps %xmm6,%xmm3 1345 xorps %xmm7,%xmm4 1346 call _aesni_encrypt3 1347 xorps %xmm5,%xmm2 1348 xorps %xmm6,%xmm3 1349 xorps %xmm7,%xmm4 1350 movups %xmm2,(%edi) 1351 movups %xmm3,16(%edi) 1352 movups %xmm4,32(%edi) 1353 leal 48(%edi),%edi 1354 movdqa %xmm7,%xmm1 1355 jmp .L056xts_enc_done 1356.align 16 1357.L055xts_enc_four: 1358 movaps %xmm1,%xmm6 1359 movups (%esi),%xmm2 1360 movups 16(%esi),%xmm3 1361 movups 32(%esi),%xmm4 1362 xorps (%esp),%xmm2 1363 movups 48(%esi),%xmm5 1364 leal 64(%esi),%esi 1365 xorps 16(%esp),%xmm3 1366 xorps %xmm7,%xmm4 1367 xorps %xmm6,%xmm5 1368 call _aesni_encrypt4 1369 xorps (%esp),%xmm2 1370 xorps 16(%esp),%xmm3 1371 xorps %xmm7,%xmm4 1372 movups %xmm2,(%edi) 1373 xorps %xmm6,%xmm5 1374 movups %xmm3,16(%edi) 1375 movups %xmm4,32(%edi) 1376 movups %xmm5,48(%edi) 1377 leal 64(%edi),%edi 1378 movdqa %xmm6,%xmm1 1379 jmp .L056xts_enc_done 1380.align 16 1381.L051xts_enc_done6x: 1382 movl 112(%esp),%eax 1383 andl $15,%eax 1384 jz .L058xts_enc_ret 1385 movdqa %xmm1,%xmm5 1386 movl %eax,112(%esp) 1387 jmp .L059xts_enc_steal 1388.align 16 1389.L056xts_enc_done: 1390 movl 112(%esp),%eax 1391 pxor %xmm0,%xmm0 1392 andl $15,%eax 1393 jz .L058xts_enc_ret 1394 pcmpgtd %xmm1,%xmm0 1395 movl %eax,112(%esp) 1396 pshufd $19,%xmm0,%xmm5 1397 paddq %xmm1,%xmm1 1398 pand 96(%esp),%xmm5 1399 pxor %xmm1,%xmm5 1400.L059xts_enc_steal: 1401 movzbl (%esi),%ecx 1402 movzbl -16(%edi),%edx 1403 leal 1(%esi),%esi 1404 movb %cl,-16(%edi) 1405 movb %dl,(%edi) 1406 leal 1(%edi),%edi 1407 subl $1,%eax 1408 jnz .L059xts_enc_steal 1409 subl 112(%esp),%edi 1410 movl %ebp,%edx 1411 movl %ebx,%ecx 1412 movups -16(%edi),%xmm2 1413 xorps %xmm5,%xmm2 1414 movups (%edx),%xmm0 1415 movups 16(%edx),%xmm1 1416 leal 32(%edx),%edx 1417 xorps %xmm0,%xmm2 1418.L060enc1_loop_10: 1419.byte 102,15,56,220,209 1420 decl %ecx 1421 movups (%edx),%xmm1 1422 leal 16(%edx),%edx 1423 jnz .L060enc1_loop_10 1424.byte 102,15,56,221,209 1425 xorps %xmm5,%xmm2 1426 movups %xmm2,-16(%edi) 1427.L058xts_enc_ret: 1428 pxor %xmm0,%xmm0 1429 pxor %xmm1,%xmm1 1430 pxor %xmm2,%xmm2 1431 movdqa %xmm0,(%esp) 1432 pxor %xmm3,%xmm3 1433 movdqa %xmm0,16(%esp) 1434 pxor %xmm4,%xmm4 1435 movdqa %xmm0,32(%esp) 1436 pxor %xmm5,%xmm5 1437 movdqa %xmm0,48(%esp) 1438 pxor %xmm6,%xmm6 1439 movdqa %xmm0,64(%esp) 1440 pxor %xmm7,%xmm7 1441 movdqa %xmm0,80(%esp) 1442 movl 116(%esp),%esp 1443 popl %edi 1444 popl %esi 1445 popl %ebx 1446 popl %ebp 1447 ret 1448.size aes_hw_xts_encrypt,.-.L_aes_hw_xts_encrypt_begin 1449.globl aes_hw_xts_decrypt 1450.hidden aes_hw_xts_decrypt 1451.type aes_hw_xts_decrypt,@function 1452.align 16 1453aes_hw_xts_decrypt: 1454.L_aes_hw_xts_decrypt_begin: 1455 pushl %ebp 1456 pushl %ebx 1457 pushl %esi 1458 pushl %edi 1459 movl 36(%esp),%edx 1460 movl 40(%esp),%esi 1461 movl 240(%edx),%ecx 1462 movups (%esi),%xmm2 1463 movups (%edx),%xmm0 1464 movups 16(%edx),%xmm1 1465 leal 32(%edx),%edx 1466 xorps %xmm0,%xmm2 1467.L061enc1_loop_11: 1468.byte 102,15,56,220,209 1469 decl %ecx 1470 movups (%edx),%xmm1 1471 leal 16(%edx),%edx 1472 jnz .L061enc1_loop_11 1473.byte 102,15,56,221,209 1474 movl 20(%esp),%esi 1475 movl 24(%esp),%edi 1476 movl 28(%esp),%eax 1477 movl 32(%esp),%edx 1478 movl %esp,%ebp 1479 subl $120,%esp 1480 andl $-16,%esp 1481 xorl %ebx,%ebx 1482 testl $15,%eax 1483 setnz %bl 1484 shll $4,%ebx 1485 subl %ebx,%eax 1486 movl $135,96(%esp) 1487 movl $0,100(%esp) 1488 movl $1,104(%esp) 1489 movl $0,108(%esp) 1490 movl %eax,112(%esp) 1491 movl %ebp,116(%esp) 1492 movl 240(%edx),%ecx 1493 movl %edx,%ebp 1494 movl %ecx,%ebx 1495 movdqa %xmm2,%xmm1 1496 pxor %xmm0,%xmm0 1497 movdqa 96(%esp),%xmm3 1498 pcmpgtd %xmm1,%xmm0 1499 andl $-16,%eax 1500 subl $96,%eax 1501 jc .L062xts_dec_short 1502 shll $4,%ecx 1503 movl $16,%ebx 1504 subl %ecx,%ebx 1505 leal 32(%edx,%ecx,1),%edx 1506 jmp .L063xts_dec_loop6 1507.align 16 1508.L063xts_dec_loop6: 1509 pshufd $19,%xmm0,%xmm2 1510 pxor %xmm0,%xmm0 1511 movdqa %xmm1,(%esp) 1512 paddq %xmm1,%xmm1 1513 pand %xmm3,%xmm2 1514 pcmpgtd %xmm1,%xmm0 1515 pxor %xmm2,%xmm1 1516 pshufd $19,%xmm0,%xmm2 1517 pxor %xmm0,%xmm0 1518 movdqa %xmm1,16(%esp) 1519 paddq %xmm1,%xmm1 1520 pand %xmm3,%xmm2 1521 pcmpgtd %xmm1,%xmm0 1522 pxor %xmm2,%xmm1 1523 pshufd $19,%xmm0,%xmm2 1524 pxor %xmm0,%xmm0 1525 movdqa %xmm1,32(%esp) 1526 paddq %xmm1,%xmm1 1527 pand %xmm3,%xmm2 1528 pcmpgtd %xmm1,%xmm0 1529 pxor %xmm2,%xmm1 1530 pshufd $19,%xmm0,%xmm2 1531 pxor %xmm0,%xmm0 1532 movdqa %xmm1,48(%esp) 1533 paddq %xmm1,%xmm1 1534 pand %xmm3,%xmm2 1535 pcmpgtd %xmm1,%xmm0 1536 pxor %xmm2,%xmm1 1537 pshufd $19,%xmm0,%xmm7 1538 movdqa %xmm1,64(%esp) 1539 paddq %xmm1,%xmm1 1540 movups (%ebp),%xmm0 1541 pand %xmm3,%xmm7 1542 movups (%esi),%xmm2 1543 pxor %xmm1,%xmm7 1544 movl %ebx,%ecx 1545 movdqu 16(%esi),%xmm3 1546 xorps %xmm0,%xmm2 1547 movdqu 32(%esi),%xmm4 1548 pxor %xmm0,%xmm3 1549 movdqu 48(%esi),%xmm5 1550 pxor %xmm0,%xmm4 1551 movdqu 64(%esi),%xmm6 1552 pxor %xmm0,%xmm5 1553 movdqu 80(%esi),%xmm1 1554 pxor %xmm0,%xmm6 1555 leal 96(%esi),%esi 1556 pxor (%esp),%xmm2 1557 movdqa %xmm7,80(%esp) 1558 pxor %xmm1,%xmm7 1559 movups 16(%ebp),%xmm1 1560 pxor 16(%esp),%xmm3 1561 pxor 32(%esp),%xmm4 1562.byte 102,15,56,222,209 1563 pxor 48(%esp),%xmm5 1564 pxor 64(%esp),%xmm6 1565.byte 102,15,56,222,217 1566 pxor %xmm0,%xmm7 1567 movups 32(%ebp),%xmm0 1568.byte 102,15,56,222,225 1569.byte 102,15,56,222,233 1570.byte 102,15,56,222,241 1571.byte 102,15,56,222,249 1572 call .L_aesni_decrypt6_enter 1573 movdqa 80(%esp),%xmm1 1574 pxor %xmm0,%xmm0 1575 xorps (%esp),%xmm2 1576 pcmpgtd %xmm1,%xmm0 1577 xorps 16(%esp),%xmm3 1578 movups %xmm2,(%edi) 1579 xorps 32(%esp),%xmm4 1580 movups %xmm3,16(%edi) 1581 xorps 48(%esp),%xmm5 1582 movups %xmm4,32(%edi) 1583 xorps 64(%esp),%xmm6 1584 movups %xmm5,48(%edi) 1585 xorps %xmm1,%xmm7 1586 movups %xmm6,64(%edi) 1587 pshufd $19,%xmm0,%xmm2 1588 movups %xmm7,80(%edi) 1589 leal 96(%edi),%edi 1590 movdqa 96(%esp),%xmm3 1591 pxor %xmm0,%xmm0 1592 paddq %xmm1,%xmm1 1593 pand %xmm3,%xmm2 1594 pcmpgtd %xmm1,%xmm0 1595 pxor %xmm2,%xmm1 1596 subl $96,%eax 1597 jnc .L063xts_dec_loop6 1598 movl 240(%ebp),%ecx 1599 movl %ebp,%edx 1600 movl %ecx,%ebx 1601.L062xts_dec_short: 1602 addl $96,%eax 1603 jz .L064xts_dec_done6x 1604 movdqa %xmm1,%xmm5 1605 cmpl $32,%eax 1606 jb .L065xts_dec_one 1607 pshufd $19,%xmm0,%xmm2 1608 pxor %xmm0,%xmm0 1609 paddq %xmm1,%xmm1 1610 pand %xmm3,%xmm2 1611 pcmpgtd %xmm1,%xmm0 1612 pxor %xmm2,%xmm1 1613 je .L066xts_dec_two 1614 pshufd $19,%xmm0,%xmm2 1615 pxor %xmm0,%xmm0 1616 movdqa %xmm1,%xmm6 1617 paddq %xmm1,%xmm1 1618 pand %xmm3,%xmm2 1619 pcmpgtd %xmm1,%xmm0 1620 pxor %xmm2,%xmm1 1621 cmpl $64,%eax 1622 jb .L067xts_dec_three 1623 pshufd $19,%xmm0,%xmm2 1624 pxor %xmm0,%xmm0 1625 movdqa %xmm1,%xmm7 1626 paddq %xmm1,%xmm1 1627 pand %xmm3,%xmm2 1628 pcmpgtd %xmm1,%xmm0 1629 pxor %xmm2,%xmm1 1630 movdqa %xmm5,(%esp) 1631 movdqa %xmm6,16(%esp) 1632 je .L068xts_dec_four 1633 movdqa %xmm7,32(%esp) 1634 pshufd $19,%xmm0,%xmm7 1635 movdqa %xmm1,48(%esp) 1636 paddq %xmm1,%xmm1 1637 pand %xmm3,%xmm7 1638 pxor %xmm1,%xmm7 1639 movdqu (%esi),%xmm2 1640 movdqu 16(%esi),%xmm3 1641 movdqu 32(%esi),%xmm4 1642 pxor (%esp),%xmm2 1643 movdqu 48(%esi),%xmm5 1644 pxor 16(%esp),%xmm3 1645 movdqu 64(%esi),%xmm6 1646 pxor 32(%esp),%xmm4 1647 leal 80(%esi),%esi 1648 pxor 48(%esp),%xmm5 1649 movdqa %xmm7,64(%esp) 1650 pxor %xmm7,%xmm6 1651 call _aesni_decrypt6 1652 movaps 64(%esp),%xmm1 1653 xorps (%esp),%xmm2 1654 xorps 16(%esp),%xmm3 1655 xorps 32(%esp),%xmm4 1656 movups %xmm2,(%edi) 1657 xorps 48(%esp),%xmm5 1658 movups %xmm3,16(%edi) 1659 xorps %xmm1,%xmm6 1660 movups %xmm4,32(%edi) 1661 movups %xmm5,48(%edi) 1662 movups %xmm6,64(%edi) 1663 leal 80(%edi),%edi 1664 jmp .L069xts_dec_done 1665.align 16 1666.L065xts_dec_one: 1667 movups (%esi),%xmm2 1668 leal 16(%esi),%esi 1669 xorps %xmm5,%xmm2 1670 movups (%edx),%xmm0 1671 movups 16(%edx),%xmm1 1672 leal 32(%edx),%edx 1673 xorps %xmm0,%xmm2 1674.L070dec1_loop_12: 1675.byte 102,15,56,222,209 1676 decl %ecx 1677 movups (%edx),%xmm1 1678 leal 16(%edx),%edx 1679 jnz .L070dec1_loop_12 1680.byte 102,15,56,223,209 1681 xorps %xmm5,%xmm2 1682 movups %xmm2,(%edi) 1683 leal 16(%edi),%edi 1684 movdqa %xmm5,%xmm1 1685 jmp .L069xts_dec_done 1686.align 16 1687.L066xts_dec_two: 1688 movaps %xmm1,%xmm6 1689 movups (%esi),%xmm2 1690 movups 16(%esi),%xmm3 1691 leal 32(%esi),%esi 1692 xorps %xmm5,%xmm2 1693 xorps %xmm6,%xmm3 1694 call _aesni_decrypt2 1695 xorps %xmm5,%xmm2 1696 xorps %xmm6,%xmm3 1697 movups %xmm2,(%edi) 1698 movups %xmm3,16(%edi) 1699 leal 32(%edi),%edi 1700 movdqa %xmm6,%xmm1 1701 jmp .L069xts_dec_done 1702.align 16 1703.L067xts_dec_three: 1704 movaps %xmm1,%xmm7 1705 movups (%esi),%xmm2 1706 movups 16(%esi),%xmm3 1707 movups 32(%esi),%xmm4 1708 leal 48(%esi),%esi 1709 xorps %xmm5,%xmm2 1710 xorps %xmm6,%xmm3 1711 xorps %xmm7,%xmm4 1712 call _aesni_decrypt3 1713 xorps %xmm5,%xmm2 1714 xorps %xmm6,%xmm3 1715 xorps %xmm7,%xmm4 1716 movups %xmm2,(%edi) 1717 movups %xmm3,16(%edi) 1718 movups %xmm4,32(%edi) 1719 leal 48(%edi),%edi 1720 movdqa %xmm7,%xmm1 1721 jmp .L069xts_dec_done 1722.align 16 1723.L068xts_dec_four: 1724 movaps %xmm1,%xmm6 1725 movups (%esi),%xmm2 1726 movups 16(%esi),%xmm3 1727 movups 32(%esi),%xmm4 1728 xorps (%esp),%xmm2 1729 movups 48(%esi),%xmm5 1730 leal 64(%esi),%esi 1731 xorps 16(%esp),%xmm3 1732 xorps %xmm7,%xmm4 1733 xorps %xmm6,%xmm5 1734 call _aesni_decrypt4 1735 xorps (%esp),%xmm2 1736 xorps 16(%esp),%xmm3 1737 xorps %xmm7,%xmm4 1738 movups %xmm2,(%edi) 1739 xorps %xmm6,%xmm5 1740 movups %xmm3,16(%edi) 1741 movups %xmm4,32(%edi) 1742 movups %xmm5,48(%edi) 1743 leal 64(%edi),%edi 1744 movdqa %xmm6,%xmm1 1745 jmp .L069xts_dec_done 1746.align 16 1747.L064xts_dec_done6x: 1748 movl 112(%esp),%eax 1749 andl $15,%eax 1750 jz .L071xts_dec_ret 1751 movl %eax,112(%esp) 1752 jmp .L072xts_dec_only_one_more 1753.align 16 1754.L069xts_dec_done: 1755 movl 112(%esp),%eax 1756 pxor %xmm0,%xmm0 1757 andl $15,%eax 1758 jz .L071xts_dec_ret 1759 pcmpgtd %xmm1,%xmm0 1760 movl %eax,112(%esp) 1761 pshufd $19,%xmm0,%xmm2 1762 pxor %xmm0,%xmm0 1763 movdqa 96(%esp),%xmm3 1764 paddq %xmm1,%xmm1 1765 pand %xmm3,%xmm2 1766 pcmpgtd %xmm1,%xmm0 1767 pxor %xmm2,%xmm1 1768.L072xts_dec_only_one_more: 1769 pshufd $19,%xmm0,%xmm5 1770 movdqa %xmm1,%xmm6 1771 paddq %xmm1,%xmm1 1772 pand %xmm3,%xmm5 1773 pxor %xmm1,%xmm5 1774 movl %ebp,%edx 1775 movl %ebx,%ecx 1776 movups (%esi),%xmm2 1777 xorps %xmm5,%xmm2 1778 movups (%edx),%xmm0 1779 movups 16(%edx),%xmm1 1780 leal 32(%edx),%edx 1781 xorps %xmm0,%xmm2 1782.L073dec1_loop_13: 1783.byte 102,15,56,222,209 1784 decl %ecx 1785 movups (%edx),%xmm1 1786 leal 16(%edx),%edx 1787 jnz .L073dec1_loop_13 1788.byte 102,15,56,223,209 1789 xorps %xmm5,%xmm2 1790 movups %xmm2,(%edi) 1791.L074xts_dec_steal: 1792 movzbl 16(%esi),%ecx 1793 movzbl (%edi),%edx 1794 leal 1(%esi),%esi 1795 movb %cl,(%edi) 1796 movb %dl,16(%edi) 1797 leal 1(%edi),%edi 1798 subl $1,%eax 1799 jnz .L074xts_dec_steal 1800 subl 112(%esp),%edi 1801 movl %ebp,%edx 1802 movl %ebx,%ecx 1803 movups (%edi),%xmm2 1804 xorps %xmm6,%xmm2 1805 movups (%edx),%xmm0 1806 movups 16(%edx),%xmm1 1807 leal 32(%edx),%edx 1808 xorps %xmm0,%xmm2 1809.L075dec1_loop_14: 1810.byte 102,15,56,222,209 1811 decl %ecx 1812 movups (%edx),%xmm1 1813 leal 16(%edx),%edx 1814 jnz .L075dec1_loop_14 1815.byte 102,15,56,223,209 1816 xorps %xmm6,%xmm2 1817 movups %xmm2,(%edi) 1818.L071xts_dec_ret: 1819 pxor %xmm0,%xmm0 1820 pxor %xmm1,%xmm1 1821 pxor %xmm2,%xmm2 1822 movdqa %xmm0,(%esp) 1823 pxor %xmm3,%xmm3 1824 movdqa %xmm0,16(%esp) 1825 pxor %xmm4,%xmm4 1826 movdqa %xmm0,32(%esp) 1827 pxor %xmm5,%xmm5 1828 movdqa %xmm0,48(%esp) 1829 pxor %xmm6,%xmm6 1830 movdqa %xmm0,64(%esp) 1831 pxor %xmm7,%xmm7 1832 movdqa %xmm0,80(%esp) 1833 movl 116(%esp),%esp 1834 popl %edi 1835 popl %esi 1836 popl %ebx 1837 popl %ebp 1838 ret 1839.size aes_hw_xts_decrypt,.-.L_aes_hw_xts_decrypt_begin 1840.globl aes_hw_cbc_encrypt 1841.hidden aes_hw_cbc_encrypt 1842.type aes_hw_cbc_encrypt,@function 1843.align 16 1844aes_hw_cbc_encrypt: 1845.L_aes_hw_cbc_encrypt_begin: 1846 pushl %ebp 1847 pushl %ebx 1848 pushl %esi 1849 pushl %edi 1850 movl 20(%esp),%esi 1851 movl %esp,%ebx 1852 movl 24(%esp),%edi 1853 subl $24,%ebx 1854 movl 28(%esp),%eax 1855 andl $-16,%ebx 1856 movl 32(%esp),%edx 1857 movl 36(%esp),%ebp 1858 testl %eax,%eax 1859 jz .L076cbc_abort 1860 cmpl $0,40(%esp) 1861 xchgl %esp,%ebx 1862 movups (%ebp),%xmm7 1863 movl 240(%edx),%ecx 1864 movl %edx,%ebp 1865 movl %ebx,16(%esp) 1866 movl %ecx,%ebx 1867 je .L077cbc_decrypt 1868 movaps %xmm7,%xmm2 1869 cmpl $16,%eax 1870 jb .L078cbc_enc_tail 1871 subl $16,%eax 1872 jmp .L079cbc_enc_loop 1873.align 16 1874.L079cbc_enc_loop: 1875 movups (%esi),%xmm7 1876 leal 16(%esi),%esi 1877 movups (%edx),%xmm0 1878 movups 16(%edx),%xmm1 1879 xorps %xmm0,%xmm7 1880 leal 32(%edx),%edx 1881 xorps %xmm7,%xmm2 1882.L080enc1_loop_15: 1883.byte 102,15,56,220,209 1884 decl %ecx 1885 movups (%edx),%xmm1 1886 leal 16(%edx),%edx 1887 jnz .L080enc1_loop_15 1888.byte 102,15,56,221,209 1889 movl %ebx,%ecx 1890 movl %ebp,%edx 1891 movups %xmm2,(%edi) 1892 leal 16(%edi),%edi 1893 subl $16,%eax 1894 jnc .L079cbc_enc_loop 1895 addl $16,%eax 1896 jnz .L078cbc_enc_tail 1897 movaps %xmm2,%xmm7 1898 pxor %xmm2,%xmm2 1899 jmp .L081cbc_ret 1900.L078cbc_enc_tail: 1901 movl %eax,%ecx 1902.long 2767451785 1903 movl $16,%ecx 1904 subl %eax,%ecx 1905 xorl %eax,%eax 1906.long 2868115081 1907 leal -16(%edi),%edi 1908 movl %ebx,%ecx 1909 movl %edi,%esi 1910 movl %ebp,%edx 1911 jmp .L079cbc_enc_loop 1912.align 16 1913.L077cbc_decrypt: 1914 cmpl $80,%eax 1915 jbe .L082cbc_dec_tail 1916 movaps %xmm7,(%esp) 1917 subl $80,%eax 1918 jmp .L083cbc_dec_loop6_enter 1919.align 16 1920.L084cbc_dec_loop6: 1921 movaps %xmm0,(%esp) 1922 movups %xmm7,(%edi) 1923 leal 16(%edi),%edi 1924.L083cbc_dec_loop6_enter: 1925 movdqu (%esi),%xmm2 1926 movdqu 16(%esi),%xmm3 1927 movdqu 32(%esi),%xmm4 1928 movdqu 48(%esi),%xmm5 1929 movdqu 64(%esi),%xmm6 1930 movdqu 80(%esi),%xmm7 1931 call _aesni_decrypt6 1932 movups (%esi),%xmm1 1933 movups 16(%esi),%xmm0 1934 xorps (%esp),%xmm2 1935 xorps %xmm1,%xmm3 1936 movups 32(%esi),%xmm1 1937 xorps %xmm0,%xmm4 1938 movups 48(%esi),%xmm0 1939 xorps %xmm1,%xmm5 1940 movups 64(%esi),%xmm1 1941 xorps %xmm0,%xmm6 1942 movups 80(%esi),%xmm0 1943 xorps %xmm1,%xmm7 1944 movups %xmm2,(%edi) 1945 movups %xmm3,16(%edi) 1946 leal 96(%esi),%esi 1947 movups %xmm4,32(%edi) 1948 movl %ebx,%ecx 1949 movups %xmm5,48(%edi) 1950 movl %ebp,%edx 1951 movups %xmm6,64(%edi) 1952 leal 80(%edi),%edi 1953 subl $96,%eax 1954 ja .L084cbc_dec_loop6 1955 movaps %xmm7,%xmm2 1956 movaps %xmm0,%xmm7 1957 addl $80,%eax 1958 jle .L085cbc_dec_clear_tail_collected 1959 movups %xmm2,(%edi) 1960 leal 16(%edi),%edi 1961.L082cbc_dec_tail: 1962 movups (%esi),%xmm2 1963 movaps %xmm2,%xmm6 1964 cmpl $16,%eax 1965 jbe .L086cbc_dec_one 1966 movups 16(%esi),%xmm3 1967 movaps %xmm3,%xmm5 1968 cmpl $32,%eax 1969 jbe .L087cbc_dec_two 1970 movups 32(%esi),%xmm4 1971 cmpl $48,%eax 1972 jbe .L088cbc_dec_three 1973 movups 48(%esi),%xmm5 1974 cmpl $64,%eax 1975 jbe .L089cbc_dec_four 1976 movups 64(%esi),%xmm6 1977 movaps %xmm7,(%esp) 1978 movups (%esi),%xmm2 1979 xorps %xmm7,%xmm7 1980 call _aesni_decrypt6 1981 movups (%esi),%xmm1 1982 movups 16(%esi),%xmm0 1983 xorps (%esp),%xmm2 1984 xorps %xmm1,%xmm3 1985 movups 32(%esi),%xmm1 1986 xorps %xmm0,%xmm4 1987 movups 48(%esi),%xmm0 1988 xorps %xmm1,%xmm5 1989 movups 64(%esi),%xmm7 1990 xorps %xmm0,%xmm6 1991 movups %xmm2,(%edi) 1992 movups %xmm3,16(%edi) 1993 pxor %xmm3,%xmm3 1994 movups %xmm4,32(%edi) 1995 pxor %xmm4,%xmm4 1996 movups %xmm5,48(%edi) 1997 pxor %xmm5,%xmm5 1998 leal 64(%edi),%edi 1999 movaps %xmm6,%xmm2 2000 pxor %xmm6,%xmm6 2001 subl $80,%eax 2002 jmp .L090cbc_dec_tail_collected 2003.align 16 2004.L086cbc_dec_one: 2005 movups (%edx),%xmm0 2006 movups 16(%edx),%xmm1 2007 leal 32(%edx),%edx 2008 xorps %xmm0,%xmm2 2009.L091dec1_loop_16: 2010.byte 102,15,56,222,209 2011 decl %ecx 2012 movups (%edx),%xmm1 2013 leal 16(%edx),%edx 2014 jnz .L091dec1_loop_16 2015.byte 102,15,56,223,209 2016 xorps %xmm7,%xmm2 2017 movaps %xmm6,%xmm7 2018 subl $16,%eax 2019 jmp .L090cbc_dec_tail_collected 2020.align 16 2021.L087cbc_dec_two: 2022 call _aesni_decrypt2 2023 xorps %xmm7,%xmm2 2024 xorps %xmm6,%xmm3 2025 movups %xmm2,(%edi) 2026 movaps %xmm3,%xmm2 2027 pxor %xmm3,%xmm3 2028 leal 16(%edi),%edi 2029 movaps %xmm5,%xmm7 2030 subl $32,%eax 2031 jmp .L090cbc_dec_tail_collected 2032.align 16 2033.L088cbc_dec_three: 2034 call _aesni_decrypt3 2035 xorps %xmm7,%xmm2 2036 xorps %xmm6,%xmm3 2037 xorps %xmm5,%xmm4 2038 movups %xmm2,(%edi) 2039 movaps %xmm4,%xmm2 2040 pxor %xmm4,%xmm4 2041 movups %xmm3,16(%edi) 2042 pxor %xmm3,%xmm3 2043 leal 32(%edi),%edi 2044 movups 32(%esi),%xmm7 2045 subl $48,%eax 2046 jmp .L090cbc_dec_tail_collected 2047.align 16 2048.L089cbc_dec_four: 2049 call _aesni_decrypt4 2050 movups 16(%esi),%xmm1 2051 movups 32(%esi),%xmm0 2052 xorps %xmm7,%xmm2 2053 movups 48(%esi),%xmm7 2054 xorps %xmm6,%xmm3 2055 movups %xmm2,(%edi) 2056 xorps %xmm1,%xmm4 2057 movups %xmm3,16(%edi) 2058 pxor %xmm3,%xmm3 2059 xorps %xmm0,%xmm5 2060 movups %xmm4,32(%edi) 2061 pxor %xmm4,%xmm4 2062 leal 48(%edi),%edi 2063 movaps %xmm5,%xmm2 2064 pxor %xmm5,%xmm5 2065 subl $64,%eax 2066 jmp .L090cbc_dec_tail_collected 2067.align 16 2068.L085cbc_dec_clear_tail_collected: 2069 pxor %xmm3,%xmm3 2070 pxor %xmm4,%xmm4 2071 pxor %xmm5,%xmm5 2072 pxor %xmm6,%xmm6 2073.L090cbc_dec_tail_collected: 2074 andl $15,%eax 2075 jnz .L092cbc_dec_tail_partial 2076 movups %xmm2,(%edi) 2077 pxor %xmm0,%xmm0 2078 jmp .L081cbc_ret 2079.align 16 2080.L092cbc_dec_tail_partial: 2081 movaps %xmm2,(%esp) 2082 pxor %xmm0,%xmm0 2083 movl $16,%ecx 2084 movl %esp,%esi 2085 subl %eax,%ecx 2086.long 2767451785 2087 movdqa %xmm2,(%esp) 2088.L081cbc_ret: 2089 movl 16(%esp),%esp 2090 movl 36(%esp),%ebp 2091 pxor %xmm2,%xmm2 2092 pxor %xmm1,%xmm1 2093 movups %xmm7,(%ebp) 2094 pxor %xmm7,%xmm7 2095.L076cbc_abort: 2096 popl %edi 2097 popl %esi 2098 popl %ebx 2099 popl %ebp 2100 ret 2101.size aes_hw_cbc_encrypt,.-.L_aes_hw_cbc_encrypt_begin 2102.globl aes_hw_set_encrypt_key_base 2103.hidden aes_hw_set_encrypt_key_base 2104.type aes_hw_set_encrypt_key_base,@function 2105.align 16 2106aes_hw_set_encrypt_key_base: 2107.L_aes_hw_set_encrypt_key_base_begin: 2108#ifdef BORINGSSL_DISPATCH_TEST 2109 pushl %ebx 2110 pushl %edx 2111 call .L093pic_for_function_hit 2112.L093pic_for_function_hit: 2113 popl %ebx 2114 leal BORINGSSL_function_hit+3-.L093pic_for_function_hit(%ebx),%ebx 2115 movl $1,%edx 2116 movb %dl,(%ebx) 2117 popl %edx 2118 popl %ebx 2119#endif 2120 movl 4(%esp),%eax 2121 movl 8(%esp),%ecx 2122 movl 12(%esp),%edx 2123 pushl %ebx 2124 call .L094pic 2125.L094pic: 2126 popl %ebx 2127 leal .Lkey_const-.L094pic(%ebx),%ebx 2128 movups (%eax),%xmm0 2129 xorps %xmm4,%xmm4 2130 leal 16(%edx),%edx 2131 cmpl $256,%ecx 2132 je .L09514rounds 2133 cmpl $192,%ecx 2134 je .L09612rounds 2135 cmpl $128,%ecx 2136 jne .L097bad_keybits 2137.align 16 2138.L09810rounds: 2139 movl $9,%ecx 2140 movups %xmm0,-16(%edx) 2141.byte 102,15,58,223,200,1 2142 call .L099key_128_cold 2143.byte 102,15,58,223,200,2 2144 call .L100key_128 2145.byte 102,15,58,223,200,4 2146 call .L100key_128 2147.byte 102,15,58,223,200,8 2148 call .L100key_128 2149.byte 102,15,58,223,200,16 2150 call .L100key_128 2151.byte 102,15,58,223,200,32 2152 call .L100key_128 2153.byte 102,15,58,223,200,64 2154 call .L100key_128 2155.byte 102,15,58,223,200,128 2156 call .L100key_128 2157.byte 102,15,58,223,200,27 2158 call .L100key_128 2159.byte 102,15,58,223,200,54 2160 call .L100key_128 2161 movups %xmm0,(%edx) 2162 movl %ecx,80(%edx) 2163 jmp .L101good_key 2164.align 16 2165.L100key_128: 2166 movups %xmm0,(%edx) 2167 leal 16(%edx),%edx 2168.L099key_128_cold: 2169 shufps $16,%xmm0,%xmm4 2170 xorps %xmm4,%xmm0 2171 shufps $140,%xmm0,%xmm4 2172 xorps %xmm4,%xmm0 2173 shufps $255,%xmm1,%xmm1 2174 xorps %xmm1,%xmm0 2175 ret 2176.align 16 2177.L09612rounds: 2178 movq 16(%eax),%xmm2 2179 movl $11,%ecx 2180 movups %xmm0,-16(%edx) 2181.byte 102,15,58,223,202,1 2182 call .L102key_192a_cold 2183.byte 102,15,58,223,202,2 2184 call .L103key_192b 2185.byte 102,15,58,223,202,4 2186 call .L104key_192a 2187.byte 102,15,58,223,202,8 2188 call .L103key_192b 2189.byte 102,15,58,223,202,16 2190 call .L104key_192a 2191.byte 102,15,58,223,202,32 2192 call .L103key_192b 2193.byte 102,15,58,223,202,64 2194 call .L104key_192a 2195.byte 102,15,58,223,202,128 2196 call .L103key_192b 2197 movups %xmm0,(%edx) 2198 movl %ecx,48(%edx) 2199 jmp .L101good_key 2200.align 16 2201.L104key_192a: 2202 movups %xmm0,(%edx) 2203 leal 16(%edx),%edx 2204.align 16 2205.L102key_192a_cold: 2206 movaps %xmm2,%xmm5 2207.L105key_192b_warm: 2208 shufps $16,%xmm0,%xmm4 2209 movdqa %xmm2,%xmm3 2210 xorps %xmm4,%xmm0 2211 shufps $140,%xmm0,%xmm4 2212 pslldq $4,%xmm3 2213 xorps %xmm4,%xmm0 2214 pshufd $85,%xmm1,%xmm1 2215 pxor %xmm3,%xmm2 2216 pxor %xmm1,%xmm0 2217 pshufd $255,%xmm0,%xmm3 2218 pxor %xmm3,%xmm2 2219 ret 2220.align 16 2221.L103key_192b: 2222 movaps %xmm0,%xmm3 2223 shufps $68,%xmm0,%xmm5 2224 movups %xmm5,(%edx) 2225 shufps $78,%xmm2,%xmm3 2226 movups %xmm3,16(%edx) 2227 leal 32(%edx),%edx 2228 jmp .L105key_192b_warm 2229.align 16 2230.L09514rounds: 2231 movups 16(%eax),%xmm2 2232 leal 16(%edx),%edx 2233 movl $13,%ecx 2234 movups %xmm0,-32(%edx) 2235 movups %xmm2,-16(%edx) 2236.byte 102,15,58,223,202,1 2237 call .L106key_256a_cold 2238.byte 102,15,58,223,200,1 2239 call .L107key_256b 2240.byte 102,15,58,223,202,2 2241 call .L108key_256a 2242.byte 102,15,58,223,200,2 2243 call .L107key_256b 2244.byte 102,15,58,223,202,4 2245 call .L108key_256a 2246.byte 102,15,58,223,200,4 2247 call .L107key_256b 2248.byte 102,15,58,223,202,8 2249 call .L108key_256a 2250.byte 102,15,58,223,200,8 2251 call .L107key_256b 2252.byte 102,15,58,223,202,16 2253 call .L108key_256a 2254.byte 102,15,58,223,200,16 2255 call .L107key_256b 2256.byte 102,15,58,223,202,32 2257 call .L108key_256a 2258.byte 102,15,58,223,200,32 2259 call .L107key_256b 2260.byte 102,15,58,223,202,64 2261 call .L108key_256a 2262 movups %xmm0,(%edx) 2263 movl %ecx,16(%edx) 2264 xorl %eax,%eax 2265 jmp .L101good_key 2266.align 16 2267.L108key_256a: 2268 movups %xmm2,(%edx) 2269 leal 16(%edx),%edx 2270.L106key_256a_cold: 2271 shufps $16,%xmm0,%xmm4 2272 xorps %xmm4,%xmm0 2273 shufps $140,%xmm0,%xmm4 2274 xorps %xmm4,%xmm0 2275 shufps $255,%xmm1,%xmm1 2276 xorps %xmm1,%xmm0 2277 ret 2278.align 16 2279.L107key_256b: 2280 movups %xmm0,(%edx) 2281 leal 16(%edx),%edx 2282 shufps $16,%xmm2,%xmm4 2283 xorps %xmm4,%xmm2 2284 shufps $140,%xmm2,%xmm4 2285 xorps %xmm4,%xmm2 2286 shufps $170,%xmm1,%xmm1 2287 xorps %xmm1,%xmm2 2288 ret 2289.L101good_key: 2290 pxor %xmm0,%xmm0 2291 pxor %xmm1,%xmm1 2292 pxor %xmm2,%xmm2 2293 pxor %xmm3,%xmm3 2294 pxor %xmm4,%xmm4 2295 pxor %xmm5,%xmm5 2296 xorl %eax,%eax 2297 popl %ebx 2298 ret 2299.align 4 2300.L097bad_keybits: 2301 pxor %xmm0,%xmm0 2302 movl $-2,%eax 2303 popl %ebx 2304 ret 2305.size aes_hw_set_encrypt_key_base,.-.L_aes_hw_set_encrypt_key_base_begin 2306.globl aes_hw_set_encrypt_key_alt 2307.hidden aes_hw_set_encrypt_key_alt 2308.type aes_hw_set_encrypt_key_alt,@function 2309.align 16 2310aes_hw_set_encrypt_key_alt: 2311.L_aes_hw_set_encrypt_key_alt_begin: 2312#ifdef BORINGSSL_DISPATCH_TEST 2313 pushl %ebx 2314 pushl %edx 2315 call .L109pic_for_function_hit 2316.L109pic_for_function_hit: 2317 popl %ebx 2318 leal BORINGSSL_function_hit+3-.L109pic_for_function_hit(%ebx),%ebx 2319 movl $1,%edx 2320 movb %dl,(%ebx) 2321 popl %edx 2322 popl %ebx 2323#endif 2324 movl 4(%esp),%eax 2325 movl 8(%esp),%ecx 2326 movl 12(%esp),%edx 2327 pushl %ebx 2328 call .L110pic 2329.L110pic: 2330 popl %ebx 2331 leal .Lkey_const-.L110pic(%ebx),%ebx 2332 movups (%eax),%xmm0 2333 xorps %xmm4,%xmm4 2334 leal 16(%edx),%edx 2335 cmpl $256,%ecx 2336 je .L11114rounds_alt 2337 cmpl $192,%ecx 2338 je .L11212rounds_alt 2339 cmpl $128,%ecx 2340 jne .L113bad_keybits 2341.align 16 2342.L11410rounds_alt: 2343 movdqa (%ebx),%xmm5 2344 movl $8,%ecx 2345 movdqa 32(%ebx),%xmm4 2346 movdqa %xmm0,%xmm2 2347 movdqu %xmm0,-16(%edx) 2348.L115loop_key128: 2349.byte 102,15,56,0,197 2350.byte 102,15,56,221,196 2351 pslld $1,%xmm4 2352 leal 16(%edx),%edx 2353 movdqa %xmm2,%xmm3 2354 pslldq $4,%xmm2 2355 pxor %xmm2,%xmm3 2356 pslldq $4,%xmm2 2357 pxor %xmm2,%xmm3 2358 pslldq $4,%xmm2 2359 pxor %xmm3,%xmm2 2360 pxor %xmm2,%xmm0 2361 movdqu %xmm0,-16(%edx) 2362 movdqa %xmm0,%xmm2 2363 decl %ecx 2364 jnz .L115loop_key128 2365 movdqa 48(%ebx),%xmm4 2366.byte 102,15,56,0,197 2367.byte 102,15,56,221,196 2368 pslld $1,%xmm4 2369 movdqa %xmm2,%xmm3 2370 pslldq $4,%xmm2 2371 pxor %xmm2,%xmm3 2372 pslldq $4,%xmm2 2373 pxor %xmm2,%xmm3 2374 pslldq $4,%xmm2 2375 pxor %xmm3,%xmm2 2376 pxor %xmm2,%xmm0 2377 movdqu %xmm0,(%edx) 2378 movdqa %xmm0,%xmm2 2379.byte 102,15,56,0,197 2380.byte 102,15,56,221,196 2381 movdqa %xmm2,%xmm3 2382 pslldq $4,%xmm2 2383 pxor %xmm2,%xmm3 2384 pslldq $4,%xmm2 2385 pxor %xmm2,%xmm3 2386 pslldq $4,%xmm2 2387 pxor %xmm3,%xmm2 2388 pxor %xmm2,%xmm0 2389 movdqu %xmm0,16(%edx) 2390 movl $9,%ecx 2391 movl %ecx,96(%edx) 2392 jmp .L116good_key 2393.align 16 2394.L11212rounds_alt: 2395 movq 16(%eax),%xmm2 2396 movdqa 16(%ebx),%xmm5 2397 movdqa 32(%ebx),%xmm4 2398 movl $8,%ecx 2399 movdqu %xmm0,-16(%edx) 2400.L117loop_key192: 2401 movq %xmm2,(%edx) 2402 movdqa %xmm2,%xmm1 2403.byte 102,15,56,0,213 2404.byte 102,15,56,221,212 2405 pslld $1,%xmm4 2406 leal 24(%edx),%edx 2407 movdqa %xmm0,%xmm3 2408 pslldq $4,%xmm0 2409 pxor %xmm0,%xmm3 2410 pslldq $4,%xmm0 2411 pxor %xmm0,%xmm3 2412 pslldq $4,%xmm0 2413 pxor %xmm3,%xmm0 2414 pshufd $255,%xmm0,%xmm3 2415 pxor %xmm1,%xmm3 2416 pslldq $4,%xmm1 2417 pxor %xmm1,%xmm3 2418 pxor %xmm2,%xmm0 2419 pxor %xmm3,%xmm2 2420 movdqu %xmm0,-16(%edx) 2421 decl %ecx 2422 jnz .L117loop_key192 2423 movl $11,%ecx 2424 movl %ecx,32(%edx) 2425 jmp .L116good_key 2426.align 16 2427.L11114rounds_alt: 2428 movups 16(%eax),%xmm2 2429 leal 16(%edx),%edx 2430 movdqa (%ebx),%xmm5 2431 movdqa 32(%ebx),%xmm4 2432 movl $7,%ecx 2433 movdqu %xmm0,-32(%edx) 2434 movdqa %xmm2,%xmm1 2435 movdqu %xmm2,-16(%edx) 2436.L118loop_key256: 2437.byte 102,15,56,0,213 2438.byte 102,15,56,221,212 2439 movdqa %xmm0,%xmm3 2440 pslldq $4,%xmm0 2441 pxor %xmm0,%xmm3 2442 pslldq $4,%xmm0 2443 pxor %xmm0,%xmm3 2444 pslldq $4,%xmm0 2445 pxor %xmm3,%xmm0 2446 pslld $1,%xmm4 2447 pxor %xmm2,%xmm0 2448 movdqu %xmm0,(%edx) 2449 decl %ecx 2450 jz .L119done_key256 2451 pshufd $255,%xmm0,%xmm2 2452 pxor %xmm3,%xmm3 2453.byte 102,15,56,221,211 2454 movdqa %xmm1,%xmm3 2455 pslldq $4,%xmm1 2456 pxor %xmm1,%xmm3 2457 pslldq $4,%xmm1 2458 pxor %xmm1,%xmm3 2459 pslldq $4,%xmm1 2460 pxor %xmm3,%xmm1 2461 pxor %xmm1,%xmm2 2462 movdqu %xmm2,16(%edx) 2463 leal 32(%edx),%edx 2464 movdqa %xmm2,%xmm1 2465 jmp .L118loop_key256 2466.L119done_key256: 2467 movl $13,%ecx 2468 movl %ecx,16(%edx) 2469.L116good_key: 2470 pxor %xmm0,%xmm0 2471 pxor %xmm1,%xmm1 2472 pxor %xmm2,%xmm2 2473 pxor %xmm3,%xmm3 2474 pxor %xmm4,%xmm4 2475 pxor %xmm5,%xmm5 2476 xorl %eax,%eax 2477 popl %ebx 2478 ret 2479.align 4 2480.L113bad_keybits: 2481 pxor %xmm0,%xmm0 2482 movl $-2,%eax 2483 popl %ebx 2484 ret 2485.size aes_hw_set_encrypt_key_alt,.-.L_aes_hw_set_encrypt_key_alt_begin 2486.globl aes_hw_encrypt_key_to_decrypt_key 2487.hidden aes_hw_encrypt_key_to_decrypt_key 2488.type aes_hw_encrypt_key_to_decrypt_key,@function 2489.align 16 2490aes_hw_encrypt_key_to_decrypt_key: 2491.L_aes_hw_encrypt_key_to_decrypt_key_begin: 2492 movl 4(%esp),%edx 2493 movl 240(%edx),%ecx 2494 shll $4,%ecx 2495 leal 16(%edx,%ecx,1),%eax 2496 movups (%edx),%xmm0 2497 movups (%eax),%xmm1 2498 movups %xmm0,(%eax) 2499 movups %xmm1,(%edx) 2500 leal 16(%edx),%edx 2501 leal -16(%eax),%eax 2502.L120dec_key_inverse: 2503 movups (%edx),%xmm0 2504 movups (%eax),%xmm1 2505.byte 102,15,56,219,192 2506.byte 102,15,56,219,201 2507 leal 16(%edx),%edx 2508 leal -16(%eax),%eax 2509 movups %xmm0,16(%eax) 2510 movups %xmm1,-16(%edx) 2511 cmpl %edx,%eax 2512 ja .L120dec_key_inverse 2513 movups (%edx),%xmm0 2514.byte 102,15,56,219,192 2515 movups %xmm0,(%edx) 2516 pxor %xmm0,%xmm0 2517 pxor %xmm1,%xmm1 2518 ret 2519.size aes_hw_encrypt_key_to_decrypt_key,.-.L_aes_hw_encrypt_key_to_decrypt_key_begin 2520.align 64 2521.Lkey_const: 2522.long 202313229,202313229,202313229,202313229 2523.long 67569157,67569157,67569157,67569157 2524.long 1,1,1,1 2525.long 27,27,27,27 2526.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 2527.byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 2528.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 2529.byte 115,108,46,111,114,103,62,0 2530#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 2531