// File: /workspace/github_c_makefile_star2_O1/mjosaarinen[P]brutus/crypto_aead/minalpherv11/avx2/MinalpherCore.cpp
// Function: minalpher_core_quadruple_block_inverse(long long vector[4] const&, long long vector[4] const&, long long vector[4] const&, long long vector[4] const&, long long vector[4]*, long long vector[4]*)
void minalpher_core_quadruple_block_inverse(
  const __m256i     &DATA1,     /* I                            */
  const __m256i     &DATA2,     /* I                            */
  const __m256i     &DATA3,     /* I                            */
  const __m256i     &DATA4,     /* I                            */
  __m256i           ymmA_[4],   /* O                            */
  __m256i           ymmB_[4]    /* O                            */
  ){

  /*==== FORMAT CHANGE ====*/
  __m256i tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
  __m256i ymmA[4], ymmB[4];

  //Constant Load
  const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);

  //UNPACK
  tmp0 = _mm256_unpacklo_epi32(DATA1, DATA2);
  tmp1 = _mm256_unpackhi_epi32(DATA1, DATA2);
  tmp2 = _mm256_unpacklo_epi32(DATA3, DATA4);
  tmp3 = _mm256_unpackhi_epi32(DATA3, DATA4);

  //PERM
  __m256i DATA_A = _mm256_permute2x128_si256(tmp0, tmp2, 0x20);
  __m256i DATA_B = _mm256_permute2x128_si256(tmp1, tmp3, 0x20);
  __m256i DATA_C = _mm256_permute2x128_si256(tmp0, tmp2, 0x31);
  __m256i DATA_D = _mm256_permute2x128_si256(tmp1, tmp3, 0x31);

  //AND
  tmp0 = _mm256_and_si256(ymmMask, DATA_A);
  tmp1 = _mm256_andnot_si256(ymmMask, DATA_A);
  tmp2 = _mm256_and_si256(ymmMask, DATA_B);
  tmp3 = _mm256_andnot_si256(ymmMask, DATA_B);
  tmp4 = _mm256_and_si256(ymmMask, DATA_C);
  tmp5 = _mm256_andnot_si256(ymmMask, DATA_C);
  tmp6 = _mm256_and_si256(ymmMask, DATA_D);
  tmp7 = _mm256_andnot_si256(ymmMask, DATA_D);

  //SHIFT
  tmp1 = _mm256_srli_epi16(tmp1, 4);
  tmp3 = _mm256_srli_epi16(tmp3, 4);
  tmp5 = _mm256_srli_epi16(tmp5, 4);
  tmp7 = _mm256_srli_epi16(tmp7, 4);

  //UNPACK
  ymmA[0] = _mm256_unpacklo_epi8(tmp0, tmp1);
  ymmA[1] = _mm256_unpacklo_epi8(tmp2, tmp3);
  ymmA[2] = _mm256_unpacklo_epi8(tmp4, tmp5);
  ymmA[3] = _mm256_unpacklo_epi8(tmp6, tmp7);
  ymmB[0] = _mm256_unpackhi_epi8(tmp0, tmp1);
  ymmB[1] = _mm256_unpackhi_epi8(tmp2, tmp3);
  ymmB[2] = _mm256_unpackhi_epi8(tmp4, tmp5);
  ymmB[3] = _mm256_unpackhi_epi8(tmp6, tmp7);
  /*==== END FORMAT CHANGE ====*/

#define quadrupleRoundFunction(i, ymmA0, ymmA1, ymmA2, ymmA3, ymmB0, ymmB1, ymmB2, ymmB3) {\
    ymmA0 = _mm256_shuffle_epi8( ymmSbox, ymmA0 );\
    ymmA2 = _mm256_shuffle_epi8( ymmSbox, ymmA2 );\
    ymmA0 = _mm256_shuffle_epi8( ymmA0, ShuffleQuadrupleBlock0 );\
    ymmA2 = _mm256_shuffle_epi8( ymmA2, ShuffleQuadrupleBlock2 );\
    ymmA1 = _mm256_shuffle_epi8( ymmSbox, ymmA1 );\
    ymmA3 = _mm256_shuffle_epi8( ymmSbox, ymmA3 );\
    __m256i ymmA02 = _mm256_xor_si256(ymmA0, ymmA2);\
    ymmA1 = _mm256_shuffle_epi8( ymmA1, ShuffleQuadrupleBlock1 );\
    ymmA3 = _mm256_shuffle_epi8( ymmA3, ShuffleQuadrupleBlock3 );\
    __m256i ymmA13 = _mm256_xor_si256(ymmA1, ymmA3);\
    ymmA1 = _mm256_xor_si256(ymmA02, ymmA1);\
    ymmA3 = _mm256_xor_si256(ymmA02, ymmA3);\
    ymmA0 = _mm256_xor_si256(ymmA13, ymmA0);\
    ymmA2 = _mm256_xor_si256(ymmA13, ymmA2);\
    ymmA1 = _mm256_xor_si256( ymmA1, RoundConstQuadrupleBlock[i][1] );\
    ymmB0 = _mm256_shuffle_epi8( ymmSbox, ymmB0 );\
    ymmB2 = _mm256_shuffle_epi8( ymmSbox, ymmB2 );\
    ymmA3 = _mm256_xor_si256( ymmA3, RoundConstQuadrupleBlock[i][3] );\
    ymmB0 = _mm256_shuffle_epi8( ymmB0, ShuffleQuadrupleBlock2 );\
    ymmB2 = _mm256_shuffle_epi8( ymmB2, ShuffleQuadrupleBlock0 );\
    ymmA0 = _mm256_xor_si256( ymmA0, RoundConstQuadrupleBlock[i][0] );\
    ymmB1 = _mm256_shuffle_epi8( ymmSbox, ymmB1 );\
    ymmB3 = _mm256_shuffle_epi8( ymmSbox, ymmB3 );\
    ymmA2 = _mm256_xor_si256( ymmA2, RoundConstQuadrupleBlock[i][2] );\
    ymmB1 = _mm256_shuffle_epi8( ymmB1, ShuffleQuadrupleBlock3 );\
    ymmB3 = _mm256_shuffle_epi8( ymmB3, ShuffleQuadrupleBlock1 );\
    __m256i ymmB02 = _mm256_xor_si256(ymmB0, ymmB2);\
    __m256i ymmB13 = _mm256_xor_si256(ymmB1, ymmB3);\
    ymmB1 = _mm256_xor_si256(ymmB02, ymmB1);\
    ymmB3 = _mm256_xor_si256(ymmB02, ymmB3);\
    ymmB0 = _mm256_xor_si256(ymmB13, ymmB0);\
    ymmB2 = _mm256_xor_si256(ymmB13, ymmB2);\
    ymmA1 = _mm256_xor_si256(ymmB1, ymmA1);\
    ymmA3 = _mm256_xor_si256(ymmB3, ymmA3);\
    ymmA0 = _mm256_xor_si256(ymmB0, ymmA0);\
    ymmA2 = _mm256_xor_si256(ymmB2, ymmA2);\
      }



  quadrupleRoundFunction(2, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(13, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(12, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(15, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(14, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(9, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(8, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(11, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(10, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(5, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(4, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(7, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(6, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(1, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(0, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);
  quadrupleRoundFunction(3, ymmB[0], ymmB[1], ymmB[2], ymmB[3], ymmA[0], ymmA[1], ymmA[2], ymmA[3]);
  quadrupleRoundFunction(2, ymmA[0], ymmA[1], ymmA[2], ymmA[3], ymmB[0], ymmB[1], ymmB[2], ymmB[3]);

  __m256i tmpA0 = _mm256_shuffle_epi8(ymmSbox, ymmA[0]);
  __m256i tmpA1 = _mm256_shuffle_epi8(ymmSbox, ymmA[1]);
  __m256i tmpA2 = _mm256_shuffle_epi8(ymmSbox, ymmA[2]);
  __m256i tmpA3 = _mm256_shuffle_epi8(ymmSbox, ymmA[3]);

  __m256i tmpB0 = _mm256_shuffle_epi8(ymmSbox, ymmB[0]);
  __m256i tmpB1 = _mm256_shuffle_epi8(ymmSbox, ymmB[1]);
  __m256i tmpB2 = _mm256_shuffle_epi8(ymmSbox, ymmB[2]);
  __m256i tmpB3 = _mm256_shuffle_epi8(ymmSbox, ymmB[3]);

  ymmA_[0] = _mm256_shuffle_epi8(tmpA0, ShuffleQuadrupleBlock2);
  ymmA_[1] = _mm256_shuffle_epi8(tmpA1, ShuffleQuadrupleBlock3);
  ymmA_[2] = _mm256_shuffle_epi8(tmpA2, ShuffleQuadrupleBlock0);
  ymmA_[3] = _mm256_shuffle_epi8(tmpA3, ShuffleQuadrupleBlock1);

  ymmB_[0] = _mm256_shuffle_epi8(tmpB0, ShuffleQuadrupleBlock0);
  ymmB_[1] = _mm256_shuffle_epi8(tmpB1, ShuffleQuadrupleBlock1);
  ymmB_[2] = _mm256_shuffle_epi8(tmpB2, ShuffleQuadrupleBlock2);
  ymmB_[3] = _mm256_shuffle_epi8(tmpB3, ShuffleQuadrupleBlock3);
}

// Assembly:
vmovdqa (%rdi), %ymm0
vmovdqa (%rsi), %ymm1
vpunpckldq %ymm1, %ymm0, %ymm2 # ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
vpunpckhdq %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
vmovdqa (%rdx), %ymm1
vmovdqa (%rcx), %ymm3
vpunpckldq %ymm3, %ymm1, %ymm4 # ymm4 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
vpunpckhdq %ymm3, %ymm1, %ymm1 # ymm1 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[7],ymm3[7]
vinserti128 $0x1, %xmm4, %ymm2, %ymm3
vinserti128 $0x1, %xmm1, %ymm0, %ymm5
vperm2i128 $0x31, %ymm4, %ymm2, %ymm2 # ymm2 = ymm2[2,3],ymm4[2,3]
vperm2i128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vpsrlw $0x4, %ymm3, %ymm1
vpsrlw $0x4, %ymm5, %ymm4
vpsrlw $0x4, %ymm2, %ymm6
vpsrlw $0x4, %ymm0, %ymm7
vpbroadcastb 0x66ac(%rip), %ymm8 # 0xc011
vpand %ymm3, %ymm8, %ymm3
vpand %ymm1, %ymm8, %ymm1
vpunpcklbw %ymm1, %ymm3, %ymm9 # ymm9 = ymm3[0],ymm1[0],ymm3[1],ymm1[1],ymm3[2],ymm1[2],ymm3[3],ymm1[3],ymm3[4],ymm1[4],ymm3[5],ymm1[5],ymm3[6],ymm1[6],ymm3[7],ymm1[7],ymm3[16],ymm1[16],ymm3[17],ymm1[17],ymm3[18],ymm1[18],ymm3[19],ymm1[19],ymm3[20],ymm1[20],ymm3[21],ymm1[21],ymm3[22],ymm1[22],ymm3[23],ymm1[23]
vpand %ymm5, %ymm8, %ymm5
vpand %ymm4, %ymm8, %ymm4
vpunpcklbw %ymm4, %ymm5, %ymm10 # ymm10 = ymm5[0],ymm4[0],ymm5[1],ymm4[1],ymm5[2],ymm4[2],ymm5[3],ymm4[3],ymm5[4],ymm4[4],ymm5[5],ymm4[5],ymm5[6],ymm4[6],ymm5[7],ymm4[7],ymm5[16],ymm4[16],ymm5[17],ymm4[17],ymm5[18],ymm4[18],ymm5[19],ymm4[19],ymm5[20],ymm4[20],ymm5[21],ymm4[21],ymm5[22],ymm4[22],ymm5[23],ymm4[23]
vpand %ymm2, %ymm8, %ymm2
vpand %ymm6, %ymm8, %ymm6
vpunpcklbw %ymm6, %ymm2, %ymm11 # ymm11 = ymm2[0],ymm6[0],ymm2[1],ymm6[1],ymm2[2],ymm6[2],ymm2[3],ymm6[3],ymm2[4],ymm6[4],ymm2[5],ymm6[5],ymm2[6],ymm6[6],ymm2[7],ymm6[7],ymm2[16],ymm6[16],ymm2[17],ymm6[17],ymm2[18],ymm6[18],ymm2[19],ymm6[19],ymm2[20],ymm6[20],ymm2[21],ymm6[21],ymm2[22],ymm6[22],ymm2[23],ymm6[23]
vpand %ymm0, %ymm8, %ymm0
vpand %ymm7, %ymm8, %ymm7
vpunpcklbw %ymm7, %ymm0, %ymm8 # ymm8 = ymm0[0],ymm7[0],ymm0[1],ymm7[1],ymm0[2],ymm7[2],ymm0[3],ymm7[3],ymm0[4],ymm7[4],ymm0[5],ymm7[5],ymm0[6],ymm7[6],ymm0[7],ymm7[7],ymm0[16],ymm7[16],ymm0[17],ymm7[17],ymm0[18],ymm7[18],ymm0[19],ymm7[19],ymm0[20],ymm7[20],ymm0[21],ymm7[21],ymm0[22],ymm7[22],ymm0[23],ymm7[23]
vpunpckhbw %ymm1, %ymm3, %ymm12 # ymm12 = ymm3[8],ymm1[8],ymm3[9],ymm1[9],ymm3[10],ymm1[10],ymm3[11],ymm1[11],ymm3[12],ymm1[12],ymm3[13],ymm1[13],ymm3[14],ymm1[14],ymm3[15],ymm1[15],ymm3[24],ymm1[24],ymm3[25],ymm1[25],ymm3[26],ymm1[26],ymm3[27],ymm1[27],ymm3[28],ymm1[28],ymm3[29],ymm1[29],ymm3[30],ymm1[30],ymm3[31],ymm1[31]
vpunpckhbw %ymm4, %ymm5, %ymm13 # ymm13 = ymm5[8],ymm4[8],ymm5[9],ymm4[9],ymm5[10],ymm4[10],ymm5[11],ymm4[11],ymm5[12],ymm4[12],ymm5[13],ymm4[13],ymm5[14],ymm4[14],ymm5[15],ymm4[15],ymm5[24],ymm4[24],ymm5[25],ymm4[25],ymm5[26],ymm4[26],ymm5[27],ymm4[27],ymm5[28],ymm4[28],ymm5[29],ymm4[29],ymm5[30],ymm4[30],ymm5[31],ymm4[31]
vpunpckhbw %ymm6, %ymm2, %ymm6 # ymm6 = ymm2[8],ymm6[8],ymm2[9],ymm6[9],ymm2[10],ymm6[10],ymm2[11],ymm6[11],ymm2[12],ymm6[12],ymm2[13],ymm6[13],ymm2[14],ymm6[14],ymm2[15],ymm6[15],ymm2[24],ymm6[24],ymm2[25],ymm6[25],ymm2[26],ymm6[26],ymm2[27],ymm6[27],ymm2[28],ymm6[28],ymm2[29],ymm6[29],ymm2[30],ymm6[30],ymm2[31],ymm6[31]
vpunpckhbw %ymm7, %ymm0, %ymm14 # ymm14 = ymm0[8],ymm7[8],ymm0[9],ymm7[9],ymm0[10],ymm7[10],ymm0[11],ymm7[11],ymm0[12],ymm7[12],ymm0[13],ymm7[13],ymm0[14],ymm7[14],ymm0[15],ymm7[15],ymm0[24],ymm7[24],ymm0[25],ymm7[25],ymm0[26],ymm7[26],ymm0[27],ymm7[27],ymm0[28],ymm7[28],ymm0[29],ymm7[29],ymm0[30],ymm7[30],ymm0[31],ymm7[31]
vmovdqa 0x9c53(%rip), %ymm4     # 0xf600
vpshufb %ymm9, %ymm4, %ymm0
vpshufb %ymm11, %ymm4, %ymm2
vmovdqa 0x9c61(%rip), %ymm1     # 0xf620
vpshufb %ymm1, %ymm0, %ymm5
vmovdqa 0x9c94(%rip), %ymm0     # 0xf660
vpshufb %ymm0, %ymm2, %ymm7
vpshufb %ymm10, %ymm4, %ymm2
vpshufb %ymm8, %ymm4, %ymm8
vpxor %ymm5, %ymm7, %ymm9
vmovdqa 0x9c59(%rip), %ymm3     # 0xf640
vpshufb %ymm3, %ymm2, %ymm10
vmovdqa 0x9c8c(%rip), %ymm2     # 0xf680
vpshufb %ymm2, %ymm8, %ymm8
vpxor %ymm10, %ymm8, %ymm11
vpxor %ymm10, %ymm9, %ymm10
vpxor %ymm8, %ymm9, %ymm9
vpxor %ymm5, %ymm11, %ymm15
vpxor %ymm7, %ymm11, %ymm11
vmovdqa 0x9508(%rip), %ymm5     # 0xef20
vpshufb %ymm12, %ymm4, %ymm7
vpshufb %ymm6, %ymm4, %ymm8
vmovdqa 0x9536(%rip), %ymm6     # 0xef60
vpshufb %ymm0, %ymm7, %ymm12
vpshufb %ymm1, %ymm8, %ymm16
vmovdqa 0x94c3(%rip), %ymm7     # 0xef00
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vmovdqa 0x94f1(%rip), %ymm8     # 0xef40
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpxorq %ymm13, %ymm14, %ymm18
vpxorq %ymm13, %ymm17, %ymm13
vpxorq %ymm14, %ymm17, %ymm14
vpxorq %ymm12, %ymm18, %ymm12
vpxorq %ymm16, %ymm18, %ymm16
vpternlogq $0x96, %ymm5, %ymm13, %ymm10
vpternlogq $0x96, %ymm6, %ymm14, %ymm9
vpternlogq $0x96, %ymm7, %ymm12, %ymm15
vpternlogq $0x96, %ymm8, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x997d(%rip), %ymm13, %ymm13 # 0xf4a0
vpxor 0x99b5(%rip), %ymm14, %ymm14 # 0xf4e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x993f(%rip), %ymm12, %ymm12 # 0xf480
vpxorq 0x9975(%rip), %ymm16, %ymm16 # 0xf4c0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxor 0x983d(%rip), %ymm10, %ymm10 # 0xf420
vpxor 0x9875(%rip), %ymm9, %ymm9 # 0xf460
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x97ff(%rip), %ymm15, %ymm15 # 0xf400
vpxor 0x9837(%rip), %ymm11, %ymm11 # 0xf440
vpternlogq $0x96, %ymm18, %ymm12, %ymm15
vpternlogq $0x96, %ymm18, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x98ff(%rip), %ymm13, %ymm13 # 0xf5a0
vpxor 0x9937(%rip), %ymm14, %ymm14 # 0xf5e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x98c1(%rip), %ymm12, %ymm12 # 0xf580
vpxorq 0x98f7(%rip), %ymm16, %ymm16 # 0xf5c0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxor 0x97bf(%rip), %ymm10, %ymm10 # 0xf520
vpxor 0x97f7(%rip), %ymm9, %ymm9 # 0xf560
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x9781(%rip), %ymm15, %ymm15 # 0xf500
vpxor 0x97b9(%rip), %ymm11, %ymm11 # 0xf540
vpternlogq $0x96, %ymm18, %ymm12, %ymm15
vpternlogq $0x96, %ymm18, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x9481(%rip), %ymm13, %ymm13 # 0xf2a0
vpxor 0x94b9(%rip), %ymm14, %ymm14 # 0xf2e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x9443(%rip), %ymm12, %ymm12 # 0xf280
vpxorq 0x9479(%rip), %ymm16, %ymm16 # 0xf2c0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxor 0x9341(%rip), %ymm10, %ymm10 # 0xf220
vpxor 0x9379(%rip), %ymm9, %ymm9 # 0xf260
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x9303(%rip), %ymm15, %ymm15 # 0xf200
vpxor 0x933b(%rip), %ymm11, %ymm11 # 0xf240
vpternlogq $0x96, %ymm18, %ymm12, %ymm15
vpternlogq $0x96, %ymm18, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x9403(%rip), %ymm13, %ymm13 # 0xf3a0
vpxor 0x943b(%rip), %ymm14, %ymm14 # 0xf3e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x93c5(%rip), %ymm12, %ymm12 # 0xf380
vpxorq 0x93fb(%rip), %ymm16, %ymm16 # 0xf3c0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxor 0x92c3(%rip), %ymm10, %ymm10 # 0xf320
vpxor 0x92fb(%rip), %ymm9, %ymm9 # 0xf360
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x9285(%rip), %ymm15, %ymm15 # 0xf300
vpxor 0x92bd(%rip), %ymm11, %ymm11 # 0xf340
vpternlogq $0x96, %ymm18, %ymm12, %ymm15
vpternlogq $0x96, %ymm18, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x8f85(%rip), %ymm13, %ymm13 # 0xf0a0
vpxor 0x8fbd(%rip), %ymm14, %ymm14 # 0xf0e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x8f47(%rip), %ymm12, %ymm12 # 0xf080
vpxorq 0x8f7d(%rip), %ymm16, %ymm16 # 0xf0c0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxor 0x8e45(%rip), %ymm10, %ymm10 # 0xf020
vpxor 0x8e7d(%rip), %ymm9, %ymm9 # 0xf060
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x8e07(%rip), %ymm15, %ymm15 # 0xf000
vpxor 0x8e3f(%rip), %ymm11, %ymm11 # 0xf040
vpternlogq $0x96, %ymm18, %ymm12, %ymm15
vpternlogq $0x96, %ymm18, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x8f07(%rip), %ymm13, %ymm13 # 0xf1a0
vpxor 0x8f3f(%rip), %ymm14, %ymm14 # 0xf1e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x8ec9(%rip), %ymm12, %ymm12 # 0xf180
vpxorq 0x8eff(%rip), %ymm16, %ymm16 # 0xf1c0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxor 0x8dc7(%rip), %ymm10, %ymm10 # 0xf120
vpxor 0x8dff(%rip), %ymm9, %ymm9 # 0xf160
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x8d89(%rip), %ymm15, %ymm15 # 0xf100
vpxor 0x8dc1(%rip), %ymm11, %ymm11 # 0xf140
vpternlogq $0x96, %ymm18, %ymm12, %ymm15
vpternlogq $0x96, %ymm18, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x8a89(%rip), %ymm13, %ymm13 # 0xeea0
vpxor 0x8ac1(%rip), %ymm14, %ymm14 # 0xeee0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x8a4b(%rip), %ymm12, %ymm12 # 0xee80
vpxorq 0x8a81(%rip), %ymm16, %ymm16 # 0xeec0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxor 0x8949(%rip), %ymm10, %ymm10 # 0xee20
vpxor 0x8981(%rip), %ymm9, %ymm9 # 0xee60
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x890b(%rip), %ymm15, %ymm15 # 0xee00
vpxor 0x8943(%rip), %ymm11, %ymm11 # 0xee40
vpternlogq $0x96, %ymm18, %ymm12, %ymm15
vpternlogq $0x96, %ymm18, %ymm16, %ymm11
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm1, %ymm12, %ymm12
vpshufb %ymm0, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpxorq %ymm12, %ymm16, %ymm17
vpshufb %ymm3, %ymm13, %ymm13
vpshufb %ymm2, %ymm14, %ymm14
vpxorq %ymm13, %ymm14, %ymm18
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm0, %ymm15, %ymm15
vpshufb %ymm1, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpshufb %ymm3, %ymm9, %ymm9
vpxorq %ymm15, %ymm11, %ymm19
vpxorq %ymm10, %ymm9, %ymm20
vpxorq %ymm10, %ymm19, %ymm10
vpxorq %ymm9, %ymm19, %ymm9
vpxorq %ymm15, %ymm20, %ymm15
vpxorq %ymm11, %ymm20, %ymm11
vpxor 0x8a0b(%rip), %ymm13, %ymm13 # 0xefa0
vpxor 0x8a43(%rip), %ymm14, %ymm14 # 0xefe0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x89cd(%rip), %ymm12, %ymm12 # 0xef80
vpxorq 0x8a03(%rip), %ymm16, %ymm16 # 0xefc0
vpternlogq $0x96, %ymm18, %ymm15, %ymm12
vpternlogq $0x96, %ymm18, %ymm11, %ymm16
vpshufb %ymm15, %ymm4, %ymm15
vpshufb %ymm11, %ymm4, %ymm11
vpshufb %ymm1, %ymm15, %ymm15
vpshufb %ymm0, %ymm11, %ymm11
vpshufb %ymm10, %ymm4, %ymm10
vpshufb %ymm9, %ymm4, %ymm9
vpxorq %ymm15, %ymm11, %ymm17
vpshufb %ymm3, %ymm10, %ymm10
vpshufb %ymm2, %ymm9, %ymm9
vpxorq %ymm10, %ymm9, %ymm18
vpshufb %ymm12, %ymm4, %ymm12
vpshufb %ymm16, %ymm4, %ymm16
vpshufb %ymm0, %ymm12, %ymm12
vpshufb %ymm1, %ymm16, %ymm16
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vpshufb %ymm2, %ymm13, %ymm13
vpshufb %ymm3, %ymm14, %ymm14
vpxorq %ymm12, %ymm16, %ymm19
vpxorq %ymm13, %ymm14, %ymm20
vpxorq %ymm13, %ymm19, %ymm13
vpxorq %ymm14, %ymm19, %ymm14
vpxorq %ymm12, %ymm20, %ymm12
vpxorq %ymm16, %ymm20, %ymm16
vpxorq %ymm5, %ymm17, %ymm5
vpternlogq $0x96, %ymm10, %ymm13, %ymm5
vpxorq %ymm6, %ymm17, %ymm6
vpternlogq $0x96, %ymm9, %ymm14, %ymm6
vpxor %ymm7, %ymm15, %ymm7
vpternlogq $0x96, %ymm18, %ymm12, %ymm7
vpxor %ymm11, %ymm8, %ymm8
vpternlogq $0x96, %ymm18, %ymm16, %ymm8
vpshufb %ymm7, %ymm4, %ymm7
vpshufb %ymm5, %ymm4, %ymm5
vpshufb %ymm8, %ymm4, %ymm8
vpshufb %ymm6, %ymm4, %ymm6
vpshufb %ymm12, %ymm4, %ymm9
vpshufb %ymm13, %ymm4, %ymm10
vpshufb %ymm16, %ymm4, %ymm11
vpshufb %ymm14, %ymm4, %ymm4
vpshufb %ymm0, %ymm7, %ymm7
vmovdqa %ymm7, (%r8)
vpshufb %ymm2, %ymm5, %ymm5
vmovdqa %ymm5, 0x20(%r8)
vpshufb %ymm1, %ymm8, %ymm5
vmovdqa %ymm5, 0x40(%r8)
vpshufb %ymm3, %ymm6, %ymm5
vmovdqa %ymm5, 0x60(%r8)
vpshufb %ymm1, %ymm9, %ymm1
vmovdqa %ymm1, (%r9)
vpshufb %ymm3, %ymm10, %ymm1
vmovdqa %ymm1, 0x20(%r9)
vpshufb %ymm0, %ymm11, %ymm0
vmovdqa %ymm0, 0x40(%r9)
vpshufb %ymm2, %ymm4, %ymm0
vmovdqa %ymm0, 0x60(%r9)
vzeroupper
retq