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