// File: /workspace/github_c_makefile_star2_O2/mjosaarinen[P]brutus/crypto_aead/minalpherv11/avx2/MinalpherCore.cpp
// Function: minalpher_core_double_block(long long vector[4] const&, long long vector[4] const&, long long vector[4]*)
void minalpher_core_double_block(
  const __m256i           &DATA1,  /* I    HI                      */
  const __m256i           &DATA2,  /* I    LOW                     */
  __m256i                 ymm[4]   /* O    ymm                     */
  )
{
  /*==== FORMAT CHANGE ====*/
  //BLEND
  __m256i DATA_A = _mm256_permute2x128_si256(DATA2, DATA1, 0x02);
  __m256i DATA_B = _mm256_permute2x128_si256(DATA2, DATA1, 0x13);

  //Constant Load
  const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);

  //AND
  __m256i tmp0 = _mm256_and_si256(ymmMask, DATA_A);
  __m256i tmp1 = _mm256_andnot_si256(ymmMask, DATA_A);
  __m256i tmp2 = _mm256_and_si256(ymmMask, DATA_B);
  __m256i tmp3 = _mm256_andnot_si256(ymmMask, DATA_B);

  //SHIFT
  tmp1 = _mm256_srli_epi16(tmp1, 4);
  tmp3 = _mm256_srli_epi16(tmp3, 4);

  //UNPACK
  __m256i ymm0, ymm1, ymm2, ymm3;
  ymm0 = _mm256_unpacklo_epi8(tmp0, tmp1);
  ymm1 = _mm256_unpackhi_epi8(tmp0, tmp1);
  ymm2 = _mm256_unpacklo_epi8(tmp2, tmp3);
  ymm3 = _mm256_unpackhi_epi8(tmp2, tmp3);
  /*==== END FORMAT CHANGE ====*/


  /*==== Minalpher-P ====*/
  //Constant Load
  const __m256i ymmSbox = _mm256_set_epi8(0x07, 0x0A, 0x09, 0x06, 0x00, 0x0E, 0x0D, 0x05, 0x0F, 0x0C, 0x08, 0x02, 0x01, 0x04, 0x03, 0x0B,
    0x07, 0x0A, 0x09, 0x06, 0x00, 0x0E, 0x0D, 0x05, 0x0F, 0x0C, 0x08, 0x02, 0x01, 0x04, 0x03, 0x0B);

  #define doubleRoundFunction(i, ymm0, ymm1, ymm2, ymm3 ) {\
    ymm0 = _mm256_shuffle_epi8( ymmSbox, ymm0 );\
    ymm2 = _mm256_shuffle_epi8( ymmSbox, ymm2 );\
    ymm0 = _mm256_shuffle_epi8( ymm0, ShuffleDoubleBlock0 );\
    ymm2 = _mm256_shuffle_epi8( ymm2, ShuffleDoubleBlock2 );\
    __m256i tmp02 = _mm256_xor_si256(ymm0, ymm2);\
    ymm1 = _mm256_shuffle_epi8( ymmSbox, ymm1 );\
    ymm3 = _mm256_shuffle_epi8( ymmSbox, ymm3 );\
    ymm1 = _mm256_shuffle_epi8( ymm1, ShuffleDoubleBlock1 );\
    ymm3 = _mm256_shuffle_epi8( ymm3, ShuffleDoubleBlock3 );\
    __m256i tmp13 = _mm256_xor_si256(ymm1, ymm3);\
    ymm0 = _mm256_xor_si256(tmp13, ymm0);\
    ymm1 = _mm256_xor_si256(tmp02, ymm1);\
    ymm2 = _mm256_xor_si256(tmp13, ymm2);\
    ymm3 = _mm256_xor_si256(tmp02, ymm3);\
    tmp0 = _mm256_slli_si256( ymm0, 8 );\
    tmp1 = _mm256_slli_si256( ymm1, 8 );\
    tmp2 = _mm256_slli_si256( ymm2, 8 );\
    tmp3 = _mm256_slli_si256( ymm3, 8 );\
    ymm0 = _mm256_xor_si256( tmp0, ymm0 );\
    ymm1 = _mm256_xor_si256( tmp1, ymm1 );\
    ymm2 = _mm256_xor_si256( tmp2, ymm2 );\
    ymm3 = _mm256_xor_si256( tmp3, ymm3 );\
    ymm0 = _mm256_xor_si256( ymm0, RoundConstDoubleBlock[i][0] );\
    ymm1 = _mm256_xor_si256( ymm1, RoundConstDoubleBlock[i][1] );\
    ymm2 = _mm256_xor_si256( ymm2, RoundConstDoubleBlock[i][2] );\
    ymm3 = _mm256_xor_si256( ymm3, RoundConstDoubleBlock[i][3] );\
  }

  doubleRoundFunction(0, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(1, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(2, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(3, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(4, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(5, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(6, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(7, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(8, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(9, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(10, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(11, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(12, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(13, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(14, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(15, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(0, ymm0, ymm1, ymm2, ymm3);


  ymm0   = _mm256_shuffle_epi8(ymmSbox, ymm0);
  ymm1   = _mm256_shuffle_epi8(ymmSbox, ymm1);
  ymm[0] = _mm256_shuffle_epi8(ymm0, ShuffleDoubleBlock0);
  ymm[1] = _mm256_shuffle_epi8(ymm1, ShuffleDoubleBlock1);

  ymm2   = _mm256_shuffle_epi8(ymmSbox, ymm2);
  ymm3   = _mm256_shuffle_epi8(ymmSbox, ymm3);
  ymm[2] = _mm256_shuffle_epi8(ymm2, ShuffleDoubleBlock2);
  ymm[3] = _mm256_shuffle_epi8(ymm3, ShuffleDoubleBlock3);
  /*==== END Minalpher-P ====*/
}

// Assembly:
vmovdqa (%rsi), %ymm0
vmovdqa (%rdi), %ymm1
vperm2i128 $0x20, %ymm0, %ymm1, %ymm2 # ymm2 = ymm1[0,1],ymm0[0,1]
vperm2i128 $0x31, %ymm0, %ymm1, %ymm0 # ymm0 = ymm1[2,3],ymm0[2,3]
vpsrlw $0x4, %ymm2, %ymm1
vpsrlw $0x4, %ymm0, %ymm3
vpbroadcastb 0x6a58(%rip), %ymm4 # 0xa008
vpand %ymm4, %ymm2, %ymm2
vpand %ymm4, %ymm1, %ymm1
vpunpcklbw %ymm1, %ymm2, %ymm5 # ymm5 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[2],ymm1[2],ymm2[3],ymm1[3],ymm2[4],ymm1[4],ymm2[5],ymm1[5],ymm2[6],ymm1[6],ymm2[7],ymm1[7],ymm2[16],ymm1[16],ymm2[17],ymm1[17],ymm2[18],ymm1[18],ymm2[19],ymm1[19],ymm2[20],ymm1[20],ymm2[21],ymm1[21],ymm2[22],ymm1[22],ymm2[23],ymm1[23]
vpunpckhbw %ymm1, %ymm2, %ymm6 # ymm6 = ymm2[8],ymm1[8],ymm2[9],ymm1[9],ymm2[10],ymm1[10],ymm2[11],ymm1[11],ymm2[12],ymm1[12],ymm2[13],ymm1[13],ymm2[14],ymm1[14],ymm2[15],ymm1[15],ymm2[24],ymm1[24],ymm2[25],ymm1[25],ymm2[26],ymm1[26],ymm2[27],ymm1[27],ymm2[28],ymm1[28],ymm2[29],ymm1[29],ymm2[30],ymm1[30],ymm2[31],ymm1[31]
vpand %ymm4, %ymm0, %ymm0
vpand %ymm4, %ymm3, %ymm1
vpunpcklbw %ymm1, %ymm0, %ymm2 # ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[4],ymm1[4],ymm0[5],ymm1[5],ymm0[6],ymm1[6],ymm0[7],ymm1[7],ymm0[16],ymm1[16],ymm0[17],ymm1[17],ymm0[18],ymm1[18],ymm0[19],ymm1[19],ymm0[20],ymm1[20],ymm0[21],ymm1[21],ymm0[22],ymm1[22],ymm0[23],ymm1[23]
vpunpckhbw %ymm1, %ymm0, %ymm3 # ymm3 = ymm0[8],ymm1[8],ymm0[9],ymm1[9],ymm0[10],ymm1[10],ymm0[11],ymm1[11],ymm0[12],ymm1[12],ymm0[13],ymm1[13],ymm0[14],ymm1[14],ymm0[15],ymm1[15],ymm0[24],ymm1[24],ymm0[25],ymm1[25],ymm0[26],ymm1[26],ymm0[27],ymm1[27],ymm0[28],ymm1[28],ymm0[29],ymm1[29],ymm0[30],ymm1[30],ymm0[31],ymm1[31]
vbroadcasti128 0x6da7(%rip), %ymm0 # ymm0 = mem[0,1,0,1]
vpshufb %ymm5, %ymm0, %ymm4
vpshufb %ymm2, %ymm0, %ymm5
movq 0x8a0e(%rip), %rax      # 0xbff8
vmovdqa (%rax), %ymm1
vpshufb %ymm1, %ymm4, %ymm7
movq 0x89e6(%rip), %rax      # 0xbfe0
vmovdqa (%rax), %ymm2
vpshufb %ymm2, %ymm5, %ymm5
vpxor %ymm7, %ymm5, %ymm8
vpshufb %ymm6, %ymm0, %ymm4
vpshufb %ymm3, %ymm0, %ymm6
movq 0x89d8(%rip), %rsi      # 0xbff0
vmovdqa (%rsi), %ymm3
vpshufb %ymm3, %ymm4, %ymm9
movq 0x8998(%rip), %rcx      # 0xbfc0
vmovdqa (%rcx), %ymm4
vpshufb %ymm4, %ymm6, %ymm6
vpxor %ymm6, %ymm9, %ymm10
vpxor %ymm7, %ymm10, %ymm7
vpxor %ymm9, %ymm8, %ymm9
vpxor %ymm5, %ymm10, %ymm10
vpxor %ymm6, %ymm8, %ymm11
vpslldq $0x8, %ymm7, %ymm12     # ymm12 = zero,zero,zero,zero,zero,zero,zero,zero,ymm7[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm7[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vmovdqa 0x8f1b(%rip), %ymm5     # 0xc580
vpternlogq $0x96, %ymm7, %ymm5, %ymm12
vmovdqa 0x8f2c(%rip), %ymm6     # 0xc5a0
vpternlogq $0x96, %ymm9, %ymm6, %ymm13
vmovdqa 0x8f3d(%rip), %ymm7     # 0xc5c0
vpternlogq $0x96, %ymm10, %ymm7, %ymm14
vmovdqa 0x8f4e(%rip), %ymm8     # 0xc5e0
vpternlogq $0x96, %ymm11, %ymm8, %ymm15
vpshufb %ymm12, %ymm0, %ymm9
vpshufb %ymm14, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm13, %ymm0, %ymm12
vpshufb %ymm15, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8efd(%rip), %ymm9, %ymm13 # 0xc600
vpternlogq $0x96, 0x8f12(%rip), %ymm12, %ymm14 # 0xc620
vpternlogq $0x96, 0x8f27(%rip), %ymm10, %ymm15 # 0xc640
vpternlogq $0x96, 0x8f3c(%rip), %ymm11, %ymm16 # 0xc660
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8ef1(%rip), %ymm9, %ymm13 # 0xc680
vpternlogq $0x96, 0x8f06(%rip), %ymm12, %ymm14 # 0xc6a0
vpternlogq $0x96, 0x8f1b(%rip), %ymm10, %ymm15 # 0xc6c0
vpternlogq $0x96, 0x8f30(%rip), %ymm11, %ymm16 # 0xc6e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8ee5(%rip), %ymm9, %ymm13 # 0xc700
vpternlogq $0x96, 0x8efa(%rip), %ymm12, %ymm14 # 0xc720
vpternlogq $0x96, 0x8f0f(%rip), %ymm10, %ymm15 # 0xc740
vpternlogq $0x96, 0x8f24(%rip), %ymm11, %ymm16 # 0xc760
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8ed9(%rip), %ymm9, %ymm13 # 0xc780
vpternlogq $0x96, 0x8eee(%rip), %ymm12, %ymm14 # 0xc7a0
vpternlogq $0x96, 0x8f03(%rip), %ymm10, %ymm15 # 0xc7c0
vpternlogq $0x96, 0x8f18(%rip), %ymm11, %ymm16 # 0xc7e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8ecd(%rip), %ymm9, %ymm13 # 0xc800
vpternlogq $0x96, 0x8ee2(%rip), %ymm12, %ymm14 # 0xc820
vpternlogq $0x96, 0x8ef7(%rip), %ymm10, %ymm15 # 0xc840
vpternlogq $0x96, 0x8f0c(%rip), %ymm11, %ymm16 # 0xc860
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8ec1(%rip), %ymm9, %ymm13 # 0xc880
vpternlogq $0x96, 0x8ed6(%rip), %ymm12, %ymm14 # 0xc8a0
vpternlogq $0x96, 0x8eeb(%rip), %ymm10, %ymm15 # 0xc8c0
vpternlogq $0x96, 0x8f00(%rip), %ymm11, %ymm16 # 0xc8e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8eb5(%rip), %ymm9, %ymm13 # 0xc900
vpternlogq $0x96, 0x8eca(%rip), %ymm12, %ymm14 # 0xc920
vpternlogq $0x96, 0x8edf(%rip), %ymm10, %ymm15 # 0xc940
vpternlogq $0x96, 0x8ef4(%rip), %ymm11, %ymm16 # 0xc960
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8ea9(%rip), %ymm9, %ymm13 # 0xc980
vpternlogq $0x96, 0x8ebe(%rip), %ymm12, %ymm14 # 0xc9a0
vpternlogq $0x96, 0x8ed3(%rip), %ymm10, %ymm15 # 0xc9c0
vpternlogq $0x96, 0x8ee8(%rip), %ymm11, %ymm16 # 0xc9e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8e9d(%rip), %ymm9, %ymm13 # 0xca00
vpternlogq $0x96, 0x8eb2(%rip), %ymm12, %ymm14 # 0xca20
vpternlogq $0x96, 0x8ec7(%rip), %ymm10, %ymm15 # 0xca40
vpternlogq $0x96, 0x8edc(%rip), %ymm11, %ymm16 # 0xca60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8e91(%rip), %ymm9, %ymm13 # 0xca80
vpternlogq $0x96, 0x8ea6(%rip), %ymm12, %ymm14 # 0xcaa0
vpternlogq $0x96, 0x8ebb(%rip), %ymm10, %ymm15 # 0xcac0
vpternlogq $0x96, 0x8ed0(%rip), %ymm11, %ymm16 # 0xcae0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8e85(%rip), %ymm9, %ymm13 # 0xcb00
vpternlogq $0x96, 0x8e9a(%rip), %ymm12, %ymm14 # 0xcb20
vpternlogq $0x96, 0x8eaf(%rip), %ymm10, %ymm15 # 0xcb40
vpternlogq $0x96, 0x8ec4(%rip), %ymm11, %ymm16 # 0xcb60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8e79(%rip), %ymm9, %ymm13 # 0xcb80
vpternlogq $0x96, 0x8e8e(%rip), %ymm12, %ymm14 # 0xcba0
vpternlogq $0x96, 0x8ea3(%rip), %ymm10, %ymm15 # 0xcbc0
vpternlogq $0x96, 0x8eb8(%rip), %ymm11, %ymm16 # 0xcbe0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8e6d(%rip), %ymm9, %ymm13 # 0xcc00
vpternlogq $0x96, 0x8e82(%rip), %ymm12, %ymm14 # 0xcc20
vpternlogq $0x96, 0x8e97(%rip), %ymm10, %ymm15 # 0xcc40
vpternlogq $0x96, 0x8eac(%rip), %ymm11, %ymm16 # 0xcc60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8e61(%rip), %ymm9, %ymm13 # 0xcc80
vpternlogq $0x96, 0x8e76(%rip), %ymm12, %ymm14 # 0xcca0
vpternlogq $0x96, 0x8e8b(%rip), %ymm10, %ymm15 # 0xccc0
vpternlogq $0x96, 0x8ea0(%rip), %ymm11, %ymm16 # 0xcce0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0x8e55(%rip), %ymm9, %ymm13 # 0xcd00
vpternlogq $0x96, 0x8e6a(%rip), %ymm12, %ymm14 # 0xcd20
vpternlogq $0x96, 0x8e7f(%rip), %ymm10, %ymm15 # 0xcd40
vpternlogq $0x96, 0x8e94(%rip), %ymm11, %ymm16 # 0xcd60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm2
vpxor %ymm2, %ymm9, %ymm10
vpshufb %ymm14, %ymm0, %ymm11
vpshufb %ymm16, %ymm0, %ymm12
vpshufb %ymm3, %ymm11, %ymm3
vpshufb %ymm4, %ymm12, %ymm4
vpxor %ymm3, %ymm4, %ymm11
vpxor %ymm9, %ymm11, %ymm9
vpxor %ymm3, %ymm10, %ymm3
vpxor %ymm2, %ymm11, %ymm2
vpxor %ymm4, %ymm10, %ymm4
vpslldq $0x8, %ymm9, %ymm10     # ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm3, %ymm11     # ymm11 = zero,zero,zero,zero,zero,zero,zero,zero,ymm3[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm3[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm2, %ymm12     # ymm12 = zero,zero,zero,zero,zero,zero,zero,zero,ymm2[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm4, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm4[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm4[16,17,18,19,20,21,22,23]
vpternlogq $0x96, %ymm9, %ymm5, %ymm10
vpternlogq $0x96, %ymm3, %ymm6, %ymm11
vpternlogq $0x96, %ymm2, %ymm7, %ymm12
vpternlogq $0x96, %ymm4, %ymm8, %ymm13
vpshufb %ymm10, %ymm0, %ymm2
vpshufb %ymm11, %ymm0, %ymm3
vpshufb %ymm1, %ymm2, %ymm1
vmovdqa %ymm1, (%rdx)
vpshufb (%rsi), %ymm3, %ymm1
vmovdqa %ymm1, 0x20(%rdx)
vpshufb %ymm12, %ymm0, %ymm1
vpshufb %ymm13, %ymm0, %ymm0
vpshufb (%rax), %ymm1, %ymm1
vmovdqa %ymm1, 0x40(%rdx)
vpshufb (%rcx), %ymm0, %ymm0
vmovdqa %ymm0, 0x60(%rdx)
vzeroupper
retq