// File: /workspace/github_c_makefile_star2_O3/mjosaarinen[P]brutus/crypto_aead/oceankeyakv2/KnightsLanding/KeccakP-1600-AVX512.c
// Function: KeccakP1600_Permute_12rounds
void KeccakP1600_Permute_12rounds(void *state)
{
    KeccakP_DeclareVars
    #ifndef KeccakP1600_fullUnrolling
    unsigned int i;
    #endif
    UINT64 *stateAsLanes = (UINT64*)state;

    copyFromState(stateAsLanes);
    rounds12;
    copyToState(stateAsLanes);
}

// Assembly:
movb $0x1f, %al
kmovd %eax, %k1
vmovdqu64 (%rdi), %zmm0 {%k1} {z}
vmovdqu64 0x28(%rdi), %zmm5 {%k1} {z}
vmovdqu64 0x50(%rdi), %zmm6 {%k1} {z}
vmovdqu64 0x78(%rdi), %zmm7 {%k1} {z}
vmovdqu64 0xa0(%rdi), %zmm8 {%k1} {z}
vmovdqa64 %zmm0, %zmm3
vpternlogq $0x96, %zmm6, %zmm5, %zmm3
vpternlogq $0x96, %zmm8, %zmm7, %zmm3
vpmovsxbq 0x2aae0(%rip), %zmm1 # 0x30240
vpermq %zmm3, %zmm1, %zmm4
vpmovsxbq 0x2aad8(%rip), %zmm2 # 0x30248
vpermq %zmm3, %zmm2, %zmm3
vprolq $0x1, %zmm3, %zmm3
vpternlogq $0x96, %zmm4, %zmm3, %zmm0
vpternlogq $0x96, %zmm4, %zmm3, %zmm5
vpternlogq $0x96, %zmm4, %zmm3, %zmm6
vpternlogq $0x96, %zmm4, %zmm3, %zmm7
vpternlogq $0x96, %zmm4, %zmm3, %zmm8
vpmovsxbq 0x2aaa6(%rip), %zmm3 # 0x30250
vprolvq %zmm3, %zmm0, %zmm0
vpmovsxbq 0x2aa9e(%rip), %zmm4 # 0x30258
vprolvq %zmm4, %zmm5, %zmm10
vpmovsxbq 0x2aa96(%rip), %zmm5 # 0x30260
vprolvq %zmm5, %zmm6, %zmm11
vpmovsxbq 0x2aa8e(%rip), %zmm6 # 0x30268
vprolvq %zmm6, %zmm7, %zmm12
vpmovsxbq 0x2aa86(%rip), %zmm7 # 0x30270
vprolvq %zmm7, %zmm8, %zmm13
vpmovsxbq 0x2aa7e(%rip), %zmm8 # 0x30278
vpermq %zmm0, %zmm8, %zmm0
vpmovsxbq 0x2aa76(%rip), %zmm9 # 0x30280
vpermq %zmm10, %zmm9, %zmm14
vpmovsxbq 0x2aa6e(%rip), %zmm10 # 0x30288
vpermq %zmm11, %zmm10, %zmm15
vpmovsxbq 0x2aa66(%rip), %zmm11 # 0x30290
vpermq %zmm12, %zmm11, %zmm16
vpmovsxbq 0x2aa5e(%rip), %zmm12 # 0x30298
vpermq %zmm13, %zmm12, %zmm17
vmovdqa64 %zmm0, %zmm13
vpternlogq $0xd2, %zmm15, %zmm14, %zmm13
vmovdqa64 %zmm14, %zmm18
vpternlogq $0xd2, %zmm16, %zmm15, %zmm18
vpternlogq $0xd2, %zmm17, %zmm16, %zmm15
vpternlogq $0xd2, %zmm0, %zmm17, %zmm16
vpternlogq $0xd2, %zmm14, %zmm0, %zmm17
movq 0x2f782(%rip), %rax     # 0x34ff8
vmovq 0x60(%rax), %xmm0
vpxorq %zmm13, %zmm0, %zmm14
vpunpcklqdq %zmm18, %zmm14, %zmm19 # zmm19 = zmm14[0],zmm18[0],zmm14[2],zmm18[2],zmm14[4],zmm18[4],zmm14[6],zmm18[6]
vpmovsxbq 0x2aa0f(%rip), %zmm13 # 0x302a0
vpunpcklqdq %zmm16, %zmm15, %zmm20 # zmm20 = zmm15[0],zmm16[0],zmm15[2],zmm16[2],zmm15[4],zmm16[4],zmm15[6],zmm16[6]
vpermt2q %zmm17, %zmm13, %zmm19
vpmovsxbq 0x2aa01(%rip), %zmm0 # 0x302a8
vmovdqa64 %zmm19, %zmm21
vpermt2q %zmm20, %zmm0, %zmm21
movb $0x10, %cl
kmovd %ecx, %k2
vmovdqa64 %zmm17, %zmm21 {%k2}
vpunpckhqdq %zmm18, %zmm14, %zmm18 # zmm18 = zmm14[1],zmm18[1],zmm14[3],zmm18[3],zmm14[5],zmm18[5],zmm14[7],zmm18[7]
vpunpckhqdq %zmm16, %zmm15, %zmm22 # zmm22 = zmm15[1],zmm16[1],zmm15[3],zmm16[3],zmm15[5],zmm16[5],zmm15[7],zmm16[7]
vpmovsxbq 0x2a9db(%rip), %zmm14 # 0x302b0
vpermt2q %zmm17, %zmm14, %zmm18
vpmovsxbq 0x2a9d3(%rip), %zmm15 # 0x302b8
vmovdqa64 %zmm19, %zmm17
vpermt2q %zmm20, %zmm15, %zmm17
vmovdqa64 %zmm18, %zmm23
vpermt2q %zmm22, %zmm15, %zmm23
vpmovsxbq 0x2a9b9(%rip), %zmm16 # 0x302c0
vpermt2q %zmm20, %zmm16, %zmm19
vpermt2q %zmm22, %zmm16, %zmm18
vmovdqa64 %zmm17, %zmm20
vpternlogq $0x96, %zmm19, %zmm23, %zmm20
vpternlogq $0x96, %zmm21, %zmm18, %zmm20
vpermq %zmm20, %zmm1, %zmm22
vpermq %zmm20, %zmm2, %zmm20
vprolq $0x1, %zmm20, %zmm20
vpternlogq $0x96, %zmm22, %zmm20, %zmm17
vpternlogq $0x96, %zmm22, %zmm20, %zmm23
vpternlogq $0x96, %zmm22, %zmm20, %zmm19
vpternlogq $0x96, %zmm22, %zmm20, %zmm18
vpternlogq $0x96, %zmm22, %zmm20, %zmm21
vprolvq %zmm3, %zmm17, %zmm17
vprolvq %zmm4, %zmm23, %zmm20
vprolvq %zmm5, %zmm19, %zmm19
vprolvq %zmm6, %zmm18, %zmm18
vprolvq %zmm7, %zmm21, %zmm21
vpermq %zmm17, %zmm8, %zmm17
vpermq %zmm20, %zmm9, %zmm20
vpermq %zmm19, %zmm10, %zmm19
vpermq %zmm18, %zmm11, %zmm18
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm17, %zmm22
vpternlogq $0xd2, %zmm19, %zmm20, %zmm22
vmovdqa64 %zmm20, %zmm23
vpternlogq $0xd2, %zmm18, %zmm19, %zmm23
vpternlogq $0xd2, %zmm21, %zmm18, %zmm19
vpternlogq $0xd2, %zmm17, %zmm21, %zmm18
vpternlogq $0xd2, %zmm20, %zmm17, %zmm21
vmovq 0x68(%rax), %xmm17
vpxorq %zmm22, %zmm17, %zmm17
vpunpcklqdq %zmm23, %zmm17, %zmm20 # zmm20 = zmm17[0],zmm23[0],zmm17[2],zmm23[2],zmm17[4],zmm23[4],zmm17[6],zmm23[6]
vpunpcklqdq %zmm18, %zmm19, %zmm22 # zmm22 = zmm19[0],zmm18[0],zmm19[2],zmm18[2],zmm19[4],zmm18[4],zmm19[6],zmm18[6]
vpermt2q %zmm21, %zmm13, %zmm20
vmovdqa64 %zmm20, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm17, %zmm17 # zmm17 = zmm17[1],zmm23[1],zmm17[3],zmm23[3],zmm17[5],zmm23[5],zmm17[7],zmm23[7]
vpunpckhqdq %zmm18, %zmm19, %zmm18 # zmm18 = zmm19[1],zmm18[1],zmm19[3],zmm18[3],zmm19[5],zmm18[5],zmm19[7],zmm18[7]
vpermt2q %zmm21, %zmm14, %zmm17
vmovdqa64 %zmm20, %zmm19
vpermt2q %zmm22, %zmm15, %zmm19
vmovdqa64 %zmm17, %zmm21
vpermt2q %zmm18, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm20
vpermt2q %zmm18, %zmm16, %zmm17
vmovdqa64 %zmm19, %zmm18
vpternlogq $0x96, %zmm20, %zmm21, %zmm18
vpternlogq $0x96, %zmm24, %zmm17, %zmm18
vpermq %zmm18, %zmm1, %zmm22
vpermq %zmm18, %zmm2, %zmm18
vprolq $0x1, %zmm18, %zmm18
vpternlogq $0x96, %zmm22, %zmm18, %zmm19
vpternlogq $0x96, %zmm22, %zmm18, %zmm21
vpternlogq $0x96, %zmm22, %zmm18, %zmm20
vpternlogq $0x96, %zmm22, %zmm18, %zmm17
vpternlogq $0x96, %zmm22, %zmm18, %zmm24
vprolvq %zmm3, %zmm19, %zmm18
vprolvq %zmm4, %zmm21, %zmm19
vprolvq %zmm5, %zmm20, %zmm20
vprolvq %zmm6, %zmm17, %zmm17
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm18, %zmm8, %zmm18
vpermq %zmm19, %zmm9, %zmm19
vpermq %zmm20, %zmm10, %zmm20
vpermq %zmm17, %zmm11, %zmm17
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm18, %zmm22
vpternlogq $0xd2, %zmm20, %zmm19, %zmm22
vmovdqa64 %zmm19, %zmm23
vpternlogq $0xd2, %zmm17, %zmm20, %zmm23
vpternlogq $0xd2, %zmm21, %zmm17, %zmm20
vpternlogq $0xd2, %zmm18, %zmm21, %zmm17
vpternlogq $0xd2, %zmm19, %zmm18, %zmm21
vmovq 0x70(%rax), %xmm18
vpxorq %zmm22, %zmm18, %zmm18
vpunpcklqdq %zmm23, %zmm18, %zmm19 # zmm19 = zmm18[0],zmm23[0],zmm18[2],zmm23[2],zmm18[4],zmm23[4],zmm18[6],zmm23[6]
vpunpcklqdq %zmm17, %zmm20, %zmm22 # zmm22 = zmm20[0],zmm17[0],zmm20[2],zmm17[2],zmm20[4],zmm17[4],zmm20[6],zmm17[6]
vpermt2q %zmm21, %zmm13, %zmm19
vmovdqa64 %zmm19, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm18, %zmm18 # zmm18 = zmm18[1],zmm23[1],zmm18[3],zmm23[3],zmm18[5],zmm23[5],zmm18[7],zmm23[7]
vpunpckhqdq %zmm17, %zmm20, %zmm17 # zmm17 = zmm20[1],zmm17[1],zmm20[3],zmm17[3],zmm20[5],zmm17[5],zmm20[7],zmm17[7]
vpermt2q %zmm21, %zmm14, %zmm18
vmovdqa64 %zmm19, %zmm20
vpermt2q %zmm22, %zmm15, %zmm20
vmovdqa64 %zmm18, %zmm21
vpermt2q %zmm17, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm19
vpermt2q %zmm17, %zmm16, %zmm18
vmovdqa64 %zmm20, %zmm17
vpternlogq $0x96, %zmm19, %zmm21, %zmm17
vpternlogq $0x96, %zmm24, %zmm18, %zmm17
vpermq %zmm17, %zmm1, %zmm22
vpermq %zmm17, %zmm2, %zmm17
vprolq $0x1, %zmm17, %zmm17
vpternlogq $0x96, %zmm22, %zmm17, %zmm20
vpternlogq $0x96, %zmm22, %zmm17, %zmm21
vpternlogq $0x96, %zmm22, %zmm17, %zmm19
vpternlogq $0x96, %zmm22, %zmm17, %zmm18
vpternlogq $0x96, %zmm22, %zmm17, %zmm24
vprolvq %zmm3, %zmm20, %zmm17
vprolvq %zmm4, %zmm21, %zmm20
vprolvq %zmm5, %zmm19, %zmm19
vprolvq %zmm6, %zmm18, %zmm18
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm17, %zmm8, %zmm17
vpermq %zmm20, %zmm9, %zmm20
vpermq %zmm19, %zmm10, %zmm19
vpermq %zmm18, %zmm11, %zmm18
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm17, %zmm22
vpternlogq $0xd2, %zmm19, %zmm20, %zmm22
vmovdqa64 %zmm20, %zmm23
vpternlogq $0xd2, %zmm18, %zmm19, %zmm23
vpternlogq $0xd2, %zmm21, %zmm18, %zmm19
vpternlogq $0xd2, %zmm17, %zmm21, %zmm18
vmovq 0x78(%rax), %xmm24
vpternlogq $0xd2, %zmm20, %zmm17, %zmm21
vpxorq %zmm22, %zmm24, %zmm17
vpunpcklqdq %zmm23, %zmm17, %zmm20 # zmm20 = zmm17[0],zmm23[0],zmm17[2],zmm23[2],zmm17[4],zmm23[4],zmm17[6],zmm23[6]
vpunpcklqdq %zmm18, %zmm19, %zmm22 # zmm22 = zmm19[0],zmm18[0],zmm19[2],zmm18[2],zmm19[4],zmm18[4],zmm19[6],zmm18[6]
vpermt2q %zmm21, %zmm13, %zmm20
vmovdqa64 %zmm20, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm17, %zmm17 # zmm17 = zmm17[1],zmm23[1],zmm17[3],zmm23[3],zmm17[5],zmm23[5],zmm17[7],zmm23[7]
vpunpckhqdq %zmm18, %zmm19, %zmm18 # zmm18 = zmm19[1],zmm18[1],zmm19[3],zmm18[3],zmm19[5],zmm18[5],zmm19[7],zmm18[7]
vpermt2q %zmm21, %zmm14, %zmm17
vmovdqa64 %zmm20, %zmm19
vpermt2q %zmm22, %zmm15, %zmm19
vmovdqa64 %zmm17, %zmm21
vpermt2q %zmm18, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm20
vpermt2q %zmm18, %zmm16, %zmm17
vmovdqa64 %zmm19, %zmm18
vpternlogq $0x96, %zmm20, %zmm21, %zmm18
vpternlogq $0x96, %zmm24, %zmm17, %zmm18
vpermq %zmm18, %zmm1, %zmm22
vpermq %zmm18, %zmm2, %zmm18
vprolq $0x1, %zmm18, %zmm18
vpternlogq $0x96, %zmm22, %zmm18, %zmm19
vpternlogq $0x96, %zmm22, %zmm18, %zmm21
vpternlogq $0x96, %zmm22, %zmm18, %zmm20
vpternlogq $0x96, %zmm22, %zmm18, %zmm17
vpternlogq $0x96, %zmm22, %zmm18, %zmm24
vprolvq %zmm3, %zmm19, %zmm18
vprolvq %zmm4, %zmm21, %zmm19
vprolvq %zmm5, %zmm20, %zmm20
vprolvq %zmm6, %zmm17, %zmm17
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm18, %zmm8, %zmm18
vpermq %zmm19, %zmm9, %zmm19
vpermq %zmm20, %zmm10, %zmm20
vpermq %zmm17, %zmm11, %zmm17
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm18, %zmm22
vpternlogq $0xd2, %zmm20, %zmm19, %zmm22
vmovdqa64 %zmm19, %zmm23
vpternlogq $0xd2, %zmm17, %zmm20, %zmm23
vpternlogq $0xd2, %zmm21, %zmm17, %zmm20
vpternlogq $0xd2, %zmm18, %zmm21, %zmm17
vpternlogq $0xd2, %zmm19, %zmm18, %zmm21
vmovq 0x80(%rax), %xmm18
vpxorq %zmm22, %zmm18, %zmm18
vpunpcklqdq %zmm23, %zmm18, %zmm19 # zmm19 = zmm18[0],zmm23[0],zmm18[2],zmm23[2],zmm18[4],zmm23[4],zmm18[6],zmm23[6]
vpunpcklqdq %zmm17, %zmm20, %zmm22 # zmm22 = zmm20[0],zmm17[0],zmm20[2],zmm17[2],zmm20[4],zmm17[4],zmm20[6],zmm17[6]
vpermt2q %zmm21, %zmm13, %zmm19
vmovdqa64 %zmm19, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm18, %zmm18 # zmm18 = zmm18[1],zmm23[1],zmm18[3],zmm23[3],zmm18[5],zmm23[5],zmm18[7],zmm23[7]
vpunpckhqdq %zmm17, %zmm20, %zmm17 # zmm17 = zmm20[1],zmm17[1],zmm20[3],zmm17[3],zmm20[5],zmm17[5],zmm20[7],zmm17[7]
vpermt2q %zmm21, %zmm14, %zmm18
vmovdqa64 %zmm19, %zmm20
vpermt2q %zmm22, %zmm15, %zmm20
vmovdqa64 %zmm18, %zmm21
vpermt2q %zmm17, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm19
vpermt2q %zmm17, %zmm16, %zmm18
vmovdqa64 %zmm20, %zmm17
vpternlogq $0x96, %zmm19, %zmm21, %zmm17
vpternlogq $0x96, %zmm24, %zmm18, %zmm17
vpermq %zmm17, %zmm1, %zmm22
vpermq %zmm17, %zmm2, %zmm17
vprolq $0x1, %zmm17, %zmm17
vpternlogq $0x96, %zmm22, %zmm17, %zmm20
vpternlogq $0x96, %zmm22, %zmm17, %zmm21
vpternlogq $0x96, %zmm22, %zmm17, %zmm19
vpternlogq $0x96, %zmm22, %zmm17, %zmm18
vpternlogq $0x96, %zmm22, %zmm17, %zmm24
vprolvq %zmm3, %zmm20, %zmm17
vprolvq %zmm4, %zmm21, %zmm20
vprolvq %zmm5, %zmm19, %zmm19
vprolvq %zmm6, %zmm18, %zmm18
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm17, %zmm8, %zmm17
vpermq %zmm20, %zmm9, %zmm20
vpermq %zmm19, %zmm10, %zmm19
vpermq %zmm18, %zmm11, %zmm18
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm17, %zmm22
vpternlogq $0xd2, %zmm19, %zmm20, %zmm22
vmovdqa64 %zmm20, %zmm23
vpternlogq $0xd2, %zmm18, %zmm19, %zmm23
vpternlogq $0xd2, %zmm21, %zmm18, %zmm19
vpternlogq $0xd2, %zmm17, %zmm21, %zmm18
vpternlogq $0xd2, %zmm20, %zmm17, %zmm21
vmovq 0x88(%rax), %xmm17
vpxorq %zmm22, %zmm17, %zmm17
vpunpcklqdq %zmm23, %zmm17, %zmm20 # zmm20 = zmm17[0],zmm23[0],zmm17[2],zmm23[2],zmm17[4],zmm23[4],zmm17[6],zmm23[6]
vpunpcklqdq %zmm18, %zmm19, %zmm22 # zmm22 = zmm19[0],zmm18[0],zmm19[2],zmm18[2],zmm19[4],zmm18[4],zmm19[6],zmm18[6]
vpermt2q %zmm21, %zmm13, %zmm20
vmovdqa64 %zmm20, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm17, %zmm17 # zmm17 = zmm17[1],zmm23[1],zmm17[3],zmm23[3],zmm17[5],zmm23[5],zmm17[7],zmm23[7]
vpunpckhqdq %zmm18, %zmm19, %zmm18 # zmm18 = zmm19[1],zmm18[1],zmm19[3],zmm18[3],zmm19[5],zmm18[5],zmm19[7],zmm18[7]
vpermt2q %zmm21, %zmm14, %zmm17
vmovdqa64 %zmm20, %zmm19
vpermt2q %zmm22, %zmm15, %zmm19
vmovdqa64 %zmm17, %zmm21
vpermt2q %zmm18, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm20
vpermt2q %zmm18, %zmm16, %zmm17
vmovdqa64 %zmm19, %zmm18
vpternlogq $0x96, %zmm20, %zmm21, %zmm18
vpternlogq $0x96, %zmm24, %zmm17, %zmm18
vpermq %zmm18, %zmm1, %zmm22
vpermq %zmm18, %zmm2, %zmm18
vprolq $0x1, %zmm18, %zmm18
vpternlogq $0x96, %zmm22, %zmm18, %zmm19
vpternlogq $0x96, %zmm22, %zmm18, %zmm21
vpternlogq $0x96, %zmm22, %zmm18, %zmm20
vpternlogq $0x96, %zmm22, %zmm18, %zmm17
vpternlogq $0x96, %zmm22, %zmm18, %zmm24
vprolvq %zmm3, %zmm19, %zmm18
vprolvq %zmm4, %zmm21, %zmm19
vprolvq %zmm5, %zmm20, %zmm20
vprolvq %zmm6, %zmm17, %zmm17
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm18, %zmm8, %zmm18
vpermq %zmm19, %zmm9, %zmm19
vpermq %zmm20, %zmm10, %zmm20
vpermq %zmm17, %zmm11, %zmm17
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm18, %zmm22
vpternlogq $0xd2, %zmm20, %zmm19, %zmm22
vmovdqa64 %zmm19, %zmm23
vpternlogq $0xd2, %zmm17, %zmm20, %zmm23
vpternlogq $0xd2, %zmm21, %zmm17, %zmm20
vpternlogq $0xd2, %zmm18, %zmm21, %zmm17
vmovq 0x90(%rax), %xmm24
vpternlogq $0xd2, %zmm19, %zmm18, %zmm21
vpxorq %zmm22, %zmm24, %zmm18
vpunpcklqdq %zmm23, %zmm18, %zmm19 # zmm19 = zmm18[0],zmm23[0],zmm18[2],zmm23[2],zmm18[4],zmm23[4],zmm18[6],zmm23[6]
vpunpcklqdq %zmm17, %zmm20, %zmm22 # zmm22 = zmm20[0],zmm17[0],zmm20[2],zmm17[2],zmm20[4],zmm17[4],zmm20[6],zmm17[6]
vpermt2q %zmm21, %zmm13, %zmm19
vmovdqa64 %zmm19, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm18, %zmm18 # zmm18 = zmm18[1],zmm23[1],zmm18[3],zmm23[3],zmm18[5],zmm23[5],zmm18[7],zmm23[7]
vpunpckhqdq %zmm17, %zmm20, %zmm17 # zmm17 = zmm20[1],zmm17[1],zmm20[3],zmm17[3],zmm20[5],zmm17[5],zmm20[7],zmm17[7]
vpermt2q %zmm21, %zmm14, %zmm18
vmovdqa64 %zmm19, %zmm20
vpermt2q %zmm22, %zmm15, %zmm20
vmovdqa64 %zmm18, %zmm21
vpermt2q %zmm17, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm19
vpermt2q %zmm17, %zmm16, %zmm18
vmovdqa64 %zmm20, %zmm17
vpternlogq $0x96, %zmm19, %zmm21, %zmm17
vpternlogq $0x96, %zmm24, %zmm18, %zmm17
vpermq %zmm17, %zmm1, %zmm22
vpermq %zmm17, %zmm2, %zmm17
vprolq $0x1, %zmm17, %zmm17
vpternlogq $0x96, %zmm22, %zmm17, %zmm20
vpternlogq $0x96, %zmm22, %zmm17, %zmm21
vpternlogq $0x96, %zmm22, %zmm17, %zmm19
vpternlogq $0x96, %zmm22, %zmm17, %zmm18
vpternlogq $0x96, %zmm22, %zmm17, %zmm24
vprolvq %zmm3, %zmm20, %zmm17
vprolvq %zmm4, %zmm21, %zmm20
vprolvq %zmm5, %zmm19, %zmm19
vprolvq %zmm6, %zmm18, %zmm18
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm17, %zmm8, %zmm17
vpermq %zmm20, %zmm9, %zmm20
vpermq %zmm19, %zmm10, %zmm19
vpermq %zmm18, %zmm11, %zmm18
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm17, %zmm22
vpternlogq $0xd2, %zmm19, %zmm20, %zmm22
vmovdqa64 %zmm20, %zmm23
vpternlogq $0xd2, %zmm18, %zmm19, %zmm23
vpternlogq $0xd2, %zmm21, %zmm18, %zmm19
vpternlogq $0xd2, %zmm17, %zmm21, %zmm18
vpternlogq $0xd2, %zmm20, %zmm17, %zmm21
vmovq 0x98(%rax), %xmm17
vpxorq %zmm22, %zmm17, %zmm17
vpunpcklqdq %zmm23, %zmm17, %zmm20 # zmm20 = zmm17[0],zmm23[0],zmm17[2],zmm23[2],zmm17[4],zmm23[4],zmm17[6],zmm23[6]
vpunpcklqdq %zmm18, %zmm19, %zmm22 # zmm22 = zmm19[0],zmm18[0],zmm19[2],zmm18[2],zmm19[4],zmm18[4],zmm19[6],zmm18[6]
vpermt2q %zmm21, %zmm13, %zmm20
vmovdqa64 %zmm20, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm17, %zmm17 # zmm17 = zmm17[1],zmm23[1],zmm17[3],zmm23[3],zmm17[5],zmm23[5],zmm17[7],zmm23[7]
vpunpckhqdq %zmm18, %zmm19, %zmm18 # zmm18 = zmm19[1],zmm18[1],zmm19[3],zmm18[3],zmm19[5],zmm18[5],zmm19[7],zmm18[7]
vpermt2q %zmm21, %zmm14, %zmm17
vmovdqa64 %zmm20, %zmm19
vpermt2q %zmm22, %zmm15, %zmm19
vmovdqa64 %zmm17, %zmm21
vpermt2q %zmm18, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm20
vpermt2q %zmm18, %zmm16, %zmm17
vmovdqa64 %zmm19, %zmm18
vpternlogq $0x96, %zmm20, %zmm21, %zmm18
vpternlogq $0x96, %zmm24, %zmm17, %zmm18
vpermq %zmm18, %zmm1, %zmm22
vpermq %zmm18, %zmm2, %zmm18
vprolq $0x1, %zmm18, %zmm18
vpternlogq $0x96, %zmm22, %zmm18, %zmm19
vpternlogq $0x96, %zmm22, %zmm18, %zmm21
vpternlogq $0x96, %zmm22, %zmm18, %zmm20
vpternlogq $0x96, %zmm22, %zmm18, %zmm17
vpternlogq $0x96, %zmm22, %zmm18, %zmm24
vprolvq %zmm3, %zmm19, %zmm18
vprolvq %zmm4, %zmm21, %zmm19
vprolvq %zmm5, %zmm20, %zmm20
vprolvq %zmm6, %zmm17, %zmm17
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm18, %zmm8, %zmm18
vpermq %zmm19, %zmm9, %zmm19
vpermq %zmm20, %zmm10, %zmm20
vpermq %zmm17, %zmm11, %zmm17
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm18, %zmm22
vpternlogq $0xd2, %zmm20, %zmm19, %zmm22
vmovdqa64 %zmm19, %zmm23
vpternlogq $0xd2, %zmm17, %zmm20, %zmm23
vpternlogq $0xd2, %zmm21, %zmm17, %zmm20
vpternlogq $0xd2, %zmm18, %zmm21, %zmm17
vpternlogq $0xd2, %zmm19, %zmm18, %zmm21
vmovq 0xa0(%rax), %xmm18
vpxorq %zmm22, %zmm18, %zmm18
vpunpcklqdq %zmm23, %zmm18, %zmm19 # zmm19 = zmm18[0],zmm23[0],zmm18[2],zmm23[2],zmm18[4],zmm23[4],zmm18[6],zmm23[6]
vpunpcklqdq %zmm17, %zmm20, %zmm22 # zmm22 = zmm20[0],zmm17[0],zmm20[2],zmm17[2],zmm20[4],zmm17[4],zmm20[6],zmm17[6]
vpermt2q %zmm21, %zmm13, %zmm19
vmovdqa64 %zmm19, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm18, %zmm18 # zmm18 = zmm18[1],zmm23[1],zmm18[3],zmm23[3],zmm18[5],zmm23[5],zmm18[7],zmm23[7]
vpunpckhqdq %zmm17, %zmm20, %zmm17 # zmm17 = zmm20[1],zmm17[1],zmm20[3],zmm17[3],zmm20[5],zmm17[5],zmm20[7],zmm17[7]
vpermt2q %zmm21, %zmm14, %zmm18
vmovdqa64 %zmm19, %zmm20
vpermt2q %zmm22, %zmm15, %zmm20
vmovdqa64 %zmm18, %zmm21
vpermt2q %zmm17, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm19
vpermt2q %zmm17, %zmm16, %zmm18
vmovdqa64 %zmm20, %zmm17
vpternlogq $0x96, %zmm19, %zmm21, %zmm17
vpternlogq $0x96, %zmm24, %zmm18, %zmm17
vpermq %zmm17, %zmm1, %zmm22
vpermq %zmm17, %zmm2, %zmm17
vprolq $0x1, %zmm17, %zmm17
vpternlogq $0x96, %zmm22, %zmm17, %zmm20
vpternlogq $0x96, %zmm22, %zmm17, %zmm21
vpternlogq $0x96, %zmm22, %zmm17, %zmm19
vpternlogq $0x96, %zmm22, %zmm17, %zmm18
vpternlogq $0x96, %zmm22, %zmm17, %zmm24
vprolvq %zmm3, %zmm20, %zmm17
vprolvq %zmm4, %zmm21, %zmm20
vprolvq %zmm5, %zmm19, %zmm19
vprolvq %zmm6, %zmm18, %zmm18
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm17, %zmm8, %zmm17
vpermq %zmm20, %zmm9, %zmm20
vpermq %zmm19, %zmm10, %zmm19
vpermq %zmm18, %zmm11, %zmm18
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm17, %zmm22
vpternlogq $0xd2, %zmm19, %zmm20, %zmm22
vmovdqa64 %zmm20, %zmm23
vpternlogq $0xd2, %zmm18, %zmm19, %zmm23
vpternlogq $0xd2, %zmm21, %zmm18, %zmm19
vpternlogq $0xd2, %zmm17, %zmm21, %zmm18
vmovq 0xa8(%rax), %xmm24
vpternlogq $0xd2, %zmm20, %zmm17, %zmm21
vpxorq %zmm22, %zmm24, %zmm17
vpunpcklqdq %zmm23, %zmm17, %zmm20 # zmm20 = zmm17[0],zmm23[0],zmm17[2],zmm23[2],zmm17[4],zmm23[4],zmm17[6],zmm23[6]
vpunpcklqdq %zmm18, %zmm19, %zmm22 # zmm22 = zmm19[0],zmm18[0],zmm19[2],zmm18[2],zmm19[4],zmm18[4],zmm19[6],zmm18[6]
vpermt2q %zmm21, %zmm13, %zmm20
vmovdqa64 %zmm20, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm17, %zmm17 # zmm17 = zmm17[1],zmm23[1],zmm17[3],zmm23[3],zmm17[5],zmm23[5],zmm17[7],zmm23[7]
vpunpckhqdq %zmm18, %zmm19, %zmm18 # zmm18 = zmm19[1],zmm18[1],zmm19[3],zmm18[3],zmm19[5],zmm18[5],zmm19[7],zmm18[7]
vpermt2q %zmm21, %zmm14, %zmm17
vmovdqa64 %zmm20, %zmm19
vpermt2q %zmm22, %zmm15, %zmm19
vmovdqa64 %zmm17, %zmm21
vpermt2q %zmm18, %zmm15, %zmm21
vpermt2q %zmm22, %zmm16, %zmm20
vpermt2q %zmm18, %zmm16, %zmm17
vmovdqa64 %zmm19, %zmm18
vpternlogq $0x96, %zmm20, %zmm21, %zmm18
vpternlogq $0x96, %zmm24, %zmm17, %zmm18
vpermq %zmm18, %zmm1, %zmm22
vpermq %zmm18, %zmm2, %zmm18
vprolq $0x1, %zmm18, %zmm18
vpternlogq $0x96, %zmm22, %zmm18, %zmm19
vpternlogq $0x96, %zmm22, %zmm18, %zmm21
vpternlogq $0x96, %zmm22, %zmm18, %zmm20
vpternlogq $0x96, %zmm22, %zmm18, %zmm17
vpternlogq $0x96, %zmm22, %zmm18, %zmm24
vprolvq %zmm3, %zmm19, %zmm18
vprolvq %zmm4, %zmm21, %zmm19
vprolvq %zmm5, %zmm20, %zmm20
vprolvq %zmm6, %zmm17, %zmm17
vprolvq %zmm7, %zmm24, %zmm21
vpermq %zmm18, %zmm8, %zmm18
vpermq %zmm19, %zmm9, %zmm19
vpermq %zmm20, %zmm10, %zmm20
vpermq %zmm17, %zmm11, %zmm17
vpermq %zmm21, %zmm12, %zmm21
vmovdqa64 %zmm18, %zmm22
vpternlogq $0xd2, %zmm20, %zmm19, %zmm22
vmovdqa64 %zmm19, %zmm23
vpternlogq $0xd2, %zmm17, %zmm20, %zmm23
vpternlogq $0xd2, %zmm21, %zmm17, %zmm20
vpternlogq $0xd2, %zmm18, %zmm21, %zmm17
vpternlogq $0xd2, %zmm19, %zmm18, %zmm21
vmovq 0xb0(%rax), %xmm18
vpxorq %zmm22, %zmm18, %zmm18
vpunpcklqdq %zmm23, %zmm18, %zmm19 # zmm19 = zmm18[0],zmm23[0],zmm18[2],zmm23[2],zmm18[4],zmm23[4],zmm18[6],zmm23[6]
vpunpcklqdq %zmm17, %zmm20, %zmm22 # zmm22 = zmm20[0],zmm17[0],zmm20[2],zmm17[2],zmm20[4],zmm17[4],zmm20[6],zmm17[6]
vpermt2q %zmm21, %zmm13, %zmm19
vmovdqa64 %zmm19, %zmm24
vpermt2q %zmm22, %zmm0, %zmm24
vmovdqa64 %zmm21, %zmm24 {%k2}
vpunpckhqdq %zmm23, %zmm18, %zmm18 # zmm18 = zmm18[1],zmm23[1],zmm18[3],zmm23[3],zmm18[5],zmm23[5],zmm18[7],zmm23[7]
vpunpckhqdq %zmm17, %zmm20, %zmm17 # zmm17 = zmm20[1],zmm17[1],zmm20[3],zmm17[3],zmm20[5],zmm17[5],zmm20[7],zmm17[7]
vpermt2q %zmm21, %zmm14, %zmm18
vmovdqa64 %zmm19, %zmm20
vpermt2q %zmm22, %zmm15, %zmm20
vpermi2q %zmm17, %zmm18, %zmm15
vpermt2q %zmm22, %zmm16, %zmm19
vpermt2q %zmm17, %zmm16, %zmm18
vmovdqa64 %zmm20, %zmm16
vpternlogq $0x96, %zmm19, %zmm15, %zmm16
vpternlogq $0x96, %zmm24, %zmm18, %zmm16
vpermq %zmm16, %zmm1, %zmm1
vpermq %zmm16, %zmm2, %zmm2
vprolq $0x1, %zmm2, %zmm2
vpternlogq $0x96, %zmm1, %zmm2, %zmm20
vpternlogq $0x96, %zmm1, %zmm2, %zmm15
vpternlogq $0x96, %zmm1, %zmm2, %zmm19
vpternlogq $0x96, %zmm1, %zmm2, %zmm18
vpternlogq $0x96, %zmm1, %zmm2, %zmm24
vprolvq %zmm3, %zmm20, %zmm1
vprolvq %zmm4, %zmm15, %zmm2
vprolvq %zmm5, %zmm19, %zmm3
vprolvq %zmm6, %zmm18, %zmm4
vprolvq %zmm7, %zmm24, %zmm5
vpermq %zmm1, %zmm8, %zmm1
vpermq %zmm2, %zmm9, %zmm2
vpermq %zmm3, %zmm10, %zmm3
vpermq %zmm4, %zmm11, %zmm4
vpermq %zmm5, %zmm12, %zmm5
vmovdqa64 %zmm1, %zmm6
vpternlogq $0xd2, %zmm3, %zmm2, %zmm6
vmovdqa64 %zmm2, %zmm7
vpternlogq $0xd2, %zmm4, %zmm3, %zmm7
vpternlogq $0xd2, %zmm5, %zmm4, %zmm3
vpternlogq $0xd2, %zmm1, %zmm5, %zmm4
vpternlogq $0xd2, %zmm2, %zmm1, %zmm5
vmovq 0xb8(%rax), %xmm1
vpxorq %zmm6, %zmm1, %zmm1
vpunpcklqdq %zmm7, %zmm1, %zmm2 # zmm2 = zmm1[0],zmm7[0],zmm1[2],zmm7[2],zmm1[4],zmm7[4],zmm1[6],zmm7[6]
vpunpcklqdq %zmm4, %zmm3, %zmm6 # zmm6 = zmm3[0],zmm4[0],zmm3[2],zmm4[2],zmm3[4],zmm4[4],zmm3[6],zmm4[6]
vpermt2q %zmm5, %zmm13, %zmm2
vpunpckhqdq %zmm7, %zmm1, %zmm1 # zmm1 = zmm1[1],zmm7[1],zmm1[3],zmm7[3],zmm1[5],zmm7[5],zmm1[7],zmm7[7]
vpunpckhqdq %zmm4, %zmm3, %zmm3 # zmm3 = zmm3[1],zmm4[1],zmm3[3],zmm4[3],zmm3[5],zmm4[5],zmm3[7],zmm4[7]
vpermt2q %zmm5, %zmm14, %zmm1
vpmovsxbq 0x29db2(%rip), %zmm4 # 0x302c8
vmovdqa64 %zmm2, %zmm7
vpermi2q %zmm6, %zmm2, %zmm0
vpermt2q %zmm6, %zmm4, %zmm2
vpermi2q %zmm3, %zmm1, %zmm4
vpmovsxbq 0x29d98(%rip), %zmm8 # 0x302d0
vpermt2q %zmm6, %zmm8, %zmm7
vpermt2q %zmm3, %zmm8, %zmm1
vshufi64x2 $0xe4, %zmm5, %zmm0, %zmm0 # zmm0 = zmm0[0,1,2,3],zmm5[4,5,6,7]
vmovdqu64 %zmm2, (%rdi) {%k1}
vmovdqu64 %zmm4, 0x28(%rdi) {%k1}
vmovdqu64 %zmm7, 0x50(%rdi) {%k1}
vmovdqu64 %zmm1, 0x78(%rdi) {%k1}
vmovdqu64 %zmm0, 0xa0(%rdi) {%k1}
vzeroupper
retq