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