1 .text 2 .type _x86_64_AES_encrypt,@function 3 .align 16 4 _x86_64_AES_encrypt: 5 xorl 0(%r15),%eax 6 xorl 4(%r15),%ebx 7 xorl 8(%r15),%ecx 8 xorl 12(%r15),%edx 9 10 movl 240(%r15),%r13d 11 subl $1,%r13d 12 jmp .Lenc_loop 13 .align 16 14 .Lenc_loop: 15 16 movzbl %al,%esi 17 movzbl %bl,%edi 18 movzbl %cl,%ebp 19 movl 0(%r14,%rsi,8),%r10d 20 movl 0(%r14,%rdi,8),%r11d 21 movl 0(%r14,%rbp,8),%r12d 22 23 movzbl %bh,%esi 24 movzbl %ch,%edi 25 movzbl %dl,%ebp 26 xorl 3(%r14,%rsi,8),%r10d 27 xorl 3(%r14,%rdi,8),%r11d 28 movl 0(%r14,%rbp,8),%r8d 29 30 movzbl %dh,%esi 31 shrl $16,%ecx 32 movzbl %ah,%ebp 33 xorl 3(%r14,%rsi,8),%r12d 34 shrl $16,%edx 35 xorl 3(%r14,%rbp,8),%r8d 36 37 shrl $16,%ebx 38 leaq 16(%r15),%r15 39 shrl $16,%eax 40 41 movzbl %cl,%esi 42 movzbl %dl,%edi 43 movzbl %al,%ebp 44 xorl 2(%r14,%rsi,8),%r10d 45 xorl 2(%r14,%rdi,8),%r11d 46 xorl 2(%r14,%rbp,8),%r12d 47 48 movzbl %dh,%esi 49 movzbl %ah,%edi 50 movzbl %bl,%ebp 51 xorl 1(%r14,%rsi,8),%r10d 52 xorl 1(%r14,%rdi,8),%r11d 53 xorl 2(%r14,%rbp,8),%r8d 54 55 movl 12(%r15),%edx 56 movzbl %bh,%edi 57 movzbl %ch,%ebp 58 movl 0(%r15),%eax 59 xorl 1(%r14,%rdi,8),%r12d 60 xorl 1(%r14,%rbp,8),%r8d 61 62 movl 4(%r15),%ebx 63 movl 8(%r15),%ecx 64 xorl %r10d,%eax 65 xorl %r11d,%ebx 66 xorl %r12d,%ecx 67 xorl %r8d,%edx 68 subl $1,%r13d 69 jnz .Lenc_loop 70 movzbl %al,%esi 71 movzbl %bl,%edi 72 movzbl %cl,%ebp 73 movzbl 2(%r14,%rsi,8),%r10d 74 movzbl 2(%r14,%rdi,8),%r11d 75 movzbl 2(%r14,%rbp,8),%r12d 76 77 movzbl %dl,%esi 78 movzbl %bh,%edi 79 movzbl %ch,%ebp 80 movzbl 2(%r14,%rsi,8),%r8d 81 movl 0(%r14,%rdi,8),%edi 82 movl 0(%r14,%rbp,8),%ebp 83 84 andl $65280,%edi 85 andl $65280,%ebp 86 87 xorl %edi,%r10d 88 xorl %ebp,%r11d 89 shrl $16,%ecx 90 91 movzbl %dh,%esi 92 movzbl %ah,%edi 93 shrl $16,%edx 94 movl 0(%r14,%rsi,8),%esi 95 movl 0(%r14,%rdi,8),%edi 96 97 andl $65280,%esi 98 andl $65280,%edi 99 shrl $16,%ebx 100 xorl %esi,%r12d 101 xorl %edi,%r8d 102 shrl $16,%eax 103 104 movzbl %cl,%esi 105 movzbl %dl,%edi 106 movzbl %al,%ebp 107 movl 0(%r14,%rsi,8),%esi 108 movl 0(%r14,%rdi,8),%edi 109 movl 0(%r14,%rbp,8),%ebp 110 111 andl $16711680,%esi 112 andl $16711680,%edi 113 andl $16711680,%ebp 114 115 xorl %esi,%r10d 116 xorl %edi,%r11d 117 xorl %ebp,%r12d 118 119 movzbl %bl,%esi 120 movzbl %dh,%edi 121 movzbl %ah,%ebp 122 movl 0(%r14,%rsi,8),%esi 123 movl 2(%r14,%rdi,8),%edi 124 movl 2(%r14,%rbp,8),%ebp 125 126 andl $16711680,%esi 127 andl $4278190080,%edi 128 andl $4278190080,%ebp 129 130 xorl %esi,%r8d 131 xorl %edi,%r10d 132 xorl %ebp,%r11d 133 134 movzbl %bh,%esi 135 movzbl %ch,%edi 136 movl 16+12(%r15),%edx 137 movl 2(%r14,%rsi,8),%esi 138 movl 2(%r14,%rdi,8),%edi 139 movl 16+0(%r15),%eax 140 141 andl $4278190080,%esi 142 andl $4278190080,%edi 143 144 xorl %esi,%r12d 145 xorl %edi,%r8d 146 147 movl 16+4(%r15),%ebx 148 movl 16+8(%r15),%ecx 149 xorl %r10d,%eax 150 xorl %r11d,%ebx 151 xorl %r12d,%ecx 152 xorl %r8d,%edx 153 .byte 0xf3,0xc3 154 .size _x86_64_AES_encrypt,.-_x86_64_AES_encrypt 155 .type _x86_64_AES_encrypt_compact,@function 156 .align 16 157 _x86_64_AES_encrypt_compact: 158 leaq 128(%r14),%r8 159 movl 0-128(%r8),%edi 160 movl 32-128(%r8),%ebp 161 movl 64-128(%r8),%r10d 162 movl 96-128(%r8),%r11d 163 movl 128-128(%r8),%edi 164 movl 160-128(%r8),%ebp 165 movl 192-128(%r8),%r10d 166 movl 224-128(%r8),%r11d 167 jmp .Lenc_loop_compact 168 .align 16 169 .Lenc_loop_compact: 170 xorl 0(%r15),%eax 171 xorl 4(%r15),%ebx 172 xorl 8(%r15),%ecx 173 xorl 12(%r15),%edx 174 leaq 16(%r15),%r15 175 movzbl %al,%r10d 176 movzbl %bl,%r11d 177 movzbl %cl,%r12d 178 movzbl (%r14,%r10,1),%r10d 179 movzbl (%r14,%r11,1),%r11d 180 movzbl (%r14,%r12,1),%r12d 181 182 movzbl %dl,%r8d 183 movzbl %bh,%esi 184 movzbl %ch,%edi 185 movzbl (%r14,%r8,1),%r8d 186 movzbl (%r14,%rsi,1),%r9d 187 movzbl (%r14,%rdi,1),%r13d 188 189 movzbl %dh,%ebp 190 movzbl %ah,%esi 191 shrl $16,%ecx 192 movzbl (%r14,%rbp,1),%ebp 193 movzbl (%r14,%rsi,1),%esi 194 shrl $16,%edx 195 196 movzbl %cl,%edi 197 shll $8,%r9d 198 shll $8,%r13d 199 movzbl (%r14,%rdi,1),%edi 200 xorl %r9d,%r10d 201 xorl %r13d,%r11d 202 203 movzbl %dl,%r9d 204 shrl $16,%eax 205 shrl $16,%ebx 206 movzbl %al,%r13d 207 shll $8,%ebp 208 shll $8,%esi 209 movzbl (%r14,%r9,1),%r9d 210 movzbl (%r14,%r13,1),%r13d 211 xorl %ebp,%r12d 212 xorl %esi,%r8d 213 214 movzbl %bl,%ebp 215 movzbl %dh,%esi 216 shll $16,%edi 217 movzbl (%r14,%rbp,1),%ebp 218 movzbl (%r14,%rsi,1),%esi 219 xorl %edi,%r10d 220 221 movzbl %ah,%edi 222 shrl $8,%ecx 223 shrl $8,%ebx 224 movzbl (%r14,%rdi,1),%edi 225 movzbl (%r14,%rcx,1),%edx 226 movzbl (%r14,%rbx,1),%ecx 227 shll $16,%r9d 228 shll $16,%r13d 229 shll $16,%ebp 230 xorl %r9d,%r11d 231 xorl %r13d,%r12d 232 xorl %ebp,%r8d 233 234 shll $24,%esi 235 shll $24,%edi 236 shll $24,%edx 237 xorl %esi,%r10d 238 shll $24,%ecx 239 xorl %edi,%r11d 240 movl %r10d,%eax 241 movl %r11d,%ebx 242 xorl %r12d,%ecx 243 xorl %r8d,%edx 244 cmpq 16(%rsp),%r15 245 je .Lenc_compact_done 246 movl %eax,%esi 247 movl %ebx,%edi 248 andl $2155905152,%esi 249 andl $2155905152,%edi 250 movl %esi,%r10d 251 movl %edi,%r11d 252 shrl $7,%r10d 253 leal (%rax,%rax,1),%r8d 254 shrl $7,%r11d 255 leal (%rbx,%rbx,1),%r9d 256 subl %r10d,%esi 257 subl %r11d,%edi 258 andl $4278124286,%r8d 259 andl $4278124286,%r9d 260 andl $454761243,%esi 261 andl $454761243,%edi 262 movl %eax,%r10d 263 movl %ebx,%r11d 264 xorl %esi,%r8d 265 xorl %edi,%r9d 266 267 xorl %r8d,%eax 268 xorl %r9d,%ebx 269 movl %ecx,%esi 270 movl %edx,%edi 271 roll $24,%eax 272 roll $24,%ebx 273 andl $2155905152,%esi 274 andl $2155905152,%edi 275 xorl %r8d,%eax 276 xorl %r9d,%ebx 277 movl %esi,%r12d 278 movl %edi,%ebp 279 rorl $16,%r10d 280 rorl $16,%r11d 281 shrl $7,%r12d 282 leal (%rcx,%rcx,1),%r8d 283 xorl %r10d,%eax 284 xorl %r11d,%ebx 285 shrl $7,%ebp 286 leal (%rdx,%rdx,1),%r9d 287 rorl $8,%r10d 288 rorl $8,%r11d 289 subl %r12d,%esi 290 subl %ebp,%edi 291 xorl %r10d,%eax 292 xorl %r11d,%ebx 293 294 andl $4278124286,%r8d 295 andl $4278124286,%r9d 296 andl $454761243,%esi 297 andl $454761243,%edi 298 movl %ecx,%r12d 299 movl %edx,%ebp 300 xorl %esi,%r8d 301 xorl %edi,%r9d 302 303 xorl %r8d,%ecx 304 xorl %r9d,%edx 305 roll $24,%ecx 306 roll $24,%edx 307 xorl %r8d,%ecx 308 xorl %r9d,%edx 309 movl 0(%r14),%esi 310 rorl $16,%r12d 311 rorl $16,%ebp 312 movl 64(%r14),%edi 313 xorl %r12d,%ecx 314 xorl %ebp,%edx 315 movl 128(%r14),%r8d 316 rorl $8,%r12d 317 rorl $8,%ebp 318 movl 192(%r14),%r9d 319 xorl %r12d,%ecx 320 xorl %ebp,%edx 321 jmp .Lenc_loop_compact 322 .align 16 323 .Lenc_compact_done: 324 xorl 0(%r15),%eax 325 xorl 4(%r15),%ebx 326 xorl 8(%r15),%ecx 327 xorl 12(%r15),%edx 328 .byte 0xf3,0xc3 329 .size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact 330 .globl AES_encrypt 331 .type AES_encrypt,@function 332 .align 16 333 .globl asm_AES_encrypt 334 .hidden asm_AES_encrypt 335 asm_AES_encrypt: 336 AES_encrypt: 337 pushq %rbx 338 pushq %rbp 339 pushq %r12 340 pushq %r13 341 pushq %r14 342 pushq %r15 343 344 345 movq %rsp,%r10 346 leaq -63(%rdx),%rcx 347 andq $-64,%rsp 348 subq %rsp,%rcx 349 negq %rcx 350 andq $960,%rcx 351 subq %rcx,%rsp 352 subq $32,%rsp 353 354 movq %rsi,16(%rsp) 355 movq %r10,24(%rsp) 356 .Lenc_prologue: 357 358 movq %rdx,%r15 359 movl 240(%r15),%r13d 360 361 movl 0(%rdi),%eax 362 movl 4(%rdi),%ebx 363 movl 8(%rdi),%ecx 364 movl 12(%rdi),%edx 365 366 shll $4,%r13d 367 leaq (%r15,%r13,1),%rbp 368 movq %r15,(%rsp) 369 movq %rbp,8(%rsp) 370 371 372 leaq .LAES_Te+2048(%rip),%r14 373 leaq 768(%rsp),%rbp 374 subq %r14,%rbp 375 andq $768,%rbp 376 leaq (%r14,%rbp,1),%r14 377 378 call _x86_64_AES_encrypt_compact 379 380 movq 16(%rsp),%r9 381 movq 24(%rsp),%rsi 382 movl %eax,0(%r9) 383 movl %ebx,4(%r9) 384 movl %ecx,8(%r9) 385 movl %edx,12(%r9) 386 387 movq (%rsi),%r15 388 movq 8(%rsi),%r14 389 movq 16(%rsi),%r13 390 movq 24(%rsi),%r12 391 movq 32(%rsi),%rbp 392 movq 40(%rsi),%rbx 393 leaq 48(%rsi),%rsp 394 .Lenc_epilogue: 395 .byte 0xf3,0xc3 396 .size AES_encrypt,.-AES_encrypt 397 .type _x86_64_AES_decrypt,@function 398 .align 16 399 _x86_64_AES_decrypt: 400 xorl 0(%r15),%eax 401 xorl 4(%r15),%ebx 402 xorl 8(%r15),%ecx 403 xorl 12(%r15),%edx 404 405 movl 240(%r15),%r13d 406 subl $1,%r13d 407 jmp .Ldec_loop 408 .align 16 409 .Ldec_loop: 410 411 movzbl %al,%esi 412 movzbl %bl,%edi 413 movzbl %cl,%ebp 414 movl 0(%r14,%rsi,8),%r10d 415 movl 0(%r14,%rdi,8),%r11d 416 movl 0(%r14,%rbp,8),%r12d 417 418 movzbl %dh,%esi 419 movzbl %ah,%edi 420 movzbl %dl,%ebp 421 xorl 3(%r14,%rsi,8),%r10d 422 xorl 3(%r14,%rdi,8),%r11d 423 movl 0(%r14,%rbp,8),%r8d 424 425 movzbl %bh,%esi 426 shrl $16,%eax 427 movzbl %ch,%ebp 428 xorl 3(%r14,%rsi,8),%r12d 429 shrl $16,%edx 430 xorl 3(%r14,%rbp,8),%r8d 431 432 shrl $16,%ebx 433 leaq 16(%r15),%r15 434 shrl $16,%ecx 435 436 movzbl %cl,%esi 437 movzbl %dl,%edi 438 movzbl %al,%ebp 439 xorl 2(%r14,%rsi,8),%r10d 440 xorl 2(%r14,%rdi,8),%r11d 441 xorl 2(%r14,%rbp,8),%r12d 442 443 movzbl %bh,%esi 444 movzbl %ch,%edi 445 movzbl %bl,%ebp 446 xorl 1(%r14,%rsi,8),%r10d 447 xorl 1(%r14,%rdi,8),%r11d 448 xorl 2(%r14,%rbp,8),%r8d 449 450 movzbl %dh,%esi 451 movl 12(%r15),%edx 452 movzbl %ah,%ebp 453 xorl 1(%r14,%rsi,8),%r12d 454 movl 0(%r15),%eax 455 xorl 1(%r14,%rbp,8),%r8d 456 457 xorl %r10d,%eax 458 movl 4(%r15),%ebx 459 movl 8(%r15),%ecx 460 xorl %r12d,%ecx 461 xorl %r11d,%ebx 462 xorl %r8d,%edx 463 subl $1,%r13d 464 jnz .Ldec_loop 465 leaq 2048(%r14),%r14 466 movzbl %al,%esi 467 movzbl %bl,%edi 468 movzbl %cl,%ebp 469 movzbl (%r14,%rsi,1),%r10d 470 movzbl (%r14,%rdi,1),%r11d 471 movzbl (%r14,%rbp,1),%r12d 472 473 movzbl %dl,%esi 474 movzbl %dh,%edi 475 movzbl %ah,%ebp 476 movzbl (%r14,%rsi,1),%r8d 477 movzbl (%r14,%rdi,1),%edi 478 movzbl (%r14,%rbp,1),%ebp 479 480 shll $8,%edi 481 shll $8,%ebp 482 483 xorl %edi,%r10d 484 xorl %ebp,%r11d 485 shrl $16,%edx 486 487 movzbl %bh,%esi 488 movzbl %ch,%edi 489 shrl $16,%eax 490 movzbl (%r14,%rsi,1),%esi 491 movzbl (%r14,%rdi,1),%edi 492 493 shll $8,%esi 494 shll $8,%edi 495 shrl $16,%ebx 496 xorl %esi,%r12d 497 xorl %edi,%r8d 498 shrl $16,%ecx 499 500 movzbl %cl,%esi 501 movzbl %dl,%edi 502 movzbl %al,%ebp 503 movzbl (%r14,%rsi,1),%esi 504 movzbl (%r14,%rdi,1),%edi 505 movzbl (%r14,%rbp,1),%ebp 506 507 shll $16,%esi 508 shll $16,%edi 509 shll $16,%ebp 510 511 xorl %esi,%r10d 512 xorl %edi,%r11d 513 xorl %ebp,%r12d 514 515 movzbl %bl,%esi 516 movzbl %bh,%edi 517 movzbl %ch,%ebp 518 movzbl (%r14,%rsi,1),%esi 519 movzbl (%r14,%rdi,1),%edi 520 movzbl (%r14,%rbp,1),%ebp 521 522 shll $16,%esi 523 shll $24,%edi 524 shll $24,%ebp 525 526 xorl %esi,%r8d 527 xorl %edi,%r10d 528 xorl %ebp,%r11d 529 530 movzbl %dh,%esi 531 movzbl %ah,%edi 532 movl 16+12(%r15),%edx 533 movzbl (%r14,%rsi,1),%esi 534 movzbl (%r14,%rdi,1),%edi 535 movl 16+0(%r15),%eax 536 537 shll $24,%esi 538 shll $24,%edi 539 540 xorl %esi,%r12d 541 xorl %edi,%r8d 542 543 movl 16+4(%r15),%ebx 544 movl 16+8(%r15),%ecx 545 leaq -2048(%r14),%r14 546 xorl %r10d,%eax 547 xorl %r11d,%ebx 548 xorl %r12d,%ecx 549 xorl %r8d,%edx 550 .byte 0xf3,0xc3 551 .size _x86_64_AES_decrypt,.-_x86_64_AES_decrypt 552 .type _x86_64_AES_decrypt_compact,@function 553 .align 16 554 _x86_64_AES_decrypt_compact: 555 leaq 128(%r14),%r8 556 movl 0-128(%r8),%edi 557 movl 32-128(%r8),%ebp 558 movl 64-128(%r8),%r10d 559 movl 96-128(%r8),%r11d 560 movl 128-128(%r8),%edi 561 movl 160-128(%r8),%ebp 562 movl 192-128(%r8),%r10d 563 movl 224-128(%r8),%r11d 564 jmp .Ldec_loop_compact 565 566 .align 16 567 .Ldec_loop_compact: 568 xorl 0(%r15),%eax 569 xorl 4(%r15),%ebx 570 xorl 8(%r15),%ecx 571 xorl 12(%r15),%edx 572 leaq 16(%r15),%r15 573 movzbl %al,%r10d 574 movzbl %bl,%r11d 575 movzbl %cl,%r12d 576 movzbl (%r14,%r10,1),%r10d 577 movzbl (%r14,%r11,1),%r11d 578 movzbl (%r14,%r12,1),%r12d 579 580 movzbl %dl,%r8d 581 movzbl %dh,%esi 582 movzbl %ah,%edi 583 movzbl (%r14,%r8,1),%r8d 584 movzbl (%r14,%rsi,1),%r9d 585 movzbl (%r14,%rdi,1),%r13d 586 587 movzbl %bh,%ebp 588 movzbl %ch,%esi 589 shrl $16,%ecx 590 movzbl (%r14,%rbp,1),%ebp 591 movzbl (%r14,%rsi,1),%esi 592 shrl $16,%edx 593 594 movzbl %cl,%edi 595 shll $8,%r9d 596 shll $8,%r13d 597 movzbl (%r14,%rdi,1),%edi 598 xorl %r9d,%r10d 599 xorl %r13d,%r11d 600 601 movzbl %dl,%r9d 602 shrl $16,%eax 603 shrl $16,%ebx 604 movzbl %al,%r13d 605 shll $8,%ebp 606 shll $8,%esi 607 movzbl (%r14,%r9,1),%r9d 608 movzbl (%r14,%r13,1),%r13d 609 xorl %ebp,%r12d 610 xorl %esi,%r8d 611 612 movzbl %bl,%ebp 613 movzbl %bh,%esi 614 shll $16,%edi 615 movzbl (%r14,%rbp,1),%ebp 616 movzbl (%r14,%rsi,1),%esi 617 xorl %edi,%r10d 618 619 movzbl %ch,%edi 620 shll $16,%r9d 621 shll $16,%r13d 622 movzbl (%r14,%rdi,1),%ebx 623 xorl %r9d,%r11d 624 xorl %r13d,%r12d 625 626 movzbl %dh,%edi 627 shrl $8,%eax 628 shll $16,%ebp 629 movzbl (%r14,%rdi,1),%ecx 630 movzbl (%r14,%rax,1),%edx 631 xorl %ebp,%r8d 632 633 shll $24,%esi 634 shll $24,%ebx 635 shll $24,%ecx 636 xorl %esi,%r10d 637 shll $24,%edx 638 xorl %r11d,%ebx 639 movl %r10d,%eax 640 xorl %r12d,%ecx 641 xorl %r8d,%edx 642 cmpq 16(%rsp),%r15 643 je .Ldec_compact_done 644 645 movq 256+0(%r14),%rsi 646 shlq $32,%rbx 647 shlq $32,%rdx 648 movq 256+8(%r14),%rdi 649 orq %rbx,%rax 650 orq %rdx,%rcx 651 movq 256+16(%r14),%rbp 652 movq %rax,%rbx 653 movq %rcx,%rdx 654 andq %rsi,%rbx 655 andq %rsi,%rdx 656 movq %rbx,%r9 657 movq %rdx,%r12 658 shrq $7,%r9 659 leaq (%rax,%rax,1),%r8 660 shrq $7,%r12 661 leaq (%rcx,%rcx,1),%r11 662 subq %r9,%rbx 663 subq %r12,%rdx 664 andq %rdi,%r8 665 andq %rdi,%r11 666 andq %rbp,%rbx 667 andq %rbp,%rdx 668 xorq %r8,%rbx 669 xorq %r11,%rdx 670 movq %rbx,%r8 671 movq %rdx,%r11 672 673 andq %rsi,%rbx 674 andq %rsi,%rdx 675 movq %rbx,%r10 676 movq %rdx,%r13 677 shrq $7,%r10 678 leaq (%r8,%r8,1),%r9 679 shrq $7,%r13 680 leaq (%r11,%r11,1),%r12 681 subq %r10,%rbx 682 subq %r13,%rdx 683 andq %rdi,%r9 684 andq %rdi,%r12 685 andq %rbp,%rbx 686 andq %rbp,%rdx 687 xorq %r9,%rbx 688 xorq %r12,%rdx 689 movq %rbx,%r9 690 movq %rdx,%r12 691 692 andq %rsi,%rbx 693 andq %rsi,%rdx 694 movq %rbx,%r10 695 movq %rdx,%r13 696 shrq $7,%r10 697 xorq %rax,%r8 698 shrq $7,%r13 699 xorq %rcx,%r11 700 subq %r10,%rbx 701 subq %r13,%rdx 702 leaq (%r9,%r9,1),%r10 703 leaq (%r12,%r12,1),%r13 704 xorq %rax,%r9 705 xorq %rcx,%r12 706 andq %rdi,%r10 707 andq %rdi,%r13 708 andq %rbp,%rbx 709 andq %rbp,%rdx 710 xorq %rbx,%r10 711 xorq %rdx,%r13 712 713 xorq %r10,%rax 714 xorq %r13,%rcx 715 xorq %r10,%r8 716 xorq %r13,%r11 717 movq %rax,%rbx 718 movq %rcx,%rdx 719 xorq %r10,%r9 720 xorq %r13,%r12 721 shrq $32,%rbx 722 shrq $32,%rdx 723 xorq %r8,%r10 724 xorq %r11,%r13 725 roll $8,%eax 726 roll $8,%ecx 727 xorq %r9,%r10 728 xorq %r12,%r13 729 730 roll $8,%ebx 731 roll $8,%edx 732 xorl %r10d,%eax 733 xorl %r13d,%ecx 734 shrq $32,%r10 735 shrq $32,%r13 736 xorl %r10d,%ebx 737 xorl %r13d,%edx 738 739 movq %r8,%r10 740 movq %r11,%r13 741 shrq $32,%r10 742 shrq $32,%r13 743 roll $24,%r8d 744 roll $24,%r11d 745 roll $24,%r10d 746 roll $24,%r13d 747 xorl %r8d,%eax 748 xorl %r11d,%ecx 749 movq %r9,%r8 750 movq %r12,%r11 751 xorl %r10d,%ebx 752 xorl %r13d,%edx 753 754 movq 0(%r14),%rsi 755 shrq $32,%r8 756 shrq $32,%r11 757 movq 64(%r14),%rdi 758 roll $16,%r9d 759 roll $16,%r12d 760 movq 128(%r14),%rbp 761 roll $16,%r8d 762 roll $16,%r11d 763 movq 192(%r14),%r10 764 xorl %r9d,%eax 765 xorl %r12d,%ecx 766 movq 256(%r14),%r13 767 xorl %r8d,%ebx 768 xorl %r11d,%edx 769 jmp .Ldec_loop_compact 770 .align 16 771 .Ldec_compact_done: 772 xorl 0(%r15),%eax 773 xorl 4(%r15),%ebx 774 xorl 8(%r15),%ecx 775 xorl 12(%r15),%edx 776 .byte 0xf3,0xc3 777 .size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact 778 .globl AES_decrypt 779 .type AES_decrypt,@function 780 .align 16 781 .globl asm_AES_decrypt 782 .hidden asm_AES_decrypt 783 asm_AES_decrypt: 784 AES_decrypt: 785 pushq %rbx 786 pushq %rbp 787 pushq %r12 788 pushq %r13 789 pushq %r14 790 pushq %r15 791 792 793 movq %rsp,%r10 794 leaq -63(%rdx),%rcx 795 andq $-64,%rsp 796 subq %rsp,%rcx 797 negq %rcx 798 andq $960,%rcx 799 subq %rcx,%rsp 800 subq $32,%rsp 801 802 movq %rsi,16(%rsp) 803 movq %r10,24(%rsp) 804 .Ldec_prologue: 805 806 movq %rdx,%r15 807 movl 240(%r15),%r13d 808 809 movl 0(%rdi),%eax 810 movl 4(%rdi),%ebx 811 movl 8(%rdi),%ecx 812 movl 12(%rdi),%edx 813 814 shll $4,%r13d 815 leaq (%r15,%r13,1),%rbp 816 movq %r15,(%rsp) 817 movq %rbp,8(%rsp) 818 819 820 leaq .LAES_Td+2048(%rip),%r14 821 leaq 768(%rsp),%rbp 822 subq %r14,%rbp 823 andq $768,%rbp 824 leaq (%r14,%rbp,1),%r14 825 shrq $3,%rbp 826 addq %rbp,%r14 827 828 call _x86_64_AES_decrypt_compact 829 830 movq 16(%rsp),%r9 831 movq 24(%rsp),%rsi 832 movl %eax,0(%r9) 833 movl %ebx,4(%r9) 834 movl %ecx,8(%r9) 835 movl %edx,12(%r9) 836 837 movq (%rsi),%r15 838 movq 8(%rsi),%r14 839 movq 16(%rsi),%r13 840 movq 24(%rsi),%r12 841 movq 32(%rsi),%rbp 842 movq 40(%rsi),%rbx 843 leaq 48(%rsi),%rsp 844 .Ldec_epilogue: 845 .byte 0xf3,0xc3 846 .size AES_decrypt,.-AES_decrypt 847 .globl private_AES_set_encrypt_key 848 .type private_AES_set_encrypt_key,@function 849 .align 16 850 private_AES_set_encrypt_key: 851 pushq %rbx 852 pushq %rbp 853 pushq %r12 854 pushq %r13 855 pushq %r14 856 pushq %r15 857 subq $8,%rsp 858 .Lenc_key_prologue: 859 860 call _x86_64_AES_set_encrypt_key 861 862 movq 8(%rsp),%r15 863 movq 16(%rsp),%r14 864 movq 24(%rsp),%r13 865 movq 32(%rsp),%r12 866 movq 40(%rsp),%rbp 867 movq 48(%rsp),%rbx 868 addq $56,%rsp 869 .Lenc_key_epilogue: 870 .byte 0xf3,0xc3 871 .size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key 872 873 .type _x86_64_AES_set_encrypt_key,@function 874 .align 16 875 _x86_64_AES_set_encrypt_key: 876 movl %esi,%ecx 877 movq %rdi,%rsi 878 movq %rdx,%rdi 879 880 testq $-1,%rsi 881 jz .Lbadpointer 882 testq $-1,%rdi 883 jz .Lbadpointer 884 885 leaq .LAES_Te(%rip),%rbp 886 leaq 2048+128(%rbp),%rbp 887 888 889 movl 0-128(%rbp),%eax 890 movl 32-128(%rbp),%ebx 891 movl 64-128(%rbp),%r8d 892 movl 96-128(%rbp),%edx 893 movl 128-128(%rbp),%eax 894 movl 160-128(%rbp),%ebx 895 movl 192-128(%rbp),%r8d 896 movl 224-128(%rbp),%edx 897 898 cmpl $128,%ecx 899 je .L10rounds 900 cmpl $192,%ecx 901 je .L12rounds 902 cmpl $256,%ecx 903 je .L14rounds 904 movq $-2,%rax 905 jmp .Lexit 906 907 .L10rounds: 908 movq 0(%rsi),%rax 909 movq 8(%rsi),%rdx 910 movq %rax,0(%rdi) 911 movq %rdx,8(%rdi) 912 913 shrq $32,%rdx 914 xorl %ecx,%ecx 915 jmp .L10shortcut 916 .align 4 917 .L10loop: 918 movl 0(%rdi),%eax 919 movl 12(%rdi),%edx 920 .L10shortcut: 921 movzbl %dl,%esi 922 movzbl -128(%rbp,%rsi,1),%ebx 923 movzbl %dh,%esi 924 shll $24,%ebx 925 xorl %ebx,%eax 926 927 movzbl -128(%rbp,%rsi,1),%ebx 928 shrl $16,%edx 929 movzbl %dl,%esi 930 xorl %ebx,%eax 931 932 movzbl -128(%rbp,%rsi,1),%ebx 933 movzbl %dh,%esi 934 shll $8,%ebx 935 xorl %ebx,%eax 936 937 movzbl -128(%rbp,%rsi,1),%ebx 938 shll $16,%ebx 939 xorl %ebx,%eax 940 941 xorl 1024-128(%rbp,%rcx,4),%eax 942 movl %eax,16(%rdi) 943 xorl 4(%rdi),%eax 944 movl %eax,20(%rdi) 945 xorl 8(%rdi),%eax 946 movl %eax,24(%rdi) 947 xorl 12(%rdi),%eax 948 movl %eax,28(%rdi) 949 addl $1,%ecx 950 leaq 16(%rdi),%rdi 951 cmpl $10,%ecx 952 jl .L10loop 953 954 movl $10,80(%rdi) 955 xorq %rax,%rax 956 jmp .Lexit 957 958 .L12rounds: 959 movq 0(%rsi),%rax 960 movq 8(%rsi),%rbx 961 movq 16(%rsi),%rdx 962 movq %rax,0(%rdi) 963 movq %rbx,8(%rdi) 964 movq %rdx,16(%rdi) 965 966 shrq $32,%rdx 967 xorl %ecx,%ecx 968 jmp .L12shortcut 969 .align 4 970 .L12loop: 971 movl 0(%rdi),%eax 972 movl 20(%rdi),%edx 973 .L12shortcut: 974 movzbl %dl,%esi 975 movzbl -128(%rbp,%rsi,1),%ebx 976 movzbl %dh,%esi 977 shll $24,%ebx 978 xorl %ebx,%eax 979 980 movzbl -128(%rbp,%rsi,1),%ebx 981 shrl $16,%edx 982 movzbl %dl,%esi 983 xorl %ebx,%eax 984 985 movzbl -128(%rbp,%rsi,1),%ebx 986 movzbl %dh,%esi 987 shll $8,%ebx 988 xorl %ebx,%eax 989 990 movzbl -128(%rbp,%rsi,1),%ebx 991 shll $16,%ebx 992 xorl %ebx,%eax 993 994 xorl 1024-128(%rbp,%rcx,4),%eax 995 movl %eax,24(%rdi) 996 xorl 4(%rdi),%eax 997 movl %eax,28(%rdi) 998 xorl 8(%rdi),%eax 999 movl %eax,32(%rdi) 1000 xorl 12(%rdi),%eax 1001 movl %eax,36(%rdi) 1002 1003 cmpl $7,%ecx 1004 je .L12break 1005 addl $1,%ecx 1006 1007 xorl 16(%rdi),%eax 1008 movl %eax,40(%rdi) 1009 xorl 20(%rdi),%eax 1010 movl %eax,44(%rdi) 1011 1012 leaq 24(%rdi),%rdi 1013 jmp .L12loop 1014 .L12break: 1015 movl $12,72(%rdi) 1016 xorq %rax,%rax 1017 jmp .Lexit 1018 1019 .L14rounds: 1020 movq 0(%rsi),%rax 1021 movq 8(%rsi),%rbx 1022 movq 16(%rsi),%rcx 1023 movq 24(%rsi),%rdx 1024 movq %rax,0(%rdi) 1025 movq %rbx,8(%rdi) 1026 movq %rcx,16(%rdi) 1027 movq %rdx,24(%rdi) 1028 1029 shrq $32,%rdx 1030 xorl %ecx,%ecx 1031 jmp .L14shortcut 1032 .align 4 1033 .L14loop: 1034 movl 0(%rdi),%eax 1035 movl 28(%rdi),%edx 1036 .L14shortcut: 1037 movzbl %dl,%esi 1038 movzbl -128(%rbp,%rsi,1),%ebx 1039 movzbl %dh,%esi 1040 shll $24,%ebx 1041 xorl %ebx,%eax 1042 1043 movzbl -128(%rbp,%rsi,1),%ebx 1044 shrl $16,%edx 1045 movzbl %dl,%esi 1046 xorl %ebx,%eax 1047 1048 movzbl -128(%rbp,%rsi,1),%ebx 1049 movzbl %dh,%esi 1050 shll $8,%ebx 1051 xorl %ebx,%eax 1052 1053 movzbl -128(%rbp,%rsi,1),%ebx 1054 shll $16,%ebx 1055 xorl %ebx,%eax 1056 1057 xorl 1024-128(%rbp,%rcx,4),%eax 1058 movl %eax,32(%rdi) 1059 xorl 4(%rdi),%eax 1060 movl %eax,36(%rdi) 1061 xorl 8(%rdi),%eax 1062 movl %eax,40(%rdi) 1063 xorl 12(%rdi),%eax 1064 movl %eax,44(%rdi) 1065 1066 cmpl $6,%ecx 1067 je .L14break 1068 addl $1,%ecx 1069 1070 movl %eax,%edx 1071 movl 16(%rdi),%eax 1072 movzbl %dl,%esi 1073 movzbl -128(%rbp,%rsi,1),%ebx 1074 movzbl %dh,%esi 1075 xorl %ebx,%eax 1076 1077 movzbl -128(%rbp,%rsi,1),%ebx 1078 shrl $16,%edx 1079 shll $8,%ebx 1080 movzbl %dl,%esi 1081 xorl %ebx,%eax 1082 1083 movzbl -128(%rbp,%rsi,1),%ebx 1084 movzbl %dh,%esi 1085 shll $16,%ebx 1086 xorl %ebx,%eax 1087 1088 movzbl -128(%rbp,%rsi,1),%ebx 1089 shll $24,%ebx 1090 xorl %ebx,%eax 1091 1092 movl %eax,48(%rdi) 1093 xorl 20(%rdi),%eax 1094 movl %eax,52(%rdi) 1095 xorl 24(%rdi),%eax 1096 movl %eax,56(%rdi) 1097 xorl 28(%rdi),%eax 1098 movl %eax,60(%rdi) 1099 1100 leaq 32(%rdi),%rdi 1101 jmp .L14loop 1102 .L14break: 1103 movl $14,48(%rdi) 1104 xorq %rax,%rax 1105 jmp .Lexit 1106 1107 .Lbadpointer: 1108 movq $-1,%rax 1109 .Lexit: 1110 .byte 0xf3,0xc3 1111 .size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key 1112 .globl private_AES_set_decrypt_key 1113 .type private_AES_set_decrypt_key,@function 1114 .align 16 1115 private_AES_set_decrypt_key: 1116 pushq %rbx 1117 pushq %rbp 1118 pushq %r12 1119 pushq %r13 1120 pushq %r14 1121 pushq %r15 1122 pushq %rdx 1123 .Ldec_key_prologue: 1124 1125 call _x86_64_AES_set_encrypt_key 1126 movq (%rsp),%r8 1127 cmpl $0,%eax 1128 jne .Labort 1129 1130 movl 240(%r8),%r14d 1131 xorq %rdi,%rdi 1132 leaq (%rdi,%r14,4),%rcx 1133 movq %r8,%rsi 1134 leaq (%r8,%rcx,4),%rdi 1135 .align 4 1136 .Linvert: 1137 movq 0(%rsi),%rax 1138 movq 8(%rsi),%rbx 1139 movq 0(%rdi),%rcx 1140 movq 8(%rdi),%rdx 1141 movq %rax,0(%rdi) 1142 movq %rbx,8(%rdi) 1143 movq %rcx,0(%rsi) 1144 movq %rdx,8(%rsi) 1145 leaq 16(%rsi),%rsi 1146 leaq -16(%rdi),%rdi 1147 cmpq %rsi,%rdi 1148 jne .Linvert 1149 1150 leaq .LAES_Te+2048+1024(%rip),%rax 1151 1152 movq 40(%rax),%rsi 1153 movq 48(%rax),%rdi 1154 movq 56(%rax),%rbp 1155 1156 movq %r8,%r15 1157 subl $1,%r14d 1158 .align 4 1159 .Lpermute: 1160 leaq 16(%r15),%r15 1161 movq 0(%r15),%rax 1162 movq 8(%r15),%rcx 1163 movq %rax,%rbx 1164 movq %rcx,%rdx 1165 andq %rsi,%rbx 1166 andq %rsi,%rdx 1167 movq %rbx,%r9 1168 movq %rdx,%r12 1169 shrq $7,%r9 1170 leaq (%rax,%rax,1),%r8 1171 shrq $7,%r12 1172 leaq (%rcx,%rcx,1),%r11 1173 subq %r9,%rbx 1174 subq %r12,%rdx 1175 andq %rdi,%r8 1176 andq %rdi,%r11 1177 andq %rbp,%rbx 1178 andq %rbp,%rdx 1179 xorq %r8,%rbx 1180 xorq %r11,%rdx 1181 movq %rbx,%r8 1182 movq %rdx,%r11 1183 1184 andq %rsi,%rbx 1185 andq %rsi,%rdx 1186 movq %rbx,%r10 1187 movq %rdx,%r13 1188 shrq $7,%r10 1189 leaq (%r8,%r8,1),%r9 1190 shrq $7,%r13 1191 leaq (%r11,%r11,1),%r12 1192 subq %r10,%rbx 1193 subq %r13,%rdx 1194 andq %rdi,%r9 1195 andq %rdi,%r12 1196 andq %rbp,%rbx 1197 andq %rbp,%rdx 1198 xorq %r9,%rbx 1199 xorq %r12,%rdx 1200 movq %rbx,%r9 1201 movq %rdx,%r12 1202 1203 andq %rsi,%rbx 1204 andq %rsi,%rdx 1205 movq %rbx,%r10 1206 movq %rdx,%r13 1207 shrq $7,%r10 1208 xorq %rax,%r8 1209 shrq $7,%r13 1210 xorq %rcx,%r11 1211 subq %r10,%rbx 1212 subq %r13,%rdx 1213 leaq (%r9,%r9,1),%r10 1214 leaq (%r12,%r12,1),%r13 1215 xorq %rax,%r9 1216 xorq %rcx,%r12 1217 andq %rdi,%r10 1218 andq %rdi,%r13 1219 andq %rbp,%rbx 1220 andq %rbp,%rdx 1221 xorq %rbx,%r10 1222 xorq %rdx,%r13 1223 1224 xorq %r10,%rax 1225 xorq %r13,%rcx 1226 xorq %r10,%r8 1227 xorq %r13,%r11 1228 movq %rax,%rbx 1229 movq %rcx,%rdx 1230 xorq %r10,%r9 1231 xorq %r13,%r12 1232 shrq $32,%rbx 1233 shrq $32,%rdx 1234 xorq %r8,%r10 1235 xorq %r11,%r13 1236 roll $8,%eax 1237 roll $8,%ecx 1238 xorq %r9,%r10 1239 xorq %r12,%r13 1240 1241 roll $8,%ebx 1242 roll $8,%edx 1243 xorl %r10d,%eax 1244 xorl %r13d,%ecx 1245 shrq $32,%r10 1246 shrq $32,%r13 1247 xorl %r10d,%ebx 1248 xorl %r13d,%edx 1249 1250 movq %r8,%r10 1251 movq %r11,%r13 1252 shrq $32,%r10 1253 shrq $32,%r13 1254 roll $24,%r8d 1255 roll $24,%r11d 1256 roll $24,%r10d 1257 roll $24,%r13d 1258 xorl %r8d,%eax 1259 xorl %r11d,%ecx 1260 movq %r9,%r8 1261 movq %r12,%r11 1262 xorl %r10d,%ebx 1263 xorl %r13d,%edx 1264 1265 1266 shrq $32,%r8 1267 shrq $32,%r11 1268 1269 roll $16,%r9d 1270 roll $16,%r12d 1271 1272 roll $16,%r8d 1273 roll $16,%r11d 1274 1275 xorl %r9d,%eax 1276 xorl %r12d,%ecx 1277 1278 xorl %r8d,%ebx 1279 xorl %r11d,%edx 1280 movl %eax,0(%r15) 1281 movl %ebx,4(%r15) 1282 movl %ecx,8(%r15) 1283 movl %edx,12(%r15) 1284 subl $1,%r14d 1285 jnz .Lpermute 1286 1287 xorq %rax,%rax 1288 .Labort: 1289 movq 8(%rsp),%r15 1290 movq 16(%rsp),%r14 1291 movq 24(%rsp),%r13 1292 movq 32(%rsp),%r12 1293 movq 40(%rsp),%rbp 1294 movq 48(%rsp),%rbx 1295 addq $56,%rsp 1296 .Ldec_key_epilogue: 1297 .byte 0xf3,0xc3 1298 .size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key 1299 .globl AES_cbc_encrypt 1300 .type AES_cbc_encrypt,@function 1301 .align 16 1302 1303 .globl asm_AES_cbc_encrypt 1304 .hidden asm_AES_cbc_encrypt 1305 asm_AES_cbc_encrypt: 1306 AES_cbc_encrypt: 1307 cmpq $0,%rdx 1308 je .Lcbc_epilogue 1309 pushfq 1310 pushq %rbx 1311 pushq %rbp 1312 pushq %r12 1313 pushq %r13 1314 pushq %r14 1315 pushq %r15 1316 .Lcbc_prologue: 1317 1318 cld 1319 movl %r9d,%r9d 1320 1321 leaq .LAES_Te(%rip),%r14 1322 cmpq $0,%r9 1323 jne .Lcbc_picked_te 1324 leaq .LAES_Td(%rip),%r14 1325 .Lcbc_picked_te: 1326 1327 movl OPENSSL_ia32cap_P(%rip),%r10d 1328 cmpq $512,%rdx 1329 jb .Lcbc_slow_prologue 1330 testq $15,%rdx 1331 jnz .Lcbc_slow_prologue 1332 btl $28,%r10d 1333 jc .Lcbc_slow_prologue 1334 1335 1336 leaq -88-248(%rsp),%r15 1337 andq $-64,%r15 1338 1339 1340 movq %r14,%r10 1341 leaq 2304(%r14),%r11 1342 movq %r15,%r12 1343 andq $4095,%r10 1344 andq $4095,%r11 1345 andq $4095,%r12 1346 1347 cmpq %r11,%r12 1348 jb .Lcbc_te_break_out 1349 subq %r11,%r12 1350 subq %r12,%r15 1351 jmp .Lcbc_te_ok 1352 .Lcbc_te_break_out: 1353 subq %r10,%r12 1354 andq $4095,%r12 1355 addq $320,%r12 1356 subq %r12,%r15 1357 .align 4 1358 .Lcbc_te_ok: 1359 1360 xchgq %rsp,%r15 1361 1362 movq %r15,16(%rsp) 1363 .Lcbc_fast_body: 1364 movq %rdi,24(%rsp) 1365 movq %rsi,32(%rsp) 1366 movq %rdx,40(%rsp) 1367 movq %rcx,48(%rsp) 1368 movq %r8,56(%rsp) 1369 movl $0,80+240(%rsp) 1370 movq %r8,%rbp 1371 movq %r9,%rbx 1372 movq %rsi,%r9 1373 movq %rdi,%r8 1374 movq %rcx,%r15 1375 1376 movl 240(%r15),%eax 1377 1378 movq %r15,%r10 1379 subq %r14,%r10 1380 andq $4095,%r10 1381 cmpq $2304,%r10 1382 jb .Lcbc_do_ecopy 1383 cmpq $4096-248,%r10 1384 jb .Lcbc_skip_ecopy 1385 .align 4 1386 .Lcbc_do_ecopy: 1387 movq %r15,%rsi 1388 leaq 80(%rsp),%rdi 1389 leaq 80(%rsp),%r15 1390 movl $30,%ecx 1391 .long 0x90A548F3 1392 movl %eax,(%rdi) 1393 .Lcbc_skip_ecopy: 1394 movq %r15,0(%rsp) 1395 1396 movl $18,%ecx 1397 .align 4 1398 .Lcbc_prefetch_te: 1399 movq 0(%r14),%r10 1400 movq 32(%r14),%r11 1401 movq 64(%r14),%r12 1402 movq 96(%r14),%r13 1403 leaq 128(%r14),%r14 1404 subl $1,%ecx 1405 jnz .Lcbc_prefetch_te 1406 leaq -2304(%r14),%r14 1407 1408 cmpq $0,%rbx 1409 je .LFAST_DECRYPT 1410 1411 1412 movl 0(%rbp),%eax 1413 movl 4(%rbp),%ebx 1414 movl 8(%rbp),%ecx 1415 movl 12(%rbp),%edx 1416 1417 .align 4 1418 .Lcbc_fast_enc_loop: 1419 xorl 0(%r8),%eax 1420 xorl 4(%r8),%ebx 1421 xorl 8(%r8),%ecx 1422 xorl 12(%r8),%edx 1423 movq 0(%rsp),%r15 1424 movq %r8,24(%rsp) 1425 1426 call _x86_64_AES_encrypt 1427 1428 movq 24(%rsp),%r8 1429 movq 40(%rsp),%r10 1430 movl %eax,0(%r9) 1431 movl %ebx,4(%r9) 1432 movl %ecx,8(%r9) 1433 movl %edx,12(%r9) 1434 1435 leaq 16(%r8),%r8 1436 leaq 16(%r9),%r9 1437 subq $16,%r10 1438 testq $-16,%r10 1439 movq %r10,40(%rsp) 1440 jnz .Lcbc_fast_enc_loop 1441 movq 56(%rsp),%rbp 1442 movl %eax,0(%rbp) 1443 movl %ebx,4(%rbp) 1444 movl %ecx,8(%rbp) 1445 movl %edx,12(%rbp) 1446 1447 jmp .Lcbc_fast_cleanup 1448 1449 1450 .align 16 1451 .LFAST_DECRYPT: 1452 cmpq %r8,%r9 1453 je .Lcbc_fast_dec_in_place 1454 1455 movq %rbp,64(%rsp) 1456 .align 4 1457 .Lcbc_fast_dec_loop: 1458 movl 0(%r8),%eax 1459 movl 4(%r8),%ebx 1460 movl 8(%r8),%ecx 1461 movl 12(%r8),%edx 1462 movq 0(%rsp),%r15 1463 movq %r8,24(%rsp) 1464 1465 call _x86_64_AES_decrypt 1466 1467 movq 64(%rsp),%rbp 1468 movq 24(%rsp),%r8 1469 movq 40(%rsp),%r10 1470 xorl 0(%rbp),%eax 1471 xorl 4(%rbp),%ebx 1472 xorl 8(%rbp),%ecx 1473 xorl 12(%rbp),%edx 1474 movq %r8,%rbp 1475 1476 subq $16,%r10 1477 movq %r10,40(%rsp) 1478 movq %rbp,64(%rsp) 1479 1480 movl %eax,0(%r9) 1481 movl %ebx,4(%r9) 1482 movl %ecx,8(%r9) 1483 movl %edx,12(%r9) 1484 1485 leaq 16(%r8),%r8 1486 leaq 16(%r9),%r9 1487 jnz .Lcbc_fast_dec_loop 1488 movq 56(%rsp),%r12 1489 movq 0(%rbp),%r10 1490 movq 8(%rbp),%r11 1491 movq %r10,0(%r12) 1492 movq %r11,8(%r12) 1493 jmp .Lcbc_fast_cleanup 1494 1495 .align 16 1496 .Lcbc_fast_dec_in_place: 1497 movq 0(%rbp),%r10 1498 movq 8(%rbp),%r11 1499 movq %r10,0+64(%rsp) 1500 movq %r11,8+64(%rsp) 1501 .align 4 1502 .Lcbc_fast_dec_in_place_loop: 1503 movl 0(%r8),%eax 1504 movl 4(%r8),%ebx 1505 movl 8(%r8),%ecx 1506 movl 12(%r8),%edx 1507 movq 0(%rsp),%r15 1508 movq %r8,24(%rsp) 1509 1510 call _x86_64_AES_decrypt 1511 1512 movq 24(%rsp),%r8 1513 movq 40(%rsp),%r10 1514 xorl 0+64(%rsp),%eax 1515 xorl 4+64(%rsp),%ebx 1516 xorl 8+64(%rsp),%ecx 1517 xorl 12+64(%rsp),%edx 1518 1519 movq 0(%r8),%r11 1520 movq 8(%r8),%r12 1521 subq $16,%r10 1522 jz .Lcbc_fast_dec_in_place_done 1523 1524 movq %r11,0+64(%rsp) 1525 movq %r12,8+64(%rsp) 1526 1527 movl %eax,0(%r9) 1528 movl %ebx,4(%r9) 1529 movl %ecx,8(%r9) 1530 movl %edx,12(%r9) 1531 1532 leaq 16(%r8),%r8 1533 leaq 16(%r9),%r9 1534 movq %r10,40(%rsp) 1535 jmp .Lcbc_fast_dec_in_place_loop 1536 .Lcbc_fast_dec_in_place_done: 1537 movq 56(%rsp),%rdi 1538 movq %r11,0(%rdi) 1539 movq %r12,8(%rdi) 1540 1541 movl %eax,0(%r9) 1542 movl %ebx,4(%r9) 1543 movl %ecx,8(%r9) 1544 movl %edx,12(%r9) 1545 1546 .align 4 1547 .Lcbc_fast_cleanup: 1548 cmpl $0,80+240(%rsp) 1549 leaq 80(%rsp),%rdi 1550 je .Lcbc_exit 1551 movl $30,%ecx 1552 xorq %rax,%rax 1553 .long 0x90AB48F3 1554 1555 jmp .Lcbc_exit 1556 1557 1558 .align 16 1559 .Lcbc_slow_prologue: 1560 1561 leaq -88(%rsp),%rbp 1562 andq $-64,%rbp 1563 1564 leaq -88-63(%rcx),%r10 1565 subq %rbp,%r10 1566 negq %r10 1567 andq $960,%r10 1568 subq %r10,%rbp 1569 1570 xchgq %rsp,%rbp 1571 1572 movq %rbp,16(%rsp) 1573 .Lcbc_slow_body: 1574 1575 1576 1577 1578 movq %r8,56(%rsp) 1579 movq %r8,%rbp 1580 movq %r9,%rbx 1581 movq %rsi,%r9 1582 movq %rdi,%r8 1583 movq %rcx,%r15 1584 movq %rdx,%r10 1585 1586 movl 240(%r15),%eax 1587 movq %r15,0(%rsp) 1588 shll $4,%eax 1589 leaq (%r15,%rax,1),%rax 1590 movq %rax,8(%rsp) 1591 1592 1593 leaq 2048(%r14),%r14 1594 leaq 768-8(%rsp),%rax 1595 subq %r14,%rax 1596 andq $768,%rax 1597 leaq (%r14,%rax,1),%r14 1598 1599 cmpq $0,%rbx 1600 je .LSLOW_DECRYPT 1601 1602 1603 testq $-16,%r10 1604 movl 0(%rbp),%eax 1605 movl 4(%rbp),%ebx 1606 movl 8(%rbp),%ecx 1607 movl 12(%rbp),%edx 1608 jz .Lcbc_slow_enc_tail 1609 1610 .align 4 1611 .Lcbc_slow_enc_loop: 1612 xorl 0(%r8),%eax 1613 xorl 4(%r8),%ebx 1614 xorl 8(%r8),%ecx 1615 xorl 12(%r8),%edx 1616 movq 0(%rsp),%r15 1617 movq %r8,24(%rsp) 1618 movq %r9,32(%rsp) 1619 movq %r10,40(%rsp) 1620 1621 call _x86_64_AES_encrypt_compact 1622 1623 movq 24(%rsp),%r8 1624 movq 32(%rsp),%r9 1625 movq 40(%rsp),%r10 1626 movl %eax,0(%r9) 1627 movl %ebx,4(%r9) 1628 movl %ecx,8(%r9) 1629 movl %edx,12(%r9) 1630 1631 leaq 16(%r8),%r8 1632 leaq 16(%r9),%r9 1633 subq $16,%r10 1634 testq $-16,%r10 1635 jnz .Lcbc_slow_enc_loop 1636 testq $15,%r10 1637 jnz .Lcbc_slow_enc_tail 1638 movq 56(%rsp),%rbp 1639 movl %eax,0(%rbp) 1640 movl %ebx,4(%rbp) 1641 movl %ecx,8(%rbp) 1642 movl %edx,12(%rbp) 1643 1644 jmp .Lcbc_exit 1645 1646 .align 4 1647 .Lcbc_slow_enc_tail: 1648 movq %rax,%r11 1649 movq %rcx,%r12 1650 movq %r10,%rcx 1651 movq %r8,%rsi 1652 movq %r9,%rdi 1653 .long 0x9066A4F3 1654 movq $16,%rcx 1655 subq %r10,%rcx 1656 xorq %rax,%rax 1657 .long 0x9066AAF3 1658 movq %r9,%r8 1659 movq $16,%r10 1660 movq %r11,%rax 1661 movq %r12,%rcx 1662 jmp .Lcbc_slow_enc_loop 1663 1664 .align 16 1665 .LSLOW_DECRYPT: 1666 shrq $3,%rax 1667 addq %rax,%r14 1668 1669 movq 0(%rbp),%r11 1670 movq 8(%rbp),%r12 1671 movq %r11,0+64(%rsp) 1672 movq %r12,8+64(%rsp) 1673 1674 .align 4 1675 .Lcbc_slow_dec_loop: 1676 movl 0(%r8),%eax 1677 movl 4(%r8),%ebx 1678 movl 8(%r8),%ecx 1679 movl 12(%r8),%edx 1680 movq 0(%rsp),%r15 1681 movq %r8,24(%rsp) 1682 movq %r9,32(%rsp) 1683 movq %r10,40(%rsp) 1684 1685 call _x86_64_AES_decrypt_compact 1686 1687 movq 24(%rsp),%r8 1688 movq 32(%rsp),%r9 1689 movq 40(%rsp),%r10 1690 xorl 0+64(%rsp),%eax 1691 xorl 4+64(%rsp),%ebx 1692 xorl 8+64(%rsp),%ecx 1693 xorl 12+64(%rsp),%edx 1694 1695 movq 0(%r8),%r11 1696 movq 8(%r8),%r12 1697 subq $16,%r10 1698 jc .Lcbc_slow_dec_partial 1699 jz .Lcbc_slow_dec_done 1700 1701 movq %r11,0+64(%rsp) 1702 movq %r12,8+64(%rsp) 1703 1704 movl %eax,0(%r9) 1705 movl %ebx,4(%r9) 1706 movl %ecx,8(%r9) 1707 movl %edx,12(%r9) 1708 1709 leaq 16(%r8),%r8 1710 leaq 16(%r9),%r9 1711 jmp .Lcbc_slow_dec_loop 1712 .Lcbc_slow_dec_done: 1713 movq 56(%rsp),%rdi 1714 movq %r11,0(%rdi) 1715 movq %r12,8(%rdi) 1716 1717 movl %eax,0(%r9) 1718 movl %ebx,4(%r9) 1719 movl %ecx,8(%r9) 1720 movl %edx,12(%r9) 1721 1722 jmp .Lcbc_exit 1723 1724 .align 4 1725 .Lcbc_slow_dec_partial: 1726 movq 56(%rsp),%rdi 1727 movq %r11,0(%rdi) 1728 movq %r12,8(%rdi) 1729 1730 movl %eax,0+64(%rsp) 1731 movl %ebx,4+64(%rsp) 1732 movl %ecx,8+64(%rsp) 1733 movl %edx,12+64(%rsp) 1734 1735 movq %r9,%rdi 1736 leaq 64(%rsp),%rsi 1737 leaq 16(%r10),%rcx 1738 .long 0x9066A4F3 1739 jmp .Lcbc_exit 1740 1741 .align 16 1742 .Lcbc_exit: 1743 movq 16(%rsp),%rsi 1744 movq (%rsi),%r15 1745 movq 8(%rsi),%r14 1746 movq 16(%rsi),%r13 1747 movq 24(%rsi),%r12 1748 movq 32(%rsi),%rbp 1749 movq 40(%rsi),%rbx 1750 leaq 48(%rsi),%rsp 1751 .Lcbc_popfq: 1752 popfq 1753 .Lcbc_epilogue: 1754 .byte 0xf3,0xc3 1755 .size AES_cbc_encrypt,.-AES_cbc_encrypt 1756 .align 64 1757 .LAES_Te: 1758 .long 0xa56363c6,0xa56363c6 1759 .long 0x847c7cf8,0x847c7cf8 1760 .long 0x997777ee,0x997777ee 1761 .long 0x8d7b7bf6,0x8d7b7bf6 1762 .long 0x0df2f2ff,0x0df2f2ff 1763 .long 0xbd6b6bd6,0xbd6b6bd6 1764 .long 0xb16f6fde,0xb16f6fde 1765 .long 0x54c5c591,0x54c5c591 1766 .long 0x50303060,0x50303060 1767 .long 0x03010102,0x03010102 1768 .long 0xa96767ce,0xa96767ce 1769 .long 0x7d2b2b56,0x7d2b2b56 1770 .long 0x19fefee7,0x19fefee7 1771 .long 0x62d7d7b5,0x62d7d7b5 1772 .long 0xe6abab4d,0xe6abab4d 1773 .long 0x9a7676ec,0x9a7676ec 1774 .long 0x45caca8f,0x45caca8f 1775 .long 0x9d82821f,0x9d82821f 1776 .long 0x40c9c989,0x40c9c989 1777 .long 0x877d7dfa,0x877d7dfa 1778 .long 0x15fafaef,0x15fafaef 1779 .long 0xeb5959b2,0xeb5959b2 1780 .long 0xc947478e,0xc947478e 1781 .long 0x0bf0f0fb,0x0bf0f0fb 1782 .long 0xecadad41,0xecadad41 1783 .long 0x67d4d4b3,0x67d4d4b3 1784 .long 0xfda2a25f,0xfda2a25f 1785 .long 0xeaafaf45,0xeaafaf45 1786 .long 0xbf9c9c23,0xbf9c9c23 1787 .long 0xf7a4a453,0xf7a4a453 1788 .long 0x967272e4,0x967272e4 1789 .long 0x5bc0c09b,0x5bc0c09b 1790 .long 0xc2b7b775,0xc2b7b775 1791 .long 0x1cfdfde1,0x1cfdfde1 1792 .long 0xae93933d,0xae93933d 1793 .long 0x6a26264c,0x6a26264c 1794 .long 0x5a36366c,0x5a36366c 1795 .long 0x413f3f7e,0x413f3f7e 1796 .long 0x02f7f7f5,0x02f7f7f5 1797 .long 0x4fcccc83,0x4fcccc83 1798 .long 0x5c343468,0x5c343468 1799 .long 0xf4a5a551,0xf4a5a551 1800 .long 0x34e5e5d1,0x34e5e5d1 1801 .long 0x08f1f1f9,0x08f1f1f9 1802 .long 0x937171e2,0x937171e2 1803 .long 0x73d8d8ab,0x73d8d8ab 1804 .long 0x53313162,0x53313162 1805 .long 0x3f15152a,0x3f15152a 1806 .long 0x0c040408,0x0c040408 1807 .long 0x52c7c795,0x52c7c795 1808 .long 0x65232346,0x65232346 1809 .long 0x5ec3c39d,0x5ec3c39d 1810 .long 0x28181830,0x28181830 1811 .long 0xa1969637,0xa1969637 1812 .long 0x0f05050a,0x0f05050a 1813 .long 0xb59a9a2f,0xb59a9a2f 1814 .long 0x0907070e,0x0907070e 1815 .long 0x36121224,0x36121224 1816 .long 0x9b80801b,0x9b80801b 1817 .long 0x3de2e2df,0x3de2e2df 1818 .long 0x26ebebcd,0x26ebebcd 1819 .long 0x6927274e,0x6927274e 1820 .long 0xcdb2b27f,0xcdb2b27f 1821 .long 0x9f7575ea,0x9f7575ea 1822 .long 0x1b090912,0x1b090912 1823 .long 0x9e83831d,0x9e83831d 1824 .long 0x742c2c58,0x742c2c58 1825 .long 0x2e1a1a34,0x2e1a1a34 1826 .long 0x2d1b1b36,0x2d1b1b36 1827 .long 0xb26e6edc,0xb26e6edc 1828 .long 0xee5a5ab4,0xee5a5ab4 1829 .long 0xfba0a05b,0xfba0a05b 1830 .long 0xf65252a4,0xf65252a4 1831 .long 0x4d3b3b76,0x4d3b3b76 1832 .long 0x61d6d6b7,0x61d6d6b7 1833 .long 0xceb3b37d,0xceb3b37d 1834 .long 0x7b292952,0x7b292952 1835 .long 0x3ee3e3dd,0x3ee3e3dd 1836 .long 0x712f2f5e,0x712f2f5e 1837 .long 0x97848413,0x97848413 1838 .long 0xf55353a6,0xf55353a6 1839 .long 0x68d1d1b9,0x68d1d1b9 1840 .long 0x00000000,0x00000000 1841 .long 0x2cededc1,0x2cededc1 1842 .long 0x60202040,0x60202040 1843 .long 0x1ffcfce3,0x1ffcfce3 1844 .long 0xc8b1b179,0xc8b1b179 1845 .long 0xed5b5bb6,0xed5b5bb6 1846 .long 0xbe6a6ad4,0xbe6a6ad4 1847 .long 0x46cbcb8d,0x46cbcb8d 1848 .long 0xd9bebe67,0xd9bebe67 1849 .long 0x4b393972,0x4b393972 1850 .long 0xde4a4a94,0xde4a4a94 1851 .long 0xd44c4c98,0xd44c4c98 1852 .long 0xe85858b0,0xe85858b0 1853 .long 0x4acfcf85,0x4acfcf85 1854 .long 0x6bd0d0bb,0x6bd0d0bb 1855 .long 0x2aefefc5,0x2aefefc5 1856 .long 0xe5aaaa4f,0xe5aaaa4f 1857 .long 0x16fbfbed,0x16fbfbed 1858 .long 0xc5434386,0xc5434386 1859 .long 0xd74d4d9a,0xd74d4d9a 1860 .long 0x55333366,0x55333366 1861 .long 0x94858511,0x94858511 1862 .long 0xcf45458a,0xcf45458a 1863 .long 0x10f9f9e9,0x10f9f9e9 1864 .long 0x06020204,0x06020204 1865 .long 0x817f7ffe,0x817f7ffe 1866 .long 0xf05050a0,0xf05050a0 1867 .long 0x443c3c78,0x443c3c78 1868 .long 0xba9f9f25,0xba9f9f25 1869 .long 0xe3a8a84b,0xe3a8a84b 1870 .long 0xf35151a2,0xf35151a2 1871 .long 0xfea3a35d,0xfea3a35d 1872 .long 0xc0404080,0xc0404080 1873 .long 0x8a8f8f05,0x8a8f8f05 1874 .long 0xad92923f,0xad92923f 1875 .long 0xbc9d9d21,0xbc9d9d21 1876 .long 0x48383870,0x48383870 1877 .long 0x04f5f5f1,0x04f5f5f1 1878 .long 0xdfbcbc63,0xdfbcbc63 1879 .long 0xc1b6b677,0xc1b6b677 1880 .long 0x75dadaaf,0x75dadaaf 1881 .long 0x63212142,0x63212142 1882 .long 0x30101020,0x30101020 1883 .long 0x1affffe5,0x1affffe5 1884 .long 0x0ef3f3fd,0x0ef3f3fd 1885 .long 0x6dd2d2bf,0x6dd2d2bf 1886 .long 0x4ccdcd81,0x4ccdcd81 1887 .long 0x140c0c18,0x140c0c18 1888 .long 0x35131326,0x35131326 1889 .long 0x2fececc3,0x2fececc3 1890 .long 0xe15f5fbe,0xe15f5fbe 1891 .long 0xa2979735,0xa2979735 1892 .long 0xcc444488,0xcc444488 1893 .long 0x3917172e,0x3917172e 1894 .long 0x57c4c493,0x57c4c493 1895 .long 0xf2a7a755,0xf2a7a755 1896 .long 0x827e7efc,0x827e7efc 1897 .long 0x473d3d7a,0x473d3d7a 1898 .long 0xac6464c8,0xac6464c8 1899 .long 0xe75d5dba,0xe75d5dba 1900 .long 0x2b191932,0x2b191932 1901 .long 0x957373e6,0x957373e6 1902 .long 0xa06060c0,0xa06060c0 1903 .long 0x98818119,0x98818119 1904 .long 0xd14f4f9e,0xd14f4f9e 1905 .long 0x7fdcdca3,0x7fdcdca3 1906 .long 0x66222244,0x66222244 1907 .long 0x7e2a2a54,0x7e2a2a54 1908 .long 0xab90903b,0xab90903b 1909 .long 0x8388880b,0x8388880b 1910 .long 0xca46468c,0xca46468c 1911 .long 0x29eeeec7,0x29eeeec7 1912 .long 0xd3b8b86b,0xd3b8b86b 1913 .long 0x3c141428,0x3c141428 1914 .long 0x79dedea7,0x79dedea7 1915 .long 0xe25e5ebc,0xe25e5ebc 1916 .long 0x1d0b0b16,0x1d0b0b16 1917 .long 0x76dbdbad,0x76dbdbad 1918 .long 0x3be0e0db,0x3be0e0db 1919 .long 0x56323264,0x56323264 1920 .long 0x4e3a3a74,0x4e3a3a74 1921 .long 0x1e0a0a14,0x1e0a0a14 1922 .long 0xdb494992,0xdb494992 1923 .long 0x0a06060c,0x0a06060c 1924 .long 0x6c242448,0x6c242448 1925 .long 0xe45c5cb8,0xe45c5cb8 1926 .long 0x5dc2c29f,0x5dc2c29f 1927 .long 0x6ed3d3bd,0x6ed3d3bd 1928 .long 0xefacac43,0xefacac43 1929 .long 0xa66262c4,0xa66262c4 1930 .long 0xa8919139,0xa8919139 1931 .long 0xa4959531,0xa4959531 1932 .long 0x37e4e4d3,0x37e4e4d3 1933 .long 0x8b7979f2,0x8b7979f2 1934 .long 0x32e7e7d5,0x32e7e7d5 1935 .long 0x43c8c88b,0x43c8c88b 1936 .long 0x5937376e,0x5937376e 1937 .long 0xb76d6dda,0xb76d6dda 1938 .long 0x8c8d8d01,0x8c8d8d01 1939 .long 0x64d5d5b1,0x64d5d5b1 1940 .long 0xd24e4e9c,0xd24e4e9c 1941 .long 0xe0a9a949,0xe0a9a949 1942 .long 0xb46c6cd8,0xb46c6cd8 1943 .long 0xfa5656ac,0xfa5656ac 1944 .long 0x07f4f4f3,0x07f4f4f3 1945 .long 0x25eaeacf,0x25eaeacf 1946 .long 0xaf6565ca,0xaf6565ca 1947 .long 0x8e7a7af4,0x8e7a7af4 1948 .long 0xe9aeae47,0xe9aeae47 1949 .long 0x18080810,0x18080810 1950 .long 0xd5baba6f,0xd5baba6f 1951 .long 0x887878f0,0x887878f0 1952 .long 0x6f25254a,0x6f25254a 1953 .long 0x722e2e5c,0x722e2e5c 1954 .long 0x241c1c38,0x241c1c38 1955 .long 0xf1a6a657,0xf1a6a657 1956 .long 0xc7b4b473,0xc7b4b473 1957 .long 0x51c6c697,0x51c6c697 1958 .long 0x23e8e8cb,0x23e8e8cb 1959 .long 0x7cdddda1,0x7cdddda1 1960 .long 0x9c7474e8,0x9c7474e8 1961 .long 0x211f1f3e,0x211f1f3e 1962 .long 0xdd4b4b96,0xdd4b4b96 1963 .long 0xdcbdbd61,0xdcbdbd61 1964 .long 0x868b8b0d,0x868b8b0d 1965 .long 0x858a8a0f,0x858a8a0f 1966 .long 0x907070e0,0x907070e0 1967 .long 0x423e3e7c,0x423e3e7c 1968 .long 0xc4b5b571,0xc4b5b571 1969 .long 0xaa6666cc,0xaa6666cc 1970 .long 0xd8484890,0xd8484890 1971 .long 0x05030306,0x05030306 1972 .long 0x01f6f6f7,0x01f6f6f7 1973 .long 0x120e0e1c,0x120e0e1c 1974 .long 0xa36161c2,0xa36161c2 1975 .long 0x5f35356a,0x5f35356a 1976 .long 0xf95757ae,0xf95757ae 1977 .long 0xd0b9b969,0xd0b9b969 1978 .long 0x91868617,0x91868617 1979 .long 0x58c1c199,0x58c1c199 1980 .long 0x271d1d3a,0x271d1d3a 1981 .long 0xb99e9e27,0xb99e9e27 1982 .long 0x38e1e1d9,0x38e1e1d9 1983 .long 0x13f8f8eb,0x13f8f8eb 1984 .long 0xb398982b,0xb398982b 1985 .long 0x33111122,0x33111122 1986 .long 0xbb6969d2,0xbb6969d2 1987 .long 0x70d9d9a9,0x70d9d9a9 1988 .long 0x898e8e07,0x898e8e07 1989 .long 0xa7949433,0xa7949433 1990 .long 0xb69b9b2d,0xb69b9b2d 1991 .long 0x221e1e3c,0x221e1e3c 1992 .long 0x92878715,0x92878715 1993 .long 0x20e9e9c9,0x20e9e9c9 1994 .long 0x49cece87,0x49cece87 1995 .long 0xff5555aa,0xff5555aa 1996 .long 0x78282850,0x78282850 1997 .long 0x7adfdfa5,0x7adfdfa5 1998 .long 0x8f8c8c03,0x8f8c8c03 1999 .long 0xf8a1a159,0xf8a1a159 2000 .long 0x80898909,0x80898909 2001 .long 0x170d0d1a,0x170d0d1a 2002 .long 0xdabfbf65,0xdabfbf65 2003 .long 0x31e6e6d7,0x31e6e6d7 2004 .long 0xc6424284,0xc6424284 2005 .long 0xb86868d0,0xb86868d0 2006 .long 0xc3414182,0xc3414182 2007 .long 0xb0999929,0xb0999929 2008 .long 0x772d2d5a,0x772d2d5a 2009 .long 0x110f0f1e,0x110f0f1e 2010 .long 0xcbb0b07b,0xcbb0b07b 2011 .long 0xfc5454a8,0xfc5454a8 2012 .long 0xd6bbbb6d,0xd6bbbb6d 2013 .long 0x3a16162c,0x3a16162c 2014 .byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 2015 .byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 2016 .byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 2017 .byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 2018 .byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc 2019 .byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 2020 .byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a 2021 .byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 2022 .byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 2023 .byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 2024 .byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b 2025 .byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf 2026 .byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 2027 .byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 2028 .byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 2029 .byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 2030 .byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 2031 .byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 2032 .byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 2033 .byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb 2034 .byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c 2035 .byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 2036 .byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 2037 .byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 2038 .byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 2039 .byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a 2040 .byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e 2041 .byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e 2042 .byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 2043 .byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf 2044 .byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 2045 .byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 2046 .byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 2047 .byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 2048 .byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 2049 .byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 2050 .byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc 2051 .byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 2052 .byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a 2053 .byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 2054 .byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 2055 .byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 2056 .byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b 2057 .byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf 2058 .byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 2059 .byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 2060 .byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 2061 .byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 2062 .byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 2063 .byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 2064 .byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 2065 .byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb 2066 .byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c 2067 .byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 2068 .byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 2069 .byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 2070 .byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 2071 .byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a 2072 .byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e 2073 .byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e 2074 .byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 2075 .byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf 2076 .byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 2077 .byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 2078 .byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 2079 .byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 2080 .byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 2081 .byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 2082 .byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc 2083 .byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 2084 .byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a 2085 .byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 2086 .byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 2087 .byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 2088 .byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b 2089 .byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf 2090 .byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 2091 .byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 2092 .byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 2093 .byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 2094 .byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 2095 .byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 2096 .byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 2097 .byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb 2098 .byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c 2099 .byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 2100 .byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 2101 .byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 2102 .byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 2103 .byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a 2104 .byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e 2105 .byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e 2106 .byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 2107 .byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf 2108 .byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 2109 .byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 2110 .byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 2111 .byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 2112 .byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 2113 .byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 2114 .byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc 2115 .byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 2116 .byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a 2117 .byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 2118 .byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 2119 .byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 2120 .byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b 2121 .byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf 2122 .byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 2123 .byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 2124 .byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 2125 .byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 2126 .byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 2127 .byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 2128 .byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 2129 .byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb 2130 .byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c 2131 .byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 2132 .byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 2133 .byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 2134 .byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 2135 .byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a 2136 .byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e 2137 .byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e 2138 .byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 2139 .byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf 2140 .byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 2141 .byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 2142 .long 0x00000001, 0x00000002, 0x00000004, 0x00000008 2143 .long 0x00000010, 0x00000020, 0x00000040, 0x00000080 2144 .long 0x0000001b, 0x00000036, 0x80808080, 0x80808080 2145 .long 0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b 2146 .align 64 2147 .LAES_Td: 2148 .long 0x50a7f451,0x50a7f451 2149 .long 0x5365417e,0x5365417e 2150 .long 0xc3a4171a,0xc3a4171a 2151 .long 0x965e273a,0x965e273a 2152 .long 0xcb6bab3b,0xcb6bab3b 2153 .long 0xf1459d1f,0xf1459d1f 2154 .long 0xab58faac,0xab58faac 2155 .long 0x9303e34b,0x9303e34b 2156 .long 0x55fa3020,0x55fa3020 2157 .long 0xf66d76ad,0xf66d76ad 2158 .long 0x9176cc88,0x9176cc88 2159 .long 0x254c02f5,0x254c02f5 2160 .long 0xfcd7e54f,0xfcd7e54f 2161 .long 0xd7cb2ac5,0xd7cb2ac5 2162 .long 0x80443526,0x80443526 2163 .long 0x8fa362b5,0x8fa362b5 2164 .long 0x495ab1de,0x495ab1de 2165 .long 0x671bba25,0x671bba25 2166 .long 0x980eea45,0x980eea45 2167 .long 0xe1c0fe5d,0xe1c0fe5d 2168 .long 0x02752fc3,0x02752fc3 2169 .long 0x12f04c81,0x12f04c81 2170 .long 0xa397468d,0xa397468d 2171 .long 0xc6f9d36b,0xc6f9d36b 2172 .long 0xe75f8f03,0xe75f8f03 2173 .long 0x959c9215,0x959c9215 2174 .long 0xeb7a6dbf,0xeb7a6dbf 2175 .long 0xda595295,0xda595295 2176 .long 0x2d83bed4,0x2d83bed4 2177 .long 0xd3217458,0xd3217458 2178 .long 0x2969e049,0x2969e049 2179 .long 0x44c8c98e,0x44c8c98e 2180 .long 0x6a89c275,0x6a89c275 2181 .long 0x78798ef4,0x78798ef4 2182 .long 0x6b3e5899,0x6b3e5899 2183 .long 0xdd71b927,0xdd71b927 2184 .long 0xb64fe1be,0xb64fe1be 2185 .long 0x17ad88f0,0x17ad88f0 2186 .long 0x66ac20c9,0x66ac20c9 2187 .long 0xb43ace7d,0xb43ace7d 2188 .long 0x184adf63,0x184adf63 2189 .long 0x82311ae5,0x82311ae5 2190 .long 0x60335197,0x60335197 2191 .long 0x457f5362,0x457f5362 2192 .long 0xe07764b1,0xe07764b1 2193 .long 0x84ae6bbb,0x84ae6bbb 2194 .long 0x1ca081fe,0x1ca081fe 2195 .long 0x942b08f9,0x942b08f9 2196 .long 0x58684870,0x58684870 2197 .long 0x19fd458f,0x19fd458f 2198 .long 0x876cde94,0x876cde94 2199 .long 0xb7f87b52,0xb7f87b52 2200 .long 0x23d373ab,0x23d373ab 2201 .long 0xe2024b72,0xe2024b72 2202 .long 0x578f1fe3,0x578f1fe3 2203 .long 0x2aab5566,0x2aab5566 2204 .long 0x0728ebb2,0x0728ebb2 2205 .long 0x03c2b52f,0x03c2b52f 2206 .long 0x9a7bc586,0x9a7bc586 2207 .long 0xa50837d3,0xa50837d3 2208 .long 0xf2872830,0xf2872830 2209 .long 0xb2a5bf23,0xb2a5bf23 2210 .long 0xba6a0302,0xba6a0302 2211 .long 0x5c8216ed,0x5c8216ed 2212 .long 0x2b1ccf8a,0x2b1ccf8a 2213 .long 0x92b479a7,0x92b479a7 2214 .long 0xf0f207f3,0xf0f207f3 2215 .long 0xa1e2694e,0xa1e2694e 2216 .long 0xcdf4da65,0xcdf4da65 2217 .long 0xd5be0506,0xd5be0506 2218 .long 0x1f6234d1,0x1f6234d1 2219 .long 0x8afea6c4,0x8afea6c4 2220 .long 0x9d532e34,0x9d532e34 2221 .long 0xa055f3a2,0xa055f3a2 2222 .long 0x32e18a05,0x32e18a05 2223 .long 0x75ebf6a4,0x75ebf6a4 2224 .long 0x39ec830b,0x39ec830b 2225 .long 0xaaef6040,0xaaef6040 2226 .long 0x069f715e,0x069f715e 2227 .long 0x51106ebd,0x51106ebd 2228 .long 0xf98a213e,0xf98a213e 2229 .long 0x3d06dd96,0x3d06dd96 2230 .long 0xae053edd,0xae053edd 2231 .long 0x46bde64d,0x46bde64d 2232 .long 0xb58d5491,0xb58d5491 2233 .long 0x055dc471,0x055dc471 2234 .long 0x6fd40604,0x6fd40604 2235 .long 0xff155060,0xff155060 2236 .long 0x24fb9819,0x24fb9819 2237 .long 0x97e9bdd6,0x97e9bdd6 2238 .long 0xcc434089,0xcc434089 2239 .long 0x779ed967,0x779ed967 2240 .long 0xbd42e8b0,0xbd42e8b0 2241 .long 0x888b8907,0x888b8907 2242 .long 0x385b19e7,0x385b19e7 2243 .long 0xdbeec879,0xdbeec879 2244 .long 0x470a7ca1,0x470a7ca1 2245 .long 0xe90f427c,0xe90f427c 2246 .long 0xc91e84f8,0xc91e84f8 2247 .long 0x00000000,0x00000000 2248 .long 0x83868009,0x83868009 2249 .long 0x48ed2b32,0x48ed2b32 2250 .long 0xac70111e,0xac70111e 2251 .long 0x4e725a6c,0x4e725a6c 2252 .long 0xfbff0efd,0xfbff0efd 2253 .long 0x5638850f,0x5638850f 2254 .long 0x1ed5ae3d,0x1ed5ae3d 2255 .long 0x27392d36,0x27392d36 2256 .long 0x64d90f0a,0x64d90f0a 2257 .long 0x21a65c68,0x21a65c68 2258 .long 0xd1545b9b,0xd1545b9b 2259 .long 0x3a2e3624,0x3a2e3624 2260 .long 0xb1670a0c,0xb1670a0c 2261 .long 0x0fe75793,0x0fe75793 2262 .long 0xd296eeb4,0xd296eeb4 2263 .long 0x9e919b1b,0x9e919b1b 2264 .long 0x4fc5c080,0x4fc5c080 2265 .long 0xa220dc61,0xa220dc61 2266 .long 0x694b775a,0x694b775a 2267 .long 0x161a121c,0x161a121c 2268 .long 0x0aba93e2,0x0aba93e2 2269 .long 0xe52aa0c0,0xe52aa0c0 2270 .long 0x43e0223c,0x43e0223c 2271 .long 0x1d171b12,0x1d171b12 2272 .long 0x0b0d090e,0x0b0d090e 2273 .long 0xadc78bf2,0xadc78bf2 2274 .long 0xb9a8b62d,0xb9a8b62d 2275 .long 0xc8a91e14,0xc8a91e14 2276 .long 0x8519f157,0x8519f157 2277 .long 0x4c0775af,0x4c0775af 2278 .long 0xbbdd99ee,0xbbdd99ee 2279 .long 0xfd607fa3,0xfd607fa3 2280 .long 0x9f2601f7,0x9f2601f7 2281 .long 0xbcf5725c,0xbcf5725c 2282 .long 0xc53b6644,0xc53b6644 2283 .long 0x347efb5b,0x347efb5b 2284 .long 0x7629438b,0x7629438b 2285 .long 0xdcc623cb,0xdcc623cb 2286 .long 0x68fcedb6,0x68fcedb6 2287 .long 0x63f1e4b8,0x63f1e4b8 2288 .long 0xcadc31d7,0xcadc31d7 2289 .long 0x10856342,0x10856342 2290 .long 0x40229713,0x40229713 2291 .long 0x2011c684,0x2011c684 2292 .long 0x7d244a85,0x7d244a85 2293 .long 0xf83dbbd2,0xf83dbbd2 2294 .long 0x1132f9ae,0x1132f9ae 2295 .long 0x6da129c7,0x6da129c7 2296 .long 0x4b2f9e1d,0x4b2f9e1d 2297 .long 0xf330b2dc,0xf330b2dc 2298 .long 0xec52860d,0xec52860d 2299 .long 0xd0e3c177,0xd0e3c177 2300 .long 0x6c16b32b,0x6c16b32b 2301 .long 0x99b970a9,0x99b970a9 2302 .long 0xfa489411,0xfa489411 2303 .long 0x2264e947,0x2264e947 2304 .long 0xc48cfca8,0xc48cfca8 2305 .long 0x1a3ff0a0,0x1a3ff0a0 2306 .long 0xd82c7d56,0xd82c7d56 2307 .long 0xef903322,0xef903322 2308 .long 0xc74e4987,0xc74e4987 2309 .long 0xc1d138d9,0xc1d138d9 2310 .long 0xfea2ca8c,0xfea2ca8c 2311 .long 0x360bd498,0x360bd498 2312 .long 0xcf81f5a6,0xcf81f5a6 2313 .long 0x28de7aa5,0x28de7aa5 2314 .long 0x268eb7da,0x268eb7da 2315 .long 0xa4bfad3f,0xa4bfad3f 2316 .long 0xe49d3a2c,0xe49d3a2c 2317 .long 0x0d927850,0x0d927850 2318 .long 0x9bcc5f6a,0x9bcc5f6a 2319 .long 0x62467e54,0x62467e54 2320 .long 0xc2138df6,0xc2138df6 2321 .long 0xe8b8d890,0xe8b8d890 2322 .long 0x5ef7392e,0x5ef7392e 2323 .long 0xf5afc382,0xf5afc382 2324 .long 0xbe805d9f,0xbe805d9f 2325 .long 0x7c93d069,0x7c93d069 2326 .long 0xa92dd56f,0xa92dd56f 2327 .long 0xb31225cf,0xb31225cf 2328 .long 0x3b99acc8,0x3b99acc8 2329 .long 0xa77d1810,0xa77d1810 2330 .long 0x6e639ce8,0x6e639ce8 2331 .long 0x7bbb3bdb,0x7bbb3bdb 2332 .long 0x097826cd,0x097826cd 2333 .long 0xf418596e,0xf418596e 2334 .long 0x01b79aec,0x01b79aec 2335 .long 0xa89a4f83,0xa89a4f83 2336 .long 0x656e95e6,0x656e95e6 2337 .long 0x7ee6ffaa,0x7ee6ffaa 2338 .long 0x08cfbc21,0x08cfbc21 2339 .long 0xe6e815ef,0xe6e815ef 2340 .long 0xd99be7ba,0xd99be7ba 2341 .long 0xce366f4a,0xce366f4a 2342 .long 0xd4099fea,0xd4099fea 2343 .long 0xd67cb029,0xd67cb029 2344 .long 0xafb2a431,0xafb2a431 2345 .long 0x31233f2a,0x31233f2a 2346 .long 0x3094a5c6,0x3094a5c6 2347 .long 0xc066a235,0xc066a235 2348 .long 0x37bc4e74,0x37bc4e74 2349 .long 0xa6ca82fc,0xa6ca82fc 2350 .long 0xb0d090e0,0xb0d090e0 2351 .long 0x15d8a733,0x15d8a733 2352 .long 0x4a9804f1,0x4a9804f1 2353 .long 0xf7daec41,0xf7daec41 2354 .long 0x0e50cd7f,0x0e50cd7f 2355 .long 0x2ff69117,0x2ff69117 2356 .long 0x8dd64d76,0x8dd64d76 2357 .long 0x4db0ef43,0x4db0ef43 2358 .long 0x544daacc,0x544daacc 2359 .long 0xdf0496e4,0xdf0496e4 2360 .long 0xe3b5d19e,0xe3b5d19e 2361 .long 0x1b886a4c,0x1b886a4c 2362 .long 0xb81f2cc1,0xb81f2cc1 2363 .long 0x7f516546,0x7f516546 2364 .long 0x04ea5e9d,0x04ea5e9d 2365 .long 0x5d358c01,0x5d358c01 2366 .long 0x737487fa,0x737487fa 2367 .long 0x2e410bfb,0x2e410bfb 2368 .long 0x5a1d67b3,0x5a1d67b3 2369 .long 0x52d2db92,0x52d2db92 2370 .long 0x335610e9,0x335610e9 2371 .long 0x1347d66d,0x1347d66d 2372 .long 0x8c61d79a,0x8c61d79a 2373 .long 0x7a0ca137,0x7a0ca137 2374 .long 0x8e14f859,0x8e14f859 2375 .long 0x893c13eb,0x893c13eb 2376 .long 0xee27a9ce,0xee27a9ce 2377 .long 0x35c961b7,0x35c961b7 2378 .long 0xede51ce1,0xede51ce1 2379 .long 0x3cb1477a,0x3cb1477a 2380 .long 0x59dfd29c,0x59dfd29c 2381 .long 0x3f73f255,0x3f73f255 2382 .long 0x79ce1418,0x79ce1418 2383 .long 0xbf37c773,0xbf37c773 2384 .long 0xeacdf753,0xeacdf753 2385 .long 0x5baafd5f,0x5baafd5f 2386 .long 0x146f3ddf,0x146f3ddf 2387 .long 0x86db4478,0x86db4478 2388 .long 0x81f3afca,0x81f3afca 2389 .long 0x3ec468b9,0x3ec468b9 2390 .long 0x2c342438,0x2c342438 2391 .long 0x5f40a3c2,0x5f40a3c2 2392 .long 0x72c31d16,0x72c31d16 2393 .long 0x0c25e2bc,0x0c25e2bc 2394 .long 0x8b493c28,0x8b493c28 2395 .long 0x41950dff,0x41950dff 2396 .long 0x7101a839,0x7101a839 2397 .long 0xdeb30c08,0xdeb30c08 2398 .long 0x9ce4b4d8,0x9ce4b4d8 2399 .long 0x90c15664,0x90c15664 2400 .long 0x6184cb7b,0x6184cb7b 2401 .long 0x70b632d5,0x70b632d5 2402 .long 0x745c6c48,0x745c6c48 2403 .long 0x4257b8d0,0x4257b8d0 2404 .byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 2405 .byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb 2406 .byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 2407 .byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb 2408 .byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d 2409 .byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e 2410 .byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 2411 .byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 2412 .byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 2413 .byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 2414 .byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda 2415 .byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 2416 .byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a 2417 .byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 2418 .byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 2419 .byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b 2420 .byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea 2421 .byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 2422 .byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 2423 .byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e 2424 .byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 2425 .byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b 2426 .byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 2427 .byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 2428 .byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 2429 .byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f 2430 .byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d 2431 .byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef 2432 .byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 2433 .byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 2434 .byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 2435 .byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d 2436 .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe 2437 .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 2438 .byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 2439 .byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb 2440 .byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 2441 .byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb 2442 .byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d 2443 .byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e 2444 .byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 2445 .byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 2446 .byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 2447 .byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 2448 .byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda 2449 .byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 2450 .byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a 2451 .byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 2452 .byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 2453 .byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b 2454 .byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea 2455 .byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 2456 .byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 2457 .byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e 2458 .byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 2459 .byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b 2460 .byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 2461 .byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 2462 .byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 2463 .byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f 2464 .byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d 2465 .byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef 2466 .byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 2467 .byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 2468 .byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 2469 .byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d 2470 .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe 2471 .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 2472 .byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 2473 .byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb 2474 .byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 2475 .byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb 2476 .byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d 2477 .byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e 2478 .byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 2479 .byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 2480 .byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 2481 .byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 2482 .byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda 2483 .byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 2484 .byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a 2485 .byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 2486 .byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 2487 .byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b 2488 .byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea 2489 .byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 2490 .byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 2491 .byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e 2492 .byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 2493 .byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b 2494 .byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 2495 .byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 2496 .byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 2497 .byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f 2498 .byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d 2499 .byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef 2500 .byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 2501 .byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 2502 .byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 2503 .byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d 2504 .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe 2505 .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 2506 .byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 2507 .byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb 2508 .byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 2509 .byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb 2510 .byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d 2511 .byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e 2512 .byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 2513 .byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 2514 .byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 2515 .byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 2516 .byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda 2517 .byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 2518 .byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a 2519 .byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 2520 .byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 2521 .byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b 2522 .byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea 2523 .byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 2524 .byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 2525 .byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e 2526 .byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 2527 .byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b 2528 .byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 2529 .byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 2530 .byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 2531 .byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f 2532 .byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d 2533 .byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef 2534 .byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 2535 .byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 2536 .byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 2537 .byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d 2538 .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe 2539 .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 2540 .byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 2541 .align 64 2542