// File: /workspace/github_c_makefile_star2_O2/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 0x476c(%rip), %ymm8 # 0xa00d
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 0x7d17(%rip), %ymm4     # 0xd600
vpshufb %ymm9, %ymm4, %ymm0
vpshufb %ymm11, %ymm4, %ymm2
vmovdqa 0x7d25(%rip), %ymm1     # 0xd620
vpshufb %ymm1, %ymm0, %ymm5
vmovdqa 0x7d58(%rip), %ymm0     # 0xd660
vpshufb %ymm0, %ymm2, %ymm7
vpshufb %ymm10, %ymm4, %ymm2
vpshufb %ymm8, %ymm4, %ymm8
vpxor %ymm5, %ymm7, %ymm9
vmovdqa 0x7d1d(%rip), %ymm3     # 0xd640
vpshufb %ymm3, %ymm2, %ymm10
vmovdqa 0x7d50(%rip), %ymm2     # 0xd680
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 0x75cc(%rip), %ymm5     # 0xcf20
vpshufb %ymm12, %ymm4, %ymm7
vpshufb %ymm6, %ymm4, %ymm8
vmovdqa 0x75fa(%rip), %ymm6     # 0xcf60
vpshufb %ymm0, %ymm7, %ymm12
vpshufb %ymm1, %ymm8, %ymm16
vmovdqa 0x7587(%rip), %ymm7     # 0xcf00
vpshufb %ymm13, %ymm4, %ymm13
vpshufb %ymm14, %ymm4, %ymm14
vmovdqa 0x75b5(%rip), %ymm8     # 0xcf40
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 0x7a41(%rip), %ymm13, %ymm13 # 0xd4a0
vpxor 0x7a79(%rip), %ymm14, %ymm14 # 0xd4e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x7a03(%rip), %ymm12, %ymm12 # 0xd480
vpxorq 0x7a39(%rip), %ymm16, %ymm16 # 0xd4c0
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 0x7901(%rip), %ymm10, %ymm10 # 0xd420
vpxor 0x7939(%rip), %ymm9, %ymm9 # 0xd460
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x78c3(%rip), %ymm15, %ymm15 # 0xd400
vpxor 0x78fb(%rip), %ymm11, %ymm11 # 0xd440
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 0x79c3(%rip), %ymm13, %ymm13 # 0xd5a0
vpxor 0x79fb(%rip), %ymm14, %ymm14 # 0xd5e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x7985(%rip), %ymm12, %ymm12 # 0xd580
vpxorq 0x79bb(%rip), %ymm16, %ymm16 # 0xd5c0
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 0x7883(%rip), %ymm10, %ymm10 # 0xd520
vpxor 0x78bb(%rip), %ymm9, %ymm9 # 0xd560
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x7845(%rip), %ymm15, %ymm15 # 0xd500
vpxor 0x787d(%rip), %ymm11, %ymm11 # 0xd540
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 0x7545(%rip), %ymm13, %ymm13 # 0xd2a0
vpxor 0x757d(%rip), %ymm14, %ymm14 # 0xd2e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x7507(%rip), %ymm12, %ymm12 # 0xd280
vpxorq 0x753d(%rip), %ymm16, %ymm16 # 0xd2c0
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 0x7405(%rip), %ymm10, %ymm10 # 0xd220
vpxor 0x743d(%rip), %ymm9, %ymm9 # 0xd260
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x73c7(%rip), %ymm15, %ymm15 # 0xd200
vpxor 0x73ff(%rip), %ymm11, %ymm11 # 0xd240
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 0x74c7(%rip), %ymm13, %ymm13 # 0xd3a0
vpxor 0x74ff(%rip), %ymm14, %ymm14 # 0xd3e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x7489(%rip), %ymm12, %ymm12 # 0xd380
vpxorq 0x74bf(%rip), %ymm16, %ymm16 # 0xd3c0
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 0x7387(%rip), %ymm10, %ymm10 # 0xd320
vpxor 0x73bf(%rip), %ymm9, %ymm9 # 0xd360
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x7349(%rip), %ymm15, %ymm15 # 0xd300
vpxor 0x7381(%rip), %ymm11, %ymm11 # 0xd340
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 0x7049(%rip), %ymm13, %ymm13 # 0xd0a0
vpxor 0x7081(%rip), %ymm14, %ymm14 # 0xd0e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x700b(%rip), %ymm12, %ymm12 # 0xd080
vpxorq 0x7041(%rip), %ymm16, %ymm16 # 0xd0c0
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 0x6f09(%rip), %ymm10, %ymm10 # 0xd020
vpxor 0x6f41(%rip), %ymm9, %ymm9 # 0xd060
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x6ecb(%rip), %ymm15, %ymm15 # 0xd000
vpxor 0x6f03(%rip), %ymm11, %ymm11 # 0xd040
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 0x6fcb(%rip), %ymm13, %ymm13 # 0xd1a0
vpxor 0x7003(%rip), %ymm14, %ymm14 # 0xd1e0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x6f8d(%rip), %ymm12, %ymm12 # 0xd180
vpxorq 0x6fc3(%rip), %ymm16, %ymm16 # 0xd1c0
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 0x6e8b(%rip), %ymm10, %ymm10 # 0xd120
vpxor 0x6ec3(%rip), %ymm9, %ymm9 # 0xd160
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x6e4d(%rip), %ymm15, %ymm15 # 0xd100
vpxor 0x6e85(%rip), %ymm11, %ymm11 # 0xd140
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 0x6b4d(%rip), %ymm13, %ymm13 # 0xcea0
vpxor 0x6b85(%rip), %ymm14, %ymm14 # 0xcee0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x6b0f(%rip), %ymm12, %ymm12 # 0xce80
vpxorq 0x6b45(%rip), %ymm16, %ymm16 # 0xcec0
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 0x6a0d(%rip), %ymm10, %ymm10 # 0xce20
vpxor 0x6a45(%rip), %ymm9, %ymm9 # 0xce60
vpternlogq $0x96, %ymm17, %ymm13, %ymm10
vpternlogq $0x96, %ymm17, %ymm14, %ymm9
vpxor 0x69cf(%rip), %ymm15, %ymm15 # 0xce00
vpxor 0x6a07(%rip), %ymm11, %ymm11 # 0xce40
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 0x6acf(%rip), %ymm13, %ymm13 # 0xcfa0
vpxor 0x6b07(%rip), %ymm14, %ymm14 # 0xcfe0
vpternlogq $0x96, %ymm17, %ymm10, %ymm13
vpternlogq $0x96, %ymm17, %ymm9, %ymm14
vpxor 0x6a91(%rip), %ymm12, %ymm12 # 0xcf80
vpxorq 0x6ac7(%rip), %ymm16, %ymm16 # 0xcfc0
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