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