You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3437 lines
62 KiB

OPTION DOTNAME
.text$ SEGMENT ALIGN(256) 'CODE'
EXTERN OPENSSL_ia32cap_P:NEAR
PUBLIC sha256_multi_block
ALIGN 32
sha256_multi_block PROC PUBLIC
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[16+rsp],rsi
mov rax,rsp
$L$SEH_begin_sha256_multi_block::
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,QWORD PTR[((OPENSSL_ia32cap_P+4))]
bt rcx,61
jc _shaext_shortcut
mov rax,rsp
push rbx
push rbp
lea rsp,QWORD PTR[((-168))+rsp]
movaps XMMWORD PTR[rsp],xmm6
movaps XMMWORD PTR[16+rsp],xmm7
movaps XMMWORD PTR[32+rsp],xmm8
movaps XMMWORD PTR[48+rsp],xmm9
movaps XMMWORD PTR[(-120)+rax],xmm10
movaps XMMWORD PTR[(-104)+rax],xmm11
movaps XMMWORD PTR[(-88)+rax],xmm12
movaps XMMWORD PTR[(-72)+rax],xmm13
movaps XMMWORD PTR[(-56)+rax],xmm14
movaps XMMWORD PTR[(-40)+rax],xmm15
sub rsp,288
and rsp,-256
mov QWORD PTR[272+rsp],rax
$L$body::
lea rbp,QWORD PTR[((K256+128))]
lea rbx,QWORD PTR[256+rsp]
lea rdi,QWORD PTR[128+rdi]
$L$oop_grande::
mov DWORD PTR[280+rsp],edx
xor edx,edx
mov r8,QWORD PTR[rsi]
mov ecx,DWORD PTR[8+rsi]
cmp ecx,edx
cmovg edx,ecx
test ecx,ecx
mov DWORD PTR[rbx],ecx
cmovle r8,rbp
mov r9,QWORD PTR[16+rsi]
mov ecx,DWORD PTR[24+rsi]
cmp ecx,edx
cmovg edx,ecx
test ecx,ecx
mov DWORD PTR[4+rbx],ecx
cmovle r9,rbp
mov r10,QWORD PTR[32+rsi]
mov ecx,DWORD PTR[40+rsi]
cmp ecx,edx
cmovg edx,ecx
test ecx,ecx
mov DWORD PTR[8+rbx],ecx
cmovle r10,rbp
mov r11,QWORD PTR[48+rsi]
mov ecx,DWORD PTR[56+rsi]
cmp ecx,edx
cmovg edx,ecx
test ecx,ecx
mov DWORD PTR[12+rbx],ecx
cmovle r11,rbp
test edx,edx
jz $L$done
movdqu xmm8,XMMWORD PTR[((0-128))+rdi]
lea rax,QWORD PTR[128+rsp]
movdqu xmm9,XMMWORD PTR[((32-128))+rdi]
movdqu xmm10,XMMWORD PTR[((64-128))+rdi]
movdqu xmm11,XMMWORD PTR[((96-128))+rdi]
movdqu xmm12,XMMWORD PTR[((128-128))+rdi]
movdqu xmm13,XMMWORD PTR[((160-128))+rdi]
movdqu xmm14,XMMWORD PTR[((192-128))+rdi]
movdqu xmm15,XMMWORD PTR[((224-128))+rdi]
movdqu xmm6,XMMWORD PTR[$L$pbswap]
jmp $L$oop
ALIGN 32
$L$oop::
movdqa xmm4,xmm10
pxor xmm4,xmm9
movd xmm5,DWORD PTR[r8]
movd xmm0,DWORD PTR[r9]
movd xmm1,DWORD PTR[r10]
movd xmm2,DWORD PTR[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 PTR[(0-128)+rax],xmm5
paddd xmm5,xmm15
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[4+r8]
movd xmm0,DWORD PTR[4+r9]
movd xmm1,DWORD PTR[4+r10]
movd xmm2,DWORD PTR[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 PTR[(16-128)+rax],xmm5
paddd xmm5,xmm14
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[8+r8]
movd xmm0,DWORD PTR[8+r9]
movd xmm1,DWORD PTR[8+r10]
movd xmm2,DWORD PTR[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 PTR[(32-128)+rax],xmm5
paddd xmm5,xmm13
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[12+r8]
movd xmm0,DWORD PTR[12+r9]
movd xmm1,DWORD PTR[12+r10]
movd xmm2,DWORD PTR[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 PTR[(48-128)+rax],xmm5
paddd xmm5,xmm12
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[16+r8]
movd xmm0,DWORD PTR[16+r9]
movd xmm1,DWORD PTR[16+r10]
movd xmm2,DWORD PTR[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 PTR[(64-128)+rax],xmm5
paddd xmm5,xmm11
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[20+r8]
movd xmm0,DWORD PTR[20+r9]
movd xmm1,DWORD PTR[20+r10]
movd xmm2,DWORD PTR[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 PTR[(80-128)+rax],xmm5
paddd xmm5,xmm10
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[24+r8]
movd xmm0,DWORD PTR[24+r9]
movd xmm1,DWORD PTR[24+r10]
movd xmm2,DWORD PTR[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 PTR[(96-128)+rax],xmm5
paddd xmm5,xmm9
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[28+r8]
movd xmm0,DWORD PTR[28+r9]
movd xmm1,DWORD PTR[28+r10]
movd xmm2,DWORD PTR[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 PTR[(112-128)+rax],xmm5
paddd xmm5,xmm8
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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,QWORD PTR[256+rbp]
movd xmm5,DWORD PTR[32+r8]
movd xmm0,DWORD PTR[32+r9]
movd xmm1,DWORD PTR[32+r10]
movd xmm2,DWORD PTR[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 PTR[(128-128)+rax],xmm5
paddd xmm5,xmm15
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[36+r8]
movd xmm0,DWORD PTR[36+r9]
movd xmm1,DWORD PTR[36+r10]
movd xmm2,DWORD PTR[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 PTR[(144-128)+rax],xmm5
paddd xmm5,xmm14
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[40+r8]
movd xmm0,DWORD PTR[40+r9]
movd xmm1,DWORD PTR[40+r10]
movd xmm2,DWORD PTR[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 PTR[(160-128)+rax],xmm5
paddd xmm5,xmm13
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[44+r8]
movd xmm0,DWORD PTR[44+r9]
movd xmm1,DWORD PTR[44+r10]
movd xmm2,DWORD PTR[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 PTR[(176-128)+rax],xmm5
paddd xmm5,xmm12
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[48+r8]
movd xmm0,DWORD PTR[48+r9]
movd xmm1,DWORD PTR[48+r10]
movd xmm2,DWORD PTR[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 PTR[(192-128)+rax],xmm5
paddd xmm5,xmm11
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[52+r8]
movd xmm0,DWORD PTR[52+r9]
movd xmm1,DWORD PTR[52+r10]
movd xmm2,DWORD PTR[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 PTR[(208-128)+rax],xmm5
paddd xmm5,xmm10
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[56+r8]
movd xmm0,DWORD PTR[56+r9]
movd xmm1,DWORD PTR[56+r10]
movd xmm2,DWORD PTR[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 PTR[(224-128)+rax],xmm5
paddd xmm5,xmm9
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[60+r8]
lea r8,QWORD PTR[64+r8]
movd xmm0,DWORD PTR[60+r9]
lea r9,QWORD PTR[64+r9]
movd xmm1,DWORD PTR[60+r10]
lea r10,QWORD PTR[64+r10]
movd xmm2,DWORD PTR[60+r11]
lea r11,QWORD PTR[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 PTR[(240-128)+rax],xmm5
paddd xmm5,xmm8
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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,QWORD PTR[256+rbp]
movdqu xmm5,XMMWORD PTR[((0-128))+rax]
mov ecx,3
jmp $L$oop_16_xx
ALIGN 32
$L$oop_16_xx::
movdqa xmm6,XMMWORD PTR[((16-128))+rax]
paddd xmm5,XMMWORD PTR[((144-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(0-128)+rax],xmm5
paddd xmm5,xmm15
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[((32-128))+rax]
paddd xmm6,XMMWORD PTR[((160-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(16-128)+rax],xmm6
paddd xmm6,xmm14
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[((-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 PTR[((48-128))+rax]
paddd xmm5,XMMWORD PTR[((176-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(32-128)+rax],xmm5
paddd xmm5,xmm13
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[((64-128))+rax]
paddd xmm6,XMMWORD PTR[((192-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(48-128)+rax],xmm6
paddd xmm6,xmm12
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[((-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 PTR[((80-128))+rax]
paddd xmm5,XMMWORD PTR[((208-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(64-128)+rax],xmm5
paddd xmm5,xmm11
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[((96-128))+rax]
paddd xmm6,XMMWORD PTR[((224-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(80-128)+rax],xmm6
paddd xmm6,xmm10
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[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 PTR[((112-128))+rax]
paddd xmm5,XMMWORD PTR[((240-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(96-128)+rax],xmm5
paddd xmm5,xmm9
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[((128-128))+rax]
paddd xmm6,XMMWORD PTR[((0-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(112-128)+rax],xmm6
paddd xmm6,xmm8
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[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,QWORD PTR[256+rbp]
movdqa xmm6,XMMWORD PTR[((144-128))+rax]
paddd xmm5,XMMWORD PTR[((16-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(128-128)+rax],xmm5
paddd xmm5,xmm15
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[((160-128))+rax]
paddd xmm6,XMMWORD PTR[((32-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(144-128)+rax],xmm6
paddd xmm6,xmm14
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[((-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 PTR[((176-128))+rax]
paddd xmm5,XMMWORD PTR[((48-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(160-128)+rax],xmm5
paddd xmm5,xmm13
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[((-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 PTR[((192-128))+rax]
paddd xmm6,XMMWORD PTR[((64-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(176-128)+rax],xmm6
paddd xmm6,xmm12
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[((-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 PTR[((208-128))+rax]
paddd xmm5,XMMWORD PTR[((80-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(192-128)+rax],xmm5
paddd xmm5,xmm11
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[((224-128))+rax]
paddd xmm6,XMMWORD PTR[((96-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(208-128)+rax],xmm6
paddd xmm6,xmm10
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[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 PTR[((240-128))+rax]
paddd xmm5,XMMWORD PTR[((112-128))+rax]
movdqa xmm7,xmm6
movdqa xmm1,xmm6
psrld xmm7,3
movdqa xmm2,xmm6
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(224-128)+rax],xmm5
paddd xmm5,xmm9
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm5,XMMWORD PTR[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 PTR[((0-128))+rax]
paddd xmm6,XMMWORD PTR[((128-128))+rax]
movdqa xmm7,xmm5
movdqa xmm1,xmm5
psrld xmm7,3
movdqa xmm2,xmm5
psrld xmm1,7
movdqa xmm0,XMMWORD PTR[((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 PTR[(240-128)+rax],xmm6
paddd xmm6,xmm8
psrld xmm1,11
pxor xmm7,xmm2
pslld xmm2,21-7
paddd xmm6,XMMWORD PTR[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,QWORD PTR[256+rbp]
dec ecx
jnz $L$oop_16_xx
mov ecx,1
lea rbp,QWORD PTR[((K256+128))]
movdqa xmm7,XMMWORD PTR[rbx]
cmp ecx,DWORD PTR[rbx]
pxor xmm0,xmm0
cmovge r8,rbp
cmp ecx,DWORD PTR[4+rbx]
movdqa xmm6,xmm7
cmovge r9,rbp
cmp ecx,DWORD PTR[8+rbx]
pcmpgtd xmm6,xmm0
cmovge r10,rbp
cmp ecx,DWORD PTR[12+rbx]
paddd xmm7,xmm6
cmovge r11,rbp
movdqu xmm0,XMMWORD PTR[((0-128))+rdi]
pand xmm8,xmm6
movdqu xmm1,XMMWORD PTR[((32-128))+rdi]
pand xmm9,xmm6
movdqu xmm2,XMMWORD PTR[((64-128))+rdi]
pand xmm10,xmm6
movdqu xmm5,XMMWORD PTR[((96-128))+rdi]
pand xmm11,xmm6
paddd xmm8,xmm0
movdqu xmm0,XMMWORD PTR[((128-128))+rdi]
pand xmm12,xmm6
paddd xmm9,xmm1
movdqu xmm1,XMMWORD PTR[((160-128))+rdi]
pand xmm13,xmm6
paddd xmm10,xmm2
movdqu xmm2,XMMWORD PTR[((192-128))+rdi]
pand xmm14,xmm6
paddd xmm11,xmm5
movdqu xmm5,XMMWORD PTR[((224-128))+rdi]
pand xmm15,xmm6
paddd xmm12,xmm0
paddd xmm13,xmm1
movdqu XMMWORD PTR[(0-128)+rdi],xmm8
paddd xmm14,xmm2
movdqu XMMWORD PTR[(32-128)+rdi],xmm9
paddd xmm15,xmm5
movdqu XMMWORD PTR[(64-128)+rdi],xmm10
movdqu XMMWORD PTR[(96-128)+rdi],xmm11
movdqu XMMWORD PTR[(128-128)+rdi],xmm12
movdqu XMMWORD PTR[(160-128)+rdi],xmm13
movdqu XMMWORD PTR[(192-128)+rdi],xmm14
movdqu XMMWORD PTR[(224-128)+rdi],xmm15
movdqa XMMWORD PTR[rbx],xmm7
movdqa xmm6,XMMWORD PTR[$L$pbswap]
dec edx
jnz $L$oop
mov edx,DWORD PTR[280+rsp]
lea rdi,QWORD PTR[16+rdi]
lea rsi,QWORD PTR[64+rsi]
dec edx
jnz $L$oop_grande
$L$done::
mov rax,QWORD PTR[272+rsp]
movaps xmm6,XMMWORD PTR[((-184))+rax]
movaps xmm7,XMMWORD PTR[((-168))+rax]
movaps xmm8,XMMWORD PTR[((-152))+rax]
movaps xmm9,XMMWORD PTR[((-136))+rax]
movaps xmm10,XMMWORD PTR[((-120))+rax]
movaps xmm11,XMMWORD PTR[((-104))+rax]
movaps xmm12,XMMWORD PTR[((-88))+rax]
movaps xmm13,XMMWORD PTR[((-72))+rax]
movaps xmm14,XMMWORD PTR[((-56))+rax]
movaps xmm15,XMMWORD PTR[((-40))+rax]
mov rbp,QWORD PTR[((-16))+rax]
mov rbx,QWORD PTR[((-8))+rax]
lea rsp,QWORD PTR[rax]
$L$epilogue::
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
mov rsi,QWORD PTR[16+rsp]
DB 0F3h,0C3h ;repret
$L$SEH_end_sha256_multi_block::
sha256_multi_block ENDP
ALIGN 32
sha256_multi_block_shaext PROC PRIVATE
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
mov QWORD PTR[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,QWORD PTR[((-168))+rsp]
movaps XMMWORD PTR[rsp],xmm6
movaps XMMWORD PTR[16+rsp],xmm7
movaps XMMWORD PTR[32+rsp],xmm8
movaps XMMWORD PTR[48+rsp],xmm9
movaps XMMWORD PTR[(-120)+rax],xmm10
movaps XMMWORD PTR[(-104)+rax],xmm11
movaps XMMWORD PTR[(-88)+rax],xmm12
movaps XMMWORD PTR[(-72)+rax],xmm13
movaps XMMWORD PTR[(-56)+rax],xmm14
movaps XMMWORD PTR[(-40)+rax],xmm15
sub rsp,288
shl edx,1
and rsp,-256
lea rdi,QWORD PTR[128+rdi]
mov QWORD PTR[272+rsp],rax
$L$body_shaext::
lea rbx,QWORD PTR[256+rsp]
lea rbp,QWORD PTR[((K256_shaext+128))]
$L$oop_grande_shaext::
mov DWORD PTR[280+rsp],edx
xor edx,edx
mov r8,QWORD PTR[rsi]
mov ecx,DWORD PTR[8+rsi]
cmp ecx,edx
cmovg edx,ecx
test ecx,ecx
mov DWORD PTR[rbx],ecx
cmovle r8,rsp
mov r9,QWORD PTR[16+rsi]
mov ecx,DWORD PTR[24+rsi]
cmp ecx,edx
cmovg edx,ecx
test ecx,ecx
mov DWORD PTR[4+rbx],ecx
cmovle r9,rsp
test edx,edx
jz $L$done_shaext
movq xmm12,QWORD PTR[((0-128))+rdi]
movq xmm4,QWORD PTR[((32-128))+rdi]
movq xmm13,QWORD PTR[((64-128))+rdi]
movq xmm5,QWORD PTR[((96-128))+rdi]
movq xmm8,QWORD PTR[((128-128))+rdi]
movq xmm9,QWORD PTR[((160-128))+rdi]
movq xmm10,QWORD PTR[((192-128))+rdi]
movq xmm11,QWORD PTR[((224-128))+rdi]
punpckldq xmm12,xmm4
punpckldq xmm13,xmm5
punpckldq xmm8,xmm9
punpckldq xmm10,xmm11
movdqa xmm3,XMMWORD PTR[((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 $L$oop_shaext
ALIGN 32
$L$oop_shaext::
movdqu xmm4,XMMWORD PTR[r8]
movdqu xmm8,XMMWORD PTR[r9]
movdqu xmm5,XMMWORD PTR[16+r8]
movdqu xmm9,XMMWORD PTR[16+r9]
movdqu xmm6,XMMWORD PTR[32+r8]
DB 102,15,56,0,227
movdqu xmm10,XMMWORD PTR[32+r9]
DB 102,68,15,56,0,195
movdqu xmm7,XMMWORD PTR[48+r8]
lea r8,QWORD PTR[64+r8]
movdqu xmm11,XMMWORD PTR[48+r9]
lea r9,QWORD PTR[64+r9]
movdqa xmm0,XMMWORD PTR[((0-128))+rbp]
DB 102,15,56,0,235
paddd xmm0,xmm4
pxor xmm4,xmm12
movdqa xmm1,xmm0
movdqa xmm2,XMMWORD PTR[((0-128))+rbp]
DB 102,68,15,56,0,203
paddd xmm2,xmm8
movdqa XMMWORD PTR[80+rsp],xmm13
DB 69,15,56,203,236
pxor xmm8,xmm14
movdqa xmm0,xmm2
movdqa XMMWORD PTR[112+rsp],xmm15
DB 69,15,56,203,254
pshufd xmm0,xmm1,00eh
pxor xmm4,xmm12
movdqa XMMWORD PTR[64+rsp],xmm12
DB 69,15,56,203,229
pshufd xmm0,xmm2,00eh
pxor xmm8,xmm14
movdqa XMMWORD PTR[96+rsp],xmm14
movdqa xmm1,XMMWORD PTR[((16-128))+rbp]
paddd xmm1,xmm5
DB 102,15,56,0,243
DB 69,15,56,203,247
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
DB 102,68,15,56,0,219
DB 15,56,204,229
DB 69,15,56,203,229
pshufd xmm0,xmm2,00eh
movdqa xmm1,XMMWORD PTR[((32-128))+rbp]
paddd xmm1,xmm6
DB 69,15,56,203,247
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((48-128))+rbp]
paddd xmm1,xmm7
DB 69,15,56,203,247
DB 69,15,56,204,202
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((64-128))+rbp]
paddd xmm1,xmm4
DB 69,15,56,203,247
DB 69,15,56,204,211
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((80-128))+rbp]
paddd xmm1,xmm5
DB 69,15,56,203,247
DB 69,15,56,204,216
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((96-128))+rbp]
paddd xmm1,xmm6
DB 69,15,56,203,247
DB 69,15,56,204,193
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((112-128))+rbp]
paddd xmm1,xmm7
DB 69,15,56,203,247
DB 69,15,56,204,202
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((128-128))+rbp]
paddd xmm1,xmm4
DB 69,15,56,203,247
DB 69,15,56,204,211
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((144-128))+rbp]
paddd xmm1,xmm5
DB 69,15,56,203,247
DB 69,15,56,204,216
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((160-128))+rbp]
paddd xmm1,xmm6
DB 69,15,56,203,247
DB 69,15,56,204,193
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((176-128))+rbp]
paddd xmm1,xmm7
DB 69,15,56,203,247
DB 69,15,56,204,202
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((192-128))+rbp]
paddd xmm1,xmm4
DB 69,15,56,203,247
DB 69,15,56,204,211
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
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,00eh
movdqa xmm1,XMMWORD PTR[((208-128))+rbp]
paddd xmm1,xmm5
DB 69,15,56,203,247
DB 69,15,56,204,216
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
paddd xmm7,xmm3
movdqa xmm3,xmm10
DB 102,65,15,58,15,217,4
nop
DB 69,15,56,203,229
pshufd xmm0,xmm2,00eh
movdqa xmm1,XMMWORD PTR[((224-128))+rbp]
paddd xmm1,xmm6
DB 69,15,56,203,247
movdqa xmm0,xmm1
movdqa xmm2,XMMWORD PTR[((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,00eh
movdqa xmm1,XMMWORD PTR[((240-128))+rbp]
paddd xmm1,xmm7
movq xmm7,QWORD PTR[rbx]
nop
DB 69,15,56,203,229
pshufd xmm0,xmm2,00eh
movdqa xmm2,XMMWORD PTR[((240-128))+rbp]
paddd xmm2,xmm11
DB 69,15,56,203,247
movdqa xmm0,xmm1
cmp ecx,DWORD PTR[rbx]
cmovge r8,rsp
cmp ecx,DWORD PTR[4+rbx]
cmovge r9,rsp
pshufd xmm9,xmm7,000h
DB 69,15,56,203,236
movdqa xmm0,xmm2
pshufd xmm10,xmm7,055h
movdqa xmm11,xmm7
DB 69,15,56,203,254
pshufd xmm0,xmm1,00eh
pcmpgtd xmm9,xmm6
pcmpgtd xmm10,xmm6
DB 69,15,56,203,229
pshufd xmm0,xmm2,00eh
pcmpgtd xmm11,xmm6
movdqa xmm3,XMMWORD PTR[((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 PTR[80+rsp]
paddd xmm15,XMMWORD PTR[112+rsp]
paddd xmm12,XMMWORD PTR[64+rsp]
paddd xmm14,XMMWORD PTR[96+rsp]
movq QWORD PTR[rbx],xmm11
dec edx
jnz $L$oop_shaext
mov edx,DWORD PTR[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 PTR[(0-128)+rdi],xmm12
psrldq xmm12,8
movq QWORD PTR[(128-128)+rdi],xmm5
psrldq xmm5,8
movq QWORD PTR[(32-128)+rdi],xmm12
movq QWORD PTR[(160-128)+rdi],xmm5
movq QWORD PTR[(64-128)+rdi],xmm13
psrldq xmm13,8
movq QWORD PTR[(192-128)+rdi],xmm6
psrldq xmm6,8
movq QWORD PTR[(96-128)+rdi],xmm13
movq QWORD PTR[(224-128)+rdi],xmm6
lea rdi,QWORD PTR[8+rdi]
lea rsi,QWORD PTR[32+rsi]
dec edx
jnz $L$oop_grande_shaext
$L$done_shaext::
movaps xmm6,XMMWORD PTR[((-184))+rax]
movaps xmm7,XMMWORD PTR[((-168))+rax]
movaps xmm8,XMMWORD PTR[((-152))+rax]
movaps xmm9,XMMWORD PTR[((-136))+rax]
movaps xmm10,XMMWORD PTR[((-120))+rax]
movaps xmm11,XMMWORD PTR[((-104))+rax]
movaps xmm12,XMMWORD PTR[((-88))+rax]
movaps xmm13,XMMWORD PTR[((-72))+rax]
movaps xmm14,XMMWORD PTR[((-56))+rax]
movaps xmm15,XMMWORD PTR[((-40))+rax]
mov rbp,QWORD PTR[((-16))+rax]
mov rbx,QWORD PTR[((-8))+rax]
lea rsp,QWORD PTR[rax]
$L$epilogue_shaext::
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
mov rsi,QWORD PTR[16+rsp]
DB 0F3h,0C3h ;repret
$L$SEH_end_sha256_multi_block_shaext::
sha256_multi_block_shaext ENDP
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 000010203h,004050607h,008090a0bh,00c0d0e0fh
DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
K256_shaext::
DD 0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
DD 03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
DD 0d807aa98h,012835b01h,0243185beh,0550c7dc3h
DD 072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
DD 0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
DD 02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
DD 0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
DD 0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
DD 027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
DD 0650a7354h,0766a0abbh,081c2c92eh,092722c85h
DD 0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
DD 0d192e819h,0d6990624h,0f40e3585h,0106aa070h
DD 019a4c116h,01e376c08h,02748774ch,034b0bcb5h
DD 0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
DD 0748f82eeh,078a5636fh,084c87814h,08cc70208h
DD 090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
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:NEAR
ALIGN 16
se_handler PROC PRIVATE
push rsi
push rdi
push rbx
push rbp
push r12
push r13
push r14
push r15
pushfq
sub rsp,64
mov rax,QWORD PTR[120+r8]
mov rbx,QWORD PTR[248+r8]
mov rsi,QWORD PTR[8+r9]
mov r11,QWORD PTR[56+r9]
mov r10d,DWORD PTR[r11]
lea r10,QWORD PTR[r10*1+rsi]
cmp rbx,r10
jb $L$in_prologue
mov rax,QWORD PTR[152+r8]
mov r10d,DWORD PTR[4+r11]
lea r10,QWORD PTR[r10*1+rsi]
cmp rbx,r10
jae $L$in_prologue
mov rax,QWORD PTR[272+rax]
mov rbx,QWORD PTR[((-8))+rax]
mov rbp,QWORD PTR[((-16))+rax]
mov QWORD PTR[144+r8],rbx
mov QWORD PTR[160+r8],rbp
lea rsi,QWORD PTR[((-24-160))+rax]
lea rdi,QWORD PTR[512+r8]
mov ecx,20
DD 0a548f3fch
$L$in_prologue::
mov rdi,QWORD PTR[8+rax]
mov rsi,QWORD PTR[16+rax]
mov QWORD PTR[152+r8],rax
mov QWORD PTR[168+r8],rsi
mov QWORD PTR[176+r8],rdi
mov rdi,QWORD PTR[40+r9]
mov rsi,r8
mov ecx,154
DD 0a548f3fch
mov rsi,r9
xor rcx,rcx
mov rdx,QWORD PTR[8+rsi]
mov r8,QWORD PTR[rsi]
mov r9,QWORD PTR[16+rsi]
mov r10,QWORD PTR[40+rsi]
lea r11,QWORD PTR[56+rsi]
lea r12,QWORD PTR[24+rsi]
mov QWORD PTR[32+rsp],r10
mov QWORD PTR[40+rsp],r11
mov QWORD PTR[48+rsp],r12
mov QWORD PTR[56+rsp],rcx
call QWORD PTR[__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
se_handler ENDP
.text$ ENDS
.pdata SEGMENT READONLY ALIGN(4)
ALIGN 4
DD imagerel $L$SEH_begin_sha256_multi_block
DD imagerel $L$SEH_end_sha256_multi_block
DD imagerel $L$SEH_info_sha256_multi_block
DD imagerel $L$SEH_begin_sha256_multi_block_shaext
DD imagerel $L$SEH_end_sha256_multi_block_shaext
DD imagerel $L$SEH_info_sha256_multi_block_shaext
.pdata ENDS
.xdata SEGMENT READONLY ALIGN(8)
ALIGN 8
$L$SEH_info_sha256_multi_block::
DB 9,0,0,0
DD imagerel se_handler
DD imagerel $L$body,imagerel $L$epilogue
$L$SEH_info_sha256_multi_block_shaext::
DB 9,0,0,0
DD imagerel se_handler
DD imagerel $L$body_shaext,imagerel $L$epilogue_shaext
.xdata ENDS
END