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