default rel %define XMMWORD %define YMMWORD %define ZMMWORD section .text code align=64 EXTERN OPENSSL_ia32cap_P global aesni_cbc_sha1_enc ALIGN 32 aesni_cbc_sha1_enc: mov r10d,DWORD[((OPENSSL_ia32cap_P+0))] mov r11,QWORD[((OPENSSL_ia32cap_P+4))] bt r11,61 jc NEAR aesni_cbc_sha1_enc_shaext jmp NEAR aesni_cbc_sha1_enc_ssse3 DB 0F3h,0C3h ;repret ALIGN 32 aesni_cbc_sha1_enc_ssse3: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp $L$SEH_begin_aesni_cbc_sha1_enc_ssse3: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 mov r8,QWORD[40+rsp] mov r9,QWORD[48+rsp] mov r10,QWORD[56+rsp] push rbx push rbp push r12 push r13 push r14 push r15 lea rsp,[((-264))+rsp] movaps XMMWORD[(96+0)+rsp],xmm6 movaps XMMWORD[(96+16)+rsp],xmm7 movaps XMMWORD[(96+32)+rsp],xmm8 movaps XMMWORD[(96+48)+rsp],xmm9 movaps XMMWORD[(96+64)+rsp],xmm10 movaps XMMWORD[(96+80)+rsp],xmm11 movaps XMMWORD[(96+96)+rsp],xmm12 movaps XMMWORD[(96+112)+rsp],xmm13 movaps XMMWORD[(96+128)+rsp],xmm14 movaps XMMWORD[(96+144)+rsp],xmm15 $L$prologue_ssse3: mov r12,rdi mov r13,rsi mov r14,rdx lea r15,[112+rcx] movdqu xmm2,XMMWORD[r8] mov QWORD[88+rsp],r8 shl r14,6 sub r13,r12 mov r8d,DWORD[((240-112))+r15] add r14,r10 lea r11,[K_XX_XX] mov eax,DWORD[r9] mov ebx,DWORD[4+r9] mov ecx,DWORD[8+r9] mov edx,DWORD[12+r9] mov esi,ebx mov ebp,DWORD[16+r9] mov edi,ecx xor edi,edx and esi,edi movdqa xmm3,XMMWORD[64+r11] movdqa xmm13,XMMWORD[r11] movdqu xmm4,XMMWORD[r10] movdqu xmm5,XMMWORD[16+r10] movdqu xmm6,XMMWORD[32+r10] movdqu xmm7,XMMWORD[48+r10] DB 102,15,56,0,227 DB 102,15,56,0,235 DB 102,15,56,0,243 add r10,64 paddd xmm4,xmm13 DB 102,15,56,0,251 paddd xmm5,xmm13 paddd xmm6,xmm13 movdqa XMMWORD[rsp],xmm4 psubd xmm4,xmm13 movdqa XMMWORD[16+rsp],xmm5 psubd xmm5,xmm13 movdqa XMMWORD[32+rsp],xmm6 psubd xmm6,xmm13 movups xmm15,XMMWORD[((-112))+r15] movups xmm0,XMMWORD[((16-112))+r15] jmp NEAR $L$oop_ssse3 ALIGN 32 $L$oop_ssse3: ror ebx,2 movups xmm14,XMMWORD[r12] xorps xmm14,xmm15 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+r15] DB 102,15,56,220,208 pshufd xmm8,xmm4,238 xor esi,edx movdqa xmm12,xmm7 paddd xmm13,xmm7 mov edi,eax add ebp,DWORD[rsp] punpcklqdq xmm8,xmm5 xor ebx,ecx rol eax,5 add ebp,esi psrldq xmm12,4 and edi,ebx xor ebx,ecx pxor xmm8,xmm4 add ebp,eax ror eax,7 pxor xmm12,xmm6 xor edi,ecx mov esi,ebp add edx,DWORD[4+rsp] pxor xmm8,xmm12 xor eax,ebx rol ebp,5 movdqa XMMWORD[48+rsp],xmm13 add edx,edi movups xmm0,XMMWORD[((-64))+r15] DB 102,15,56,220,209 and esi,eax movdqa xmm3,xmm8 xor eax,ebx add edx,ebp ror ebp,7 movdqa xmm12,xmm8 xor esi,ebx pslldq xmm3,12 paddd xmm8,xmm8 mov edi,edx add ecx,DWORD[8+rsp] psrld xmm12,31 xor ebp,eax rol edx,5 add ecx,esi movdqa xmm13,xmm3 and edi,ebp xor ebp,eax psrld xmm3,30 add ecx,edx ror edx,7 por xmm8,xmm12 xor edi,eax mov esi,ecx add ebx,DWORD[12+rsp] movups xmm1,XMMWORD[((-48))+r15] DB 102,15,56,220,208 pslld xmm13,2 pxor xmm8,xmm3 xor edx,ebp movdqa xmm3,XMMWORD[r11] rol ecx,5 add ebx,edi and esi,edx pxor xmm8,xmm13 xor edx,ebp add ebx,ecx ror ecx,7 pshufd xmm9,xmm5,238 xor esi,ebp movdqa xmm13,xmm8 paddd xmm3,xmm8 mov edi,ebx add eax,DWORD[16+rsp] punpcklqdq xmm9,xmm6 xor ecx,edx rol ebx,5 add eax,esi psrldq xmm13,4 and edi,ecx xor ecx,edx pxor xmm9,xmm5 add eax,ebx ror ebx,7 movups xmm0,XMMWORD[((-32))+r15] DB 102,15,56,220,209 pxor xmm13,xmm7 xor edi,edx mov esi,eax add ebp,DWORD[20+rsp] pxor xmm9,xmm13 xor ebx,ecx rol eax,5 movdqa XMMWORD[rsp],xmm3 add ebp,edi and esi,ebx movdqa xmm12,xmm9 xor ebx,ecx add ebp,eax ror eax,7 movdqa xmm13,xmm9 xor esi,ecx pslldq xmm12,12 paddd xmm9,xmm9 mov edi,ebp add edx,DWORD[24+rsp] psrld xmm13,31 xor eax,ebx rol ebp,5 add edx,esi movups xmm1,XMMWORD[((-16))+r15] DB 102,15,56,220,208 movdqa xmm3,xmm12 and edi,eax xor eax,ebx psrld xmm12,30 add edx,ebp ror ebp,7 por xmm9,xmm13 xor edi,ebx mov esi,edx add ecx,DWORD[28+rsp] pslld xmm3,2 pxor xmm9,xmm12 xor ebp,eax movdqa xmm12,XMMWORD[16+r11] rol edx,5 add ecx,edi and esi,ebp pxor xmm9,xmm3 xor ebp,eax add ecx,edx ror edx,7 pshufd xmm10,xmm6,238 xor esi,eax movdqa xmm3,xmm9 paddd xmm12,xmm9 mov edi,ecx add ebx,DWORD[32+rsp] movups xmm0,XMMWORD[r15] DB 102,15,56,220,209 punpcklqdq xmm10,xmm7 xor edx,ebp rol ecx,5 add ebx,esi psrldq xmm3,4 and edi,edx xor edx,ebp pxor xmm10,xmm6 add ebx,ecx ror ecx,7 pxor xmm3,xmm8 xor edi,ebp mov esi,ebx add eax,DWORD[36+rsp] pxor xmm10,xmm3 xor ecx,edx rol ebx,5 movdqa XMMWORD[16+rsp],xmm12 add eax,edi and esi,ecx movdqa xmm13,xmm10 xor ecx,edx add eax,ebx ror ebx,7 movups xmm1,XMMWORD[16+r15] DB 102,15,56,220,208 movdqa xmm3,xmm10 xor esi,edx pslldq xmm13,12 paddd xmm10,xmm10 mov edi,eax add ebp,DWORD[40+rsp] psrld xmm3,31 xor ebx,ecx rol eax,5 add ebp,esi movdqa xmm12,xmm13 and edi,ebx xor ebx,ecx psrld xmm13,30 add ebp,eax ror eax,7 por xmm10,xmm3 xor edi,ecx mov esi,ebp add edx,DWORD[44+rsp] pslld xmm12,2 pxor xmm10,xmm13 xor eax,ebx movdqa xmm13,XMMWORD[16+r11] rol ebp,5 add edx,edi movups xmm0,XMMWORD[32+r15] DB 102,15,56,220,209 and esi,eax pxor xmm10,xmm12 xor eax,ebx add edx,ebp ror ebp,7 pshufd xmm11,xmm7,238 xor esi,ebx movdqa xmm12,xmm10 paddd xmm13,xmm10 mov edi,edx add ecx,DWORD[48+rsp] punpcklqdq xmm11,xmm8 xor ebp,eax rol edx,5 add ecx,esi psrldq xmm12,4 and edi,ebp xor ebp,eax pxor xmm11,xmm7 add ecx,edx ror edx,7 pxor xmm12,xmm9 xor edi,eax mov esi,ecx add ebx,DWORD[52+rsp] movups xmm1,XMMWORD[48+r15] DB 102,15,56,220,208 pxor xmm11,xmm12 xor edx,ebp rol ecx,5 movdqa XMMWORD[32+rsp],xmm13 add ebx,edi and esi,edx movdqa xmm3,xmm11 xor edx,ebp add ebx,ecx ror ecx,7 movdqa xmm12,xmm11 xor esi,ebp pslldq xmm3,12 paddd xmm11,xmm11 mov edi,ebx add eax,DWORD[56+rsp] psrld xmm12,31 xor ecx,edx rol ebx,5 add eax,esi movdqa xmm13,xmm3 and edi,ecx xor ecx,edx psrld xmm3,30 add eax,ebx ror ebx,7 cmp r8d,11 jb NEAR $L$aesenclast1 movups xmm0,XMMWORD[64+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+r15] DB 102,15,56,220,208 je NEAR $L$aesenclast1 movups xmm0,XMMWORD[96+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+r15] DB 102,15,56,220,208 $L$aesenclast1: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+r15] por xmm11,xmm12 xor edi,edx mov esi,eax add ebp,DWORD[60+rsp] pslld xmm13,2 pxor xmm11,xmm3 xor ebx,ecx movdqa xmm3,XMMWORD[16+r11] rol eax,5 add ebp,edi and esi,ebx pxor xmm11,xmm13 pshufd xmm13,xmm10,238 xor ebx,ecx add ebp,eax ror eax,7 pxor xmm4,xmm8 xor esi,ecx mov edi,ebp add edx,DWORD[rsp] punpcklqdq xmm13,xmm11 xor eax,ebx rol ebp,5 pxor xmm4,xmm5 add edx,esi movups xmm14,XMMWORD[16+r12] xorps xmm14,xmm15 movups XMMWORD[r13*1+r12],xmm2 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+r15] DB 102,15,56,220,208 and edi,eax movdqa xmm12,xmm3 xor eax,ebx paddd xmm3,xmm11 add edx,ebp pxor xmm4,xmm13 ror ebp,7 xor edi,ebx mov esi,edx add ecx,DWORD[4+rsp] movdqa xmm13,xmm4 xor ebp,eax rol edx,5 movdqa XMMWORD[48+rsp],xmm3 add ecx,edi and esi,ebp xor ebp,eax pslld xmm4,2 add ecx,edx ror edx,7 psrld xmm13,30 xor esi,eax mov edi,ecx add ebx,DWORD[8+rsp] movups xmm0,XMMWORD[((-64))+r15] DB 102,15,56,220,209 por xmm4,xmm13 xor edx,ebp rol ecx,5 pshufd xmm3,xmm11,238 add ebx,esi and edi,edx xor edx,ebp add ebx,ecx add eax,DWORD[12+rsp] xor edi,ebp mov esi,ebx rol ebx,5 add eax,edi xor esi,edx ror ecx,7 add eax,ebx pxor xmm5,xmm9 add ebp,DWORD[16+rsp] movups xmm1,XMMWORD[((-48))+r15] DB 102,15,56,220,208 xor esi,ecx punpcklqdq xmm3,xmm4 mov edi,eax rol eax,5 pxor xmm5,xmm6 add ebp,esi xor edi,ecx movdqa xmm13,xmm12 ror ebx,7 paddd xmm12,xmm4 add ebp,eax pxor xmm5,xmm3 add edx,DWORD[20+rsp] xor edi,ebx mov esi,ebp rol ebp,5 movdqa xmm3,xmm5 add edx,edi xor esi,ebx movdqa XMMWORD[rsp],xmm12 ror eax,7 add edx,ebp add ecx,DWORD[24+rsp] pslld xmm5,2 xor esi,eax mov edi,edx psrld xmm3,30 rol edx,5 add ecx,esi movups xmm0,XMMWORD[((-32))+r15] DB 102,15,56,220,209 xor edi,eax ror ebp,7 por xmm5,xmm3 add ecx,edx add ebx,DWORD[28+rsp] pshufd xmm12,xmm4,238 xor edi,ebp mov esi,ecx rol ecx,5 add ebx,edi xor esi,ebp ror edx,7 add ebx,ecx pxor xmm6,xmm10 add eax,DWORD[32+rsp] xor esi,edx punpcklqdq xmm12,xmm5 mov edi,ebx rol ebx,5 pxor xmm6,xmm7 add eax,esi xor edi,edx movdqa xmm3,XMMWORD[32+r11] ror ecx,7 paddd xmm13,xmm5 add eax,ebx pxor xmm6,xmm12 add ebp,DWORD[36+rsp] movups xmm1,XMMWORD[((-16))+r15] DB 102,15,56,220,208 xor edi,ecx mov esi,eax rol eax,5 movdqa xmm12,xmm6 add ebp,edi xor esi,ecx movdqa XMMWORD[16+rsp],xmm13 ror ebx,7 add ebp,eax add edx,DWORD[40+rsp] pslld xmm6,2 xor esi,ebx mov edi,ebp psrld xmm12,30 rol ebp,5 add edx,esi xor edi,ebx ror eax,7 por xmm6,xmm12 add edx,ebp add ecx,DWORD[44+rsp] pshufd xmm13,xmm5,238 xor edi,eax mov esi,edx rol edx,5 add ecx,edi movups xmm0,XMMWORD[r15] DB 102,15,56,220,209 xor esi,eax ror ebp,7 add ecx,edx pxor xmm7,xmm11 add ebx,DWORD[48+rsp] xor esi,ebp punpcklqdq xmm13,xmm6 mov edi,ecx rol ecx,5 pxor xmm7,xmm8 add ebx,esi xor edi,ebp movdqa xmm12,xmm3 ror edx,7 paddd xmm3,xmm6 add ebx,ecx pxor xmm7,xmm13 add eax,DWORD[52+rsp] xor edi,edx mov esi,ebx rol ebx,5 movdqa xmm13,xmm7 add eax,edi xor esi,edx movdqa XMMWORD[32+rsp],xmm3 ror ecx,7 add eax,ebx add ebp,DWORD[56+rsp] movups xmm1,XMMWORD[16+r15] DB 102,15,56,220,208 pslld xmm7,2 xor esi,ecx mov edi,eax psrld xmm13,30 rol eax,5 add ebp,esi xor edi,ecx ror ebx,7 por xmm7,xmm13 add ebp,eax add edx,DWORD[60+rsp] pshufd xmm3,xmm6,238 xor edi,ebx mov esi,ebp rol ebp,5 add edx,edi xor esi,ebx ror eax,7 add edx,ebp pxor xmm8,xmm4 add ecx,DWORD[rsp] xor esi,eax punpcklqdq xmm3,xmm7 mov edi,edx rol edx,5 pxor xmm8,xmm9 add ecx,esi movups xmm0,XMMWORD[32+r15] DB 102,15,56,220,209 xor edi,eax movdqa xmm13,xmm12 ror ebp,7 paddd xmm12,xmm7 add ecx,edx pxor xmm8,xmm3 add ebx,DWORD[4+rsp] xor edi,ebp mov esi,ecx rol ecx,5 movdqa xmm3,xmm8 add ebx,edi xor esi,ebp movdqa XMMWORD[48+rsp],xmm12 ror edx,7 add ebx,ecx add eax,DWORD[8+rsp] pslld xmm8,2 xor esi,edx mov edi,ebx psrld xmm3,30 rol ebx,5 add eax,esi xor edi,edx ror ecx,7 por xmm8,xmm3 add eax,ebx add ebp,DWORD[12+rsp] movups xmm1,XMMWORD[48+r15] DB 102,15,56,220,208 pshufd xmm12,xmm7,238 xor edi,ecx mov esi,eax rol eax,5 add ebp,edi xor esi,ecx ror ebx,7 add ebp,eax pxor xmm9,xmm5 add edx,DWORD[16+rsp] xor esi,ebx punpcklqdq xmm12,xmm8 mov edi,ebp rol ebp,5 pxor xmm9,xmm10 add edx,esi xor edi,ebx movdqa xmm3,xmm13 ror eax,7 paddd xmm13,xmm8 add edx,ebp pxor xmm9,xmm12 add ecx,DWORD[20+rsp] xor edi,eax mov esi,edx rol edx,5 movdqa xmm12,xmm9 add ecx,edi cmp r8d,11 jb NEAR $L$aesenclast2 movups xmm0,XMMWORD[64+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+r15] DB 102,15,56,220,208 je NEAR $L$aesenclast2 movups xmm0,XMMWORD[96+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+r15] DB 102,15,56,220,208 $L$aesenclast2: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+r15] xor esi,eax movdqa XMMWORD[rsp],xmm13 ror ebp,7 add ecx,edx add ebx,DWORD[24+rsp] pslld xmm9,2 xor esi,ebp mov edi,ecx psrld xmm12,30 rol ecx,5 add ebx,esi xor edi,ebp ror edx,7 por xmm9,xmm12 add ebx,ecx add eax,DWORD[28+rsp] pshufd xmm13,xmm8,238 ror ecx,7 mov esi,ebx xor edi,edx rol ebx,5 add eax,edi xor esi,ecx xor ecx,edx add eax,ebx pxor xmm10,xmm6 add ebp,DWORD[32+rsp] movups xmm14,XMMWORD[32+r12] xorps xmm14,xmm15 movups XMMWORD[16+r12*1+r13],xmm2 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+r15] DB 102,15,56,220,208 and esi,ecx xor ecx,edx ror ebx,7 punpcklqdq xmm13,xmm9 mov edi,eax xor esi,ecx pxor xmm10,xmm11 rol eax,5 add ebp,esi movdqa xmm12,xmm3 xor edi,ebx paddd xmm3,xmm9 xor ebx,ecx pxor xmm10,xmm13 add ebp,eax add edx,DWORD[36+rsp] and edi,ebx xor ebx,ecx ror eax,7 movdqa xmm13,xmm10 mov esi,ebp xor edi,ebx movdqa XMMWORD[16+rsp],xmm3 rol ebp,5 add edx,edi movups xmm0,XMMWORD[((-64))+r15] DB 102,15,56,220,209 xor esi,eax pslld xmm10,2 xor eax,ebx add edx,ebp psrld xmm13,30 add ecx,DWORD[40+rsp] and esi,eax xor eax,ebx por xmm10,xmm13 ror ebp,7 mov edi,edx xor esi,eax rol edx,5 pshufd xmm3,xmm9,238 add ecx,esi xor edi,ebp xor ebp,eax add ecx,edx add ebx,DWORD[44+rsp] and edi,ebp xor ebp,eax ror edx,7 movups xmm1,XMMWORD[((-48))+r15] DB 102,15,56,220,208 mov esi,ecx xor edi,ebp rol ecx,5 add ebx,edi xor esi,edx xor edx,ebp add ebx,ecx pxor xmm11,xmm7 add eax,DWORD[48+rsp] and esi,edx xor edx,ebp ror ecx,7 punpcklqdq xmm3,xmm10 mov edi,ebx xor esi,edx pxor xmm11,xmm4 rol ebx,5 add eax,esi movdqa xmm13,XMMWORD[48+r11] xor edi,ecx paddd xmm12,xmm10 xor ecx,edx pxor xmm11,xmm3 add eax,ebx add ebp,DWORD[52+rsp] movups xmm0,XMMWORD[((-32))+r15] DB 102,15,56,220,209 and edi,ecx xor ecx,edx ror ebx,7 movdqa xmm3,xmm11 mov esi,eax xor edi,ecx movdqa XMMWORD[32+rsp],xmm12 rol eax,5 add ebp,edi xor esi,ebx pslld xmm11,2 xor ebx,ecx add ebp,eax psrld xmm3,30 add edx,DWORD[56+rsp] and esi,ebx xor ebx,ecx por xmm11,xmm3 ror eax,7 mov edi,ebp xor esi,ebx rol ebp,5 pshufd xmm12,xmm10,238 add edx,esi movups xmm1,XMMWORD[((-16))+r15] DB 102,15,56,220,208 xor edi,eax xor eax,ebx add edx,ebp add ecx,DWORD[60+rsp] and edi,eax xor eax,ebx ror ebp,7 mov esi,edx xor edi,eax rol edx,5 add ecx,edi xor esi,ebp xor ebp,eax add ecx,edx pxor xmm4,xmm8 add ebx,DWORD[rsp] and esi,ebp xor ebp,eax ror edx,7 movups xmm0,XMMWORD[r15] DB 102,15,56,220,209 punpcklqdq xmm12,xmm11 mov edi,ecx xor esi,ebp pxor xmm4,xmm5 rol ecx,5 add ebx,esi movdqa xmm3,xmm13 xor edi,edx paddd xmm13,xmm11 xor edx,ebp pxor xmm4,xmm12 add ebx,ecx add eax,DWORD[4+rsp] and edi,edx xor edx,ebp ror ecx,7 movdqa xmm12,xmm4 mov esi,ebx xor edi,edx movdqa XMMWORD[48+rsp],xmm13 rol ebx,5 add eax,edi xor esi,ecx pslld xmm4,2 xor ecx,edx add eax,ebx psrld xmm12,30 add ebp,DWORD[8+rsp] movups xmm1,XMMWORD[16+r15] DB 102,15,56,220,208 and esi,ecx xor ecx,edx por xmm4,xmm12 ror ebx,7 mov edi,eax xor esi,ecx rol eax,5 pshufd xmm13,xmm11,238 add ebp,esi xor edi,ebx xor ebx,ecx add ebp,eax add edx,DWORD[12+rsp] and edi,ebx xor ebx,ecx ror eax,7 mov esi,ebp xor edi,ebx rol ebp,5 add edx,edi movups xmm0,XMMWORD[32+r15] DB 102,15,56,220,209 xor esi,eax xor eax,ebx add edx,ebp pxor xmm5,xmm9 add ecx,DWORD[16+rsp] and esi,eax xor eax,ebx ror ebp,7 punpcklqdq xmm13,xmm4 mov edi,edx xor esi,eax pxor xmm5,xmm6 rol edx,5 add ecx,esi movdqa xmm12,xmm3 xor edi,ebp paddd xmm3,xmm4 xor ebp,eax pxor xmm5,xmm13 add ecx,edx add ebx,DWORD[20+rsp] and edi,ebp xor ebp,eax ror edx,7 movups xmm1,XMMWORD[48+r15] DB 102,15,56,220,208 movdqa xmm13,xmm5 mov esi,ecx xor edi,ebp movdqa XMMWORD[rsp],xmm3 rol ecx,5 add ebx,edi xor esi,edx pslld xmm5,2 xor edx,ebp add ebx,ecx psrld xmm13,30 add eax,DWORD[24+rsp] and esi,edx xor edx,ebp por xmm5,xmm13 ror ecx,7 mov edi,ebx xor esi,edx rol ebx,5 pshufd xmm3,xmm4,238 add eax,esi xor edi,ecx xor ecx,edx add eax,ebx add ebp,DWORD[28+rsp] cmp r8d,11 jb NEAR $L$aesenclast3 movups xmm0,XMMWORD[64+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+r15] DB 102,15,56,220,208 je NEAR $L$aesenclast3 movups xmm0,XMMWORD[96+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+r15] DB 102,15,56,220,208 $L$aesenclast3: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+r15] and edi,ecx xor ecx,edx ror ebx,7 mov esi,eax xor edi,ecx rol eax,5 add ebp,edi xor esi,ebx xor ebx,ecx add ebp,eax pxor xmm6,xmm10 add edx,DWORD[32+rsp] and esi,ebx xor ebx,ecx ror eax,7 punpcklqdq xmm3,xmm5 mov edi,ebp xor esi,ebx pxor xmm6,xmm7 rol ebp,5 add edx,esi movups xmm14,XMMWORD[48+r12] xorps xmm14,xmm15 movups XMMWORD[32+r12*1+r13],xmm2 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+r15] DB 102,15,56,220,208 movdqa xmm13,xmm12 xor edi,eax paddd xmm12,xmm5 xor eax,ebx pxor xmm6,xmm3 add edx,ebp add ecx,DWORD[36+rsp] and edi,eax xor eax,ebx ror ebp,7 movdqa xmm3,xmm6 mov esi,edx xor edi,eax movdqa XMMWORD[16+rsp],xmm12 rol edx,5 add ecx,edi xor esi,ebp pslld xmm6,2 xor ebp,eax add ecx,edx psrld xmm3,30 add ebx,DWORD[40+rsp] and esi,ebp xor ebp,eax por xmm6,xmm3 ror edx,7 movups xmm0,XMMWORD[((-64))+r15] DB 102,15,56,220,209 mov edi,ecx xor esi,ebp rol ecx,5 pshufd xmm12,xmm5,238 add ebx,esi xor edi,edx xor edx,ebp add ebx,ecx add eax,DWORD[44+rsp] and edi,edx xor edx,ebp ror ecx,7 mov esi,ebx xor edi,edx rol ebx,5 add eax,edi xor esi,edx add eax,ebx pxor xmm7,xmm11 add ebp,DWORD[48+rsp] movups xmm1,XMMWORD[((-48))+r15] DB 102,15,56,220,208 xor esi,ecx punpcklqdq xmm12,xmm6 mov edi,eax rol eax,5 pxor xmm7,xmm8 add ebp,esi xor edi,ecx movdqa xmm3,xmm13 ror ebx,7 paddd xmm13,xmm6 add ebp,eax pxor xmm7,xmm12 add edx,DWORD[52+rsp] xor edi,ebx mov esi,ebp rol ebp,5 movdqa xmm12,xmm7 add edx,edi xor esi,ebx movdqa XMMWORD[32+rsp],xmm13 ror eax,7 add edx,ebp add ecx,DWORD[56+rsp] pslld xmm7,2 xor esi,eax mov edi,edx psrld xmm12,30 rol edx,5 add ecx,esi movups xmm0,XMMWORD[((-32))+r15] DB 102,15,56,220,209 xor edi,eax ror ebp,7 por xmm7,xmm12 add ecx,edx add ebx,DWORD[60+rsp] xor edi,ebp mov esi,ecx rol ecx,5 add ebx,edi xor esi,ebp ror edx,7 add ebx,ecx add eax,DWORD[rsp] xor esi,edx mov edi,ebx rol ebx,5 paddd xmm3,xmm7 add eax,esi xor edi,edx movdqa XMMWORD[48+rsp],xmm3 ror ecx,7 add eax,ebx add ebp,DWORD[4+rsp] movups xmm1,XMMWORD[((-16))+r15] DB 102,15,56,220,208 xor edi,ecx mov esi,eax rol eax,5 add ebp,edi xor esi,ecx ror ebx,7 add ebp,eax add edx,DWORD[8+rsp] xor esi,ebx mov edi,ebp rol ebp,5 add edx,esi xor edi,ebx ror eax,7 add edx,ebp add ecx,DWORD[12+rsp] xor edi,eax mov esi,edx rol edx,5 add ecx,edi movups xmm0,XMMWORD[r15] DB 102,15,56,220,209 xor esi,eax ror ebp,7 add ecx,edx cmp r10,r14 je NEAR $L$done_ssse3 movdqa xmm3,XMMWORD[64+r11] movdqa xmm13,XMMWORD[r11] movdqu xmm4,XMMWORD[r10] movdqu xmm5,XMMWORD[16+r10] movdqu xmm6,XMMWORD[32+r10] movdqu xmm7,XMMWORD[48+r10] DB 102,15,56,0,227 add r10,64 add ebx,DWORD[16+rsp] xor esi,ebp mov edi,ecx DB 102,15,56,0,235 rol ecx,5 add ebx,esi xor edi,ebp ror edx,7 paddd xmm4,xmm13 add ebx,ecx add eax,DWORD[20+rsp] xor edi,edx mov esi,ebx movdqa XMMWORD[rsp],xmm4 rol ebx,5 add eax,edi xor esi,edx ror ecx,7 psubd xmm4,xmm13 add eax,ebx add ebp,DWORD[24+rsp] movups xmm1,XMMWORD[16+r15] DB 102,15,56,220,208 xor esi,ecx mov edi,eax rol eax,5 add ebp,esi xor edi,ecx ror ebx,7 add ebp,eax add edx,DWORD[28+rsp] xor edi,ebx mov esi,ebp rol ebp,5 add edx,edi xor esi,ebx ror eax,7 add edx,ebp add ecx,DWORD[32+rsp] xor esi,eax mov edi,edx DB 102,15,56,0,243 rol edx,5 add ecx,esi movups xmm0,XMMWORD[32+r15] DB 102,15,56,220,209 xor edi,eax ror ebp,7 paddd xmm5,xmm13 add ecx,edx add ebx,DWORD[36+rsp] xor edi,ebp mov esi,ecx movdqa XMMWORD[16+rsp],xmm5 rol ecx,5 add ebx,edi xor esi,ebp ror edx,7 psubd xmm5,xmm13 add ebx,ecx add eax,DWORD[40+rsp] xor esi,edx mov edi,ebx rol ebx,5 add eax,esi xor edi,edx ror ecx,7 add eax,ebx add ebp,DWORD[44+rsp] movups xmm1,XMMWORD[48+r15] DB 102,15,56,220,208 xor edi,ecx mov esi,eax rol eax,5 add ebp,edi xor esi,ecx ror ebx,7 add ebp,eax add edx,DWORD[48+rsp] xor esi,ebx mov edi,ebp DB 102,15,56,0,251 rol ebp,5 add edx,esi xor edi,ebx ror eax,7 paddd xmm6,xmm13 add edx,ebp add ecx,DWORD[52+rsp] xor edi,eax mov esi,edx movdqa XMMWORD[32+rsp],xmm6 rol edx,5 add ecx,edi cmp r8d,11 jb NEAR $L$aesenclast4 movups xmm0,XMMWORD[64+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+r15] DB 102,15,56,220,208 je NEAR $L$aesenclast4 movups xmm0,XMMWORD[96+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+r15] DB 102,15,56,220,208 $L$aesenclast4: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+r15] xor esi,eax ror ebp,7 psubd xmm6,xmm13 add ecx,edx add ebx,DWORD[56+rsp] xor esi,ebp mov edi,ecx rol ecx,5 add ebx,esi xor edi,ebp ror edx,7 add ebx,ecx add eax,DWORD[60+rsp] xor edi,edx mov esi,ebx rol ebx,5 add eax,edi ror ecx,7 add eax,ebx movups XMMWORD[48+r12*1+r13],xmm2 lea r12,[64+r12] add eax,DWORD[r9] add esi,DWORD[4+r9] add ecx,DWORD[8+r9] add edx,DWORD[12+r9] mov DWORD[r9],eax add ebp,DWORD[16+r9] mov DWORD[4+r9],esi mov ebx,esi mov DWORD[8+r9],ecx mov edi,ecx mov DWORD[12+r9],edx xor edi,edx mov DWORD[16+r9],ebp and esi,edi jmp NEAR $L$oop_ssse3 $L$done_ssse3: add ebx,DWORD[16+rsp] xor esi,ebp mov edi,ecx rol ecx,5 add ebx,esi xor edi,ebp ror edx,7 add ebx,ecx add eax,DWORD[20+rsp] xor edi,edx mov esi,ebx rol ebx,5 add eax,edi xor esi,edx ror ecx,7 add eax,ebx add ebp,DWORD[24+rsp] movups xmm1,XMMWORD[16+r15] DB 102,15,56,220,208 xor esi,ecx mov edi,eax rol eax,5 add ebp,esi xor edi,ecx ror ebx,7 add ebp,eax add edx,DWORD[28+rsp] xor edi,ebx mov esi,ebp rol ebp,5 add edx,edi xor esi,ebx ror eax,7 add edx,ebp add ecx,DWORD[32+rsp] xor esi,eax mov edi,edx rol edx,5 add ecx,esi movups xmm0,XMMWORD[32+r15] DB 102,15,56,220,209 xor edi,eax ror ebp,7 add ecx,edx add ebx,DWORD[36+rsp] xor edi,ebp mov esi,ecx rol ecx,5 add ebx,edi xor esi,ebp ror edx,7 add ebx,ecx add eax,DWORD[40+rsp] xor esi,edx mov edi,ebx rol ebx,5 add eax,esi xor edi,edx ror ecx,7 add eax,ebx add ebp,DWORD[44+rsp] movups xmm1,XMMWORD[48+r15] DB 102,15,56,220,208 xor edi,ecx mov esi,eax rol eax,5 add ebp,edi xor esi,ecx ror ebx,7 add ebp,eax add edx,DWORD[48+rsp] xor esi,ebx mov edi,ebp rol ebp,5 add edx,esi xor edi,ebx ror eax,7 add edx,ebp add ecx,DWORD[52+rsp] xor edi,eax mov esi,edx rol edx,5 add ecx,edi cmp r8d,11 jb NEAR $L$aesenclast5 movups xmm0,XMMWORD[64+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+r15] DB 102,15,56,220,208 je NEAR $L$aesenclast5 movups xmm0,XMMWORD[96+r15] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+r15] DB 102,15,56,220,208 $L$aesenclast5: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+r15] xor esi,eax ror ebp,7 add ecx,edx add ebx,DWORD[56+rsp] xor esi,ebp mov edi,ecx rol ecx,5 add ebx,esi xor edi,ebp ror edx,7 add ebx,ecx add eax,DWORD[60+rsp] xor edi,edx mov esi,ebx rol ebx,5 add eax,edi ror ecx,7 add eax,ebx movups XMMWORD[48+r12*1+r13],xmm2 mov r8,QWORD[88+rsp] add eax,DWORD[r9] add esi,DWORD[4+r9] add ecx,DWORD[8+r9] mov DWORD[r9],eax add edx,DWORD[12+r9] mov DWORD[4+r9],esi add ebp,DWORD[16+r9] mov DWORD[8+r9],ecx mov DWORD[12+r9],edx mov DWORD[16+r9],ebp movups XMMWORD[r8],xmm2 movaps xmm6,XMMWORD[((96+0))+rsp] movaps xmm7,XMMWORD[((96+16))+rsp] movaps xmm8,XMMWORD[((96+32))+rsp] movaps xmm9,XMMWORD[((96+48))+rsp] movaps xmm10,XMMWORD[((96+64))+rsp] movaps xmm11,XMMWORD[((96+80))+rsp] movaps xmm12,XMMWORD[((96+96))+rsp] movaps xmm13,XMMWORD[((96+112))+rsp] movaps xmm14,XMMWORD[((96+128))+rsp] movaps xmm15,XMMWORD[((96+144))+rsp] lea rsi,[264+rsp] mov r15,QWORD[rsi] mov r14,QWORD[8+rsi] mov r13,QWORD[16+rsi] mov r12,QWORD[24+rsi] mov rbp,QWORD[32+rsi] mov rbx,QWORD[40+rsi] lea rsp,[48+rsi] $L$epilogue_ssse3: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret $L$SEH_end_aesni_cbc_sha1_enc_ssse3: ALIGN 64 K_XX_XX: DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 DB 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115 DB 116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52 DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 DB 114,103,62,0 ALIGN 64 ALIGN 32 aesni_cbc_sha1_enc_shaext: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp $L$SEH_begin_aesni_cbc_sha1_enc_shaext: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 mov r8,QWORD[40+rsp] mov r9,QWORD[48+rsp] mov r10,QWORD[56+rsp] lea rsp,[((-168))+rsp] movaps XMMWORD[(-8-160)+rax],xmm6 movaps XMMWORD[(-8-144)+rax],xmm7 movaps XMMWORD[(-8-128)+rax],xmm8 movaps XMMWORD[(-8-112)+rax],xmm9 movaps XMMWORD[(-8-96)+rax],xmm10 movaps XMMWORD[(-8-80)+rax],xmm11 movaps XMMWORD[(-8-64)+rax],xmm12 movaps XMMWORD[(-8-48)+rax],xmm13 movaps XMMWORD[(-8-32)+rax],xmm14 movaps XMMWORD[(-8-16)+rax],xmm15 $L$prologue_shaext: movdqu xmm8,XMMWORD[r9] movd xmm9,DWORD[16+r9] movdqa xmm7,XMMWORD[((K_XX_XX+80))] mov r11d,DWORD[240+rcx] sub rsi,rdi movups xmm15,XMMWORD[rcx] movups xmm2,XMMWORD[r8] movups xmm0,XMMWORD[16+rcx] lea rcx,[112+rcx] pshufd xmm8,xmm8,27 pshufd xmm9,xmm9,27 jmp NEAR $L$oop_shaext ALIGN 16 $L$oop_shaext: movups xmm14,XMMWORD[rdi] xorps xmm14,xmm15 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+rcx] DB 102,15,56,220,208 movdqu xmm3,XMMWORD[r10] movdqa xmm12,xmm9 DB 102,15,56,0,223 movdqu xmm4,XMMWORD[16+r10] movdqa xmm11,xmm8 movups xmm0,XMMWORD[((-64))+rcx] DB 102,15,56,220,209 DB 102,15,56,0,231 paddd xmm9,xmm3 movdqu xmm5,XMMWORD[32+r10] lea r10,[64+r10] pxor xmm3,xmm12 movups xmm1,XMMWORD[((-48))+rcx] DB 102,15,56,220,208 pxor xmm3,xmm12 movdqa xmm10,xmm8 DB 102,15,56,0,239 DB 69,15,58,204,193,0 DB 68,15,56,200,212 movups xmm0,XMMWORD[((-32))+rcx] DB 102,15,56,220,209 DB 15,56,201,220 movdqu xmm6,XMMWORD[((-16))+r10] movdqa xmm9,xmm8 DB 102,15,56,0,247 movups xmm1,XMMWORD[((-16))+rcx] DB 102,15,56,220,208 DB 69,15,58,204,194,0 DB 68,15,56,200,205 pxor xmm3,xmm5 DB 15,56,201,229 movups xmm0,XMMWORD[rcx] DB 102,15,56,220,209 movdqa xmm10,xmm8 DB 69,15,58,204,193,0 DB 68,15,56,200,214 movups xmm1,XMMWORD[16+rcx] DB 102,15,56,220,208 DB 15,56,202,222 pxor xmm4,xmm6 DB 15,56,201,238 movups xmm0,XMMWORD[32+rcx] DB 102,15,56,220,209 movdqa xmm9,xmm8 DB 69,15,58,204,194,0 DB 68,15,56,200,203 movups xmm1,XMMWORD[48+rcx] DB 102,15,56,220,208 DB 15,56,202,227 pxor xmm5,xmm3 DB 15,56,201,243 cmp r11d,11 jb NEAR $L$aesenclast6 movups xmm0,XMMWORD[64+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+rcx] DB 102,15,56,220,208 je NEAR $L$aesenclast6 movups xmm0,XMMWORD[96+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+rcx] DB 102,15,56,220,208 $L$aesenclast6: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+rcx] movdqa xmm10,xmm8 DB 69,15,58,204,193,0 DB 68,15,56,200,212 movups xmm14,XMMWORD[16+rdi] xorps xmm14,xmm15 movups XMMWORD[rdi*1+rsi],xmm2 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+rcx] DB 102,15,56,220,208 DB 15,56,202,236 pxor xmm6,xmm4 DB 15,56,201,220 movups xmm0,XMMWORD[((-64))+rcx] DB 102,15,56,220,209 movdqa xmm9,xmm8 DB 69,15,58,204,194,1 DB 68,15,56,200,205 movups xmm1,XMMWORD[((-48))+rcx] DB 102,15,56,220,208 DB 15,56,202,245 pxor xmm3,xmm5 DB 15,56,201,229 movups xmm0,XMMWORD[((-32))+rcx] DB 102,15,56,220,209 movdqa xmm10,xmm8 DB 69,15,58,204,193,1 DB 68,15,56,200,214 movups xmm1,XMMWORD[((-16))+rcx] DB 102,15,56,220,208 DB 15,56,202,222 pxor xmm4,xmm6 DB 15,56,201,238 movups xmm0,XMMWORD[rcx] DB 102,15,56,220,209 movdqa xmm9,xmm8 DB 69,15,58,204,194,1 DB 68,15,56,200,203 movups xmm1,XMMWORD[16+rcx] DB 102,15,56,220,208 DB 15,56,202,227 pxor xmm5,xmm3 DB 15,56,201,243 movups xmm0,XMMWORD[32+rcx] DB 102,15,56,220,209 movdqa xmm10,xmm8 DB 69,15,58,204,193,1 DB 68,15,56,200,212 movups xmm1,XMMWORD[48+rcx] DB 102,15,56,220,208 DB 15,56,202,236 pxor xmm6,xmm4 DB 15,56,201,220 cmp r11d,11 jb NEAR $L$aesenclast7 movups xmm0,XMMWORD[64+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+rcx] DB 102,15,56,220,208 je NEAR $L$aesenclast7 movups xmm0,XMMWORD[96+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+rcx] DB 102,15,56,220,208 $L$aesenclast7: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+rcx] movdqa xmm9,xmm8 DB 69,15,58,204,194,1 DB 68,15,56,200,205 movups xmm14,XMMWORD[32+rdi] xorps xmm14,xmm15 movups XMMWORD[16+rdi*1+rsi],xmm2 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+rcx] DB 102,15,56,220,208 DB 15,56,202,245 pxor xmm3,xmm5 DB 15,56,201,229 movups xmm0,XMMWORD[((-64))+rcx] DB 102,15,56,220,209 movdqa xmm10,xmm8 DB 69,15,58,204,193,2 DB 68,15,56,200,214 movups xmm1,XMMWORD[((-48))+rcx] DB 102,15,56,220,208 DB 15,56,202,222 pxor xmm4,xmm6 DB 15,56,201,238 movups xmm0,XMMWORD[((-32))+rcx] DB 102,15,56,220,209 movdqa xmm9,xmm8 DB 69,15,58,204,194,2 DB 68,15,56,200,203 movups xmm1,XMMWORD[((-16))+rcx] DB 102,15,56,220,208 DB 15,56,202,227 pxor xmm5,xmm3 DB 15,56,201,243 movups xmm0,XMMWORD[rcx] DB 102,15,56,220,209 movdqa xmm10,xmm8 DB 69,15,58,204,193,2 DB 68,15,56,200,212 movups xmm1,XMMWORD[16+rcx] DB 102,15,56,220,208 DB 15,56,202,236 pxor xmm6,xmm4 DB 15,56,201,220 movups xmm0,XMMWORD[32+rcx] DB 102,15,56,220,209 movdqa xmm9,xmm8 DB 69,15,58,204,194,2 DB 68,15,56,200,205 movups xmm1,XMMWORD[48+rcx] DB 102,15,56,220,208 DB 15,56,202,245 pxor xmm3,xmm5 DB 15,56,201,229 cmp r11d,11 jb NEAR $L$aesenclast8 movups xmm0,XMMWORD[64+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+rcx] DB 102,15,56,220,208 je NEAR $L$aesenclast8 movups xmm0,XMMWORD[96+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+rcx] DB 102,15,56,220,208 $L$aesenclast8: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+rcx] movdqa xmm10,xmm8 DB 69,15,58,204,193,2 DB 68,15,56,200,214 movups xmm14,XMMWORD[48+rdi] xorps xmm14,xmm15 movups XMMWORD[32+rdi*1+rsi],xmm2 xorps xmm2,xmm14 movups xmm1,XMMWORD[((-80))+rcx] DB 102,15,56,220,208 DB 15,56,202,222 pxor xmm4,xmm6 DB 15,56,201,238 movups xmm0,XMMWORD[((-64))+rcx] DB 102,15,56,220,209 movdqa xmm9,xmm8 DB 69,15,58,204,194,3 DB 68,15,56,200,203 movups xmm1,XMMWORD[((-48))+rcx] DB 102,15,56,220,208 DB 15,56,202,227 pxor xmm5,xmm3 DB 15,56,201,243 movups xmm0,XMMWORD[((-32))+rcx] DB 102,15,56,220,209 movdqa xmm10,xmm8 DB 69,15,58,204,193,3 DB 68,15,56,200,212 DB 15,56,202,236 pxor xmm6,xmm4 movups xmm1,XMMWORD[((-16))+rcx] DB 102,15,56,220,208 movdqa xmm9,xmm8 DB 69,15,58,204,194,3 DB 68,15,56,200,205 DB 15,56,202,245 movups xmm0,XMMWORD[rcx] DB 102,15,56,220,209 movdqa xmm5,xmm12 movdqa xmm10,xmm8 DB 69,15,58,204,193,3 DB 68,15,56,200,214 movups xmm1,XMMWORD[16+rcx] DB 102,15,56,220,208 movdqa xmm9,xmm8 DB 69,15,58,204,194,3 DB 68,15,56,200,205 movups xmm0,XMMWORD[32+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[48+rcx] DB 102,15,56,220,208 cmp r11d,11 jb NEAR $L$aesenclast9 movups xmm0,XMMWORD[64+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[80+rcx] DB 102,15,56,220,208 je NEAR $L$aesenclast9 movups xmm0,XMMWORD[96+rcx] DB 102,15,56,220,209 movups xmm1,XMMWORD[112+rcx] DB 102,15,56,220,208 $L$aesenclast9: DB 102,15,56,221,209 movups xmm0,XMMWORD[((16-112))+rcx] dec rdx paddd xmm8,xmm11 movups XMMWORD[48+rdi*1+rsi],xmm2 lea rdi,[64+rdi] jnz NEAR $L$oop_shaext pshufd xmm8,xmm8,27 pshufd xmm9,xmm9,27 movups XMMWORD[r8],xmm2 movdqu XMMWORD[r9],xmm8 movd DWORD[16+r9],xmm9 movaps xmm6,XMMWORD[((-8-160))+rax] movaps xmm7,XMMWORD[((-8-144))+rax] movaps xmm8,XMMWORD[((-8-128))+rax] movaps xmm9,XMMWORD[((-8-112))+rax] movaps xmm10,XMMWORD[((-8-96))+rax] movaps xmm11,XMMWORD[((-8-80))+rax] movaps xmm12,XMMWORD[((-8-64))+rax] movaps xmm13,XMMWORD[((-8-48))+rax] movaps xmm14,XMMWORD[((-8-32))+rax] movaps xmm15,XMMWORD[((-8-16))+rax] mov rsp,rax $L$epilogue_shaext: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret $L$SEH_end_aesni_cbc_sha1_enc_shaext: EXTERN __imp_RtlVirtualUnwind ALIGN 16 ssse3_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$common_seh_tail mov rax,QWORD[152+r8] mov r10d,DWORD[4+r11] lea r10,[r10*1+rsi] cmp rbx,r10 jae NEAR $L$common_seh_tail lea r10,[aesni_cbc_sha1_enc_shaext] cmp rbx,r10 jb NEAR $L$seh_no_shaext lea rsi,[rax] lea rdi,[512+r8] mov ecx,20 DD 0xa548f3fc lea rax,[168+rax] jmp NEAR $L$common_seh_tail $L$seh_no_shaext: lea rsi,[96+rax] lea rdi,[512+r8] mov ecx,20 DD 0xa548f3fc lea rax,[264+rax] mov r15,QWORD[rax] mov r14,QWORD[8+rax] mov r13,QWORD[16+rax] mov r12,QWORD[24+rax] mov rbp,QWORD[32+rax] mov rbx,QWORD[40+rax] lea rax,[48+rax] mov QWORD[144+r8],rbx mov QWORD[160+r8],rbp mov QWORD[216+r8],r12 mov QWORD[224+r8],r13 mov QWORD[232+r8],r14 mov QWORD[240+r8],r15 $L$common_seh_tail: 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_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase DD $L$SEH_end_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase DD $L$SEH_info_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase DD $L$SEH_begin_aesni_cbc_sha1_enc_shaext wrt ..imagebase DD $L$SEH_end_aesni_cbc_sha1_enc_shaext wrt ..imagebase DD $L$SEH_info_aesni_cbc_sha1_enc_shaext wrt ..imagebase section .xdata rdata align=8 ALIGN 8 $L$SEH_info_aesni_cbc_sha1_enc_ssse3: DB 9,0,0,0 DD ssse3_handler wrt ..imagebase DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase $L$SEH_info_aesni_cbc_sha1_enc_shaext: DB 9,0,0,0 DD ssse3_handler wrt ..imagebase DD $L$prologue_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase