Changeset 95221 in vbox for trunk/src/libs/openssl-3.0.3/crypto/genasm-nasm/aesni-sha256-x86_64.S
- Timestamp:
- Jun 8, 2022 8:35:57 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/openssl-3.0.3/crypto/genasm-nasm/aesni-sha256-x86_64.S
r94083 r95221 12 12 aesni_cbc_sha256_enc: 13 13 14 lea r11,[OPENSSL_ia32cap_P]15 mov eax,116 cmp rcx,017 je NEAR $L$probe18 mov eax,DWORD[r11]19 mov r10,QWORD[4+r11]20 bt r10,6121 jc NEAR aesni_cbc_sha256_enc_shaext22 mov r11,r1023 shr r11,3224 25 test r10d,204826 jnz NEAR aesni_cbc_sha256_enc_xop27 and r11d,29628 cmp r11d,29629 je NEAR aesni_cbc_sha256_enc_avx230 and r10d,26843545631 jnz NEAR aesni_cbc_sha256_enc_avx32 ud233 14 xor eax,eax 34 15 cmp rcx,0 … … 86 67 DB 46,111,114,103,62,0 87 68 ALIGN 64 88 89 ALIGN 6490 aesni_cbc_sha256_enc_xop:91 mov QWORD[8+rsp],rdi ;WIN64 prologue92 mov QWORD[16+rsp],rsi93 mov rax,rsp94 $L$SEH_begin_aesni_cbc_sha256_enc_xop:95 mov rdi,rcx96 mov rsi,rdx97 mov rdx,r898 mov rcx,r999 mov r8,QWORD[40+rsp]100 mov r9,QWORD[48+rsp]101 102 103 104 $L$xop_shortcut:105 mov r10,QWORD[56+rsp]106 mov rax,rsp107 108 push rbx109 110 push rbp111 112 push r12113 114 push r13115 116 push r14117 118 push r15119 120 sub rsp,288121 and rsp,-64122 123 shl rdx,6124 sub rsi,rdi125 sub r10,rdi126 add rdx,rdi127 128 129 mov QWORD[((64+8))+rsp],rsi130 mov QWORD[((64+16))+rsp],rdx131 132 mov QWORD[((64+32))+rsp],r8133 mov QWORD[((64+40))+rsp],r9134 mov QWORD[((64+48))+rsp],r10135 mov QWORD[120+rsp],rax136 137 movaps XMMWORD[128+rsp],xmm6138 movaps XMMWORD[144+rsp],xmm7139 movaps XMMWORD[160+rsp],xmm8140 movaps XMMWORD[176+rsp],xmm9141 movaps XMMWORD[192+rsp],xmm10142 movaps XMMWORD[208+rsp],xmm11143 movaps XMMWORD[224+rsp],xmm12144 movaps XMMWORD[240+rsp],xmm13145 movaps XMMWORD[256+rsp],xmm14146 movaps XMMWORD[272+rsp],xmm15147 $L$prologue_xop:148 vzeroall149 150 mov r12,rdi151 lea rdi,[128+rcx]152 lea r13,[((K256+544))]153 mov r14d,DWORD[((240-128))+rdi]154 mov r15,r9155 mov rsi,r10156 vmovdqu xmm8,XMMWORD[r8]157 sub r14,9158 159 mov eax,DWORD[r15]160 mov ebx,DWORD[4+r15]161 mov ecx,DWORD[8+r15]162 mov edx,DWORD[12+r15]163 mov r8d,DWORD[16+r15]164 mov r9d,DWORD[20+r15]165 mov r10d,DWORD[24+r15]166 mov r11d,DWORD[28+r15]167 168 vmovdqa xmm14,XMMWORD[r14*8+r13]169 vmovdqa xmm13,XMMWORD[16+r14*8+r13]170 vmovdqa xmm12,XMMWORD[32+r14*8+r13]171 vmovdqu xmm10,XMMWORD[((0-128))+rdi]172 jmp NEAR $L$loop_xop173 ALIGN 16174 $L$loop_xop:175 vmovdqa xmm7,XMMWORD[((K256+512))]176 vmovdqu xmm0,XMMWORD[r12*1+rsi]177 vmovdqu xmm1,XMMWORD[16+r12*1+rsi]178 vmovdqu xmm2,XMMWORD[32+r12*1+rsi]179 vmovdqu xmm3,XMMWORD[48+r12*1+rsi]180 vpshufb xmm0,xmm0,xmm7181 lea rbp,[K256]182 vpshufb xmm1,xmm1,xmm7183 vpshufb xmm2,xmm2,xmm7184 vpaddd xmm4,xmm0,XMMWORD[rbp]185 vpshufb xmm3,xmm3,xmm7186 vpaddd xmm5,xmm1,XMMWORD[32+rbp]187 vpaddd xmm6,xmm2,XMMWORD[64+rbp]188 vpaddd xmm7,xmm3,XMMWORD[96+rbp]189 vmovdqa XMMWORD[rsp],xmm4190 mov r14d,eax191 vmovdqa XMMWORD[16+rsp],xmm5192 mov esi,ebx193 vmovdqa XMMWORD[32+rsp],xmm6194 xor esi,ecx195 vmovdqa XMMWORD[48+rsp],xmm7196 mov r13d,r8d197 jmp NEAR $L$xop_00_47198 199 ALIGN 16200 $L$xop_00_47:201 sub rbp,-16*2*4202 vmovdqu xmm9,XMMWORD[r12]203 mov QWORD[((64+0))+rsp],r12204 vpalignr xmm4,xmm1,xmm0,4205 ror r13d,14206 mov eax,r14d207 vpalignr xmm7,xmm3,xmm2,4208 mov r12d,r9d209 xor r13d,r8d210 DB 143,232,120,194,236,14211 ror r14d,9212 xor r12d,r10d213 vpsrld xmm4,xmm4,3214 ror r13d,5215 xor r14d,eax216 vpaddd xmm0,xmm0,xmm7217 and r12d,r8d218 vpxor xmm9,xmm9,xmm10219 vmovdqu xmm10,XMMWORD[((16-128))+rdi]220 xor r13d,r8d221 add r11d,DWORD[rsp]222 mov r15d,eax223 DB 143,232,120,194,245,11224 ror r14d,11225 xor r12d,r10d226 vpxor xmm4,xmm4,xmm5227 xor r15d,ebx228 ror r13d,6229 add r11d,r12d230 and esi,r15d231 DB 143,232,120,194,251,13232 xor r14d,eax233 add r11d,r13d234 vpxor xmm4,xmm4,xmm6235 xor esi,ebx236 add edx,r11d237 vpsrld xmm6,xmm3,10238 ror r14d,2239 add r11d,esi240 vpaddd xmm0,xmm0,xmm4241 mov r13d,edx242 add r14d,r11d243 DB 143,232,120,194,239,2244 ror r13d,14245 mov r11d,r14d246 vpxor xmm7,xmm7,xmm6247 mov r12d,r8d248 xor r13d,edx249 ror r14d,9250 xor r12d,r9d251 vpxor xmm7,xmm7,xmm5252 ror r13d,5253 xor r14d,r11d254 and r12d,edx255 vpxor xmm9,xmm9,xmm8256 xor r13d,edx257 vpsrldq xmm7,xmm7,8258 add r10d,DWORD[4+rsp]259 mov esi,r11d260 ror r14d,11261 xor r12d,r9d262 vpaddd xmm0,xmm0,xmm7263 xor esi,eax264 ror r13d,6265 add r10d,r12d266 and r15d,esi267 DB 143,232,120,194,248,13268 xor r14d,r11d269 add r10d,r13d270 vpsrld xmm6,xmm0,10271 xor r15d,eax272 add ecx,r10d273 DB 143,232,120,194,239,2274 ror r14d,2275 add r10d,r15d276 vpxor xmm7,xmm7,xmm6277 mov r13d,ecx278 add r14d,r10d279 ror r13d,14280 mov r10d,r14d281 vpxor xmm7,xmm7,xmm5282 mov r12d,edx283 xor r13d,ecx284 ror r14d,9285 xor r12d,r8d286 vpslldq xmm7,xmm7,8287 ror r13d,5288 xor r14d,r10d289 and r12d,ecx290 vaesenc xmm9,xmm9,xmm10291 vmovdqu xmm10,XMMWORD[((32-128))+rdi]292 xor r13d,ecx293 vpaddd xmm0,xmm0,xmm7294 add r9d,DWORD[8+rsp]295 mov r15d,r10d296 ror r14d,11297 xor r12d,r8d298 vpaddd xmm6,xmm0,XMMWORD[rbp]299 xor r15d,r11d300 ror r13d,6301 add r9d,r12d302 and esi,r15d303 xor r14d,r10d304 add r9d,r13d305 xor esi,r11d306 add ebx,r9d307 ror r14d,2308 add r9d,esi309 mov r13d,ebx310 add r14d,r9d311 ror r13d,14312 mov r9d,r14d313 mov r12d,ecx314 xor r13d,ebx315 ror r14d,9316 xor r12d,edx317 ror r13d,5318 xor r14d,r9d319 and r12d,ebx320 vaesenc xmm9,xmm9,xmm10321 vmovdqu xmm10,XMMWORD[((48-128))+rdi]322 xor r13d,ebx323 add r8d,DWORD[12+rsp]324 mov esi,r9d325 ror r14d,11326 xor r12d,edx327 xor esi,r10d328 ror r13d,6329 add r8d,r12d330 and r15d,esi331 xor r14d,r9d332 add r8d,r13d333 xor r15d,r10d334 add eax,r8d335 ror r14d,2336 add r8d,r15d337 mov r13d,eax338 add r14d,r8d339 vmovdqa XMMWORD[rsp],xmm6340 vpalignr xmm4,xmm2,xmm1,4341 ror r13d,14342 mov r8d,r14d343 vpalignr xmm7,xmm0,xmm3,4344 mov r12d,ebx345 xor r13d,eax346 DB 143,232,120,194,236,14347 ror r14d,9348 xor r12d,ecx349 vpsrld xmm4,xmm4,3350 ror r13d,5351 xor r14d,r8d352 vpaddd xmm1,xmm1,xmm7353 and r12d,eax354 vaesenc xmm9,xmm9,xmm10355 vmovdqu xmm10,XMMWORD[((64-128))+rdi]356 xor r13d,eax357 add edx,DWORD[16+rsp]358 mov r15d,r8d359 DB 143,232,120,194,245,11360 ror r14d,11361 xor r12d,ecx362 vpxor xmm4,xmm4,xmm5363 xor r15d,r9d364 ror r13d,6365 add edx,r12d366 and esi,r15d367 DB 143,232,120,194,248,13368 xor r14d,r8d369 add edx,r13d370 vpxor xmm4,xmm4,xmm6371 xor esi,r9d372 add r11d,edx373 vpsrld xmm6,xmm0,10374 ror r14d,2375 add edx,esi376 vpaddd xmm1,xmm1,xmm4377 mov r13d,r11d378 add r14d,edx379 DB 143,232,120,194,239,2380 ror r13d,14381 mov edx,r14d382 vpxor xmm7,xmm7,xmm6383 mov r12d,eax384 xor r13d,r11d385 ror r14d,9386 xor r12d,ebx387 vpxor xmm7,xmm7,xmm5388 ror r13d,5389 xor r14d,edx390 and r12d,r11d391 vaesenc xmm9,xmm9,xmm10392 vmovdqu xmm10,XMMWORD[((80-128))+rdi]393 xor r13d,r11d394 vpsrldq xmm7,xmm7,8395 add ecx,DWORD[20+rsp]396 mov esi,edx397 ror r14d,11398 xor r12d,ebx399 vpaddd xmm1,xmm1,xmm7400 xor esi,r8d401 ror r13d,6402 add ecx,r12d403 and r15d,esi404 DB 143,232,120,194,249,13405 xor r14d,edx406 add ecx,r13d407 vpsrld xmm6,xmm1,10408 xor r15d,r8d409 add r10d,ecx410 DB 143,232,120,194,239,2411 ror r14d,2412 add ecx,r15d413 vpxor xmm7,xmm7,xmm6414 mov r13d,r10d415 add r14d,ecx416 ror r13d,14417 mov ecx,r14d418 vpxor xmm7,xmm7,xmm5419 mov r12d,r11d420 xor r13d,r10d421 ror r14d,9422 xor r12d,eax423 vpslldq xmm7,xmm7,8424 ror r13d,5425 xor r14d,ecx426 and r12d,r10d427 vaesenc xmm9,xmm9,xmm10428 vmovdqu xmm10,XMMWORD[((96-128))+rdi]429 xor r13d,r10d430 vpaddd xmm1,xmm1,xmm7431 add ebx,DWORD[24+rsp]432 mov r15d,ecx433 ror r14d,11434 xor r12d,eax435 vpaddd xmm6,xmm1,XMMWORD[32+rbp]436 xor r15d,edx437 ror r13d,6438 add ebx,r12d439 and esi,r15d440 xor r14d,ecx441 add ebx,r13d442 xor esi,edx443 add r9d,ebx444 ror r14d,2445 add ebx,esi446 mov r13d,r9d447 add r14d,ebx448 ror r13d,14449 mov ebx,r14d450 mov r12d,r10d451 xor r13d,r9d452 ror r14d,9453 xor r12d,r11d454 ror r13d,5455 xor r14d,ebx456 and r12d,r9d457 vaesenc xmm9,xmm9,xmm10458 vmovdqu xmm10,XMMWORD[((112-128))+rdi]459 xor r13d,r9d460 add eax,DWORD[28+rsp]461 mov esi,ebx462 ror r14d,11463 xor r12d,r11d464 xor esi,ecx465 ror r13d,6466 add eax,r12d467 and r15d,esi468 xor r14d,ebx469 add eax,r13d470 xor r15d,ecx471 add r8d,eax472 ror r14d,2473 add eax,r15d474 mov r13d,r8d475 add r14d,eax476 vmovdqa XMMWORD[16+rsp],xmm6477 vpalignr xmm4,xmm3,xmm2,4478 ror r13d,14479 mov eax,r14d480 vpalignr xmm7,xmm1,xmm0,4481 mov r12d,r9d482 xor r13d,r8d483 DB 143,232,120,194,236,14484 ror r14d,9485 xor r12d,r10d486 vpsrld xmm4,xmm4,3487 ror r13d,5488 xor r14d,eax489 vpaddd xmm2,xmm2,xmm7490 and r12d,r8d491 vaesenc xmm9,xmm9,xmm10492 vmovdqu xmm10,XMMWORD[((128-128))+rdi]493 xor r13d,r8d494 add r11d,DWORD[32+rsp]495 mov r15d,eax496 DB 143,232,120,194,245,11497 ror r14d,11498 xor r12d,r10d499 vpxor xmm4,xmm4,xmm5500 xor r15d,ebx501 ror r13d,6502 add r11d,r12d503 and esi,r15d504 DB 143,232,120,194,249,13505 xor r14d,eax506 add r11d,r13d507 vpxor xmm4,xmm4,xmm6508 xor esi,ebx509 add edx,r11d510 vpsrld xmm6,xmm1,10511 ror r14d,2512 add r11d,esi513 vpaddd xmm2,xmm2,xmm4514 mov r13d,edx515 add r14d,r11d516 DB 143,232,120,194,239,2517 ror r13d,14518 mov r11d,r14d519 vpxor xmm7,xmm7,xmm6520 mov r12d,r8d521 xor r13d,edx522 ror r14d,9523 xor r12d,r9d524 vpxor xmm7,xmm7,xmm5525 ror r13d,5526 xor r14d,r11d527 and r12d,edx528 vaesenc xmm9,xmm9,xmm10529 vmovdqu xmm10,XMMWORD[((144-128))+rdi]530 xor r13d,edx531 vpsrldq xmm7,xmm7,8532 add r10d,DWORD[36+rsp]533 mov esi,r11d534 ror r14d,11535 xor r12d,r9d536 vpaddd xmm2,xmm2,xmm7537 xor esi,eax538 ror r13d,6539 add r10d,r12d540 and r15d,esi541 DB 143,232,120,194,250,13542 xor r14d,r11d543 add r10d,r13d544 vpsrld xmm6,xmm2,10545 xor r15d,eax546 add ecx,r10d547 DB 143,232,120,194,239,2548 ror r14d,2549 add r10d,r15d550 vpxor xmm7,xmm7,xmm6551 mov r13d,ecx552 add r14d,r10d553 ror r13d,14554 mov r10d,r14d555 vpxor xmm7,xmm7,xmm5556 mov r12d,edx557 xor r13d,ecx558 ror r14d,9559 xor r12d,r8d560 vpslldq xmm7,xmm7,8561 ror r13d,5562 xor r14d,r10d563 and r12d,ecx564 vaesenc xmm9,xmm9,xmm10565 vmovdqu xmm10,XMMWORD[((160-128))+rdi]566 xor r13d,ecx567 vpaddd xmm2,xmm2,xmm7568 add r9d,DWORD[40+rsp]569 mov r15d,r10d570 ror r14d,11571 xor r12d,r8d572 vpaddd xmm6,xmm2,XMMWORD[64+rbp]573 xor r15d,r11d574 ror r13d,6575 add r9d,r12d576 and esi,r15d577 xor r14d,r10d578 add r9d,r13d579 xor esi,r11d580 add ebx,r9d581 ror r14d,2582 add r9d,esi583 mov r13d,ebx584 add r14d,r9d585 ror r13d,14586 mov r9d,r14d587 mov r12d,ecx588 xor r13d,ebx589 ror r14d,9590 xor r12d,edx591 ror r13d,5592 xor r14d,r9d593 and r12d,ebx594 vaesenclast xmm11,xmm9,xmm10595 vaesenc xmm9,xmm9,xmm10596 vmovdqu xmm10,XMMWORD[((176-128))+rdi]597 xor r13d,ebx598 add r8d,DWORD[44+rsp]599 mov esi,r9d600 ror r14d,11601 xor r12d,edx602 xor esi,r10d603 ror r13d,6604 add r8d,r12d605 and r15d,esi606 xor r14d,r9d607 add r8d,r13d608 xor r15d,r10d609 add eax,r8d610 ror r14d,2611 add r8d,r15d612 mov r13d,eax613 add r14d,r8d614 vmovdqa XMMWORD[32+rsp],xmm6615 vpalignr xmm4,xmm0,xmm3,4616 ror r13d,14617 mov r8d,r14d618 vpalignr xmm7,xmm2,xmm1,4619 mov r12d,ebx620 xor r13d,eax621 DB 143,232,120,194,236,14622 ror r14d,9623 xor r12d,ecx624 vpsrld xmm4,xmm4,3625 ror r13d,5626 xor r14d,r8d627 vpaddd xmm3,xmm3,xmm7628 and r12d,eax629 vpand xmm8,xmm11,xmm12630 vaesenc xmm9,xmm9,xmm10631 vmovdqu xmm10,XMMWORD[((192-128))+rdi]632 xor r13d,eax633 add edx,DWORD[48+rsp]634 mov r15d,r8d635 DB 143,232,120,194,245,11636 ror r14d,11637 xor r12d,ecx638 vpxor xmm4,xmm4,xmm5639 xor r15d,r9d640 ror r13d,6641 add edx,r12d642 and esi,r15d643 DB 143,232,120,194,250,13644 xor r14d,r8d645 add edx,r13d646 vpxor xmm4,xmm4,xmm6647 xor esi,r9d648 add r11d,edx649 vpsrld xmm6,xmm2,10650 ror r14d,2651 add edx,esi652 vpaddd xmm3,xmm3,xmm4653 mov r13d,r11d654 add r14d,edx655 DB 143,232,120,194,239,2656 ror r13d,14657 mov edx,r14d658 vpxor xmm7,xmm7,xmm6659 mov r12d,eax660 xor r13d,r11d661 ror r14d,9662 xor r12d,ebx663 vpxor xmm7,xmm7,xmm5664 ror r13d,5665 xor r14d,edx666 and r12d,r11d667 vaesenclast xmm11,xmm9,xmm10668 vaesenc xmm9,xmm9,xmm10669 vmovdqu xmm10,XMMWORD[((208-128))+rdi]670 xor r13d,r11d671 vpsrldq xmm7,xmm7,8672 add ecx,DWORD[52+rsp]673 mov esi,edx674 ror r14d,11675 xor r12d,ebx676 vpaddd xmm3,xmm3,xmm7677 xor esi,r8d678 ror r13d,6679 add ecx,r12d680 and r15d,esi681 DB 143,232,120,194,251,13682 xor r14d,edx683 add ecx,r13d684 vpsrld xmm6,xmm3,10685 xor r15d,r8d686 add r10d,ecx687 DB 143,232,120,194,239,2688 ror r14d,2689 add ecx,r15d690 vpxor xmm7,xmm7,xmm6691 mov r13d,r10d692 add r14d,ecx693 ror r13d,14694 mov ecx,r14d695 vpxor xmm7,xmm7,xmm5696 mov r12d,r11d697 xor r13d,r10d698 ror r14d,9699 xor r12d,eax700 vpslldq xmm7,xmm7,8701 ror r13d,5702 xor r14d,ecx703 and r12d,r10d704 vpand xmm11,xmm11,xmm13705 vaesenc xmm9,xmm9,xmm10706 vmovdqu xmm10,XMMWORD[((224-128))+rdi]707 xor r13d,r10d708 vpaddd xmm3,xmm3,xmm7709 add ebx,DWORD[56+rsp]710 mov r15d,ecx711 ror r14d,11712 xor r12d,eax713 vpaddd xmm6,xmm3,XMMWORD[96+rbp]714 xor r15d,edx715 ror r13d,6716 add ebx,r12d717 and esi,r15d718 xor r14d,ecx719 add ebx,r13d720 xor esi,edx721 add r9d,ebx722 ror r14d,2723 add ebx,esi724 mov r13d,r9d725 add r14d,ebx726 ror r13d,14727 mov ebx,r14d728 mov r12d,r10d729 xor r13d,r9d730 ror r14d,9731 xor r12d,r11d732 ror r13d,5733 xor r14d,ebx734 and r12d,r9d735 vpor xmm8,xmm8,xmm11736 vaesenclast xmm11,xmm9,xmm10737 vmovdqu xmm10,XMMWORD[((0-128))+rdi]738 xor r13d,r9d739 add eax,DWORD[60+rsp]740 mov esi,ebx741 ror r14d,11742 xor r12d,r11d743 xor esi,ecx744 ror r13d,6745 add eax,r12d746 and r15d,esi747 xor r14d,ebx748 add eax,r13d749 xor r15d,ecx750 add r8d,eax751 ror r14d,2752 add eax,r15d753 mov r13d,r8d754 add r14d,eax755 vmovdqa XMMWORD[48+rsp],xmm6756 mov r12,QWORD[((64+0))+rsp]757 vpand xmm11,xmm11,xmm14758 mov r15,QWORD[((64+8))+rsp]759 vpor xmm8,xmm8,xmm11760 vmovdqu XMMWORD[r12*1+r15],xmm8761 lea r12,[16+r12]762 cmp BYTE[131+rbp],0763 jne NEAR $L$xop_00_47764 vmovdqu xmm9,XMMWORD[r12]765 mov QWORD[((64+0))+rsp],r12766 ror r13d,14767 mov eax,r14d768 mov r12d,r9d769 xor r13d,r8d770 ror r14d,9771 xor r12d,r10d772 ror r13d,5773 xor r14d,eax774 and r12d,r8d775 vpxor xmm9,xmm9,xmm10776 vmovdqu xmm10,XMMWORD[((16-128))+rdi]777 xor r13d,r8d778 add r11d,DWORD[rsp]779 mov r15d,eax780 ror r14d,11781 xor r12d,r10d782 xor r15d,ebx783 ror r13d,6784 add r11d,r12d785 and esi,r15d786 xor r14d,eax787 add r11d,r13d788 xor esi,ebx789 add edx,r11d790 ror r14d,2791 add r11d,esi792 mov r13d,edx793 add r14d,r11d794 ror r13d,14795 mov r11d,r14d796 mov r12d,r8d797 xor r13d,edx798 ror r14d,9799 xor r12d,r9d800 ror r13d,5801 xor r14d,r11d802 and r12d,edx803 vpxor xmm9,xmm9,xmm8804 xor r13d,edx805 add r10d,DWORD[4+rsp]806 mov esi,r11d807 ror r14d,11808 xor r12d,r9d809 xor esi,eax810 ror r13d,6811 add r10d,r12d812 and r15d,esi813 xor r14d,r11d814 add r10d,r13d815 xor r15d,eax816 add ecx,r10d817 ror r14d,2818 add r10d,r15d819 mov r13d,ecx820 add r14d,r10d821 ror r13d,14822 mov r10d,r14d823 mov r12d,edx824 xor r13d,ecx825 ror r14d,9826 xor r12d,r8d827 ror r13d,5828 xor r14d,r10d829 and r12d,ecx830 vaesenc xmm9,xmm9,xmm10831 vmovdqu xmm10,XMMWORD[((32-128))+rdi]832 xor r13d,ecx833 add r9d,DWORD[8+rsp]834 mov r15d,r10d835 ror r14d,11836 xor r12d,r8d837 xor r15d,r11d838 ror r13d,6839 add r9d,r12d840 and esi,r15d841 xor r14d,r10d842 add r9d,r13d843 xor esi,r11d844 add ebx,r9d845 ror r14d,2846 add r9d,esi847 mov r13d,ebx848 add r14d,r9d849 ror r13d,14850 mov r9d,r14d851 mov r12d,ecx852 xor r13d,ebx853 ror r14d,9854 xor r12d,edx855 ror r13d,5856 xor r14d,r9d857 and r12d,ebx858 vaesenc xmm9,xmm9,xmm10859 vmovdqu xmm10,XMMWORD[((48-128))+rdi]860 xor r13d,ebx861 add r8d,DWORD[12+rsp]862 mov esi,r9d863 ror r14d,11864 xor r12d,edx865 xor esi,r10d866 ror r13d,6867 add r8d,r12d868 and r15d,esi869 xor r14d,r9d870 add r8d,r13d871 xor r15d,r10d872 add eax,r8d873 ror r14d,2874 add r8d,r15d875 mov r13d,eax876 add r14d,r8d877 ror r13d,14878 mov r8d,r14d879 mov r12d,ebx880 xor r13d,eax881 ror r14d,9882 xor r12d,ecx883 ror r13d,5884 xor r14d,r8d885 and r12d,eax886 vaesenc xmm9,xmm9,xmm10887 vmovdqu xmm10,XMMWORD[((64-128))+rdi]888 xor r13d,eax889 add edx,DWORD[16+rsp]890 mov r15d,r8d891 ror r14d,11892 xor r12d,ecx893 xor r15d,r9d894 ror r13d,6895 add edx,r12d896 and esi,r15d897 xor r14d,r8d898 add edx,r13d899 xor esi,r9d900 add r11d,edx901 ror r14d,2902 add edx,esi903 mov r13d,r11d904 add r14d,edx905 ror r13d,14906 mov edx,r14d907 mov r12d,eax908 xor r13d,r11d909 ror r14d,9910 xor r12d,ebx911 ror r13d,5912 xor r14d,edx913 and r12d,r11d914 vaesenc xmm9,xmm9,xmm10915 vmovdqu xmm10,XMMWORD[((80-128))+rdi]916 xor r13d,r11d917 add ecx,DWORD[20+rsp]918 mov esi,edx919 ror r14d,11920 xor r12d,ebx921 xor esi,r8d922 ror r13d,6923 add ecx,r12d924 and r15d,esi925 xor r14d,edx926 add ecx,r13d927 xor r15d,r8d928 add r10d,ecx929 ror r14d,2930 add ecx,r15d931 mov r13d,r10d932 add r14d,ecx933 ror r13d,14934 mov ecx,r14d935 mov r12d,r11d936 xor r13d,r10d937 ror r14d,9938 xor r12d,eax939 ror r13d,5940 xor r14d,ecx941 and r12d,r10d942 vaesenc xmm9,xmm9,xmm10943 vmovdqu xmm10,XMMWORD[((96-128))+rdi]944 xor r13d,r10d945 add ebx,DWORD[24+rsp]946 mov r15d,ecx947 ror r14d,11948 xor r12d,eax949 xor r15d,edx950 ror r13d,6951 add ebx,r12d952 and esi,r15d953 xor r14d,ecx954 add ebx,r13d955 xor esi,edx956 add r9d,ebx957 ror r14d,2958 add ebx,esi959 mov r13d,r9d960 add r14d,ebx961 ror r13d,14962 mov ebx,r14d963 mov r12d,r10d964 xor r13d,r9d965 ror r14d,9966 xor r12d,r11d967 ror r13d,5968 xor r14d,ebx969 and r12d,r9d970 vaesenc xmm9,xmm9,xmm10971 vmovdqu xmm10,XMMWORD[((112-128))+rdi]972 xor r13d,r9d973 add eax,DWORD[28+rsp]974 mov esi,ebx975 ror r14d,11976 xor r12d,r11d977 xor esi,ecx978 ror r13d,6979 add eax,r12d980 and r15d,esi981 xor r14d,ebx982 add eax,r13d983 xor r15d,ecx984 add r8d,eax985 ror r14d,2986 add eax,r15d987 mov r13d,r8d988 add r14d,eax989 ror r13d,14990 mov eax,r14d991 mov r12d,r9d992 xor r13d,r8d993 ror r14d,9994 xor r12d,r10d995 ror r13d,5996 xor r14d,eax997 and r12d,r8d998 vaesenc xmm9,xmm9,xmm10999 vmovdqu xmm10,XMMWORD[((128-128))+rdi]1000 xor r13d,r8d1001 add r11d,DWORD[32+rsp]1002 mov r15d,eax1003 ror r14d,111004 xor r12d,r10d1005 xor r15d,ebx1006 ror r13d,61007 add r11d,r12d1008 and esi,r15d1009 xor r14d,eax1010 add r11d,r13d1011 xor esi,ebx1012 add edx,r11d1013 ror r14d,21014 add r11d,esi1015 mov r13d,edx1016 add r14d,r11d1017 ror r13d,141018 mov r11d,r14d1019 mov r12d,r8d1020 xor r13d,edx1021 ror r14d,91022 xor r12d,r9d1023 ror r13d,51024 xor r14d,r11d1025 and r12d,edx1026 vaesenc xmm9,xmm9,xmm101027 vmovdqu xmm10,XMMWORD[((144-128))+rdi]1028 xor r13d,edx1029 add r10d,DWORD[36+rsp]1030 mov esi,r11d1031 ror r14d,111032 xor r12d,r9d1033 xor esi,eax1034 ror r13d,61035 add r10d,r12d1036 and r15d,esi1037 xor r14d,r11d1038 add r10d,r13d1039 xor r15d,eax1040 add ecx,r10d1041 ror r14d,21042 add r10d,r15d1043 mov r13d,ecx1044 add r14d,r10d1045 ror r13d,141046 mov r10d,r14d1047 mov r12d,edx1048 xor r13d,ecx1049 ror r14d,91050 xor r12d,r8d1051 ror r13d,51052 xor r14d,r10d1053 and r12d,ecx1054 vaesenc xmm9,xmm9,xmm101055 vmovdqu xmm10,XMMWORD[((160-128))+rdi]1056 xor r13d,ecx1057 add r9d,DWORD[40+rsp]1058 mov r15d,r10d1059 ror r14d,111060 xor r12d,r8d1061 xor r15d,r11d1062 ror r13d,61063 add r9d,r12d1064 and esi,r15d1065 xor r14d,r10d1066 add r9d,r13d1067 xor esi,r11d1068 add ebx,r9d1069 ror r14d,21070 add r9d,esi1071 mov r13d,ebx1072 add r14d,r9d1073 ror r13d,141074 mov r9d,r14d1075 mov r12d,ecx1076 xor r13d,ebx1077 ror r14d,91078 xor r12d,edx1079 ror r13d,51080 xor r14d,r9d1081 and r12d,ebx1082 vaesenclast xmm11,xmm9,xmm101083 vaesenc xmm9,xmm9,xmm101084 vmovdqu xmm10,XMMWORD[((176-128))+rdi]1085 xor r13d,ebx1086 add r8d,DWORD[44+rsp]1087 mov esi,r9d1088 ror r14d,111089 xor r12d,edx1090 xor esi,r10d1091 ror r13d,61092 add r8d,r12d1093 and r15d,esi1094 xor r14d,r9d1095 add r8d,r13d1096 xor r15d,r10d1097 add eax,r8d1098 ror r14d,21099 add r8d,r15d1100 mov r13d,eax1101 add r14d,r8d1102 ror r13d,141103 mov r8d,r14d1104 mov r12d,ebx1105 xor r13d,eax1106 ror r14d,91107 xor r12d,ecx1108 ror r13d,51109 xor r14d,r8d1110 and r12d,eax1111 vpand xmm8,xmm11,xmm121112 vaesenc xmm9,xmm9,xmm101113 vmovdqu xmm10,XMMWORD[((192-128))+rdi]1114 xor r13d,eax1115 add edx,DWORD[48+rsp]1116 mov r15d,r8d1117 ror r14d,111118 xor r12d,ecx1119 xor r15d,r9d1120 ror r13d,61121 add edx,r12d1122 and esi,r15d1123 xor r14d,r8d1124 add edx,r13d1125 xor esi,r9d1126 add r11d,edx1127 ror r14d,21128 add edx,esi1129 mov r13d,r11d1130 add r14d,edx1131 ror r13d,141132 mov edx,r14d1133 mov r12d,eax1134 xor r13d,r11d1135 ror r14d,91136 xor r12d,ebx1137 ror r13d,51138 xor r14d,edx1139 and r12d,r11d1140 vaesenclast xmm11,xmm9,xmm101141 vaesenc xmm9,xmm9,xmm101142 vmovdqu xmm10,XMMWORD[((208-128))+rdi]1143 xor r13d,r11d1144 add ecx,DWORD[52+rsp]1145 mov esi,edx1146 ror r14d,111147 xor r12d,ebx1148 xor esi,r8d1149 ror r13d,61150 add ecx,r12d1151 and r15d,esi1152 xor r14d,edx1153 add ecx,r13d1154 xor r15d,r8d1155 add r10d,ecx1156 ror r14d,21157 add ecx,r15d1158 mov r13d,r10d1159 add r14d,ecx1160 ror r13d,141161 mov ecx,r14d1162 mov r12d,r11d1163 xor r13d,r10d1164 ror r14d,91165 xor r12d,eax1166 ror r13d,51167 xor r14d,ecx1168 and r12d,r10d1169 vpand xmm11,xmm11,xmm131170 vaesenc xmm9,xmm9,xmm101171 vmovdqu xmm10,XMMWORD[((224-128))+rdi]1172 xor r13d,r10d1173 add ebx,DWORD[56+rsp]1174 mov r15d,ecx1175 ror r14d,111176 xor r12d,eax1177 xor r15d,edx1178 ror r13d,61179 add ebx,r12d1180 and esi,r15d1181 xor r14d,ecx1182 add ebx,r13d1183 xor esi,edx1184 add r9d,ebx1185 ror r14d,21186 add ebx,esi1187 mov r13d,r9d1188 add r14d,ebx1189 ror r13d,141190 mov ebx,r14d1191 mov r12d,r10d1192 xor r13d,r9d1193 ror r14d,91194 xor r12d,r11d1195 ror r13d,51196 xor r14d,ebx1197 and r12d,r9d1198 vpor xmm8,xmm8,xmm111199 vaesenclast xmm11,xmm9,xmm101200 vmovdqu xmm10,XMMWORD[((0-128))+rdi]1201 xor r13d,r9d1202 add eax,DWORD[60+rsp]1203 mov esi,ebx1204 ror r14d,111205 xor r12d,r11d1206 xor esi,ecx1207 ror r13d,61208 add eax,r12d1209 and r15d,esi1210 xor r14d,ebx1211 add eax,r13d1212 xor r15d,ecx1213 add r8d,eax1214 ror r14d,21215 add eax,r15d1216 mov r13d,r8d1217 add r14d,eax1218 mov r12,QWORD[((64+0))+rsp]1219 mov r13,QWORD[((64+8))+rsp]1220 mov r15,QWORD[((64+40))+rsp]1221 mov rsi,QWORD[((64+48))+rsp]1222 1223 vpand xmm11,xmm11,xmm141224 mov eax,r14d1225 vpor xmm8,xmm8,xmm111226 vmovdqu XMMWORD[r13*1+r12],xmm81227 lea r12,[16+r12]1228 1229 add eax,DWORD[r15]1230 add ebx,DWORD[4+r15]1231 add ecx,DWORD[8+r15]1232 add edx,DWORD[12+r15]1233 add r8d,DWORD[16+r15]1234 add r9d,DWORD[20+r15]1235 add r10d,DWORD[24+r15]1236 add r11d,DWORD[28+r15]1237 1238 cmp r12,QWORD[((64+16))+rsp]1239 1240 mov DWORD[r15],eax1241 mov DWORD[4+r15],ebx1242 mov DWORD[8+r15],ecx1243 mov DWORD[12+r15],edx1244 mov DWORD[16+r15],r8d1245 mov DWORD[20+r15],r9d1246 mov DWORD[24+r15],r10d1247 mov DWORD[28+r15],r11d1248 1249 jb NEAR $L$loop_xop1250 1251 mov r8,QWORD[((64+32))+rsp]1252 mov rsi,QWORD[120+rsp]1253 1254 vmovdqu XMMWORD[r8],xmm81255 vzeroall1256 movaps xmm6,XMMWORD[128+rsp]1257 movaps xmm7,XMMWORD[144+rsp]1258 movaps xmm8,XMMWORD[160+rsp]1259 movaps xmm9,XMMWORD[176+rsp]1260 movaps xmm10,XMMWORD[192+rsp]1261 movaps xmm11,XMMWORD[208+rsp]1262 movaps xmm12,XMMWORD[224+rsp]1263 movaps xmm13,XMMWORD[240+rsp]1264 movaps xmm14,XMMWORD[256+rsp]1265 movaps xmm15,XMMWORD[272+rsp]1266 mov r15,QWORD[((-48))+rsi]1267 1268 mov r14,QWORD[((-40))+rsi]1269 1270 mov r13,QWORD[((-32))+rsi]1271 1272 mov r12,QWORD[((-24))+rsi]1273 1274 mov rbp,QWORD[((-16))+rsi]1275 1276 mov rbx,QWORD[((-8))+rsi]1277 1278 lea rsp,[rsi]1279 1280 $L$epilogue_xop:1281 mov rdi,QWORD[8+rsp] ;WIN64 epilogue1282 mov rsi,QWORD[16+rsp]1283 DB 0F3h,0C3h ;repret1284 1285 $L$SEH_end_aesni_cbc_sha256_enc_xop:1286 1287 ALIGN 641288 aesni_cbc_sha256_enc_avx:1289 mov QWORD[8+rsp],rdi ;WIN64 prologue1290 mov QWORD[16+rsp],rsi1291 mov rax,rsp1292 $L$SEH_begin_aesni_cbc_sha256_enc_avx:1293 mov rdi,rcx1294 mov rsi,rdx1295 mov rdx,r81296 mov rcx,r91297 mov r8,QWORD[40+rsp]1298 mov r9,QWORD[48+rsp]1299 1300 1301 1302 $L$avx_shortcut:1303 mov r10,QWORD[56+rsp]1304 mov rax,rsp1305 1306 push rbx1307 1308 push rbp1309 1310 push r121311 1312 push r131313 1314 push r141315 1316 push r151317 1318 sub rsp,2881319 and rsp,-641320 1321 shl rdx,61322 sub rsi,rdi1323 sub r10,rdi1324 add rdx,rdi1325 1326 1327 mov QWORD[((64+8))+rsp],rsi1328 mov QWORD[((64+16))+rsp],rdx1329 1330 mov QWORD[((64+32))+rsp],r81331 mov QWORD[((64+40))+rsp],r91332 mov QWORD[((64+48))+rsp],r101333 mov QWORD[120+rsp],rax1334 1335 movaps XMMWORD[128+rsp],xmm61336 movaps XMMWORD[144+rsp],xmm71337 movaps XMMWORD[160+rsp],xmm81338 movaps XMMWORD[176+rsp],xmm91339 movaps XMMWORD[192+rsp],xmm101340 movaps XMMWORD[208+rsp],xmm111341 movaps XMMWORD[224+rsp],xmm121342 movaps XMMWORD[240+rsp],xmm131343 movaps XMMWORD[256+rsp],xmm141344 movaps XMMWORD[272+rsp],xmm151345 $L$prologue_avx:1346 vzeroall1347 1348 mov r12,rdi1349 lea rdi,[128+rcx]1350 lea r13,[((K256+544))]1351 mov r14d,DWORD[((240-128))+rdi]1352 mov r15,r91353 mov rsi,r101354 vmovdqu xmm8,XMMWORD[r8]1355 sub r14,91356 1357 mov eax,DWORD[r15]1358 mov ebx,DWORD[4+r15]1359 mov ecx,DWORD[8+r15]1360 mov edx,DWORD[12+r15]1361 mov r8d,DWORD[16+r15]1362 mov r9d,DWORD[20+r15]1363 mov r10d,DWORD[24+r15]1364 mov r11d,DWORD[28+r15]1365 1366 vmovdqa xmm14,XMMWORD[r14*8+r13]1367 vmovdqa xmm13,XMMWORD[16+r14*8+r13]1368 vmovdqa xmm12,XMMWORD[32+r14*8+r13]1369 vmovdqu xmm10,XMMWORD[((0-128))+rdi]1370 jmp NEAR $L$loop_avx1371 ALIGN 161372 $L$loop_avx:1373 vmovdqa xmm7,XMMWORD[((K256+512))]1374 vmovdqu xmm0,XMMWORD[r12*1+rsi]1375 vmovdqu xmm1,XMMWORD[16+r12*1+rsi]1376 vmovdqu xmm2,XMMWORD[32+r12*1+rsi]1377 vmovdqu xmm3,XMMWORD[48+r12*1+rsi]1378 vpshufb xmm0,xmm0,xmm71379 lea rbp,[K256]1380 vpshufb xmm1,xmm1,xmm71381 vpshufb xmm2,xmm2,xmm71382 vpaddd xmm4,xmm0,XMMWORD[rbp]1383 vpshufb xmm3,xmm3,xmm71384 vpaddd xmm5,xmm1,XMMWORD[32+rbp]1385 vpaddd xmm6,xmm2,XMMWORD[64+rbp]1386 vpaddd xmm7,xmm3,XMMWORD[96+rbp]1387 vmovdqa XMMWORD[rsp],xmm41388 mov r14d,eax1389 vmovdqa XMMWORD[16+rsp],xmm51390 mov esi,ebx1391 vmovdqa XMMWORD[32+rsp],xmm61392 xor esi,ecx1393 vmovdqa XMMWORD[48+rsp],xmm71394 mov r13d,r8d1395 jmp NEAR $L$avx_00_471396 1397 ALIGN 161398 $L$avx_00_47:1399 sub rbp,-16*2*41400 vmovdqu xmm9,XMMWORD[r12]1401 mov QWORD[((64+0))+rsp],r121402 vpalignr xmm4,xmm1,xmm0,41403 shrd r13d,r13d,141404 mov eax,r14d1405 mov r12d,r9d1406 vpalignr xmm7,xmm3,xmm2,41407 xor r13d,r8d1408 shrd r14d,r14d,91409 xor r12d,r10d1410 vpsrld xmm6,xmm4,71411 shrd r13d,r13d,51412 xor r14d,eax1413 and r12d,r8d1414 vpaddd xmm0,xmm0,xmm71415 vpxor xmm9,xmm9,xmm101416 vmovdqu xmm10,XMMWORD[((16-128))+rdi]1417 xor r13d,r8d1418 add r11d,DWORD[rsp]1419 mov r15d,eax1420 vpsrld xmm7,xmm4,31421 shrd r14d,r14d,111422 xor r12d,r10d1423 xor r15d,ebx1424 vpslld xmm5,xmm4,141425 shrd r13d,r13d,61426 add r11d,r12d1427 and esi,r15d1428 vpxor xmm4,xmm7,xmm61429 xor r14d,eax1430 add r11d,r13d1431 xor esi,ebx1432 vpshufd xmm7,xmm3,2501433 add edx,r11d1434 shrd r14d,r14d,21435 add r11d,esi1436 vpsrld xmm6,xmm6,111437 mov r13d,edx1438 add r14d,r11d1439 shrd r13d,r13d,141440 vpxor xmm4,xmm4,xmm51441 mov r11d,r14d1442 mov r12d,r8d1443 xor r13d,edx1444 vpslld xmm5,xmm5,111445 shrd r14d,r14d,91446 xor r12d,r9d1447 shrd r13d,r13d,51448 vpxor xmm4,xmm4,xmm61449 xor r14d,r11d1450 and r12d,edx1451 vpxor xmm9,xmm9,xmm81452 xor r13d,edx1453 vpsrld xmm6,xmm7,101454 add r10d,DWORD[4+rsp]1455 mov esi,r11d1456 shrd r14d,r14d,111457 vpxor xmm4,xmm4,xmm51458 xor r12d,r9d1459 xor esi,eax1460 shrd r13d,r13d,61461 vpsrlq xmm7,xmm7,171462 add r10d,r12d1463 and r15d,esi1464 xor r14d,r11d1465 vpaddd xmm0,xmm0,xmm41466 add r10d,r13d1467 xor r15d,eax1468 add ecx,r10d1469 vpxor xmm6,xmm6,xmm71470 shrd r14d,r14d,21471 add r10d,r15d1472 mov r13d,ecx1473 vpsrlq xmm7,xmm7,21474 add r14d,r10d1475 shrd r13d,r13d,141476 mov r10d,r14d1477 vpxor xmm6,xmm6,xmm71478 mov r12d,edx1479 xor r13d,ecx1480 shrd r14d,r14d,91481 vpshufd xmm6,xmm6,1321482 xor r12d,r8d1483 shrd r13d,r13d,51484 xor r14d,r10d1485 vpsrldq xmm6,xmm6,81486 and r12d,ecx1487 vaesenc xmm9,xmm9,xmm101488 vmovdqu xmm10,XMMWORD[((32-128))+rdi]1489 xor r13d,ecx1490 add r9d,DWORD[8+rsp]1491 vpaddd xmm0,xmm0,xmm61492 mov r15d,r10d1493 shrd r14d,r14d,111494 xor r12d,r8d1495 vpshufd xmm7,xmm0,801496 xor r15d,r11d1497 shrd r13d,r13d,61498 add r9d,r12d1499 vpsrld xmm6,xmm7,101500 and esi,r15d1501 xor r14d,r10d1502 add r9d,r13d1503 vpsrlq xmm7,xmm7,171504 xor esi,r11d1505 add ebx,r9d1506 shrd r14d,r14d,21507 vpxor xmm6,xmm6,xmm71508 add r9d,esi1509 mov r13d,ebx1510 add r14d,r9d1511 vpsrlq xmm7,xmm7,21512 shrd r13d,r13d,141513 mov r9d,r14d1514 mov r12d,ecx1515 vpxor xmm6,xmm6,xmm71516 xor r13d,ebx1517 shrd r14d,r14d,91518 xor r12d,edx1519 vpshufd xmm6,xmm6,2321520 shrd r13d,r13d,51521 xor r14d,r9d1522 and r12d,ebx1523 vpslldq xmm6,xmm6,81524 vaesenc xmm9,xmm9,xmm101525 vmovdqu xmm10,XMMWORD[((48-128))+rdi]1526 xor r13d,ebx1527 add r8d,DWORD[12+rsp]1528 mov esi,r9d1529 vpaddd xmm0,xmm0,xmm61530 shrd r14d,r14d,111531 xor r12d,edx1532 xor esi,r10d1533 vpaddd xmm6,xmm0,XMMWORD[rbp]1534 shrd r13d,r13d,61535 add r8d,r12d1536 and r15d,esi1537 xor r14d,r9d1538 add r8d,r13d1539 xor r15d,r10d1540 add eax,r8d1541 shrd r14d,r14d,21542 add r8d,r15d1543 mov r13d,eax1544 add r14d,r8d1545 vmovdqa XMMWORD[rsp],xmm61546 vpalignr xmm4,xmm2,xmm1,41547 shrd r13d,r13d,141548 mov r8d,r14d1549 mov r12d,ebx1550 vpalignr xmm7,xmm0,xmm3,41551 xor r13d,eax1552 shrd r14d,r14d,91553 xor r12d,ecx1554 vpsrld xmm6,xmm4,71555 shrd r13d,r13d,51556 xor r14d,r8d1557 and r12d,eax1558 vpaddd xmm1,xmm1,xmm71559 vaesenc xmm9,xmm9,xmm101560 vmovdqu xmm10,XMMWORD[((64-128))+rdi]1561 xor r13d,eax1562 add edx,DWORD[16+rsp]1563 mov r15d,r8d1564 vpsrld xmm7,xmm4,31565 shrd r14d,r14d,111566 xor r12d,ecx1567 xor r15d,r9d1568 vpslld xmm5,xmm4,141569 shrd r13d,r13d,61570 add edx,r12d1571 and esi,r15d1572 vpxor xmm4,xmm7,xmm61573 xor r14d,r8d1574 add edx,r13d1575 xor esi,r9d1576 vpshufd xmm7,xmm0,2501577 add r11d,edx1578 shrd r14d,r14d,21579 add edx,esi1580 vpsrld xmm6,xmm6,111581 mov r13d,r11d1582 add r14d,edx1583 shrd r13d,r13d,141584 vpxor xmm4,xmm4,xmm51585 mov edx,r14d1586 mov r12d,eax1587 xor r13d,r11d1588 vpslld xmm5,xmm5,111589 shrd r14d,r14d,91590 xor r12d,ebx1591 shrd r13d,r13d,51592 vpxor xmm4,xmm4,xmm61593 xor r14d,edx1594 and r12d,r11d1595 vaesenc xmm9,xmm9,xmm101596 vmovdqu xmm10,XMMWORD[((80-128))+rdi]1597 xor r13d,r11d1598 vpsrld xmm6,xmm7,101599 add ecx,DWORD[20+rsp]1600 mov esi,edx1601 shrd r14d,r14d,111602 vpxor xmm4,xmm4,xmm51603 xor r12d,ebx1604 xor esi,r8d1605 shrd r13d,r13d,61606 vpsrlq xmm7,xmm7,171607 add ecx,r12d1608 and r15d,esi1609 xor r14d,edx1610 vpaddd xmm1,xmm1,xmm41611 add ecx,r13d1612 xor r15d,r8d1613 add r10d,ecx1614 vpxor xmm6,xmm6,xmm71615 shrd r14d,r14d,21616 add ecx,r15d1617 mov r13d,r10d1618 vpsrlq xmm7,xmm7,21619 add r14d,ecx1620 shrd r13d,r13d,141621 mov ecx,r14d1622 vpxor xmm6,xmm6,xmm71623 mov r12d,r11d1624 xor r13d,r10d1625 shrd r14d,r14d,91626 vpshufd xmm6,xmm6,1321627 xor r12d,eax1628 shrd r13d,r13d,51629 xor r14d,ecx1630 vpsrldq xmm6,xmm6,81631 and r12d,r10d1632 vaesenc xmm9,xmm9,xmm101633 vmovdqu xmm10,XMMWORD[((96-128))+rdi]1634 xor r13d,r10d1635 add ebx,DWORD[24+rsp]1636 vpaddd xmm1,xmm1,xmm61637 mov r15d,ecx1638 shrd r14d,r14d,111639 xor r12d,eax1640 vpshufd xmm7,xmm1,801641 xor r15d,edx1642 shrd r13d,r13d,61643 add ebx,r12d1644 vpsrld xmm6,xmm7,101645 and esi,r15d1646 xor r14d,ecx1647 add ebx,r13d1648 vpsrlq xmm7,xmm7,171649 xor esi,edx1650 add r9d,ebx1651 shrd r14d,r14d,21652 vpxor xmm6,xmm6,xmm71653 add ebx,esi1654 mov r13d,r9d1655 add r14d,ebx1656 vpsrlq xmm7,xmm7,21657 shrd r13d,r13d,141658 mov ebx,r14d1659 mov r12d,r10d1660 vpxor xmm6,xmm6,xmm71661 xor r13d,r9d1662 shrd r14d,r14d,91663 xor r12d,r11d1664 vpshufd xmm6,xmm6,2321665 shrd r13d,r13d,51666 xor r14d,ebx1667 and r12d,r9d1668 vpslldq xmm6,xmm6,81669 vaesenc xmm9,xmm9,xmm101670 vmovdqu xmm10,XMMWORD[((112-128))+rdi]1671 xor r13d,r9d1672 add eax,DWORD[28+rsp]1673 mov esi,ebx1674 vpaddd xmm1,xmm1,xmm61675 shrd r14d,r14d,111676 xor r12d,r11d1677 xor esi,ecx1678 vpaddd xmm6,xmm1,XMMWORD[32+rbp]1679 shrd r13d,r13d,61680 add eax,r12d1681 and r15d,esi1682 xor r14d,ebx1683 add eax,r13d1684 xor r15d,ecx1685 add r8d,eax1686 shrd r14d,r14d,21687 add eax,r15d1688 mov r13d,r8d1689 add r14d,eax1690 vmovdqa XMMWORD[16+rsp],xmm61691 vpalignr xmm4,xmm3,xmm2,41692 shrd r13d,r13d,141693 mov eax,r14d1694 mov r12d,r9d1695 vpalignr xmm7,xmm1,xmm0,41696 xor r13d,r8d1697 shrd r14d,r14d,91698 xor r12d,r10d1699 vpsrld xmm6,xmm4,71700 shrd r13d,r13d,51701 xor r14d,eax1702 and r12d,r8d1703 vpaddd xmm2,xmm2,xmm71704 vaesenc xmm9,xmm9,xmm101705 vmovdqu xmm10,XMMWORD[((128-128))+rdi]1706 xor r13d,r8d1707 add r11d,DWORD[32+rsp]1708 mov r15d,eax1709 vpsrld xmm7,xmm4,31710 shrd r14d,r14d,111711 xor r12d,r10d1712 xor r15d,ebx1713 vpslld xmm5,xmm4,141714 shrd r13d,r13d,61715 add r11d,r12d1716 and esi,r15d1717 vpxor xmm4,xmm7,xmm61718 xor r14d,eax1719 add r11d,r13d1720 xor esi,ebx1721 vpshufd xmm7,xmm1,2501722 add edx,r11d1723 shrd r14d,r14d,21724 add r11d,esi1725 vpsrld xmm6,xmm6,111726 mov r13d,edx1727 add r14d,r11d1728 shrd r13d,r13d,141729 vpxor xmm4,xmm4,xmm51730 mov r11d,r14d1731 mov r12d,r8d1732 xor r13d,edx1733 vpslld xmm5,xmm5,111734 shrd r14d,r14d,91735 xor r12d,r9d1736 shrd r13d,r13d,51737 vpxor xmm4,xmm4,xmm61738 xor r14d,r11d1739 and r12d,edx1740 vaesenc xmm9,xmm9,xmm101741 vmovdqu xmm10,XMMWORD[((144-128))+rdi]1742 xor r13d,edx1743 vpsrld xmm6,xmm7,101744 add r10d,DWORD[36+rsp]1745 mov esi,r11d1746 shrd r14d,r14d,111747 vpxor xmm4,xmm4,xmm51748 xor r12d,r9d1749 xor esi,eax1750 shrd r13d,r13d,61751 vpsrlq xmm7,xmm7,171752 add r10d,r12d1753 and r15d,esi1754 xor r14d,r11d1755 vpaddd xmm2,xmm2,xmm41756 add r10d,r13d1757 xor r15d,eax1758 add ecx,r10d1759 vpxor xmm6,xmm6,xmm71760 shrd r14d,r14d,21761 add r10d,r15d1762 mov r13d,ecx1763 vpsrlq xmm7,xmm7,21764 add r14d,r10d1765 shrd r13d,r13d,141766 mov r10d,r14d1767 vpxor xmm6,xmm6,xmm71768 mov r12d,edx1769 xor r13d,ecx1770 shrd r14d,r14d,91771 vpshufd xmm6,xmm6,1321772 xor r12d,r8d1773 shrd r13d,r13d,51774 xor r14d,r10d1775 vpsrldq xmm6,xmm6,81776 and r12d,ecx1777 vaesenc xmm9,xmm9,xmm101778 vmovdqu xmm10,XMMWORD[((160-128))+rdi]1779 xor r13d,ecx1780 add r9d,DWORD[40+rsp]1781 vpaddd xmm2,xmm2,xmm61782 mov r15d,r10d1783 shrd r14d,r14d,111784 xor r12d,r8d1785 vpshufd xmm7,xmm2,801786 xor r15d,r11d1787 shrd r13d,r13d,61788 add r9d,r12d1789 vpsrld xmm6,xmm7,101790 and esi,r15d1791 xor r14d,r10d1792 add r9d,r13d1793 vpsrlq xmm7,xmm7,171794 xor esi,r11d1795 add ebx,r9d1796 shrd r14d,r14d,21797 vpxor xmm6,xmm6,xmm71798 add r9d,esi1799 mov r13d,ebx1800 add r14d,r9d1801 vpsrlq xmm7,xmm7,21802 shrd r13d,r13d,141803 mov r9d,r14d1804 mov r12d,ecx1805 vpxor xmm6,xmm6,xmm71806 xor r13d,ebx1807 shrd r14d,r14d,91808 xor r12d,edx1809 vpshufd xmm6,xmm6,2321810 shrd r13d,r13d,51811 xor r14d,r9d1812 and r12d,ebx1813 vpslldq xmm6,xmm6,81814 vaesenclast xmm11,xmm9,xmm101815 vaesenc xmm9,xmm9,xmm101816 vmovdqu xmm10,XMMWORD[((176-128))+rdi]1817 xor r13d,ebx1818 add r8d,DWORD[44+rsp]1819 mov esi,r9d1820 vpaddd xmm2,xmm2,xmm61821 shrd r14d,r14d,111822 xor r12d,edx1823 xor esi,r10d1824 vpaddd xmm6,xmm2,XMMWORD[64+rbp]1825 shrd r13d,r13d,61826 add r8d,r12d1827 and r15d,esi1828 xor r14d,r9d1829 add r8d,r13d1830 xor r15d,r10d1831 add eax,r8d1832 shrd r14d,r14d,21833 add r8d,r15d1834 mov r13d,eax1835 add r14d,r8d1836 vmovdqa XMMWORD[32+rsp],xmm61837 vpalignr xmm4,xmm0,xmm3,41838 shrd r13d,r13d,141839 mov r8d,r14d1840 mov r12d,ebx1841 vpalignr xmm7,xmm2,xmm1,41842 xor r13d,eax1843 shrd r14d,r14d,91844 xor r12d,ecx1845 vpsrld xmm6,xmm4,71846 shrd r13d,r13d,51847 xor r14d,r8d1848 and r12d,eax1849 vpaddd xmm3,xmm3,xmm71850 vpand xmm8,xmm11,xmm121851 vaesenc xmm9,xmm9,xmm101852 vmovdqu xmm10,XMMWORD[((192-128))+rdi]1853 xor r13d,eax1854 add edx,DWORD[48+rsp]1855 mov r15d,r8d1856 vpsrld xmm7,xmm4,31857 shrd r14d,r14d,111858 xor r12d,ecx1859 xor r15d,r9d1860 vpslld xmm5,xmm4,141861 shrd r13d,r13d,61862 add edx,r12d1863 and esi,r15d1864 vpxor xmm4,xmm7,xmm61865 xor r14d,r8d1866 add edx,r13d1867 xor esi,r9d1868 vpshufd xmm7,xmm2,2501869 add r11d,edx1870 shrd r14d,r14d,21871 add edx,esi1872 vpsrld xmm6,xmm6,111873 mov r13d,r11d1874 add r14d,edx1875 shrd r13d,r13d,141876 vpxor xmm4,xmm4,xmm51877 mov edx,r14d1878 mov r12d,eax1879 xor r13d,r11d1880 vpslld xmm5,xmm5,111881 shrd r14d,r14d,91882 xor r12d,ebx1883 shrd r13d,r13d,51884 vpxor xmm4,xmm4,xmm61885 xor r14d,edx1886 and r12d,r11d1887 vaesenclast xmm11,xmm9,xmm101888 vaesenc xmm9,xmm9,xmm101889 vmovdqu xmm10,XMMWORD[((208-128))+rdi]1890 xor r13d,r11d1891 vpsrld xmm6,xmm7,101892 add ecx,DWORD[52+rsp]1893 mov esi,edx1894 shrd r14d,r14d,111895 vpxor xmm4,xmm4,xmm51896 xor r12d,ebx1897 xor esi,r8d1898 shrd r13d,r13d,61899 vpsrlq xmm7,xmm7,171900 add ecx,r12d1901 and r15d,esi1902 xor r14d,edx1903 vpaddd xmm3,xmm3,xmm41904 add ecx,r13d1905 xor r15d,r8d1906 add r10d,ecx1907 vpxor xmm6,xmm6,xmm71908 shrd r14d,r14d,21909 add ecx,r15d1910 mov r13d,r10d1911 vpsrlq xmm7,xmm7,21912 add r14d,ecx1913 shrd r13d,r13d,141914 mov ecx,r14d1915 vpxor xmm6,xmm6,xmm71916 mov r12d,r11d1917 xor r13d,r10d1918 shrd r14d,r14d,91919 vpshufd xmm6,xmm6,1321920 xor r12d,eax1921 shrd r13d,r13d,51922 xor r14d,ecx1923 vpsrldq xmm6,xmm6,81924 and r12d,r10d1925 vpand xmm11,xmm11,xmm131926 vaesenc xmm9,xmm9,xmm101927 vmovdqu xmm10,XMMWORD[((224-128))+rdi]1928 xor r13d,r10d1929 add ebx,DWORD[56+rsp]1930 vpaddd xmm3,xmm3,xmm61931 mov r15d,ecx1932 shrd r14d,r14d,111933 xor r12d,eax1934 vpshufd xmm7,xmm3,801935 xor r15d,edx1936 shrd r13d,r13d,61937 add ebx,r12d1938 vpsrld xmm6,xmm7,101939 and esi,r15d1940 xor r14d,ecx1941 add ebx,r13d1942 vpsrlq xmm7,xmm7,171943 xor esi,edx1944 add r9d,ebx1945 shrd r14d,r14d,21946 vpxor xmm6,xmm6,xmm71947 add ebx,esi1948 mov r13d,r9d1949 add r14d,ebx1950 vpsrlq xmm7,xmm7,21951 shrd r13d,r13d,141952 mov ebx,r14d1953 mov r12d,r10d1954 vpxor xmm6,xmm6,xmm71955 xor r13d,r9d1956 shrd r14d,r14d,91957 xor r12d,r11d1958 vpshufd xmm6,xmm6,2321959 shrd r13d,r13d,51960 xor r14d,ebx1961 and r12d,r9d1962 vpslldq xmm6,xmm6,81963 vpor xmm8,xmm8,xmm111964 vaesenclast xmm11,xmm9,xmm101965 vmovdqu xmm10,XMMWORD[((0-128))+rdi]1966 xor r13d,r9d1967 add eax,DWORD[60+rsp]1968 mov esi,ebx1969 vpaddd xmm3,xmm3,xmm61970 shrd r14d,r14d,111971 xor r12d,r11d1972 xor esi,ecx1973 vpaddd xmm6,xmm3,XMMWORD[96+rbp]1974 shrd r13d,r13d,61975 add eax,r12d1976 and r15d,esi1977 xor r14d,ebx1978 add eax,r13d1979 xor r15d,ecx1980 add r8d,eax1981 shrd r14d,r14d,21982 add eax,r15d1983 mov r13d,r8d1984 add r14d,eax1985 vmovdqa XMMWORD[48+rsp],xmm61986 mov r12,QWORD[((64+0))+rsp]1987 vpand xmm11,xmm11,xmm141988 mov r15,QWORD[((64+8))+rsp]1989 vpor xmm8,xmm8,xmm111990 vmovdqu XMMWORD[r12*1+r15],xmm81991 lea r12,[16+r12]1992 cmp BYTE[131+rbp],01993 jne NEAR $L$avx_00_471994 vmovdqu xmm9,XMMWORD[r12]1995 mov QWORD[((64+0))+rsp],r121996 shrd r13d,r13d,141997 mov eax,r14d1998 mov r12d,r9d1999 xor r13d,r8d2000 shrd r14d,r14d,92001 xor r12d,r10d2002 shrd r13d,r13d,52003 xor r14d,eax2004 and r12d,r8d2005 vpxor xmm9,xmm9,xmm102006 vmovdqu xmm10,XMMWORD[((16-128))+rdi]2007 xor r13d,r8d2008 add r11d,DWORD[rsp]2009 mov r15d,eax2010 shrd r14d,r14d,112011 xor r12d,r10d2012 xor r15d,ebx2013 shrd r13d,r13d,62014 add r11d,r12d2015 and esi,r15d2016 xor r14d,eax2017 add r11d,r13d2018 xor esi,ebx2019 add edx,r11d2020 shrd r14d,r14d,22021 add r11d,esi2022 mov r13d,edx2023 add r14d,r11d2024 shrd r13d,r13d,142025 mov r11d,r14d2026 mov r12d,r8d2027 xor r13d,edx2028 shrd r14d,r14d,92029 xor r12d,r9d2030 shrd r13d,r13d,52031 xor r14d,r11d2032 and r12d,edx2033 vpxor xmm9,xmm9,xmm82034 xor r13d,edx2035 add r10d,DWORD[4+rsp]2036 mov esi,r11d2037 shrd r14d,r14d,112038 xor r12d,r9d2039 xor esi,eax2040 shrd r13d,r13d,62041 add r10d,r12d2042 and r15d,esi2043 xor r14d,r11d2044 add r10d,r13d2045 xor r15d,eax2046 add ecx,r10d2047 shrd r14d,r14d,22048 add r10d,r15d2049 mov r13d,ecx2050 add r14d,r10d2051 shrd r13d,r13d,142052 mov r10d,r14d2053 mov r12d,edx2054 xor r13d,ecx2055 shrd r14d,r14d,92056 xor r12d,r8d2057 shrd r13d,r13d,52058 xor r14d,r10d2059 and r12d,ecx2060 vaesenc xmm9,xmm9,xmm102061 vmovdqu xmm10,XMMWORD[((32-128))+rdi]2062 xor r13d,ecx2063 add r9d,DWORD[8+rsp]2064 mov r15d,r10d2065 shrd r14d,r14d,112066 xor r12d,r8d2067 xor r15d,r11d2068 shrd r13d,r13d,62069 add r9d,r12d2070 and esi,r15d2071 xor r14d,r10d2072 add r9d,r13d2073 xor esi,r11d2074 add ebx,r9d2075 shrd r14d,r14d,22076 add r9d,esi2077 mov r13d,ebx2078 add r14d,r9d2079 shrd r13d,r13d,142080 mov r9d,r14d2081 mov r12d,ecx2082 xor r13d,ebx2083 shrd r14d,r14d,92084 xor r12d,edx2085 shrd r13d,r13d,52086 xor r14d,r9d2087 and r12d,ebx2088 vaesenc xmm9,xmm9,xmm102089 vmovdqu xmm10,XMMWORD[((48-128))+rdi]2090 xor r13d,ebx2091 add r8d,DWORD[12+rsp]2092 mov esi,r9d2093 shrd r14d,r14d,112094 xor r12d,edx2095 xor esi,r10d2096 shrd r13d,r13d,62097 add r8d,r12d2098 and r15d,esi2099 xor r14d,r9d2100 add r8d,r13d2101 xor r15d,r10d2102 add eax,r8d2103 shrd r14d,r14d,22104 add r8d,r15d2105 mov r13d,eax2106 add r14d,r8d2107 shrd r13d,r13d,142108 mov r8d,r14d2109 mov r12d,ebx2110 xor r13d,eax2111 shrd r14d,r14d,92112 xor r12d,ecx2113 shrd r13d,r13d,52114 xor r14d,r8d2115 and r12d,eax2116 vaesenc xmm9,xmm9,xmm102117 vmovdqu xmm10,XMMWORD[((64-128))+rdi]2118 xor r13d,eax2119 add edx,DWORD[16+rsp]2120 mov r15d,r8d2121 shrd r14d,r14d,112122 xor r12d,ecx2123 xor r15d,r9d2124 shrd r13d,r13d,62125 add edx,r12d2126 and esi,r15d2127 xor r14d,r8d2128 add edx,r13d2129 xor esi,r9d2130 add r11d,edx2131 shrd r14d,r14d,22132 add edx,esi2133 mov r13d,r11d2134 add r14d,edx2135 shrd r13d,r13d,142136 mov edx,r14d2137 mov r12d,eax2138 xor r13d,r11d2139 shrd r14d,r14d,92140 xor r12d,ebx2141 shrd r13d,r13d,52142 xor r14d,edx2143 and r12d,r11d2144 vaesenc xmm9,xmm9,xmm102145 vmovdqu xmm10,XMMWORD[((80-128))+rdi]2146 xor r13d,r11d2147 add ecx,DWORD[20+rsp]2148 mov esi,edx2149 shrd r14d,r14d,112150 xor r12d,ebx2151 xor esi,r8d2152 shrd r13d,r13d,62153 add ecx,r12d2154 and r15d,esi2155 xor r14d,edx2156 add ecx,r13d2157 xor r15d,r8d2158 add r10d,ecx2159 shrd r14d,r14d,22160 add ecx,r15d2161 mov r13d,r10d2162 add r14d,ecx2163 shrd r13d,r13d,142164 mov ecx,r14d2165 mov r12d,r11d2166 xor r13d,r10d2167 shrd r14d,r14d,92168 xor r12d,eax2169 shrd r13d,r13d,52170 xor r14d,ecx2171 and r12d,r10d2172 vaesenc xmm9,xmm9,xmm102173 vmovdqu xmm10,XMMWORD[((96-128))+rdi]2174 xor r13d,r10d2175 add ebx,DWORD[24+rsp]2176 mov r15d,ecx2177 shrd r14d,r14d,112178 xor r12d,eax2179 xor r15d,edx2180 shrd r13d,r13d,62181 add ebx,r12d2182 and esi,r15d2183 xor r14d,ecx2184 add ebx,r13d2185 xor esi,edx2186 add r9d,ebx2187 shrd r14d,r14d,22188 add ebx,esi2189 mov r13d,r9d2190 add r14d,ebx2191 shrd r13d,r13d,142192 mov ebx,r14d2193 mov r12d,r10d2194 xor r13d,r9d2195 shrd r14d,r14d,92196 xor r12d,r11d2197 shrd r13d,r13d,52198 xor r14d,ebx2199 and r12d,r9d2200 vaesenc xmm9,xmm9,xmm102201 vmovdqu xmm10,XMMWORD[((112-128))+rdi]2202 xor r13d,r9d2203 add eax,DWORD[28+rsp]2204 mov esi,ebx2205 shrd r14d,r14d,112206 xor r12d,r11d2207 xor esi,ecx2208 shrd r13d,r13d,62209 add eax,r12d2210 and r15d,esi2211 xor r14d,ebx2212 add eax,r13d2213 xor r15d,ecx2214 add r8d,eax2215 shrd r14d,r14d,22216 add eax,r15d2217 mov r13d,r8d2218 add r14d,eax2219 shrd r13d,r13d,142220 mov eax,r14d2221 mov r12d,r9d2222 xor r13d,r8d2223 shrd r14d,r14d,92224 xor r12d,r10d2225 shrd r13d,r13d,52226 xor r14d,eax2227 and r12d,r8d2228 vaesenc xmm9,xmm9,xmm102229 vmovdqu xmm10,XMMWORD[((128-128))+rdi]2230 xor r13d,r8d2231 add r11d,DWORD[32+rsp]2232 mov r15d,eax2233 shrd r14d,r14d,112234 xor r12d,r10d2235 xor r15d,ebx2236 shrd r13d,r13d,62237 add r11d,r12d2238 and esi,r15d2239 xor r14d,eax2240 add r11d,r13d2241 xor esi,ebx2242 add edx,r11d2243 shrd r14d,r14d,22244 add r11d,esi2245 mov r13d,edx2246 add r14d,r11d2247 shrd r13d,r13d,142248 mov r11d,r14d2249 mov r12d,r8d2250 xor r13d,edx2251 shrd r14d,r14d,92252 xor r12d,r9d2253 shrd r13d,r13d,52254 xor r14d,r11d2255 and r12d,edx2256 vaesenc xmm9,xmm9,xmm102257 vmovdqu xmm10,XMMWORD[((144-128))+rdi]2258 xor r13d,edx2259 add r10d,DWORD[36+rsp]2260 mov esi,r11d2261 shrd r14d,r14d,112262 xor r12d,r9d2263 xor esi,eax2264 shrd r13d,r13d,62265 add r10d,r12d2266 and r15d,esi2267 xor r14d,r11d2268 add r10d,r13d2269 xor r15d,eax2270 add ecx,r10d2271 shrd r14d,r14d,22272 add r10d,r15d2273 mov r13d,ecx2274 add r14d,r10d2275 shrd r13d,r13d,142276 mov r10d,r14d2277 mov r12d,edx2278 xor r13d,ecx2279 shrd r14d,r14d,92280 xor r12d,r8d2281 shrd r13d,r13d,52282 xor r14d,r10d2283 and r12d,ecx2284 vaesenc xmm9,xmm9,xmm102285 vmovdqu xmm10,XMMWORD[((160-128))+rdi]2286 xor r13d,ecx2287 add r9d,DWORD[40+rsp]2288 mov r15d,r10d2289 shrd r14d,r14d,112290 xor r12d,r8d2291 xor r15d,r11d2292 shrd r13d,r13d,62293 add r9d,r12d2294 and esi,r15d2295 xor r14d,r10d2296 add r9d,r13d2297 xor esi,r11d2298 add ebx,r9d2299 shrd r14d,r14d,22300 add r9d,esi2301 mov r13d,ebx2302 add r14d,r9d2303 shrd r13d,r13d,142304 mov r9d,r14d2305 mov r12d,ecx2306 xor r13d,ebx2307 shrd r14d,r14d,92308 xor r12d,edx2309 shrd r13d,r13d,52310 xor r14d,r9d2311 and r12d,ebx2312 vaesenclast xmm11,xmm9,xmm102313 vaesenc xmm9,xmm9,xmm102314 vmovdqu xmm10,XMMWORD[((176-128))+rdi]2315 xor r13d,ebx2316 add r8d,DWORD[44+rsp]2317 mov esi,r9d2318 shrd r14d,r14d,112319 xor r12d,edx2320 xor esi,r10d2321 shrd r13d,r13d,62322 add r8d,r12d2323 and r15d,esi2324 xor r14d,r9d2325 add r8d,r13d2326 xor r15d,r10d2327 add eax,r8d2328 shrd r14d,r14d,22329 add r8d,r15d2330 mov r13d,eax2331 add r14d,r8d2332 shrd r13d,r13d,142333 mov r8d,r14d2334 mov r12d,ebx2335 xor r13d,eax2336 shrd r14d,r14d,92337 xor r12d,ecx2338 shrd r13d,r13d,52339 xor r14d,r8d2340 and r12d,eax2341 vpand xmm8,xmm11,xmm122342 vaesenc xmm9,xmm9,xmm102343 vmovdqu xmm10,XMMWORD[((192-128))+rdi]2344 xor r13d,eax2345 add edx,DWORD[48+rsp]2346 mov r15d,r8d2347 shrd r14d,r14d,112348 xor r12d,ecx2349 xor r15d,r9d2350 shrd r13d,r13d,62351 add edx,r12d2352 and esi,r15d2353 xor r14d,r8d2354 add edx,r13d2355 xor esi,r9d2356 add r11d,edx2357 shrd r14d,r14d,22358 add edx,esi2359 mov r13d,r11d2360 add r14d,edx2361 shrd r13d,r13d,142362 mov edx,r14d2363 mov r12d,eax2364 xor r13d,r11d2365 shrd r14d,r14d,92366 xor r12d,ebx2367 shrd r13d,r13d,52368 xor r14d,edx2369 and r12d,r11d2370 vaesenclast xmm11,xmm9,xmm102371 vaesenc xmm9,xmm9,xmm102372 vmovdqu xmm10,XMMWORD[((208-128))+rdi]2373 xor r13d,r11d2374 add ecx,DWORD[52+rsp]2375 mov esi,edx2376 shrd r14d,r14d,112377 xor r12d,ebx2378 xor esi,r8d2379 shrd r13d,r13d,62380 add ecx,r12d2381 and r15d,esi2382 xor r14d,edx2383 add ecx,r13d2384 xor r15d,r8d2385 add r10d,ecx2386 shrd r14d,r14d,22387 add ecx,r15d2388 mov r13d,r10d2389 add r14d,ecx2390 shrd r13d,r13d,142391 mov ecx,r14d2392 mov r12d,r11d2393 xor r13d,r10d2394 shrd r14d,r14d,92395 xor r12d,eax2396 shrd r13d,r13d,52397 xor r14d,ecx2398 and r12d,r10d2399 vpand xmm11,xmm11,xmm132400 vaesenc xmm9,xmm9,xmm102401 vmovdqu xmm10,XMMWORD[((224-128))+rdi]2402 xor r13d,r10d2403 add ebx,DWORD[56+rsp]2404 mov r15d,ecx2405 shrd r14d,r14d,112406 xor r12d,eax2407 xor r15d,edx2408 shrd r13d,r13d,62409 add ebx,r12d2410 and esi,r15d2411 xor r14d,ecx2412 add ebx,r13d2413 xor esi,edx2414 add r9d,ebx2415 shrd r14d,r14d,22416 add ebx,esi2417 mov r13d,r9d2418 add r14d,ebx2419 shrd r13d,r13d,142420 mov ebx,r14d2421 mov r12d,r10d2422 xor r13d,r9d2423 shrd r14d,r14d,92424 xor r12d,r11d2425 shrd r13d,r13d,52426 xor r14d,ebx2427 and r12d,r9d2428 vpor xmm8,xmm8,xmm112429 vaesenclast xmm11,xmm9,xmm102430 vmovdqu xmm10,XMMWORD[((0-128))+rdi]2431 xor r13d,r9d2432 add eax,DWORD[60+rsp]2433 mov esi,ebx2434 shrd r14d,r14d,112435 xor r12d,r11d2436 xor esi,ecx2437 shrd r13d,r13d,62438 add eax,r12d2439 and r15d,esi2440 xor r14d,ebx2441 add eax,r13d2442 xor r15d,ecx2443 add r8d,eax2444 shrd r14d,r14d,22445 add eax,r15d2446 mov r13d,r8d2447 add r14d,eax2448 mov r12,QWORD[((64+0))+rsp]2449 mov r13,QWORD[((64+8))+rsp]2450 mov r15,QWORD[((64+40))+rsp]2451 mov rsi,QWORD[((64+48))+rsp]2452 2453 vpand xmm11,xmm11,xmm142454 mov eax,r14d2455 vpor xmm8,xmm8,xmm112456 vmovdqu XMMWORD[r13*1+r12],xmm82457 lea r12,[16+r12]2458 2459 add eax,DWORD[r15]2460 add ebx,DWORD[4+r15]2461 add ecx,DWORD[8+r15]2462 add edx,DWORD[12+r15]2463 add r8d,DWORD[16+r15]2464 add r9d,DWORD[20+r15]2465 add r10d,DWORD[24+r15]2466 add r11d,DWORD[28+r15]2467 2468 cmp r12,QWORD[((64+16))+rsp]2469 2470 mov DWORD[r15],eax2471 mov DWORD[4+r15],ebx2472 mov DWORD[8+r15],ecx2473 mov DWORD[12+r15],edx2474 mov DWORD[16+r15],r8d2475 mov DWORD[20+r15],r9d2476 mov DWORD[24+r15],r10d2477 mov DWORD[28+r15],r11d2478 jb NEAR $L$loop_avx2479 2480 mov r8,QWORD[((64+32))+rsp]2481 mov rsi,QWORD[120+rsp]2482 2483 vmovdqu XMMWORD[r8],xmm82484 vzeroall2485 movaps xmm6,XMMWORD[128+rsp]2486 movaps xmm7,XMMWORD[144+rsp]2487 movaps xmm8,XMMWORD[160+rsp]2488 movaps xmm9,XMMWORD[176+rsp]2489 movaps xmm10,XMMWORD[192+rsp]2490 movaps xmm11,XMMWORD[208+rsp]2491 movaps xmm12,XMMWORD[224+rsp]2492 movaps xmm13,XMMWORD[240+rsp]2493 movaps xmm14,XMMWORD[256+rsp]2494 movaps xmm15,XMMWORD[272+rsp]2495 mov r15,QWORD[((-48))+rsi]2496 2497 mov r14,QWORD[((-40))+rsi]2498 2499 mov r13,QWORD[((-32))+rsi]2500 2501 mov r12,QWORD[((-24))+rsi]2502 2503 mov rbp,QWORD[((-16))+rsi]2504 2505 mov rbx,QWORD[((-8))+rsi]2506 2507 lea rsp,[rsi]2508 2509 $L$epilogue_avx:2510 mov rdi,QWORD[8+rsp] ;WIN64 epilogue2511 mov rsi,QWORD[16+rsp]2512 DB 0F3h,0C3h ;repret2513 2514 $L$SEH_end_aesni_cbc_sha256_enc_avx:2515 2516 ALIGN 642517 aesni_cbc_sha256_enc_avx2:2518 mov QWORD[8+rsp],rdi ;WIN64 prologue2519 mov QWORD[16+rsp],rsi2520 mov rax,rsp2521 $L$SEH_begin_aesni_cbc_sha256_enc_avx2:2522 mov rdi,rcx2523 mov rsi,rdx2524 mov rdx,r82525 mov rcx,r92526 mov r8,QWORD[40+rsp]2527 mov r9,QWORD[48+rsp]2528 2529 2530 2531 $L$avx2_shortcut:2532 mov r10,QWORD[56+rsp]2533 mov rax,rsp2534 2535 push rbx2536 2537 push rbp2538 2539 push r122540 2541 push r132542 2543 push r142544 2545 push r152546 2547 sub rsp,7362548 and rsp,-256*42549 add rsp,4482550 2551 shl rdx,62552 sub rsi,rdi2553 sub r10,rdi2554 add rdx,rdi2555 2556 2557 2558 mov QWORD[((64+16))+rsp],rdx2559 2560 mov QWORD[((64+32))+rsp],r82561 mov QWORD[((64+40))+rsp],r92562 mov QWORD[((64+48))+rsp],r102563 mov QWORD[120+rsp],rax2564 2565 movaps XMMWORD[128+rsp],xmm62566 movaps XMMWORD[144+rsp],xmm72567 movaps XMMWORD[160+rsp],xmm82568 movaps XMMWORD[176+rsp],xmm92569 movaps XMMWORD[192+rsp],xmm102570 movaps XMMWORD[208+rsp],xmm112571 movaps XMMWORD[224+rsp],xmm122572 movaps XMMWORD[240+rsp],xmm132573 movaps XMMWORD[256+rsp],xmm142574 movaps XMMWORD[272+rsp],xmm152575 $L$prologue_avx2:2576 vzeroall2577 2578 mov r13,rdi2579 vpinsrq xmm15,xmm15,rsi,12580 lea rdi,[128+rcx]2581 lea r12,[((K256+544))]2582 mov r14d,DWORD[((240-128))+rdi]2583 mov r15,r92584 mov rsi,r102585 vmovdqu xmm8,XMMWORD[r8]2586 lea r14,[((-9))+r14]2587 2588 vmovdqa xmm14,XMMWORD[r14*8+r12]2589 vmovdqa xmm13,XMMWORD[16+r14*8+r12]2590 vmovdqa xmm12,XMMWORD[32+r14*8+r12]2591 2592 sub r13,-16*42593 mov eax,DWORD[r15]2594 lea r12,[r13*1+rsi]2595 mov ebx,DWORD[4+r15]2596 cmp r13,rdx2597 mov ecx,DWORD[8+r15]2598 cmove r12,rsp2599 mov edx,DWORD[12+r15]2600 mov r8d,DWORD[16+r15]2601 mov r9d,DWORD[20+r15]2602 mov r10d,DWORD[24+r15]2603 mov r11d,DWORD[28+r15]2604 vmovdqu xmm10,XMMWORD[((0-128))+rdi]2605 jmp NEAR $L$oop_avx22606 ALIGN 162607 $L$oop_avx2:2608 vmovdqa ymm7,YMMWORD[((K256+512))]2609 vmovdqu xmm0,XMMWORD[((-64+0))+r13*1+rsi]2610 vmovdqu xmm1,XMMWORD[((-64+16))+r13*1+rsi]2611 vmovdqu xmm2,XMMWORD[((-64+32))+r13*1+rsi]2612 vmovdqu xmm3,XMMWORD[((-64+48))+r13*1+rsi]2613 2614 vinserti128 ymm0,ymm0,XMMWORD[r12],12615 vinserti128 ymm1,ymm1,XMMWORD[16+r12],12616 vpshufb ymm0,ymm0,ymm72617 vinserti128 ymm2,ymm2,XMMWORD[32+r12],12618 vpshufb ymm1,ymm1,ymm72619 vinserti128 ymm3,ymm3,XMMWORD[48+r12],12620 2621 lea rbp,[K256]2622 vpshufb ymm2,ymm2,ymm72623 lea r13,[((-64))+r13]2624 vpaddd ymm4,ymm0,YMMWORD[rbp]2625 vpshufb ymm3,ymm3,ymm72626 vpaddd ymm5,ymm1,YMMWORD[32+rbp]2627 vpaddd ymm6,ymm2,YMMWORD[64+rbp]2628 vpaddd ymm7,ymm3,YMMWORD[96+rbp]2629 vmovdqa YMMWORD[rsp],ymm42630 xor r14d,r14d2631 vmovdqa YMMWORD[32+rsp],ymm52632 lea rsp,[((-64))+rsp]2633 mov esi,ebx2634 vmovdqa YMMWORD[rsp],ymm62635 xor esi,ecx2636 vmovdqa YMMWORD[32+rsp],ymm72637 mov r12d,r9d2638 sub rbp,-16*2*42639 jmp NEAR $L$avx2_00_472640 2641 ALIGN 162642 $L$avx2_00_47:2643 vmovdqu xmm9,XMMWORD[r13]2644 vpinsrq xmm15,xmm15,r13,02645 lea rsp,[((-64))+rsp]2646 vpalignr ymm4,ymm1,ymm0,42647 add r11d,DWORD[((0+128))+rsp]2648 and r12d,r8d2649 rorx r13d,r8d,252650 vpalignr ymm7,ymm3,ymm2,42651 rorx r15d,r8d,112652 lea eax,[r14*1+rax]2653 lea r11d,[r12*1+r11]2654 vpsrld ymm6,ymm4,72655 andn r12d,r8d,r10d2656 xor r13d,r15d2657 rorx r14d,r8d,62658 vpaddd ymm0,ymm0,ymm72659 lea r11d,[r12*1+r11]2660 xor r13d,r14d2661 mov r15d,eax2662 vpsrld ymm7,ymm4,32663 rorx r12d,eax,222664 lea r11d,[r13*1+r11]2665 xor r15d,ebx2666 vpslld ymm5,ymm4,142667 rorx r14d,eax,132668 rorx r13d,eax,22669 lea edx,[r11*1+rdx]2670 vpxor ymm4,ymm7,ymm62671 and esi,r15d2672 vpxor xmm9,xmm9,xmm102673 vmovdqu xmm10,XMMWORD[((16-128))+rdi]2674 xor r14d,r12d2675 xor esi,ebx2676 vpshufd ymm7,ymm3,2502677 xor r14d,r13d2678 lea r11d,[rsi*1+r11]2679 mov r12d,r8d2680 vpsrld ymm6,ymm6,112681 add r10d,DWORD[((4+128))+rsp]2682 and r12d,edx2683 rorx r13d,edx,252684 vpxor ymm4,ymm4,ymm52685 rorx esi,edx,112686 lea r11d,[r14*1+r11]2687 lea r10d,[r12*1+r10]2688 vpslld ymm5,ymm5,112689 andn r12d,edx,r9d2690 xor r13d,esi2691 rorx r14d,edx,62692 vpxor ymm4,ymm4,ymm62693 lea r10d,[r12*1+r10]2694 xor r13d,r14d2695 mov esi,r11d2696 vpsrld ymm6,ymm7,102697 rorx r12d,r11d,222698 lea r10d,[r13*1+r10]2699 xor esi,eax2700 vpxor ymm4,ymm4,ymm52701 rorx r14d,r11d,132702 rorx r13d,r11d,22703 lea ecx,[r10*1+rcx]2704 vpsrlq ymm7,ymm7,172705 and r15d,esi2706 vpxor xmm9,xmm9,xmm82707 xor r14d,r12d2708 xor r15d,eax2709 vpaddd ymm0,ymm0,ymm42710 xor r14d,r13d2711 lea r10d,[r15*1+r10]2712 mov r12d,edx2713 vpxor ymm6,ymm6,ymm72714 add r9d,DWORD[((8+128))+rsp]2715 and r12d,ecx2716 rorx r13d,ecx,252717 vpsrlq ymm7,ymm7,22718 rorx r15d,ecx,112719 lea r10d,[r14*1+r10]2720 lea r9d,[r12*1+r9]2721 vpxor ymm6,ymm6,ymm72722 andn r12d,ecx,r8d2723 xor r13d,r15d2724 rorx r14d,ecx,62725 vpshufd ymm6,ymm6,1322726 lea r9d,[r12*1+r9]2727 xor r13d,r14d2728 mov r15d,r10d2729 vpsrldq ymm6,ymm6,82730 rorx r12d,r10d,222731 lea r9d,[r13*1+r9]2732 xor r15d,r11d2733 vpaddd ymm0,ymm0,ymm62734 rorx r14d,r10d,132735 rorx r13d,r10d,22736 lea ebx,[r9*1+rbx]2737 vpshufd ymm7,ymm0,802738 and esi,r15d2739 vaesenc xmm9,xmm9,xmm102740 vmovdqu xmm10,XMMWORD[((32-128))+rdi]2741 xor r14d,r12d2742 xor esi,r11d2743 vpsrld ymm6,ymm7,102744 xor r14d,r13d2745 lea r9d,[rsi*1+r9]2746 mov r12d,ecx2747 vpsrlq ymm7,ymm7,172748 add r8d,DWORD[((12+128))+rsp]2749 and r12d,ebx2750 rorx r13d,ebx,252751 vpxor ymm6,ymm6,ymm72752 rorx esi,ebx,112753 lea r9d,[r14*1+r9]2754 lea r8d,[r12*1+r8]2755 vpsrlq ymm7,ymm7,22756 andn r12d,ebx,edx2757 xor r13d,esi2758 rorx r14d,ebx,62759 vpxor ymm6,ymm6,ymm72760 lea r8d,[r12*1+r8]2761 xor r13d,r14d2762 mov esi,r9d2763 vpshufd ymm6,ymm6,2322764 rorx r12d,r9d,222765 lea r8d,[r13*1+r8]2766 xor esi,r10d2767 vpslldq ymm6,ymm6,82768 rorx r14d,r9d,132769 rorx r13d,r9d,22770 lea eax,[r8*1+rax]2771 vpaddd ymm0,ymm0,ymm62772 and r15d,esi2773 vaesenc xmm9,xmm9,xmm102774 vmovdqu xmm10,XMMWORD[((48-128))+rdi]2775 xor r14d,r12d2776 xor r15d,r10d2777 vpaddd ymm6,ymm0,YMMWORD[rbp]2778 xor r14d,r13d2779 lea r8d,[r15*1+r8]2780 mov r12d,ebx2781 vmovdqa YMMWORD[rsp],ymm62782 vpalignr ymm4,ymm2,ymm1,42783 add edx,DWORD[((32+128))+rsp]2784 and r12d,eax2785 rorx r13d,eax,252786 vpalignr ymm7,ymm0,ymm3,42787 rorx r15d,eax,112788 lea r8d,[r14*1+r8]2789 lea edx,[r12*1+rdx]2790 vpsrld ymm6,ymm4,72791 andn r12d,eax,ecx2792 xor r13d,r15d2793 rorx r14d,eax,62794 vpaddd ymm1,ymm1,ymm72795 lea edx,[r12*1+rdx]2796 xor r13d,r14d2797 mov r15d,r8d2798 vpsrld ymm7,ymm4,32799 rorx r12d,r8d,222800 lea edx,[r13*1+rdx]2801 xor r15d,r9d2802 vpslld ymm5,ymm4,142803 rorx r14d,r8d,132804 rorx r13d,r8d,22805 lea r11d,[rdx*1+r11]2806 vpxor ymm4,ymm7,ymm62807 and esi,r15d2808 vaesenc xmm9,xmm9,xmm102809 vmovdqu xmm10,XMMWORD[((64-128))+rdi]2810 xor r14d,r12d2811 xor esi,r9d2812 vpshufd ymm7,ymm0,2502813 xor r14d,r13d2814 lea edx,[rsi*1+rdx]2815 mov r12d,eax2816 vpsrld ymm6,ymm6,112817 add ecx,DWORD[((36+128))+rsp]2818 and r12d,r11d2819 rorx r13d,r11d,252820 vpxor ymm4,ymm4,ymm52821 rorx esi,r11d,112822 lea edx,[r14*1+rdx]2823 lea ecx,[r12*1+rcx]2824 vpslld ymm5,ymm5,112825 andn r12d,r11d,ebx2826 xor r13d,esi2827 rorx r14d,r11d,62828 vpxor ymm4,ymm4,ymm62829 lea ecx,[r12*1+rcx]2830 xor r13d,r14d2831 mov esi,edx2832 vpsrld ymm6,ymm7,102833 rorx r12d,edx,222834 lea ecx,[r13*1+rcx]2835 xor esi,r8d2836 vpxor ymm4,ymm4,ymm52837 rorx r14d,edx,132838 rorx r13d,edx,22839 lea r10d,[rcx*1+r10]2840 vpsrlq ymm7,ymm7,172841 and r15d,esi2842 vaesenc xmm9,xmm9,xmm102843 vmovdqu xmm10,XMMWORD[((80-128))+rdi]2844 xor r14d,r12d2845 xor r15d,r8d2846 vpaddd ymm1,ymm1,ymm42847 xor r14d,r13d2848 lea ecx,[r15*1+rcx]2849 mov r12d,r11d2850 vpxor ymm6,ymm6,ymm72851 add ebx,DWORD[((40+128))+rsp]2852 and r12d,r10d2853 rorx r13d,r10d,252854 vpsrlq ymm7,ymm7,22855 rorx r15d,r10d,112856 lea ecx,[r14*1+rcx]2857 lea ebx,[r12*1+rbx]2858 vpxor ymm6,ymm6,ymm72859 andn r12d,r10d,eax2860 xor r13d,r15d2861 rorx r14d,r10d,62862 vpshufd ymm6,ymm6,1322863 lea ebx,[r12*1+rbx]2864 xor r13d,r14d2865 mov r15d,ecx2866 vpsrldq ymm6,ymm6,82867 rorx r12d,ecx,222868 lea ebx,[r13*1+rbx]2869 xor r15d,edx2870 vpaddd ymm1,ymm1,ymm62871 rorx r14d,ecx,132872 rorx r13d,ecx,22873 lea r9d,[rbx*1+r9]2874 vpshufd ymm7,ymm1,802875 and esi,r15d2876 vaesenc xmm9,xmm9,xmm102877 vmovdqu xmm10,XMMWORD[((96-128))+rdi]2878 xor r14d,r12d2879 xor esi,edx2880 vpsrld ymm6,ymm7,102881 xor r14d,r13d2882 lea ebx,[rsi*1+rbx]2883 mov r12d,r10d2884 vpsrlq ymm7,ymm7,172885 add eax,DWORD[((44+128))+rsp]2886 and r12d,r9d2887 rorx r13d,r9d,252888 vpxor ymm6,ymm6,ymm72889 rorx esi,r9d,112890 lea ebx,[r14*1+rbx]2891 lea eax,[r12*1+rax]2892 vpsrlq ymm7,ymm7,22893 andn r12d,r9d,r11d2894 xor r13d,esi2895 rorx r14d,r9d,62896 vpxor ymm6,ymm6,ymm72897 lea eax,[r12*1+rax]2898 xor r13d,r14d2899 mov esi,ebx2900 vpshufd ymm6,ymm6,2322901 rorx r12d,ebx,222902 lea eax,[r13*1+rax]2903 xor esi,ecx2904 vpslldq ymm6,ymm6,82905 rorx r14d,ebx,132906 rorx r13d,ebx,22907 lea r8d,[rax*1+r8]2908 vpaddd ymm1,ymm1,ymm62909 and r15d,esi2910 vaesenc xmm9,xmm9,xmm102911 vmovdqu xmm10,XMMWORD[((112-128))+rdi]2912 xor r14d,r12d2913 xor r15d,ecx2914 vpaddd ymm6,ymm1,YMMWORD[32+rbp]2915 xor r14d,r13d2916 lea eax,[r15*1+rax]2917 mov r12d,r9d2918 vmovdqa YMMWORD[32+rsp],ymm62919 lea rsp,[((-64))+rsp]2920 vpalignr ymm4,ymm3,ymm2,42921 add r11d,DWORD[((0+128))+rsp]2922 and r12d,r8d2923 rorx r13d,r8d,252924 vpalignr ymm7,ymm1,ymm0,42925 rorx r15d,r8d,112926 lea eax,[r14*1+rax]2927 lea r11d,[r12*1+r11]2928 vpsrld ymm6,ymm4,72929 andn r12d,r8d,r10d2930 xor r13d,r15d2931 rorx r14d,r8d,62932 vpaddd ymm2,ymm2,ymm72933 lea r11d,[r12*1+r11]2934 xor r13d,r14d2935 mov r15d,eax2936 vpsrld ymm7,ymm4,32937 rorx r12d,eax,222938 lea r11d,[r13*1+r11]2939 xor r15d,ebx2940 vpslld ymm5,ymm4,142941 rorx r14d,eax,132942 rorx r13d,eax,22943 lea edx,[r11*1+rdx]2944 vpxor ymm4,ymm7,ymm62945 and esi,r15d2946 vaesenc xmm9,xmm9,xmm102947 vmovdqu xmm10,XMMWORD[((128-128))+rdi]2948 xor r14d,r12d2949 xor esi,ebx2950 vpshufd ymm7,ymm1,2502951 xor r14d,r13d2952 lea r11d,[rsi*1+r11]2953 mov r12d,r8d2954 vpsrld ymm6,ymm6,112955 add r10d,DWORD[((4+128))+rsp]2956 and r12d,edx2957 rorx r13d,edx,252958 vpxor ymm4,ymm4,ymm52959 rorx esi,edx,112960 lea r11d,[r14*1+r11]2961 lea r10d,[r12*1+r10]2962 vpslld ymm5,ymm5,112963 andn r12d,edx,r9d2964 xor r13d,esi2965 rorx r14d,edx,62966 vpxor ymm4,ymm4,ymm62967 lea r10d,[r12*1+r10]2968 xor r13d,r14d2969 mov esi,r11d2970 vpsrld ymm6,ymm7,102971 rorx r12d,r11d,222972 lea r10d,[r13*1+r10]2973 xor esi,eax2974 vpxor ymm4,ymm4,ymm52975 rorx r14d,r11d,132976 rorx r13d,r11d,22977 lea ecx,[r10*1+rcx]2978 vpsrlq ymm7,ymm7,172979 and r15d,esi2980 vaesenc xmm9,xmm9,xmm102981 vmovdqu xmm10,XMMWORD[((144-128))+rdi]2982 xor r14d,r12d2983 xor r15d,eax2984 vpaddd ymm2,ymm2,ymm42985 xor r14d,r13d2986 lea r10d,[r15*1+r10]2987 mov r12d,edx2988 vpxor ymm6,ymm6,ymm72989 add r9d,DWORD[((8+128))+rsp]2990 and r12d,ecx2991 rorx r13d,ecx,252992 vpsrlq ymm7,ymm7,22993 rorx r15d,ecx,112994 lea r10d,[r14*1+r10]2995 lea r9d,[r12*1+r9]2996 vpxor ymm6,ymm6,ymm72997 andn r12d,ecx,r8d2998 xor r13d,r15d2999 rorx r14d,ecx,63000 vpshufd ymm6,ymm6,1323001 lea r9d,[r12*1+r9]3002 xor r13d,r14d3003 mov r15d,r10d3004 vpsrldq ymm6,ymm6,83005 rorx r12d,r10d,223006 lea r9d,[r13*1+r9]3007 xor r15d,r11d3008 vpaddd ymm2,ymm2,ymm63009 rorx r14d,r10d,133010 rorx r13d,r10d,23011 lea ebx,[r9*1+rbx]3012 vpshufd ymm7,ymm2,803013 and esi,r15d3014 vaesenc xmm9,xmm9,xmm103015 vmovdqu xmm10,XMMWORD[((160-128))+rdi]3016 xor r14d,r12d3017 xor esi,r11d3018 vpsrld ymm6,ymm7,103019 xor r14d,r13d3020 lea r9d,[rsi*1+r9]3021 mov r12d,ecx3022 vpsrlq ymm7,ymm7,173023 add r8d,DWORD[((12+128))+rsp]3024 and r12d,ebx3025 rorx r13d,ebx,253026 vpxor ymm6,ymm6,ymm73027 rorx esi,ebx,113028 lea r9d,[r14*1+r9]3029 lea r8d,[r12*1+r8]3030 vpsrlq ymm7,ymm7,23031 andn r12d,ebx,edx3032 xor r13d,esi3033 rorx r14d,ebx,63034 vpxor ymm6,ymm6,ymm73035 lea r8d,[r12*1+r8]3036 xor r13d,r14d3037 mov esi,r9d3038 vpshufd ymm6,ymm6,2323039 rorx r12d,r9d,223040 lea r8d,[r13*1+r8]3041 xor esi,r10d3042 vpslldq ymm6,ymm6,83043 rorx r14d,r9d,133044 rorx r13d,r9d,23045 lea eax,[r8*1+rax]3046 vpaddd ymm2,ymm2,ymm63047 and r15d,esi3048 vaesenclast xmm11,xmm9,xmm103049 vaesenc xmm9,xmm9,xmm103050 vmovdqu xmm10,XMMWORD[((176-128))+rdi]3051 xor r14d,r12d3052 xor r15d,r10d3053 vpaddd ymm6,ymm2,YMMWORD[64+rbp]3054 xor r14d,r13d3055 lea r8d,[r15*1+r8]3056 mov r12d,ebx3057 vmovdqa YMMWORD[rsp],ymm63058 vpalignr ymm4,ymm0,ymm3,43059 add edx,DWORD[((32+128))+rsp]3060 and r12d,eax3061 rorx r13d,eax,253062 vpalignr ymm7,ymm2,ymm1,43063 rorx r15d,eax,113064 lea r8d,[r14*1+r8]3065 lea edx,[r12*1+rdx]3066 vpsrld ymm6,ymm4,73067 andn r12d,eax,ecx3068 xor r13d,r15d3069 rorx r14d,eax,63070 vpaddd ymm3,ymm3,ymm73071 lea edx,[r12*1+rdx]3072 xor r13d,r14d3073 mov r15d,r8d3074 vpsrld ymm7,ymm4,33075 rorx r12d,r8d,223076 lea edx,[r13*1+rdx]3077 xor r15d,r9d3078 vpslld ymm5,ymm4,143079 rorx r14d,r8d,133080 rorx r13d,r8d,23081 lea r11d,[rdx*1+r11]3082 vpxor ymm4,ymm7,ymm63083 and esi,r15d3084 vpand xmm8,xmm11,xmm123085 vaesenc xmm9,xmm9,xmm103086 vmovdqu xmm10,XMMWORD[((192-128))+rdi]3087 xor r14d,r12d3088 xor esi,r9d3089 vpshufd ymm7,ymm2,2503090 xor r14d,r13d3091 lea edx,[rsi*1+rdx]3092 mov r12d,eax3093 vpsrld ymm6,ymm6,113094 add ecx,DWORD[((36+128))+rsp]3095 and r12d,r11d3096 rorx r13d,r11d,253097 vpxor ymm4,ymm4,ymm53098 rorx esi,r11d,113099 lea edx,[r14*1+rdx]3100 lea ecx,[r12*1+rcx]3101 vpslld ymm5,ymm5,113102 andn r12d,r11d,ebx3103 xor r13d,esi3104 rorx r14d,r11d,63105 vpxor ymm4,ymm4,ymm63106 lea ecx,[r12*1+rcx]3107 xor r13d,r14d3108 mov esi,edx3109 vpsrld ymm6,ymm7,103110 rorx r12d,edx,223111 lea ecx,[r13*1+rcx]3112 xor esi,r8d3113 vpxor ymm4,ymm4,ymm53114 rorx r14d,edx,133115 rorx r13d,edx,23116 lea r10d,[rcx*1+r10]3117 vpsrlq ymm7,ymm7,173118 and r15d,esi3119 vaesenclast xmm11,xmm9,xmm103120 vaesenc xmm9,xmm9,xmm103121 vmovdqu xmm10,XMMWORD[((208-128))+rdi]3122 xor r14d,r12d3123 xor r15d,r8d3124 vpaddd ymm3,ymm3,ymm43125 xor r14d,r13d3126 lea ecx,[r15*1+rcx]3127 mov r12d,r11d3128 vpxor ymm6,ymm6,ymm73129 add ebx,DWORD[((40+128))+rsp]3130 and r12d,r10d3131 rorx r13d,r10d,253132 vpsrlq ymm7,ymm7,23133 rorx r15d,r10d,113134 lea ecx,[r14*1+rcx]3135 lea ebx,[r12*1+rbx]3136 vpxor ymm6,ymm6,ymm73137 andn r12d,r10d,eax3138 xor r13d,r15d3139 rorx r14d,r10d,63140 vpshufd ymm6,ymm6,1323141 lea ebx,[r12*1+rbx]3142 xor r13d,r14d3143 mov r15d,ecx3144 vpsrldq ymm6,ymm6,83145 rorx r12d,ecx,223146 lea ebx,[r13*1+rbx]3147 xor r15d,edx3148 vpaddd ymm3,ymm3,ymm63149 rorx r14d,ecx,133150 rorx r13d,ecx,23151 lea r9d,[rbx*1+r9]3152 vpshufd ymm7,ymm3,803153 and esi,r15d3154 vpand xmm11,xmm11,xmm133155 vaesenc xmm9,xmm9,xmm103156 vmovdqu xmm10,XMMWORD[((224-128))+rdi]3157 xor r14d,r12d3158 xor esi,edx3159 vpsrld ymm6,ymm7,103160 xor r14d,r13d3161 lea ebx,[rsi*1+rbx]3162 mov r12d,r10d3163 vpsrlq ymm7,ymm7,173164 add eax,DWORD[((44+128))+rsp]3165 and r12d,r9d3166 rorx r13d,r9d,253167 vpxor ymm6,ymm6,ymm73168 rorx esi,r9d,113169 lea ebx,[r14*1+rbx]3170 lea eax,[r12*1+rax]3171 vpsrlq ymm7,ymm7,23172 andn r12d,r9d,r11d3173 xor r13d,esi3174 rorx r14d,r9d,63175 vpxor ymm6,ymm6,ymm73176 lea eax,[r12*1+rax]3177 xor r13d,r14d3178 mov esi,ebx3179 vpshufd ymm6,ymm6,2323180 rorx r12d,ebx,223181 lea eax,[r13*1+rax]3182 xor esi,ecx3183 vpslldq ymm6,ymm6,83184 rorx r14d,ebx,133185 rorx r13d,ebx,23186 lea r8d,[rax*1+r8]3187 vpaddd ymm3,ymm3,ymm63188 and r15d,esi3189 vpor xmm8,xmm8,xmm113190 vaesenclast xmm11,xmm9,xmm103191 vmovdqu xmm10,XMMWORD[((0-128))+rdi]3192 xor r14d,r12d3193 xor r15d,ecx3194 vpaddd ymm6,ymm3,YMMWORD[96+rbp]3195 xor r14d,r13d3196 lea eax,[r15*1+rax]3197 mov r12d,r9d3198 vmovdqa YMMWORD[32+rsp],ymm63199 vmovq r13,xmm153200 vpextrq r15,xmm15,13201 vpand xmm11,xmm11,xmm143202 vpor xmm8,xmm8,xmm113203 vmovdqu XMMWORD[r13*1+r15],xmm83204 lea r13,[16+r13]3205 lea rbp,[128+rbp]3206 cmp BYTE[3+rbp],03207 jne NEAR $L$avx2_00_473208 vmovdqu xmm9,XMMWORD[r13]3209 vpinsrq xmm15,xmm15,r13,03210 add r11d,DWORD[((0+64))+rsp]3211 and r12d,r8d3212 rorx r13d,r8d,253213 rorx r15d,r8d,113214 lea eax,[r14*1+rax]3215 lea r11d,[r12*1+r11]3216 andn r12d,r8d,r10d3217 xor r13d,r15d3218 rorx r14d,r8d,63219 lea r11d,[r12*1+r11]3220 xor r13d,r14d3221 mov r15d,eax3222 rorx r12d,eax,223223 lea r11d,[r13*1+r11]3224 xor r15d,ebx3225 rorx r14d,eax,133226 rorx r13d,eax,23227 lea edx,[r11*1+rdx]3228 and esi,r15d3229 vpxor xmm9,xmm9,xmm103230 vmovdqu xmm10,XMMWORD[((16-128))+rdi]3231 xor r14d,r12d3232 xor esi,ebx3233 xor r14d,r13d3234 lea r11d,[rsi*1+r11]3235 mov r12d,r8d3236 add r10d,DWORD[((4+64))+rsp]3237 and r12d,edx3238 rorx r13d,edx,253239 rorx esi,edx,113240 lea r11d,[r14*1+r11]3241 lea r10d,[r12*1+r10]3242 andn r12d,edx,r9d3243 xor r13d,esi3244 rorx r14d,edx,63245 lea r10d,[r12*1+r10]3246 xor r13d,r14d3247 mov esi,r11d3248 rorx r12d,r11d,223249 lea r10d,[r13*1+r10]3250 xor esi,eax3251 rorx r14d,r11d,133252 rorx r13d,r11d,23253 lea ecx,[r10*1+rcx]3254 and r15d,esi3255 vpxor xmm9,xmm9,xmm83256 xor r14d,r12d3257 xor r15d,eax3258 xor r14d,r13d3259 lea r10d,[r15*1+r10]3260 mov r12d,edx3261 add r9d,DWORD[((8+64))+rsp]3262 and r12d,ecx3263 rorx r13d,ecx,253264 rorx r15d,ecx,113265 lea r10d,[r14*1+r10]3266 lea r9d,[r12*1+r9]3267 andn r12d,ecx,r8d3268 xor r13d,r15d3269 rorx r14d,ecx,63270 lea r9d,[r12*1+r9]3271 xor r13d,r14d3272 mov r15d,r10d3273 rorx r12d,r10d,223274 lea r9d,[r13*1+r9]3275 xor r15d,r11d3276 rorx r14d,r10d,133277 rorx r13d,r10d,23278 lea ebx,[r9*1+rbx]3279 and esi,r15d3280 vaesenc xmm9,xmm9,xmm103281 vmovdqu xmm10,XMMWORD[((32-128))+rdi]3282 xor r14d,r12d3283 xor esi,r11d3284 xor r14d,r13d3285 lea r9d,[rsi*1+r9]3286 mov r12d,ecx3287 add r8d,DWORD[((12+64))+rsp]3288 and r12d,ebx3289 rorx r13d,ebx,253290 rorx esi,ebx,113291 lea r9d,[r14*1+r9]3292 lea r8d,[r12*1+r8]3293 andn r12d,ebx,edx3294 xor r13d,esi3295 rorx r14d,ebx,63296 lea r8d,[r12*1+r8]3297 xor r13d,r14d3298 mov esi,r9d3299 rorx r12d,r9d,223300 lea r8d,[r13*1+r8]3301 xor esi,r10d3302 rorx r14d,r9d,133303 rorx r13d,r9d,23304 lea eax,[r8*1+rax]3305 and r15d,esi3306 vaesenc xmm9,xmm9,xmm103307 vmovdqu xmm10,XMMWORD[((48-128))+rdi]3308 xor r14d,r12d3309 xor r15d,r10d3310 xor r14d,r13d3311 lea r8d,[r15*1+r8]3312 mov r12d,ebx3313 add edx,DWORD[((32+64))+rsp]3314 and r12d,eax3315 rorx r13d,eax,253316 rorx r15d,eax,113317 lea r8d,[r14*1+r8]3318 lea edx,[r12*1+rdx]3319 andn r12d,eax,ecx3320 xor r13d,r15d3321 rorx r14d,eax,63322 lea edx,[r12*1+rdx]3323 xor r13d,r14d3324 mov r15d,r8d3325 rorx r12d,r8d,223326 lea edx,[r13*1+rdx]3327 xor r15d,r9d3328 rorx r14d,r8d,133329 rorx r13d,r8d,23330 lea r11d,[rdx*1+r11]3331 and esi,r15d3332 vaesenc xmm9,xmm9,xmm103333 vmovdqu xmm10,XMMWORD[((64-128))+rdi]3334 xor r14d,r12d3335 xor esi,r9d3336 xor r14d,r13d3337 lea edx,[rsi*1+rdx]3338 mov r12d,eax3339 add ecx,DWORD[((36+64))+rsp]3340 and r12d,r11d3341 rorx r13d,r11d,253342 rorx esi,r11d,113343 lea edx,[r14*1+rdx]3344 lea ecx,[r12*1+rcx]3345 andn r12d,r11d,ebx3346 xor r13d,esi3347 rorx r14d,r11d,63348 lea ecx,[r12*1+rcx]3349 xor r13d,r14d3350 mov esi,edx3351 rorx r12d,edx,223352 lea ecx,[r13*1+rcx]3353 xor esi,r8d3354 rorx r14d,edx,133355 rorx r13d,edx,23356 lea r10d,[rcx*1+r10]3357 and r15d,esi3358 vaesenc xmm9,xmm9,xmm103359 vmovdqu xmm10,XMMWORD[((80-128))+rdi]3360 xor r14d,r12d3361 xor r15d,r8d3362 xor r14d,r13d3363 lea ecx,[r15*1+rcx]3364 mov r12d,r11d3365 add ebx,DWORD[((40+64))+rsp]3366 and r12d,r10d3367 rorx r13d,r10d,253368 rorx r15d,r10d,113369 lea ecx,[r14*1+rcx]3370 lea ebx,[r12*1+rbx]3371 andn r12d,r10d,eax3372 xor r13d,r15d3373 rorx r14d,r10d,63374 lea ebx,[r12*1+rbx]3375 xor r13d,r14d3376 mov r15d,ecx3377 rorx r12d,ecx,223378 lea ebx,[r13*1+rbx]3379 xor r15d,edx3380 rorx r14d,ecx,133381 rorx r13d,ecx,23382 lea r9d,[rbx*1+r9]3383 and esi,r15d3384 vaesenc xmm9,xmm9,xmm103385 vmovdqu xmm10,XMMWORD[((96-128))+rdi]3386 xor r14d,r12d3387 xor esi,edx3388 xor r14d,r13d3389 lea ebx,[rsi*1+rbx]3390 mov r12d,r10d3391 add eax,DWORD[((44+64))+rsp]3392 and r12d,r9d3393 rorx r13d,r9d,253394 rorx esi,r9d,113395 lea ebx,[r14*1+rbx]3396 lea eax,[r12*1+rax]3397 andn r12d,r9d,r11d3398 xor r13d,esi3399 rorx r14d,r9d,63400 lea eax,[r12*1+rax]3401 xor r13d,r14d3402 mov esi,ebx3403 rorx r12d,ebx,223404 lea eax,[r13*1+rax]3405 xor esi,ecx3406 rorx r14d,ebx,133407 rorx r13d,ebx,23408 lea r8d,[rax*1+r8]3409 and r15d,esi3410 vaesenc xmm9,xmm9,xmm103411 vmovdqu xmm10,XMMWORD[((112-128))+rdi]3412 xor r14d,r12d3413 xor r15d,ecx3414 xor r14d,r13d3415 lea eax,[r15*1+rax]3416 mov r12d,r9d3417 add r11d,DWORD[rsp]3418 and r12d,r8d3419 rorx r13d,r8d,253420 rorx r15d,r8d,113421 lea eax,[r14*1+rax]3422 lea r11d,[r12*1+r11]3423 andn r12d,r8d,r10d3424 xor r13d,r15d3425 rorx r14d,r8d,63426 lea r11d,[r12*1+r11]3427 xor r13d,r14d3428 mov r15d,eax3429 rorx r12d,eax,223430 lea r11d,[r13*1+r11]3431 xor r15d,ebx3432 rorx r14d,eax,133433 rorx r13d,eax,23434 lea edx,[r11*1+rdx]3435 and esi,r15d3436 vaesenc xmm9,xmm9,xmm103437 vmovdqu xmm10,XMMWORD[((128-128))+rdi]3438 xor r14d,r12d3439 xor esi,ebx3440 xor r14d,r13d3441 lea r11d,[rsi*1+r11]3442 mov r12d,r8d3443 add r10d,DWORD[4+rsp]3444 and r12d,edx3445 rorx r13d,edx,253446 rorx esi,edx,113447 lea r11d,[r14*1+r11]3448 lea r10d,[r12*1+r10]3449 andn r12d,edx,r9d3450 xor r13d,esi3451 rorx r14d,edx,63452 lea r10d,[r12*1+r10]3453 xor r13d,r14d3454 mov esi,r11d3455 rorx r12d,r11d,223456 lea r10d,[r13*1+r10]3457 xor esi,eax3458 rorx r14d,r11d,133459 rorx r13d,r11d,23460 lea ecx,[r10*1+rcx]3461 and r15d,esi3462 vaesenc xmm9,xmm9,xmm103463 vmovdqu xmm10,XMMWORD[((144-128))+rdi]3464 xor r14d,r12d3465 xor r15d,eax3466 xor r14d,r13d3467 lea r10d,[r15*1+r10]3468 mov r12d,edx3469 add r9d,DWORD[8+rsp]3470 and r12d,ecx3471 rorx r13d,ecx,253472 rorx r15d,ecx,113473 lea r10d,[r14*1+r10]3474 lea r9d,[r12*1+r9]3475 andn r12d,ecx,r8d3476 xor r13d,r15d3477 rorx r14d,ecx,63478 lea r9d,[r12*1+r9]3479 xor r13d,r14d3480 mov r15d,r10d3481 rorx r12d,r10d,223482 lea r9d,[r13*1+r9]3483 xor r15d,r11d3484 rorx r14d,r10d,133485 rorx r13d,r10d,23486 lea ebx,[r9*1+rbx]3487 and esi,r15d3488 vaesenc xmm9,xmm9,xmm103489 vmovdqu xmm10,XMMWORD[((160-128))+rdi]3490 xor r14d,r12d3491 xor esi,r11d3492 xor r14d,r13d3493 lea r9d,[rsi*1+r9]3494 mov r12d,ecx3495 add r8d,DWORD[12+rsp]3496 and r12d,ebx3497 rorx r13d,ebx,253498 rorx esi,ebx,113499 lea r9d,[r14*1+r9]3500 lea r8d,[r12*1+r8]3501 andn r12d,ebx,edx3502 xor r13d,esi3503 rorx r14d,ebx,63504 lea r8d,[r12*1+r8]3505 xor r13d,r14d3506 mov esi,r9d3507 rorx r12d,r9d,223508 lea r8d,[r13*1+r8]3509 xor esi,r10d3510 rorx r14d,r9d,133511 rorx r13d,r9d,23512 lea eax,[r8*1+rax]3513 and r15d,esi3514 vaesenclast xmm11,xmm9,xmm103515 vaesenc xmm9,xmm9,xmm103516 vmovdqu xmm10,XMMWORD[((176-128))+rdi]3517 xor r14d,r12d3518 xor r15d,r10d3519 xor r14d,r13d3520 lea r8d,[r15*1+r8]3521 mov r12d,ebx3522 add edx,DWORD[32+rsp]3523 and r12d,eax3524 rorx r13d,eax,253525 rorx r15d,eax,113526 lea r8d,[r14*1+r8]3527 lea edx,[r12*1+rdx]3528 andn r12d,eax,ecx3529 xor r13d,r15d3530 rorx r14d,eax,63531 lea edx,[r12*1+rdx]3532 xor r13d,r14d3533 mov r15d,r8d3534 rorx r12d,r8d,223535 lea edx,[r13*1+rdx]3536 xor r15d,r9d3537 rorx r14d,r8d,133538 rorx r13d,r8d,23539 lea r11d,[rdx*1+r11]3540 and esi,r15d3541 vpand xmm8,xmm11,xmm123542 vaesenc xmm9,xmm9,xmm103543 vmovdqu xmm10,XMMWORD[((192-128))+rdi]3544 xor r14d,r12d3545 xor esi,r9d3546 xor r14d,r13d3547 lea edx,[rsi*1+rdx]3548 mov r12d,eax3549 add ecx,DWORD[36+rsp]3550 and r12d,r11d3551 rorx r13d,r11d,253552 rorx esi,r11d,113553 lea edx,[r14*1+rdx]3554 lea ecx,[r12*1+rcx]3555 andn r12d,r11d,ebx3556 xor r13d,esi3557 rorx r14d,r11d,63558 lea ecx,[r12*1+rcx]3559 xor r13d,r14d3560 mov esi,edx3561 rorx r12d,edx,223562 lea ecx,[r13*1+rcx]3563 xor esi,r8d3564 rorx r14d,edx,133565 rorx r13d,edx,23566 lea r10d,[rcx*1+r10]3567 and r15d,esi3568 vaesenclast xmm11,xmm9,xmm103569 vaesenc xmm9,xmm9,xmm103570 vmovdqu xmm10,XMMWORD[((208-128))+rdi]3571 xor r14d,r12d3572 xor r15d,r8d3573 xor r14d,r13d3574 lea ecx,[r15*1+rcx]3575 mov r12d,r11d3576 add ebx,DWORD[40+rsp]3577 and r12d,r10d3578 rorx r13d,r10d,253579 rorx r15d,r10d,113580 lea ecx,[r14*1+rcx]3581 lea ebx,[r12*1+rbx]3582 andn r12d,r10d,eax3583 xor r13d,r15d3584 rorx r14d,r10d,63585 lea ebx,[r12*1+rbx]3586 xor r13d,r14d3587 mov r15d,ecx3588 rorx r12d,ecx,223589 lea ebx,[r13*1+rbx]3590 xor r15d,edx3591 rorx r14d,ecx,133592 rorx r13d,ecx,23593 lea r9d,[rbx*1+r9]3594 and esi,r15d3595 vpand xmm11,xmm11,xmm133596 vaesenc xmm9,xmm9,xmm103597 vmovdqu xmm10,XMMWORD[((224-128))+rdi]3598 xor r14d,r12d3599 xor esi,edx3600 xor r14d,r13d3601 lea ebx,[rsi*1+rbx]3602 mov r12d,r10d3603 add eax,DWORD[44+rsp]3604 and r12d,r9d3605 rorx r13d,r9d,253606 rorx esi,r9d,113607 lea ebx,[r14*1+rbx]3608 lea eax,[r12*1+rax]3609 andn r12d,r9d,r11d3610 xor r13d,esi3611 rorx r14d,r9d,63612 lea eax,[r12*1+rax]3613 xor r13d,r14d3614 mov esi,ebx3615 rorx r12d,ebx,223616 lea eax,[r13*1+rax]3617 xor esi,ecx3618 rorx r14d,ebx,133619 rorx r13d,ebx,23620 lea r8d,[rax*1+r8]3621 and r15d,esi3622 vpor xmm8,xmm8,xmm113623 vaesenclast xmm11,xmm9,xmm103624 vmovdqu xmm10,XMMWORD[((0-128))+rdi]3625 xor r14d,r12d3626 xor r15d,ecx3627 xor r14d,r13d3628 lea eax,[r15*1+rax]3629 mov r12d,r9d3630 vpextrq r12,xmm15,13631 vmovq r13,xmm153632 mov r15,QWORD[552+rsp]3633 add eax,r14d3634 lea rbp,[448+rsp]3635 3636 vpand xmm11,xmm11,xmm143637 vpor xmm8,xmm8,xmm113638 vmovdqu XMMWORD[r13*1+r12],xmm83639 lea r13,[16+r13]3640 3641 add eax,DWORD[r15]3642 add ebx,DWORD[4+r15]3643 add ecx,DWORD[8+r15]3644 add edx,DWORD[12+r15]3645 add r8d,DWORD[16+r15]3646 add r9d,DWORD[20+r15]3647 add r10d,DWORD[24+r15]3648 add r11d,DWORD[28+r15]3649 3650 mov DWORD[r15],eax3651 mov DWORD[4+r15],ebx3652 mov DWORD[8+r15],ecx3653 mov DWORD[12+r15],edx3654 mov DWORD[16+r15],r8d3655 mov DWORD[20+r15],r9d3656 mov DWORD[24+r15],r10d3657 mov DWORD[28+r15],r11d3658 3659 cmp r13,QWORD[80+rbp]3660 je NEAR $L$done_avx23661 3662 xor r14d,r14d3663 mov esi,ebx3664 mov r12d,r9d3665 xor esi,ecx3666 jmp NEAR $L$ower_avx23667 ALIGN 163668 $L$ower_avx2:3669 vmovdqu xmm9,XMMWORD[r13]3670 vpinsrq xmm15,xmm15,r13,03671 add r11d,DWORD[((0+16))+rbp]3672 and r12d,r8d3673 rorx r13d,r8d,253674 rorx r15d,r8d,113675 lea eax,[r14*1+rax]3676 lea r11d,[r12*1+r11]3677 andn r12d,r8d,r10d3678 xor r13d,r15d3679 rorx r14d,r8d,63680 lea r11d,[r12*1+r11]3681 xor r13d,r14d3682 mov r15d,eax3683 rorx r12d,eax,223684 lea r11d,[r13*1+r11]3685 xor r15d,ebx3686 rorx r14d,eax,133687 rorx r13d,eax,23688 lea edx,[r11*1+rdx]3689 and esi,r15d3690 vpxor xmm9,xmm9,xmm103691 vmovdqu xmm10,XMMWORD[((16-128))+rdi]3692 xor r14d,r12d3693 xor esi,ebx3694 xor r14d,r13d3695 lea r11d,[rsi*1+r11]3696 mov r12d,r8d3697 add r10d,DWORD[((4+16))+rbp]3698 and r12d,edx3699 rorx r13d,edx,253700 rorx esi,edx,113701 lea r11d,[r14*1+r11]3702 lea r10d,[r12*1+r10]3703 andn r12d,edx,r9d3704 xor r13d,esi3705 rorx r14d,edx,63706 lea r10d,[r12*1+r10]3707 xor r13d,r14d3708 mov esi,r11d3709 rorx r12d,r11d,223710 lea r10d,[r13*1+r10]3711 xor esi,eax3712 rorx r14d,r11d,133713 rorx r13d,r11d,23714 lea ecx,[r10*1+rcx]3715 and r15d,esi3716 vpxor xmm9,xmm9,xmm83717 xor r14d,r12d3718 xor r15d,eax3719 xor r14d,r13d3720 lea r10d,[r15*1+r10]3721 mov r12d,edx3722 add r9d,DWORD[((8+16))+rbp]3723 and r12d,ecx3724 rorx r13d,ecx,253725 rorx r15d,ecx,113726 lea r10d,[r14*1+r10]3727 lea r9d,[r12*1+r9]3728 andn r12d,ecx,r8d3729 xor r13d,r15d3730 rorx r14d,ecx,63731 lea r9d,[r12*1+r9]3732 xor r13d,r14d3733 mov r15d,r10d3734 rorx r12d,r10d,223735 lea r9d,[r13*1+r9]3736 xor r15d,r11d3737 rorx r14d,r10d,133738 rorx r13d,r10d,23739 lea ebx,[r9*1+rbx]3740 and esi,r15d3741 vaesenc xmm9,xmm9,xmm103742 vmovdqu xmm10,XMMWORD[((32-128))+rdi]3743 xor r14d,r12d3744 xor esi,r11d3745 xor r14d,r13d3746 lea r9d,[rsi*1+r9]3747 mov r12d,ecx3748 add r8d,DWORD[((12+16))+rbp]3749 and r12d,ebx3750 rorx r13d,ebx,253751 rorx esi,ebx,113752 lea r9d,[r14*1+r9]3753 lea r8d,[r12*1+r8]3754 andn r12d,ebx,edx3755 xor r13d,esi3756 rorx r14d,ebx,63757 lea r8d,[r12*1+r8]3758 xor r13d,r14d3759 mov esi,r9d3760 rorx r12d,r9d,223761 lea r8d,[r13*1+r8]3762 xor esi,r10d3763 rorx r14d,r9d,133764 rorx r13d,r9d,23765 lea eax,[r8*1+rax]3766 and r15d,esi3767 vaesenc xmm9,xmm9,xmm103768 vmovdqu xmm10,XMMWORD[((48-128))+rdi]3769 xor r14d,r12d3770 xor r15d,r10d3771 xor r14d,r13d3772 lea r8d,[r15*1+r8]3773 mov r12d,ebx3774 add edx,DWORD[((32+16))+rbp]3775 and r12d,eax3776 rorx r13d,eax,253777 rorx r15d,eax,113778 lea r8d,[r14*1+r8]3779 lea edx,[r12*1+rdx]3780 andn r12d,eax,ecx3781 xor r13d,r15d3782 rorx r14d,eax,63783 lea edx,[r12*1+rdx]3784 xor r13d,r14d3785 mov r15d,r8d3786 rorx r12d,r8d,223787 lea edx,[r13*1+rdx]3788 xor r15d,r9d3789 rorx r14d,r8d,133790 rorx r13d,r8d,23791 lea r11d,[rdx*1+r11]3792 and esi,r15d3793 vaesenc xmm9,xmm9,xmm103794 vmovdqu xmm10,XMMWORD[((64-128))+rdi]3795 xor r14d,r12d3796 xor esi,r9d3797 xor r14d,r13d3798 lea edx,[rsi*1+rdx]3799 mov r12d,eax3800 add ecx,DWORD[((36+16))+rbp]3801 and r12d,r11d3802 rorx r13d,r11d,253803 rorx esi,r11d,113804 lea edx,[r14*1+rdx]3805 lea ecx,[r12*1+rcx]3806 andn r12d,r11d,ebx3807 xor r13d,esi3808 rorx r14d,r11d,63809 lea ecx,[r12*1+rcx]3810 xor r13d,r14d3811 mov esi,edx3812 rorx r12d,edx,223813 lea ecx,[r13*1+rcx]3814 xor esi,r8d3815 rorx r14d,edx,133816 rorx r13d,edx,23817 lea r10d,[rcx*1+r10]3818 and r15d,esi3819 vaesenc xmm9,xmm9,xmm103820 vmovdqu xmm10,XMMWORD[((80-128))+rdi]3821 xor r14d,r12d3822 xor r15d,r8d3823 xor r14d,r13d3824 lea ecx,[r15*1+rcx]3825 mov r12d,r11d3826 add ebx,DWORD[((40+16))+rbp]3827 and r12d,r10d3828 rorx r13d,r10d,253829 rorx r15d,r10d,113830 lea ecx,[r14*1+rcx]3831 lea ebx,[r12*1+rbx]3832 andn r12d,r10d,eax3833 xor r13d,r15d3834 rorx r14d,r10d,63835 lea ebx,[r12*1+rbx]3836 xor r13d,r14d3837 mov r15d,ecx3838 rorx r12d,ecx,223839 lea ebx,[r13*1+rbx]3840 xor r15d,edx3841 rorx r14d,ecx,133842 rorx r13d,ecx,23843 lea r9d,[rbx*1+r9]3844 and esi,r15d3845 vaesenc xmm9,xmm9,xmm103846 vmovdqu xmm10,XMMWORD[((96-128))+rdi]3847 xor r14d,r12d3848 xor esi,edx3849 xor r14d,r13d3850 lea ebx,[rsi*1+rbx]3851 mov r12d,r10d3852 add eax,DWORD[((44+16))+rbp]3853 and r12d,r9d3854 rorx r13d,r9d,253855 rorx esi,r9d,113856 lea ebx,[r14*1+rbx]3857 lea eax,[r12*1+rax]3858 andn r12d,r9d,r11d3859 xor r13d,esi3860 rorx r14d,r9d,63861 lea eax,[r12*1+rax]3862 xor r13d,r14d3863 mov esi,ebx3864 rorx r12d,ebx,223865 lea eax,[r13*1+rax]3866 xor esi,ecx3867 rorx r14d,ebx,133868 rorx r13d,ebx,23869 lea r8d,[rax*1+r8]3870 and r15d,esi3871 vaesenc xmm9,xmm9,xmm103872 vmovdqu xmm10,XMMWORD[((112-128))+rdi]3873 xor r14d,r12d3874 xor r15d,ecx3875 xor r14d,r13d3876 lea eax,[r15*1+rax]3877 mov r12d,r9d3878 lea rbp,[((-64))+rbp]3879 add r11d,DWORD[((0+16))+rbp]3880 and r12d,r8d3881 rorx r13d,r8d,253882 rorx r15d,r8d,113883 lea eax,[r14*1+rax]3884 lea r11d,[r12*1+r11]3885 andn r12d,r8d,r10d3886 xor r13d,r15d3887 rorx r14d,r8d,63888 lea r11d,[r12*1+r11]3889 xor r13d,r14d3890 mov r15d,eax3891 rorx r12d,eax,223892 lea r11d,[r13*1+r11]3893 xor r15d,ebx3894 rorx r14d,eax,133895 rorx r13d,eax,23896 lea edx,[r11*1+rdx]3897 and esi,r15d3898 vaesenc xmm9,xmm9,xmm103899 vmovdqu xmm10,XMMWORD[((128-128))+rdi]3900 xor r14d,r12d3901 xor esi,ebx3902 xor r14d,r13d3903 lea r11d,[rsi*1+r11]3904 mov r12d,r8d3905 add r10d,DWORD[((4+16))+rbp]3906 and r12d,edx3907 rorx r13d,edx,253908 rorx esi,edx,113909 lea r11d,[r14*1+r11]3910 lea r10d,[r12*1+r10]3911 andn r12d,edx,r9d3912 xor r13d,esi3913 rorx r14d,edx,63914 lea r10d,[r12*1+r10]3915 xor r13d,r14d3916 mov esi,r11d3917 rorx r12d,r11d,223918 lea r10d,[r13*1+r10]3919 xor esi,eax3920 rorx r14d,r11d,133921 rorx r13d,r11d,23922 lea ecx,[r10*1+rcx]3923 and r15d,esi3924 vaesenc xmm9,xmm9,xmm103925 vmovdqu xmm10,XMMWORD[((144-128))+rdi]3926 xor r14d,r12d3927 xor r15d,eax3928 xor r14d,r13d3929 lea r10d,[r15*1+r10]3930 mov r12d,edx3931 add r9d,DWORD[((8+16))+rbp]3932 and r12d,ecx3933 rorx r13d,ecx,253934 rorx r15d,ecx,113935 lea r10d,[r14*1+r10]3936 lea r9d,[r12*1+r9]3937 andn r12d,ecx,r8d3938 xor r13d,r15d3939 rorx r14d,ecx,63940 lea r9d,[r12*1+r9]3941 xor r13d,r14d3942 mov r15d,r10d3943 rorx r12d,r10d,223944 lea r9d,[r13*1+r9]3945 xor r15d,r11d3946 rorx r14d,r10d,133947 rorx r13d,r10d,23948 lea ebx,[r9*1+rbx]3949 and esi,r15d3950 vaesenc xmm9,xmm9,xmm103951 vmovdqu xmm10,XMMWORD[((160-128))+rdi]3952 xor r14d,r12d3953 xor esi,r11d3954 xor r14d,r13d3955 lea r9d,[rsi*1+r9]3956 mov r12d,ecx3957 add r8d,DWORD[((12+16))+rbp]3958 and r12d,ebx3959 rorx r13d,ebx,253960 rorx esi,ebx,113961 lea r9d,[r14*1+r9]3962 lea r8d,[r12*1+r8]3963 andn r12d,ebx,edx3964 xor r13d,esi3965 rorx r14d,ebx,63966 lea r8d,[r12*1+r8]3967 xor r13d,r14d3968 mov esi,r9d3969 rorx r12d,r9d,223970 lea r8d,[r13*1+r8]3971 xor esi,r10d3972 rorx r14d,r9d,133973 rorx r13d,r9d,23974 lea eax,[r8*1+rax]3975 and r15d,esi3976 vaesenclast xmm11,xmm9,xmm103977 vaesenc xmm9,xmm9,xmm103978 vmovdqu xmm10,XMMWORD[((176-128))+rdi]3979 xor r14d,r12d3980 xor r15d,r10d3981 xor r14d,r13d3982 lea r8d,[r15*1+r8]3983 mov r12d,ebx3984 add edx,DWORD[((32+16))+rbp]3985 and r12d,eax3986 rorx r13d,eax,253987 rorx r15d,eax,113988 lea r8d,[r14*1+r8]3989 lea edx,[r12*1+rdx]3990 andn r12d,eax,ecx3991 xor r13d,r15d3992 rorx r14d,eax,63993 lea edx,[r12*1+rdx]3994 xor r13d,r14d3995 mov r15d,r8d3996 rorx r12d,r8d,223997 lea edx,[r13*1+rdx]3998 xor r15d,r9d3999 rorx r14d,r8d,134000 rorx r13d,r8d,24001 lea r11d,[rdx*1+r11]4002 and esi,r15d4003 vpand xmm8,xmm11,xmm124004 vaesenc xmm9,xmm9,xmm104005 vmovdqu xmm10,XMMWORD[((192-128))+rdi]4006 xor r14d,r12d4007 xor esi,r9d4008 xor r14d,r13d4009 lea edx,[rsi*1+rdx]4010 mov r12d,eax4011 add ecx,DWORD[((36+16))+rbp]4012 and r12d,r11d4013 rorx r13d,r11d,254014 rorx esi,r11d,114015 lea edx,[r14*1+rdx]4016 lea ecx,[r12*1+rcx]4017 andn r12d,r11d,ebx4018 xor r13d,esi4019 rorx r14d,r11d,64020 lea ecx,[r12*1+rcx]4021 xor r13d,r14d4022 mov esi,edx4023 rorx r12d,edx,224024 lea ecx,[r13*1+rcx]4025 xor esi,r8d4026 rorx r14d,edx,134027 rorx r13d,edx,24028 lea r10d,[rcx*1+r10]4029 and r15d,esi4030 vaesenclast xmm11,xmm9,xmm104031 vaesenc xmm9,xmm9,xmm104032 vmovdqu xmm10,XMMWORD[((208-128))+rdi]4033 xor r14d,r12d4034 xor r15d,r8d4035 xor r14d,r13d4036 lea ecx,[r15*1+rcx]4037 mov r12d,r11d4038 add ebx,DWORD[((40+16))+rbp]4039 and r12d,r10d4040 rorx r13d,r10d,254041 rorx r15d,r10d,114042 lea ecx,[r14*1+rcx]4043 lea ebx,[r12*1+rbx]4044 andn r12d,r10d,eax4045 xor r13d,r15d4046 rorx r14d,r10d,64047 lea ebx,[r12*1+rbx]4048 xor r13d,r14d4049 mov r15d,ecx4050 rorx r12d,ecx,224051 lea ebx,[r13*1+rbx]4052 xor r15d,edx4053 rorx r14d,ecx,134054 rorx r13d,ecx,24055 lea r9d,[rbx*1+r9]4056 and esi,r15d4057 vpand xmm11,xmm11,xmm134058 vaesenc xmm9,xmm9,xmm104059 vmovdqu xmm10,XMMWORD[((224-128))+rdi]4060 xor r14d,r12d4061 xor esi,edx4062 xor r14d,r13d4063 lea ebx,[rsi*1+rbx]4064 mov r12d,r10d4065 add eax,DWORD[((44+16))+rbp]4066 and r12d,r9d4067 rorx r13d,r9d,254068 rorx esi,r9d,114069 lea ebx,[r14*1+rbx]4070 lea eax,[r12*1+rax]4071 andn r12d,r9d,r11d4072 xor r13d,esi4073 rorx r14d,r9d,64074 lea eax,[r12*1+rax]4075 xor r13d,r14d4076 mov esi,ebx4077 rorx r12d,ebx,224078 lea eax,[r13*1+rax]4079 xor esi,ecx4080 rorx r14d,ebx,134081 rorx r13d,ebx,24082 lea r8d,[rax*1+r8]4083 and r15d,esi4084 vpor xmm8,xmm8,xmm114085 vaesenclast xmm11,xmm9,xmm104086 vmovdqu xmm10,XMMWORD[((0-128))+rdi]4087 xor r14d,r12d4088 xor r15d,ecx4089 xor r14d,r13d4090 lea eax,[r15*1+rax]4091 mov r12d,r9d4092 vmovq r13,xmm154093 vpextrq r15,xmm15,14094 vpand xmm11,xmm11,xmm144095 vpor xmm8,xmm8,xmm114096 lea rbp,[((-64))+rbp]4097 vmovdqu XMMWORD[r13*1+r15],xmm84098 lea r13,[16+r13]4099 cmp rbp,rsp4100 jae NEAR $L$ower_avx24101 4102 mov r15,QWORD[552+rsp]4103 lea r13,[64+r13]4104 mov rsi,QWORD[560+rsp]4105 add eax,r14d4106 lea rsp,[448+rsp]4107 4108 add eax,DWORD[r15]4109 add ebx,DWORD[4+r15]4110 add ecx,DWORD[8+r15]4111 add edx,DWORD[12+r15]4112 add r8d,DWORD[16+r15]4113 add r9d,DWORD[20+r15]4114 add r10d,DWORD[24+r15]4115 lea r12,[r13*1+rsi]4116 add r11d,DWORD[28+r15]4117 4118 cmp r13,QWORD[((64+16))+rsp]4119 4120 mov DWORD[r15],eax4121 cmove r12,rsp4122 mov DWORD[4+r15],ebx4123 mov DWORD[8+r15],ecx4124 mov DWORD[12+r15],edx4125 mov DWORD[16+r15],r8d4126 mov DWORD[20+r15],r9d4127 mov DWORD[24+r15],r10d4128 mov DWORD[28+r15],r11d4129 4130 jbe NEAR $L$oop_avx24131 lea rbp,[rsp]4132 4133 4134 4135 4136 $L$done_avx2:4137 mov r8,QWORD[((64+32))+rbp]4138 mov rsi,QWORD[((64+56))+rbp]4139 4140 vmovdqu XMMWORD[r8],xmm84141 vzeroall4142 movaps xmm6,XMMWORD[128+rbp]4143 movaps xmm7,XMMWORD[144+rbp]4144 movaps xmm8,XMMWORD[160+rbp]4145 movaps xmm9,XMMWORD[176+rbp]4146 movaps xmm10,XMMWORD[192+rbp]4147 movaps xmm11,XMMWORD[208+rbp]4148 movaps xmm12,XMMWORD[224+rbp]4149 movaps xmm13,XMMWORD[240+rbp]4150 movaps xmm14,XMMWORD[256+rbp]4151 movaps xmm15,XMMWORD[272+rbp]4152 mov r15,QWORD[((-48))+rsi]4153 4154 mov r14,QWORD[((-40))+rsi]4155 4156 mov r13,QWORD[((-32))+rsi]4157 4158 mov r12,QWORD[((-24))+rsi]4159 4160 mov rbp,QWORD[((-16))+rsi]4161 4162 mov rbx,QWORD[((-8))+rsi]4163 4164 lea rsp,[rsi]4165 4166 $L$epilogue_avx2:4167 mov rdi,QWORD[8+rsp] ;WIN64 epilogue4168 mov rsi,QWORD[16+rsp]4169 DB 0F3h,0C3h ;repret4170 4171 $L$SEH_end_aesni_cbc_sha256_enc_avx2:4172 4173 ALIGN 324174 aesni_cbc_sha256_enc_shaext:4175 mov QWORD[8+rsp],rdi ;WIN64 prologue4176 mov QWORD[16+rsp],rsi4177 mov rax,rsp4178 $L$SEH_begin_aesni_cbc_sha256_enc_shaext:4179 mov rdi,rcx4180 mov rsi,rdx4181 mov rdx,r84182 mov rcx,r94183 mov r8,QWORD[40+rsp]4184 mov r9,QWORD[48+rsp]4185 4186 4187 4188 mov r10,QWORD[56+rsp]4189 lea rsp,[((-168))+rsp]4190 movaps XMMWORD[(-8-160)+rax],xmm64191 movaps XMMWORD[(-8-144)+rax],xmm74192 movaps XMMWORD[(-8-128)+rax],xmm84193 movaps XMMWORD[(-8-112)+rax],xmm94194 movaps XMMWORD[(-8-96)+rax],xmm104195 movaps XMMWORD[(-8-80)+rax],xmm114196 movaps XMMWORD[(-8-64)+rax],xmm124197 movaps XMMWORD[(-8-48)+rax],xmm134198 movaps XMMWORD[(-8-32)+rax],xmm144199 movaps XMMWORD[(-8-16)+rax],xmm154200 $L$prologue_shaext:4201 lea rax,[((K256+128))]4202 movdqu xmm1,XMMWORD[r9]4203 movdqu xmm2,XMMWORD[16+r9]4204 movdqa xmm3,XMMWORD[((512-128))+rax]4205 4206 mov r11d,DWORD[240+rcx]4207 sub rsi,rdi4208 movups xmm15,XMMWORD[rcx]4209 movups xmm6,XMMWORD[r8]4210 movups xmm4,XMMWORD[16+rcx]4211 lea rcx,[112+rcx]4212 4213 pshufd xmm0,xmm1,0x1b4214 pshufd xmm1,xmm1,0xb14215 pshufd xmm2,xmm2,0x1b4216 movdqa xmm7,xmm34217 DB 102,15,58,15,202,84218 punpcklqdq xmm2,xmm04219 4220 jmp NEAR $L$oop_shaext4221 4222 ALIGN 164223 $L$oop_shaext:4224 movdqu xmm10,XMMWORD[r10]4225 movdqu xmm11,XMMWORD[16+r10]4226 movdqu xmm12,XMMWORD[32+r10]4227 DB 102,68,15,56,0,2114228 movdqu xmm13,XMMWORD[48+r10]4229 4230 movdqa xmm0,XMMWORD[((0-128))+rax]4231 paddd xmm0,xmm104232 DB 102,68,15,56,0,2194233 movdqa xmm9,xmm24234 movdqa xmm8,xmm14235 movups xmm14,XMMWORD[rdi]4236 xorps xmm14,xmm154237 xorps xmm6,xmm144238 movups xmm5,XMMWORD[((-80))+rcx]4239 aesenc xmm6,xmm44240 DB 15,56,203,2094241 pshufd xmm0,xmm0,0x0e4242 movups xmm4,XMMWORD[((-64))+rcx]4243 aesenc xmm6,xmm54244 DB 15,56,203,2024245 4246 movdqa xmm0,XMMWORD[((32-128))+rax]4247 paddd xmm0,xmm114248 DB 102,68,15,56,0,2274249 lea r10,[64+r10]4250 movups xmm5,XMMWORD[((-48))+rcx]4251 aesenc xmm6,xmm44252 DB 15,56,203,2094253 pshufd xmm0,xmm0,0x0e4254 movups xmm4,XMMWORD[((-32))+rcx]4255 aesenc xmm6,xmm54256 DB 15,56,203,2024257 4258 movdqa xmm0,XMMWORD[((64-128))+rax]4259 paddd xmm0,xmm124260 DB 102,68,15,56,0,2354261 DB 69,15,56,204,2114262 movups xmm5,XMMWORD[((-16))+rcx]4263 aesenc xmm6,xmm44264 DB 15,56,203,2094265 pshufd xmm0,xmm0,0x0e4266 movdqa xmm3,xmm134267 DB 102,65,15,58,15,220,44268 paddd xmm10,xmm34269 movups xmm4,XMMWORD[rcx]4270 aesenc xmm6,xmm54271 DB 15,56,203,2024272 4273 movdqa xmm0,XMMWORD[((96-128))+rax]4274 paddd xmm0,xmm134275 DB 69,15,56,205,2134276 DB 69,15,56,204,2204277 movups xmm5,XMMWORD[16+rcx]4278 aesenc xmm6,xmm44279 DB 15,56,203,2094280 pshufd xmm0,xmm0,0x0e4281 movups xmm4,XMMWORD[32+rcx]4282 aesenc xmm6,xmm54283 movdqa xmm3,xmm104284 DB 102,65,15,58,15,221,44285 paddd xmm11,xmm34286 DB 15,56,203,2024287 movdqa xmm0,XMMWORD[((128-128))+rax]4288 paddd xmm0,xmm104289 DB 69,15,56,205,2184290 DB 69,15,56,204,2294291 movups xmm5,XMMWORD[48+rcx]4292 aesenc xmm6,xmm44293 DB 15,56,203,2094294 pshufd xmm0,xmm0,0x0e4295 movdqa xmm3,xmm114296 DB 102,65,15,58,15,218,44297 paddd xmm12,xmm34298 cmp r11d,114299 jb NEAR $L$aesenclast14300 movups xmm4,XMMWORD[64+rcx]4301 aesenc xmm6,xmm54302 movups xmm5,XMMWORD[80+rcx]4303 aesenc xmm6,xmm44304 je NEAR $L$aesenclast14305 movups xmm4,XMMWORD[96+rcx]4306 aesenc xmm6,xmm54307 movups xmm5,XMMWORD[112+rcx]4308 aesenc xmm6,xmm44309 $L$aesenclast1:4310 aesenclast xmm6,xmm54311 movups xmm4,XMMWORD[((16-112))+rcx]4312 nop4313 DB 15,56,203,2024314 movups xmm14,XMMWORD[16+rdi]4315 xorps xmm14,xmm154316 movups XMMWORD[rdi*1+rsi],xmm64317 xorps xmm6,xmm144318 movups xmm5,XMMWORD[((-80))+rcx]4319 aesenc xmm6,xmm44320 movdqa xmm0,XMMWORD[((160-128))+rax]4321 paddd xmm0,xmm114322 DB 69,15,56,205,2274323 DB 69,15,56,204,2344324 movups xmm4,XMMWORD[((-64))+rcx]4325 aesenc xmm6,xmm54326 DB 15,56,203,2094327 pshufd xmm0,xmm0,0x0e4328 movdqa xmm3,xmm124329 DB 102,65,15,58,15,219,44330 paddd xmm13,xmm34331 movups xmm5,XMMWORD[((-48))+rcx]4332 aesenc xmm6,xmm44333 DB 15,56,203,2024334 movdqa xmm0,XMMWORD[((192-128))+rax]4335 paddd xmm0,xmm124336 DB 69,15,56,205,2364337 DB 69,15,56,204,2114338 movups xmm4,XMMWORD[((-32))+rcx]4339 aesenc xmm6,xmm54340 DB 15,56,203,2094341 pshufd xmm0,xmm0,0x0e4342 movdqa xmm3,xmm134343 DB 102,65,15,58,15,220,44344 paddd xmm10,xmm34345 movups xmm5,XMMWORD[((-16))+rcx]4346 aesenc xmm6,xmm44347 DB 15,56,203,2024348 movdqa xmm0,XMMWORD[((224-128))+rax]4349 paddd xmm0,xmm134350 DB 69,15,56,205,2134351 DB 69,15,56,204,2204352 movups xmm4,XMMWORD[rcx]4353 aesenc xmm6,xmm54354 DB 15,56,203,2094355 pshufd xmm0,xmm0,0x0e4356 movdqa xmm3,xmm104357 DB 102,65,15,58,15,221,44358 paddd xmm11,xmm34359 movups xmm5,XMMWORD[16+rcx]4360 aesenc xmm6,xmm44361 DB 15,56,203,2024362 movdqa xmm0,XMMWORD[((256-128))+rax]4363 paddd xmm0,xmm104364 DB 69,15,56,205,2184365 DB 69,15,56,204,2294366 movups xmm4,XMMWORD[32+rcx]4367 aesenc xmm6,xmm54368 DB 15,56,203,2094369 pshufd xmm0,xmm0,0x0e4370 movdqa xmm3,xmm114371 DB 102,65,15,58,15,218,44372 paddd xmm12,xmm34373 movups xmm5,XMMWORD[48+rcx]4374 aesenc xmm6,xmm44375 cmp r11d,114376 jb NEAR $L$aesenclast24377 movups xmm4,XMMWORD[64+rcx]4378 aesenc xmm6,xmm54379 movups xmm5,XMMWORD[80+rcx]4380 aesenc xmm6,xmm44381 je NEAR $L$aesenclast24382 movups xmm4,XMMWORD[96+rcx]4383 aesenc xmm6,xmm54384 movups xmm5,XMMWORD[112+rcx]4385 aesenc xmm6,xmm44386 $L$aesenclast2:4387 aesenclast xmm6,xmm54388 movups xmm4,XMMWORD[((16-112))+rcx]4389 nop4390 DB 15,56,203,2024391 movups xmm14,XMMWORD[32+rdi]4392 xorps xmm14,xmm154393 movups XMMWORD[16+rdi*1+rsi],xmm64394 xorps xmm6,xmm144395 movups xmm5,XMMWORD[((-80))+rcx]4396 aesenc xmm6,xmm44397 movdqa xmm0,XMMWORD[((288-128))+rax]4398 paddd xmm0,xmm114399 DB 69,15,56,205,2274400 DB 69,15,56,204,2344401 movups xmm4,XMMWORD[((-64))+rcx]4402 aesenc xmm6,xmm54403 DB 15,56,203,2094404 pshufd xmm0,xmm0,0x0e4405 movdqa xmm3,xmm124406 DB 102,65,15,58,15,219,44407 paddd xmm13,xmm34408 movups xmm5,XMMWORD[((-48))+rcx]4409 aesenc xmm6,xmm44410 DB 15,56,203,2024411 movdqa xmm0,XMMWORD[((320-128))+rax]4412 paddd xmm0,xmm124413 DB 69,15,56,205,2364414 DB 69,15,56,204,2114415 movups xmm4,XMMWORD[((-32))+rcx]4416 aesenc xmm6,xmm54417 DB 15,56,203,2094418 pshufd xmm0,xmm0,0x0e4419 movdqa xmm3,xmm134420 DB 102,65,15,58,15,220,44421 paddd xmm10,xmm34422 movups xmm5,XMMWORD[((-16))+rcx]4423 aesenc xmm6,xmm44424 DB 15,56,203,2024425 movdqa xmm0,XMMWORD[((352-128))+rax]4426 paddd xmm0,xmm134427 DB 69,15,56,205,2134428 DB 69,15,56,204,2204429 movups xmm4,XMMWORD[rcx]4430 aesenc xmm6,xmm54431 DB 15,56,203,2094432 pshufd xmm0,xmm0,0x0e4433 movdqa xmm3,xmm104434 DB 102,65,15,58,15,221,44435 paddd xmm11,xmm34436 movups xmm5,XMMWORD[16+rcx]4437 aesenc xmm6,xmm44438 DB 15,56,203,2024439 movdqa xmm0,XMMWORD[((384-128))+rax]4440 paddd xmm0,xmm104441 DB 69,15,56,205,2184442 DB 69,15,56,204,2294443 movups xmm4,XMMWORD[32+rcx]4444 aesenc xmm6,xmm54445 DB 15,56,203,2094446 pshufd xmm0,xmm0,0x0e4447 movdqa xmm3,xmm114448 DB 102,65,15,58,15,218,44449 paddd xmm12,xmm34450 movups xmm5,XMMWORD[48+rcx]4451 aesenc xmm6,xmm44452 DB 15,56,203,2024453 movdqa xmm0,XMMWORD[((416-128))+rax]4454 paddd xmm0,xmm114455 DB 69,15,56,205,2274456 DB 69,15,56,204,2344457 cmp r11d,114458 jb NEAR $L$aesenclast34459 movups xmm4,XMMWORD[64+rcx]4460 aesenc xmm6,xmm54461 movups xmm5,XMMWORD[80+rcx]4462 aesenc xmm6,xmm44463 je NEAR $L$aesenclast34464 movups xmm4,XMMWORD[96+rcx]4465 aesenc xmm6,xmm54466 movups xmm5,XMMWORD[112+rcx]4467 aesenc xmm6,xmm44468 $L$aesenclast3:4469 aesenclast xmm6,xmm54470 movups xmm4,XMMWORD[((16-112))+rcx]4471 nop4472 DB 15,56,203,2094473 pshufd xmm0,xmm0,0x0e4474 movdqa xmm3,xmm124475 DB 102,65,15,58,15,219,44476 paddd xmm13,xmm34477 movups xmm14,XMMWORD[48+rdi]4478 xorps xmm14,xmm154479 movups XMMWORD[32+rdi*1+rsi],xmm64480 xorps xmm6,xmm144481 movups xmm5,XMMWORD[((-80))+rcx]4482 aesenc xmm6,xmm44483 movups xmm4,XMMWORD[((-64))+rcx]4484 aesenc xmm6,xmm54485 DB 15,56,203,2024486 4487 movdqa xmm0,XMMWORD[((448-128))+rax]4488 paddd xmm0,xmm124489 DB 69,15,56,205,2364490 movdqa xmm3,xmm74491 movups xmm5,XMMWORD[((-48))+rcx]4492 aesenc xmm6,xmm44493 DB 15,56,203,2094494 pshufd xmm0,xmm0,0x0e4495 movups xmm4,XMMWORD[((-32))+rcx]4496 aesenc xmm6,xmm54497 DB 15,56,203,2024498 4499 movdqa xmm0,XMMWORD[((480-128))+rax]4500 paddd xmm0,xmm134501 movups xmm5,XMMWORD[((-16))+rcx]4502 aesenc xmm6,xmm44503 movups xmm4,XMMWORD[rcx]4504 aesenc xmm6,xmm54505 DB 15,56,203,2094506 pshufd xmm0,xmm0,0x0e4507 movups xmm5,XMMWORD[16+rcx]4508 aesenc xmm6,xmm44509 DB 15,56,203,2024510 4511 movups xmm4,XMMWORD[32+rcx]4512 aesenc xmm6,xmm54513 movups xmm5,XMMWORD[48+rcx]4514 aesenc xmm6,xmm44515 cmp r11d,114516 jb NEAR $L$aesenclast44517 movups xmm4,XMMWORD[64+rcx]4518 aesenc xmm6,xmm54519 movups xmm5,XMMWORD[80+rcx]4520 aesenc xmm6,xmm44521 je NEAR $L$aesenclast44522 movups xmm4,XMMWORD[96+rcx]4523 aesenc xmm6,xmm54524 movups xmm5,XMMWORD[112+rcx]4525 aesenc xmm6,xmm44526 $L$aesenclast4:4527 aesenclast xmm6,xmm54528 movups xmm4,XMMWORD[((16-112))+rcx]4529 nop4530 4531 paddd xmm2,xmm94532 paddd xmm1,xmm84533 4534 dec rdx4535 movups XMMWORD[48+rdi*1+rsi],xmm64536 lea rdi,[64+rdi]4537 jnz NEAR $L$oop_shaext4538 4539 pshufd xmm2,xmm2,0xb14540 pshufd xmm3,xmm1,0x1b4541 pshufd xmm1,xmm1,0xb14542 punpckhqdq xmm1,xmm24543 DB 102,15,58,15,211,84544 4545 movups XMMWORD[r8],xmm64546 movdqu XMMWORD[r9],xmm14547 movdqu XMMWORD[16+r9],xmm24548 movaps xmm6,XMMWORD[rsp]4549 movaps xmm7,XMMWORD[16+rsp]4550 movaps xmm8,XMMWORD[32+rsp]4551 movaps xmm9,XMMWORD[48+rsp]4552 movaps xmm10,XMMWORD[64+rsp]4553 movaps xmm11,XMMWORD[80+rsp]4554 movaps xmm12,XMMWORD[96+rsp]4555 movaps xmm13,XMMWORD[112+rsp]4556 movaps xmm14,XMMWORD[128+rsp]4557 movaps xmm15,XMMWORD[144+rsp]4558 lea rsp,[((8+160))+rsp]4559 $L$epilogue_shaext:4560 mov rdi,QWORD[8+rsp] ;WIN64 epilogue4561 mov rsi,QWORD[16+rsp]4562 DB 0F3h,0C3h ;repret4563 4564 $L$SEH_end_aesni_cbc_sha256_enc_shaext:4565 EXTERN __imp_RtlVirtualUnwind4566 4567 ALIGN 164568 se_handler:4569 push rsi4570 push rdi4571 push rbx4572 push rbp4573 push r124574 push r134575 push r144576 push r154577 pushfq4578 sub rsp,644579 4580 mov rax,QWORD[120+r8]4581 mov rbx,QWORD[248+r8]4582 4583 mov rsi,QWORD[8+r9]4584 mov r11,QWORD[56+r9]4585 4586 mov r10d,DWORD[r11]4587 lea r10,[r10*1+rsi]4588 cmp rbx,r104589 jb NEAR $L$in_prologue4590 4591 mov rax,QWORD[152+r8]4592 4593 mov r10d,DWORD[4+r11]4594 lea r10,[r10*1+rsi]4595 cmp rbx,r104596 jae NEAR $L$in_prologue4597 lea r10,[aesni_cbc_sha256_enc_shaext]4598 cmp rbx,r104599 jb NEAR $L$not_in_shaext4600 4601 lea rsi,[rax]4602 lea rdi,[512+r8]4603 mov ecx,204604 DD 0xa548f3fc4605 lea rax,[168+rax]4606 jmp NEAR $L$in_prologue4607 $L$not_in_shaext:4608 lea r10,[$L$avx2_shortcut]4609 cmp rbx,r104610 jb NEAR $L$not_in_avx24611 4612 and rax,-256*44613 add rax,4484614 $L$not_in_avx2:4615 mov rsi,rax4616 mov rax,QWORD[((64+56))+rax]4617 4618 mov rbx,QWORD[((-8))+rax]4619 mov rbp,QWORD[((-16))+rax]4620 mov r12,QWORD[((-24))+rax]4621 mov r13,QWORD[((-32))+rax]4622 mov r14,QWORD[((-40))+rax]4623 mov r15,QWORD[((-48))+rax]4624 mov QWORD[144+r8],rbx4625 mov QWORD[160+r8],rbp4626 mov QWORD[216+r8],r124627 mov QWORD[224+r8],r134628 mov QWORD[232+r8],r144629 mov QWORD[240+r8],r154630 4631 lea rsi,[((64+64))+rsi]4632 lea rdi,[512+r8]4633 mov ecx,204634 DD 0xa548f3fc4635 4636 $L$in_prologue:4637 mov rdi,QWORD[8+rax]4638 mov rsi,QWORD[16+rax]4639 mov QWORD[152+r8],rax4640 mov QWORD[168+r8],rsi4641 mov QWORD[176+r8],rdi4642 4643 mov rdi,QWORD[40+r9]4644 mov rsi,r84645 mov ecx,1544646 DD 0xa548f3fc4647 4648 mov rsi,r94649 xor rcx,rcx4650 mov rdx,QWORD[8+rsi]4651 mov r8,QWORD[rsi]4652 mov r9,QWORD[16+rsi]4653 mov r10,QWORD[40+rsi]4654 lea r11,[56+rsi]4655 lea r12,[24+rsi]4656 mov QWORD[32+rsp],r104657 mov QWORD[40+rsp],r114658 mov QWORD[48+rsp],r124659 mov QWORD[56+rsp],rcx4660 call QWORD[__imp_RtlVirtualUnwind]4661 4662 mov eax,14663 add rsp,644664 popfq4665 pop r154666 pop r144667 pop r134668 pop r124669 pop rbp4670 pop rbx4671 pop rdi4672 pop rsi4673 DB 0F3h,0C3h ;repret4674 4675 4676 section .pdata rdata align=44677 DD $L$SEH_begin_aesni_cbc_sha256_enc_xop wrt ..imagebase4678 DD $L$SEH_end_aesni_cbc_sha256_enc_xop wrt ..imagebase4679 DD $L$SEH_info_aesni_cbc_sha256_enc_xop wrt ..imagebase4680 4681 DD $L$SEH_begin_aesni_cbc_sha256_enc_avx wrt ..imagebase4682 DD $L$SEH_end_aesni_cbc_sha256_enc_avx wrt ..imagebase4683 DD $L$SEH_info_aesni_cbc_sha256_enc_avx wrt ..imagebase4684 DD $L$SEH_begin_aesni_cbc_sha256_enc_avx2 wrt ..imagebase4685 DD $L$SEH_end_aesni_cbc_sha256_enc_avx2 wrt ..imagebase4686 DD $L$SEH_info_aesni_cbc_sha256_enc_avx2 wrt ..imagebase4687 DD $L$SEH_begin_aesni_cbc_sha256_enc_shaext wrt ..imagebase4688 DD $L$SEH_end_aesni_cbc_sha256_enc_shaext wrt ..imagebase4689 DD $L$SEH_info_aesni_cbc_sha256_enc_shaext wrt ..imagebase4690 section .xdata rdata align=84691 ALIGN 84692 $L$SEH_info_aesni_cbc_sha256_enc_xop:4693 DB 9,0,0,04694 DD se_handler wrt ..imagebase4695 DD $L$prologue_xop wrt ..imagebase,$L$epilogue_xop wrt ..imagebase4696 4697 $L$SEH_info_aesni_cbc_sha256_enc_avx:4698 DB 9,0,0,04699 DD se_handler wrt ..imagebase4700 DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase4701 $L$SEH_info_aesni_cbc_sha256_enc_avx2:4702 DB 9,0,0,04703 DD se_handler wrt ..imagebase4704 DD $L$prologue_avx2 wrt ..imagebase,$L$epilogue_avx2 wrt ..imagebase4705 $L$SEH_info_aesni_cbc_sha256_enc_shaext:4706 DB 9,0,0,04707 DD se_handler wrt ..imagebase4708 DD $L$prologue_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase
Note:
See TracChangeset
for help on using the changeset viewer.