1// This file is generated from a similarly-named Perl script in the BoringSSL 2// source tree. Do not edit by hand. 3 4#if defined(__has_feature) 5#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) 6#define OPENSSL_NO_ASM 7#endif 8#endif 9 10#if !defined(OPENSSL_NO_ASM) && defined(__i386__) && defined(__APPLE__) 11#if defined(BORINGSSL_PREFIX) 12#include <boringssl_prefix_symbols_asm.h> 13#endif 14.text 15#ifdef BORINGSSL_DISPATCH_TEST 16#endif 17.align 6,0x90 18L_vpaes_consts: 19.long 218628480,235210255,168496130,67568393 20.long 252381056,17041926,33884169,51187212 21.long 252645135,252645135,252645135,252645135 22.long 1512730624,3266504856,1377990664,3401244816 23.long 830229760,1275146365,2969422977,3447763452 24.long 3411033600,2979783055,338359620,2782886510 25.long 4209124096,907596821,221174255,1006095553 26.long 191964160,3799684038,3164090317,1589111125 27.long 182528256,1777043520,2877432650,3265356744 28.long 1874708224,3503451415,3305285752,363511674 29.long 1606117888,3487855781,1093350906,2384367825 30.long 197121,67569157,134941193,202313229 31.long 67569157,134941193,202313229,197121 32.long 134941193,202313229,197121,67569157 33.long 202313229,197121,67569157,134941193 34.long 33619971,100992007,168364043,235736079 35.long 235736079,33619971,100992007,168364043 36.long 168364043,235736079,33619971,100992007 37.long 100992007,168364043,235736079,33619971 38.long 50462976,117835012,185207048,252579084 39.long 252314880,51251460,117574920,184942860 40.long 184682752,252054788,50987272,118359308 41.long 118099200,185467140,251790600,50727180 42.long 2946363062,528716217,1300004225,1881839624 43.long 1532713819,1532713819,1532713819,1532713819 44.long 3602276352,4288629033,3737020424,4153884961 45.long 1354558464,32357713,2958822624,3775749553 46.long 1201988352,132424512,1572796698,503232858 47.long 2213177600,1597421020,4103937655,675398315 48.long 2749646592,4273543773,1511898873,121693092 49.long 3040248576,1103263732,2871565598,1608280554 50.long 2236667136,2588920351,482954393,64377734 51.long 3069987328,291237287,2117370568,3650299247 52.long 533321216,3573750986,2572112006,1401264716 53.long 1339849704,2721158661,548607111,3445553514 54.long 2128193280,3054596040,2183486460,1257083700 55.long 655635200,1165381986,3923443150,2344132524 56.long 190078720,256924420,290342170,357187870 57.long 1610966272,2263057382,4103205268,309794674 58.long 2592527872,2233205587,1335446729,3402964816 59.long 3973531904,3225098121,3002836325,1918774430 60.long 3870401024,2102906079,2284471353,4117666579 61.long 617007872,1021508343,366931923,691083277 62.long 2528395776,3491914898,2968704004,1613121270 63.long 3445188352,3247741094,844474987,4093578302 64.long 651481088,1190302358,1689581232,574775300 65.long 4289380608,206939853,2555985458,2489840491 66.long 2130264064,327674451,3566485037,3349835193 67.long 2470714624,316102159,3636825756,3393945945 68.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 69.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83 70.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117 71.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105 72.byte 118,101,114,115,105,116,121,41,0 73.align 6,0x90 74.private_extern __vpaes_preheat 75.align 4 76__vpaes_preheat: 77 addl (%esp),%ebp 78 movdqa -48(%ebp),%xmm7 79 movdqa -16(%ebp),%xmm6 80 ret 81.private_extern __vpaes_encrypt_core 82.align 4 83__vpaes_encrypt_core: 84 movl $16,%ecx 85 movl 240(%edx),%eax 86 movdqa %xmm6,%xmm1 87 movdqa (%ebp),%xmm2 88 pandn %xmm0,%xmm1 89 pand %xmm6,%xmm0 90 movdqu (%edx),%xmm5 91.byte 102,15,56,0,208 92 movdqa 16(%ebp),%xmm0 93 pxor %xmm5,%xmm2 94 psrld $4,%xmm1 95 addl $16,%edx 96.byte 102,15,56,0,193 97 leal 192(%ebp),%ebx 98 pxor %xmm2,%xmm0 99 jmp L000enc_entry 100.align 4,0x90 101L001enc_loop: 102 movdqa 32(%ebp),%xmm4 103 movdqa 48(%ebp),%xmm0 104.byte 102,15,56,0,226 105.byte 102,15,56,0,195 106 pxor %xmm5,%xmm4 107 movdqa 64(%ebp),%xmm5 108 pxor %xmm4,%xmm0 109 movdqa -64(%ebx,%ecx,1),%xmm1 110.byte 102,15,56,0,234 111 movdqa 80(%ebp),%xmm2 112 movdqa (%ebx,%ecx,1),%xmm4 113.byte 102,15,56,0,211 114 movdqa %xmm0,%xmm3 115 pxor %xmm5,%xmm2 116.byte 102,15,56,0,193 117 addl $16,%edx 118 pxor %xmm2,%xmm0 119.byte 102,15,56,0,220 120 addl $16,%ecx 121 pxor %xmm0,%xmm3 122.byte 102,15,56,0,193 123 andl $48,%ecx 124 subl $1,%eax 125 pxor %xmm3,%xmm0 126L000enc_entry: 127 movdqa %xmm6,%xmm1 128 movdqa -32(%ebp),%xmm5 129 pandn %xmm0,%xmm1 130 psrld $4,%xmm1 131 pand %xmm6,%xmm0 132.byte 102,15,56,0,232 133 movdqa %xmm7,%xmm3 134 pxor %xmm1,%xmm0 135.byte 102,15,56,0,217 136 movdqa %xmm7,%xmm4 137 pxor %xmm5,%xmm3 138.byte 102,15,56,0,224 139 movdqa %xmm7,%xmm2 140 pxor %xmm5,%xmm4 141.byte 102,15,56,0,211 142 movdqa %xmm7,%xmm3 143 pxor %xmm0,%xmm2 144.byte 102,15,56,0,220 145 movdqu (%edx),%xmm5 146 pxor %xmm1,%xmm3 147 jnz L001enc_loop 148 movdqa 96(%ebp),%xmm4 149 movdqa 112(%ebp),%xmm0 150.byte 102,15,56,0,226 151 pxor %xmm5,%xmm4 152.byte 102,15,56,0,195 153 movdqa 64(%ebx,%ecx,1),%xmm1 154 pxor %xmm4,%xmm0 155.byte 102,15,56,0,193 156 ret 157.private_extern __vpaes_decrypt_core 158.align 4 159__vpaes_decrypt_core: 160 leal 608(%ebp),%ebx 161 movl 240(%edx),%eax 162 movdqa %xmm6,%xmm1 163 movdqa -64(%ebx),%xmm2 164 pandn %xmm0,%xmm1 165 movl %eax,%ecx 166 psrld $4,%xmm1 167 movdqu (%edx),%xmm5 168 shll $4,%ecx 169 pand %xmm6,%xmm0 170.byte 102,15,56,0,208 171 movdqa -48(%ebx),%xmm0 172 xorl $48,%ecx 173.byte 102,15,56,0,193 174 andl $48,%ecx 175 pxor %xmm5,%xmm2 176 movdqa 176(%ebp),%xmm5 177 pxor %xmm2,%xmm0 178 addl $16,%edx 179 leal -352(%ebx,%ecx,1),%ecx 180 jmp L002dec_entry 181.align 4,0x90 182L003dec_loop: 183 movdqa -32(%ebx),%xmm4 184 movdqa -16(%ebx),%xmm1 185.byte 102,15,56,0,226 186.byte 102,15,56,0,203 187 pxor %xmm4,%xmm0 188 movdqa (%ebx),%xmm4 189 pxor %xmm1,%xmm0 190 movdqa 16(%ebx),%xmm1 191.byte 102,15,56,0,226 192.byte 102,15,56,0,197 193.byte 102,15,56,0,203 194 pxor %xmm4,%xmm0 195 movdqa 32(%ebx),%xmm4 196 pxor %xmm1,%xmm0 197 movdqa 48(%ebx),%xmm1 198.byte 102,15,56,0,226 199.byte 102,15,56,0,197 200.byte 102,15,56,0,203 201 pxor %xmm4,%xmm0 202 movdqa 64(%ebx),%xmm4 203 pxor %xmm1,%xmm0 204 movdqa 80(%ebx),%xmm1 205.byte 102,15,56,0,226 206.byte 102,15,56,0,197 207.byte 102,15,56,0,203 208 pxor %xmm4,%xmm0 209 addl $16,%edx 210.byte 102,15,58,15,237,12 211 pxor %xmm1,%xmm0 212 subl $1,%eax 213L002dec_entry: 214 movdqa %xmm6,%xmm1 215 movdqa -32(%ebp),%xmm2 216 pandn %xmm0,%xmm1 217 pand %xmm6,%xmm0 218 psrld $4,%xmm1 219.byte 102,15,56,0,208 220 movdqa %xmm7,%xmm3 221 pxor %xmm1,%xmm0 222.byte 102,15,56,0,217 223 movdqa %xmm7,%xmm4 224 pxor %xmm2,%xmm3 225.byte 102,15,56,0,224 226 pxor %xmm2,%xmm4 227 movdqa %xmm7,%xmm2 228.byte 102,15,56,0,211 229 movdqa %xmm7,%xmm3 230 pxor %xmm0,%xmm2 231.byte 102,15,56,0,220 232 movdqu (%edx),%xmm0 233 pxor %xmm1,%xmm3 234 jnz L003dec_loop 235 movdqa 96(%ebx),%xmm4 236.byte 102,15,56,0,226 237 pxor %xmm0,%xmm4 238 movdqa 112(%ebx),%xmm0 239 movdqa (%ecx),%xmm2 240.byte 102,15,56,0,195 241 pxor %xmm4,%xmm0 242.byte 102,15,56,0,194 243 ret 244.private_extern __vpaes_schedule_core 245.align 4 246__vpaes_schedule_core: 247 addl (%esp),%ebp 248 movdqu (%esi),%xmm0 249 movdqa 320(%ebp),%xmm2 250 movdqa %xmm0,%xmm3 251 leal (%ebp),%ebx 252 movdqa %xmm2,4(%esp) 253 call __vpaes_schedule_transform 254 movdqa %xmm0,%xmm7 255 testl %edi,%edi 256 jnz L004schedule_am_decrypting 257 movdqu %xmm0,(%edx) 258 jmp L005schedule_go 259L004schedule_am_decrypting: 260 movdqa 256(%ebp,%ecx,1),%xmm1 261.byte 102,15,56,0,217 262 movdqu %xmm3,(%edx) 263 xorl $48,%ecx 264L005schedule_go: 265 cmpl $192,%eax 266 ja L006schedule_256 267 je L007schedule_192 268L008schedule_128: 269 movl $10,%eax 270L009loop_schedule_128: 271 call __vpaes_schedule_round 272 decl %eax 273 jz L010schedule_mangle_last 274 call __vpaes_schedule_mangle 275 jmp L009loop_schedule_128 276.align 4,0x90 277L007schedule_192: 278 movdqu 8(%esi),%xmm0 279 call __vpaes_schedule_transform 280 movdqa %xmm0,%xmm6 281 pxor %xmm4,%xmm4 282 movhlps %xmm4,%xmm6 283 movl $4,%eax 284L011loop_schedule_192: 285 call __vpaes_schedule_round 286.byte 102,15,58,15,198,8 287 call __vpaes_schedule_mangle 288 call __vpaes_schedule_192_smear 289 call __vpaes_schedule_mangle 290 call __vpaes_schedule_round 291 decl %eax 292 jz L010schedule_mangle_last 293 call __vpaes_schedule_mangle 294 call __vpaes_schedule_192_smear 295 jmp L011loop_schedule_192 296.align 4,0x90 297L006schedule_256: 298 movdqu 16(%esi),%xmm0 299 call __vpaes_schedule_transform 300 movl $7,%eax 301L012loop_schedule_256: 302 call __vpaes_schedule_mangle 303 movdqa %xmm0,%xmm6 304 call __vpaes_schedule_round 305 decl %eax 306 jz L010schedule_mangle_last 307 call __vpaes_schedule_mangle 308 pshufd $255,%xmm0,%xmm0 309 movdqa %xmm7,20(%esp) 310 movdqa %xmm6,%xmm7 311 call L_vpaes_schedule_low_round 312 movdqa 20(%esp),%xmm7 313 jmp L012loop_schedule_256 314.align 4,0x90 315L010schedule_mangle_last: 316 leal 384(%ebp),%ebx 317 testl %edi,%edi 318 jnz L013schedule_mangle_last_dec 319 movdqa 256(%ebp,%ecx,1),%xmm1 320.byte 102,15,56,0,193 321 leal 352(%ebp),%ebx 322 addl $32,%edx 323L013schedule_mangle_last_dec: 324 addl $-16,%edx 325 pxor 336(%ebp),%xmm0 326 call __vpaes_schedule_transform 327 movdqu %xmm0,(%edx) 328 pxor %xmm0,%xmm0 329 pxor %xmm1,%xmm1 330 pxor %xmm2,%xmm2 331 pxor %xmm3,%xmm3 332 pxor %xmm4,%xmm4 333 pxor %xmm5,%xmm5 334 pxor %xmm6,%xmm6 335 pxor %xmm7,%xmm7 336 ret 337.private_extern __vpaes_schedule_192_smear 338.align 4 339__vpaes_schedule_192_smear: 340 pshufd $128,%xmm6,%xmm1 341 pshufd $254,%xmm7,%xmm0 342 pxor %xmm1,%xmm6 343 pxor %xmm1,%xmm1 344 pxor %xmm0,%xmm6 345 movdqa %xmm6,%xmm0 346 movhlps %xmm1,%xmm6 347 ret 348.private_extern __vpaes_schedule_round 349.align 4 350__vpaes_schedule_round: 351 movdqa 8(%esp),%xmm2 352 pxor %xmm1,%xmm1 353.byte 102,15,58,15,202,15 354.byte 102,15,58,15,210,15 355 pxor %xmm1,%xmm7 356 pshufd $255,%xmm0,%xmm0 357.byte 102,15,58,15,192,1 358 movdqa %xmm2,8(%esp) 359L_vpaes_schedule_low_round: 360 movdqa %xmm7,%xmm1 361 pslldq $4,%xmm7 362 pxor %xmm1,%xmm7 363 movdqa %xmm7,%xmm1 364 pslldq $8,%xmm7 365 pxor %xmm1,%xmm7 366 pxor 336(%ebp),%xmm7 367 movdqa -16(%ebp),%xmm4 368 movdqa -48(%ebp),%xmm5 369 movdqa %xmm4,%xmm1 370 pandn %xmm0,%xmm1 371 psrld $4,%xmm1 372 pand %xmm4,%xmm0 373 movdqa -32(%ebp),%xmm2 374.byte 102,15,56,0,208 375 pxor %xmm1,%xmm0 376 movdqa %xmm5,%xmm3 377.byte 102,15,56,0,217 378 pxor %xmm2,%xmm3 379 movdqa %xmm5,%xmm4 380.byte 102,15,56,0,224 381 pxor %xmm2,%xmm4 382 movdqa %xmm5,%xmm2 383.byte 102,15,56,0,211 384 pxor %xmm0,%xmm2 385 movdqa %xmm5,%xmm3 386.byte 102,15,56,0,220 387 pxor %xmm1,%xmm3 388 movdqa 32(%ebp),%xmm4 389.byte 102,15,56,0,226 390 movdqa 48(%ebp),%xmm0 391.byte 102,15,56,0,195 392 pxor %xmm4,%xmm0 393 pxor %xmm7,%xmm0 394 movdqa %xmm0,%xmm7 395 ret 396.private_extern __vpaes_schedule_transform 397.align 4 398__vpaes_schedule_transform: 399 movdqa -16(%ebp),%xmm2 400 movdqa %xmm2,%xmm1 401 pandn %xmm0,%xmm1 402 psrld $4,%xmm1 403 pand %xmm2,%xmm0 404 movdqa (%ebx),%xmm2 405.byte 102,15,56,0,208 406 movdqa 16(%ebx),%xmm0 407.byte 102,15,56,0,193 408 pxor %xmm2,%xmm0 409 ret 410.private_extern __vpaes_schedule_mangle 411.align 4 412__vpaes_schedule_mangle: 413 movdqa %xmm0,%xmm4 414 movdqa 128(%ebp),%xmm5 415 testl %edi,%edi 416 jnz L014schedule_mangle_dec 417 addl $16,%edx 418 pxor 336(%ebp),%xmm4 419.byte 102,15,56,0,229 420 movdqa %xmm4,%xmm3 421.byte 102,15,56,0,229 422 pxor %xmm4,%xmm3 423.byte 102,15,56,0,229 424 pxor %xmm4,%xmm3 425 jmp L015schedule_mangle_both 426.align 4,0x90 427L014schedule_mangle_dec: 428 movdqa -16(%ebp),%xmm2 429 leal 416(%ebp),%esi 430 movdqa %xmm2,%xmm1 431 pandn %xmm4,%xmm1 432 psrld $4,%xmm1 433 pand %xmm2,%xmm4 434 movdqa (%esi),%xmm2 435.byte 102,15,56,0,212 436 movdqa 16(%esi),%xmm3 437.byte 102,15,56,0,217 438 pxor %xmm2,%xmm3 439.byte 102,15,56,0,221 440 movdqa 32(%esi),%xmm2 441.byte 102,15,56,0,212 442 pxor %xmm3,%xmm2 443 movdqa 48(%esi),%xmm3 444.byte 102,15,56,0,217 445 pxor %xmm2,%xmm3 446.byte 102,15,56,0,221 447 movdqa 64(%esi),%xmm2 448.byte 102,15,56,0,212 449 pxor %xmm3,%xmm2 450 movdqa 80(%esi),%xmm3 451.byte 102,15,56,0,217 452 pxor %xmm2,%xmm3 453.byte 102,15,56,0,221 454 movdqa 96(%esi),%xmm2 455.byte 102,15,56,0,212 456 pxor %xmm3,%xmm2 457 movdqa 112(%esi),%xmm3 458.byte 102,15,56,0,217 459 pxor %xmm2,%xmm3 460 addl $-16,%edx 461L015schedule_mangle_both: 462 movdqa 256(%ebp,%ecx,1),%xmm1 463.byte 102,15,56,0,217 464 addl $-16,%ecx 465 andl $48,%ecx 466 movdqu %xmm3,(%edx) 467 ret 468.globl _vpaes_set_encrypt_key 469.private_extern _vpaes_set_encrypt_key 470.align 4 471_vpaes_set_encrypt_key: 472L_vpaes_set_encrypt_key_begin: 473 pushl %ebp 474 pushl %ebx 475 pushl %esi 476 pushl %edi 477#ifdef BORINGSSL_DISPATCH_TEST 478 pushl %ebx 479 pushl %edx 480 call L016pic 481L016pic: 482 popl %ebx 483 leal _BORINGSSL_function_hit+5-L016pic(%ebx),%ebx 484 movl $1,%edx 485 movb %dl,(%ebx) 486 popl %edx 487 popl %ebx 488#endif 489 movl 20(%esp),%esi 490 leal -56(%esp),%ebx 491 movl 24(%esp),%eax 492 andl $-16,%ebx 493 movl 28(%esp),%edx 494 xchgl %esp,%ebx 495 movl %ebx,48(%esp) 496 movl %eax,%ebx 497 shrl $5,%ebx 498 addl $5,%ebx 499 movl %ebx,240(%edx) 500 movl $48,%ecx 501 movl $0,%edi 502 leal L_vpaes_consts+0x30-L017pic_point,%ebp 503 call __vpaes_schedule_core 504L017pic_point: 505 movl 48(%esp),%esp 506 xorl %eax,%eax 507 popl %edi 508 popl %esi 509 popl %ebx 510 popl %ebp 511 ret 512.globl _vpaes_set_decrypt_key 513.private_extern _vpaes_set_decrypt_key 514.align 4 515_vpaes_set_decrypt_key: 516L_vpaes_set_decrypt_key_begin: 517 pushl %ebp 518 pushl %ebx 519 pushl %esi 520 pushl %edi 521 movl 20(%esp),%esi 522 leal -56(%esp),%ebx 523 movl 24(%esp),%eax 524 andl $-16,%ebx 525 movl 28(%esp),%edx 526 xchgl %esp,%ebx 527 movl %ebx,48(%esp) 528 movl %eax,%ebx 529 shrl $5,%ebx 530 addl $5,%ebx 531 movl %ebx,240(%edx) 532 shll $4,%ebx 533 leal 16(%edx,%ebx,1),%edx 534 movl $1,%edi 535 movl %eax,%ecx 536 shrl $1,%ecx 537 andl $32,%ecx 538 xorl $32,%ecx 539 leal L_vpaes_consts+0x30-L018pic_point,%ebp 540 call __vpaes_schedule_core 541L018pic_point: 542 movl 48(%esp),%esp 543 xorl %eax,%eax 544 popl %edi 545 popl %esi 546 popl %ebx 547 popl %ebp 548 ret 549.globl _vpaes_encrypt 550.private_extern _vpaes_encrypt 551.align 4 552_vpaes_encrypt: 553L_vpaes_encrypt_begin: 554 pushl %ebp 555 pushl %ebx 556 pushl %esi 557 pushl %edi 558#ifdef BORINGSSL_DISPATCH_TEST 559 pushl %ebx 560 pushl %edx 561 call L019pic 562L019pic: 563 popl %ebx 564 leal _BORINGSSL_function_hit+4-L019pic(%ebx),%ebx 565 movl $1,%edx 566 movb %dl,(%ebx) 567 popl %edx 568 popl %ebx 569#endif 570 leal L_vpaes_consts+0x30-L020pic_point,%ebp 571 call __vpaes_preheat 572L020pic_point: 573 movl 20(%esp),%esi 574 leal -56(%esp),%ebx 575 movl 24(%esp),%edi 576 andl $-16,%ebx 577 movl 28(%esp),%edx 578 xchgl %esp,%ebx 579 movl %ebx,48(%esp) 580 movdqu (%esi),%xmm0 581 call __vpaes_encrypt_core 582 movdqu %xmm0,(%edi) 583 movl 48(%esp),%esp 584 popl %edi 585 popl %esi 586 popl %ebx 587 popl %ebp 588 ret 589.globl _vpaes_decrypt 590.private_extern _vpaes_decrypt 591.align 4 592_vpaes_decrypt: 593L_vpaes_decrypt_begin: 594 pushl %ebp 595 pushl %ebx 596 pushl %esi 597 pushl %edi 598 leal L_vpaes_consts+0x30-L021pic_point,%ebp 599 call __vpaes_preheat 600L021pic_point: 601 movl 20(%esp),%esi 602 leal -56(%esp),%ebx 603 movl 24(%esp),%edi 604 andl $-16,%ebx 605 movl 28(%esp),%edx 606 xchgl %esp,%ebx 607 movl %ebx,48(%esp) 608 movdqu (%esi),%xmm0 609 call __vpaes_decrypt_core 610 movdqu %xmm0,(%edi) 611 movl 48(%esp),%esp 612 popl %edi 613 popl %esi 614 popl %ebx 615 popl %ebp 616 ret 617.globl _vpaes_cbc_encrypt 618.private_extern _vpaes_cbc_encrypt 619.align 4 620_vpaes_cbc_encrypt: 621L_vpaes_cbc_encrypt_begin: 622 pushl %ebp 623 pushl %ebx 624 pushl %esi 625 pushl %edi 626 movl 20(%esp),%esi 627 movl 24(%esp),%edi 628 movl 28(%esp),%eax 629 movl 32(%esp),%edx 630 subl $16,%eax 631 jc L022cbc_abort 632 leal -56(%esp),%ebx 633 movl 36(%esp),%ebp 634 andl $-16,%ebx 635 movl 40(%esp),%ecx 636 xchgl %esp,%ebx 637 movdqu (%ebp),%xmm1 638 subl %esi,%edi 639 movl %ebx,48(%esp) 640 movl %edi,(%esp) 641 movl %edx,4(%esp) 642 movl %ebp,8(%esp) 643 movl %eax,%edi 644 leal L_vpaes_consts+0x30-L023pic_point,%ebp 645 call __vpaes_preheat 646L023pic_point: 647 cmpl $0,%ecx 648 je L024cbc_dec_loop 649 jmp L025cbc_enc_loop 650.align 4,0x90 651L025cbc_enc_loop: 652 movdqu (%esi),%xmm0 653 pxor %xmm1,%xmm0 654 call __vpaes_encrypt_core 655 movl (%esp),%ebx 656 movl 4(%esp),%edx 657 movdqa %xmm0,%xmm1 658 movdqu %xmm0,(%ebx,%esi,1) 659 leal 16(%esi),%esi 660 subl $16,%edi 661 jnc L025cbc_enc_loop 662 jmp L026cbc_done 663.align 4,0x90 664L024cbc_dec_loop: 665 movdqu (%esi),%xmm0 666 movdqa %xmm1,16(%esp) 667 movdqa %xmm0,32(%esp) 668 call __vpaes_decrypt_core 669 movl (%esp),%ebx 670 movl 4(%esp),%edx 671 pxor 16(%esp),%xmm0 672 movdqa 32(%esp),%xmm1 673 movdqu %xmm0,(%ebx,%esi,1) 674 leal 16(%esi),%esi 675 subl $16,%edi 676 jnc L024cbc_dec_loop 677L026cbc_done: 678 movl 8(%esp),%ebx 679 movl 48(%esp),%esp 680 movdqu %xmm1,(%ebx) 681L022cbc_abort: 682 popl %edi 683 popl %esi 684 popl %ebx 685 popl %ebp 686 ret 687#endif // !defined(OPENSSL_NO_ASM) && defined(__i386__) && defined(__APPLE__) 688#if defined(__ELF__) 689// See https://www.airs.com/blog/archives/518. 690.section .note.GNU-stack,"",%progbits 691#endif 692