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