1; 1 "crypto/aes/aes-masm-x86_64.S.tmp" 2; 1 "<built-in>" 1 3; 1 "<built-in>" 3 4; 340 "<built-in>" 3 5; 1 "<command line>" 1 6; 1 "<built-in>" 2 7; 1 "crypto/aes/aes-masm-x86_64.S.tmp" 2 8OPTION DOTNAME 9 10; 1 "./crypto/x86_arch.h" 1 11 12 13; 16 "./crypto/x86_arch.h" 14 15 16 17 18 19 20 21 22 23; 40 "./crypto/x86_arch.h" 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69; 3 "crypto/aes/aes-masm-x86_64.S.tmp" 2 70 71.text$ SEGMENT ALIGN(64) 'CODE' 72 73ALIGN 16 74_x86_64_AES_encrypt PROC PRIVATE 75 xor eax,DWORD PTR[r15] 76 xor ebx,DWORD PTR[4+r15] 77 xor ecx,DWORD PTR[8+r15] 78 xor edx,DWORD PTR[12+r15] 79 80 mov r13d,DWORD PTR[240+r15] 81 sub r13d,1 82 jmp $L$enc_loop 83ALIGN 16 84$L$enc_loop:: 85 86 movzx esi,al 87 movzx edi,bl 88 movzx ebp,cl 89 mov r10d,DWORD PTR[rsi*8+r14] 90 mov r11d,DWORD PTR[rdi*8+r14] 91 mov r12d,DWORD PTR[rbp*8+r14] 92 93 movzx esi,bh 94 movzx edi,ch 95 movzx ebp,dl 96 xor r10d,DWORD PTR[3+rsi*8+r14] 97 xor r11d,DWORD PTR[3+rdi*8+r14] 98 mov r8d,DWORD PTR[rbp*8+r14] 99 100 movzx esi,dh 101 shr ecx,16 102 movzx ebp,ah 103 xor r12d,DWORD PTR[3+rsi*8+r14] 104 shr edx,16 105 xor r8d,DWORD PTR[3+rbp*8+r14] 106 107 shr ebx,16 108 lea r15,QWORD PTR[16+r15] 109 shr eax,16 110 111 movzx esi,cl 112 movzx edi,dl 113 movzx ebp,al 114 xor r10d,DWORD PTR[2+rsi*8+r14] 115 xor r11d,DWORD PTR[2+rdi*8+r14] 116 xor r12d,DWORD PTR[2+rbp*8+r14] 117 118 movzx esi,dh 119 movzx edi,ah 120 movzx ebp,bl 121 xor r10d,DWORD PTR[1+rsi*8+r14] 122 xor r11d,DWORD PTR[1+rdi*8+r14] 123 xor r8d,DWORD PTR[2+rbp*8+r14] 124 125 mov edx,DWORD PTR[12+r15] 126 movzx edi,bh 127 movzx ebp,ch 128 mov eax,DWORD PTR[r15] 129 xor r12d,DWORD PTR[1+rdi*8+r14] 130 xor r8d,DWORD PTR[1+rbp*8+r14] 131 132 mov ebx,DWORD PTR[4+r15] 133 mov ecx,DWORD PTR[8+r15] 134 xor eax,r10d 135 xor ebx,r11d 136 xor ecx,r12d 137 xor edx,r8d 138 sub r13d,1 139 jnz $L$enc_loop 140 movzx esi,al 141 movzx edi,bl 142 movzx ebp,cl 143 movzx r10d,BYTE PTR[2+rsi*8+r14] 144 movzx r11d,BYTE PTR[2+rdi*8+r14] 145 movzx r12d,BYTE PTR[2+rbp*8+r14] 146 147 movzx esi,dl 148 movzx edi,bh 149 movzx ebp,ch 150 movzx r8d,BYTE PTR[2+rsi*8+r14] 151 mov edi,DWORD PTR[rdi*8+r14] 152 mov ebp,DWORD PTR[rbp*8+r14] 153 154 and edi,00000ff00h 155 and ebp,00000ff00h 156 157 xor r10d,edi 158 xor r11d,ebp 159 shr ecx,16 160 161 movzx esi,dh 162 movzx edi,ah 163 shr edx,16 164 mov esi,DWORD PTR[rsi*8+r14] 165 mov edi,DWORD PTR[rdi*8+r14] 166 167 and esi,00000ff00h 168 and edi,00000ff00h 169 shr ebx,16 170 xor r12d,esi 171 xor r8d,edi 172 shr eax,16 173 174 movzx esi,cl 175 movzx edi,dl 176 movzx ebp,al 177 mov esi,DWORD PTR[rsi*8+r14] 178 mov edi,DWORD PTR[rdi*8+r14] 179 mov ebp,DWORD PTR[rbp*8+r14] 180 181 and esi,000ff0000h 182 and edi,000ff0000h 183 and ebp,000ff0000h 184 185 xor r10d,esi 186 xor r11d,edi 187 xor r12d,ebp 188 189 movzx esi,bl 190 movzx edi,dh 191 movzx ebp,ah 192 mov esi,DWORD PTR[rsi*8+r14] 193 mov edi,DWORD PTR[2+rdi*8+r14] 194 mov ebp,DWORD PTR[2+rbp*8+r14] 195 196 and esi,000ff0000h 197 and edi,0ff000000h 198 and ebp,0ff000000h 199 200 xor r8d,esi 201 xor r10d,edi 202 xor r11d,ebp 203 204 movzx esi,bh 205 movzx edi,ch 206 mov edx,DWORD PTR[((16+12))+r15] 207 mov esi,DWORD PTR[2+rsi*8+r14] 208 mov edi,DWORD PTR[2+rdi*8+r14] 209 mov eax,DWORD PTR[((16+0))+r15] 210 211 and esi,0ff000000h 212 and edi,0ff000000h 213 214 xor r12d,esi 215 xor r8d,edi 216 217 mov ebx,DWORD PTR[((16+4))+r15] 218 mov ecx,DWORD PTR[((16+8))+r15] 219 xor eax,r10d 220 xor ebx,r11d 221 xor ecx,r12d 222 xor edx,r8d 223 DB 0F3h,0C3h ;repret 224_x86_64_AES_encrypt ENDP 225 226ALIGN 16 227_x86_64_AES_encrypt_compact PROC PRIVATE 228 lea r8,QWORD PTR[128+r14] 229 mov edi,DWORD PTR[((0-128))+r8] 230 mov ebp,DWORD PTR[((32-128))+r8] 231 mov r10d,DWORD PTR[((64-128))+r8] 232 mov r11d,DWORD PTR[((96-128))+r8] 233 mov edi,DWORD PTR[((128-128))+r8] 234 mov ebp,DWORD PTR[((160-128))+r8] 235 mov r10d,DWORD PTR[((192-128))+r8] 236 mov r11d,DWORD PTR[((224-128))+r8] 237 jmp $L$enc_loop_compact 238ALIGN 16 239$L$enc_loop_compact:: 240 xor eax,DWORD PTR[r15] 241 xor ebx,DWORD PTR[4+r15] 242 xor ecx,DWORD PTR[8+r15] 243 xor edx,DWORD PTR[12+r15] 244 lea r15,QWORD PTR[16+r15] 245 movzx r10d,al 246 movzx r11d,bl 247 movzx r12d,cl 248 movzx r10d,BYTE PTR[r10*1+r14] 249 movzx r11d,BYTE PTR[r11*1+r14] 250 movzx r12d,BYTE PTR[r12*1+r14] 251 252 movzx r8d,dl 253 movzx esi,bh 254 movzx edi,ch 255 movzx r8d,BYTE PTR[r8*1+r14] 256 movzx r9d,BYTE PTR[rsi*1+r14] 257 movzx r13d,BYTE PTR[rdi*1+r14] 258 259 movzx ebp,dh 260 movzx esi,ah 261 shr ecx,16 262 movzx ebp,BYTE PTR[rbp*1+r14] 263 movzx esi,BYTE PTR[rsi*1+r14] 264 shr edx,16 265 266 movzx edi,cl 267 shl r9d,8 268 shl r13d,8 269 movzx edi,BYTE PTR[rdi*1+r14] 270 xor r10d,r9d 271 xor r11d,r13d 272 273 movzx r9d,dl 274 shr eax,16 275 shr ebx,16 276 movzx r13d,al 277 shl ebp,8 278 shl esi,8 279 movzx r9d,BYTE PTR[r9*1+r14] 280 movzx r13d,BYTE PTR[r13*1+r14] 281 xor r12d,ebp 282 xor r8d,esi 283 284 movzx ebp,bl 285 movzx esi,dh 286 shl edi,16 287 movzx ebp,BYTE PTR[rbp*1+r14] 288 movzx esi,BYTE PTR[rsi*1+r14] 289 xor r10d,edi 290 291 movzx edi,ah 292 shr ecx,8 293 shr ebx,8 294 movzx edi,BYTE PTR[rdi*1+r14] 295 movzx edx,BYTE PTR[rcx*1+r14] 296 movzx ecx,BYTE PTR[rbx*1+r14] 297 shl r9d,16 298 shl r13d,16 299 shl ebp,16 300 xor r11d,r9d 301 xor r12d,r13d 302 xor r8d,ebp 303 304 shl esi,24 305 shl edi,24 306 shl edx,24 307 xor r10d,esi 308 shl ecx,24 309 xor r11d,edi 310 mov eax,r10d 311 mov ebx,r11d 312 xor ecx,r12d 313 xor edx,r8d 314 cmp r15,QWORD PTR[16+rsp] 315 je $L$enc_compact_done 316 mov esi,eax 317 mov edi,ebx 318 and esi,080808080h 319 and edi,080808080h 320 mov r10d,esi 321 mov r11d,edi 322 shr r10d,7 323 lea r8d,DWORD PTR[rax*1+rax] 324 shr r11d,7 325 lea r9d,DWORD PTR[rbx*1+rbx] 326 sub esi,r10d 327 sub edi,r11d 328 and r8d,0fefefefeh 329 and r9d,0fefefefeh 330 and esi,01b1b1b1bh 331 and edi,01b1b1b1bh 332 mov r10d,eax 333 mov r11d,ebx 334 xor r8d,esi 335 xor r9d,edi 336 337 xor eax,r8d 338 xor ebx,r9d 339 mov esi,ecx 340 mov edi,edx 341 rol eax,24 342 rol ebx,24 343 and esi,080808080h 344 and edi,080808080h 345 xor eax,r8d 346 xor ebx,r9d 347 mov r12d,esi 348 mov ebp,edi 349 ror r10d,16 350 ror r11d,16 351 shr r12d,7 352 lea r8d,DWORD PTR[rcx*1+rcx] 353 xor eax,r10d 354 xor ebx,r11d 355 shr ebp,7 356 lea r9d,DWORD PTR[rdx*1+rdx] 357 ror r10d,8 358 ror r11d,8 359 sub esi,r12d 360 sub edi,ebp 361 xor eax,r10d 362 xor ebx,r11d 363 364 and r8d,0fefefefeh 365 and r9d,0fefefefeh 366 and esi,01b1b1b1bh 367 and edi,01b1b1b1bh 368 mov r12d,ecx 369 mov ebp,edx 370 xor r8d,esi 371 xor r9d,edi 372 373 xor ecx,r8d 374 xor edx,r9d 375 rol ecx,24 376 rol edx,24 377 xor ecx,r8d 378 xor edx,r9d 379 mov esi,DWORD PTR[r14] 380 ror r12d,16 381 ror ebp,16 382 mov edi,DWORD PTR[64+r14] 383 xor ecx,r12d 384 xor edx,ebp 385 mov r8d,DWORD PTR[128+r14] 386 ror r12d,8 387 ror ebp,8 388 mov r9d,DWORD PTR[192+r14] 389 xor ecx,r12d 390 xor edx,ebp 391 jmp $L$enc_loop_compact 392ALIGN 16 393$L$enc_compact_done:: 394 xor eax,DWORD PTR[r15] 395 xor ebx,DWORD PTR[4+r15] 396 xor ecx,DWORD PTR[8+r15] 397 xor edx,DWORD PTR[12+r15] 398 DB 0F3h,0C3h ;repret 399_x86_64_AES_encrypt_compact ENDP 400PUBLIC AES_encrypt 401 402ALIGN 16 403PUBLIC asm_AES_encrypt 404 405asm_AES_encrypt:: 406AES_encrypt PROC PUBLIC 407 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 408 mov QWORD PTR[16+rsp],rsi 409 mov rax,rsp 410$L$SEH_begin_AES_encrypt:: 411 mov rdi,rcx 412 mov rsi,rdx 413 mov rdx,r8 414 415 416 push rbx 417 push rbp 418 push r12 419 push r13 420 push r14 421 push r15 422 423 424 mov r10,rsp 425 lea rcx,QWORD PTR[((-63))+rdx] 426 and rsp,-64 427 sub rcx,rsp 428 neg rcx 429 and rcx,03c0h 430 sub rsp,rcx 431 sub rsp,32 432 433 mov QWORD PTR[16+rsp],rsi 434 mov QWORD PTR[24+rsp],r10 435$L$enc_prologue:: 436 437 mov r15,rdx 438 mov r13d,DWORD PTR[240+r15] 439 440 mov eax,DWORD PTR[rdi] 441 mov ebx,DWORD PTR[4+rdi] 442 mov ecx,DWORD PTR[8+rdi] 443 mov edx,DWORD PTR[12+rdi] 444 445 shl r13d,4 446 lea rbp,QWORD PTR[r13*1+r15] 447 mov QWORD PTR[rsp],r15 448 mov QWORD PTR[8+rsp],rbp 449 450 451 lea r14,QWORD PTR[(($L$AES_Te+2048))] 452 lea rbp,QWORD PTR[768+rsp] 453 sub rbp,r14 454 and rbp,0300h 455 lea r14,QWORD PTR[rbp*1+r14] 456 457 call _x86_64_AES_encrypt_compact 458 459 mov r9,QWORD PTR[16+rsp] 460 mov rsi,QWORD PTR[24+rsp] 461 mov DWORD PTR[r9],eax 462 mov DWORD PTR[4+r9],ebx 463 mov DWORD PTR[8+r9],ecx 464 mov DWORD PTR[12+r9],edx 465 466 mov r15,QWORD PTR[rsi] 467 mov r14,QWORD PTR[8+rsi] 468 mov r13,QWORD PTR[16+rsi] 469 mov r12,QWORD PTR[24+rsi] 470 mov rbp,QWORD PTR[32+rsi] 471 mov rbx,QWORD PTR[40+rsi] 472 lea rsp,QWORD PTR[48+rsi] 473$L$enc_epilogue:: 474 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 475 mov rsi,QWORD PTR[16+rsp] 476 DB 0F3h,0C3h ;repret 477$L$SEH_end_AES_encrypt:: 478AES_encrypt ENDP 479 480ALIGN 16 481_x86_64_AES_decrypt PROC PRIVATE 482 xor eax,DWORD PTR[r15] 483 xor ebx,DWORD PTR[4+r15] 484 xor ecx,DWORD PTR[8+r15] 485 xor edx,DWORD PTR[12+r15] 486 487 mov r13d,DWORD PTR[240+r15] 488 sub r13d,1 489 jmp $L$dec_loop 490ALIGN 16 491$L$dec_loop:: 492 493 movzx esi,al 494 movzx edi,bl 495 movzx ebp,cl 496 mov r10d,DWORD PTR[rsi*8+r14] 497 mov r11d,DWORD PTR[rdi*8+r14] 498 mov r12d,DWORD PTR[rbp*8+r14] 499 500 movzx esi,dh 501 movzx edi,ah 502 movzx ebp,dl 503 xor r10d,DWORD PTR[3+rsi*8+r14] 504 xor r11d,DWORD PTR[3+rdi*8+r14] 505 mov r8d,DWORD PTR[rbp*8+r14] 506 507 movzx esi,bh 508 shr eax,16 509 movzx ebp,ch 510 xor r12d,DWORD PTR[3+rsi*8+r14] 511 shr edx,16 512 xor r8d,DWORD PTR[3+rbp*8+r14] 513 514 shr ebx,16 515 lea r15,QWORD PTR[16+r15] 516 shr ecx,16 517 518 movzx esi,cl 519 movzx edi,dl 520 movzx ebp,al 521 xor r10d,DWORD PTR[2+rsi*8+r14] 522 xor r11d,DWORD PTR[2+rdi*8+r14] 523 xor r12d,DWORD PTR[2+rbp*8+r14] 524 525 movzx esi,bh 526 movzx edi,ch 527 movzx ebp,bl 528 xor r10d,DWORD PTR[1+rsi*8+r14] 529 xor r11d,DWORD PTR[1+rdi*8+r14] 530 xor r8d,DWORD PTR[2+rbp*8+r14] 531 532 movzx esi,dh 533 mov edx,DWORD PTR[12+r15] 534 movzx ebp,ah 535 xor r12d,DWORD PTR[1+rsi*8+r14] 536 mov eax,DWORD PTR[r15] 537 xor r8d,DWORD PTR[1+rbp*8+r14] 538 539 xor eax,r10d 540 mov ebx,DWORD PTR[4+r15] 541 mov ecx,DWORD PTR[8+r15] 542 xor ecx,r12d 543 xor ebx,r11d 544 xor edx,r8d 545 sub r13d,1 546 jnz $L$dec_loop 547 lea r14,QWORD PTR[2048+r14] 548 movzx esi,al 549 movzx edi,bl 550 movzx ebp,cl 551 movzx r10d,BYTE PTR[rsi*1+r14] 552 movzx r11d,BYTE PTR[rdi*1+r14] 553 movzx r12d,BYTE PTR[rbp*1+r14] 554 555 movzx esi,dl 556 movzx edi,dh 557 movzx ebp,ah 558 movzx r8d,BYTE PTR[rsi*1+r14] 559 movzx edi,BYTE PTR[rdi*1+r14] 560 movzx ebp,BYTE PTR[rbp*1+r14] 561 562 shl edi,8 563 shl ebp,8 564 565 xor r10d,edi 566 xor r11d,ebp 567 shr edx,16 568 569 movzx esi,bh 570 movzx edi,ch 571 shr eax,16 572 movzx esi,BYTE PTR[rsi*1+r14] 573 movzx edi,BYTE PTR[rdi*1+r14] 574 575 shl esi,8 576 shl edi,8 577 shr ebx,16 578 xor r12d,esi 579 xor r8d,edi 580 shr ecx,16 581 582 movzx esi,cl 583 movzx edi,dl 584 movzx ebp,al 585 movzx esi,BYTE PTR[rsi*1+r14] 586 movzx edi,BYTE PTR[rdi*1+r14] 587 movzx ebp,BYTE PTR[rbp*1+r14] 588 589 shl esi,16 590 shl edi,16 591 shl ebp,16 592 593 xor r10d,esi 594 xor r11d,edi 595 xor r12d,ebp 596 597 movzx esi,bl 598 movzx edi,bh 599 movzx ebp,ch 600 movzx esi,BYTE PTR[rsi*1+r14] 601 movzx edi,BYTE PTR[rdi*1+r14] 602 movzx ebp,BYTE PTR[rbp*1+r14] 603 604 shl esi,16 605 shl edi,24 606 shl ebp,24 607 608 xor r8d,esi 609 xor r10d,edi 610 xor r11d,ebp 611 612 movzx esi,dh 613 movzx edi,ah 614 mov edx,DWORD PTR[((16+12))+r15] 615 movzx esi,BYTE PTR[rsi*1+r14] 616 movzx edi,BYTE PTR[rdi*1+r14] 617 mov eax,DWORD PTR[((16+0))+r15] 618 619 shl esi,24 620 shl edi,24 621 622 xor r12d,esi 623 xor r8d,edi 624 625 mov ebx,DWORD PTR[((16+4))+r15] 626 mov ecx,DWORD PTR[((16+8))+r15] 627 lea r14,QWORD PTR[((-2048))+r14] 628 xor eax,r10d 629 xor ebx,r11d 630 xor ecx,r12d 631 xor edx,r8d 632 DB 0F3h,0C3h ;repret 633_x86_64_AES_decrypt ENDP 634 635ALIGN 16 636_x86_64_AES_decrypt_compact PROC PRIVATE 637 lea r8,QWORD PTR[128+r14] 638 mov edi,DWORD PTR[((0-128))+r8] 639 mov ebp,DWORD PTR[((32-128))+r8] 640 mov r10d,DWORD PTR[((64-128))+r8] 641 mov r11d,DWORD PTR[((96-128))+r8] 642 mov edi,DWORD PTR[((128-128))+r8] 643 mov ebp,DWORD PTR[((160-128))+r8] 644 mov r10d,DWORD PTR[((192-128))+r8] 645 mov r11d,DWORD PTR[((224-128))+r8] 646 jmp $L$dec_loop_compact 647 648ALIGN 16 649$L$dec_loop_compact:: 650 xor eax,DWORD PTR[r15] 651 xor ebx,DWORD PTR[4+r15] 652 xor ecx,DWORD PTR[8+r15] 653 xor edx,DWORD PTR[12+r15] 654 lea r15,QWORD PTR[16+r15] 655 movzx r10d,al 656 movzx r11d,bl 657 movzx r12d,cl 658 movzx r10d,BYTE PTR[r10*1+r14] 659 movzx r11d,BYTE PTR[r11*1+r14] 660 movzx r12d,BYTE PTR[r12*1+r14] 661 662 movzx r8d,dl 663 movzx esi,dh 664 movzx edi,ah 665 movzx r8d,BYTE PTR[r8*1+r14] 666 movzx r9d,BYTE PTR[rsi*1+r14] 667 movzx r13d,BYTE PTR[rdi*1+r14] 668 669 movzx ebp,bh 670 movzx esi,ch 671 shr ecx,16 672 movzx ebp,BYTE PTR[rbp*1+r14] 673 movzx esi,BYTE PTR[rsi*1+r14] 674 shr edx,16 675 676 movzx edi,cl 677 shl r9d,8 678 shl r13d,8 679 movzx edi,BYTE PTR[rdi*1+r14] 680 xor r10d,r9d 681 xor r11d,r13d 682 683 movzx r9d,dl 684 shr eax,16 685 shr ebx,16 686 movzx r13d,al 687 shl ebp,8 688 shl esi,8 689 movzx r9d,BYTE PTR[r9*1+r14] 690 movzx r13d,BYTE PTR[r13*1+r14] 691 xor r12d,ebp 692 xor r8d,esi 693 694 movzx ebp,bl 695 movzx esi,bh 696 shl edi,16 697 movzx ebp,BYTE PTR[rbp*1+r14] 698 movzx esi,BYTE PTR[rsi*1+r14] 699 xor r10d,edi 700 701 movzx edi,ch 702 shl r9d,16 703 shl r13d,16 704 movzx ebx,BYTE PTR[rdi*1+r14] 705 xor r11d,r9d 706 xor r12d,r13d 707 708 movzx edi,dh 709 shr eax,8 710 shl ebp,16 711 movzx ecx,BYTE PTR[rdi*1+r14] 712 movzx edx,BYTE PTR[rax*1+r14] 713 xor r8d,ebp 714 715 shl esi,24 716 shl ebx,24 717 shl ecx,24 718 xor r10d,esi 719 shl edx,24 720 xor ebx,r11d 721 mov eax,r10d 722 xor ecx,r12d 723 xor edx,r8d 724 cmp r15,QWORD PTR[16+rsp] 725 je $L$dec_compact_done 726 727 mov rsi,QWORD PTR[((256+0))+r14] 728 shl rbx,32 729 shl rdx,32 730 mov rdi,QWORD PTR[((256+8))+r14] 731 or rax,rbx 732 or rcx,rdx 733 mov rbp,QWORD PTR[((256+16))+r14] 734 mov rbx,rax 735 mov rdx,rcx 736 and rbx,rsi 737 and rdx,rsi 738 mov r9,rbx 739 mov r12,rdx 740 shr r9,7 741 lea r8,QWORD PTR[rax*1+rax] 742 shr r12,7 743 lea r11,QWORD PTR[rcx*1+rcx] 744 sub rbx,r9 745 sub rdx,r12 746 and r8,rdi 747 and r11,rdi 748 and rbx,rbp 749 and rdx,rbp 750 xor rbx,r8 751 xor rdx,r11 752 mov r8,rbx 753 mov r11,rdx 754 755 and rbx,rsi 756 and rdx,rsi 757 mov r10,rbx 758 mov r13,rdx 759 shr r10,7 760 lea r9,QWORD PTR[r8*1+r8] 761 shr r13,7 762 lea r12,QWORD PTR[r11*1+r11] 763 sub rbx,r10 764 sub rdx,r13 765 and r9,rdi 766 and r12,rdi 767 and rbx,rbp 768 and rdx,rbp 769 xor rbx,r9 770 xor rdx,r12 771 mov r9,rbx 772 mov r12,rdx 773 774 and rbx,rsi 775 and rdx,rsi 776 mov r10,rbx 777 mov r13,rdx 778 shr r10,7 779 xor r8,rax 780 shr r13,7 781 xor r11,rcx 782 sub rbx,r10 783 sub rdx,r13 784 lea r10,QWORD PTR[r9*1+r9] 785 lea r13,QWORD PTR[r12*1+r12] 786 xor r9,rax 787 xor r12,rcx 788 and r10,rdi 789 and r13,rdi 790 and rbx,rbp 791 and rdx,rbp 792 xor r10,rbx 793 xor r13,rdx 794 795 xor rax,r10 796 xor rcx,r13 797 xor r8,r10 798 xor r11,r13 799 mov rbx,rax 800 mov rdx,rcx 801 xor r9,r10 802 xor r12,r13 803 shr rbx,32 804 shr rdx,32 805 xor r10,r8 806 xor r13,r11 807 rol eax,8 808 rol ecx,8 809 xor r10,r9 810 xor r13,r12 811 812 rol ebx,8 813 rol edx,8 814 xor eax,r10d 815 xor ecx,r13d 816 shr r10,32 817 shr r13,32 818 xor ebx,r10d 819 xor edx,r13d 820 821 mov r10,r8 822 mov r13,r11 823 shr r10,32 824 shr r13,32 825 rol r8d,24 826 rol r11d,24 827 rol r10d,24 828 rol r13d,24 829 xor eax,r8d 830 xor ecx,r11d 831 mov r8,r9 832 mov r11,r12 833 xor ebx,r10d 834 xor edx,r13d 835 836 mov rsi,QWORD PTR[r14] 837 shr r8,32 838 shr r11,32 839 mov rdi,QWORD PTR[64+r14] 840 rol r9d,16 841 rol r12d,16 842 mov rbp,QWORD PTR[128+r14] 843 rol r8d,16 844 rol r11d,16 845 mov r10,QWORD PTR[192+r14] 846 xor eax,r9d 847 xor ecx,r12d 848 mov r13,QWORD PTR[256+r14] 849 xor ebx,r8d 850 xor edx,r11d 851 jmp $L$dec_loop_compact 852ALIGN 16 853$L$dec_compact_done:: 854 xor eax,DWORD PTR[r15] 855 xor ebx,DWORD PTR[4+r15] 856 xor ecx,DWORD PTR[8+r15] 857 xor edx,DWORD PTR[12+r15] 858 DB 0F3h,0C3h ;repret 859_x86_64_AES_decrypt_compact ENDP 860PUBLIC AES_decrypt 861 862ALIGN 16 863PUBLIC asm_AES_decrypt 864 865asm_AES_decrypt:: 866AES_decrypt PROC PUBLIC 867 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 868 mov QWORD PTR[16+rsp],rsi 869 mov rax,rsp 870$L$SEH_begin_AES_decrypt:: 871 mov rdi,rcx 872 mov rsi,rdx 873 mov rdx,r8 874 875 876 push rbx 877 push rbp 878 push r12 879 push r13 880 push r14 881 push r15 882 883 884 mov r10,rsp 885 lea rcx,QWORD PTR[((-63))+rdx] 886 and rsp,-64 887 sub rcx,rsp 888 neg rcx 889 and rcx,03c0h 890 sub rsp,rcx 891 sub rsp,32 892 893 mov QWORD PTR[16+rsp],rsi 894 mov QWORD PTR[24+rsp],r10 895$L$dec_prologue:: 896 897 mov r15,rdx 898 mov r13d,DWORD PTR[240+r15] 899 900 mov eax,DWORD PTR[rdi] 901 mov ebx,DWORD PTR[4+rdi] 902 mov ecx,DWORD PTR[8+rdi] 903 mov edx,DWORD PTR[12+rdi] 904 905 shl r13d,4 906 lea rbp,QWORD PTR[r13*1+r15] 907 mov QWORD PTR[rsp],r15 908 mov QWORD PTR[8+rsp],rbp 909 910 911 lea r14,QWORD PTR[(($L$AES_Td+2048))] 912 lea rbp,QWORD PTR[768+rsp] 913 sub rbp,r14 914 and rbp,0300h 915 lea r14,QWORD PTR[rbp*1+r14] 916 shr rbp,3 917 add r14,rbp 918 919 call _x86_64_AES_decrypt_compact 920 921 mov r9,QWORD PTR[16+rsp] 922 mov rsi,QWORD PTR[24+rsp] 923 mov DWORD PTR[r9],eax 924 mov DWORD PTR[4+r9],ebx 925 mov DWORD PTR[8+r9],ecx 926 mov DWORD PTR[12+r9],edx 927 928 mov r15,QWORD PTR[rsi] 929 mov r14,QWORD PTR[8+rsi] 930 mov r13,QWORD PTR[16+rsi] 931 mov r12,QWORD PTR[24+rsi] 932 mov rbp,QWORD PTR[32+rsi] 933 mov rbx,QWORD PTR[40+rsi] 934 lea rsp,QWORD PTR[48+rsi] 935$L$dec_epilogue:: 936 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 937 mov rsi,QWORD PTR[16+rsp] 938 DB 0F3h,0C3h ;repret 939$L$SEH_end_AES_decrypt:: 940AES_decrypt ENDP 941PUBLIC AES_set_encrypt_key 942 943ALIGN 16 944AES_set_encrypt_key PROC PUBLIC 945 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 946 mov QWORD PTR[16+rsp],rsi 947 mov rax,rsp 948$L$SEH_begin_AES_set_encrypt_key:: 949 mov rdi,rcx 950 mov rsi,rdx 951 mov rdx,r8 952 953 954 push rbx 955 push rbp 956 push r12 957 push r13 958 push r14 959 push r15 960 sub rsp,8 961$L$enc_key_prologue:: 962 963 call _x86_64_AES_set_encrypt_key 964 965 mov r15,QWORD PTR[8+rsp] 966 mov r14,QWORD PTR[16+rsp] 967 mov r13,QWORD PTR[24+rsp] 968 mov r12,QWORD PTR[32+rsp] 969 mov rbp,QWORD PTR[40+rsp] 970 mov rbx,QWORD PTR[48+rsp] 971 add rsp,56 972$L$enc_key_epilogue:: 973 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 974 mov rsi,QWORD PTR[16+rsp] 975 DB 0F3h,0C3h ;repret 976$L$SEH_end_AES_set_encrypt_key:: 977AES_set_encrypt_key ENDP 978 979 980ALIGN 16 981_x86_64_AES_set_encrypt_key PROC PRIVATE 982 mov ecx,esi 983 mov rsi,rdi 984 mov rdi,rdx 985 986 test rsi,-1 987 jz $L$badpointer 988 test rdi,-1 989 jz $L$badpointer 990 991 lea rbp,QWORD PTR[$L$AES_Te] 992 lea rbp,QWORD PTR[((2048+128))+rbp] 993 994 995 mov eax,DWORD PTR[((0-128))+rbp] 996 mov ebx,DWORD PTR[((32-128))+rbp] 997 mov r8d,DWORD PTR[((64-128))+rbp] 998 mov edx,DWORD PTR[((96-128))+rbp] 999 mov eax,DWORD PTR[((128-128))+rbp] 1000 mov ebx,DWORD PTR[((160-128))+rbp] 1001 mov r8d,DWORD PTR[((192-128))+rbp] 1002 mov edx,DWORD PTR[((224-128))+rbp] 1003 1004 cmp ecx,128 1005 je $L$10rounds 1006 cmp ecx,192 1007 je $L$12rounds 1008 cmp ecx,256 1009 je $L$14rounds 1010 mov rax,-2 1011 jmp $L$exit 1012 1013$L$10rounds:: 1014 mov rax,QWORD PTR[rsi] 1015 mov rdx,QWORD PTR[8+rsi] 1016 mov QWORD PTR[rdi],rax 1017 mov QWORD PTR[8+rdi],rdx 1018 1019 shr rdx,32 1020 xor ecx,ecx 1021 jmp $L$10shortcut 1022ALIGN 4 1023$L$10loop:: 1024 mov eax,DWORD PTR[rdi] 1025 mov edx,DWORD PTR[12+rdi] 1026$L$10shortcut:: 1027 movzx esi,dl 1028 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1029 movzx esi,dh 1030 shl ebx,24 1031 xor eax,ebx 1032 1033 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1034 shr edx,16 1035 movzx esi,dl 1036 xor eax,ebx 1037 1038 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1039 movzx esi,dh 1040 shl ebx,8 1041 xor eax,ebx 1042 1043 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1044 shl ebx,16 1045 xor eax,ebx 1046 1047 xor eax,DWORD PTR[((1024-128))+rcx*4+rbp] 1048 mov DWORD PTR[16+rdi],eax 1049 xor eax,DWORD PTR[4+rdi] 1050 mov DWORD PTR[20+rdi],eax 1051 xor eax,DWORD PTR[8+rdi] 1052 mov DWORD PTR[24+rdi],eax 1053 xor eax,DWORD PTR[12+rdi] 1054 mov DWORD PTR[28+rdi],eax 1055 add ecx,1 1056 lea rdi,QWORD PTR[16+rdi] 1057 cmp ecx,10 1058 jl $L$10loop 1059 1060 mov DWORD PTR[80+rdi],10 1061 xor rax,rax 1062 jmp $L$exit 1063 1064$L$12rounds:: 1065 mov rax,QWORD PTR[rsi] 1066 mov rbx,QWORD PTR[8+rsi] 1067 mov rdx,QWORD PTR[16+rsi] 1068 mov QWORD PTR[rdi],rax 1069 mov QWORD PTR[8+rdi],rbx 1070 mov QWORD PTR[16+rdi],rdx 1071 1072 shr rdx,32 1073 xor ecx,ecx 1074 jmp $L$12shortcut 1075ALIGN 4 1076$L$12loop:: 1077 mov eax,DWORD PTR[rdi] 1078 mov edx,DWORD PTR[20+rdi] 1079$L$12shortcut:: 1080 movzx esi,dl 1081 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1082 movzx esi,dh 1083 shl ebx,24 1084 xor eax,ebx 1085 1086 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1087 shr edx,16 1088 movzx esi,dl 1089 xor eax,ebx 1090 1091 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1092 movzx esi,dh 1093 shl ebx,8 1094 xor eax,ebx 1095 1096 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1097 shl ebx,16 1098 xor eax,ebx 1099 1100 xor eax,DWORD PTR[((1024-128))+rcx*4+rbp] 1101 mov DWORD PTR[24+rdi],eax 1102 xor eax,DWORD PTR[4+rdi] 1103 mov DWORD PTR[28+rdi],eax 1104 xor eax,DWORD PTR[8+rdi] 1105 mov DWORD PTR[32+rdi],eax 1106 xor eax,DWORD PTR[12+rdi] 1107 mov DWORD PTR[36+rdi],eax 1108 1109 cmp ecx,7 1110 je $L$12break 1111 add ecx,1 1112 1113 xor eax,DWORD PTR[16+rdi] 1114 mov DWORD PTR[40+rdi],eax 1115 xor eax,DWORD PTR[20+rdi] 1116 mov DWORD PTR[44+rdi],eax 1117 1118 lea rdi,QWORD PTR[24+rdi] 1119 jmp $L$12loop 1120$L$12break:: 1121 mov DWORD PTR[72+rdi],12 1122 xor rax,rax 1123 jmp $L$exit 1124 1125$L$14rounds:: 1126 mov rax,QWORD PTR[rsi] 1127 mov rbx,QWORD PTR[8+rsi] 1128 mov rcx,QWORD PTR[16+rsi] 1129 mov rdx,QWORD PTR[24+rsi] 1130 mov QWORD PTR[rdi],rax 1131 mov QWORD PTR[8+rdi],rbx 1132 mov QWORD PTR[16+rdi],rcx 1133 mov QWORD PTR[24+rdi],rdx 1134 1135 shr rdx,32 1136 xor ecx,ecx 1137 jmp $L$14shortcut 1138ALIGN 4 1139$L$14loop:: 1140 mov eax,DWORD PTR[rdi] 1141 mov edx,DWORD PTR[28+rdi] 1142$L$14shortcut:: 1143 movzx esi,dl 1144 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1145 movzx esi,dh 1146 shl ebx,24 1147 xor eax,ebx 1148 1149 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1150 shr edx,16 1151 movzx esi,dl 1152 xor eax,ebx 1153 1154 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1155 movzx esi,dh 1156 shl ebx,8 1157 xor eax,ebx 1158 1159 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1160 shl ebx,16 1161 xor eax,ebx 1162 1163 xor eax,DWORD PTR[((1024-128))+rcx*4+rbp] 1164 mov DWORD PTR[32+rdi],eax 1165 xor eax,DWORD PTR[4+rdi] 1166 mov DWORD PTR[36+rdi],eax 1167 xor eax,DWORD PTR[8+rdi] 1168 mov DWORD PTR[40+rdi],eax 1169 xor eax,DWORD PTR[12+rdi] 1170 mov DWORD PTR[44+rdi],eax 1171 1172 cmp ecx,6 1173 je $L$14break 1174 add ecx,1 1175 1176 mov edx,eax 1177 mov eax,DWORD PTR[16+rdi] 1178 movzx esi,dl 1179 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1180 movzx esi,dh 1181 xor eax,ebx 1182 1183 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1184 shr edx,16 1185 shl ebx,8 1186 movzx esi,dl 1187 xor eax,ebx 1188 1189 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1190 movzx esi,dh 1191 shl ebx,16 1192 xor eax,ebx 1193 1194 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp] 1195 shl ebx,24 1196 xor eax,ebx 1197 1198 mov DWORD PTR[48+rdi],eax 1199 xor eax,DWORD PTR[20+rdi] 1200 mov DWORD PTR[52+rdi],eax 1201 xor eax,DWORD PTR[24+rdi] 1202 mov DWORD PTR[56+rdi],eax 1203 xor eax,DWORD PTR[28+rdi] 1204 mov DWORD PTR[60+rdi],eax 1205 1206 lea rdi,QWORD PTR[32+rdi] 1207 jmp $L$14loop 1208$L$14break:: 1209 mov DWORD PTR[48+rdi],14 1210 xor rax,rax 1211 jmp $L$exit 1212 1213$L$badpointer:: 1214 mov rax,-1 1215$L$exit:: 1216 DB 0F3h,0C3h ;repret 1217_x86_64_AES_set_encrypt_key ENDP 1218PUBLIC AES_set_decrypt_key 1219 1220ALIGN 16 1221AES_set_decrypt_key PROC PUBLIC 1222 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 1223 mov QWORD PTR[16+rsp],rsi 1224 mov rax,rsp 1225$L$SEH_begin_AES_set_decrypt_key:: 1226 mov rdi,rcx 1227 mov rsi,rdx 1228 mov rdx,r8 1229 1230 1231 push rbx 1232 push rbp 1233 push r12 1234 push r13 1235 push r14 1236 push r15 1237 push rdx 1238$L$dec_key_prologue:: 1239 1240 call _x86_64_AES_set_encrypt_key 1241 mov r8,QWORD PTR[rsp] 1242 cmp eax,0 1243 jne $L$abort 1244 1245 mov r14d,DWORD PTR[240+r8] 1246 xor rdi,rdi 1247 lea rcx,QWORD PTR[r14*4+rdi] 1248 mov rsi,r8 1249 lea rdi,QWORD PTR[rcx*4+r8] 1250ALIGN 4 1251$L$invert:: 1252 mov rax,QWORD PTR[rsi] 1253 mov rbx,QWORD PTR[8+rsi] 1254 mov rcx,QWORD PTR[rdi] 1255 mov rdx,QWORD PTR[8+rdi] 1256 mov QWORD PTR[rdi],rax 1257 mov QWORD PTR[8+rdi],rbx 1258 mov QWORD PTR[rsi],rcx 1259 mov QWORD PTR[8+rsi],rdx 1260 lea rsi,QWORD PTR[16+rsi] 1261 lea rdi,QWORD PTR[((-16))+rdi] 1262 cmp rdi,rsi 1263 jne $L$invert 1264 1265 lea rax,QWORD PTR[(($L$AES_Te+2048+1024))] 1266 1267 mov rsi,QWORD PTR[40+rax] 1268 mov rdi,QWORD PTR[48+rax] 1269 mov rbp,QWORD PTR[56+rax] 1270 1271 mov r15,r8 1272 sub r14d,1 1273ALIGN 4 1274$L$permute:: 1275 lea r15,QWORD PTR[16+r15] 1276 mov rax,QWORD PTR[r15] 1277 mov rcx,QWORD PTR[8+r15] 1278 mov rbx,rax 1279 mov rdx,rcx 1280 and rbx,rsi 1281 and rdx,rsi 1282 mov r9,rbx 1283 mov r12,rdx 1284 shr r9,7 1285 lea r8,QWORD PTR[rax*1+rax] 1286 shr r12,7 1287 lea r11,QWORD PTR[rcx*1+rcx] 1288 sub rbx,r9 1289 sub rdx,r12 1290 and r8,rdi 1291 and r11,rdi 1292 and rbx,rbp 1293 and rdx,rbp 1294 xor rbx,r8 1295 xor rdx,r11 1296 mov r8,rbx 1297 mov r11,rdx 1298 1299 and rbx,rsi 1300 and rdx,rsi 1301 mov r10,rbx 1302 mov r13,rdx 1303 shr r10,7 1304 lea r9,QWORD PTR[r8*1+r8] 1305 shr r13,7 1306 lea r12,QWORD PTR[r11*1+r11] 1307 sub rbx,r10 1308 sub rdx,r13 1309 and r9,rdi 1310 and r12,rdi 1311 and rbx,rbp 1312 and rdx,rbp 1313 xor rbx,r9 1314 xor rdx,r12 1315 mov r9,rbx 1316 mov r12,rdx 1317 1318 and rbx,rsi 1319 and rdx,rsi 1320 mov r10,rbx 1321 mov r13,rdx 1322 shr r10,7 1323 xor r8,rax 1324 shr r13,7 1325 xor r11,rcx 1326 sub rbx,r10 1327 sub rdx,r13 1328 lea r10,QWORD PTR[r9*1+r9] 1329 lea r13,QWORD PTR[r12*1+r12] 1330 xor r9,rax 1331 xor r12,rcx 1332 and r10,rdi 1333 and r13,rdi 1334 and rbx,rbp 1335 and rdx,rbp 1336 xor r10,rbx 1337 xor r13,rdx 1338 1339 xor rax,r10 1340 xor rcx,r13 1341 xor r8,r10 1342 xor r11,r13 1343 mov rbx,rax 1344 mov rdx,rcx 1345 xor r9,r10 1346 xor r12,r13 1347 shr rbx,32 1348 shr rdx,32 1349 xor r10,r8 1350 xor r13,r11 1351 rol eax,8 1352 rol ecx,8 1353 xor r10,r9 1354 xor r13,r12 1355 1356 rol ebx,8 1357 rol edx,8 1358 xor eax,r10d 1359 xor ecx,r13d 1360 shr r10,32 1361 shr r13,32 1362 xor ebx,r10d 1363 xor edx,r13d 1364 1365 mov r10,r8 1366 mov r13,r11 1367 shr r10,32 1368 shr r13,32 1369 rol r8d,24 1370 rol r11d,24 1371 rol r10d,24 1372 rol r13d,24 1373 xor eax,r8d 1374 xor ecx,r11d 1375 mov r8,r9 1376 mov r11,r12 1377 xor ebx,r10d 1378 xor edx,r13d 1379 1380 1381 shr r8,32 1382 shr r11,32 1383 1384 rol r9d,16 1385 rol r12d,16 1386 1387 rol r8d,16 1388 rol r11d,16 1389 1390 xor eax,r9d 1391 xor ecx,r12d 1392 1393 xor ebx,r8d 1394 xor edx,r11d 1395 mov DWORD PTR[r15],eax 1396 mov DWORD PTR[4+r15],ebx 1397 mov DWORD PTR[8+r15],ecx 1398 mov DWORD PTR[12+r15],edx 1399 sub r14d,1 1400 jnz $L$permute 1401 1402 xor rax,rax 1403$L$abort:: 1404 mov r15,QWORD PTR[8+rsp] 1405 mov r14,QWORD PTR[16+rsp] 1406 mov r13,QWORD PTR[24+rsp] 1407 mov r12,QWORD PTR[32+rsp] 1408 mov rbp,QWORD PTR[40+rsp] 1409 mov rbx,QWORD PTR[48+rsp] 1410 add rsp,56 1411$L$dec_key_epilogue:: 1412 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 1413 mov rsi,QWORD PTR[16+rsp] 1414 DB 0F3h,0C3h ;repret 1415$L$SEH_end_AES_set_decrypt_key:: 1416AES_set_decrypt_key ENDP 1417PUBLIC AES_cbc_encrypt 1418 1419ALIGN 16 1420EXTERN OPENSSL_ia32cap_P:NEAR 1421 1422PUBLIC asm_AES_cbc_encrypt 1423 1424asm_AES_cbc_encrypt:: 1425AES_cbc_encrypt PROC PUBLIC 1426 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 1427 mov QWORD PTR[16+rsp],rsi 1428 mov rax,rsp 1429$L$SEH_begin_AES_cbc_encrypt:: 1430 mov rdi,rcx 1431 mov rsi,rdx 1432 mov rdx,r8 1433 mov rcx,r9 1434 mov r8,QWORD PTR[40+rsp] 1435 mov r9,QWORD PTR[48+rsp] 1436 1437 1438 cmp rdx,0 1439 je $L$cbc_epilogue 1440 pushfq 1441 push rbx 1442 push rbp 1443 push r12 1444 push r13 1445 push r14 1446 push r15 1447$L$cbc_prologue:: 1448 1449 cld 1450 mov r9d,r9d 1451 1452 lea r14,QWORD PTR[$L$AES_Te] 1453 cmp r9,0 1454 jne $L$cbc_picked_te 1455 lea r14,QWORD PTR[$L$AES_Td] 1456$L$cbc_picked_te:: 1457 1458 mov r10d,DWORD PTR[OPENSSL_ia32cap_P] 1459 cmp rdx,512 1460 jb $L$cbc_slow_prologue 1461 test rdx,15 1462 jnz $L$cbc_slow_prologue 1463 bt r10d,28 1464 jc $L$cbc_slow_prologue 1465 1466 1467 lea r15,QWORD PTR[((-88-248))+rsp] 1468 and r15,-64 1469 1470 1471 mov r10,r14 1472 lea r11,QWORD PTR[2304+r14] 1473 mov r12,r15 1474 and r10,0FFFh 1475 and r11,0FFFh 1476 and r12,0FFFh 1477 1478 cmp r12,r11 1479 jb $L$cbc_te_break_out 1480 sub r12,r11 1481 sub r15,r12 1482 jmp $L$cbc_te_ok 1483$L$cbc_te_break_out:: 1484 sub r12,r10 1485 and r12,0FFFh 1486 add r12,320 1487 sub r15,r12 1488ALIGN 4 1489$L$cbc_te_ok:: 1490 1491 xchg r15,rsp 1492 1493 mov QWORD PTR[16+rsp],r15 1494$L$cbc_fast_body:: 1495 mov QWORD PTR[24+rsp],rdi 1496 mov QWORD PTR[32+rsp],rsi 1497 mov QWORD PTR[40+rsp],rdx 1498 mov QWORD PTR[48+rsp],rcx 1499 mov QWORD PTR[56+rsp],r8 1500 mov DWORD PTR[((80+240))+rsp],0 1501 mov rbp,r8 1502 mov rbx,r9 1503 mov r9,rsi 1504 mov r8,rdi 1505 mov r15,rcx 1506 1507 mov eax,DWORD PTR[240+r15] 1508 1509 mov r10,r15 1510 sub r10,r14 1511 and r10,0fffh 1512 cmp r10,2304 1513 jb $L$cbc_do_ecopy 1514 cmp r10,4096-248 1515 jb $L$cbc_skip_ecopy 1516ALIGN 4 1517$L$cbc_do_ecopy:: 1518 mov rsi,r15 1519 lea rdi,QWORD PTR[80+rsp] 1520 lea r15,QWORD PTR[80+rsp] 1521 mov ecx,240/8 1522 DD 090A548F3h 1523 mov DWORD PTR[rdi],eax 1524$L$cbc_skip_ecopy:: 1525 mov QWORD PTR[rsp],r15 1526 1527 mov ecx,18 1528ALIGN 4 1529$L$cbc_prefetch_te:: 1530 mov r10,QWORD PTR[r14] 1531 mov r11,QWORD PTR[32+r14] 1532 mov r12,QWORD PTR[64+r14] 1533 mov r13,QWORD PTR[96+r14] 1534 lea r14,QWORD PTR[128+r14] 1535 sub ecx,1 1536 jnz $L$cbc_prefetch_te 1537 lea r14,QWORD PTR[((-2304))+r14] 1538 1539 cmp rbx,0 1540 je $L$FAST_DECRYPT 1541 1542 1543 mov eax,DWORD PTR[rbp] 1544 mov ebx,DWORD PTR[4+rbp] 1545 mov ecx,DWORD PTR[8+rbp] 1546 mov edx,DWORD PTR[12+rbp] 1547 1548ALIGN 4 1549$L$cbc_fast_enc_loop:: 1550 xor eax,DWORD PTR[r8] 1551 xor ebx,DWORD PTR[4+r8] 1552 xor ecx,DWORD PTR[8+r8] 1553 xor edx,DWORD PTR[12+r8] 1554 mov r15,QWORD PTR[rsp] 1555 mov QWORD PTR[24+rsp],r8 1556 1557 call _x86_64_AES_encrypt 1558 1559 mov r8,QWORD PTR[24+rsp] 1560 mov r10,QWORD PTR[40+rsp] 1561 mov DWORD PTR[r9],eax 1562 mov DWORD PTR[4+r9],ebx 1563 mov DWORD PTR[8+r9],ecx 1564 mov DWORD PTR[12+r9],edx 1565 1566 lea r8,QWORD PTR[16+r8] 1567 lea r9,QWORD PTR[16+r9] 1568 sub r10,16 1569 test r10,-16 1570 mov QWORD PTR[40+rsp],r10 1571 jnz $L$cbc_fast_enc_loop 1572 mov rbp,QWORD PTR[56+rsp] 1573 mov DWORD PTR[rbp],eax 1574 mov DWORD PTR[4+rbp],ebx 1575 mov DWORD PTR[8+rbp],ecx 1576 mov DWORD PTR[12+rbp],edx 1577 1578 jmp $L$cbc_fast_cleanup 1579 1580 1581ALIGN 16 1582$L$FAST_DECRYPT:: 1583 cmp r9,r8 1584 je $L$cbc_fast_dec_in_place 1585 1586 mov QWORD PTR[64+rsp],rbp 1587ALIGN 4 1588$L$cbc_fast_dec_loop:: 1589 mov eax,DWORD PTR[r8] 1590 mov ebx,DWORD PTR[4+r8] 1591 mov ecx,DWORD PTR[8+r8] 1592 mov edx,DWORD PTR[12+r8] 1593 mov r15,QWORD PTR[rsp] 1594 mov QWORD PTR[24+rsp],r8 1595 1596 call _x86_64_AES_decrypt 1597 1598 mov rbp,QWORD PTR[64+rsp] 1599 mov r8,QWORD PTR[24+rsp] 1600 mov r10,QWORD PTR[40+rsp] 1601 xor eax,DWORD PTR[rbp] 1602 xor ebx,DWORD PTR[4+rbp] 1603 xor ecx,DWORD PTR[8+rbp] 1604 xor edx,DWORD PTR[12+rbp] 1605 mov rbp,r8 1606 1607 sub r10,16 1608 mov QWORD PTR[40+rsp],r10 1609 mov QWORD PTR[64+rsp],rbp 1610 1611 mov DWORD PTR[r9],eax 1612 mov DWORD PTR[4+r9],ebx 1613 mov DWORD PTR[8+r9],ecx 1614 mov DWORD PTR[12+r9],edx 1615 1616 lea r8,QWORD PTR[16+r8] 1617 lea r9,QWORD PTR[16+r9] 1618 jnz $L$cbc_fast_dec_loop 1619 mov r12,QWORD PTR[56+rsp] 1620 mov r10,QWORD PTR[rbp] 1621 mov r11,QWORD PTR[8+rbp] 1622 mov QWORD PTR[r12],r10 1623 mov QWORD PTR[8+r12],r11 1624 jmp $L$cbc_fast_cleanup 1625 1626ALIGN 16 1627$L$cbc_fast_dec_in_place:: 1628 mov r10,QWORD PTR[rbp] 1629 mov r11,QWORD PTR[8+rbp] 1630 mov QWORD PTR[((0+64))+rsp],r10 1631 mov QWORD PTR[((8+64))+rsp],r11 1632ALIGN 4 1633$L$cbc_fast_dec_in_place_loop:: 1634 mov eax,DWORD PTR[r8] 1635 mov ebx,DWORD PTR[4+r8] 1636 mov ecx,DWORD PTR[8+r8] 1637 mov edx,DWORD PTR[12+r8] 1638 mov r15,QWORD PTR[rsp] 1639 mov QWORD PTR[24+rsp],r8 1640 1641 call _x86_64_AES_decrypt 1642 1643 mov r8,QWORD PTR[24+rsp] 1644 mov r10,QWORD PTR[40+rsp] 1645 xor eax,DWORD PTR[((0+64))+rsp] 1646 xor ebx,DWORD PTR[((4+64))+rsp] 1647 xor ecx,DWORD PTR[((8+64))+rsp] 1648 xor edx,DWORD PTR[((12+64))+rsp] 1649 1650 mov r11,QWORD PTR[r8] 1651 mov r12,QWORD PTR[8+r8] 1652 sub r10,16 1653 jz $L$cbc_fast_dec_in_place_done 1654 1655 mov QWORD PTR[((0+64))+rsp],r11 1656 mov QWORD PTR[((8+64))+rsp],r12 1657 1658 mov DWORD PTR[r9],eax 1659 mov DWORD PTR[4+r9],ebx 1660 mov DWORD PTR[8+r9],ecx 1661 mov DWORD PTR[12+r9],edx 1662 1663 lea r8,QWORD PTR[16+r8] 1664 lea r9,QWORD PTR[16+r9] 1665 mov QWORD PTR[40+rsp],r10 1666 jmp $L$cbc_fast_dec_in_place_loop 1667$L$cbc_fast_dec_in_place_done:: 1668 mov rdi,QWORD PTR[56+rsp] 1669 mov QWORD PTR[rdi],r11 1670 mov QWORD PTR[8+rdi],r12 1671 1672 mov DWORD PTR[r9],eax 1673 mov DWORD PTR[4+r9],ebx 1674 mov DWORD PTR[8+r9],ecx 1675 mov DWORD PTR[12+r9],edx 1676 1677ALIGN 4 1678$L$cbc_fast_cleanup:: 1679 cmp DWORD PTR[((80+240))+rsp],0 1680 lea rdi,QWORD PTR[80+rsp] 1681 je $L$cbc_exit 1682 mov ecx,240/8 1683 xor rax,rax 1684 DD 090AB48F3h 1685 1686 jmp $L$cbc_exit 1687 1688 1689ALIGN 16 1690$L$cbc_slow_prologue:: 1691 1692 lea rbp,QWORD PTR[((-88))+rsp] 1693 and rbp,-64 1694 1695 lea r10,QWORD PTR[((-88-63))+rcx] 1696 sub r10,rbp 1697 neg r10 1698 and r10,03c0h 1699 sub rbp,r10 1700 1701 xchg rbp,rsp 1702 1703 mov QWORD PTR[16+rsp],rbp 1704$L$cbc_slow_body:: 1705 1706 1707 1708 1709 mov QWORD PTR[56+rsp],r8 1710 mov rbp,r8 1711 mov rbx,r9 1712 mov r9,rsi 1713 mov r8,rdi 1714 mov r15,rcx 1715 mov r10,rdx 1716 1717 mov eax,DWORD PTR[240+r15] 1718 mov QWORD PTR[rsp],r15 1719 shl eax,4 1720 lea rax,QWORD PTR[rax*1+r15] 1721 mov QWORD PTR[8+rsp],rax 1722 1723 1724 lea r14,QWORD PTR[2048+r14] 1725 lea rax,QWORD PTR[((768-8))+rsp] 1726 sub rax,r14 1727 and rax,0300h 1728 lea r14,QWORD PTR[rax*1+r14] 1729 1730 cmp rbx,0 1731 je $L$SLOW_DECRYPT 1732 1733 1734 test r10,-16 1735 mov eax,DWORD PTR[rbp] 1736 mov ebx,DWORD PTR[4+rbp] 1737 mov ecx,DWORD PTR[8+rbp] 1738 mov edx,DWORD PTR[12+rbp] 1739 jz $L$cbc_slow_enc_tail 1740 1741ALIGN 4 1742$L$cbc_slow_enc_loop:: 1743 xor eax,DWORD PTR[r8] 1744 xor ebx,DWORD PTR[4+r8] 1745 xor ecx,DWORD PTR[8+r8] 1746 xor edx,DWORD PTR[12+r8] 1747 mov r15,QWORD PTR[rsp] 1748 mov QWORD PTR[24+rsp],r8 1749 mov QWORD PTR[32+rsp],r9 1750 mov QWORD PTR[40+rsp],r10 1751 1752 call _x86_64_AES_encrypt_compact 1753 1754 mov r8,QWORD PTR[24+rsp] 1755 mov r9,QWORD PTR[32+rsp] 1756 mov r10,QWORD PTR[40+rsp] 1757 mov DWORD PTR[r9],eax 1758 mov DWORD PTR[4+r9],ebx 1759 mov DWORD PTR[8+r9],ecx 1760 mov DWORD PTR[12+r9],edx 1761 1762 lea r8,QWORD PTR[16+r8] 1763 lea r9,QWORD PTR[16+r9] 1764 sub r10,16 1765 test r10,-16 1766 jnz $L$cbc_slow_enc_loop 1767 test r10,15 1768 jnz $L$cbc_slow_enc_tail 1769 mov rbp,QWORD PTR[56+rsp] 1770 mov DWORD PTR[rbp],eax 1771 mov DWORD PTR[4+rbp],ebx 1772 mov DWORD PTR[8+rbp],ecx 1773 mov DWORD PTR[12+rbp],edx 1774 1775 jmp $L$cbc_exit 1776 1777ALIGN 4 1778$L$cbc_slow_enc_tail:: 1779 mov r11,rax 1780 mov r12,rcx 1781 mov rcx,r10 1782 mov rsi,r8 1783 mov rdi,r9 1784 DD 09066A4F3h 1785 mov rcx,16 1786 sub rcx,r10 1787 xor rax,rax 1788 DD 09066AAF3h 1789 mov r8,r9 1790 mov r10,16 1791 mov rax,r11 1792 mov rcx,r12 1793 jmp $L$cbc_slow_enc_loop 1794 1795ALIGN 16 1796$L$SLOW_DECRYPT:: 1797 shr rax,3 1798 add r14,rax 1799 1800 mov r11,QWORD PTR[rbp] 1801 mov r12,QWORD PTR[8+rbp] 1802 mov QWORD PTR[((0+64))+rsp],r11 1803 mov QWORD PTR[((8+64))+rsp],r12 1804 1805ALIGN 4 1806$L$cbc_slow_dec_loop:: 1807 mov eax,DWORD PTR[r8] 1808 mov ebx,DWORD PTR[4+r8] 1809 mov ecx,DWORD PTR[8+r8] 1810 mov edx,DWORD PTR[12+r8] 1811 mov r15,QWORD PTR[rsp] 1812 mov QWORD PTR[24+rsp],r8 1813 mov QWORD PTR[32+rsp],r9 1814 mov QWORD PTR[40+rsp],r10 1815 1816 call _x86_64_AES_decrypt_compact 1817 1818 mov r8,QWORD PTR[24+rsp] 1819 mov r9,QWORD PTR[32+rsp] 1820 mov r10,QWORD PTR[40+rsp] 1821 xor eax,DWORD PTR[((0+64))+rsp] 1822 xor ebx,DWORD PTR[((4+64))+rsp] 1823 xor ecx,DWORD PTR[((8+64))+rsp] 1824 xor edx,DWORD PTR[((12+64))+rsp] 1825 1826 mov r11,QWORD PTR[r8] 1827 mov r12,QWORD PTR[8+r8] 1828 sub r10,16 1829 jc $L$cbc_slow_dec_partial 1830 jz $L$cbc_slow_dec_done 1831 1832 mov QWORD PTR[((0+64))+rsp],r11 1833 mov QWORD PTR[((8+64))+rsp],r12 1834 1835 mov DWORD PTR[r9],eax 1836 mov DWORD PTR[4+r9],ebx 1837 mov DWORD PTR[8+r9],ecx 1838 mov DWORD PTR[12+r9],edx 1839 1840 lea r8,QWORD PTR[16+r8] 1841 lea r9,QWORD PTR[16+r9] 1842 jmp $L$cbc_slow_dec_loop 1843$L$cbc_slow_dec_done:: 1844 mov rdi,QWORD PTR[56+rsp] 1845 mov QWORD PTR[rdi],r11 1846 mov QWORD PTR[8+rdi],r12 1847 1848 mov DWORD PTR[r9],eax 1849 mov DWORD PTR[4+r9],ebx 1850 mov DWORD PTR[8+r9],ecx 1851 mov DWORD PTR[12+r9],edx 1852 1853 jmp $L$cbc_exit 1854 1855ALIGN 4 1856$L$cbc_slow_dec_partial:: 1857 mov rdi,QWORD PTR[56+rsp] 1858 mov QWORD PTR[rdi],r11 1859 mov QWORD PTR[8+rdi],r12 1860 1861 mov DWORD PTR[((0+64))+rsp],eax 1862 mov DWORD PTR[((4+64))+rsp],ebx 1863 mov DWORD PTR[((8+64))+rsp],ecx 1864 mov DWORD PTR[((12+64))+rsp],edx 1865 1866 mov rdi,r9 1867 lea rsi,QWORD PTR[64+rsp] 1868 lea rcx,QWORD PTR[16+r10] 1869 DD 09066A4F3h 1870 jmp $L$cbc_exit 1871 1872ALIGN 16 1873$L$cbc_exit:: 1874 mov rsi,QWORD PTR[16+rsp] 1875 mov r15,QWORD PTR[rsi] 1876 mov r14,QWORD PTR[8+rsi] 1877 mov r13,QWORD PTR[16+rsi] 1878 mov r12,QWORD PTR[24+rsi] 1879 mov rbp,QWORD PTR[32+rsi] 1880 mov rbx,QWORD PTR[40+rsi] 1881 lea rsp,QWORD PTR[48+rsi] 1882$L$cbc_popfq:: 1883 popfq 1884$L$cbc_epilogue:: 1885 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 1886 mov rsi,QWORD PTR[16+rsp] 1887 DB 0F3h,0C3h ;repret 1888$L$SEH_end_AES_cbc_encrypt:: 1889AES_cbc_encrypt ENDP 1890ALIGN 64 1891$L$AES_Te:: 1892 DD 0a56363c6h,0a56363c6h 1893 DD 0847c7cf8h,0847c7cf8h 1894 DD 0997777eeh,0997777eeh 1895 DD 08d7b7bf6h,08d7b7bf6h 1896 DD 00df2f2ffh,00df2f2ffh 1897 DD 0bd6b6bd6h,0bd6b6bd6h 1898 DD 0b16f6fdeh,0b16f6fdeh 1899 DD 054c5c591h,054c5c591h 1900 DD 050303060h,050303060h 1901 DD 003010102h,003010102h 1902 DD 0a96767ceh,0a96767ceh 1903 DD 07d2b2b56h,07d2b2b56h 1904 DD 019fefee7h,019fefee7h 1905 DD 062d7d7b5h,062d7d7b5h 1906 DD 0e6abab4dh,0e6abab4dh 1907 DD 09a7676ech,09a7676ech 1908 DD 045caca8fh,045caca8fh 1909 DD 09d82821fh,09d82821fh 1910 DD 040c9c989h,040c9c989h 1911 DD 0877d7dfah,0877d7dfah 1912 DD 015fafaefh,015fafaefh 1913 DD 0eb5959b2h,0eb5959b2h 1914 DD 0c947478eh,0c947478eh 1915 DD 00bf0f0fbh,00bf0f0fbh 1916 DD 0ecadad41h,0ecadad41h 1917 DD 067d4d4b3h,067d4d4b3h 1918 DD 0fda2a25fh,0fda2a25fh 1919 DD 0eaafaf45h,0eaafaf45h 1920 DD 0bf9c9c23h,0bf9c9c23h 1921 DD 0f7a4a453h,0f7a4a453h 1922 DD 0967272e4h,0967272e4h 1923 DD 05bc0c09bh,05bc0c09bh 1924 DD 0c2b7b775h,0c2b7b775h 1925 DD 01cfdfde1h,01cfdfde1h 1926 DD 0ae93933dh,0ae93933dh 1927 DD 06a26264ch,06a26264ch 1928 DD 05a36366ch,05a36366ch 1929 DD 0413f3f7eh,0413f3f7eh 1930 DD 002f7f7f5h,002f7f7f5h 1931 DD 04fcccc83h,04fcccc83h 1932 DD 05c343468h,05c343468h 1933 DD 0f4a5a551h,0f4a5a551h 1934 DD 034e5e5d1h,034e5e5d1h 1935 DD 008f1f1f9h,008f1f1f9h 1936 DD 0937171e2h,0937171e2h 1937 DD 073d8d8abh,073d8d8abh 1938 DD 053313162h,053313162h 1939 DD 03f15152ah,03f15152ah 1940 DD 00c040408h,00c040408h 1941 DD 052c7c795h,052c7c795h 1942 DD 065232346h,065232346h 1943 DD 05ec3c39dh,05ec3c39dh 1944 DD 028181830h,028181830h 1945 DD 0a1969637h,0a1969637h 1946 DD 00f05050ah,00f05050ah 1947 DD 0b59a9a2fh,0b59a9a2fh 1948 DD 00907070eh,00907070eh 1949 DD 036121224h,036121224h 1950 DD 09b80801bh,09b80801bh 1951 DD 03de2e2dfh,03de2e2dfh 1952 DD 026ebebcdh,026ebebcdh 1953 DD 06927274eh,06927274eh 1954 DD 0cdb2b27fh,0cdb2b27fh 1955 DD 09f7575eah,09f7575eah 1956 DD 01b090912h,01b090912h 1957 DD 09e83831dh,09e83831dh 1958 DD 0742c2c58h,0742c2c58h 1959 DD 02e1a1a34h,02e1a1a34h 1960 DD 02d1b1b36h,02d1b1b36h 1961 DD 0b26e6edch,0b26e6edch 1962 DD 0ee5a5ab4h,0ee5a5ab4h 1963 DD 0fba0a05bh,0fba0a05bh 1964 DD 0f65252a4h,0f65252a4h 1965 DD 04d3b3b76h,04d3b3b76h 1966 DD 061d6d6b7h,061d6d6b7h 1967 DD 0ceb3b37dh,0ceb3b37dh 1968 DD 07b292952h,07b292952h 1969 DD 03ee3e3ddh,03ee3e3ddh 1970 DD 0712f2f5eh,0712f2f5eh 1971 DD 097848413h,097848413h 1972 DD 0f55353a6h,0f55353a6h 1973 DD 068d1d1b9h,068d1d1b9h 1974 DD 000000000h,000000000h 1975 DD 02cededc1h,02cededc1h 1976 DD 060202040h,060202040h 1977 DD 01ffcfce3h,01ffcfce3h 1978 DD 0c8b1b179h,0c8b1b179h 1979 DD 0ed5b5bb6h,0ed5b5bb6h 1980 DD 0be6a6ad4h,0be6a6ad4h 1981 DD 046cbcb8dh,046cbcb8dh 1982 DD 0d9bebe67h,0d9bebe67h 1983 DD 04b393972h,04b393972h 1984 DD 0de4a4a94h,0de4a4a94h 1985 DD 0d44c4c98h,0d44c4c98h 1986 DD 0e85858b0h,0e85858b0h 1987 DD 04acfcf85h,04acfcf85h 1988 DD 06bd0d0bbh,06bd0d0bbh 1989 DD 02aefefc5h,02aefefc5h 1990 DD 0e5aaaa4fh,0e5aaaa4fh 1991 DD 016fbfbedh,016fbfbedh 1992 DD 0c5434386h,0c5434386h 1993 DD 0d74d4d9ah,0d74d4d9ah 1994 DD 055333366h,055333366h 1995 DD 094858511h,094858511h 1996 DD 0cf45458ah,0cf45458ah 1997 DD 010f9f9e9h,010f9f9e9h 1998 DD 006020204h,006020204h 1999 DD 0817f7ffeh,0817f7ffeh 2000 DD 0f05050a0h,0f05050a0h 2001 DD 0443c3c78h,0443c3c78h 2002 DD 0ba9f9f25h,0ba9f9f25h 2003 DD 0e3a8a84bh,0e3a8a84bh 2004 DD 0f35151a2h,0f35151a2h 2005 DD 0fea3a35dh,0fea3a35dh 2006 DD 0c0404080h,0c0404080h 2007 DD 08a8f8f05h,08a8f8f05h 2008 DD 0ad92923fh,0ad92923fh 2009 DD 0bc9d9d21h,0bc9d9d21h 2010 DD 048383870h,048383870h 2011 DD 004f5f5f1h,004f5f5f1h 2012 DD 0dfbcbc63h,0dfbcbc63h 2013 DD 0c1b6b677h,0c1b6b677h 2014 DD 075dadaafh,075dadaafh 2015 DD 063212142h,063212142h 2016 DD 030101020h,030101020h 2017 DD 01affffe5h,01affffe5h 2018 DD 00ef3f3fdh,00ef3f3fdh 2019 DD 06dd2d2bfh,06dd2d2bfh 2020 DD 04ccdcd81h,04ccdcd81h 2021 DD 0140c0c18h,0140c0c18h 2022 DD 035131326h,035131326h 2023 DD 02fececc3h,02fececc3h 2024 DD 0e15f5fbeh,0e15f5fbeh 2025 DD 0a2979735h,0a2979735h 2026 DD 0cc444488h,0cc444488h 2027 DD 03917172eh,03917172eh 2028 DD 057c4c493h,057c4c493h 2029 DD 0f2a7a755h,0f2a7a755h 2030 DD 0827e7efch,0827e7efch 2031 DD 0473d3d7ah,0473d3d7ah 2032 DD 0ac6464c8h,0ac6464c8h 2033 DD 0e75d5dbah,0e75d5dbah 2034 DD 02b191932h,02b191932h 2035 DD 0957373e6h,0957373e6h 2036 DD 0a06060c0h,0a06060c0h 2037 DD 098818119h,098818119h 2038 DD 0d14f4f9eh,0d14f4f9eh 2039 DD 07fdcdca3h,07fdcdca3h 2040 DD 066222244h,066222244h 2041 DD 07e2a2a54h,07e2a2a54h 2042 DD 0ab90903bh,0ab90903bh 2043 DD 08388880bh,08388880bh 2044 DD 0ca46468ch,0ca46468ch 2045 DD 029eeeec7h,029eeeec7h 2046 DD 0d3b8b86bh,0d3b8b86bh 2047 DD 03c141428h,03c141428h 2048 DD 079dedea7h,079dedea7h 2049 DD 0e25e5ebch,0e25e5ebch 2050 DD 01d0b0b16h,01d0b0b16h 2051 DD 076dbdbadh,076dbdbadh 2052 DD 03be0e0dbh,03be0e0dbh 2053 DD 056323264h,056323264h 2054 DD 04e3a3a74h,04e3a3a74h 2055 DD 01e0a0a14h,01e0a0a14h 2056 DD 0db494992h,0db494992h 2057 DD 00a06060ch,00a06060ch 2058 DD 06c242448h,06c242448h 2059 DD 0e45c5cb8h,0e45c5cb8h 2060 DD 05dc2c29fh,05dc2c29fh 2061 DD 06ed3d3bdh,06ed3d3bdh 2062 DD 0efacac43h,0efacac43h 2063 DD 0a66262c4h,0a66262c4h 2064 DD 0a8919139h,0a8919139h 2065 DD 0a4959531h,0a4959531h 2066 DD 037e4e4d3h,037e4e4d3h 2067 DD 08b7979f2h,08b7979f2h 2068 DD 032e7e7d5h,032e7e7d5h 2069 DD 043c8c88bh,043c8c88bh 2070 DD 05937376eh,05937376eh 2071 DD 0b76d6ddah,0b76d6ddah 2072 DD 08c8d8d01h,08c8d8d01h 2073 DD 064d5d5b1h,064d5d5b1h 2074 DD 0d24e4e9ch,0d24e4e9ch 2075 DD 0e0a9a949h,0e0a9a949h 2076 DD 0b46c6cd8h,0b46c6cd8h 2077 DD 0fa5656ach,0fa5656ach 2078 DD 007f4f4f3h,007f4f4f3h 2079 DD 025eaeacfh,025eaeacfh 2080 DD 0af6565cah,0af6565cah 2081 DD 08e7a7af4h,08e7a7af4h 2082 DD 0e9aeae47h,0e9aeae47h 2083 DD 018080810h,018080810h 2084 DD 0d5baba6fh,0d5baba6fh 2085 DD 0887878f0h,0887878f0h 2086 DD 06f25254ah,06f25254ah 2087 DD 0722e2e5ch,0722e2e5ch 2088 DD 0241c1c38h,0241c1c38h 2089 DD 0f1a6a657h,0f1a6a657h 2090 DD 0c7b4b473h,0c7b4b473h 2091 DD 051c6c697h,051c6c697h 2092 DD 023e8e8cbh,023e8e8cbh 2093 DD 07cdddda1h,07cdddda1h 2094 DD 09c7474e8h,09c7474e8h 2095 DD 0211f1f3eh,0211f1f3eh 2096 DD 0dd4b4b96h,0dd4b4b96h 2097 DD 0dcbdbd61h,0dcbdbd61h 2098 DD 0868b8b0dh,0868b8b0dh 2099 DD 0858a8a0fh,0858a8a0fh 2100 DD 0907070e0h,0907070e0h 2101 DD 0423e3e7ch,0423e3e7ch 2102 DD 0c4b5b571h,0c4b5b571h 2103 DD 0aa6666cch,0aa6666cch 2104 DD 0d8484890h,0d8484890h 2105 DD 005030306h,005030306h 2106 DD 001f6f6f7h,001f6f6f7h 2107 DD 0120e0e1ch,0120e0e1ch 2108 DD 0a36161c2h,0a36161c2h 2109 DD 05f35356ah,05f35356ah 2110 DD 0f95757aeh,0f95757aeh 2111 DD 0d0b9b969h,0d0b9b969h 2112 DD 091868617h,091868617h 2113 DD 058c1c199h,058c1c199h 2114 DD 0271d1d3ah,0271d1d3ah 2115 DD 0b99e9e27h,0b99e9e27h 2116 DD 038e1e1d9h,038e1e1d9h 2117 DD 013f8f8ebh,013f8f8ebh 2118 DD 0b398982bh,0b398982bh 2119 DD 033111122h,033111122h 2120 DD 0bb6969d2h,0bb6969d2h 2121 DD 070d9d9a9h,070d9d9a9h 2122 DD 0898e8e07h,0898e8e07h 2123 DD 0a7949433h,0a7949433h 2124 DD 0b69b9b2dh,0b69b9b2dh 2125 DD 0221e1e3ch,0221e1e3ch 2126 DD 092878715h,092878715h 2127 DD 020e9e9c9h,020e9e9c9h 2128 DD 049cece87h,049cece87h 2129 DD 0ff5555aah,0ff5555aah 2130 DD 078282850h,078282850h 2131 DD 07adfdfa5h,07adfdfa5h 2132 DD 08f8c8c03h,08f8c8c03h 2133 DD 0f8a1a159h,0f8a1a159h 2134 DD 080898909h,080898909h 2135 DD 0170d0d1ah,0170d0d1ah 2136 DD 0dabfbf65h,0dabfbf65h 2137 DD 031e6e6d7h,031e6e6d7h 2138 DD 0c6424284h,0c6424284h 2139 DD 0b86868d0h,0b86868d0h 2140 DD 0c3414182h,0c3414182h 2141 DD 0b0999929h,0b0999929h 2142 DD 0772d2d5ah,0772d2d5ah 2143 DD 0110f0f1eh,0110f0f1eh 2144 DD 0cbb0b07bh,0cbb0b07bh 2145 DD 0fc5454a8h,0fc5454a8h 2146 DD 0d6bbbb6dh,0d6bbbb6dh 2147 DD 03a16162ch,03a16162ch 2148DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h 2149DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h 2150DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h 2151DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h 2152DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch 2153DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h 2154DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah 2155DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h 2156DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h 2157DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h 2158DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh 2159DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh 2160DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h 2161DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h 2162DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h 2163DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h 2164DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h 2165DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h 2166DB 060h,081h,04fh,0dch,022h,02ah,090h,088h 2167DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh 2168DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch 2169DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h 2170DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h 2171DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h 2172DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h 2173DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah 2174DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh 2175DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh 2176DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h 2177DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh 2178DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h 2179DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h 2180DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h 2181DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h 2182DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h 2183DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h 2184DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch 2185DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h 2186DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah 2187DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h 2188DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h 2189DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h 2190DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh 2191DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh 2192DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h 2193DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h 2194DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h 2195DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h 2196DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h 2197DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h 2198DB 060h,081h,04fh,0dch,022h,02ah,090h,088h 2199DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh 2200DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch 2201DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h 2202DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h 2203DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h 2204DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h 2205DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah 2206DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh 2207DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh 2208DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h 2209DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh 2210DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h 2211DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h 2212DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h 2213DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h 2214DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h 2215DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h 2216DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch 2217DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h 2218DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah 2219DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h 2220DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h 2221DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h 2222DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh 2223DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh 2224DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h 2225DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h 2226DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h 2227DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h 2228DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h 2229DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h 2230DB 060h,081h,04fh,0dch,022h,02ah,090h,088h 2231DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh 2232DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch 2233DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h 2234DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h 2235DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h 2236DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h 2237DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah 2238DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh 2239DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh 2240DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h 2241DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh 2242DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h 2243DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h 2244DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h 2245DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h 2246DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h 2247DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h 2248DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch 2249DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h 2250DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah 2251DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h 2252DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h 2253DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h 2254DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh 2255DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh 2256DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h 2257DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h 2258DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h 2259DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h 2260DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h 2261DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h 2262DB 060h,081h,04fh,0dch,022h,02ah,090h,088h 2263DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh 2264DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch 2265DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h 2266DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h 2267DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h 2268DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h 2269DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah 2270DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh 2271DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh 2272DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h 2273DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh 2274DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h 2275DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h 2276 DD 000000001h,000000002h,000000004h,000000008h 2277 DD 000000010h,000000020h,000000040h,000000080h 2278 DD 00000001bh,000000036h,080808080h,080808080h 2279 DD 0fefefefeh,0fefefefeh,01b1b1b1bh,01b1b1b1bh 2280ALIGN 64 2281$L$AES_Td:: 2282 DD 050a7f451h,050a7f451h 2283 DD 05365417eh,05365417eh 2284 DD 0c3a4171ah,0c3a4171ah 2285 DD 0965e273ah,0965e273ah 2286 DD 0cb6bab3bh,0cb6bab3bh 2287 DD 0f1459d1fh,0f1459d1fh 2288 DD 0ab58faach,0ab58faach 2289 DD 09303e34bh,09303e34bh 2290 DD 055fa3020h,055fa3020h 2291 DD 0f66d76adh,0f66d76adh 2292 DD 09176cc88h,09176cc88h 2293 DD 0254c02f5h,0254c02f5h 2294 DD 0fcd7e54fh,0fcd7e54fh 2295 DD 0d7cb2ac5h,0d7cb2ac5h 2296 DD 080443526h,080443526h 2297 DD 08fa362b5h,08fa362b5h 2298 DD 0495ab1deh,0495ab1deh 2299 DD 0671bba25h,0671bba25h 2300 DD 0980eea45h,0980eea45h 2301 DD 0e1c0fe5dh,0e1c0fe5dh 2302 DD 002752fc3h,002752fc3h 2303 DD 012f04c81h,012f04c81h 2304 DD 0a397468dh,0a397468dh 2305 DD 0c6f9d36bh,0c6f9d36bh 2306 DD 0e75f8f03h,0e75f8f03h 2307 DD 0959c9215h,0959c9215h 2308 DD 0eb7a6dbfh,0eb7a6dbfh 2309 DD 0da595295h,0da595295h 2310 DD 02d83bed4h,02d83bed4h 2311 DD 0d3217458h,0d3217458h 2312 DD 02969e049h,02969e049h 2313 DD 044c8c98eh,044c8c98eh 2314 DD 06a89c275h,06a89c275h 2315 DD 078798ef4h,078798ef4h 2316 DD 06b3e5899h,06b3e5899h 2317 DD 0dd71b927h,0dd71b927h 2318 DD 0b64fe1beh,0b64fe1beh 2319 DD 017ad88f0h,017ad88f0h 2320 DD 066ac20c9h,066ac20c9h 2321 DD 0b43ace7dh,0b43ace7dh 2322 DD 0184adf63h,0184adf63h 2323 DD 082311ae5h,082311ae5h 2324 DD 060335197h,060335197h 2325 DD 0457f5362h,0457f5362h 2326 DD 0e07764b1h,0e07764b1h 2327 DD 084ae6bbbh,084ae6bbbh 2328 DD 01ca081feh,01ca081feh 2329 DD 0942b08f9h,0942b08f9h 2330 DD 058684870h,058684870h 2331 DD 019fd458fh,019fd458fh 2332 DD 0876cde94h,0876cde94h 2333 DD 0b7f87b52h,0b7f87b52h 2334 DD 023d373abh,023d373abh 2335 DD 0e2024b72h,0e2024b72h 2336 DD 0578f1fe3h,0578f1fe3h 2337 DD 02aab5566h,02aab5566h 2338 DD 00728ebb2h,00728ebb2h 2339 DD 003c2b52fh,003c2b52fh 2340 DD 09a7bc586h,09a7bc586h 2341 DD 0a50837d3h,0a50837d3h 2342 DD 0f2872830h,0f2872830h 2343 DD 0b2a5bf23h,0b2a5bf23h 2344 DD 0ba6a0302h,0ba6a0302h 2345 DD 05c8216edh,05c8216edh 2346 DD 02b1ccf8ah,02b1ccf8ah 2347 DD 092b479a7h,092b479a7h 2348 DD 0f0f207f3h,0f0f207f3h 2349 DD 0a1e2694eh,0a1e2694eh 2350 DD 0cdf4da65h,0cdf4da65h 2351 DD 0d5be0506h,0d5be0506h 2352 DD 01f6234d1h,01f6234d1h 2353 DD 08afea6c4h,08afea6c4h 2354 DD 09d532e34h,09d532e34h 2355 DD 0a055f3a2h,0a055f3a2h 2356 DD 032e18a05h,032e18a05h 2357 DD 075ebf6a4h,075ebf6a4h 2358 DD 039ec830bh,039ec830bh 2359 DD 0aaef6040h,0aaef6040h 2360 DD 0069f715eh,0069f715eh 2361 DD 051106ebdh,051106ebdh 2362 DD 0f98a213eh,0f98a213eh 2363 DD 03d06dd96h,03d06dd96h 2364 DD 0ae053eddh,0ae053eddh 2365 DD 046bde64dh,046bde64dh 2366 DD 0b58d5491h,0b58d5491h 2367 DD 0055dc471h,0055dc471h 2368 DD 06fd40604h,06fd40604h 2369 DD 0ff155060h,0ff155060h 2370 DD 024fb9819h,024fb9819h 2371 DD 097e9bdd6h,097e9bdd6h 2372 DD 0cc434089h,0cc434089h 2373 DD 0779ed967h,0779ed967h 2374 DD 0bd42e8b0h,0bd42e8b0h 2375 DD 0888b8907h,0888b8907h 2376 DD 0385b19e7h,0385b19e7h 2377 DD 0dbeec879h,0dbeec879h 2378 DD 0470a7ca1h,0470a7ca1h 2379 DD 0e90f427ch,0e90f427ch 2380 DD 0c91e84f8h,0c91e84f8h 2381 DD 000000000h,000000000h 2382 DD 083868009h,083868009h 2383 DD 048ed2b32h,048ed2b32h 2384 DD 0ac70111eh,0ac70111eh 2385 DD 04e725a6ch,04e725a6ch 2386 DD 0fbff0efdh,0fbff0efdh 2387 DD 05638850fh,05638850fh 2388 DD 01ed5ae3dh,01ed5ae3dh 2389 DD 027392d36h,027392d36h 2390 DD 064d90f0ah,064d90f0ah 2391 DD 021a65c68h,021a65c68h 2392 DD 0d1545b9bh,0d1545b9bh 2393 DD 03a2e3624h,03a2e3624h 2394 DD 0b1670a0ch,0b1670a0ch 2395 DD 00fe75793h,00fe75793h 2396 DD 0d296eeb4h,0d296eeb4h 2397 DD 09e919b1bh,09e919b1bh 2398 DD 04fc5c080h,04fc5c080h 2399 DD 0a220dc61h,0a220dc61h 2400 DD 0694b775ah,0694b775ah 2401 DD 0161a121ch,0161a121ch 2402 DD 00aba93e2h,00aba93e2h 2403 DD 0e52aa0c0h,0e52aa0c0h 2404 DD 043e0223ch,043e0223ch 2405 DD 01d171b12h,01d171b12h 2406 DD 00b0d090eh,00b0d090eh 2407 DD 0adc78bf2h,0adc78bf2h 2408 DD 0b9a8b62dh,0b9a8b62dh 2409 DD 0c8a91e14h,0c8a91e14h 2410 DD 08519f157h,08519f157h 2411 DD 04c0775afh,04c0775afh 2412 DD 0bbdd99eeh,0bbdd99eeh 2413 DD 0fd607fa3h,0fd607fa3h 2414 DD 09f2601f7h,09f2601f7h 2415 DD 0bcf5725ch,0bcf5725ch 2416 DD 0c53b6644h,0c53b6644h 2417 DD 0347efb5bh,0347efb5bh 2418 DD 07629438bh,07629438bh 2419 DD 0dcc623cbh,0dcc623cbh 2420 DD 068fcedb6h,068fcedb6h 2421 DD 063f1e4b8h,063f1e4b8h 2422 DD 0cadc31d7h,0cadc31d7h 2423 DD 010856342h,010856342h 2424 DD 040229713h,040229713h 2425 DD 02011c684h,02011c684h 2426 DD 07d244a85h,07d244a85h 2427 DD 0f83dbbd2h,0f83dbbd2h 2428 DD 01132f9aeh,01132f9aeh 2429 DD 06da129c7h,06da129c7h 2430 DD 04b2f9e1dh,04b2f9e1dh 2431 DD 0f330b2dch,0f330b2dch 2432 DD 0ec52860dh,0ec52860dh 2433 DD 0d0e3c177h,0d0e3c177h 2434 DD 06c16b32bh,06c16b32bh 2435 DD 099b970a9h,099b970a9h 2436 DD 0fa489411h,0fa489411h 2437 DD 02264e947h,02264e947h 2438 DD 0c48cfca8h,0c48cfca8h 2439 DD 01a3ff0a0h,01a3ff0a0h 2440 DD 0d82c7d56h,0d82c7d56h 2441 DD 0ef903322h,0ef903322h 2442 DD 0c74e4987h,0c74e4987h 2443 DD 0c1d138d9h,0c1d138d9h 2444 DD 0fea2ca8ch,0fea2ca8ch 2445 DD 0360bd498h,0360bd498h 2446 DD 0cf81f5a6h,0cf81f5a6h 2447 DD 028de7aa5h,028de7aa5h 2448 DD 0268eb7dah,0268eb7dah 2449 DD 0a4bfad3fh,0a4bfad3fh 2450 DD 0e49d3a2ch,0e49d3a2ch 2451 DD 00d927850h,00d927850h 2452 DD 09bcc5f6ah,09bcc5f6ah 2453 DD 062467e54h,062467e54h 2454 DD 0c2138df6h,0c2138df6h 2455 DD 0e8b8d890h,0e8b8d890h 2456 DD 05ef7392eh,05ef7392eh 2457 DD 0f5afc382h,0f5afc382h 2458 DD 0be805d9fh,0be805d9fh 2459 DD 07c93d069h,07c93d069h 2460 DD 0a92dd56fh,0a92dd56fh 2461 DD 0b31225cfh,0b31225cfh 2462 DD 03b99acc8h,03b99acc8h 2463 DD 0a77d1810h,0a77d1810h 2464 DD 06e639ce8h,06e639ce8h 2465 DD 07bbb3bdbh,07bbb3bdbh 2466 DD 0097826cdh,0097826cdh 2467 DD 0f418596eh,0f418596eh 2468 DD 001b79aech,001b79aech 2469 DD 0a89a4f83h,0a89a4f83h 2470 DD 0656e95e6h,0656e95e6h 2471 DD 07ee6ffaah,07ee6ffaah 2472 DD 008cfbc21h,008cfbc21h 2473 DD 0e6e815efh,0e6e815efh 2474 DD 0d99be7bah,0d99be7bah 2475 DD 0ce366f4ah,0ce366f4ah 2476 DD 0d4099feah,0d4099feah 2477 DD 0d67cb029h,0d67cb029h 2478 DD 0afb2a431h,0afb2a431h 2479 DD 031233f2ah,031233f2ah 2480 DD 03094a5c6h,03094a5c6h 2481 DD 0c066a235h,0c066a235h 2482 DD 037bc4e74h,037bc4e74h 2483 DD 0a6ca82fch,0a6ca82fch 2484 DD 0b0d090e0h,0b0d090e0h 2485 DD 015d8a733h,015d8a733h 2486 DD 04a9804f1h,04a9804f1h 2487 DD 0f7daec41h,0f7daec41h 2488 DD 00e50cd7fh,00e50cd7fh 2489 DD 02ff69117h,02ff69117h 2490 DD 08dd64d76h,08dd64d76h 2491 DD 04db0ef43h,04db0ef43h 2492 DD 0544daacch,0544daacch 2493 DD 0df0496e4h,0df0496e4h 2494 DD 0e3b5d19eh,0e3b5d19eh 2495 DD 01b886a4ch,01b886a4ch 2496 DD 0b81f2cc1h,0b81f2cc1h 2497 DD 07f516546h,07f516546h 2498 DD 004ea5e9dh,004ea5e9dh 2499 DD 05d358c01h,05d358c01h 2500 DD 0737487fah,0737487fah 2501 DD 02e410bfbh,02e410bfbh 2502 DD 05a1d67b3h,05a1d67b3h 2503 DD 052d2db92h,052d2db92h 2504 DD 0335610e9h,0335610e9h 2505 DD 01347d66dh,01347d66dh 2506 DD 08c61d79ah,08c61d79ah 2507 DD 07a0ca137h,07a0ca137h 2508 DD 08e14f859h,08e14f859h 2509 DD 0893c13ebh,0893c13ebh 2510 DD 0ee27a9ceh,0ee27a9ceh 2511 DD 035c961b7h,035c961b7h 2512 DD 0ede51ce1h,0ede51ce1h 2513 DD 03cb1477ah,03cb1477ah 2514 DD 059dfd29ch,059dfd29ch 2515 DD 03f73f255h,03f73f255h 2516 DD 079ce1418h,079ce1418h 2517 DD 0bf37c773h,0bf37c773h 2518 DD 0eacdf753h,0eacdf753h 2519 DD 05baafd5fh,05baafd5fh 2520 DD 0146f3ddfh,0146f3ddfh 2521 DD 086db4478h,086db4478h 2522 DD 081f3afcah,081f3afcah 2523 DD 03ec468b9h,03ec468b9h 2524 DD 02c342438h,02c342438h 2525 DD 05f40a3c2h,05f40a3c2h 2526 DD 072c31d16h,072c31d16h 2527 DD 00c25e2bch,00c25e2bch 2528 DD 08b493c28h,08b493c28h 2529 DD 041950dffh,041950dffh 2530 DD 07101a839h,07101a839h 2531 DD 0deb30c08h,0deb30c08h 2532 DD 09ce4b4d8h,09ce4b4d8h 2533 DD 090c15664h,090c15664h 2534 DD 06184cb7bh,06184cb7bh 2535 DD 070b632d5h,070b632d5h 2536 DD 0745c6c48h,0745c6c48h 2537 DD 04257b8d0h,04257b8d0h 2538DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h 2539DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh 2540DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h 2541DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh 2542DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh 2543DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh 2544DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h 2545DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h 2546DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h 2547DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h 2548DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah 2549DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h 2550DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah 2551DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h 2552DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h 2553DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh 2554DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah 2555DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h 2556DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h 2557DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh 2558DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h 2559DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh 2560DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h 2561DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h 2562DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h 2563DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh 2564DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh 2565DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh 2566DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h 2567DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h 2568DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h 2569DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh 2570 DD 080808080h,080808080h,0fefefefeh,0fefefefeh 2571 DD 01b1b1b1bh,01b1b1b1bh,0,0 2572DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h 2573DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh 2574DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h 2575DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh 2576DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh 2577DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh 2578DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h 2579DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h 2580DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h 2581DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h 2582DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah 2583DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h 2584DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah 2585DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h 2586DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h 2587DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh 2588DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah 2589DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h 2590DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h 2591DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh 2592DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h 2593DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh 2594DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h 2595DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h 2596DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h 2597DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh 2598DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh 2599DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh 2600DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h 2601DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h 2602DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h 2603DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh 2604 DD 080808080h,080808080h,0fefefefeh,0fefefefeh 2605 DD 01b1b1b1bh,01b1b1b1bh,0,0 2606DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h 2607DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh 2608DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h 2609DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh 2610DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh 2611DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh 2612DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h 2613DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h 2614DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h 2615DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h 2616DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah 2617DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h 2618DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah 2619DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h 2620DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h 2621DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh 2622DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah 2623DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h 2624DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h 2625DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh 2626DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h 2627DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh 2628DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h 2629DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h 2630DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h 2631DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh 2632DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh 2633DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh 2634DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h 2635DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h 2636DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h 2637DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh 2638 DD 080808080h,080808080h,0fefefefeh,0fefefefeh 2639 DD 01b1b1b1bh,01b1b1b1bh,0,0 2640DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h 2641DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh 2642DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h 2643DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh 2644DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh 2645DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh 2646DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h 2647DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h 2648DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h 2649DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h 2650DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah 2651DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h 2652DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah 2653DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h 2654DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h 2655DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh 2656DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah 2657DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h 2658DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h 2659DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh 2660DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h 2661DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh 2662DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h 2663DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h 2664DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h 2665DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh 2666DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh 2667DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh 2668DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h 2669DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h 2670DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h 2671DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh 2672 DD 080808080h,080808080h,0fefefefeh,0fefefefeh 2673 DD 01b1b1b1bh,01b1b1b1bh,0,0 2674DB 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32 2675DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 2676DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 2677DB 62,0 2678ALIGN 64 2679EXTERN __imp_RtlVirtualUnwind:NEAR 2680 2681ALIGN 16 2682block_se_handler PROC PRIVATE 2683 push rsi 2684 push rdi 2685 push rbx 2686 push rbp 2687 push r12 2688 push r13 2689 push r14 2690 push r15 2691 pushfq 2692 sub rsp,64 2693 2694 mov rax,QWORD PTR[120+r8] 2695 mov rbx,QWORD PTR[248+r8] 2696 2697 mov rsi,QWORD PTR[8+r9] 2698 mov r11,QWORD PTR[56+r9] 2699 2700 mov r10d,DWORD PTR[r11] 2701 lea r10,QWORD PTR[r10*1+rsi] 2702 cmp rbx,r10 2703 jb $L$in_block_prologue 2704 2705 mov rax,QWORD PTR[152+r8] 2706 2707 mov r10d,DWORD PTR[4+r11] 2708 lea r10,QWORD PTR[r10*1+rsi] 2709 cmp rbx,r10 2710 jae $L$in_block_prologue 2711 2712 mov rax,QWORD PTR[24+rax] 2713 lea rax,QWORD PTR[48+rax] 2714 2715 mov rbx,QWORD PTR[((-8))+rax] 2716 mov rbp,QWORD PTR[((-16))+rax] 2717 mov r12,QWORD PTR[((-24))+rax] 2718 mov r13,QWORD PTR[((-32))+rax] 2719 mov r14,QWORD PTR[((-40))+rax] 2720 mov r15,QWORD PTR[((-48))+rax] 2721 mov QWORD PTR[144+r8],rbx 2722 mov QWORD PTR[160+r8],rbp 2723 mov QWORD PTR[216+r8],r12 2724 mov QWORD PTR[224+r8],r13 2725 mov QWORD PTR[232+r8],r14 2726 mov QWORD PTR[240+r8],r15 2727 2728$L$in_block_prologue:: 2729 mov rdi,QWORD PTR[8+rax] 2730 mov rsi,QWORD PTR[16+rax] 2731 mov QWORD PTR[152+r8],rax 2732 mov QWORD PTR[168+r8],rsi 2733 mov QWORD PTR[176+r8],rdi 2734 2735 jmp $L$common_seh_exit 2736block_se_handler ENDP 2737 2738 2739ALIGN 16 2740key_se_handler PROC PRIVATE 2741 push rsi 2742 push rdi 2743 push rbx 2744 push rbp 2745 push r12 2746 push r13 2747 push r14 2748 push r15 2749 pushfq 2750 sub rsp,64 2751 2752 mov rax,QWORD PTR[120+r8] 2753 mov rbx,QWORD PTR[248+r8] 2754 2755 mov rsi,QWORD PTR[8+r9] 2756 mov r11,QWORD PTR[56+r9] 2757 2758 mov r10d,DWORD PTR[r11] 2759 lea r10,QWORD PTR[r10*1+rsi] 2760 cmp rbx,r10 2761 jb $L$in_key_prologue 2762 2763 mov rax,QWORD PTR[152+r8] 2764 2765 mov r10d,DWORD PTR[4+r11] 2766 lea r10,QWORD PTR[r10*1+rsi] 2767 cmp rbx,r10 2768 jae $L$in_key_prologue 2769 2770 lea rax,QWORD PTR[56+rax] 2771 2772 mov rbx,QWORD PTR[((-8))+rax] 2773 mov rbp,QWORD PTR[((-16))+rax] 2774 mov r12,QWORD PTR[((-24))+rax] 2775 mov r13,QWORD PTR[((-32))+rax] 2776 mov r14,QWORD PTR[((-40))+rax] 2777 mov r15,QWORD PTR[((-48))+rax] 2778 mov QWORD PTR[144+r8],rbx 2779 mov QWORD PTR[160+r8],rbp 2780 mov QWORD PTR[216+r8],r12 2781 mov QWORD PTR[224+r8],r13 2782 mov QWORD PTR[232+r8],r14 2783 mov QWORD PTR[240+r8],r15 2784 2785$L$in_key_prologue:: 2786 mov rdi,QWORD PTR[8+rax] 2787 mov rsi,QWORD PTR[16+rax] 2788 mov QWORD PTR[152+r8],rax 2789 mov QWORD PTR[168+r8],rsi 2790 mov QWORD PTR[176+r8],rdi 2791 2792 jmp $L$common_seh_exit 2793key_se_handler ENDP 2794 2795 2796ALIGN 16 2797cbc_se_handler PROC PRIVATE 2798 push rsi 2799 push rdi 2800 push rbx 2801 push rbp 2802 push r12 2803 push r13 2804 push r14 2805 push r15 2806 pushfq 2807 sub rsp,64 2808 2809 mov rax,QWORD PTR[120+r8] 2810 mov rbx,QWORD PTR[248+r8] 2811 2812 lea r10,QWORD PTR[$L$cbc_prologue] 2813 cmp rbx,r10 2814 jb $L$in_cbc_prologue 2815 2816 lea r10,QWORD PTR[$L$cbc_fast_body] 2817 cmp rbx,r10 2818 jb $L$in_cbc_frame_setup 2819 2820 lea r10,QWORD PTR[$L$cbc_slow_prologue] 2821 cmp rbx,r10 2822 jb $L$in_cbc_body 2823 2824 lea r10,QWORD PTR[$L$cbc_slow_body] 2825 cmp rbx,r10 2826 jb $L$in_cbc_frame_setup 2827 2828$L$in_cbc_body:: 2829 mov rax,QWORD PTR[152+r8] 2830 2831 lea r10,QWORD PTR[$L$cbc_epilogue] 2832 cmp rbx,r10 2833 jae $L$in_cbc_prologue 2834 2835 lea rax,QWORD PTR[8+rax] 2836 2837 lea r10,QWORD PTR[$L$cbc_popfq] 2838 cmp rbx,r10 2839 jae $L$in_cbc_prologue 2840 2841 mov rax,QWORD PTR[8+rax] 2842 lea rax,QWORD PTR[56+rax] 2843 2844$L$in_cbc_frame_setup:: 2845 mov rbx,QWORD PTR[((-16))+rax] 2846 mov rbp,QWORD PTR[((-24))+rax] 2847 mov r12,QWORD PTR[((-32))+rax] 2848 mov r13,QWORD PTR[((-40))+rax] 2849 mov r14,QWORD PTR[((-48))+rax] 2850 mov r15,QWORD PTR[((-56))+rax] 2851 mov QWORD PTR[144+r8],rbx 2852 mov QWORD PTR[160+r8],rbp 2853 mov QWORD PTR[216+r8],r12 2854 mov QWORD PTR[224+r8],r13 2855 mov QWORD PTR[232+r8],r14 2856 mov QWORD PTR[240+r8],r15 2857 2858$L$in_cbc_prologue:: 2859 mov rdi,QWORD PTR[8+rax] 2860 mov rsi,QWORD PTR[16+rax] 2861 mov QWORD PTR[152+r8],rax 2862 mov QWORD PTR[168+r8],rsi 2863 mov QWORD PTR[176+r8],rdi 2864 2865$L$common_seh_exit:: 2866 2867 mov rdi,QWORD PTR[40+r9] 2868 mov rsi,r8 2869 mov ecx,154 2870 DD 0a548f3fch 2871 2872 mov rsi,r9 2873 xor rcx,rcx 2874 mov rdx,QWORD PTR[8+rsi] 2875 mov r8,QWORD PTR[rsi] 2876 mov r9,QWORD PTR[16+rsi] 2877 mov r10,QWORD PTR[40+rsi] 2878 lea r11,QWORD PTR[56+rsi] 2879 lea r12,QWORD PTR[24+rsi] 2880 mov QWORD PTR[32+rsp],r10 2881 mov QWORD PTR[40+rsp],r11 2882 mov QWORD PTR[48+rsp],r12 2883 mov QWORD PTR[56+rsp],rcx 2884 call QWORD PTR[__imp_RtlVirtualUnwind] 2885 2886 mov eax,1 2887 add rsp,64 2888 popfq 2889 pop r15 2890 pop r14 2891 pop r13 2892 pop r12 2893 pop rbp 2894 pop rbx 2895 pop rdi 2896 pop rsi 2897 DB 0F3h,0C3h ;repret 2898cbc_se_handler ENDP 2899 2900.text$ ENDS 2901.pdata SEGMENT READONLY ALIGN(4) 2902ALIGN 4 2903 DD imagerel $L$SEH_begin_AES_encrypt 2904 DD imagerel $L$SEH_end_AES_encrypt 2905 DD imagerel $L$SEH_info_AES_encrypt 2906 2907 DD imagerel $L$SEH_begin_AES_decrypt 2908 DD imagerel $L$SEH_end_AES_decrypt 2909 DD imagerel $L$SEH_info_AES_decrypt 2910 2911 DD imagerel $L$SEH_begin_AES_set_encrypt_key 2912 DD imagerel $L$SEH_end_AES_set_encrypt_key 2913 DD imagerel $L$SEH_info_AES_set_encrypt_key 2914 2915 DD imagerel $L$SEH_begin_AES_set_decrypt_key 2916 DD imagerel $L$SEH_end_AES_set_decrypt_key 2917 DD imagerel $L$SEH_info_AES_set_decrypt_key 2918 2919 DD imagerel $L$SEH_begin_AES_cbc_encrypt 2920 DD imagerel $L$SEH_end_AES_cbc_encrypt 2921 DD imagerel $L$SEH_info_AES_cbc_encrypt 2922 2923.pdata ENDS 2924.xdata SEGMENT READONLY ALIGN(8) 2925ALIGN 8 2926$L$SEH_info_AES_encrypt:: 2927DB 9,0,0,0 2928 DD imagerel block_se_handler 2929 DD imagerel $L$enc_prologue,imagerel $L$enc_epilogue 2930$L$SEH_info_AES_decrypt:: 2931DB 9,0,0,0 2932 DD imagerel block_se_handler 2933 DD imagerel $L$dec_prologue,imagerel $L$dec_epilogue 2934$L$SEH_info_AES_set_encrypt_key:: 2935DB 9,0,0,0 2936 DD imagerel key_se_handler 2937 DD imagerel $L$enc_key_prologue,imagerel $L$enc_key_epilogue 2938$L$SEH_info_AES_set_decrypt_key:: 2939DB 9,0,0,0 2940 DD imagerel key_se_handler 2941 DD imagerel $L$dec_key_prologue,imagerel $L$dec_key_epilogue 2942$L$SEH_info_AES_cbc_encrypt:: 2943DB 9,0,0,0 2944 DD imagerel cbc_se_handler 2945 2946.xdata ENDS 2947END 2948 2949