// File: /workspace/github_c_makefile_star2_O2/mjosaarinen[P]brutus/crypto_aead/tiaoxinv2/nim/tiaoxin-optimized.c
// Function: tiaoxin_optimized_decrypt
int tiaoxin_optimized_decrypt(unsigned char *m,unsigned long long *mlen,
			      unsigned char *nsec,
			      const unsigned char *c,unsigned long long clen,
			      const unsigned char *ad,unsigned long long adlen,
			      const unsigned char *npub,const unsigned char *k)
{	
  	
	unsigned char incomplete_block[32];
	unsigned long long i;
	__m128i T3[3];	
	__m128i T4[4];	
	__m128i T6[6];	
	__m128i W0, W1;		
	__m128i tmp;
	__m128i tmpM0,tmpM1;	
	__m128i Z0 	= constant8( 0x42,0x8a,0x2f,0x98,0xd7,0x28,0xae,0x22,0x71,0x37,0x44,0x91,0x23,0xef,0x65,0xcd );
	__m128i Z1 	= constant8( 0xb5,0xc0,0xfb,0xcf,0xec,0x4d,0x3b,0x2f,0xe9,0xb5,0xdb,0xa5,0x81,0x89,0xdb,0xbc );
	__m128i perm    = constant8( 7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8 );
	__m128i K;
	__m128i IV;
	__m128i Tag;
	__m128i C[4];
	
	/*
	 * Get the key and the nonce
	 */
	K  = load( (__m128i *) ( k ) );
	IV = load( (__m128i *) ( npub ) );	
	
	W0 = _mm_set_epi64x( 0, adlen );
	W1 = _mm_set_epi64x( 0, clen-16  );
	W0 = _mm_shuffle_epi8( W0 , perm  );
	W1 = _mm_shuffle_epi8( W1 , perm  );
	
	
	/*
	 * Initialization
	 */
	T3[0] = T4[0] = T6[0] = K;
	T3[1] = T4[1] = T6[1] = K;
	T3[2] = T4[2] = T6[2] = IV;
	T4[3] = Z0; T6[3] = Z1;
	T6[4] = T6[5] = xor(Z0,Z0);
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
	UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );	

	
	/*
	 * Process associated data blocks
	 */
	for( i = 0; i + 128 <= adlen; i+=128 ){	  
	      C[0] = load( (__m128i *) (ad + i +  0) );  
	      C[1] = load( (__m128i *) (ad + i + 16) );  
	      UPDATE( T3 , T4 , T6, C[0] , C[1] , xor(C[0],C[1]) );
	      C[2] = load( (__m128i *) (ad + i + 32) );  
	      C[3] = load( (__m128i *) (ad + i + 48) );  
	      UPDATE( T3 , T4 , T6, C[2] , C[3] , xor(C[2],C[3]) );
	      C[0] = load( (__m128i *) (ad + i + 64) );  
	      C[1] = load( (__m128i *) (ad + i + 80) );  
	      UPDATE( T3 , T4 , T6, C[0] , C[1] , xor(C[0],C[1]) );
	      C[2] = load( (__m128i *) (ad + i + 96) );  
	      C[3] = load( (__m128i *) (ad + i +112) );  	    	            	      
	      UPDATE( T3 , T4 , T6, C[2] , C[3] , xor(C[2],C[3]) );	  
	}  
	for( ; i+32 <= adlen; i+=32 ){	  
	      C[0] = load( (__m128i *) (ad + i +  0) );  
	      C[1] = load( (__m128i *) (ad + i + 16) );  	            	      
	      UPDATE( T3 , T4 , T6, C[0] , C[1] , xor(C[0],C[1]) );
	}
	// Incomplete block
	if( adlen > i ){
	  memset( incomplete_block , 0, 32 );
	  memcpy( incomplete_block , ad + i, adlen - i );
	  C[2] = load( (__m128i *) (incomplete_block +  0) );  
	  C[3] = load( (__m128i *) (incomplete_block + 16) );  	            	      
	  UPDATE( T3 , T4 , T6, C[2] , C[3] , xor(C[2],C[3]) );	  
	}	
	
	
	/*
	 * Decryption
	 */
	clen -= 16;
	if( clen < 0 )
	  return -1;
	
	for( i = 0; i + 128 <= clen; i+=128 ){	  
	      C[0] = load( (__m128i *) (c + i +  0) );  
	      C[1] = load( (__m128i *) (c + i + 16) );  
	      DECRYPTION_ROUND( T3 , T4 , T6, C[0] , C[1] , m + i +  0 , m + i +  16 );
	      C[2] = load( (__m128i *) (c + i + 32) );  
	      C[3] = load( (__m128i *) (c + i + 48) );  
	      DECRYPTION_ROUND( T3 , T4 , T6, C[2] , C[3] , m + i + 32 , m + i +  48 );
	      C[0] = load( (__m128i *) (c + i + 64) );  
	      C[1] = load( (__m128i *) (c + i + 80) );  
	      DECRYPTION_ROUND( T3 , T4 , T6, C[0] , C[1] , m + i + 64 , m + i +  80 );
	      C[2] = load( (__m128i *) (c + i + 96) );  
	      C[3] = load( (__m128i *) (c + i +112) ); 
	      DECRYPTION_ROUND( T3 , T4 , T6, C[2] , C[3] , m + i + 96 , m + i + 112 );	      
	}	
	for( ; i + 32 <= clen; i+=32 ){	  
	      C[0] = load( (__m128i *) (c + i +  0) );  
	      C[1] = load( (__m128i *) (c + i + 16) );  	            	      
	      DECRYPTION_ROUND( T3 , T4 , T6, C[0] , C[1] , m + i +  0 , m + i +  16 );	      		      
	}     	
	// Incomplete block
	if( clen > i ){
	  memset( incomplete_block , 0, 32 );
	  memcpy( incomplete_block , c + i, clen - i );
	  C[0] = load( (__m128i *) (incomplete_block +  0) );  
	  C[1] = load( (__m128i *) (incomplete_block + 16) );  	
	  UPDATE( T3 , T4 , T6 , xor(Z0,Z0), xor(Z0,Z0), xor(Z0,Z0) );
	  tmpM0  = xor( C[0] , xor( T3[0] , xor( T3[2] , xor( T4[1] , and( T6[3], T4[3] ) ) ) ) ) ; 
	  if( clen  - i <= 16 ){ 
	    store((__m128 *)incomplete_block, tmpM0); 
	    memset( incomplete_block + ((unsigned int)(clen  - i) ), 0, 16 - ((unsigned int)(clen  - i) ) );       
	    tmpM0 = load( incomplete_block);
	  }
	  tmpM1  = xor(xor( C[1] , xor( T6[0] , xor( T4[2] , xor( T3[1] , and( T6[5], T3[2] ) ) ) ) ),tmpM0); 	
	  if( clen - i > 16 ){ 
	    store((__m128 *)incomplete_block, tmpM1); 
	    memset( incomplete_block + (clen - i - 16 ), 0, 32 - (clen - i ) );
	    tmpM1 =  load( incomplete_block);
	  }
	  else{
	    tmpM1 = xor(Z0,Z0);
	  }
	  T3[0] = xor(T3[0],tmpM0);
	  T4[0] = xor(T4[0],tmpM1);
	  T6[0] = xor(T6[0],xor(tmpM0,tmpM1));	  
	  store((__m128 *)(incomplete_block+  0), tmpM0);
	  store((__m128 *)(incomplete_block+ 16), tmpM1);
	  memcpy( m + i +  0 , incomplete_block, clen - i );    	     
	}
	
	/*
	 * Finalization
	 */
	// Lengths
	UPDATE( T3 , T4 , T6 , W0 , W1 , xor(W0,W1) );
	// 20 additional rounds
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	
	UPDATE( T3 , T4 , T6 , Z1 , Z0 , Z1);	

	
	
	/*
	 * Produce the tag as XOR of all state words
	 */
	Tag  = xor(T3[0], xor(T3[1], xor(T3[2], xor(T4[0], xor(T4[1], xor(T4[2], xor(T4[3], 
	       xor(T6[0], xor(T6[1], xor(T6[2], xor(T6[3], xor(T6[4], T6[5] ) ) ) ) ) ) ) ) ) ) ) ) ;
	store( (__m128 *)( incomplete_block ), Tag );
	      
	/*
	 * Check if the tag is correct
	 */
	if(0!=memcmp(incomplete_block, c + clen , 16)) return -1;      
    
	
	
	// Set the length of the plaintext
	*mlen = clen;	
	
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rcx, %r14
movq %rsi, 0x108(%rsp)
movq %rdi, %r15
movq 0x170(%rsp), %rdx
movq 0x178(%rsp), %rax
movq 0x180(%rsp), %rcx
vmovdqa (%rcx), %xmm2
vmovdqa (%rax), %xmm3
vmovq %rdx, %xmm4
movq %r8, 0xa0(%rsp)
leaq -0x10(%r8), %rbp
vmovq %rbp, %xmm17
vmovdqa64 0x1ee0(%rip), %xmm16 # 0x4020
vpshufb %xmm16, %xmm4, %xmm0
vmovdqa %xmm0, 0x120(%rsp)
vmovdqa 0x1ea9(%rip), %xmm14    # 0x4000
vaesenc %xmm14, %xmm3, %xmm6
vaesenc %xmm14, %xmm2, %xmm4
vmovdqa 0x1ea7(%rip), %xmm0     # 0x4010
vpxor %xmm2, %xmm6, %xmm5
vaesenc %xmm0, %xmm14, %xmm7
vpxor %xmm2, %xmm7, %xmm7
vpxor %xmm8, %xmm8, %xmm8
vaesenc %xmm14, %xmm8, %xmm8
vpxor %xmm2, %xmm8, %xmm8
vaesenc %xmm14, %xmm5, %xmm9
vpxor %xmm5, %xmm4, %xmm10
vaesenc %xmm0, %xmm3, %xmm3
vaesenc %xmm14, %xmm7, %xmm11
vpxor %xmm7, %xmm3, %xmm3
vaesenc %xmm14, %xmm8, %xmm5
vaesenc %xmm14, %xmm4, %xmm7
vaesenc %xmm14, %xmm10, %xmm8
vpxor %xmm7, %xmm10, %xmm10
vaesenc %xmm0, %xmm2, %xmm12
vaesenc %xmm14, %xmm3, %xmm13
vpxor %xmm3, %xmm12, %xmm3
vaesenc %xmm14, %xmm0, %xmm12
vpxor %xmm2, %xmm12, %xmm12
vaesenc %xmm14, %xmm9, %xmm2
vaesenc %xmm14, %xmm10, %xmm9
vpxor %xmm2, %xmm10, %xmm10
vaesenc %xmm0, %xmm4, %xmm2
vaesenc %xmm14, %xmm3, %xmm1
vpxor %xmm3, %xmm2, %xmm3
vaesenc %xmm14, %xmm12, %xmm2
vpxor %xmm6, %xmm12, %xmm6
vaesenc %xmm14, %xmm8, %xmm8
vaesenc %xmm14, %xmm10, %xmm12
vpxor %xmm10, %xmm8, %xmm10
vaesenc %xmm0, %xmm11, %xmm11
vaesenc %xmm14, %xmm3, %xmm8
vpxor %xmm3, %xmm11, %xmm11
vaesenc %xmm14, %xmm6, %xmm3
vpxor %xmm4, %xmm6, %xmm6
vaesenc %xmm14, %xmm9, %xmm4
vaesenc %xmm14, %xmm10, %xmm15
vpxor %xmm4, %xmm10, %xmm10
vaesenc %xmm0, %xmm13, %xmm4
vaesenc %xmm14, %xmm11, %xmm9
vpxor %xmm4, %xmm11, %xmm11
vaesenc %xmm14, %xmm6, %xmm4
vpxor %xmm7, %xmm6, %xmm13
vaesenc %xmm14, %xmm12, %xmm7
vpxor %xmm7, %xmm10, %xmm12
vaesenc %xmm14, %xmm10, %xmm10
vaesenc %xmm0, %xmm1, %xmm7
vpxor %xmm7, %xmm11, %xmm1
vaesenc %xmm14, %xmm11, %xmm7
vaesenc %xmm14, %xmm5, %xmm5
vpxor %xmm6, %xmm5, %xmm11
vpxor %xmm5, %xmm13, %xmm5
vaesenc %xmm14, %xmm13, %xmm6
vaesenc %xmm14, %xmm15, %xmm13
vpxor %xmm12, %xmm13, %xmm13
vaesenc %xmm14, %xmm12, %xmm12
vmovdqa %xmm0, %xmm15
vaesenc %xmm0, %xmm8, %xmm8
vpxor %xmm1, %xmm8, %xmm8
vaesenc %xmm14, %xmm1, %xmm0
vaesenc %xmm14, %xmm5, %xmm5
vaesenc %xmm14, %xmm10, %xmm10
vpxor %xmm13, %xmm10, %xmm10
vaesenc %xmm14, %xmm13, %xmm13
vaesenc %xmm15, %xmm9, %xmm9
vmovdqa64 %xmm15, %xmm18
vpxor %xmm8, %xmm9, %xmm15
vaesenc %xmm14, %xmm8, %xmm9
vaesenc %xmm14, %xmm2, %xmm2
vpxor %xmm2, %xmm11, %xmm1
vaesenc %xmm14, %xmm11, %xmm2
vaesenc %xmm14, %xmm12, %xmm8
vpxor %xmm10, %xmm8, %xmm11
vaesenc %xmm14, %xmm10, %xmm10
vmovdqa64 %xmm18, %xmm8
vaesenc %xmm8, %xmm7, %xmm7
vpxor %xmm7, %xmm15, %xmm7
vaesenc %xmm14, %xmm15, %xmm15
vaesenc %xmm14, %xmm3, %xmm3
vpxor %xmm1, %xmm3, %xmm12
vaesenc %xmm14, %xmm1, %xmm1
vmovdqa64 %xmm1, %xmm21
vaesenc %xmm14, %xmm13, %xmm1
vpxor %xmm1, %xmm11, %xmm1
vaesenc %xmm14, %xmm11, %xmm11
vaesenc %xmm8, %xmm0, %xmm13
vmovdqa64 %xmm18, %xmm3
vpxor %xmm7, %xmm13, %xmm13
vaesenc %xmm14, %xmm7, %xmm7
vaesenc %xmm14, %xmm4, %xmm4
vpxor %xmm4, %xmm12, %xmm0
vaesenc %xmm14, %xmm12, %xmm12
vaesenc %xmm14, %xmm10, %xmm4
vpxor %xmm1, %xmm4, %xmm10
vaesenc %xmm14, %xmm1, %xmm1
vaesenc %xmm3, %xmm9, %xmm4
vpxor %xmm4, %xmm13, %xmm9
vaesenc %xmm14, %xmm13, %xmm4
vaesenc %xmm14, %xmm6, %xmm6
vpxor %xmm0, %xmm6, %xmm6
vaesenc %xmm14, %xmm0, %xmm0
vaesenc %xmm14, %xmm11, %xmm11
vpxor %xmm10, %xmm11, %xmm11
vaesenc %xmm14, %xmm10, %xmm10
vaesenc %xmm3, %xmm15, %xmm8
vpxor %xmm9, %xmm8, %xmm8
vaesenc %xmm14, %xmm9, %xmm15
vmovdqa %xmm0, %xmm9
vaesenc %xmm14, %xmm5, %xmm5
vpxor %xmm6, %xmm5, %xmm5
vaesenc %xmm14, %xmm6, %xmm0
vaesenc %xmm14, %xmm1, %xmm1
vpxor %xmm1, %xmm11, %xmm1
vaesenc %xmm14, %xmm11, %xmm6
vmovdqa64 %xmm6, %xmm20
vaesenc %xmm3, %xmm7, %xmm6
vpxor %xmm6, %xmm8, %xmm6
vaesenc %xmm14, %xmm8, %xmm7
vmovdqa64 %xmm7, %xmm19
vaesenc %xmm14, %xmm2, %xmm2
vpxor %xmm5, %xmm2, %xmm7
vaesenc %xmm14, %xmm5, %xmm11
vaesenc %xmm14, %xmm10, %xmm2
vpxor %xmm1, %xmm2, %xmm10
vaesenc %xmm14, %xmm1, %xmm2
vaesenc %xmm3, %xmm4, %xmm1
vpxorq %xmm6, %xmm1, %xmm18
vaesenc %xmm14, %xmm6, %xmm13
vmovdqa64 %xmm21, %xmm1
vaesenc %xmm14, %xmm1, %xmm1
vpxor %xmm7, %xmm1, %xmm5
vaesenc %xmm14, %xmm7, %xmm6
vmovdqa %xmm0, %xmm7
xorl %eax, %eax
vpshufb %xmm16, %xmm17, %xmm0
vmovdqa %xmm0, 0x110(%rsp)
leaq 0x80(%rax), %rcx
cmpq %rdx, %rcx
ja 0x2553
vmovdqa (%r9,%rax), %xmm0
vmovdqa 0x10(%r9,%rax), %xmm1
vmovdqa %xmm12, %xmm8
vmovdqa %xmm13, %xmm12
vmovdqa %xmm5, %xmm13
vmovdqa 0x20(%r9,%rax), %xmm5
vmovdqa64 %xmm20, %xmm3
vaesenc %xmm0, %xmm3, %xmm3
vaesenc %xmm1, %xmm15, %xmm4
vpxor %xmm0, %xmm1, %xmm0
vaesenc %xmm0, %xmm8, %xmm0
vmovdqa64 %xmm6, %xmm16
vmovdqa 0x30(%r9,%rax), %xmm6
vmovdqa %xmm7, %xmm15
vpxor %xmm3, %xmm10, %xmm7
vaesenc %xmm14, %xmm10, %xmm8
vmovdqa64 %xmm18, %xmm3
vpxorq %xmm18, %xmm4, %xmm1
vaesenc %xmm14, %xmm3, %xmm3
vaesenc %xmm5, %xmm2, %xmm2
vpxor %xmm7, %xmm2, %xmm2
vaesenc %xmm14, %xmm7, %xmm7
vmovdqa64 %xmm19, %xmm4
vaesenc %xmm6, %xmm4, %xmm4
vpxor %xmm5, %xmm6, %xmm5
vaesenc %xmm5, %xmm9, %xmm5
vmovdqa 0x40(%r9,%rax), %xmm6
vmovdqa 0x50(%r9,%rax), %xmm9
vaesenc %xmm6, %xmm8, %xmm8
vaesenc %xmm9, %xmm12, %xmm10
vpxor %xmm6, %xmm9, %xmm6
vaesenc %xmm6, %xmm15, %xmm6
vmovdqa 0x60(%r9,%rax), %xmm9
vmovdqa %xmm11, %xmm12
vmovdqa 0x70(%r9,%rax), %xmm11
vaesenc %xmm9, %xmm7, %xmm7
vaesenc %xmm11, %xmm3, %xmm3
vpxor %xmm9, %xmm11, %xmm9
vaesenc %xmm9, %xmm12, %xmm9
vpxor %xmm0, %xmm13, %xmm0
vaesenc %xmm14, %xmm13, %xmm11
vpxor %xmm1, %xmm4, %xmm4
vaesenc %xmm14, %xmm1, %xmm15
vpxor %xmm0, %xmm5, %xmm1
vaesenc %xmm14, %xmm0, %xmm0
vpxor %xmm2, %xmm8, %xmm5
vaesenc %xmm14, %xmm2, %xmm2
vmovdqa64 %xmm2, %xmm20
vpxor %xmm4, %xmm10, %xmm8
vaesenc %xmm14, %xmm4, %xmm2
vmovdqa64 %xmm2, %xmm19
vpxor %xmm1, %xmm6, %xmm4
vaesenc %xmm14, %xmm1, %xmm1
vpxor %xmm5, %xmm7, %xmm10
vaesenc %xmm14, %xmm5, %xmm2
vpxorq %xmm8, %xmm3, %xmm18
vaesenc %xmm14, %xmm8, %xmm13
vpxor %xmm4, %xmm9, %xmm5
vmovdqa64 %xmm16, %xmm12
vaesenc %xmm14, %xmm4, %xmm6
vmovdqa %xmm11, %xmm9
vmovdqa %xmm0, %xmm7
vmovdqa %xmm1, %xmm11
movq %rcx, %rax
jmp 0x23f9
vmovdqa64 %xmm15, %xmm16
vmovdqa64 %xmm18, %xmm8
vmovdqa64 %xmm20, %xmm3
leaq 0x20(%rax), %rcx
cmpq %rdx, %rcx
ja 0x25e1
vmovdqa (%r9,%rax), %xmm0
vmovdqa 0x10(%r9,%rax), %xmm1
vmovdqa %xmm2, %xmm15
vaesenc %xmm0, %xmm3, %xmm3
vaesenc %xmm14, %xmm10, %xmm2
vpxor %xmm3, %xmm10, %xmm10
vmovdqa64 %xmm16, %xmm3
vaesenc %xmm1, %xmm3, %xmm3
vaesenc %xmm14, %xmm8, %xmm4
vpxor %xmm3, %xmm8, %xmm8
vpxor %xmm0, %xmm1, %xmm0
vaesenc %xmm0, %xmm12, %xmm0
vaesenc %xmm14, %xmm5, %xmm1
vpxor %xmm5, %xmm0, %xmm5
vmovdqa64 %xmm19, %xmm16
vmovdqa64 %xmm13, %xmm19
vmovdqa %xmm9, %xmm12
vmovdqa %xmm7, %xmm9
vmovdqa %xmm11, %xmm7
vmovdqa %xmm6, %xmm11
vmovdqa %xmm4, %xmm13
vmovdqa %xmm1, %xmm6
vmovdqa %xmm15, %xmm3
movq %rcx, %rax
jmp 0x2565
vmovdqa %xmm7, 0x30(%rsp)
subq %rax, %rdx
jbe 0x2712
vpxor %xmm0, %xmm0, %xmm0
leaq 0x70(%rsp), %r13
vmovdqu %ymm0, (%r13)
addq %rax, %r9
movq %r13, %rdi
movq %r9, %rsi
vmovdqa64 %xmm19, 0xe0(%rsp)
vmovdqa %xmm13, 0xc0(%rsp)
vmovdqa64 %xmm16, 0x40(%rsp)
vmovdqa %xmm6, 0xf0(%rsp)
vmovdqa %xmm10, 0x20(%rsp)
vmovdqa %xmm11, 0xd0(%rsp)
vmovdqa %xmm8, 0x10(%rsp)
vmovdqa %xmm9, 0xb0(%rsp)
vmovdqa %xmm5, (%rsp)
vmovdqa %xmm12, 0x50(%rsp)
vmovdqa %xmm2, 0x60(%rsp)
vmovdqa %xmm3, 0x90(%rsp)
vzeroupper
callq 0x1090
vmovdqa (%rsp), %xmm5
vmovdqa 0x10(%rsp), %xmm8
vmovdqa 0x20(%rsp), %xmm10
vmovdqa 0x197d(%rip), %xmm14    # 0x4000
vmovdqa (%r13), %xmm1
vmovdqa 0x10(%r13), %xmm2
vmovdqa 0x90(%rsp), %xmm0
vaesenc %xmm1, %xmm0, %xmm3
vaesenc %xmm14, %xmm10, %xmm0
vpxor %xmm3, %xmm10, %xmm10
vmovdqa 0x40(%rsp), %xmm3
vaesenc %xmm2, %xmm3, %xmm3
vmovdqa 0xe0(%rsp), %xmm15
vmovdqa64 0xc0(%rsp), %xmm19
vaesenc %xmm14, %xmm8, %xmm13
vpxor %xmm3, %xmm8, %xmm8
vmovdqa 0x60(%rsp), %xmm3
vpxor %xmm1, %xmm2, %xmm1
vmovdqa 0x50(%rsp), %xmm2
vaesenc %xmm1, %xmm2, %xmm1
vmovdqa 0xb0(%rsp), %xmm12
vmovdqa 0x30(%rsp), %xmm9
vmovdqa 0xd0(%rsp), %xmm2
vmovdqa %xmm2, 0x30(%rsp)
vmovdqa 0xf0(%rsp), %xmm11
vaesenc %xmm14, %xmm5, %xmm6
vpxor %xmm5, %xmm1, %xmm5
jmp 0x271c
vmovdqa %xmm2, %xmm0
vmovdqa64 %xmm16, %xmm15
vmovdqa64 %xmm6, %xmm16
leaq (%rsp,%rbp), %r13
addq $0x70, %r13
xorl %ebx, %ebx
leaq 0x80(%rbx), %rax
cmpq %rbp, %rax
ja 0x2918
vaesenc %xmm5, %xmm12, %xmm4
vaesenc %xmm10, %xmm3, %xmm6
vaesenc %xmm14, %xmm8, %xmm1
vaesenc %xmm8, %xmm15, %xmm7
vmovdqa %xmm5, %xmm2
vaesenc %xmm14, %xmm10, %xmm5
vaesenc %xmm14, %xmm2, %xmm2
vmovdqa (%r14,%rbx), %xmm8
vmovdqa64 %xmm19, %xmm10
vpternlogq $0x78, %xmm19, %xmm11, %xmm8
vpternlogq $0x96, %xmm0, %xmm1, %xmm8
vmovdqa 0x10(%r14,%rbx), %xmm3
vpternlogq $0x78, %xmm9, %xmm0, %xmm3
vpternlogq $0x96, %xmm13, %xmm5, %xmm3
vpxor %xmm6, %xmm8, %xmm6
vpternlogq $0x96, %xmm3, %xmm6, %xmm4
vpxor %xmm7, %xmm4, %xmm7
vmovdqu %xmm6, (%r15,%rbx)
vmovdqu %xmm4, 0x10(%r15,%rbx)
vaesenc %xmm3, %xmm9, %xmm6
vaesenc %xmm8, %xmm0, %xmm9
vaesenc %xmm14, %xmm7, %xmm15
vaesenc %xmm7, %xmm10, %xmm10
vmovdqa %xmm11, %xmm12
vmovdqa 0x20(%r14,%rbx), %xmm11
vaesenc %xmm14, %xmm8, %xmm0
vmovdqa 0x30(%r14,%rbx), %xmm7
vmovdqa 0x30(%rsp), %xmm4
vpternlogq $0x78, %xmm4, %xmm5, %xmm7
vpternlogq $0x96, %xmm1, %xmm0, %xmm7
vaesenc %xmm7, %xmm4, %xmm4
vaesenc %xmm14, %xmm3, %xmm3
vmovdqa64 %xmm3, %xmm17
vpternlogq $0x78, %xmm13, %xmm16, %xmm11
vpternlogq $0x96, %xmm5, %xmm15, %xmm11
vpxor %xmm9, %xmm11, %xmm8
vpternlogq $0x96, %xmm7, %xmm8, %xmm6
vpxor %xmm6, %xmm10, %xmm9
vmovdqu %xmm8, 0x20(%r15,%rbx)
vmovdqu %xmm6, 0x30(%r15,%rbx)
vaesenc %xmm11, %xmm5, %xmm5
vaesenc %xmm14, %xmm9, %xmm10
vaesenc %xmm9, %xmm13, %xmm8
vaesenc %xmm14, %xmm11, %xmm3
vmovdqa 0x50(%r14,%rbx), %xmm6
vpternlogq $0x78, %xmm12, %xmm0, %xmm6
vpternlogq $0x96, %xmm15, %xmm3, %xmm6
vaesenc %xmm6, %xmm12, %xmm9
vmovdqa %xmm10, %xmm12
vaesenc %xmm14, %xmm7, %xmm7
vmovdqa %xmm2, %xmm11
vpternlogq $0x6a, 0x40(%r14,%rbx), %xmm1, %xmm2
vpternlogq $0x96, %xmm0, %xmm10, %xmm2
vpxor %xmm5, %xmm2, %xmm5
vpternlogq $0x96, %xmm6, %xmm5, %xmm4
vpxor %xmm4, %xmm8, %xmm8
vmovdqu %xmm5, 0x40(%r15,%rbx)
vmovdqu %xmm4, 0x50(%r15,%rbx)
vaesenc %xmm2, %xmm0, %xmm4
vaesenc %xmm14, %xmm8, %xmm13
vaesenc %xmm8, %xmm1, %xmm1
vaesenc %xmm14, %xmm2, %xmm0
vmovdqa %xmm3, %xmm5
vpternlogq $0x6a, 0x70(%r14,%rbx), %xmm16, %xmm5
vaesenc %xmm14, %xmm6, %xmm2
vmovdqa %xmm15, %xmm10
vpternlogq $0x6a, 0x60(%r14,%rbx), %xmm17, %xmm10
vpternlogq $0x96, %xmm3, %xmm13, %xmm10
vmovdqa64 %xmm12, %xmm19
vpternlogq $0x96, %xmm12, %xmm0, %xmm5
vmovdqa64 %xmm16, %xmm12
vpxor %xmm4, %xmm10, %xmm4
vpternlogq $0x96, %xmm5, %xmm4, %xmm9
vpxor %xmm1, %xmm9, %xmm8
vmovdqu %xmm4, 0x60(%r15,%rbx)
vmovdqu %xmm9, 0x70(%r15,%rbx)
vmovdqa %xmm11, %xmm9
vmovdqa64 %xmm17, 0x30(%rsp)
vmovdqa %xmm7, %xmm11
vmovdqa64 %xmm2, %xmm16
movq %rax, %rbx
jmp 0x272c
vmovdqa64 %xmm13, %xmm17
subq %rbx, %r13
vmovdqa64 %xmm16, %xmm6
vmovdqa 0x30(%rsp), %xmm7
vmovdqa %xmm0, %xmm1
leaq 0x20(%rbx), %rax
cmpq %rbp, %rax
ja 0x29e4
vaesenc %xmm5, %xmm12, %xmm2
vaesenc %xmm10, %xmm3, %xmm3
vaesenc %xmm8, %xmm15, %xmm4
vaesenc %xmm14, %xmm10, %xmm0
vmovdqa64 %xmm1, %xmm16
vaesenc %xmm14, %xmm5, %xmm1
vmovdqa (%r14,%rbx), %xmm10
vmovdqa64 %xmm19, %xmm15
vpternlogq $0x78, %xmm19, %xmm11, %xmm10
vmovdqa 0x10(%r14,%rbx), %xmm13
vpternlogq $0x78, %xmm9, %xmm16, %xmm13
vpternlogq $0x96, %xmm17, %xmm0, %xmm13
vmovdqa64 %xmm17, %xmm19
vaesenc %xmm14, %xmm8, %xmm5
vpternlogq $0x96, %xmm16, %xmm5, %xmm10
vpxor %xmm3, %xmm10, %xmm3
vpternlogq $0x96, %xmm13, %xmm3, %xmm2
vpxor %xmm4, %xmm2, %xmm8
vmovdqu %xmm3, (%r15,%rbx)
vmovdqu %xmm2, 0x10(%r15,%rbx)
addq $-0x20, %r13
vmovdqa64 %xmm5, %xmm17
vmovdqa %xmm13, %xmm5
vmovdqa %xmm9, %xmm12
vmovdqa %xmm7, %xmm9
vmovdqa %xmm11, %xmm7
vmovdqa %xmm6, %xmm11
vmovdqa %xmm1, %xmm6
vmovdqa64 %xmm16, %xmm3
movq %rax, %rbx
jmp 0x292d
vmovdqa %xmm8, 0x10(%rsp)
vmovdqa %xmm10, 0x20(%rsp)
movq %rbp, %r12
subq %rbx, %r12
jbe 0x2b44
vmovdqa %xmm9, 0xb0(%rsp)
vmovdqa %xmm7, 0x30(%rsp)
vmovdqa %xmm6, 0xf0(%rsp)
vmovdqa64 %xmm17, 0xc0(%rsp)
vpxor %xmm0, %xmm0, %xmm0
leaq 0x70(%rsp), %rdi
vmovdqu %ymm0, (%rdi)
leaq (%r14,%rbx), %rsi
movq %r12, %rdx
vmovdqa64 %xmm19, 0xe0(%rsp)
vmovdqa %xmm15, 0x40(%rsp)
vmovdqa %xmm11, 0xd0(%rsp)
vmovdqa %xmm5, (%rsp)
vmovdqa %xmm12, 0x50(%rsp)
vmovdqa %xmm1, 0x90(%rsp)
vmovdqa %xmm3, 0x60(%rsp)
vzeroupper
callq 0x1090
vmovdqa (%rsp), %xmm2
vpxor %xmm4, %xmm4, %xmm4
vmovdqa 0x60(%rsp), %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vmovdqa 0x20(%rsp), %xmm1
vmovdqa 0x1575(%rip), %xmm7     # 0x4000
vaesenc %xmm7, %xmm1, %xmm3
vpxor %xmm1, %xmm0, %xmm6
vmovdqa 0x40(%rsp), %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vmovdqa 0x10(%rsp), %xmm1
vaesenc %xmm7, %xmm1, %xmm5
vpxor %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, 0x10(%rsp)
vmovdqa 0x90(%rsp), %xmm1
vmovdqa 0x50(%rsp), %xmm0
vaesenc %xmm4, %xmm0, %xmm0
vaesenc %xmm7, %xmm2, %xmm4
vmovdqa %xmm4, 0x50(%rsp)
vpxor %xmm2, %xmm0, %xmm2
vmovdqa 0xd0(%rsp), %xmm0
vpand 0xe0(%rsp), %xmm0, %xmm4
leaq 0x70(%rsp), %rax
vpternlogq $0x96, (%rax), %xmm1, %xmm4
vmovdqa %xmm5, 0x40(%rsp)
vmovdqa %xmm6, 0x20(%rsp)
vpternlogq $0x96, %xmm6, %xmm5, %xmm4
cmpq $0x10, %r12
vmovdqa %xmm3, 0x60(%rsp)
vmovdqa %xmm2, (%rsp)
ja 0x2b5b
vmovdqa %xmm4, 0x70(%rsp)
movq %rbx, %rdx
subq 0xa0(%rsp), %rdx
addq $0x20, %rdx
movq %r13, %rdi
xorl %esi, %esi
callq 0x1030
vpxor %xmm1, %xmm1, %xmm1
vmovdqa 0x70(%rsp), %xmm2
jmp 0x2bb8
vmovdqa %xmm1, %xmm10
vmovdqa %xmm3, %xmm13
vmovdqa64 %xmm15, %xmm16
vmovdqa %xmm9, %xmm2
jmp 0x2c58
vmovdqa 0x80(%rsp), %xmm0
vpternlogq $0x78, 0xb0(%rsp), %xmm1, %xmm0
vpternlogq $0x96, 0xc0(%rsp), %xmm3, %xmm0
vpternlogq $0x96, %xmm2, %xmm4, %xmm0
vmovdqa %xmm0, 0x70(%rsp)
addq $-0x10, %r13
movq %rbx, %rdx
subq 0xa0(%rsp), %rdx
addq $0x30, %rdx
movq %r13, %rdi
xorl %esi, %esi
vmovdqa %xmm4, 0xa0(%rsp)
callq 0x1030
vmovdqa 0xa0(%rsp), %xmm2
vmovdqa 0x70(%rsp), %xmm1
vpxor 0x20(%rsp), %xmm2, %xmm0
vmovdqa %xmm0, 0x20(%rsp)
vpxor 0x10(%rsp), %xmm1, %xmm0
vmovdqa %xmm0, 0x10(%rsp)
vmovdqa (%rsp), %xmm0
vpternlogq $0x96, %xmm1, %xmm2, %xmm0
vmovdqa %xmm0, (%rsp)
leaq 0x70(%rsp), %rsi
vmovdqa %xmm2, (%rsi)
vmovdqa %xmm1, 0x10(%rsi)
addq %rbx, %r15
movq %r15, %rdi
movq %r12, %rdx
callq 0x1090
vmovdqa64 0xe0(%rsp), %xmm16
vmovdqa64 0xc0(%rsp), %xmm19
vmovdqa64 0x40(%rsp), %xmm17
vmovdqa 0xb0(%rsp), %xmm12
vmovdqa 0x30(%rsp), %xmm2
vmovdqa 0xd0(%rsp), %xmm7
vmovdqa 0xf0(%rsp), %xmm11
vmovdqa 0x50(%rsp), %xmm6
vmovdqa 0x13bc(%rip), %xmm14    # 0x4000
vmovdqa (%rsp), %xmm5
vmovdqa 0x90(%rsp), %xmm13
vmovdqa 0x60(%rsp), %xmm10
vmovdqa 0x120(%rsp), %xmm8
vmovdqa 0x110(%rsp), %xmm9
vpxor %xmm9, %xmm8, %xmm0
vaesenc %xmm0, %xmm12, %xmm0
vpxor %xmm5, %xmm0, %xmm1
vaesenc %xmm14, %xmm5, %xmm0
vmovdqa 0x138b(%rip), %xmm15    # 0x4010
vaesenc %xmm15, %xmm2, %xmm2
vpxor %xmm1, %xmm2, %xmm2
vaesenc %xmm14, %xmm1, %xmm1
vaesenc %xmm15, %xmm7, %xmm3
vpxor %xmm2, %xmm3, %xmm3
vaesenc %xmm14, %xmm2, %xmm2
vaesenc %xmm15, %xmm11, %xmm4
vpxor %xmm3, %xmm4, %xmm4
vaesenc %xmm14, %xmm3, %xmm3
vaesenc %xmm15, %xmm6, %xmm5
vpxor %xmm4, %xmm5, %xmm5
vaesenc %xmm14, %xmm4, %xmm4
vaesenc %xmm15, %xmm0, %xmm0
vpxor %xmm5, %xmm0, %xmm6
vaesenc %xmm14, %xmm5, %xmm0
vaesenc %xmm15, %xmm1, %xmm1
vpxor %xmm6, %xmm1, %xmm5
vaesenc %xmm14, %xmm6, %xmm1
vaesenc %xmm15, %xmm2, %xmm2
vpxor %xmm5, %xmm2, %xmm6
vaesenc %xmm14, %xmm5, %xmm2
vaesenc %xmm15, %xmm3, %xmm3
vpxor %xmm6, %xmm3, %xmm3
vaesenc %xmm14, %xmm6, %xmm5
vaesenc %xmm15, %xmm4, %xmm4
vpxor %xmm3, %xmm4, %xmm6
vaesenc %xmm14, %xmm3, %xmm4
vaesenc %xmm15, %xmm0, %xmm0
vpxor %xmm6, %xmm0, %xmm0
vaesenc %xmm14, %xmm6, %xmm6
vaesenc %xmm15, %xmm1, %xmm1
vpxor %xmm0, %xmm1, %xmm3
vaesenc %xmm14, %xmm0, %xmm7
vaesenc %xmm15, %xmm2, %xmm0
vpxor %xmm3, %xmm0, %xmm1
vaesenc %xmm15, %xmm5, %xmm0
vpxor %xmm1, %xmm0, %xmm0
vaesenc %xmm15, %xmm4, %xmm2
vpxor %xmm0, %xmm2, %xmm2
vaesenc %xmm15, %xmm6, %xmm4
vpxor %xmm2, %xmm4, %xmm4
vaesenc %xmm15, %xmm7, %xmm5
vpxor %xmm4, %xmm5, %xmm5
vaesenc %xmm14, %xmm4, %xmm4
vaesenc %xmm14, %xmm5, %xmm6
vpxor %xmm4, %xmm6, %xmm4
vaesenc %xmm8, %xmm13, %xmm6
vmovdqa64 %xmm16, %xmm7
vaesenc %xmm9, %xmm7, %xmm7
vmovdqa 0x20(%rsp), %xmm8
vpxor %xmm6, %xmm8, %xmm6
vaesenc %xmm14, %xmm8, %xmm8
vmovdqa 0x10(%rsp), %xmm9
vpxor %xmm7, %xmm9, %xmm7
vaesenc %xmm14, %xmm9, %xmm9
vaesenc %xmm15, %xmm10, %xmm10
vpxor %xmm6, %xmm10, %xmm10
vaesenc %xmm14, %xmm6, %xmm6
vmovdqa64 %xmm19, %xmm11
vaesenc %xmm14, %xmm11, %xmm11
vpxor %xmm7, %xmm11, %xmm11
vaesenc %xmm14, %xmm7, %xmm7
vaesenc %xmm15, %xmm8, %xmm8
vpxor %xmm10, %xmm8, %xmm8
vaesenc %xmm14, %xmm10, %xmm10
vmovdqa64 %xmm17, %xmm12
vaesenc %xmm14, %xmm12, %xmm12
vpxor %xmm11, %xmm12, %xmm12
vaesenc %xmm14, %xmm11, %xmm11
vaesenc %xmm15, %xmm6, %xmm6
vpxor %xmm6, %xmm8, %xmm6
vaesenc %xmm14, %xmm8, %xmm8
vaesenc %xmm14, %xmm9, %xmm9
vpxor %xmm12, %xmm9, %xmm9
vaesenc %xmm14, %xmm12, %xmm12
vaesenc %xmm15, %xmm10, %xmm10
vpxor %xmm6, %xmm10, %xmm10
vaesenc %xmm14, %xmm6, %xmm6
vaesenc %xmm14, %xmm7, %xmm7
vpxor %xmm7, %xmm9, %xmm7
vaesenc %xmm14, %xmm9, %xmm9
vaesenc %xmm15, %xmm8, %xmm8
vpxor %xmm10, %xmm8, %xmm8
vaesenc %xmm14, %xmm10, %xmm10
vaesenc %xmm14, %xmm11, %xmm11
vpxor %xmm7, %xmm11, %xmm11
vaesenc %xmm14, %xmm7, %xmm7
vaesenc %xmm15, %xmm6, %xmm6
vpxor %xmm6, %xmm8, %xmm6
vaesenc %xmm14, %xmm8, %xmm8
vaesenc %xmm14, %xmm12, %xmm12
vpxor %xmm11, %xmm12, %xmm12
vaesenc %xmm14, %xmm11, %xmm11
vaesenc %xmm15, %xmm10, %xmm10
vpxor %xmm6, %xmm10, %xmm10
vaesenc %xmm14, %xmm6, %xmm6
vaesenc %xmm14, %xmm9, %xmm9
vpxor %xmm12, %xmm9, %xmm9
vaesenc %xmm14, %xmm12, %xmm12
vaesenc %xmm15, %xmm8, %xmm8
vpxor %xmm10, %xmm8, %xmm8
vaesenc %xmm14, %xmm10, %xmm10
vaesenc %xmm14, %xmm7, %xmm7
vpxor %xmm7, %xmm9, %xmm7
vaesenc %xmm14, %xmm9, %xmm9
vaesenc %xmm15, %xmm6, %xmm6
vpxor %xmm6, %xmm8, %xmm6
vaesenc %xmm14, %xmm8, %xmm8
vaesenc %xmm14, %xmm11, %xmm11
vpxor %xmm7, %xmm11, %xmm11
vaesenc %xmm14, %xmm7, %xmm7
vaesenc %xmm15, %xmm10, %xmm10
vpxor %xmm6, %xmm10, %xmm10
vaesenc %xmm14, %xmm6, %xmm6
vaesenc %xmm14, %xmm12, %xmm12
vpxor %xmm11, %xmm12, %xmm12
vaesenc %xmm14, %xmm11, %xmm11
vaesenc %xmm15, %xmm8, %xmm8
vpxor %xmm10, %xmm8, %xmm8
vaesenc %xmm14, %xmm10, %xmm10
vaesenc %xmm14, %xmm9, %xmm9
vpxor %xmm12, %xmm9, %xmm9
vaesenc %xmm14, %xmm12, %xmm12
vaesenc %xmm15, %xmm6, %xmm6
vpxor %xmm6, %xmm8, %xmm6
vaesenc %xmm14, %xmm8, %xmm8
vaesenc %xmm14, %xmm7, %xmm7
vpxor %xmm7, %xmm9, %xmm7
vaesenc %xmm14, %xmm9, %xmm9
vaesenc %xmm14, %xmm3, %xmm13
vaesenc %xmm15, %xmm10, %xmm3
vpxor %xmm6, %xmm3, %xmm3
vaesenc %xmm14, %xmm6, %xmm6
vaesenc %xmm14, %xmm11, %xmm10
vpxor %xmm7, %xmm10, %xmm10
vaesenc %xmm14, %xmm7, %xmm7
vaesenc %xmm15, %xmm8, %xmm8
vpxor %xmm3, %xmm8, %xmm8
vaesenc %xmm14, %xmm3, %xmm11
vaesenc %xmm14, %xmm12, %xmm3
vpxor %xmm3, %xmm10, %xmm12
vaesenc %xmm14, %xmm10, %xmm10
vaesenc %xmm15, %xmm6, %xmm3
vpxor %xmm3, %xmm8, %xmm6
vaesenc %xmm14, %xmm8, %xmm8
vaesenc %xmm14, %xmm9, %xmm3
vpxor %xmm3, %xmm12, %xmm3
vaesenc %xmm14, %xmm12, %xmm9
vaesenc %xmm15, %xmm11, %xmm11
vpxor %xmm6, %xmm11, %xmm11
vaesenc %xmm14, %xmm6, %xmm6
vaesenc %xmm14, %xmm7, %xmm7
vpxor %xmm3, %xmm7, %xmm7
vaesenc %xmm15, %xmm8, %xmm8
vpxor %xmm11, %xmm8, %xmm8
vaesenc %xmm14, %xmm10, %xmm10
vpxor %xmm7, %xmm10, %xmm10
vaesenc %xmm15, %xmm13, %xmm12
vpxor %xmm5, %xmm12, %xmm5
vaesenc %xmm15, %xmm6, %xmm6
vpxor %xmm6, %xmm8, %xmm6
vaesenc %xmm14, %xmm9, %xmm9
vaesenc %xmm14, %xmm10, %xmm12
vpxor %xmm10, %xmm9, %xmm9
vaesenc %xmm14, %xmm5, %xmm10
vpternlogq $0x96, %xmm12, %xmm10, %xmm4
vaesenc %xmm14, %xmm6, %xmm10
vaesenc %xmm14, %xmm9, %xmm12
vpternlogq $0x96, %xmm10, %xmm12, %xmm4
vaesenc %xmm14, %xmm1, %xmm1
vaesenc %xmm14, %xmm8, %xmm8
vaesenc %xmm15, %xmm1, %xmm1
vpxor %xmm5, %xmm1, %xmm1
vaesenc %xmm14, %xmm1, %xmm5
vaesenc %xmm15, %xmm8, %xmm8
vpternlogq $0x96, %xmm5, %xmm8, %xmm4
vaesenc %xmm14, %xmm11, %xmm5
vaesenc %xmm14, %xmm7, %xmm7
vaesenc %xmm15, %xmm5, %xmm5
vpxor %xmm6, %xmm5, %xmm5
vaesenc %xmm14, %xmm5, %xmm6
vaesenc %xmm14, %xmm7, %xmm7
vpternlogq $0x96, %xmm6, %xmm7, %xmm4
vaesenc %xmm14, %xmm2, %xmm2
vaesenc %xmm14, %xmm3, %xmm3
vaesenc %xmm14, %xmm3, %xmm3
vpxor %xmm3, %xmm9, %xmm3
vaesenc %xmm14, %xmm3, %xmm6
vaesenc %xmm15, %xmm2, %xmm2
vpternlogq $0x96, %xmm6, %xmm2, %xmm4
vaesenc %xmm14, %xmm0, %xmm0
vaesenc %xmm15, %xmm0, %xmm0
vpxor %xmm1, %xmm0, %xmm0
vaesenc %xmm14, %xmm0, %xmm1
vpternlogq $0x96, %xmm1, %xmm5, %xmm4
vpternlogq $0x96, %xmm3, %xmm0, %xmm4
vmovdqa %xmm4, 0x70(%rsp)
vmovdqa 0x70(%rsp), %xmm0
vpxor (%r14,%rbp), %xmm0, %xmm0
vptest %xmm0, %xmm0
je 0x305a
pushq $-0x1
popq %rax
jmp 0x3067
movq 0x108(%rsp), %rax
movq %rbp, (%rax)
xorl %eax, %eax
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)