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