// File: /workspace/github_c_makefile_star2_O1/mjosaarinen[P]brutus/crypto_aead/oceankeyakv2/KnightsLanding/KeccakP-1600-times8-SIMD512.c
// Function: KeccakF1600times8_FastLoop_Absorb
size_t KeccakF1600times8_FastLoop_Absorb(void *states, unsigned int laneCount, unsigned int laneOffsetParallel, unsigned int laneOffsetSerial, const unsigned char *data, size_t dataByteLen)
{
	size_t dataMinimumSize = (laneOffsetParallel*7 + laneCount)*8;

    if (laneCount == 21) {
	    #ifndef KeccakP1600times8_fullUnrolling
        unsigned int i;
		#endif
        const unsigned char *dataStart = data;
	    V512 *statesAsLanes = states;
	    const UINT64 *dataAsLanes = (const UINT64 *)data;
		KeccakP_DeclareVars;
		V256 index;

	    copyFromState(statesAsLanes);
	    index = LOAD8_32(7*laneOffsetParallel, 6*laneOffsetParallel, 5*laneOffsetParallel, 4*laneOffsetParallel, 3*laneOffsetParallel, 2*laneOffsetParallel, 1*laneOffsetParallel, 0*laneOffsetParallel);
        while(dataByteLen >= dataMinimumSize) {
		    #define Add_In( argLane, argIndex )  argLane = XOR(argLane, LOAD_GATHER8_64(index, dataAsLanes+argIndex))
	        Add_In( _ba, 0 );
	        Add_In( _be, 1 );
	        Add_In( _bi, 2 );
	        Add_In( _bo, 3 );
	        Add_In( _bu, 4 );
        	Add_In( _ga, 5 );
	        Add_In( _ge, 6 );
    	    Add_In( _gi, 7 );
	        Add_In( _go, 8 );
    	    Add_In( _gu, 9 );
        	Add_In( _ka, 10 );
        	Add_In( _ke, 11 );
        	Add_In( _ki, 12 );
        	Add_In( _ko, 13 );
        	Add_In( _ku, 14 );
         	Add_In( _ma, 15 );
         	Add_In( _me, 16 );
   	     	Add_In( _mi, 17 );
         	Add_In( _mo, 18 );
   	     	Add_In( _mu, 19 );
         	Add_In( _sa, 20 );
		    #undef  Add_In
            rounds24;
            dataAsLanes += laneOffsetSerial;
            dataByteLen -= laneOffsetSerial*8;
        }
        copyToState(statesAsLanes);
        return (const unsigned char *)dataAsLanes - dataStart;
    }
    else {
        const unsigned char *dataStart = data;

        while(dataByteLen >= dataMinimumSize) {
            KeccakP1600times8_AddLanesAll(states, data, laneCount, laneOffsetParallel);
            KeccakP1600times8_PermuteAll_24rounds(states);
            data += laneOffsetSerial*8;
            dataByteLen -= laneOffsetSerial*8;
        }
        return data - dataStart;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x288, %rsp            # imm = 0x288
movq %r9, %r15
movl %ecx, %r14d
movl %edx, %r13d
movl %esi, %r12d
leal (,%r13,8), %eax
subl %edx, %eax
leal (%rax,%r12), %r10d
shll $0x3, %r10d
cmpl $0x15, %esi
movq %r8, 0x8(%rsp)
jne 0x1bf3c
vmovdqa64 (%rdi), %zmm25
vmovdqa64 0x40(%rdi), %zmm6
vmovdqa64 0x80(%rdi), %zmm10
vmovdqa64 0xc0(%rdi), %zmm15
vmovaps 0x100(%rdi), %zmm0
vmovups %zmm0, 0x1e0(%rsp)
vmovaps 0x140(%rdi), %zmm0
vmovups %zmm0, 0x150(%rsp)
vmovdqa64 0x180(%rdi), %zmm9
vmovdqa64 0x1c0(%rdi), %zmm4
vmovdqa64 0x200(%rdi), %zmm7
vmovdqa64 0x240(%rdi), %zmm13
vmovdqa64 0x280(%rdi), %zmm14
vmovaps 0x2c0(%rdi), %zmm0
vmovups %zmm0, 0x1a0(%rsp)
vmovdqa64 0x300(%rdi), %zmm17
vmovdqa64 0x340(%rdi), %zmm11
vmovaps 0x380(%rdi), %zmm0
vmovups %zmm0, 0x10(%rsp)
vmovaps 0x3c0(%rdi), %zmm0
vmovups %zmm0, 0x50(%rsp)
vmovdqa64 0x400(%rdi), %zmm21
vmovdqa64 0x440(%rdi), %zmm0
vmovdqu64 %zmm0, 0xd0(%rsp)
vmovdqa64 0x480(%rdi), %zmm12
vmovdqa64 0x4c0(%rdi), %zmm19
vmovdqa64 0x500(%rdi), %zmm20
vmovdqa64 0x540(%rdi), %zmm16
vmovdqa64 0x580(%rdi), %zmm23
vmovdqa64 0x5c0(%rdi), %zmm18
vmovdqa64 0x600(%rdi), %zmm24
cmpq %r15, %r10
movq %rdi, %r12
jbe 0x1bf8d
movq %r8, %rbx
jmp 0x1e7c0
movq %r8, %rbx
cmpq %r15, %r10
ja 0x1e8c9
movq %rdi, %rbp
shll $0x3, %r14d
movq 0x8(%rsp), %rbx
movq %r10, 0x198(%rsp)
movq %rbp, %rdi
movq %rbx, %rsi
movl %r12d, %edx
movl %r13d, %ecx
callq 0x5190
movq %rbp, %rdi
callq 0x5500
movq 0x198(%rsp), %r10
addq %r14, %rbx
subq %r14, %r15
cmpq %r10, %r15
jae 0x1bf5c
jmp 0x1e8c9
leal (,%r13,2), %edx
leal (%rdx,%rdx,2), %edi
vpbroadcastd %r13d, %xmm0
vpmulld 0x15529(%rip), %xmm0, %xmm3 # 0x314d0
movb $0x2, %dl
kmovd %edx, %k1
vpexpandd %ymm0, %ymm0 {%k1} {z}
vpmovsxbq 0x15564(%rip), %ymm8 # 0x31520
vpermi2q %ymm0, %ymm3, %ymm8
vpbroadcastd %edi, %ymm0
vpblendd $0x40, %ymm0, %ymm8, %ymm0 # ymm0 = ymm8[0,1,2,3,4,5],ymm0[6],ymm8[7]
vpbroadcastd %eax, %ymm3
vpblendd $0x80, %ymm3, %ymm0, %ymm0 # ymm0 = ymm0[0,1,2,3,4,5,6],ymm3[7]
vmovdqu %ymm0, 0x220(%rsp)
movl %r14d, %eax
shll $0x3, %r14d
leaq 0x1554f(%rip), %rcx     # 0x31540
movq %r8, %rbx
vpxor %xmm0, %xmm0, %xmm0
kxnorw %k0, %k0, %k1
vmovdqu 0x220(%rsp), %ymm2
vpgatherdq (%rbx,%ymm2,8), %zmm0 {%k1}
vpxor %xmm5, %xmm5, %xmm5
kxnorw %k0, %k0, %k1
vpgatherdq 0x8(%rbx,%ymm2,8), %zmm5 {%k1}
vpxor %xmm1, %xmm1, %xmm1
kxnorw %k0, %k0, %k1
vpgatherdq 0x10(%rbx,%ymm2,8), %zmm1 {%k1}
vpxord %xmm27, %xmm27, %xmm27
kxnorw %k0, %k0, %k1
vpgatherdq 0x18(%rbx,%ymm2,8), %zmm27 {%k1}
vpxor %xmm3, %xmm3, %xmm3
kxnorw %k0, %k0, %k1
vpgatherdq 0x20(%rbx,%ymm2,8), %zmm3 {%k1}
vmovdqu64 %zmm3, 0x110(%rsp)
vpxord %xmm22, %xmm22, %xmm22
kxnorw %k0, %k0, %k1
vpgatherdq 0x28(%rbx,%ymm2,8), %zmm22 {%k1}
vpxord %xmm29, %xmm29, %xmm29
kxnorw %k0, %k0, %k1
vpgatherdq 0x30(%rbx,%ymm2,8), %zmm29 {%k1}
vpxord %xmm30, %xmm30, %xmm30
kxnorw %k0, %k0, %k1
vpgatherdq 0x38(%rbx,%ymm2,8), %zmm30 {%k1}
vpxord %xmm31, %xmm31, %xmm31
kxnorw %k0, %k0, %k1
vpgatherdq 0x40(%rbx,%ymm2,8), %zmm31 {%k1}
vpxord %xmm28, %xmm28, %xmm28
kxnorw %k0, %k0, %k1
vpgatherdq 0x48(%rbx,%ymm2,8), %zmm28 {%k1}
vpxor %xmm8, %xmm8, %xmm8
kxnorw %k0, %k0, %k1
vpgatherdq 0x50(%rbx,%ymm2,8), %zmm8 {%k1}
vpxor %xmm3, %xmm3, %xmm3
kxnorw %k0, %k0, %k1
vpgatherdq 0x58(%rbx,%ymm2,8), %zmm3 {%k1}
vpxord %xmm26, %xmm26, %xmm26
kxnorw %k0, %k0, %k1
vpgatherdq 0x60(%rbx,%ymm2,8), %zmm26 {%k1}
vpxorq %zmm25, %zmm0, %zmm25
vpxorq %zmm6, %zmm5, %zmm6
vmovdqu64 %zmm6, 0x90(%rsp)
vpxorq %zmm10, %zmm1, %zmm10
vpxorq %zmm15, %zmm27, %zmm15
vpxord %xmm27, %xmm27, %xmm27
kxnorw %k0, %k0, %k1
vpgatherdq 0x68(%rbx,%ymm2,8), %zmm27 {%k1}
vpxor %xmm0, %xmm0, %xmm0
kxnorw %k0, %k0, %k1
vpgatherdq 0x70(%rbx,%ymm2,8), %zmm0 {%k1}
vmovdqu64 0x1e0(%rsp), %zmm6
vpxorq 0x110(%rsp), %zmm6, %zmm6
vmovdqu64 0x150(%rsp), %zmm1
vpxorq %zmm1, %zmm22, %zmm1
vmovdqu64 %zmm1, 0x150(%rsp)
vpxorq %zmm9, %zmm29, %zmm9
vpxorq %zmm4, %zmm30, %zmm4
vmovdqu64 %zmm4, 0x110(%rsp)
vpxord %xmm29, %xmm29, %xmm29
kxnorw %k0, %k0, %k1
vpgatherdq 0x78(%rbx,%ymm2,8), %zmm29 {%k1}
vpxord %xmm30, %xmm30, %xmm30
kxnorw %k0, %k0, %k1
vpgatherdq 0x80(%rbx,%ymm2,8), %zmm30 {%k1}
vpxorq %zmm7, %zmm31, %zmm7
vpxorq %zmm13, %zmm28, %zmm13
vpxorq %zmm14, %zmm8, %zmm14
vmovdqu64 0x1a0(%rsp), %zmm5
vpxorq %zmm5, %zmm3, %zmm5
vpxor %xmm3, %xmm3, %xmm3
kxnorw %k0, %k0, %k1
vpgatherdq 0x88(%rbx,%ymm2,8), %zmm3 {%k1}
vpxor %xmm8, %xmm8, %xmm8
kxnorw %k0, %k0, %k1
vpgatherdq 0x90(%rbx,%ymm2,8), %zmm8 {%k1}
vpxorq %zmm17, %zmm26, %zmm17
vpxorq %zmm11, %zmm27, %zmm11
vmovdqu64 0x10(%rsp), %zmm4
vpxorq %zmm4, %zmm0, %zmm4
vmovdqu64 0x50(%rsp), %zmm22
vpxorq %zmm22, %zmm29, %zmm22
vpxor %xmm0, %xmm0, %xmm0
kxnorw %k0, %k0, %k1
vpgatherdq 0x98(%rbx,%ymm2,8), %zmm0 {%k1}
vpxord %xmm26, %xmm26, %xmm26
kxnorw %k0, %k0, %k1
vpgatherdq 0xa0(%rbx,%ymm2,8), %zmm26 {%k1}
vpxorq %zmm21, %zmm30, %zmm21
vmovdqu64 0xd0(%rsp), %zmm1
vpxorq %zmm1, %zmm3, %zmm1
vpxorq %zmm12, %zmm8, %zmm12
vpxorq %zmm19, %zmm0, %zmm19
vpxorq %zmm20, %zmm26, %zmm20
movq $-0xc, %rdx
vmovdqu64 %zmm16, 0x50(%rsp)
vmovdqu64 0x90(%rsp), %zmm0
vpternlogq $0x96, %zmm5, %zmm9, %zmm0
vpternlogq $0x96, %zmm16, %zmm21, %zmm0
vmovdqa64 %zmm6, %zmm28
vpternlogq $0x96, %zmm4, %zmm13, %zmm28
vpternlogq $0x96, %zmm24, %zmm19, %zmm28
vprolq $0x1, %zmm0, %zmm3
vpxorq %zmm3, %zmm28, %zmm26
vpxorq %zmm25, %zmm26, %zmm27
vmovdqa64 %zmm25, %zmm29
vmovdqu64 0x150(%rsp), %zmm16
vpternlogq $0x96, %zmm14, %zmm16, %zmm29
vmovdqa64 %zmm15, %zmm30
vmovdqa64 %zmm7, %zmm2
vpternlogq $0x96, %zmm11, %zmm7, %zmm30
vpternlogq $0x96, %zmm18, %zmm12, %zmm30
vprolq $0x1, %zmm30, %zmm3
vpxorq %zmm0, %zmm3, %zmm25
vpternlogq $0x96, %zmm20, %zmm22, %zmm29
vpxorq %zmm10, %zmm25, %zmm0
vmovdqu64 %zmm0, 0xd0(%rsp)
vmovdqu64 0x110(%rsp), %zmm7
vpternlogq $0x96, %zmm17, %zmm7, %zmm10
vpternlogq $0x96, %zmm23, %zmm1, %zmm10
vprolq $0x1, %zmm10, %zmm0
vprolq $0x1, %zmm28, %zmm3
vpxorq %zmm29, %zmm0, %zmm0
vprolq $0x1, %zmm29, %zmm28
vpxorq %zmm10, %zmm3, %zmm8
vpxorq %zmm28, %zmm30, %zmm30
vpxorq %zmm17, %zmm25, %zmm3
vpxorq %zmm12, %zmm8, %zmm17
vpxorq %zmm9, %zmm0, %zmm10
vpxorq %zmm24, %zmm30, %zmm12
vprolq $0x2c, %zmm10, %zmm28
vprolq $0x2b, %zmm3, %zmm9
vprolq $0x15, %zmm17, %zmm24
vprolq $0xe, %zmm12, %zmm12
vmovdqa64 %zmm27, %zmm3
vpternlogq $0xd2, %zmm9, %zmm28, %zmm3
vmovdqa64 %zmm28, %zmm29
vpternlogq $0xd2, %zmm24, %zmm9, %zmm29
vmovdqu64 %zmm29, 0x1a0(%rsp)
vpternlogq $0xd2, %zmm12, %zmm24, %zmm9
vmovdqu64 %zmm9, 0x10(%rsp)
vpternlogq $0xd2, %zmm27, %zmm12, %zmm24
vpxorq %zmm14, %zmm26, %zmm14
vpxorq %zmm21, %zmm0, %zmm17
vpternlogq $0xd2, %zmm28, %zmm27, %zmm12
vpxorq %zmm23, %zmm25, %zmm23
vpxorq %zmm15, %zmm8, %zmm27
vpxorq %zmm13, %zmm30, %zmm9
vprolq $0x3, %zmm14, %zmm21
vpxorq 0x60(%rcx,%rdx,8){1to8}, %zmm3, %zmm31
vprolq $0x2d, %zmm17, %zmm10
vprolq $0x3d, %zmm23, %zmm14
vprolq $0x1c, %zmm27, %zmm23
vprolq $0x14, %zmm9, %zmm27
vmovdqa64 %zmm23, %zmm17
vpternlogq $0xd2, %zmm21, %zmm27, %zmm17
vmovdqa64 %zmm27, %zmm28
vpternlogq $0xd2, %zmm10, %zmm21, %zmm28
vpternlogq $0xd2, %zmm14, %zmm10, %zmm21
vpxorq %zmm20, %zmm26, %zmm3
vpxorq 0x90(%rsp), %zmm0, %zmm20
vpxorq %zmm7, %zmm25, %zmm7
vpxorq %zmm11, %zmm8, %zmm11
vpternlogq $0xd2, %zmm23, %zmm14, %zmm10
vpxorq %zmm19, %zmm30, %zmm19
vprolq $0x12, %zmm3, %zmm9
vprolq $0x1, %zmm20, %zmm20
vprolq $0x6, %zmm7, %zmm7
vprolq $0x19, %zmm11, %zmm3
vpternlogq $0xd2, %zmm27, %zmm23, %zmm14
vprolq $0x8, %zmm19, %zmm27
vmovdqa64 %zmm20, %zmm13
vpternlogq $0xd2, %zmm3, %zmm7, %zmm13
vmovdqa64 %zmm7, %zmm19
vpternlogq $0xd2, %zmm27, %zmm3, %zmm19
vpternlogq $0xd2, %zmm9, %zmm27, %zmm3
vpxorq %zmm16, %zmm26, %zmm11
vpternlogq $0xd2, %zmm20, %zmm9, %zmm27
vpxorq %zmm5, %zmm0, %zmm23
vpxorq %zmm1, %zmm25, %zmm15
vpxorq %zmm18, %zmm8, %zmm18
vpxorq %zmm6, %zmm30, %zmm25
vprolq $0x24, %zmm11, %zmm5
vpternlogq $0xd2, %zmm7, %zmm20, %zmm9
vprolq $0xa, %zmm23, %zmm23
vprolq $0xf, %zmm15, %zmm1
vprolq $0x38, %zmm18, %zmm18
vprolq $0x1b, %zmm25, %zmm7
vmovdqa64 %zmm7, %zmm11
vpternlogq $0xd2, %zmm23, %zmm5, %zmm11
vmovdqa64 %zmm5, %zmm15
vpternlogq $0xd2, %zmm1, %zmm23, %zmm15
vpternlogq $0xd2, %zmm18, %zmm1, %zmm23
vpxorq %zmm22, %zmm26, %zmm20
vpxorq 0x50(%rsp), %zmm0, %zmm0
vpxorq %zmm2, %zmm8, %zmm2
vpxorq %zmm4, %zmm30, %zmm4
vpternlogq $0xd2, %zmm7, %zmm18, %zmm1
vprolq $0x29, %zmm20, %zmm16
vprolq $0x2, %zmm0, %zmm0
vprolq $0x3e, 0xd0(%rsp), %zmm8
vprolq $0x37, %zmm2, %zmm20
vprolq $0x27, %zmm4, %zmm2
vmovdqa64 %zmm8, %zmm6
vpternlogq $0xd2, %zmm5, %zmm7, %zmm18
vpternlogq $0xd2, %zmm2, %zmm20, %zmm6
vmovdqa64 %zmm20, %zmm25
vpternlogq $0xd2, %zmm16, %zmm2, %zmm25
vpternlogq $0xd2, %zmm0, %zmm16, %zmm2
vpternlogq $0xd2, %zmm8, %zmm0, %zmm16
vpternlogq $0xd2, %zmm20, %zmm8, %zmm0
vmovdqa64 %zmm19, %zmm5
vpternlogq $0x96, %zmm15, %zmm29, %zmm5
vpternlogq $0x96, %zmm25, %zmm28, %zmm5
vmovdqa64 %zmm18, %zmm7
vpternlogq $0x96, %zmm0, %zmm14, %zmm7
vpternlogq $0x96, %zmm12, %zmm9, %zmm7
vprolq $0x1, %zmm5, %zmm8
vpxorq %zmm8, %zmm7, %zmm26
vpxorq %zmm31, %zmm26, %zmm4
vpternlogq $0x96, %zmm17, %zmm11, %zmm31
vmovdqa64 %zmm10, %zmm20
vpternlogq $0x96, %zmm27, %zmm16, %zmm20
vpternlogq $0x96, %zmm1, %zmm24, %zmm20
vprolq $0x1, %zmm20, %zmm29
vpxorq %zmm5, %zmm29, %zmm29
vpternlogq $0x96, %zmm13, %zmm6, %zmm31
vpxorq %zmm2, %zmm29, %zmm5
vpternlogq $0x96, 0x10(%rsp), %zmm3, %zmm2
vpternlogq $0x96, %zmm21, %zmm23, %zmm2
vprolq $0x1, %zmm2, %zmm30
vprolq $0x1, %zmm7, %zmm7
vpxorq %zmm31, %zmm30, %zmm30
vprolq $0x1, %zmm31, %zmm8
vpxorq %zmm2, %zmm7, %zmm31
vpxorq %zmm8, %zmm20, %zmm7
vpxorq %zmm3, %zmm29, %zmm2
vpxorq %zmm1, %zmm31, %zmm1
vpxorq %zmm28, %zmm30, %zmm3
vpxorq %zmm0, %zmm7, %zmm0
vprolq $0x2c, %zmm3, %zmm28
vprolq $0x2b, %zmm2, %zmm2
vprolq $0x15, %zmm1, %zmm8
vprolq $0xe, %zmm0, %zmm3
vmovdqa64 %zmm4, %zmm0
vpternlogq $0xd2, %zmm2, %zmm28, %zmm0
vmovdqa64 %zmm28, %zmm1
vpternlogq $0xd2, %zmm8, %zmm2, %zmm1
vmovdqu64 %zmm1, 0xd0(%rsp)
vpternlogq $0xd2, %zmm3, %zmm8, %zmm2
vmovdqu64 %zmm2, 0x150(%rsp)
vpxorq 0x68(%rcx,%rdx,8){1to8}, %zmm0, %zmm0
vmovdqu64 %zmm0, 0x90(%rsp)
vpxorq %zmm13, %zmm26, %zmm0
vpternlogq $0xd2, %zmm4, %zmm3, %zmm8
vpxorq %zmm15, %zmm30, %zmm2
vpxorq %zmm24, %zmm31, %zmm13
vpxorq %zmm14, %zmm7, %zmm15
vprolq $0x3, %zmm0, %zmm20
vprolq $0x2d, %zmm2, %zmm22
vpternlogq $0xd2, %zmm28, %zmm4, %zmm3
vprolq $0x3d, %zmm5, %zmm14
vprolq $0x1c, %zmm13, %zmm0
vprolq $0x14, %zmm15, %zmm2
vmovdqa64 %zmm0, %zmm5
vpternlogq $0xd2, %zmm20, %zmm2, %zmm5
vmovdqa64 %zmm2, %zmm15
vpternlogq $0xd2, %zmm22, %zmm20, %zmm15
vpternlogq $0xd2, %zmm14, %zmm22, %zmm20
vpxorq %zmm6, %zmm26, %zmm4
vpxorq 0x1a0(%rsp), %zmm30, %zmm6
vpxorq %zmm21, %zmm29, %zmm13
vpxorq %zmm27, %zmm31, %zmm21
vpxorq %zmm18, %zmm7, %zmm18
vpternlogq $0xd2, %zmm0, %zmm14, %zmm22
vmovdqa64 %zmm22, %zmm27
vmovdqu64 %zmm22, 0x50(%rsp)
vprolq $0x12, %zmm4, %zmm4
vprolq $0x1, %zmm6, %zmm6
vprolq $0x6, %zmm13, %zmm22
vprolq $0x19, %zmm21, %zmm24
vprolq $0x8, %zmm18, %zmm18
vpternlogq $0xd2, %zmm2, %zmm0, %zmm14
vmovdqa64 %zmm6, %zmm21
vpternlogq $0xd2, %zmm24, %zmm22, %zmm21
vmovdqa64 %zmm22, %zmm13
vpternlogq $0xd2, %zmm18, %zmm24, %zmm13
vpternlogq $0xd2, %zmm4, %zmm18, %zmm24
vpxorq %zmm17, %zmm26, %zmm0
vpxorq %zmm19, %zmm30, %zmm2
vpternlogq $0xd2, %zmm6, %zmm4, %zmm18
vpxorq %zmm23, %zmm29, %zmm17
vpxorq %zmm16, %zmm31, %zmm19
vpxorq %zmm12, %zmm7, %zmm12
vprolq $0x24, %zmm0, %zmm0
vprolq $0xa, %zmm2, %zmm16
vpternlogq $0xd2, %zmm22, %zmm6, %zmm4
vmovdqu64 %zmm4, 0x110(%rsp)
vprolq $0xf, %zmm17, %zmm17
vprolq $0x38, %zmm19, %zmm22
vprolq $0x1b, %zmm12, %zmm2
vmovdqa64 %zmm2, %zmm12
vpternlogq $0xd2, %zmm16, %zmm0, %zmm12
vmovdqa64 %zmm0, %zmm23
vpternlogq $0xd2, %zmm17, %zmm16, %zmm23
vpternlogq $0xd2, %zmm22, %zmm17, %zmm16
vpxorq %zmm11, %zmm26, %zmm6
vpxorq %zmm25, %zmm30, %zmm11
vpxorq 0x10(%rsp), %zmm29, %zmm19
vpxorq %zmm10, %zmm31, %zmm25
vpxorq %zmm9, %zmm7, %zmm7
vpternlogq $0xd2, %zmm2, %zmm22, %zmm17
vprolq $0x29, %zmm6, %zmm10
vprolq $0x2, %zmm11, %zmm9
vprolq $0x3e, %zmm19, %zmm11
vprolq $0x37, %zmm25, %zmm19
vprolq $0x27, %zmm7, %zmm29
vmovdqa64 %zmm11, %zmm26
vpternlogq $0xd2, %zmm0, %zmm2, %zmm22
vpternlogq $0xd2, %zmm29, %zmm19, %zmm26
vmovdqa64 %zmm19, %zmm30
vpternlogq $0xd2, %zmm10, %zmm29, %zmm30
vpternlogq $0xd2, %zmm9, %zmm10, %zmm29
vpternlogq $0xd2, %zmm11, %zmm9, %zmm10
vpternlogq $0xd2, %zmm19, %zmm11, %zmm9
vmovdqa64 %zmm23, %zmm2
vpternlogq $0x96, %zmm15, %zmm13, %zmm2
vpternlogq $0x96, %zmm30, %zmm1, %zmm2
vmovdqa64 %zmm4, %zmm0
vpternlogq $0x96, %zmm3, %zmm14, %zmm0
vpternlogq $0x96, %zmm22, %zmm9, %zmm0
vprolq $0x1, %zmm2, %zmm7
vpxorq %zmm7, %zmm0, %zmm25
vmovdqu64 0x90(%rsp), %zmm1
vpxorq %zmm1, %zmm25, %zmm7
vpternlogq $0x96, %zmm12, %zmm26, %zmm1
vmovdqa64 %zmm10, %zmm11
vpternlogq $0x96, %zmm18, %zmm17, %zmm11
vpternlogq $0x96, %zmm8, %zmm27, %zmm11
vprolq $0x1, %zmm11, %zmm19
vpxorq %zmm2, %zmm19, %zmm27
vpternlogq $0x96, %zmm5, %zmm21, %zmm1
vpxorq %zmm20, %zmm27, %zmm31
vmovdqu64 0x150(%rsp), %zmm6
vpternlogq $0x96, %zmm29, %zmm6, %zmm20
vpternlogq $0x96, %zmm24, %zmm16, %zmm20
vprolq $0x1, %zmm20, %zmm2
vprolq $0x1, %zmm0, %zmm19
vpxorq %zmm1, %zmm2, %zmm4
vprolq $0x1, %zmm1, %zmm2
vpxorq %zmm20, %zmm19, %zmm1
vpxorq %zmm2, %zmm11, %zmm2
vpxorq %zmm24, %zmm27, %zmm11
vpxorq %zmm17, %zmm1, %zmm17
vpxorq %zmm15, %zmm4, %zmm15
vpxorq %zmm9, %zmm2, %zmm20
vprolq $0x2c, %zmm15, %zmm15
vprolq $0x2b, %zmm11, %zmm0
vprolq $0x15, %zmm17, %zmm19
vprolq $0xe, %zmm20, %zmm11
vmovdqa64 %zmm7, %zmm20
vpternlogq $0xd2, %zmm0, %zmm15, %zmm20
vmovdqa64 %zmm15, %zmm17
vpternlogq $0xd2, %zmm19, %zmm0, %zmm17
vpternlogq $0xd2, %zmm11, %zmm19, %zmm0
vmovdqu64 %zmm0, 0x90(%rsp)
vpxorq 0x70(%rcx,%rdx,8){1to8}, %zmm20, %zmm0
vmovdqu64 %zmm0, 0x10(%rsp)
vpxorq %zmm21, %zmm25, %zmm20
vpternlogq $0xd2, %zmm7, %zmm11, %zmm19
vpxorq %zmm23, %zmm4, %zmm21
vpxorq %zmm29, %zmm27, %zmm23
vpxorq %zmm8, %zmm1, %zmm28
vpxorq %zmm14, %zmm2, %zmm14
vprolq $0x3, %zmm20, %zmm8
vpternlogq $0xd2, %zmm15, %zmm7, %zmm11
vprolq $0x2d, %zmm21, %zmm15
vprolq $0x3d, %zmm23, %zmm24
vprolq $0x1c, %zmm28, %zmm7
vprolq $0x14, %zmm14, %zmm21
vmovdqa64 %zmm7, %zmm14
vpternlogq $0xd2, %zmm8, %zmm21, %zmm14
vmovdqa64 %zmm21, %zmm28
vpternlogq $0xd2, %zmm15, %zmm8, %zmm28
vpternlogq $0xd2, %zmm24, %zmm15, %zmm8
vpxorq %zmm26, %zmm25, %zmm20
vpxorq 0xd0(%rsp), %zmm4, %zmm23
vpxorq %zmm18, %zmm1, %zmm26
vpxorq %zmm22, %zmm2, %zmm22
vpternlogq $0xd2, %zmm7, %zmm24, %zmm15
vprolq $0x12, %zmm20, %zmm18
vprolq $0x1, %zmm23, %zmm29
vprolq $0x6, %zmm31, %zmm0
vprolq $0x19, %zmm26, %zmm31
vprolq $0x8, %zmm22, %zmm20
vpternlogq $0xd2, %zmm21, %zmm7, %zmm24
vmovdqa64 %zmm29, %zmm9
vpternlogq $0xd2, %zmm31, %zmm0, %zmm9
vmovdqa64 %zmm0, %zmm21
vpternlogq $0xd2, %zmm20, %zmm31, %zmm21
vpternlogq $0xd2, %zmm18, %zmm20, %zmm31
vpxorq %zmm5, %zmm25, %zmm5
vpxorq %zmm13, %zmm4, %zmm13
vpternlogq $0xd2, %zmm29, %zmm18, %zmm20
vpxorq %zmm16, %zmm27, %zmm16
vpxorq %zmm10, %zmm1, %zmm10
vpxorq %zmm3, %zmm2, %zmm22
vprolq $0x24, %zmm5, %zmm5
vprolq $0xa, %zmm13, %zmm23
vpternlogq $0xd2, %zmm0, %zmm29, %zmm18
vprolq $0xf, %zmm16, %zmm3
vprolq $0x38, %zmm10, %zmm13
vprolq $0x1b, %zmm22, %zmm0
vmovdqa64 %zmm0, %zmm22
vpternlogq $0xd2, %zmm23, %zmm5, %zmm22
vmovdqa64 %zmm5, %zmm10
vpternlogq $0xd2, %zmm3, %zmm23, %zmm10
vpternlogq $0xd2, %zmm13, %zmm3, %zmm23
vpxorq %zmm12, %zmm25, %zmm12
vpxorq %zmm30, %zmm4, %zmm4
vpxorq %zmm6, %zmm27, %zmm6
vpxorq 0x50(%rsp), %zmm1, %zmm16
vpxorq 0x110(%rsp), %zmm2, %zmm2
vpternlogq $0xd2, %zmm0, %zmm13, %zmm3
vprolq $0x29, %zmm12, %zmm26
vprolq $0x2, %zmm4, %zmm1
vprolq $0x3e, %zmm6, %zmm6
vprolq $0x37, %zmm16, %zmm12
vprolq $0x27, %zmm2, %zmm2
vmovdqa64 %zmm6, %zmm7
vpternlogq $0xd2, %zmm5, %zmm0, %zmm13
vpternlogq $0xd2, %zmm2, %zmm12, %zmm7
vmovdqa64 %zmm12, %zmm25
vpternlogq $0xd2, %zmm26, %zmm2, %zmm25
vpternlogq $0xd2, %zmm1, %zmm26, %zmm2
vpternlogq $0xd2, %zmm6, %zmm1, %zmm26
vpternlogq $0xd2, %zmm12, %zmm6, %zmm1
vmovdqa64 %zmm28, %zmm0
vpternlogq $0x96, %zmm17, %zmm10, %zmm0
vpternlogq $0x96, %zmm25, %zmm21, %zmm0
vmovdqa64 %zmm1, %zmm5
vpternlogq $0x96, %zmm13, %zmm24, %zmm5
vpternlogq $0x96, %zmm18, %zmm11, %zmm5
vprolq $0x1, %zmm0, %zmm6
vpxorq %zmm6, %zmm5, %zmm27
vmovdqu64 0x10(%rsp), %zmm30
vpxorq %zmm30, %zmm27, %zmm16
vpternlogq $0x96, %zmm7, %zmm9, %zmm30
vmovdqa64 %zmm3, %zmm6
vpternlogq $0x96, %zmm20, %zmm19, %zmm6
vpternlogq $0x96, %zmm15, %zmm26, %zmm6
vprolq $0x1, %zmm6, %zmm12
vpxorq %zmm0, %zmm12, %zmm29
vpternlogq $0x96, %zmm22, %zmm14, %zmm30
vpxorq %zmm31, %zmm29, %zmm12
vpternlogq $0x96, %zmm8, %zmm2, %zmm31
vpternlogq $0x96, 0x90(%rsp), %zmm23, %zmm31
vprolq $0x1, %zmm31, %zmm0
vprolq $0x1, %zmm5, %zmm5
vpxorq %zmm30, %zmm0, %zmm4
vprolq $0x1, %zmm30, %zmm0
vpxorq %zmm31, %zmm5, %zmm30
vpxorq %zmm0, %zmm6, %zmm31
vpxorq %zmm28, %zmm4, %zmm0
vpxorq %zmm3, %zmm30, %zmm3
vpxorq %zmm1, %zmm31, %zmm1
vprolq $0x2c, %zmm0, %zmm0
vprolq $0x2b, %zmm12, %zmm12
vprolq $0x15, %zmm3, %zmm6
vprolq $0xe, %zmm1, %zmm5
vmovdqa64 %zmm16, %zmm1
vpternlogq $0xd2, %zmm12, %zmm0, %zmm1
vmovdqa64 %zmm0, %zmm3
vpternlogq $0xd2, %zmm6, %zmm12, %zmm3
vpternlogq $0xd2, %zmm5, %zmm6, %zmm12
vpxorq 0x78(%rcx,%rdx,8){1to8}, %zmm1, %zmm28
vpxorq %zmm9, %zmm27, %zmm1
vpxorq %zmm10, %zmm4, %zmm9
vpternlogq $0xd2, %zmm16, %zmm5, %zmm6
vpxorq %zmm2, %zmm29, %zmm10
vpxorq %zmm19, %zmm30, %zmm19
vpxorq %zmm24, %zmm31, %zmm24
vprolq $0x3, %zmm1, %zmm2
vprolq $0x2d, %zmm9, %zmm9
vpternlogq $0xd2, %zmm0, %zmm16, %zmm5
vmovdqu64 %zmm5, 0x110(%rsp)
vprolq $0x3d, %zmm10, %zmm10
vprolq $0x1c, %zmm19, %zmm0
vprolq $0x14, %zmm24, %zmm1
vmovdqa64 %zmm0, %zmm16
vpternlogq $0xd2, %zmm2, %zmm1, %zmm16
vmovdqu64 %zmm16, 0x1a0(%rsp)
vmovdqa64 %zmm1, %zmm16
vpternlogq $0xd2, %zmm9, %zmm2, %zmm16
vpternlogq $0xd2, %zmm10, %zmm9, %zmm2
vmovdqu64 %zmm2, 0x10(%rsp)
vmovdqa64 %zmm9, %zmm19
vpxorq %zmm7, %zmm27, %zmm7
vpxorq %zmm17, %zmm4, %zmm9
vpxorq %zmm8, %zmm29, %zmm8
vpxorq %zmm20, %zmm30, %zmm17
vpxorq %zmm13, %zmm31, %zmm13
vpternlogq $0xd2, %zmm0, %zmm10, %zmm19
vmovdqu64 %zmm19, 0x50(%rsp)
vprolq $0x12, %zmm7, %zmm7
vprolq $0x1, %zmm9, %zmm9
vprolq $0x6, %zmm8, %zmm24
vprolq $0x19, %zmm17, %zmm20
vprolq $0x8, %zmm13, %zmm13
vpternlogq $0xd2, %zmm1, %zmm0, %zmm10
vmovdqa64 %zmm9, %zmm8
vpternlogq $0xd2, %zmm20, %zmm24, %zmm8
vmovdqa64 %zmm24, %zmm2
vpternlogq $0xd2, %zmm13, %zmm20, %zmm2
vmovdqu64 %zmm2, 0x150(%rsp)
vpternlogq $0xd2, %zmm7, %zmm13, %zmm20
vpxorq %zmm14, %zmm27, %zmm0
vpxorq %zmm21, %zmm4, %zmm1
vpternlogq $0xd2, %zmm9, %zmm7, %zmm13
vpxorq %zmm23, %zmm29, %zmm17
vpxorq %zmm26, %zmm30, %zmm21
vpxorq %zmm11, %zmm31, %zmm11
vprolq $0x24, %zmm0, %zmm0
vprolq $0xa, %zmm1, %zmm14
vpternlogq $0xd2, %zmm24, %zmm9, %zmm7
vprolq $0xf, %zmm17, %zmm24
vprolq $0x38, %zmm21, %zmm17
vprolq $0x1b, %zmm11, %zmm1
vmovdqa64 %zmm1, %zmm11
vpternlogq $0xd2, %zmm14, %zmm0, %zmm11
vmovdqa64 %zmm0, %zmm21
vpternlogq $0xd2, %zmm24, %zmm14, %zmm21
vpternlogq $0xd2, %zmm17, %zmm24, %zmm14
vpxorq %zmm22, %zmm27, %zmm9
vpxorq %zmm25, %zmm4, %zmm4
vpxorq 0x90(%rsp), %zmm29, %zmm22
vpxorq %zmm15, %zmm30, %zmm15
vpxorq %zmm18, %zmm31, %zmm23
vpternlogq $0xd2, %zmm1, %zmm17, %zmm24
vprolq $0x29, %zmm9, %zmm18
vprolq $0x2, %zmm4, %zmm9
vprolq $0x3e, %zmm22, %zmm4
vprolq $0x37, %zmm15, %zmm26
vprolq $0x27, %zmm23, %zmm25
vmovdqa64 %zmm4, %zmm22
vpternlogq $0xd2, %zmm0, %zmm1, %zmm17
vpternlogq $0xd2, %zmm25, %zmm26, %zmm22
vmovdqa64 %zmm26, %zmm15
vpternlogq $0xd2, %zmm18, %zmm25, %zmm15
vpternlogq $0xd2, %zmm9, %zmm18, %zmm25
vpternlogq $0xd2, %zmm4, %zmm9, %zmm18
vpternlogq $0xd2, %zmm26, %zmm4, %zmm9
vmovdqa64 %zmm3, %zmm0
vpternlogq $0x96, %zmm2, %zmm16, %zmm0
vpternlogq $0x96, %zmm15, %zmm21, %zmm0
vmovdqa64 %zmm5, %zmm29
vpternlogq $0x96, %zmm7, %zmm10, %zmm29
vpternlogq $0x96, %zmm9, %zmm17, %zmm29
vprolq $0x1, %zmm0, %zmm1
vpxorq %zmm1, %zmm29, %zmm23
vpxorq %zmm28, %zmm23, %zmm27
vmovdqu64 0x1a0(%rsp), %zmm5
vpternlogq $0x96, %zmm8, %zmm5, %zmm28
vmovdqa64 %zmm6, %zmm30
vpternlogq $0x96, %zmm13, %zmm19, %zmm30
vpternlogq $0x96, %zmm18, %zmm24, %zmm30
vprolq $0x1, %zmm30, %zmm1
vpxorq %zmm0, %zmm1, %zmm26
vpternlogq $0x96, %zmm22, %zmm11, %zmm28
vpxorq %zmm12, %zmm26, %zmm31
vmovdqu64 0x10(%rsp), %zmm2
vpternlogq $0x96, %zmm20, %zmm2, %zmm12
vpternlogq $0x96, %zmm25, %zmm14, %zmm12
vprolq $0x1, %zmm12, %zmm0
vprolq $0x1, %zmm29, %zmm4
vpxorq %zmm28, %zmm0, %zmm1
vprolq $0x1, %zmm28, %zmm0
vpxorq %zmm12, %zmm4, %zmm29
vpxorq %zmm0, %zmm30, %zmm0
vpxorq %zmm20, %zmm26, %zmm4
vpxorq %zmm24, %zmm29, %zmm12
vpxorq %zmm16, %zmm1, %zmm16
vpxorq %zmm9, %zmm0, %zmm20
vprolq $0x2c, %zmm16, %zmm16
vprolq $0x2b, %zmm4, %zmm9
vprolq $0x15, %zmm12, %zmm24
vprolq $0xe, %zmm20, %zmm12
vmovdqa64 %zmm27, %zmm4
vpternlogq $0xd2, %zmm9, %zmm16, %zmm4
vmovdqa64 %zmm16, %zmm20
vpternlogq $0xd2, %zmm24, %zmm9, %zmm20
vpternlogq $0xd2, %zmm12, %zmm24, %zmm9
vmovdqu64 %zmm9, 0xd0(%rsp)
vpxorq 0x80(%rcx,%rdx,8){1to8}, %zmm4, %zmm30
vpxorq %zmm8, %zmm23, %zmm4
vpternlogq $0xd2, %zmm27, %zmm12, %zmm24
vpxorq %zmm21, %zmm1, %zmm21
vpxorq %zmm25, %zmm26, %zmm25
vpxorq %zmm6, %zmm29, %zmm28
vpxorq %zmm10, %zmm0, %zmm10
vprolq $0x3, %zmm4, %zmm19
vpternlogq $0xd2, %zmm16, %zmm27, %zmm12
vprolq $0x2d, %zmm21, %zmm9
vprolq $0x3d, %zmm25, %zmm25
vprolq $0x1c, %zmm28, %zmm4
vprolq $0x14, %zmm10, %zmm21
vmovdqa64 %zmm4, %zmm16
vpternlogq $0xd2, %zmm19, %zmm21, %zmm16
vmovdqa64 %zmm21, %zmm27
vpternlogq $0xd2, %zmm9, %zmm19, %zmm27
vpternlogq $0xd2, %zmm25, %zmm9, %zmm19
vpxorq %zmm22, %zmm23, %zmm10
vpxorq %zmm3, %zmm1, %zmm3
vpxorq %zmm2, %zmm26, %zmm2
vpxorq %zmm13, %zmm29, %zmm13
vpternlogq $0xd2, %zmm4, %zmm25, %zmm9
vpxorq %zmm17, %zmm0, %zmm17
vprolq $0x12, %zmm10, %zmm10
vprolq $0x1, %zmm3, %zmm22
vprolq $0x6, %zmm2, %zmm2
vprolq $0x19, %zmm13, %zmm3
vpternlogq $0xd2, %zmm21, %zmm4, %zmm25
vprolq $0x8, %zmm17, %zmm13
vmovdqa64 %zmm22, %zmm28
vpternlogq $0xd2, %zmm3, %zmm2, %zmm28
vmovdqa64 %zmm2, %zmm21
vpternlogq $0xd2, %zmm13, %zmm3, %zmm21
vpternlogq $0xd2, %zmm10, %zmm13, %zmm3
vpxorq %zmm5, %zmm23, %zmm4
vpternlogq $0xd2, %zmm22, %zmm10, %zmm13
vpxorq 0x150(%rsp), %zmm1, %zmm17
vpxorq %zmm14, %zmm26, %zmm8
vpxorq %zmm18, %zmm29, %zmm14
vpxorq 0x110(%rsp), %zmm0, %zmm18
vprolq $0x24, %zmm4, %zmm5
vpternlogq $0xd2, %zmm2, %zmm22, %zmm10
vprolq $0xa, %zmm17, %zmm22
vprolq $0xf, %zmm8, %zmm8
vprolq $0x38, %zmm14, %zmm17
vprolq $0x1b, %zmm18, %zmm18
vmovdqa64 %zmm18, %zmm6
vmovdqa64 %zmm5, %zmm14
vpternlogq $0xd2, %zmm8, %zmm22, %zmm14
vpternlogq $0xd2, %zmm22, %zmm5, %zmm6
vmovdqu64 %zmm6, 0x1a0(%rsp)
vpternlogq $0xd2, %zmm17, %zmm8, %zmm22
vpxorq %zmm11, %zmm23, %zmm2
vpxorq %zmm15, %zmm1, %zmm1
vpxorq 0x50(%rsp), %zmm29, %zmm4
vpxorq %zmm7, %zmm0, %zmm7
vpternlogq $0xd2, %zmm18, %zmm17, %zmm8
vprolq $0x29, %zmm2, %zmm26
vprolq $0x2, %zmm1, %zmm0
vprolq $0x3e, %zmm31, %zmm1
vprolq $0x37, %zmm4, %zmm11
vprolq $0x27, %zmm7, %zmm2
vmovdqa64 %zmm1, %zmm4
vpternlogq $0xd2, %zmm5, %zmm18, %zmm17
vpternlogq $0xd2, %zmm2, %zmm11, %zmm4
vmovdqa64 %zmm11, %zmm23
vpternlogq $0xd2, %zmm26, %zmm2, %zmm23
vpternlogq $0xd2, %zmm0, %zmm26, %zmm2
vpternlogq $0xd2, %zmm1, %zmm0, %zmm26
vpternlogq $0xd2, %zmm11, %zmm1, %zmm0
vmovdqa64 %zmm21, %zmm1
vpternlogq $0x96, %zmm14, %zmm20, %zmm1
vpternlogq $0x96, %zmm23, %zmm27, %zmm1
vmovdqa64 %zmm17, %zmm5
vpternlogq $0x96, %zmm0, %zmm25, %zmm5
vpternlogq $0x96, %zmm12, %zmm10, %zmm5
vprolq $0x1, %zmm1, %zmm7
vpxorq %zmm7, %zmm5, %zmm29
vpxorq %zmm30, %zmm29, %zmm11
vmovdqa64 %zmm30, %zmm7
vpternlogq $0x96, %zmm16, %zmm6, %zmm7
vmovdqa64 %zmm9, %zmm15
vpternlogq $0x96, %zmm13, %zmm26, %zmm15
vpternlogq $0x96, %zmm8, %zmm24, %zmm15
vprolq $0x1, %zmm15, %zmm18
vpxorq %zmm1, %zmm18, %zmm30
vpternlogq $0x96, %zmm28, %zmm4, %zmm7
vpxorq %zmm2, %zmm30, %zmm18
vmovdqu64 0xd0(%rsp), %zmm6
vpternlogq $0x96, %zmm6, %zmm3, %zmm2
vpternlogq $0x96, %zmm19, %zmm22, %zmm2
vprolq $0x1, %zmm2, %zmm1
vprolq $0x1, %zmm5, %zmm5
vpxorq %zmm7, %zmm1, %zmm31
vprolq $0x1, %zmm7, %zmm1
vpxorq %zmm2, %zmm5, %zmm7
vpxorq %zmm1, %zmm15, %zmm2
vpxorq %zmm3, %zmm30, %zmm1
vpxorq %zmm8, %zmm7, %zmm3
vpxorq %zmm27, %zmm31, %zmm5
vpxorq %zmm0, %zmm2, %zmm0
vprolq $0x2c, %zmm5, %zmm5
vprolq $0x2b, %zmm1, %zmm1
vprolq $0x15, %zmm3, %zmm8
vprolq $0xe, %zmm0, %zmm3
vmovdqa64 %zmm11, %zmm0
vpternlogq $0xd2, %zmm1, %zmm5, %zmm0
vmovdqa64 %zmm5, %zmm27
vpternlogq $0xd2, %zmm8, %zmm1, %zmm27
vmovdqu64 %zmm27, 0x1e0(%rsp)
vpternlogq $0xd2, %zmm3, %zmm8, %zmm1
vmovdqu64 %zmm1, 0x90(%rsp)
vpxorq 0x88(%rcx,%rdx,8){1to8}, %zmm0, %zmm0
vmovdqu64 %zmm0, 0x10(%rsp)
vpxorq %zmm28, %zmm29, %zmm0
vpternlogq $0xd2, %zmm11, %zmm3, %zmm8
vpxorq %zmm14, %zmm31, %zmm1
vpxorq %zmm24, %zmm7, %zmm24
vpxorq %zmm25, %zmm2, %zmm25
vprolq $0x3, %zmm0, %zmm15
vprolq $0x2d, %zmm1, %zmm1
vpternlogq $0xd2, %zmm5, %zmm11, %zmm3
vprolq $0x3d, %zmm18, %zmm14
vprolq $0x1c, %zmm24, %zmm0
vprolq $0x14, %zmm25, %zmm18
vmovdqa64 %zmm0, %zmm5
vpternlogq $0xd2, %zmm15, %zmm18, %zmm5
vmovdqu64 %zmm5, 0x240(%rsp)
vmovdqa64 %zmm18, %zmm11
vmovdqa64 %zmm1, %zmm5
vpternlogq $0xd2, %zmm1, %zmm15, %zmm11
vpternlogq $0xd2, %zmm14, %zmm1, %zmm15
vpxorq %zmm4, %zmm29, %zmm4
vpxorq %zmm20, %zmm31, %zmm20
vpxorq %zmm19, %zmm30, %zmm19
vpxorq %zmm13, %zmm7, %zmm13
vpxorq %zmm17, %zmm2, %zmm17
vpternlogq $0xd2, %zmm0, %zmm14, %zmm5
vmovdqu64 %zmm5, 0x110(%rsp)
vprolq $0x12, %zmm4, %zmm1
vprolq $0x1, %zmm20, %zmm20
vprolq $0x6, %zmm19, %zmm25
vprolq $0x19, %zmm13, %zmm19
vprolq $0x8, %zmm17, %zmm17
vpternlogq $0xd2, %zmm18, %zmm0, %zmm14
vmovdqa64 %zmm20, %zmm24
vpternlogq $0xd2, %zmm19, %zmm25, %zmm24
vmovdqa64 %zmm25, %zmm13
vpternlogq $0xd2, %zmm17, %zmm19, %zmm13
vpternlogq $0xd2, %zmm1, %zmm17, %zmm19
vpxorq %zmm16, %zmm29, %zmm0
vpxorq %zmm21, %zmm31, %zmm16
vpternlogq $0xd2, %zmm20, %zmm1, %zmm17
vpxorq %zmm22, %zmm30, %zmm18
vpxorq %zmm26, %zmm7, %zmm21
vpxorq %zmm12, %zmm2, %zmm12
vprolq $0x24, %zmm0, %zmm0
vprolq $0xa, %zmm16, %zmm16
vpternlogq $0xd2, %zmm25, %zmm20, %zmm1
vmovdqu64 %zmm1, 0x150(%rsp)
vprolq $0xf, %zmm18, %zmm20
vprolq $0x38, %zmm21, %zmm21
vprolq $0x1b, %zmm12, %zmm25
vmovdqa64 %zmm25, %zmm4
vpternlogq $0xd2, %zmm16, %zmm0, %zmm4
vmovdqu64 %zmm4, 0x50(%rsp)
vmovdqa64 %zmm0, %zmm22
vpternlogq $0xd2, %zmm20, %zmm16, %zmm22
vpternlogq $0xd2, %zmm21, %zmm20, %zmm16
vpxorq 0x1a0(%rsp), %zmm29, %zmm18
vpxorq %zmm23, %zmm31, %zmm23
vpxorq %zmm6, %zmm30, %zmm26
vpxorq %zmm9, %zmm7, %zmm6
vpxorq %zmm10, %zmm2, %zmm2
vpternlogq $0xd2, %zmm25, %zmm21, %zmm20
vprolq $0x29, %zmm18, %zmm10
vprolq $0x2, %zmm23, %zmm9
vprolq $0x3e, %zmm26, %zmm7
vprolq $0x37, %zmm6, %zmm26
vprolq $0x27, %zmm2, %zmm23
vmovdqa64 %zmm7, %zmm18
vpternlogq $0xd2, %zmm0, %zmm25, %zmm21
vpternlogq $0xd2, %zmm23, %zmm26, %zmm18
vmovdqa64 %zmm26, %zmm6
vpternlogq $0xd2, %zmm10, %zmm23, %zmm6
vpternlogq $0xd2, %zmm9, %zmm10, %zmm23
vpternlogq $0xd2, %zmm7, %zmm9, %zmm10
vpternlogq $0xd2, %zmm26, %zmm7, %zmm9
vmovdqa64 %zmm22, %zmm7
vpternlogq $0x96, %zmm11, %zmm13, %zmm7
vpternlogq $0x96, %zmm6, %zmm27, %zmm7
vmovdqa64 %zmm1, %zmm0
vpternlogq $0x96, %zmm3, %zmm14, %zmm0
vpternlogq $0x96, %zmm21, %zmm9, %zmm0
vprolq $0x1, %zmm7, %zmm2
vpxorq %zmm2, %zmm0, %zmm25
vmovdqu64 0x10(%rsp), %zmm27
vpxorq %zmm27, %zmm25, %zmm2
vpternlogq $0x96, %zmm4, %zmm18, %zmm27
vmovdqa64 %zmm10, %zmm28
vpternlogq $0x96, %zmm17, %zmm20, %zmm28
vpternlogq $0x96, %zmm8, %zmm5, %zmm28
vprolq $0x1, %zmm28, %zmm26
vpxorq %zmm7, %zmm26, %zmm26
vmovdqu64 0x240(%rsp), %zmm5
vpternlogq $0x96, %zmm5, %zmm24, %zmm27
vpxorq %zmm15, %zmm26, %zmm1
vmovdqu64 0x90(%rsp), %zmm12
vpternlogq $0x96, %zmm23, %zmm12, %zmm15
vpternlogq $0x96, %zmm19, %zmm16, %zmm15
vprolq $0x1, %zmm15, %zmm29
vprolq $0x1, %zmm0, %zmm0
vpxorq %zmm27, %zmm29, %zmm29
vprolq $0x1, %zmm27, %zmm27
vpxorq %zmm15, %zmm0, %zmm30
vpxorq %zmm27, %zmm28, %zmm0
vpxorq %zmm19, %zmm26, %zmm15
vpxorq %zmm20, %zmm30, %zmm19
vpxorq %zmm11, %zmm29, %zmm11
vpxorq %zmm9, %zmm0, %zmm27
vprolq $0x2c, %zmm11, %zmm31
vprolq $0x2b, %zmm15, %zmm4
vprolq $0x15, %zmm19, %zmm20
vprolq $0xe, %zmm27, %zmm28
vmovdqa64 %zmm2, %zmm15
vpternlogq $0xd2, %zmm4, %zmm31, %zmm15
vmovdqa64 %zmm31, %zmm19
vpternlogq $0xd2, %zmm20, %zmm4, %zmm19
vpternlogq $0xd2, %zmm28, %zmm20, %zmm4
vmovdqu64 %zmm4, 0x10(%rsp)
vpxorq 0x90(%rcx,%rdx,8){1to8}, %zmm15, %zmm4
vmovdqu64 %zmm4, 0xd0(%rsp)
vpxorq %zmm24, %zmm25, %zmm15
vpternlogq $0xd2, %zmm2, %zmm28, %zmm20
vpxorq %zmm22, %zmm29, %zmm22
vpxorq %zmm23, %zmm26, %zmm23
vpxorq %zmm8, %zmm30, %zmm27
vpxorq %zmm14, %zmm0, %zmm14
vprolq $0x3, %zmm15, %zmm11
vpternlogq $0xd2, %zmm31, %zmm2, %zmm28
vprolq $0x2d, %zmm22, %zmm15
vprolq $0x3d, %zmm23, %zmm24
vprolq $0x1c, %zmm27, %zmm2
vprolq $0x14, %zmm14, %zmm22
vmovdqa64 %zmm2, %zmm14
vpternlogq $0xd2, %zmm11, %zmm22, %zmm14
vmovdqa64 %zmm22, %zmm27
vpternlogq $0xd2, %zmm15, %zmm11, %zmm27
vpternlogq $0xd2, %zmm24, %zmm15, %zmm11
vpxorq %zmm18, %zmm25, %zmm18
vpxorq 0x1e0(%rsp), %zmm29, %zmm23
vpxorq %zmm17, %zmm30, %zmm17
vpxorq %zmm21, %zmm0, %zmm21
vpternlogq $0xd2, %zmm2, %zmm24, %zmm15
vprolq $0x12, %zmm18, %zmm18
vprolq $0x1, %zmm23, %zmm7
vprolq $0x6, %zmm1, %zmm1
vprolq $0x19, %zmm17, %zmm31
vprolq $0x8, %zmm21, %zmm23
vpternlogq $0xd2, %zmm22, %zmm2, %zmm24
vmovdqa64 %zmm7, %zmm9
vpternlogq $0xd2, %zmm31, %zmm1, %zmm9
vmovdqa64 %zmm1, %zmm17
vpternlogq $0xd2, %zmm23, %zmm31, %zmm17
vpternlogq $0xd2, %zmm18, %zmm23, %zmm31
vpxorq %zmm5, %zmm25, %zmm2
vpxorq %zmm13, %zmm29, %zmm21
vpternlogq $0xd2, %zmm7, %zmm18, %zmm23
vpxorq %zmm16, %zmm26, %zmm13
vpxorq %zmm10, %zmm30, %zmm10
vpxorq %zmm3, %zmm0, %zmm16
vprolq $0x24, %zmm2, %zmm5
vprolq $0xa, %zmm21, %zmm21
vpternlogq $0xd2, %zmm1, %zmm7, %zmm18
vprolq $0xf, %zmm13, %zmm3
vprolq $0x38, %zmm10, %zmm13
vprolq $0x1b, %zmm16, %zmm1
vmovdqa64 %zmm1, %zmm22
vpternlogq $0xd2, %zmm21, %zmm5, %zmm22
vmovdqa64 %zmm5, %zmm4
vpternlogq $0xd2, %zmm3, %zmm21, %zmm4
vpternlogq $0xd2, %zmm13, %zmm3, %zmm21
vpxorq 0x50(%rsp), %zmm25, %zmm2
vpxorq %zmm6, %zmm29, %zmm6
vpxorq %zmm12, %zmm26, %zmm10
vpxorq 0x110(%rsp), %zmm30, %zmm12
vpxorq 0x150(%rsp), %zmm0, %zmm0
vpternlogq $0xd2, %zmm1, %zmm13, %zmm3
vprolq $0x29, %zmm2, %zmm26
vprolq $0x2, %zmm6, %zmm6
vprolq $0x3e, %zmm10, %zmm10
vprolq $0x37, %zmm12, %zmm12
vprolq $0x27, %zmm0, %zmm2
vmovdqa64 %zmm10, %zmm8
vpternlogq $0xd2, %zmm5, %zmm1, %zmm13
vpternlogq $0xd2, %zmm2, %zmm12, %zmm8
vmovdqa64 %zmm12, %zmm25
vpternlogq $0xd2, %zmm26, %zmm2, %zmm25
vpternlogq $0xd2, %zmm6, %zmm26, %zmm2
vpternlogq $0xd2, %zmm10, %zmm6, %zmm26
vpternlogq $0xd2, %zmm12, %zmm10, %zmm6
vmovdqa64 %zmm27, %zmm0
vpternlogq $0x96, %zmm19, %zmm4, %zmm0
vpternlogq $0x96, %zmm25, %zmm17, %zmm0
vmovdqa64 %zmm6, %zmm1
vpternlogq $0x96, %zmm13, %zmm24, %zmm1
vpternlogq $0x96, %zmm18, %zmm28, %zmm1
vprolq $0x1, %zmm0, %zmm5
vpxorq %zmm5, %zmm1, %zmm29
vmovdqu64 0xd0(%rsp), %zmm10
vpxorq %zmm10, %zmm29, %zmm5
vpternlogq $0x96, %zmm8, %zmm9, %zmm10
vmovdqa64 %zmm3, %zmm12
vpternlogq $0x96, %zmm23, %zmm20, %zmm12
vpternlogq $0x96, %zmm15, %zmm26, %zmm12
vprolq $0x1, %zmm12, %zmm16
vpxorq %zmm0, %zmm16, %zmm30
vpternlogq $0x96, %zmm22, %zmm14, %zmm10
vpxorq %zmm31, %zmm30, %zmm16
vpternlogq $0x96, %zmm11, %zmm2, %zmm31
vpternlogq $0x96, 0x10(%rsp), %zmm21, %zmm31
vprolq $0x1, %zmm31, %zmm0
vprolq $0x1, %zmm1, %zmm1
vpxorq %zmm10, %zmm0, %zmm7
vprolq $0x1, %zmm10, %zmm10
vpxorq %zmm31, %zmm1, %zmm31
vpxorq %zmm10, %zmm12, %zmm1
vpxorq %zmm27, %zmm7, %zmm10
vpxorq %zmm3, %zmm31, %zmm3
vpxorq %zmm6, %zmm1, %zmm27
vprolq $0x2c, %zmm10, %zmm10
vprolq $0x2b, %zmm16, %zmm12
vprolq $0x15, %zmm3, %zmm6
vprolq $0xe, %zmm27, %zmm27
vmovdqa64 %zmm5, %zmm3
vpternlogq $0xd2, %zmm12, %zmm10, %zmm3
vmovdqa64 %zmm10, %zmm0
vpternlogq $0xd2, %zmm6, %zmm12, %zmm0
vmovdqu64 %zmm0, 0x1a0(%rsp)
vpternlogq $0xd2, %zmm27, %zmm6, %zmm12
vpxorq 0x98(%rcx,%rdx,8){1to8}, %zmm3, %zmm0
vmovdqu64 %zmm0, 0x50(%rsp)
vpxorq %zmm9, %zmm29, %zmm9
vpxorq %zmm4, %zmm7, %zmm16
vpternlogq $0xd2, %zmm5, %zmm27, %zmm6
vmovdqu64 %zmm6, 0xd0(%rsp)
vpxorq %zmm2, %zmm30, %zmm0
vpxorq %zmm20, %zmm31, %zmm20
vpxorq %zmm24, %zmm1, %zmm24
vprolq $0x3, %zmm9, %zmm6
vprolq $0x2d, %zmm16, %zmm3
vpternlogq $0xd2, %zmm10, %zmm5, %zmm27
vmovdqu64 %zmm27, 0x90(%rsp)
vprolq $0x3d, %zmm0, %zmm10
vprolq $0x1c, %zmm20, %zmm9
vprolq $0x14, %zmm24, %zmm24
vmovdqa64 %zmm9, %zmm5
vpternlogq $0xd2, %zmm6, %zmm24, %zmm5
vmovdqa64 %zmm24, %zmm16
vpternlogq $0xd2, %zmm3, %zmm6, %zmm16
vpternlogq $0xd2, %zmm10, %zmm3, %zmm6
vpxorq %zmm8, %zmm29, %zmm4
vpxorq %zmm19, %zmm7, %zmm19
vpxorq %zmm11, %zmm30, %zmm8
vpxorq %zmm23, %zmm31, %zmm20
vpxorq %zmm13, %zmm1, %zmm13
vpternlogq $0xd2, %zmm9, %zmm10, %zmm3
vmovdqu64 %zmm3, 0x110(%rsp)
vprolq $0x12, %zmm4, %zmm0
vprolq $0x1, %zmm19, %zmm23
vprolq $0x6, %zmm8, %zmm27
vprolq $0x19, %zmm20, %zmm20
vprolq $0x8, %zmm13, %zmm13
vpternlogq $0xd2, %zmm24, %zmm9, %zmm10
vmovdqa64 %zmm23, %zmm19
vpternlogq $0xd2, %zmm20, %zmm27, %zmm19
vmovdqa64 %zmm27, %zmm8
vpternlogq $0xd2, %zmm13, %zmm20, %zmm8
vpternlogq $0xd2, %zmm0, %zmm13, %zmm20
vpxorq %zmm14, %zmm29, %zmm9
vpxorq %zmm17, %zmm7, %zmm14
vpternlogq $0xd2, %zmm23, %zmm0, %zmm13
vpxorq %zmm21, %zmm30, %zmm17
vpxorq %zmm26, %zmm31, %zmm21
vpxorq %zmm28, %zmm1, %zmm11
vprolq $0x24, %zmm9, %zmm26
vprolq $0xa, %zmm14, %zmm14
vpternlogq $0xd2, %zmm27, %zmm23, %zmm0
vmovdqa64 %zmm0, %zmm4
vmovdqu64 %zmm0, 0x150(%rsp)
vprolq $0xf, %zmm17, %zmm24
vprolq $0x38, %zmm21, %zmm17
vprolq $0x1b, %zmm11, %zmm23
vmovdqa64 %zmm23, %zmm11
vpternlogq $0xd2, %zmm14, %zmm26, %zmm11
vmovdqa64 %zmm26, %zmm21
vpternlogq $0xd2, %zmm24, %zmm14, %zmm21
vpternlogq $0xd2, %zmm17, %zmm24, %zmm14
vpxorq %zmm22, %zmm29, %zmm9
vpxorq %zmm25, %zmm7, %zmm0
vpxorq 0x10(%rsp), %zmm30, %zmm22
vpxorq %zmm15, %zmm31, %zmm15
vpxorq %zmm18, %zmm1, %zmm18
vpternlogq $0xd2, %zmm23, %zmm17, %zmm24
vprolq $0x29, %zmm9, %zmm2
vprolq $0x2, %zmm0, %zmm9
vprolq $0x3e, %zmm22, %zmm0
vprolq $0x37, %zmm15, %zmm27
vprolq $0x27, %zmm18, %zmm25
vmovdqa64 %zmm0, %zmm22
vpternlogq $0xd2, %zmm26, %zmm23, %zmm17
vpternlogq $0xd2, %zmm25, %zmm27, %zmm22
vmovdqa64 %zmm27, %zmm15
vpternlogq $0xd2, %zmm2, %zmm25, %zmm15
vpternlogq $0xd2, %zmm9, %zmm2, %zmm25
vpternlogq $0xd2, %zmm0, %zmm9, %zmm2
vpternlogq $0xd2, %zmm27, %zmm0, %zmm9
vmovdqu64 0x1a0(%rsp), %zmm7
vmovdqa64 %zmm7, %zmm0
vpternlogq $0x96, %zmm8, %zmm16, %zmm0
vpternlogq $0x96, %zmm15, %zmm21, %zmm0
vmovdqu64 0x90(%rsp), %zmm29
vpternlogq $0x96, %zmm4, %zmm10, %zmm29
vpternlogq $0x96, %zmm9, %zmm17, %zmm29
vprolq $0x1, %zmm0, %zmm18
vpxorq %zmm18, %zmm29, %zmm23
vmovdqu64 0x50(%rsp), %zmm28
vpxorq %zmm28, %zmm23, %zmm27
vpternlogq $0x96, %zmm19, %zmm5, %zmm28
vmovdqu64 0xd0(%rsp), %zmm4
vmovdqa64 %zmm4, %zmm30
vpternlogq $0x96, %zmm13, %zmm3, %zmm30
vpternlogq $0x96, %zmm2, %zmm24, %zmm30
vprolq $0x1, %zmm30, %zmm3
vpxorq %zmm0, %zmm3, %zmm26
vpternlogq $0x96, %zmm22, %zmm11, %zmm28
vpxorq %zmm12, %zmm26, %zmm31
vpternlogq $0x96, %zmm20, %zmm6, %zmm12
vpternlogq $0x96, %zmm25, %zmm14, %zmm12
vprolq $0x1, %zmm12, %zmm0
vprolq $0x1, %zmm29, %zmm3
vpxorq %zmm28, %zmm0, %zmm1
vprolq $0x1, %zmm28, %zmm18
vpxorq %zmm12, %zmm3, %zmm29
vpxorq %zmm18, %zmm30, %zmm18
vpxorq %zmm20, %zmm26, %zmm3
vpxorq %zmm24, %zmm29, %zmm12
vpxorq %zmm16, %zmm1, %zmm16
vpxorq %zmm9, %zmm18, %zmm20
vprolq $0x2c, %zmm16, %zmm24
vprolq $0x2b, %zmm3, %zmm0
vprolq $0x15, %zmm12, %zmm16
vprolq $0xe, %zmm20, %zmm12
vmovdqa64 %zmm27, %zmm3
vpternlogq $0xd2, %zmm0, %zmm24, %zmm3
vmovdqa64 %zmm24, %zmm20
vpternlogq $0xd2, %zmm16, %zmm0, %zmm20
vpternlogq $0xd2, %zmm12, %zmm16, %zmm0
vmovdqu64 %zmm0, 0x10(%rsp)
vpxorq 0xa0(%rcx,%rdx,8){1to8}, %zmm3, %zmm30
vpxorq %zmm19, %zmm23, %zmm3
vpternlogq $0xd2, %zmm27, %zmm12, %zmm16
vpxorq %zmm21, %zmm1, %zmm19
vpxorq %zmm25, %zmm26, %zmm25
vpxorq %zmm4, %zmm29, %zmm28
vpxorq %zmm10, %zmm18, %zmm10
vprolq $0x3, %zmm3, %zmm21
vpternlogq $0xd2, %zmm24, %zmm27, %zmm12
vprolq $0x2d, %zmm19, %zmm9
vprolq $0x3d, %zmm25, %zmm25
vprolq $0x1c, %zmm28, %zmm24
vprolq $0x14, %zmm10, %zmm28
vmovdqa64 %zmm24, %zmm19
vpternlogq $0xd2, %zmm21, %zmm28, %zmm19
vmovdqa64 %zmm28, %zmm27
vpternlogq $0xd2, %zmm9, %zmm21, %zmm27
vpternlogq $0xd2, %zmm25, %zmm9, %zmm21
vpxorq %zmm22, %zmm23, %zmm3
vpxorq %zmm7, %zmm1, %zmm22
vpxorq %zmm6, %zmm26, %zmm7
vpxorq %zmm13, %zmm29, %zmm13
vpternlogq $0xd2, %zmm24, %zmm25, %zmm9
vpxorq %zmm17, %zmm18, %zmm17
vprolq $0x12, %zmm3, %zmm10
vprolq $0x1, %zmm22, %zmm0
vprolq $0x6, %zmm7, %zmm7
vprolq $0x19, %zmm13, %zmm3
vpternlogq $0xd2, %zmm28, %zmm24, %zmm25
vprolq $0x8, %zmm17, %zmm17
vmovdqa64 %zmm0, %zmm28
vpternlogq $0xd2, %zmm3, %zmm7, %zmm28
vmovdqa64 %zmm7, %zmm22
vpternlogq $0xd2, %zmm17, %zmm3, %zmm22
vpternlogq $0xd2, %zmm10, %zmm17, %zmm3
vpxorq %zmm5, %zmm23, %zmm5
vpternlogq $0xd2, %zmm0, %zmm10, %zmm17
vpxorq %zmm8, %zmm1, %zmm8
vpxorq %zmm14, %zmm26, %zmm13
vpxorq %zmm2, %zmm29, %zmm2
vpxorq 0x90(%rsp), %zmm18, %zmm26
vprolq $0x24, %zmm5, %zmm5
vpternlogq $0xd2, %zmm7, %zmm0, %zmm10
vprolq $0xa, %zmm8, %zmm24
vprolq $0xf, %zmm13, %zmm8
vprolq $0x38, %zmm2, %zmm14
vprolq $0x1b, %zmm26, %zmm7
vmovdqa64 %zmm7, %zmm13
vmovdqa64 %zmm5, %zmm4
vpternlogq $0xd2, %zmm8, %zmm24, %zmm4
vpternlogq $0xd2, %zmm24, %zmm5, %zmm13
vpternlogq $0xd2, %zmm14, %zmm8, %zmm24
vpxorq %zmm11, %zmm23, %zmm0
vpxorq %zmm15, %zmm1, %zmm1
vpxorq 0x110(%rsp), %zmm29, %zmm2
vpxorq 0x150(%rsp), %zmm18, %zmm15
vpternlogq $0xd2, %zmm7, %zmm14, %zmm8
vprolq $0x29, %zmm0, %zmm11
vprolq $0x2, %zmm1, %zmm0
vprolq $0x3e, %zmm31, %zmm18
vprolq $0x37, %zmm2, %zmm26
vprolq $0x27, %zmm15, %zmm2
vmovdqa64 %zmm18, %zmm1
vpternlogq $0xd2, %zmm5, %zmm7, %zmm14
vpternlogq $0xd2, %zmm2, %zmm26, %zmm1
vmovdqa64 %zmm26, %zmm23
vpternlogq $0xd2, %zmm11, %zmm2, %zmm23
vpternlogq $0xd2, %zmm0, %zmm11, %zmm2
vpternlogq $0xd2, %zmm18, %zmm0, %zmm11
vpternlogq $0xd2, %zmm26, %zmm18, %zmm0
vmovdqa64 %zmm22, %zmm5
vpternlogq $0x96, %zmm4, %zmm20, %zmm5
vpternlogq $0x96, %zmm23, %zmm27, %zmm5
vmovdqa64 %zmm14, %zmm7
vpternlogq $0x96, %zmm0, %zmm25, %zmm7
vpternlogq $0x96, %zmm12, %zmm10, %zmm7
vprolq $0x1, %zmm5, %zmm15
vpxorq %zmm15, %zmm7, %zmm26
vpxorq %zmm30, %zmm26, %zmm15
vmovdqa64 %zmm30, %zmm18
vpternlogq $0x96, %zmm19, %zmm13, %zmm18
vmovdqa64 %zmm9, %zmm6
vpternlogq $0x96, %zmm17, %zmm11, %zmm6
vpternlogq $0x96, %zmm8, %zmm16, %zmm6
vprolq $0x1, %zmm6, %zmm29
vpxorq %zmm5, %zmm29, %zmm29
vpternlogq $0x96, %zmm28, %zmm1, %zmm18
vpxorq %zmm2, %zmm29, %zmm5
vpternlogq $0x96, 0x10(%rsp), %zmm3, %zmm2
vpternlogq $0x96, %zmm21, %zmm24, %zmm2
vprolq $0x1, %zmm2, %zmm30
vprolq $0x1, %zmm7, %zmm7
vpxorq %zmm18, %zmm30, %zmm30
vprolq $0x1, %zmm18, %zmm18
vpxorq %zmm2, %zmm7, %zmm31
vpxorq %zmm18, %zmm6, %zmm7
vpxorq %zmm3, %zmm29, %zmm2
vpxorq %zmm8, %zmm31, %zmm3
vpxorq %zmm27, %zmm30, %zmm6
vpxorq %zmm0, %zmm7, %zmm0
vprolq $0x2c, %zmm6, %zmm6
vprolq $0x2b, %zmm2, %zmm2
vprolq $0x15, %zmm3, %zmm8
vprolq $0xe, %zmm0, %zmm3
vmovdqa64 %zmm15, %zmm0
vpternlogq $0xd2, %zmm2, %zmm6, %zmm0
vmovdqa64 %zmm6, %zmm27
vpternlogq $0xd2, %zmm8, %zmm2, %zmm27
vmovdqu64 %zmm27, 0xd0(%rsp)
vpternlogq $0xd2, %zmm3, %zmm8, %zmm2
vmovdqu64 %zmm2, 0x90(%rsp)
vpxorq 0xa8(%rcx,%rdx,8){1to8}, %zmm0, %zmm0
vmovdqu64 %zmm0, 0x50(%rsp)
vpxorq %zmm28, %zmm26, %zmm0
vpternlogq $0xd2, %zmm15, %zmm3, %zmm8
vpxorq %zmm4, %zmm30, %zmm2
vpxorq %zmm16, %zmm31, %zmm4
vpxorq %zmm25, %zmm7, %zmm25
vprolq $0x3, %zmm0, %zmm18
vprolq $0x2d, %zmm2, %zmm2
vpternlogq $0xd2, %zmm6, %zmm15, %zmm3
vprolq $0x3d, %zmm5, %zmm16
vprolq $0x1c, %zmm4, %zmm0
vprolq $0x14, %zmm25, %zmm6
vmovdqa64 %zmm0, %zmm5
vpternlogq $0xd2, %zmm18, %zmm6, %zmm5
vmovdqa64 %zmm6, %zmm15
vpternlogq $0xd2, %zmm2, %zmm18, %zmm15
vpternlogq $0xd2, %zmm16, %zmm2, %zmm18
vpxorq %zmm1, %zmm26, %zmm1
vpxorq %zmm20, %zmm30, %zmm20
vpxorq %zmm21, %zmm29, %zmm21
vpxorq %zmm17, %zmm31, %zmm17
vpxorq %zmm14, %zmm7, %zmm14
vpternlogq $0xd2, %zmm0, %zmm16, %zmm2
vmovdqu64 %zmm2, 0x150(%rsp)
vprolq $0x12, %zmm1, %zmm4
vprolq $0x1, %zmm20, %zmm1
vprolq $0x6, %zmm21, %zmm25
vprolq $0x19, %zmm17, %zmm21
vprolq $0x8, %zmm14, %zmm17
vpternlogq $0xd2, %zmm6, %zmm0, %zmm16
vmovdqa64 %zmm1, %zmm20
vpternlogq $0xd2, %zmm21, %zmm25, %zmm20
vmovdqa64 %zmm25, %zmm14
vpternlogq $0xd2, %zmm17, %zmm21, %zmm14
vpternlogq $0xd2, %zmm4, %zmm17, %zmm21
vpxorq %zmm19, %zmm26, %zmm0
vpxorq %zmm22, %zmm30, %zmm6
vpternlogq $0xd2, %zmm1, %zmm4, %zmm17
vpxorq %zmm24, %zmm29, %zmm19
vpxorq %zmm11, %zmm31, %zmm11
vpxorq %zmm12, %zmm7, %zmm22
vprolq $0x24, %zmm0, %zmm0
vprolq $0xa, %zmm6, %zmm12
vpternlogq $0xd2, %zmm25, %zmm1, %zmm4
vprolq $0xf, %zmm19, %zmm24
vprolq $0x38, %zmm11, %zmm19
vprolq $0x1b, %zmm22, %zmm1
vmovdqa64 %zmm1, %zmm6
vpternlogq $0xd2, %zmm12, %zmm0, %zmm6
vmovdqa64 %zmm6, %zmm11
vmovdqu64 %zmm6, 0x110(%rsp)
vmovdqa64 %zmm0, %zmm22
vpternlogq $0xd2, %zmm24, %zmm12, %zmm22
vpternlogq $0xd2, %zmm19, %zmm24, %zmm12
vpxorq %zmm13, %zmm26, %zmm6
vpxorq %zmm23, %zmm30, %zmm13
vpxorq 0x10(%rsp), %zmm29, %zmm23
vpxorq %zmm9, %zmm31, %zmm25
vpxorq %zmm10, %zmm7, %zmm7
vpternlogq $0xd2, %zmm1, %zmm19, %zmm24
vprolq $0x29, %zmm6, %zmm9
vprolq $0x2, %zmm13, %zmm13
vprolq $0x3e, %zmm23, %zmm10
vprolq $0x37, %zmm25, %zmm25
vprolq $0x27, %zmm7, %zmm26
vmovdqa64 %zmm10, %zmm23
vpternlogq $0xd2, %zmm0, %zmm1, %zmm19
vpternlogq $0xd2, %zmm26, %zmm25, %zmm23
vmovdqa64 %zmm25, %zmm6
vpternlogq $0xd2, %zmm9, %zmm26, %zmm6
vpternlogq $0xd2, %zmm13, %zmm9, %zmm26
vpternlogq $0xd2, %zmm10, %zmm13, %zmm9
vpternlogq $0xd2, %zmm25, %zmm10, %zmm13
vmovdqa64 %zmm22, %zmm1
vpternlogq $0x96, %zmm15, %zmm14, %zmm1
vpternlogq $0x96, %zmm6, %zmm27, %zmm1
vmovdqa64 %zmm4, %zmm0
vpternlogq $0x96, %zmm3, %zmm16, %zmm0
vpternlogq $0x96, %zmm19, %zmm13, %zmm0
vprolq $0x1, %zmm1, %zmm7
vpxorq %zmm7, %zmm0, %zmm10
vmovdqu64 0x50(%rsp), %zmm28
vpxorq %zmm28, %zmm10, %zmm7
vpternlogq $0x96, %zmm11, %zmm23, %zmm28
vmovdqa64 %zmm9, %zmm29
vpternlogq $0x96, %zmm17, %zmm24, %zmm29
vpternlogq $0x96, %zmm8, %zmm2, %zmm29
vprolq $0x1, %zmm29, %zmm25
vpxorq %zmm1, %zmm25, %zmm25
vpternlogq $0x96, %zmm5, %zmm20, %zmm28
vpxorq %zmm18, %zmm25, %zmm2
vmovdqu64 0x90(%rsp), %zmm11
vpternlogq $0x96, %zmm26, %zmm11, %zmm18
vpternlogq $0x96, %zmm21, %zmm12, %zmm18
vprolq $0x1, %zmm18, %zmm27
vprolq $0x1, %zmm0, %zmm0
vpxorq %zmm28, %zmm27, %zmm27
vprolq $0x1, %zmm28, %zmm28
vpxorq %zmm18, %zmm0, %zmm30
vpxorq %zmm28, %zmm29, %zmm1
vpxorq %zmm21, %zmm25, %zmm18
vpxorq %zmm24, %zmm30, %zmm21
vpxorq %zmm15, %zmm27, %zmm15
vpxorq %zmm13, %zmm1, %zmm13
vprolq $0x2c, %zmm15, %zmm28
vprolq $0x2b, %zmm18, %zmm0
vprolq $0x15, %zmm21, %zmm24
vprolq $0xe, %zmm13, %zmm21
vmovdqa64 %zmm7, %zmm18
vpternlogq $0xd2, %zmm0, %zmm28, %zmm18
vmovdqa64 %zmm28, %zmm15
vpternlogq $0xd2, %zmm24, %zmm0, %zmm15
vmovdqu64 %zmm15, 0x50(%rsp)
vpternlogq $0xd2, %zmm21, %zmm24, %zmm0
vmovdqu64 %zmm0, 0x10(%rsp)
vpxorq 0xb0(%rcx,%rdx,8){1to8}, %zmm18, %zmm29
vpxorq %zmm20, %zmm10, %zmm18
vpternlogq $0xd2, %zmm7, %zmm21, %zmm24
vpxorq %zmm22, %zmm27, %zmm20
vpxorq %zmm26, %zmm25, %zmm22
vpxorq %zmm8, %zmm30, %zmm31
vpxorq %zmm16, %zmm1, %zmm0
vprolq $0x3, %zmm18, %zmm8
vpternlogq $0xd2, %zmm28, %zmm7, %zmm21
vprolq $0x2d, %zmm20, %zmm16
vprolq $0x3d, %zmm22, %zmm26
vprolq $0x1c, %zmm31, %zmm7
vprolq $0x14, %zmm0, %zmm0
vmovdqa64 %zmm7, %zmm20
vpternlogq $0xd2, %zmm8, %zmm0, %zmm20
vmovdqa64 %zmm0, %zmm28
vpternlogq $0xd2, %zmm16, %zmm8, %zmm28
vpternlogq $0xd2, %zmm26, %zmm16, %zmm8
vpxorq %zmm23, %zmm10, %zmm18
vpxorq 0xd0(%rsp), %zmm27, %zmm22
vpxorq %zmm17, %zmm30, %zmm17
vpxorq %zmm19, %zmm1, %zmm19
vpternlogq $0xd2, %zmm7, %zmm26, %zmm16
vprolq $0x12, %zmm18, %zmm18
vprolq $0x1, %zmm22, %zmm23
vprolq $0x6, %zmm2, %zmm2
vprolq $0x19, %zmm17, %zmm31
vprolq $0x8, %zmm19, %zmm17
vpternlogq $0xd2, %zmm0, %zmm7, %zmm26
vmovdqa64 %zmm23, %zmm13
vpternlogq $0xd2, %zmm31, %zmm2, %zmm13
vmovdqa64 %zmm2, %zmm19
vpternlogq $0xd2, %zmm17, %zmm31, %zmm19
vpternlogq $0xd2, %zmm18, %zmm17, %zmm31
vpxorq %zmm5, %zmm10, %zmm0
vpxorq %zmm14, %zmm27, %zmm5
vpternlogq $0xd2, %zmm23, %zmm18, %zmm17
vpxorq %zmm12, %zmm25, %zmm12
vpxorq %zmm9, %zmm30, %zmm14
vpxorq %zmm3, %zmm1, %zmm3
vprolq $0x24, %zmm0, %zmm0
vprolq $0xa, %zmm5, %zmm22
vpternlogq $0xd2, %zmm2, %zmm23, %zmm18
vprolq $0xf, %zmm12, %zmm9
vprolq $0x38, %zmm14, %zmm14
vprolq $0x1b, %zmm3, %zmm3
vmovdqa64 %zmm3, %zmm23
vpternlogq $0xd2, %zmm22, %zmm0, %zmm23
vmovdqa64 %zmm0, %zmm5
vpternlogq $0xd2, %zmm9, %zmm22, %zmm5
vpternlogq $0xd2, %zmm14, %zmm9, %zmm22
vpxorq 0x110(%rsp), %zmm10, %zmm2
vpxorq %zmm6, %zmm27, %zmm6
vpxorq %zmm11, %zmm25, %zmm10
vpxorq 0x150(%rsp), %zmm30, %zmm11
vpxorq %zmm4, %zmm1, %zmm4
vpternlogq $0xd2, %zmm3, %zmm14, %zmm9
vprolq $0x29, %zmm2, %zmm25
vprolq $0x2, %zmm6, %zmm1
vprolq $0x3e, %zmm10, %zmm6
vprolq $0x37, %zmm11, %zmm10
vprolq $0x27, %zmm4, %zmm4
vmovdqa64 %zmm6, %zmm7
vpternlogq $0xd2, %zmm0, %zmm3, %zmm14
vpternlogq $0xd2, %zmm4, %zmm10, %zmm7
vmovdqa64 %zmm10, %zmm27
vpternlogq $0xd2, %zmm25, %zmm4, %zmm27
vpternlogq $0xd2, %zmm1, %zmm25, %zmm4
vpternlogq $0xd2, %zmm6, %zmm1, %zmm25
vpternlogq $0xd2, %zmm10, %zmm6, %zmm1
vmovdqa64 %zmm28, %zmm0
vpternlogq $0x96, %zmm15, %zmm5, %zmm0
vpternlogq $0x96, %zmm27, %zmm19, %zmm0
vmovdqa64 %zmm1, %zmm3
vpternlogq $0x96, %zmm14, %zmm26, %zmm3
vpternlogq $0x96, %zmm18, %zmm21, %zmm3
vprolq $0x1, %zmm0, %zmm6
vpxorq %zmm6, %zmm3, %zmm30
vpxorq %zmm29, %zmm30, %zmm11
vmovdqa64 %zmm29, %zmm6
vpternlogq $0x96, %zmm7, %zmm13, %zmm6
vmovdqa64 %zmm9, %zmm10
vpternlogq $0x96, %zmm17, %zmm24, %zmm10
vpternlogq $0x96, %zmm16, %zmm25, %zmm10
vprolq $0x1, %zmm10, %zmm12
vpxorq %zmm0, %zmm12, %zmm29
vpternlogq $0x96, %zmm23, %zmm20, %zmm6
vpxorq %zmm31, %zmm29, %zmm12
vpternlogq $0x96, %zmm8, %zmm4, %zmm31
vpternlogq $0x96, 0x10(%rsp), %zmm22, %zmm31
vprolq $0x1, %zmm31, %zmm0
vprolq $0x1, %zmm3, %zmm2
vpxorq %zmm6, %zmm0, %zmm3
vprolq $0x1, %zmm6, %zmm6
vpxorq %zmm31, %zmm2, %zmm0
vpxorq %zmm6, %zmm10, %zmm31
vpxorq %zmm28, %zmm3, %zmm2
vpxorq %zmm9, %zmm0, %zmm6
vpxorq %zmm1, %zmm31, %zmm1
vprolq $0x2c, %zmm2, %zmm2
vprolq $0x2b, %zmm12, %zmm10
vprolq $0x15, %zmm6, %zmm15
vprolq $0xe, %zmm1, %zmm6
vmovdqa64 %zmm11, %zmm28
vpternlogq $0xd2, %zmm10, %zmm2, %zmm28
vmovdqa64 %zmm2, %zmm1
vpternlogq $0xd2, %zmm15, %zmm10, %zmm1
vmovdqu64 %zmm1, 0x90(%rsp)
vpternlogq $0xd2, %zmm6, %zmm15, %zmm10
vpxorq %zmm13, %zmm30, %zmm9
vpxorq %zmm5, %zmm3, %zmm5
vpxorq %zmm4, %zmm29, %zmm4
vpxorq %zmm24, %zmm0, %zmm12
vpternlogq $0xd2, %zmm11, %zmm6, %zmm15
vpxorq %zmm26, %zmm31, %zmm24
vprolq $0x3, %zmm9, %zmm1
vprolq $0x2d, %zmm5, %zmm26
vprolq $0x3d, %zmm4, %zmm13
vprolq $0x1c, %zmm12, %zmm5
vpternlogq $0xd2, %zmm2, %zmm11, %zmm6
vprolq $0x14, %zmm24, %zmm2
vmovdqa64 %zmm5, %zmm4
vpternlogq $0xd2, %zmm1, %zmm2, %zmm4
vmovdqu64 %zmm4, 0x150(%rsp)
vmovdqa64 %zmm2, %zmm9
vpternlogq $0xd2, %zmm26, %zmm1, %zmm9
vpternlogq $0xd2, %zmm13, %zmm26, %zmm1
vmovdqu64 %zmm1, 0x110(%rsp)
vpxorq %zmm7, %zmm30, %zmm4
vpternlogq $0xd2, %zmm5, %zmm13, %zmm26
vpxorq 0x50(%rsp), %zmm3, %zmm7
vpxorq %zmm8, %zmm29, %zmm8
vpxorq %zmm17, %zmm0, %zmm11
vpxorq %zmm14, %zmm31, %zmm14
vprolq $0x12, %zmm4, %zmm4
vpternlogq $0xd2, %zmm2, %zmm5, %zmm13
vprolq $0x1, %zmm7, %zmm2
vprolq $0x6, %zmm8, %zmm7
vprolq $0x19, %zmm11, %zmm17
vprolq $0x8, %zmm14, %zmm11
vmovdqa64 %zmm2, %zmm14
vpternlogq $0xd2, %zmm17, %zmm7, %zmm14
vmovdqa64 %zmm7, %zmm5
vpternlogq $0xd2, %zmm11, %zmm17, %zmm5
vpternlogq $0xd2, %zmm4, %zmm11, %zmm17
vpternlogq $0xd2, %zmm2, %zmm4, %zmm11
vpternlogq $0xd2, %zmm7, %zmm2, %zmm4
vpxorq %zmm20, %zmm30, %zmm2
vpxorq %zmm23, %zmm30, %zmm7
vpxorq %zmm19, %zmm3, %zmm8
vpxorq %zmm27, %zmm3, %zmm3
vpxorq %zmm22, %zmm29, %zmm19
vpxorq 0x10(%rsp), %zmm29, %zmm20
vpxorq %zmm25, %zmm0, %zmm23
vprolq $0x24, %zmm2, %zmm2
vpxorq %zmm21, %zmm31, %zmm21
vprolq $0xa, %zmm8, %zmm1
vprolq $0xf, %zmm19, %zmm12
vprolq $0x38, %zmm23, %zmm19
vprolq $0x1b, %zmm21, %zmm8
vpxorq %zmm16, %zmm0, %zmm0
vmovdqa64 %zmm8, %zmm22
vpternlogq $0xd2, %zmm1, %zmm2, %zmm22
vpxorq %zmm18, %zmm31, %zmm16
vmovdqa64 %zmm2, %zmm21
vpternlogq $0xd2, %zmm12, %zmm1, %zmm21
vpternlogq $0xd2, %zmm19, %zmm12, %zmm1
vpternlogq $0xd2, %zmm8, %zmm19, %zmm12
vprolq $0x29, %zmm7, %zmm18
vmovdqa64 %zmm26, %zmm7
vpternlogq $0xd2, %zmm2, %zmm8, %zmm19
vprolq $0x2, %zmm3, %zmm24
vprolq $0x3e, %zmm20, %zmm2
vprolq $0x37, %zmm0, %zmm0
vprolq $0x27, %zmm16, %zmm23
vmovdqa64 %zmm2, %zmm20
vpternlogq $0xd2, %zmm23, %zmm0, %zmm20
vmovdqa64 %zmm0, %zmm16
vpternlogq $0xd2, %zmm18, %zmm23, %zmm16
vpternlogq $0xd2, %zmm24, %zmm18, %zmm23
vpternlogq $0xd2, %zmm2, %zmm24, %zmm18
vpternlogq $0xd2, %zmm0, %zmm2, %zmm24
vpxorq 0xb8(%rcx,%rdx,8){1to8}, %zmm28, %zmm25
addq $0xc, %rdx
jb 0x1c25c
vmovdqu64 %zmm1, 0xd0(%rsp)
vmovdqu64 %zmm22, 0x50(%rsp)
vmovdqu64 %zmm4, 0x10(%rsp)
vmovdqu64 %zmm5, 0x1a0(%rsp)
vmovdqu64 %zmm6, 0x1e0(%rsp)
leaq (%rbx,%rax,8), %rbx
subq %r14, %r15
cmpq %r10, %r15
vmovdqu64 0x90(%rsp), %zmm6
vmovdqu64 0x110(%rsp), %zmm4
jae 0x1bff4
vmovdqa64 %zmm25, (%r12)
vmovdqa64 %zmm6, 0x40(%r12)
vmovdqa64 %zmm10, 0x80(%r12)
vmovdqa64 %zmm15, 0xc0(%r12)
vmovups 0x1e0(%rsp), %zmm0
vmovaps %zmm0, 0x100(%r12)
vmovups 0x150(%rsp), %zmm0
vmovaps %zmm0, 0x140(%r12)
vmovdqa64 %zmm9, 0x180(%r12)
vmovdqa64 %zmm4, 0x1c0(%r12)
vmovdqa64 %zmm7, 0x200(%r12)
vmovdqa64 %zmm13, 0x240(%r12)
vmovdqa64 %zmm14, 0x280(%r12)
vmovups 0x1a0(%rsp), %zmm0
vmovaps %zmm0, 0x2c0(%r12)
vmovdqa64 %zmm17, 0x300(%r12)
vmovdqa64 %zmm11, 0x340(%r12)
vmovups 0x10(%rsp), %zmm0
vmovaps %zmm0, 0x380(%r12)
vmovups 0x50(%rsp), %zmm0
vmovaps %zmm0, 0x3c0(%r12)
vmovdqa64 %zmm21, 0x400(%r12)
vmovups 0xd0(%rsp), %zmm0
vmovaps %zmm0, 0x440(%r12)
vmovdqa64 %zmm12, 0x480(%r12)
vmovdqa64 %zmm19, 0x4c0(%r12)
vmovdqa64 %zmm20, 0x500(%r12)
vmovdqa64 %zmm16, 0x540(%r12)
vmovdqa64 %zmm23, 0x580(%r12)
vmovdqa64 %zmm18, 0x5c0(%r12)
vmovdqa64 %zmm24, 0x600(%r12)
subq 0x8(%rsp), %rbx
movq %rbx, %rax
addq $0x288, %rsp            # imm = 0x288
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
vzeroupper
retq