default rel %define XMMWORD %define YMMWORD %define ZMMWORD section .text code align=64 EXTERN OPENSSL_ia32cap_P global sha256_multi_block ALIGN 32 sha256_multi_block: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp $L$SEH_begin_sha256_multi_block: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,QWORD[((OPENSSL_ia32cap_P+4))] bt rcx,61 jc NEAR _shaext_shortcut mov rax,rsp push rbx push rbp lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 movaps XMMWORD[32+rsp],xmm8 movaps XMMWORD[48+rsp],xmm9 movaps XMMWORD[(-120)+rax],xmm10 movaps XMMWORD[(-104)+rax],xmm11 movaps XMMWORD[(-88)+rax],xmm12 movaps XMMWORD[(-72)+rax],xmm13 movaps XMMWORD[(-56)+rax],xmm14 movaps XMMWORD[(-40)+rax],xmm15 sub rsp,288 and rsp,-256 mov QWORD[272+rsp],rax $L$body: lea rbp,[((K256+128))] lea rbx,[256+rsp] lea rdi,[128+rdi] $L$oop_grande: mov DWORD[280+rsp],edx xor edx,edx mov r8,QWORD[rsi] mov ecx,DWORD[8+rsi] cmp ecx,edx cmovg edx,ecx test ecx,ecx mov DWORD[rbx],ecx cmovle r8,rbp mov r9,QWORD[16+rsi] mov ecx,DWORD[24+rsi] cmp ecx,edx cmovg edx,ecx test ecx,ecx mov DWORD[4+rbx],ecx cmovle r9,rbp mov r10,QWORD[32+rsi] mov ecx,DWORD[40+rsi] cmp ecx,edx cmovg edx,ecx test ecx,ecx mov DWORD[8+rbx],ecx cmovle r10,rbp mov r11,QWORD[48+rsi] mov ecx,DWORD[56+rsi] cmp ecx,edx cmovg edx,ecx test ecx,ecx mov DWORD[12+rbx],ecx cmovle r11,rbp test edx,edx jz NEAR $L$done movdqu xmm8,XMMWORD[((0-128))+rdi] lea rax,[128+rsp] movdqu xmm9,XMMWORD[((32-128))+rdi] movdqu xmm10,XMMWORD[((64-128))+rdi] movdqu xmm11,XMMWORD[((96-128))+rdi] movdqu xmm12,XMMWORD[((128-128))+rdi] movdqu xmm13,XMMWORD[((160-128))+rdi] movdqu xmm14,XMMWORD[((192-128))+rdi] movdqu xmm15,XMMWORD[((224-128))+rdi] movdqu xmm6,XMMWORD[$L$pbswap] jmp NEAR $L$oop ALIGN 32 $L$oop: movdqa xmm4,xmm10 pxor xmm4,xmm9 movd xmm5,DWORD[r8] movd xmm0,DWORD[r9] movd xmm1,DWORD[r10] movd xmm2,DWORD[r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm12 DB 102,15,56,0,238 movdqa xmm2,xmm12 psrld xmm7,6 movdqa xmm1,xmm12 pslld xmm2,7 movdqa XMMWORD[(0-128)+rax],xmm5 paddd xmm5,xmm15 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-128))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm12 pxor xmm7,xmm2 movdqa xmm3,xmm12 pslld xmm2,26-21 pandn xmm0,xmm14 pand xmm3,xmm13 pxor xmm7,xmm1 movdqa xmm1,xmm8 pxor xmm7,xmm2 movdqa xmm2,xmm8 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm9 movdqa xmm7,xmm8 pslld xmm2,10 pxor xmm3,xmm8 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm15,xmm9 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm15,xmm4 paddd xmm11,xmm5 pxor xmm7,xmm2 paddd xmm15,xmm5 paddd xmm15,xmm7 movd xmm5,DWORD[4+r8] movd xmm0,DWORD[4+r9] movd xmm1,DWORD[4+r10] movd xmm2,DWORD[4+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm11 movdqa xmm2,xmm11 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm11 pslld xmm2,7 movdqa XMMWORD[(16-128)+rax],xmm5 paddd xmm5,xmm14 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-96))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm11 pxor xmm7,xmm2 movdqa xmm4,xmm11 pslld xmm2,26-21 pandn xmm0,xmm13 pand xmm4,xmm12 pxor xmm7,xmm1 movdqa xmm1,xmm15 pxor xmm7,xmm2 movdqa xmm2,xmm15 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm8 movdqa xmm7,xmm15 pslld xmm2,10 pxor xmm4,xmm15 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm14,xmm8 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm14,xmm3 paddd xmm10,xmm5 pxor xmm7,xmm2 paddd xmm14,xmm5 paddd xmm14,xmm7 movd xmm5,DWORD[8+r8] movd xmm0,DWORD[8+r9] movd xmm1,DWORD[8+r10] movd xmm2,DWORD[8+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm10 DB 102,15,56,0,238 movdqa xmm2,xmm10 psrld xmm7,6 movdqa xmm1,xmm10 pslld xmm2,7 movdqa XMMWORD[(32-128)+rax],xmm5 paddd xmm5,xmm13 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-64))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm10 pxor xmm7,xmm2 movdqa xmm3,xmm10 pslld xmm2,26-21 pandn xmm0,xmm12 pand xmm3,xmm11 pxor xmm7,xmm1 movdqa xmm1,xmm14 pxor xmm7,xmm2 movdqa xmm2,xmm14 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm15 movdqa xmm7,xmm14 pslld xmm2,10 pxor xmm3,xmm14 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm13,xmm15 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm13,xmm4 paddd xmm9,xmm5 pxor xmm7,xmm2 paddd xmm13,xmm5 paddd xmm13,xmm7 movd xmm5,DWORD[12+r8] movd xmm0,DWORD[12+r9] movd xmm1,DWORD[12+r10] movd xmm2,DWORD[12+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm9 movdqa xmm2,xmm9 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm9 pslld xmm2,7 movdqa XMMWORD[(48-128)+rax],xmm5 paddd xmm5,xmm12 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-32))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm9 pxor xmm7,xmm2 movdqa xmm4,xmm9 pslld xmm2,26-21 pandn xmm0,xmm11 pand xmm4,xmm10 pxor xmm7,xmm1 movdqa xmm1,xmm13 pxor xmm7,xmm2 movdqa xmm2,xmm13 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm14 movdqa xmm7,xmm13 pslld xmm2,10 pxor xmm4,xmm13 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm12,xmm14 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm12,xmm3 paddd xmm8,xmm5 pxor xmm7,xmm2 paddd xmm12,xmm5 paddd xmm12,xmm7 movd xmm5,DWORD[16+r8] movd xmm0,DWORD[16+r9] movd xmm1,DWORD[16+r10] movd xmm2,DWORD[16+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm8 DB 102,15,56,0,238 movdqa xmm2,xmm8 psrld xmm7,6 movdqa xmm1,xmm8 pslld xmm2,7 movdqa XMMWORD[(64-128)+rax],xmm5 paddd xmm5,xmm11 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm8 pxor xmm7,xmm2 movdqa xmm3,xmm8 pslld xmm2,26-21 pandn xmm0,xmm10 pand xmm3,xmm9 pxor xmm7,xmm1 movdqa xmm1,xmm12 pxor xmm7,xmm2 movdqa xmm2,xmm12 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm13 movdqa xmm7,xmm12 pslld xmm2,10 pxor xmm3,xmm12 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm11,xmm13 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm11,xmm4 paddd xmm15,xmm5 pxor xmm7,xmm2 paddd xmm11,xmm5 paddd xmm11,xmm7 movd xmm5,DWORD[20+r8] movd xmm0,DWORD[20+r9] movd xmm1,DWORD[20+r10] movd xmm2,DWORD[20+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm15 movdqa xmm2,xmm15 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm15 pslld xmm2,7 movdqa XMMWORD[(80-128)+rax],xmm5 paddd xmm5,xmm10 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[32+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm15 pxor xmm7,xmm2 movdqa xmm4,xmm15 pslld xmm2,26-21 pandn xmm0,xmm9 pand xmm4,xmm8 pxor xmm7,xmm1 movdqa xmm1,xmm11 pxor xmm7,xmm2 movdqa xmm2,xmm11 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm12 movdqa xmm7,xmm11 pslld xmm2,10 pxor xmm4,xmm11 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm10,xmm12 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm10,xmm3 paddd xmm14,xmm5 pxor xmm7,xmm2 paddd xmm10,xmm5 paddd xmm10,xmm7 movd xmm5,DWORD[24+r8] movd xmm0,DWORD[24+r9] movd xmm1,DWORD[24+r10] movd xmm2,DWORD[24+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm14 DB 102,15,56,0,238 movdqa xmm2,xmm14 psrld xmm7,6 movdqa xmm1,xmm14 pslld xmm2,7 movdqa XMMWORD[(96-128)+rax],xmm5 paddd xmm5,xmm9 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[64+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm14 pxor xmm7,xmm2 movdqa xmm3,xmm14 pslld xmm2,26-21 pandn xmm0,xmm8 pand xmm3,xmm15 pxor xmm7,xmm1 movdqa xmm1,xmm10 pxor xmm7,xmm2 movdqa xmm2,xmm10 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm11 movdqa xmm7,xmm10 pslld xmm2,10 pxor xmm3,xmm10 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm9,xmm11 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm9,xmm4 paddd xmm13,xmm5 pxor xmm7,xmm2 paddd xmm9,xmm5 paddd xmm9,xmm7 movd xmm5,DWORD[28+r8] movd xmm0,DWORD[28+r9] movd xmm1,DWORD[28+r10] movd xmm2,DWORD[28+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm13 movdqa xmm2,xmm13 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm13 pslld xmm2,7 movdqa XMMWORD[(112-128)+rax],xmm5 paddd xmm5,xmm8 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[96+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm13 pxor xmm7,xmm2 movdqa xmm4,xmm13 pslld xmm2,26-21 pandn xmm0,xmm15 pand xmm4,xmm14 pxor xmm7,xmm1 movdqa xmm1,xmm9 pxor xmm7,xmm2 movdqa xmm2,xmm9 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm10 movdqa xmm7,xmm9 pslld xmm2,10 pxor xmm4,xmm9 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm8,xmm10 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm8,xmm3 paddd xmm12,xmm5 pxor xmm7,xmm2 paddd xmm8,xmm5 paddd xmm8,xmm7 lea rbp,[256+rbp] movd xmm5,DWORD[32+r8] movd xmm0,DWORD[32+r9] movd xmm1,DWORD[32+r10] movd xmm2,DWORD[32+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm12 DB 102,15,56,0,238 movdqa xmm2,xmm12 psrld xmm7,6 movdqa xmm1,xmm12 pslld xmm2,7 movdqa XMMWORD[(128-128)+rax],xmm5 paddd xmm5,xmm15 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-128))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm12 pxor xmm7,xmm2 movdqa xmm3,xmm12 pslld xmm2,26-21 pandn xmm0,xmm14 pand xmm3,xmm13 pxor xmm7,xmm1 movdqa xmm1,xmm8 pxor xmm7,xmm2 movdqa xmm2,xmm8 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm9 movdqa xmm7,xmm8 pslld xmm2,10 pxor xmm3,xmm8 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm15,xmm9 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm15,xmm4 paddd xmm11,xmm5 pxor xmm7,xmm2 paddd xmm15,xmm5 paddd xmm15,xmm7 movd xmm5,DWORD[36+r8] movd xmm0,DWORD[36+r9] movd xmm1,DWORD[36+r10] movd xmm2,DWORD[36+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm11 movdqa xmm2,xmm11 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm11 pslld xmm2,7 movdqa XMMWORD[(144-128)+rax],xmm5 paddd xmm5,xmm14 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-96))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm11 pxor xmm7,xmm2 movdqa xmm4,xmm11 pslld xmm2,26-21 pandn xmm0,xmm13 pand xmm4,xmm12 pxor xmm7,xmm1 movdqa xmm1,xmm15 pxor xmm7,xmm2 movdqa xmm2,xmm15 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm8 movdqa xmm7,xmm15 pslld xmm2,10 pxor xmm4,xmm15 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm14,xmm8 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm14,xmm3 paddd xmm10,xmm5 pxor xmm7,xmm2 paddd xmm14,xmm5 paddd xmm14,xmm7 movd xmm5,DWORD[40+r8] movd xmm0,DWORD[40+r9] movd xmm1,DWORD[40+r10] movd xmm2,DWORD[40+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm10 DB 102,15,56,0,238 movdqa xmm2,xmm10 psrld xmm7,6 movdqa xmm1,xmm10 pslld xmm2,7 movdqa XMMWORD[(160-128)+rax],xmm5 paddd xmm5,xmm13 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-64))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm10 pxor xmm7,xmm2 movdqa xmm3,xmm10 pslld xmm2,26-21 pandn xmm0,xmm12 pand xmm3,xmm11 pxor xmm7,xmm1 movdqa xmm1,xmm14 pxor xmm7,xmm2 movdqa xmm2,xmm14 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm15 movdqa xmm7,xmm14 pslld xmm2,10 pxor xmm3,xmm14 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm13,xmm15 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm13,xmm4 paddd xmm9,xmm5 pxor xmm7,xmm2 paddd xmm13,xmm5 paddd xmm13,xmm7 movd xmm5,DWORD[44+r8] movd xmm0,DWORD[44+r9] movd xmm1,DWORD[44+r10] movd xmm2,DWORD[44+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm9 movdqa xmm2,xmm9 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm9 pslld xmm2,7 movdqa XMMWORD[(176-128)+rax],xmm5 paddd xmm5,xmm12 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-32))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm9 pxor xmm7,xmm2 movdqa xmm4,xmm9 pslld xmm2,26-21 pandn xmm0,xmm11 pand xmm4,xmm10 pxor xmm7,xmm1 movdqa xmm1,xmm13 pxor xmm7,xmm2 movdqa xmm2,xmm13 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm14 movdqa xmm7,xmm13 pslld xmm2,10 pxor xmm4,xmm13 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm12,xmm14 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm12,xmm3 paddd xmm8,xmm5 pxor xmm7,xmm2 paddd xmm12,xmm5 paddd xmm12,xmm7 movd xmm5,DWORD[48+r8] movd xmm0,DWORD[48+r9] movd xmm1,DWORD[48+r10] movd xmm2,DWORD[48+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm8 DB 102,15,56,0,238 movdqa xmm2,xmm8 psrld xmm7,6 movdqa xmm1,xmm8 pslld xmm2,7 movdqa XMMWORD[(192-128)+rax],xmm5 paddd xmm5,xmm11 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm8 pxor xmm7,xmm2 movdqa xmm3,xmm8 pslld xmm2,26-21 pandn xmm0,xmm10 pand xmm3,xmm9 pxor xmm7,xmm1 movdqa xmm1,xmm12 pxor xmm7,xmm2 movdqa xmm2,xmm12 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm13 movdqa xmm7,xmm12 pslld xmm2,10 pxor xmm3,xmm12 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm11,xmm13 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm11,xmm4 paddd xmm15,xmm5 pxor xmm7,xmm2 paddd xmm11,xmm5 paddd xmm11,xmm7 movd xmm5,DWORD[52+r8] movd xmm0,DWORD[52+r9] movd xmm1,DWORD[52+r10] movd xmm2,DWORD[52+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm15 movdqa xmm2,xmm15 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm15 pslld xmm2,7 movdqa XMMWORD[(208-128)+rax],xmm5 paddd xmm5,xmm10 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[32+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm15 pxor xmm7,xmm2 movdqa xmm4,xmm15 pslld xmm2,26-21 pandn xmm0,xmm9 pand xmm4,xmm8 pxor xmm7,xmm1 movdqa xmm1,xmm11 pxor xmm7,xmm2 movdqa xmm2,xmm11 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm12 movdqa xmm7,xmm11 pslld xmm2,10 pxor xmm4,xmm11 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm10,xmm12 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm10,xmm3 paddd xmm14,xmm5 pxor xmm7,xmm2 paddd xmm10,xmm5 paddd xmm10,xmm7 movd xmm5,DWORD[56+r8] movd xmm0,DWORD[56+r9] movd xmm1,DWORD[56+r10] movd xmm2,DWORD[56+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm14 DB 102,15,56,0,238 movdqa xmm2,xmm14 psrld xmm7,6 movdqa xmm1,xmm14 pslld xmm2,7 movdqa XMMWORD[(224-128)+rax],xmm5 paddd xmm5,xmm9 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[64+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm14 pxor xmm7,xmm2 movdqa xmm3,xmm14 pslld xmm2,26-21 pandn xmm0,xmm8 pand xmm3,xmm15 pxor xmm7,xmm1 movdqa xmm1,xmm10 pxor xmm7,xmm2 movdqa xmm2,xmm10 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm11 movdqa xmm7,xmm10 pslld xmm2,10 pxor xmm3,xmm10 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm9,xmm11 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm9,xmm4 paddd xmm13,xmm5 pxor xmm7,xmm2 paddd xmm9,xmm5 paddd xmm9,xmm7 movd xmm5,DWORD[60+r8] lea r8,[64+r8] movd xmm0,DWORD[60+r9] lea r9,[64+r9] movd xmm1,DWORD[60+r10] lea r10,[64+r10] movd xmm2,DWORD[60+r11] lea r11,[64+r11] punpckldq xmm5,xmm1 punpckldq xmm0,xmm2 punpckldq xmm5,xmm0 movdqa xmm7,xmm13 movdqa xmm2,xmm13 DB 102,15,56,0,238 psrld xmm7,6 movdqa xmm1,xmm13 pslld xmm2,7 movdqa XMMWORD[(240-128)+rax],xmm5 paddd xmm5,xmm8 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[96+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm13 prefetcht0 [63+r8] pxor xmm7,xmm2 movdqa xmm4,xmm13 pslld xmm2,26-21 pandn xmm0,xmm15 pand xmm4,xmm14 pxor xmm7,xmm1 prefetcht0 [63+r9] movdqa xmm1,xmm9 pxor xmm7,xmm2 movdqa xmm2,xmm9 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm10 movdqa xmm7,xmm9 pslld xmm2,10 pxor xmm4,xmm9 prefetcht0 [63+r10] psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 prefetcht0 [63+r11] psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm8,xmm10 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm8,xmm3 paddd xmm12,xmm5 pxor xmm7,xmm2 paddd xmm8,xmm5 paddd xmm8,xmm7 lea rbp,[256+rbp] movdqu xmm5,XMMWORD[((0-128))+rax] mov ecx,3 jmp NEAR $L$oop_16_xx ALIGN 32 $L$oop_16_xx: movdqa xmm6,XMMWORD[((16-128))+rax] paddd xmm5,XMMWORD[((144-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((224-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm12 movdqa xmm2,xmm12 psrld xmm7,6 movdqa xmm1,xmm12 pslld xmm2,7 movdqa XMMWORD[(0-128)+rax],xmm5 paddd xmm5,xmm15 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-128))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm12 pxor xmm7,xmm2 movdqa xmm3,xmm12 pslld xmm2,26-21 pandn xmm0,xmm14 pand xmm3,xmm13 pxor xmm7,xmm1 movdqa xmm1,xmm8 pxor xmm7,xmm2 movdqa xmm2,xmm8 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm9 movdqa xmm7,xmm8 pslld xmm2,10 pxor xmm3,xmm8 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm15,xmm9 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm15,xmm4 paddd xmm11,xmm5 pxor xmm7,xmm2 paddd xmm15,xmm5 paddd xmm15,xmm7 movdqa xmm5,XMMWORD[((32-128))+rax] paddd xmm6,XMMWORD[((160-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((240-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm11 movdqa xmm2,xmm11 psrld xmm7,6 movdqa xmm1,xmm11 pslld xmm2,7 movdqa XMMWORD[(16-128)+rax],xmm6 paddd xmm6,xmm14 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[((-96))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm11 pxor xmm7,xmm2 movdqa xmm4,xmm11 pslld xmm2,26-21 pandn xmm0,xmm13 pand xmm4,xmm12 pxor xmm7,xmm1 movdqa xmm1,xmm15 pxor xmm7,xmm2 movdqa xmm2,xmm15 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm8 movdqa xmm7,xmm15 pslld xmm2,10 pxor xmm4,xmm15 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm14,xmm8 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm14,xmm3 paddd xmm10,xmm6 pxor xmm7,xmm2 paddd xmm14,xmm6 paddd xmm14,xmm7 movdqa xmm6,XMMWORD[((48-128))+rax] paddd xmm5,XMMWORD[((176-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((0-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm10 movdqa xmm2,xmm10 psrld xmm7,6 movdqa xmm1,xmm10 pslld xmm2,7 movdqa XMMWORD[(32-128)+rax],xmm5 paddd xmm5,xmm13 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-64))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm10 pxor xmm7,xmm2 movdqa xmm3,xmm10 pslld xmm2,26-21 pandn xmm0,xmm12 pand xmm3,xmm11 pxor xmm7,xmm1 movdqa xmm1,xmm14 pxor xmm7,xmm2 movdqa xmm2,xmm14 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm15 movdqa xmm7,xmm14 pslld xmm2,10 pxor xmm3,xmm14 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm13,xmm15 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm13,xmm4 paddd xmm9,xmm5 pxor xmm7,xmm2 paddd xmm13,xmm5 paddd xmm13,xmm7 movdqa xmm5,XMMWORD[((64-128))+rax] paddd xmm6,XMMWORD[((192-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((16-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm9 movdqa xmm2,xmm9 psrld xmm7,6 movdqa xmm1,xmm9 pslld xmm2,7 movdqa XMMWORD[(48-128)+rax],xmm6 paddd xmm6,xmm12 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[((-32))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm9 pxor xmm7,xmm2 movdqa xmm4,xmm9 pslld xmm2,26-21 pandn xmm0,xmm11 pand xmm4,xmm10 pxor xmm7,xmm1 movdqa xmm1,xmm13 pxor xmm7,xmm2 movdqa xmm2,xmm13 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm14 movdqa xmm7,xmm13 pslld xmm2,10 pxor xmm4,xmm13 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm12,xmm14 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm12,xmm3 paddd xmm8,xmm6 pxor xmm7,xmm2 paddd xmm12,xmm6 paddd xmm12,xmm7 movdqa xmm6,XMMWORD[((80-128))+rax] paddd xmm5,XMMWORD[((208-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((32-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm8 movdqa xmm2,xmm8 psrld xmm7,6 movdqa xmm1,xmm8 pslld xmm2,7 movdqa XMMWORD[(64-128)+rax],xmm5 paddd xmm5,xmm11 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm8 pxor xmm7,xmm2 movdqa xmm3,xmm8 pslld xmm2,26-21 pandn xmm0,xmm10 pand xmm3,xmm9 pxor xmm7,xmm1 movdqa xmm1,xmm12 pxor xmm7,xmm2 movdqa xmm2,xmm12 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm13 movdqa xmm7,xmm12 pslld xmm2,10 pxor xmm3,xmm12 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm11,xmm13 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm11,xmm4 paddd xmm15,xmm5 pxor xmm7,xmm2 paddd xmm11,xmm5 paddd xmm11,xmm7 movdqa xmm5,XMMWORD[((96-128))+rax] paddd xmm6,XMMWORD[((224-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((48-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm15 movdqa xmm2,xmm15 psrld xmm7,6 movdqa xmm1,xmm15 pslld xmm2,7 movdqa XMMWORD[(80-128)+rax],xmm6 paddd xmm6,xmm10 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[32+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm15 pxor xmm7,xmm2 movdqa xmm4,xmm15 pslld xmm2,26-21 pandn xmm0,xmm9 pand xmm4,xmm8 pxor xmm7,xmm1 movdqa xmm1,xmm11 pxor xmm7,xmm2 movdqa xmm2,xmm11 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm12 movdqa xmm7,xmm11 pslld xmm2,10 pxor xmm4,xmm11 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm10,xmm12 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm10,xmm3 paddd xmm14,xmm6 pxor xmm7,xmm2 paddd xmm10,xmm6 paddd xmm10,xmm7 movdqa xmm6,XMMWORD[((112-128))+rax] paddd xmm5,XMMWORD[((240-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((64-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm14 movdqa xmm2,xmm14 psrld xmm7,6 movdqa xmm1,xmm14 pslld xmm2,7 movdqa XMMWORD[(96-128)+rax],xmm5 paddd xmm5,xmm9 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[64+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm14 pxor xmm7,xmm2 movdqa xmm3,xmm14 pslld xmm2,26-21 pandn xmm0,xmm8 pand xmm3,xmm15 pxor xmm7,xmm1 movdqa xmm1,xmm10 pxor xmm7,xmm2 movdqa xmm2,xmm10 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm11 movdqa xmm7,xmm10 pslld xmm2,10 pxor xmm3,xmm10 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm9,xmm11 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm9,xmm4 paddd xmm13,xmm5 pxor xmm7,xmm2 paddd xmm9,xmm5 paddd xmm9,xmm7 movdqa xmm5,XMMWORD[((128-128))+rax] paddd xmm6,XMMWORD[((0-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((80-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm13 movdqa xmm2,xmm13 psrld xmm7,6 movdqa xmm1,xmm13 pslld xmm2,7 movdqa XMMWORD[(112-128)+rax],xmm6 paddd xmm6,xmm8 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[96+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm13 pxor xmm7,xmm2 movdqa xmm4,xmm13 pslld xmm2,26-21 pandn xmm0,xmm15 pand xmm4,xmm14 pxor xmm7,xmm1 movdqa xmm1,xmm9 pxor xmm7,xmm2 movdqa xmm2,xmm9 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm10 movdqa xmm7,xmm9 pslld xmm2,10 pxor xmm4,xmm9 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm8,xmm10 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm8,xmm3 paddd xmm12,xmm6 pxor xmm7,xmm2 paddd xmm8,xmm6 paddd xmm8,xmm7 lea rbp,[256+rbp] movdqa xmm6,XMMWORD[((144-128))+rax] paddd xmm5,XMMWORD[((16-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((96-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm12 movdqa xmm2,xmm12 psrld xmm7,6 movdqa xmm1,xmm12 pslld xmm2,7 movdqa XMMWORD[(128-128)+rax],xmm5 paddd xmm5,xmm15 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-128))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm12 pxor xmm7,xmm2 movdqa xmm3,xmm12 pslld xmm2,26-21 pandn xmm0,xmm14 pand xmm3,xmm13 pxor xmm7,xmm1 movdqa xmm1,xmm8 pxor xmm7,xmm2 movdqa xmm2,xmm8 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm9 movdqa xmm7,xmm8 pslld xmm2,10 pxor xmm3,xmm8 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm15,xmm9 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm15,xmm4 paddd xmm11,xmm5 pxor xmm7,xmm2 paddd xmm15,xmm5 paddd xmm15,xmm7 movdqa xmm5,XMMWORD[((160-128))+rax] paddd xmm6,XMMWORD[((32-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((112-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm11 movdqa xmm2,xmm11 psrld xmm7,6 movdqa xmm1,xmm11 pslld xmm2,7 movdqa XMMWORD[(144-128)+rax],xmm6 paddd xmm6,xmm14 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[((-96))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm11 pxor xmm7,xmm2 movdqa xmm4,xmm11 pslld xmm2,26-21 pandn xmm0,xmm13 pand xmm4,xmm12 pxor xmm7,xmm1 movdqa xmm1,xmm15 pxor xmm7,xmm2 movdqa xmm2,xmm15 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm8 movdqa xmm7,xmm15 pslld xmm2,10 pxor xmm4,xmm15 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm14,xmm8 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm14,xmm3 paddd xmm10,xmm6 pxor xmm7,xmm2 paddd xmm14,xmm6 paddd xmm14,xmm7 movdqa xmm6,XMMWORD[((176-128))+rax] paddd xmm5,XMMWORD[((48-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((128-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm10 movdqa xmm2,xmm10 psrld xmm7,6 movdqa xmm1,xmm10 pslld xmm2,7 movdqa XMMWORD[(160-128)+rax],xmm5 paddd xmm5,xmm13 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[((-64))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm10 pxor xmm7,xmm2 movdqa xmm3,xmm10 pslld xmm2,26-21 pandn xmm0,xmm12 pand xmm3,xmm11 pxor xmm7,xmm1 movdqa xmm1,xmm14 pxor xmm7,xmm2 movdqa xmm2,xmm14 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm15 movdqa xmm7,xmm14 pslld xmm2,10 pxor xmm3,xmm14 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm13,xmm15 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm13,xmm4 paddd xmm9,xmm5 pxor xmm7,xmm2 paddd xmm13,xmm5 paddd xmm13,xmm7 movdqa xmm5,XMMWORD[((192-128))+rax] paddd xmm6,XMMWORD[((64-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((144-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm9 movdqa xmm2,xmm9 psrld xmm7,6 movdqa xmm1,xmm9 pslld xmm2,7 movdqa XMMWORD[(176-128)+rax],xmm6 paddd xmm6,xmm12 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[((-32))+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm9 pxor xmm7,xmm2 movdqa xmm4,xmm9 pslld xmm2,26-21 pandn xmm0,xmm11 pand xmm4,xmm10 pxor xmm7,xmm1 movdqa xmm1,xmm13 pxor xmm7,xmm2 movdqa xmm2,xmm13 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm14 movdqa xmm7,xmm13 pslld xmm2,10 pxor xmm4,xmm13 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm12,xmm14 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm12,xmm3 paddd xmm8,xmm6 pxor xmm7,xmm2 paddd xmm12,xmm6 paddd xmm12,xmm7 movdqa xmm6,XMMWORD[((208-128))+rax] paddd xmm5,XMMWORD[((80-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((160-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm8 movdqa xmm2,xmm8 psrld xmm7,6 movdqa xmm1,xmm8 pslld xmm2,7 movdqa XMMWORD[(192-128)+rax],xmm5 paddd xmm5,xmm11 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm8 pxor xmm7,xmm2 movdqa xmm3,xmm8 pslld xmm2,26-21 pandn xmm0,xmm10 pand xmm3,xmm9 pxor xmm7,xmm1 movdqa xmm1,xmm12 pxor xmm7,xmm2 movdqa xmm2,xmm12 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm13 movdqa xmm7,xmm12 pslld xmm2,10 pxor xmm3,xmm12 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm11,xmm13 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm11,xmm4 paddd xmm15,xmm5 pxor xmm7,xmm2 paddd xmm11,xmm5 paddd xmm11,xmm7 movdqa xmm5,XMMWORD[((224-128))+rax] paddd xmm6,XMMWORD[((96-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((176-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm15 movdqa xmm2,xmm15 psrld xmm7,6 movdqa xmm1,xmm15 pslld xmm2,7 movdqa XMMWORD[(208-128)+rax],xmm6 paddd xmm6,xmm10 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[32+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm15 pxor xmm7,xmm2 movdqa xmm4,xmm15 pslld xmm2,26-21 pandn xmm0,xmm9 pand xmm4,xmm8 pxor xmm7,xmm1 movdqa xmm1,xmm11 pxor xmm7,xmm2 movdqa xmm2,xmm11 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm12 movdqa xmm7,xmm11 pslld xmm2,10 pxor xmm4,xmm11 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm10,xmm12 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm10,xmm3 paddd xmm14,xmm6 pxor xmm7,xmm2 paddd xmm10,xmm6 paddd xmm10,xmm7 movdqa xmm6,XMMWORD[((240-128))+rax] paddd xmm5,XMMWORD[((112-128))+rax] movdqa xmm7,xmm6 movdqa xmm1,xmm6 psrld xmm7,3 movdqa xmm2,xmm6 psrld xmm1,7 movdqa xmm0,XMMWORD[((192-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm3,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm3 psrld xmm3,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm5,xmm7 pxor xmm0,xmm3 psrld xmm3,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm3 pxor xmm0,xmm1 paddd xmm5,xmm0 movdqa xmm7,xmm14 movdqa xmm2,xmm14 psrld xmm7,6 movdqa xmm1,xmm14 pslld xmm2,7 movdqa XMMWORD[(224-128)+rax],xmm5 paddd xmm5,xmm9 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm5,XMMWORD[64+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm14 pxor xmm7,xmm2 movdqa xmm3,xmm14 pslld xmm2,26-21 pandn xmm0,xmm8 pand xmm3,xmm15 pxor xmm7,xmm1 movdqa xmm1,xmm10 pxor xmm7,xmm2 movdqa xmm2,xmm10 psrld xmm1,2 paddd xmm5,xmm7 pxor xmm0,xmm3 movdqa xmm3,xmm11 movdqa xmm7,xmm10 pslld xmm2,10 pxor xmm3,xmm10 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm5,xmm0 pslld xmm2,19-10 pand xmm4,xmm3 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm9,xmm11 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm9,xmm4 paddd xmm13,xmm5 pxor xmm7,xmm2 paddd xmm9,xmm5 paddd xmm9,xmm7 movdqa xmm5,XMMWORD[((0-128))+rax] paddd xmm6,XMMWORD[((128-128))+rax] movdqa xmm7,xmm5 movdqa xmm1,xmm5 psrld xmm7,3 movdqa xmm2,xmm5 psrld xmm1,7 movdqa xmm0,XMMWORD[((208-128))+rax] pslld xmm2,14 pxor xmm7,xmm1 psrld xmm1,18-7 movdqa xmm4,xmm0 pxor xmm7,xmm2 pslld xmm2,25-14 pxor xmm7,xmm1 psrld xmm0,10 movdqa xmm1,xmm4 psrld xmm4,17 pxor xmm7,xmm2 pslld xmm1,13 paddd xmm6,xmm7 pxor xmm0,xmm4 psrld xmm4,19-17 pxor xmm0,xmm1 pslld xmm1,15-13 pxor xmm0,xmm4 pxor xmm0,xmm1 paddd xmm6,xmm0 movdqa xmm7,xmm13 movdqa xmm2,xmm13 psrld xmm7,6 movdqa xmm1,xmm13 pslld xmm2,7 movdqa XMMWORD[(240-128)+rax],xmm6 paddd xmm6,xmm8 psrld xmm1,11 pxor xmm7,xmm2 pslld xmm2,21-7 paddd xmm6,XMMWORD[96+rbp] pxor xmm7,xmm1 psrld xmm1,25-11 movdqa xmm0,xmm13 pxor xmm7,xmm2 movdqa xmm4,xmm13 pslld xmm2,26-21 pandn xmm0,xmm15 pand xmm4,xmm14 pxor xmm7,xmm1 movdqa xmm1,xmm9 pxor xmm7,xmm2 movdqa xmm2,xmm9 psrld xmm1,2 paddd xmm6,xmm7 pxor xmm0,xmm4 movdqa xmm4,xmm10 movdqa xmm7,xmm9 pslld xmm2,10 pxor xmm4,xmm9 psrld xmm7,13 pxor xmm1,xmm2 paddd xmm6,xmm0 pslld xmm2,19-10 pand xmm3,xmm4 pxor xmm1,xmm7 psrld xmm7,22-13 pxor xmm1,xmm2 movdqa xmm8,xmm10 pslld xmm2,30-19 pxor xmm7,xmm1 pxor xmm8,xmm3 paddd xmm12,xmm6 pxor xmm7,xmm2 paddd xmm8,xmm6 paddd xmm8,xmm7 lea rbp,[256+rbp] dec ecx jnz NEAR $L$oop_16_xx mov ecx,1 lea rbp,[((K256+128))] movdqa xmm7,XMMWORD[rbx] cmp ecx,DWORD[rbx] pxor xmm0,xmm0 cmovge r8,rbp cmp ecx,DWORD[4+rbx] movdqa xmm6,xmm7 cmovge r9,rbp cmp ecx,DWORD[8+rbx] pcmpgtd xmm6,xmm0 cmovge r10,rbp cmp ecx,DWORD[12+rbx] paddd xmm7,xmm6 cmovge r11,rbp movdqu xmm0,XMMWORD[((0-128))+rdi] pand xmm8,xmm6 movdqu xmm1,XMMWORD[((32-128))+rdi] pand xmm9,xmm6 movdqu xmm2,XMMWORD[((64-128))+rdi] pand xmm10,xmm6 movdqu xmm5,XMMWORD[((96-128))+rdi] pand xmm11,xmm6 paddd xmm8,xmm0 movdqu xmm0,XMMWORD[((128-128))+rdi] pand xmm12,xmm6 paddd xmm9,xmm1 movdqu xmm1,XMMWORD[((160-128))+rdi] pand xmm13,xmm6 paddd xmm10,xmm2 movdqu xmm2,XMMWORD[((192-128))+rdi] pand xmm14,xmm6 paddd xmm11,xmm5 movdqu xmm5,XMMWORD[((224-128))+rdi] pand xmm15,xmm6 paddd xmm12,xmm0 paddd xmm13,xmm1 movdqu XMMWORD[(0-128)+rdi],xmm8 paddd xmm14,xmm2 movdqu XMMWORD[(32-128)+rdi],xmm9 paddd xmm15,xmm5 movdqu XMMWORD[(64-128)+rdi],xmm10 movdqu XMMWORD[(96-128)+rdi],xmm11 movdqu XMMWORD[(128-128)+rdi],xmm12 movdqu XMMWORD[(160-128)+rdi],xmm13 movdqu XMMWORD[(192-128)+rdi],xmm14 movdqu XMMWORD[(224-128)+rdi],xmm15 movdqa XMMWORD[rbx],xmm7 movdqa xmm6,XMMWORD[$L$pbswap] dec edx jnz NEAR $L$oop mov edx,DWORD[280+rsp] lea rdi,[16+rdi] lea rsi,[64+rsi] dec edx jnz NEAR $L$oop_grande $L$done: mov rax,QWORD[272+rsp] movaps xmm6,XMMWORD[((-184))+rax] movaps xmm7,XMMWORD[((-168))+rax] movaps xmm8,XMMWORD[((-152))+rax] movaps xmm9,XMMWORD[((-136))+rax] movaps xmm10,XMMWORD[((-120))+rax] movaps xmm11,XMMWORD[((-104))+rax] movaps xmm12,XMMWORD[((-88))+rax] movaps xmm13,XMMWORD[((-72))+rax] movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] mov rbx,QWORD[((-8))+rax] lea rsp,[rax] $L$epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret $L$SEH_end_sha256_multi_block: ALIGN 32 sha256_multi_block_shaext: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp $L$SEH_begin_sha256_multi_block_shaext: mov rdi,rcx mov rsi,rdx mov rdx,r8 _shaext_shortcut: mov rax,rsp push rbx push rbp lea rsp,[((-168))+rsp] movaps XMMWORD[rsp],xmm6 movaps XMMWORD[16+rsp],xmm7 movaps XMMWORD[32+rsp],xmm8 movaps XMMWORD[48+rsp],xmm9 movaps XMMWORD[(-120)+rax],xmm10 movaps XMMWORD[(-104)+rax],xmm11 movaps XMMWORD[(-88)+rax],xmm12 movaps XMMWORD[(-72)+rax],xmm13 movaps XMMWORD[(-56)+rax],xmm14 movaps XMMWORD[(-40)+rax],xmm15 sub rsp,288 shl edx,1 and rsp,-256 lea rdi,[128+rdi] mov QWORD[272+rsp],rax $L$body_shaext: lea rbx,[256+rsp] lea rbp,[((K256_shaext+128))] $L$oop_grande_shaext: mov DWORD[280+rsp],edx xor edx,edx mov r8,QWORD[rsi] mov ecx,DWORD[8+rsi] cmp ecx,edx cmovg edx,ecx test ecx,ecx mov DWORD[rbx],ecx cmovle r8,rsp mov r9,QWORD[16+rsi] mov ecx,DWORD[24+rsi] cmp ecx,edx cmovg edx,ecx test ecx,ecx mov DWORD[4+rbx],ecx cmovle r9,rsp test edx,edx jz NEAR $L$done_shaext movq xmm12,QWORD[((0-128))+rdi] movq xmm4,QWORD[((32-128))+rdi] movq xmm13,QWORD[((64-128))+rdi] movq xmm5,QWORD[((96-128))+rdi] movq xmm8,QWORD[((128-128))+rdi] movq xmm9,QWORD[((160-128))+rdi] movq xmm10,QWORD[((192-128))+rdi] movq xmm11,QWORD[((224-128))+rdi] punpckldq xmm12,xmm4 punpckldq xmm13,xmm5 punpckldq xmm8,xmm9 punpckldq xmm10,xmm11 movdqa xmm3,XMMWORD[((K256_shaext-16))] movdqa xmm14,xmm12 movdqa xmm15,xmm13 punpcklqdq xmm12,xmm8 punpcklqdq xmm13,xmm10 punpckhqdq xmm14,xmm8 punpckhqdq xmm15,xmm10 pshufd xmm12,xmm12,27 pshufd xmm13,xmm13,27 pshufd xmm14,xmm14,27 pshufd xmm15,xmm15,27 jmp NEAR $L$oop_shaext ALIGN 32 $L$oop_shaext: movdqu xmm4,XMMWORD[r8] movdqu xmm8,XMMWORD[r9] movdqu xmm5,XMMWORD[16+r8] movdqu xmm9,XMMWORD[16+r9] movdqu xmm6,XMMWORD[32+r8] DB 102,15,56,0,227 movdqu xmm10,XMMWORD[32+r9] DB 102,68,15,56,0,195 movdqu xmm7,XMMWORD[48+r8] lea r8,[64+r8] movdqu xmm11,XMMWORD[48+r9] lea r9,[64+r9] movdqa xmm0,XMMWORD[((0-128))+rbp] DB 102,15,56,0,235 paddd xmm0,xmm4 pxor xmm4,xmm12 movdqa xmm1,xmm0 movdqa xmm2,XMMWORD[((0-128))+rbp] DB 102,68,15,56,0,203 paddd xmm2,xmm8 movdqa XMMWORD[80+rsp],xmm13 DB 69,15,56,203,236 pxor xmm8,xmm14 movdqa xmm0,xmm2 movdqa XMMWORD[112+rsp],xmm15 DB 69,15,56,203,254 pshufd xmm0,xmm1,0x0e pxor xmm4,xmm12 movdqa XMMWORD[64+rsp],xmm12 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e pxor xmm8,xmm14 movdqa XMMWORD[96+rsp],xmm14 movdqa xmm1,XMMWORD[((16-128))+rbp] paddd xmm1,xmm5 DB 102,15,56,0,243 DB 69,15,56,203,247 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((16-128))+rbp] paddd xmm2,xmm9 DB 69,15,56,203,236 movdqa xmm0,xmm2 prefetcht0 [127+r8] DB 102,15,56,0,251 DB 102,68,15,56,0,211 prefetcht0 [127+r9] DB 69,15,56,203,254 pshufd xmm0,xmm1,0x0e DB 102,68,15,56,0,219 DB 15,56,204,229 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((32-128))+rbp] paddd xmm1,xmm6 DB 69,15,56,203,247 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((32-128))+rbp] paddd xmm2,xmm10 DB 69,15,56,203,236 DB 69,15,56,204,193 movdqa xmm0,xmm2 movdqa xmm3,xmm7 DB 69,15,56,203,254 pshufd xmm0,xmm1,0x0e DB 102,15,58,15,222,4 paddd xmm4,xmm3 movdqa xmm3,xmm11 DB 102,65,15,58,15,218,4 DB 15,56,204,238 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((48-128))+rbp] paddd xmm1,xmm7 DB 69,15,56,203,247 DB 69,15,56,204,202 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((48-128))+rbp] paddd xmm8,xmm3 paddd xmm2,xmm11 DB 15,56,205,231 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm4 DB 102,15,58,15,223,4 DB 69,15,56,203,254 DB 69,15,56,205,195 pshufd xmm0,xmm1,0x0e paddd xmm5,xmm3 movdqa xmm3,xmm8 DB 102,65,15,58,15,219,4 DB 15,56,204,247 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((64-128))+rbp] paddd xmm1,xmm4 DB 69,15,56,203,247 DB 69,15,56,204,211 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((64-128))+rbp] paddd xmm9,xmm3 paddd xmm2,xmm8 DB 15,56,205,236 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm5 DB 102,15,58,15,220,4 DB 69,15,56,203,254 DB 69,15,56,205,200 pshufd xmm0,xmm1,0x0e paddd xmm6,xmm3 movdqa xmm3,xmm9 DB 102,65,15,58,15,216,4 DB 15,56,204,252 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((80-128))+rbp] paddd xmm1,xmm5 DB 69,15,56,203,247 DB 69,15,56,204,216 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((80-128))+rbp] paddd xmm10,xmm3 paddd xmm2,xmm9 DB 15,56,205,245 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm6 DB 102,15,58,15,221,4 DB 69,15,56,203,254 DB 69,15,56,205,209 pshufd xmm0,xmm1,0x0e paddd xmm7,xmm3 movdqa xmm3,xmm10 DB 102,65,15,58,15,217,4 DB 15,56,204,229 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((96-128))+rbp] paddd xmm1,xmm6 DB 69,15,56,203,247 DB 69,15,56,204,193 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((96-128))+rbp] paddd xmm11,xmm3 paddd xmm2,xmm10 DB 15,56,205,254 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm7 DB 102,15,58,15,222,4 DB 69,15,56,203,254 DB 69,15,56,205,218 pshufd xmm0,xmm1,0x0e paddd xmm4,xmm3 movdqa xmm3,xmm11 DB 102,65,15,58,15,218,4 DB 15,56,204,238 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((112-128))+rbp] paddd xmm1,xmm7 DB 69,15,56,203,247 DB 69,15,56,204,202 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((112-128))+rbp] paddd xmm8,xmm3 paddd xmm2,xmm11 DB 15,56,205,231 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm4 DB 102,15,58,15,223,4 DB 69,15,56,203,254 DB 69,15,56,205,195 pshufd xmm0,xmm1,0x0e paddd xmm5,xmm3 movdqa xmm3,xmm8 DB 102,65,15,58,15,219,4 DB 15,56,204,247 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((128-128))+rbp] paddd xmm1,xmm4 DB 69,15,56,203,247 DB 69,15,56,204,211 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((128-128))+rbp] paddd xmm9,xmm3 paddd xmm2,xmm8 DB 15,56,205,236 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm5 DB 102,15,58,15,220,4 DB 69,15,56,203,254 DB 69,15,56,205,200 pshufd xmm0,xmm1,0x0e paddd xmm6,xmm3 movdqa xmm3,xmm9 DB 102,65,15,58,15,216,4 DB 15,56,204,252 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((144-128))+rbp] paddd xmm1,xmm5 DB 69,15,56,203,247 DB 69,15,56,204,216 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((144-128))+rbp] paddd xmm10,xmm3 paddd xmm2,xmm9 DB 15,56,205,245 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm6 DB 102,15,58,15,221,4 DB 69,15,56,203,254 DB 69,15,56,205,209 pshufd xmm0,xmm1,0x0e paddd xmm7,xmm3 movdqa xmm3,xmm10 DB 102,65,15,58,15,217,4 DB 15,56,204,229 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((160-128))+rbp] paddd xmm1,xmm6 DB 69,15,56,203,247 DB 69,15,56,204,193 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((160-128))+rbp] paddd xmm11,xmm3 paddd xmm2,xmm10 DB 15,56,205,254 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm7 DB 102,15,58,15,222,4 DB 69,15,56,203,254 DB 69,15,56,205,218 pshufd xmm0,xmm1,0x0e paddd xmm4,xmm3 movdqa xmm3,xmm11 DB 102,65,15,58,15,218,4 DB 15,56,204,238 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((176-128))+rbp] paddd xmm1,xmm7 DB 69,15,56,203,247 DB 69,15,56,204,202 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((176-128))+rbp] paddd xmm8,xmm3 paddd xmm2,xmm11 DB 15,56,205,231 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm4 DB 102,15,58,15,223,4 DB 69,15,56,203,254 DB 69,15,56,205,195 pshufd xmm0,xmm1,0x0e paddd xmm5,xmm3 movdqa xmm3,xmm8 DB 102,65,15,58,15,219,4 DB 15,56,204,247 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((192-128))+rbp] paddd xmm1,xmm4 DB 69,15,56,203,247 DB 69,15,56,204,211 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((192-128))+rbp] paddd xmm9,xmm3 paddd xmm2,xmm8 DB 15,56,205,236 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm5 DB 102,15,58,15,220,4 DB 69,15,56,203,254 DB 69,15,56,205,200 pshufd xmm0,xmm1,0x0e paddd xmm6,xmm3 movdqa xmm3,xmm9 DB 102,65,15,58,15,216,4 DB 15,56,204,252 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((208-128))+rbp] paddd xmm1,xmm5 DB 69,15,56,203,247 DB 69,15,56,204,216 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((208-128))+rbp] paddd xmm10,xmm3 paddd xmm2,xmm9 DB 15,56,205,245 DB 69,15,56,203,236 movdqa xmm0,xmm2 movdqa xmm3,xmm6 DB 102,15,58,15,221,4 DB 69,15,56,203,254 DB 69,15,56,205,209 pshufd xmm0,xmm1,0x0e paddd xmm7,xmm3 movdqa xmm3,xmm10 DB 102,65,15,58,15,217,4 nop DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm1,XMMWORD[((224-128))+rbp] paddd xmm1,xmm6 DB 69,15,56,203,247 movdqa xmm0,xmm1 movdqa xmm2,XMMWORD[((224-128))+rbp] paddd xmm11,xmm3 paddd xmm2,xmm10 DB 15,56,205,254 nop DB 69,15,56,203,236 movdqa xmm0,xmm2 mov ecx,1 pxor xmm6,xmm6 DB 69,15,56,203,254 DB 69,15,56,205,218 pshufd xmm0,xmm1,0x0e movdqa xmm1,XMMWORD[((240-128))+rbp] paddd xmm1,xmm7 movq xmm7,QWORD[rbx] nop DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e movdqa xmm2,XMMWORD[((240-128))+rbp] paddd xmm2,xmm11 DB 69,15,56,203,247 movdqa xmm0,xmm1 cmp ecx,DWORD[rbx] cmovge r8,rsp cmp ecx,DWORD[4+rbx] cmovge r9,rsp pshufd xmm9,xmm7,0x00 DB 69,15,56,203,236 movdqa xmm0,xmm2 pshufd xmm10,xmm7,0x55 movdqa xmm11,xmm7 DB 69,15,56,203,254 pshufd xmm0,xmm1,0x0e pcmpgtd xmm9,xmm6 pcmpgtd xmm10,xmm6 DB 69,15,56,203,229 pshufd xmm0,xmm2,0x0e pcmpgtd xmm11,xmm6 movdqa xmm3,XMMWORD[((K256_shaext-16))] DB 69,15,56,203,247 pand xmm13,xmm9 pand xmm15,xmm10 pand xmm12,xmm9 pand xmm14,xmm10 paddd xmm11,xmm7 paddd xmm13,XMMWORD[80+rsp] paddd xmm15,XMMWORD[112+rsp] paddd xmm12,XMMWORD[64+rsp] paddd xmm14,XMMWORD[96+rsp] movq QWORD[rbx],xmm11 dec edx jnz NEAR $L$oop_shaext mov edx,DWORD[280+rsp] pshufd xmm12,xmm12,27 pshufd xmm13,xmm13,27 pshufd xmm14,xmm14,27 pshufd xmm15,xmm15,27 movdqa xmm5,xmm12 movdqa xmm6,xmm13 punpckldq xmm12,xmm14 punpckhdq xmm5,xmm14 punpckldq xmm13,xmm15 punpckhdq xmm6,xmm15 movq QWORD[(0-128)+rdi],xmm12 psrldq xmm12,8 movq QWORD[(128-128)+rdi],xmm5 psrldq xmm5,8 movq QWORD[(32-128)+rdi],xmm12 movq QWORD[(160-128)+rdi],xmm5 movq QWORD[(64-128)+rdi],xmm13 psrldq xmm13,8 movq QWORD[(192-128)+rdi],xmm6 psrldq xmm6,8 movq QWORD[(96-128)+rdi],xmm13 movq QWORD[(224-128)+rdi],xmm6 lea rdi,[8+rdi] lea rsi,[32+rsi] dec edx jnz NEAR $L$oop_grande_shaext $L$done_shaext: movaps xmm6,XMMWORD[((-184))+rax] movaps xmm7,XMMWORD[((-168))+rax] movaps xmm8,XMMWORD[((-152))+rax] movaps xmm9,XMMWORD[((-136))+rax] movaps xmm10,XMMWORD[((-120))+rax] movaps xmm11,XMMWORD[((-104))+rax] movaps xmm12,XMMWORD[((-88))+rax] movaps xmm13,XMMWORD[((-72))+rax] movaps xmm14,XMMWORD[((-56))+rax] movaps xmm15,XMMWORD[((-40))+rax] mov rbp,QWORD[((-16))+rax] mov rbx,QWORD[((-8))+rax] lea rsp,[rax] $L$epilogue_shaext: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret $L$SEH_end_sha256_multi_block_shaext: ALIGN 256 K256: DD 1116352408,1116352408,1116352408,1116352408 DD 1116352408,1116352408,1116352408,1116352408 DD 1899447441,1899447441,1899447441,1899447441 DD 1899447441,1899447441,1899447441,1899447441 DD 3049323471,3049323471,3049323471,3049323471 DD 3049323471,3049323471,3049323471,3049323471 DD 3921009573,3921009573,3921009573,3921009573 DD 3921009573,3921009573,3921009573,3921009573 DD 961987163,961987163,961987163,961987163 DD 961987163,961987163,961987163,961987163 DD 1508970993,1508970993,1508970993,1508970993 DD 1508970993,1508970993,1508970993,1508970993 DD 2453635748,2453635748,2453635748,2453635748 DD 2453635748,2453635748,2453635748,2453635748 DD 2870763221,2870763221,2870763221,2870763221 DD 2870763221,2870763221,2870763221,2870763221 DD 3624381080,3624381080,3624381080,3624381080 DD 3624381080,3624381080,3624381080,3624381080 DD 310598401,310598401,310598401,310598401 DD 310598401,310598401,310598401,310598401 DD 607225278,607225278,607225278,607225278 DD 607225278,607225278,607225278,607225278 DD 1426881987,1426881987,1426881987,1426881987 DD 1426881987,1426881987,1426881987,1426881987 DD 1925078388,1925078388,1925078388,1925078388 DD 1925078388,1925078388,1925078388,1925078388 DD 2162078206,2162078206,2162078206,2162078206 DD 2162078206,2162078206,2162078206,2162078206 DD 2614888103,2614888103,2614888103,2614888103 DD 2614888103,2614888103,2614888103,2614888103 DD 3248222580,3248222580,3248222580,3248222580 DD 3248222580,3248222580,3248222580,3248222580 DD 3835390401,3835390401,3835390401,3835390401 DD 3835390401,3835390401,3835390401,3835390401 DD 4022224774,4022224774,4022224774,4022224774 DD 4022224774,4022224774,4022224774,4022224774 DD 264347078,264347078,264347078,264347078 DD 264347078,264347078,264347078,264347078 DD 604807628,604807628,604807628,604807628 DD 604807628,604807628,604807628,604807628 DD 770255983,770255983,770255983,770255983 DD 770255983,770255983,770255983,770255983 DD 1249150122,1249150122,1249150122,1249150122 DD 1249150122,1249150122,1249150122,1249150122 DD 1555081692,1555081692,1555081692,1555081692 DD 1555081692,1555081692,1555081692,1555081692 DD 1996064986,1996064986,1996064986,1996064986 DD 1996064986,1996064986,1996064986,1996064986 DD 2554220882,2554220882,2554220882,2554220882 DD 2554220882,2554220882,2554220882,2554220882 DD 2821834349,2821834349,2821834349,2821834349 DD 2821834349,2821834349,2821834349,2821834349 DD 2952996808,2952996808,2952996808,2952996808 DD 2952996808,2952996808,2952996808,2952996808 DD 3210313671,3210313671,3210313671,3210313671 DD 3210313671,3210313671,3210313671,3210313671 DD 3336571891,3336571891,3336571891,3336571891 DD 3336571891,3336571891,3336571891,3336571891 DD 3584528711,3584528711,3584528711,3584528711 DD 3584528711,3584528711,3584528711,3584528711 DD 113926993,113926993,113926993,113926993 DD 113926993,113926993,113926993,113926993 DD 338241895,338241895,338241895,338241895 DD 338241895,338241895,338241895,338241895 DD 666307205,666307205,666307205,666307205 DD 666307205,666307205,666307205,666307205 DD 773529912,773529912,773529912,773529912 DD 773529912,773529912,773529912,773529912 DD 1294757372,1294757372,1294757372,1294757372 DD 1294757372,1294757372,1294757372,1294757372 DD 1396182291,1396182291,1396182291,1396182291 DD 1396182291,1396182291,1396182291,1396182291 DD 1695183700,1695183700,1695183700,1695183700 DD 1695183700,1695183700,1695183700,1695183700 DD 1986661051,1986661051,1986661051,1986661051 DD 1986661051,1986661051,1986661051,1986661051 DD 2177026350,2177026350,2177026350,2177026350 DD 2177026350,2177026350,2177026350,2177026350 DD 2456956037,2456956037,2456956037,2456956037 DD 2456956037,2456956037,2456956037,2456956037 DD 2730485921,2730485921,2730485921,2730485921 DD 2730485921,2730485921,2730485921,2730485921 DD 2820302411,2820302411,2820302411,2820302411 DD 2820302411,2820302411,2820302411,2820302411 DD 3259730800,3259730800,3259730800,3259730800 DD 3259730800,3259730800,3259730800,3259730800 DD 3345764771,3345764771,3345764771,3345764771 DD 3345764771,3345764771,3345764771,3345764771 DD 3516065817,3516065817,3516065817,3516065817 DD 3516065817,3516065817,3516065817,3516065817 DD 3600352804,3600352804,3600352804,3600352804 DD 3600352804,3600352804,3600352804,3600352804 DD 4094571909,4094571909,4094571909,4094571909 DD 4094571909,4094571909,4094571909,4094571909 DD 275423344,275423344,275423344,275423344 DD 275423344,275423344,275423344,275423344 DD 430227734,430227734,430227734,430227734 DD 430227734,430227734,430227734,430227734 DD 506948616,506948616,506948616,506948616 DD 506948616,506948616,506948616,506948616 DD 659060556,659060556,659060556,659060556 DD 659060556,659060556,659060556,659060556 DD 883997877,883997877,883997877,883997877 DD 883997877,883997877,883997877,883997877 DD 958139571,958139571,958139571,958139571 DD 958139571,958139571,958139571,958139571 DD 1322822218,1322822218,1322822218,1322822218 DD 1322822218,1322822218,1322822218,1322822218 DD 1537002063,1537002063,1537002063,1537002063 DD 1537002063,1537002063,1537002063,1537002063 DD 1747873779,1747873779,1747873779,1747873779 DD 1747873779,1747873779,1747873779,1747873779 DD 1955562222,1955562222,1955562222,1955562222 DD 1955562222,1955562222,1955562222,1955562222 DD 2024104815,2024104815,2024104815,2024104815 DD 2024104815,2024104815,2024104815,2024104815 DD 2227730452,2227730452,2227730452,2227730452 DD 2227730452,2227730452,2227730452,2227730452 DD 2361852424,2361852424,2361852424,2361852424 DD 2361852424,2361852424,2361852424,2361852424 DD 2428436474,2428436474,2428436474,2428436474 DD 2428436474,2428436474,2428436474,2428436474 DD 2756734187,2756734187,2756734187,2756734187 DD 2756734187,2756734187,2756734187,2756734187 DD 3204031479,3204031479,3204031479,3204031479 DD 3204031479,3204031479,3204031479,3204031479 DD 3329325298,3329325298,3329325298,3329325298 DD 3329325298,3329325298,3329325298,3329325298 $L$pbswap: DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f K256_shaext: DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 DB 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111 DB 99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114 DB 32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71 DB 65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112 DB 101,110,115,115,108,46,111,114,103,62,0 EXTERN __imp_RtlVirtualUnwind ALIGN 16 se_handler: push rsi push rdi push rbx push rbp push r12 push r13 push r14 push r15 pushfq sub rsp,64 mov rax,QWORD[120+r8] mov rbx,QWORD[248+r8] mov rsi,QWORD[8+r9] mov r11,QWORD[56+r9] mov r10d,DWORD[r11] lea r10,[r10*1+rsi] cmp rbx,r10 jb NEAR $L$in_prologue mov rax,QWORD[152+r8] mov r10d,DWORD[4+r11] lea r10,[r10*1+rsi] cmp rbx,r10 jae NEAR $L$in_prologue mov rax,QWORD[272+rax] mov rbx,QWORD[((-8))+rax] mov rbp,QWORD[((-16))+rax] mov QWORD[144+r8],rbx mov QWORD[160+r8],rbp lea rsi,[((-24-160))+rax] lea rdi,[512+r8] mov ecx,20 DD 0xa548f3fc $L$in_prologue: mov rdi,QWORD[8+rax] mov rsi,QWORD[16+rax] mov QWORD[152+r8],rax mov QWORD[168+r8],rsi mov QWORD[176+r8],rdi mov rdi,QWORD[40+r9] mov rsi,r8 mov ecx,154 DD 0xa548f3fc mov rsi,r9 xor rcx,rcx mov rdx,QWORD[8+rsi] mov r8,QWORD[rsi] mov r9,QWORD[16+rsi] mov r10,QWORD[40+rsi] lea r11,[56+rsi] lea r12,[24+rsi] mov QWORD[32+rsp],r10 mov QWORD[40+rsp],r11 mov QWORD[48+rsp],r12 mov QWORD[56+rsp],rcx call QWORD[__imp_RtlVirtualUnwind] mov eax,1 add rsp,64 popfq pop r15 pop r14 pop r13 pop r12 pop rbp pop rbx pop rdi pop rsi DB 0F3h,0C3h ;repret section .pdata rdata align=4 ALIGN 4 DD $L$SEH_begin_sha256_multi_block wrt ..imagebase DD $L$SEH_end_sha256_multi_block wrt ..imagebase DD $L$SEH_info_sha256_multi_block wrt ..imagebase DD $L$SEH_begin_sha256_multi_block_shaext wrt ..imagebase DD $L$SEH_end_sha256_multi_block_shaext wrt ..imagebase DD $L$SEH_info_sha256_multi_block_shaext wrt ..imagebase section .xdata rdata align=8 ALIGN 8 $L$SEH_info_sha256_multi_block: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$body wrt ..imagebase,$L$epilogue wrt ..imagebase $L$SEH_info_sha256_multi_block_shaext: DB 9,0,0,0 DD se_handler wrt ..imagebase DD $L$body_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase