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