// File: /workspace/github_c_makefile_star2_O3/mjosaarinen[P]brutus/crypto_aead/pi64cipher256v2oneround/ref/encrypt.c
// Function: crypto_aead_encrypt
int crypto_aead_encrypt(
unsigned char *c, unsigned long long *clen,
const unsigned char *m, unsigned long long mlen,
const unsigned char *ad, unsigned long long adlen,
const unsigned char *nsec,
const unsigned char *npub,
const unsigned char *k
)
{
	//...
	//... the code for the cipher implementation goes here,
	//... generating a ciphertext c[0],c[1],...,c[*clen-1]
	//... from a plaintext m[0],m[1],...,m[mlen-1]
	//... and associated data ad[0],ad[1],...,ad[adlen-1]
	//... and secret message number nsec[0],nsec[1],...
	//... and public message number npub[0],npub[1],...
	//... and secret key k[0],k[1],...
	//...

	// some 64-bit temp variables
	u_int64_t  t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13;
	// more 64-bit temp variables
	u_int64_t  x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3;
	// pointers to 64-bit variables
	u_int64_t  *c64, *m64, *ad64, *nsec64, *npub64, *k64;
	// counter ctr is a 64-bit variable in all variants of PiCipher
	u_int64_t  ctr = 0x0000000000000000ull;
	// an array for storing some temporal values for the Tag computation
	u_int64_t  tempTag[CRYPTO_ABYTES / W] = { 0 };
	// an array for the Common Internal State
	u_int64_t  CIS[IS_SIZE] = { 0 };
	// pointers that look at the used data arrays as arrays of bytes
	u_int8_t   *InternalState8, *CommonInternalState8, *tempTag8;
	// variables for dealing with various lengths of the plaintext and associated data
	int        LastMessageChunkLength, LastADChunkLength;
	// different iterator variables
	unsigned long long i, j, jj, ii, b, i1, j1, a;

	c64 = (u_int64_t *)c;
	m64 = (u_int64_t *)m;
	ad64 = (u_int64_t *)ad;
	nsec64 = (u_int64_t *)nsec;
	npub64 = (u_int64_t *)npub;
	k64 = (u_int64_t *)k;
	InternalState8 = (u_int8_t *)IS;
	CommonInternalState8 = (u_int8_t *)CIS;
	tempTag8 = (u_int8_t *)tempTag;

	// phase 1: Initialization
	for (i = 0; i < IS_SIZE; i++) {
		IS[i] = 0;
	}
	// injection of the key
	for (i = 0; i < CRYPTO_KEYBYTES; i++) {
		InternalState8[i] = k[i];
	}
	// injection of the nonce (public message number - PMN)
	for (j = 0; j < CRYPTO_NPUBBYTES; j++) {
		InternalState8[i++] = npub[j];
	}
	// appending a single 1 to the concatenated value of the key and PMN
	InternalState8[i] = 0x01;

	// applying the permutation function pi
	pi();

	// initialization of the Common Internal State (CIS), common for all parallel invocations of pi() with different ctrs
	for (i = 0; i < IS_SIZE; i++) {
		CIS[i] = IS[i];
	}

	// initialization of the ctr obtained from the first 64 bits of the capacity of CIS
	ctr = CIS[4];

	// phase 2: Processing the associated data
	b = 0;
	a = adlen / RATE;
	for (j = 0; j < a; j++) {
		// IS for the triplex component is initialized by the CIS for every AD block
		for (i = 0; i < IS_SIZE; i++) {
			IS[i] = CIS[i];
		}
		ctr++;
		// Inject ctr + j in IS
		IS[0] = IS[0] ^ ctr;
		pi();
		// process the AD block
		// Inject the AD block
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				IS[i*WORDS_CHUNK + i1] = IS[i*WORDS_CHUNK + i1] ^ ad64[b];
				b++;
			}
		}
		pi();
		// Collect the tag for this block
		// Sum of the tags componentwise, where the length of one component is W
		jj = 0;
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				tempTag[jj] = tempTag[jj] + IS[i*WORDS_CHUNK + i1];
				jj++;
			}
		}
	}
	// if the last AD block is not the full block, we process it byte by byte
	LastADChunkLength = adlen % RATE;
	if (LastADChunkLength) {
		b = b * W;
		i1 = 0;
		for (i = 0; i < IS_SIZE; i++) {
			IS[i] = CIS[i];
		}
		ctr++;
		IS[0] = IS[0] ^ ctr;
		pi();
		for (i = 0; i < LastADChunkLength; i++) {
			InternalState8[i1] = InternalState8[i1] ^ ad[b + i];
			i1++;
			if (i1 % (WORDS_CHUNK*W) == 0) i1 += WORDS_CHUNK*W;
		}
		// padding with 10*
		InternalState8[i1] = InternalState8[i1] ^ 0x01;
		pi();
		//updating the tag
		jj = 0;
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				tempTag[jj] = tempTag[jj] + IS[i*WORDS_CHUNK + i1];
				jj++;
			}
		}
	}
	// if the AD is full blocks we still need to append 10* and it is done in an additional block
	else{
		for ( i = 0; i < IS_SIZE; i++ ) {
			IS[i] = CIS[i];
		}
		ctr++;
		IS[0] = IS[0] ^ ctr;
		pi();
		// padding with 10*
		InternalState8[0] = InternalState8[0] ^ 0x01;
		pi();
		//updating the tag
		jj = 0;
		for ( i = 0; i < N; i+=2 ) {
			for ( i1 = 0; i1 < WORDS_CHUNK; i1++ ) {
				tempTag[jj] = tempTag[jj] + IS[i*WORDS_CHUNK+i1];
				jj++;
			}
		}
	}

	// updating the Common Internal State by injection of the tag (tempTag) obtained from the associated data
	jj = 0;
	for (i = 0; i < N; i += 2) {
		for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
			IS[i*WORDS_CHUNK + i1] = CIS[i*WORDS_CHUNK + i1] ^ tempTag[jj];
			IS[(i + 1)*WORDS_CHUNK + i1] = CIS[(i + 1)*WORDS_CHUNK + i1];
			jj++;
		}
	}
	pi();
	for (i = 0; i < IS_SIZE; i++) {
		CIS[i] = IS[i];
	}

	// phase 3: Processing the secret message number
	if (CRYPTO_NSECBYTES > 0) {
		for (i = 0; i < IS_SIZE; i++) {
			IS[i] = CIS[i];
		}
		ctr++;
		IS[0] = IS[0] ^ ctr;
		pi();
		// encrypt the SMN
		// Inject the SMN
		b = 0;
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				c64[b] = IS[i*WORDS_CHUNK + i1] = IS[i*WORDS_CHUNK + i1] ^ nsec64[b];
				b++;
			}
		}
		pi();

		// updating the Common Internal State from the encrypted SMN
		for (i = 0; i < IS_SIZE; i++) {
			CIS[i] = IS[i];
		}
		// Collect the tag from this encryption and update the tempTag
		jj = 0;
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				tempTag[jj] = tempTag[jj] + IS[i*WORDS_CHUNK + i1];
				jj++;
			}
		}
	}

	//phase 4: Processing the message
	b = 0;
	for (j = 0; j < mlen / RATE; j++) {
		for (i = 0; i < IS_SIZE; i++) {
			IS[i] = CIS[i];
		}
		ctr++;
		IS[0] = IS[0] ^ ctr;
		pi();
		// encrypt the message m
		// Inject a block of m
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				c64[bSMN + b] = IS[i*WORDS_CHUNK + i1] = IS[i*WORDS_CHUNK + i1] ^ m64[b];
				b++;
			}
		}
		pi();
		// Collect the tag from this encryption and update the tempTag
		jj = 0;
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				tempTag[jj] = tempTag[jj] + IS[i*WORDS_CHUNK + i1];
				jj++;
			}
		}
	}
	// if the last message block is not the full block, we process it byte by byte
	LastMessageChunkLength = mlen % RATE;
	if (LastMessageChunkLength) {
		b = b * W;
		i1 = 0;
		for (i = 0; i < IS_SIZE; i++) {
			IS[i] = CIS[i];
		}
		ctr++;
		IS[0] = IS[0] ^ ctr;
		pi();
		for (i = 0; i < LastMessageChunkLength; i++) {
			c[CRYPTO_NSECBYTES + b + i] = InternalState8[i1] = InternalState8[i1] ^ m[b + i];
			i1++;
			if (i1 % (WORDS_CHUNK*W) == 0) i1 += WORDS_CHUNK*W;
		}
		// padding with 10*
		InternalState8[i1] = InternalState8[i1] ^ 0x01;
		pi();
		// updating the tag
		jj = 0;
		for (i = 0; i < N; i += 2) {
			for (i1 = 0; i1 < WORDS_CHUNK; i1++) {
				tempTag[jj] = tempTag[jj] + IS[i*WORDS_CHUNK + i1];
				jj++;
			}
		}
	}
	// if the message is full blocks we still need to append 10* and it is done in an additional block
	else{
		for ( i = 0; i < IS_SIZE; i++ ) {
			IS[i] = CIS[i];
		}
		ctr++;
		IS[0] = IS[0] ^ ctr;
		pi();
		// padding with 10*
		InternalState8[0] = InternalState8[0] ^ 0x01;
		pi();
		//updating the tag
		jj = 0;
		for ( i = 0; i < N; i+=2 ) {
			for ( i1 = 0; i1 < WORDS_CHUNK; i1++ ) {
				tempTag[jj] = tempTag[jj] + IS[i*WORDS_CHUNK+i1];
				jj++;
			}
		}
	}

	// concatenation of the tag T to the ciphertext c
	for (jj = 0; jj < CRYPTO_ABYTES; jj++) {
		c[CRYPTO_NSECBYTES + mlen + jj] = tempTag8[jj];
	}

	//updating the length of the ciphertext
	*clen = mlen + CRYPTO_ABYTES + CRYPTO_NSECBYTES;

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x20e8, %rsp           # imm = 0x20E8
movq %r9, 0x18(%rsp)
movq %r8, 0x28(%rsp)
movq %rcx, %r12
movq %rdx, 0x48(%rsp)
movq %rsi, 0xd8(%rsp)
movq %rdi, %r13
movq 0x2130(%rsp), %r14
movq 0x2128(%rsp), %rbx
leaq 0xe0(%rsp), %rdi
xorl %r15d, %r15d
movl $0x2000, %edx           # imm = 0x2000
xorl %esi, %esi
callq 0x1030
vxorps %xmm0, %xmm0, %xmm0
leaq 0x90(%rsp), %rax
vmovups %ymm0, 0x20(%rax)
vmovups %ymm0, (%rax)
vmovups %ymm0, -0x20(%rax)
vmovups %ymm0, -0x40(%rax)
movq 0x9e21(%rip), %rax      # 0xaff8
vmovups %ymm0, (%rax)
vmovups %ymm0, 0x20(%rax)
vmovups %ymm0, 0x40(%rax)
vmovups %ymm0, 0x60(%rax)
movb (%r14,%r15), %cl
movb %cl, (%rax,%r15)
incq %r15
cmpq $0x20, %r15
jne 0x11ea
movq %r13, 0x20(%rsp)
movq %r12, 0x30(%rsp)
xorl %ecx, %ecx
movb (%rbx,%rcx), %dl
movb %dl, 0x20(%rax,%rcx)
incq %rcx
cmpq $0x10, %rcx
jne 0x1207
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
movb $0x1, 0x30(%rax)
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
leaq (%rdx,%rcx), %rdi
vmovdqu 0x8(%rax), %xmm0
vpinsrq $0x1, %rsi, %xmm0, %xmm0
vpbroadcastq %rdi, %xmm1
vpaddq %xmm0, %xmm1, %xmm0
vpaddq 0x7da5(%rip), %xmm0, %xmm0 # 0x9000
vprolvq 0x7dab(%rip), %xmm0, %xmm1 # 0x9010
vpbroadcastq %rsi, %xmm0
vmovq %rdx, %xmm2
vmovq %rcx, %xmm3
vpunpcklqdq %xmm2, %xmm3, %xmm2 # xmm2 = xmm3[0],xmm2[0]
vpaddq %xmm2, %xmm0, %xmm0
vpaddq 0x8(%rax){1to2}, %xmm0, %xmm0
vpaddq 0x7d94(%rip), %xmm0, %xmm0 # 0x9020
vprolvq 0x7d9a(%rip), %xmm0, %xmm2 # 0x9030
movabsq $0x3a393635332e2d2b, %r10 # imm = 0x3A393635332E2D2B
vpxor %xmm1, %xmm2, %xmm0
vpermq $0x14, %ymm0, %ymm3     # ymm3 = ymm0[0,1,1,0]
vpmovsxbq 0x7e2d(%rip), %ymm0 # 0x90e0
vpermt2q %ymm2, %ymm0, %ymm1
vpxor %ymm1, %ymm3, %ymm1
vpaddq 0x7ddb(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
leaq (%r8,%rsi), %r14
addq %rdi, %r14
rorxq $0x39, %r14, %r12
movq 0x18(%rax,%rbx), %r15
movabsq $-0x2e333536393a3c48, %r8 # imm = 0xD1CCCAC9C6C5C3B8
leaq (%r8,%r15), %r14
addq %rdi, %r14
rorxq $0x2d, %r14, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r15, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r15
addq %rsi, %r15
rorxq $0xb, %r15, %r15
movq %r14, %rcx
xorq %r12, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r12, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r12
leaq (%rsi,%rdi), %r13
movabsq $-0x727478878b8d8e94, %r8 # imm = 0x8D8B87787472716C
leaq (%r8,%r12), %rbp
addq %r13, %rbp
movq 0x28(%rax,%rbx), %r8
addq %r12, %rsi
movabsq $0x6a696665635c5a59, %r9 # imm = 0x6A696665635C5A59
addq %r8, %r9
addq %r9, %rsi
movabsq $0x5655534e4d4b473c, %r9 # imm = 0x5655534E4D4B473C
addq %r8, %r9
addq %r13, %r9
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r9, %r9
addq %rdi, %r12
addq %r10, %r8
addq %r12, %r8
rorxq $0x5, %r8, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r12
xorq %rsi, %r12
addq %rdx, %r12
rorxq $0x35, %rbp, %rdx
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movq %r12, 0x38(%rax,%rbx)
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x12cb
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x7c06(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x7c0c(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x7c0d(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x7c13(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x7c47(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
movabsq $-0x2e333536393a3c48, %r14 # imm = 0xD1CCCAC9C6C5C3B8
addq %r9, %r14
addq %rdi, %r14
rorxq $0x2d, %r14, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
addq %r8, %r12
addq %r9, %r12
movq 0x28(%rax,%rbx), %r13
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %rbp # imm = 0x6A696665635C5A59
addq %r13, %rbp
addq %rbp, %rsi
movabsq $0x5655534e4d4b473c, %rbp # imm = 0x5655534E4D4B473C
addq %r13, %rbp
addq %r9, %rbp
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %rbp, %r9
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
addq %rdi, %r8
addq %r10, %r13
addq %r8, %r13
rorxq $0x5, %r13, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r13
xorq %rsi, %r13
addq %rdx, %r13
rorxq $0x35, %r12, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movq %r13, 0x18(%rax,%rbx)
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x1483
vmovdqu (%rax), %ymm1
vmovdqu 0x20(%rax), %ymm2
vmovdqu 0x40(%rax), %ymm3
vmovdqu 0x60(%rax), %ymm4
vmovdqu %ymm2, 0x70(%rsp)
vmovdqu %ymm4, 0xb0(%rsp)
vmovdqu %ymm3, 0x90(%rsp)
vmovdqu %ymm1, 0x50(%rsp)
movq 0x70(%rsp), %rdx
movq 0x18(%rsp), %rcx
cmpq $0x40, %rcx
jae 0x160a
xorl %r15d, %r15d
jmp 0x1e22
shrq $0x6, %rcx
movq %rcx, 0x38(%rsp)
vmovdqa 0x79e5(%rip), %xmm1     # 0x9000
vpmovsxbq 0x7acc(%rip), %xmm2 # 0x90f0
vmovdqa 0x79f4(%rip), %xmm3     # 0x9020
vpmovsxbq 0x7abd(%rip), %xmm4 # 0x90f2
vmovdqa 0x7a63(%rip), %ymm5     # 0x90a0
vmovdqa 0x79fb(%rip), %xmm6     # 0x9040
vpmovsxbq 0x7aa6(%rip), %xmm7 # 0x90f4
vmovdqa 0x7a0a(%rip), %xmm8     # 0x9060
movq $0x0, 0x10(%rsp)
vpmovsxbq 0x7a8e(%rip), %xmm9 # 0x90f6
vmovdqa 0x7a50(%rip), %ymm10    # 0x90c0
xorl %ecx, %ecx
movq %rcx, 0x40(%rsp)
vmovups 0x50(%rsp), %ymm11
vmovups 0x70(%rsp), %ymm12
vmovups 0x90(%rsp), %ymm13
vmovups 0xb0(%rsp), %ymm14
vmovups %ymm11, (%rax)
vmovups %ymm14, 0x60(%rax)
vmovups %ymm13, 0x40(%rax)
vmovups %ymm12, 0x20(%rax)
incq %rdx
movq (%rax), %rcx
movq %rdx, 0x8(%rsp)
xorq %rdx, %rcx
vmovdqa 0x10(%rax), %xmm11
vpshufd $0x4e, %xmm11, %xmm12   # xmm12 = xmm11[2,3,0,1]
movq 0x10(%rax), %rdx
addq %rcx, %rdx
vpbroadcastq %rdx, %xmm13
vpblendd $0x3, 0x8(%rax), %xmm11, %xmm14 # xmm14 = mem[0,1],xmm11[2,3]
vpaddq %xmm14, %xmm13, %xmm13
vpaddq %xmm1, %xmm13, %xmm13
vprolvq %xmm2, %xmm13, %xmm13
vpinsrq $0x0, %rcx, %xmm11, %xmm11
vpaddq %xmm11, %xmm12, %xmm11
vpaddq 0x8(%rax){1to2}, %xmm11, %xmm11
vpaddq %xmm3, %xmm11, %xmm11
vprolvq %xmm4, %xmm11, %xmm11
vpxor %xmm13, %xmm11, %xmm12
vpermq $0x14, %ymm12, %ymm12   # ymm12 = ymm12[0,1,1,0]
vpermt2q %ymm11, %ymm0, %ymm13
vpxor %ymm13, %ymm12, %ymm11
vpaddq %ymm5, %ymm11, %ymm11
vmovdqu %ymm11, (%rax)
xorl %ebx, %ebx
movabsq $-0x2e333536393a3c48, %r10 # imm = 0xD1CCCAC9C6C5C3B8
movabsq $-0x5c636566696a6c72, %r12 # imm = 0xA39C9A999695938E
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r10,%r9), %r14
addq %rdi, %r14
rorxq $0x2d, %r14, %r15
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r12, %r9
addq %rsi, %r9
movq %r12, %r11
rorxq $0xb, %r9, %r12
movq %r15, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r12, %rdx
xorq %rdi, %rcx
xorq %rdi, %r12
xorq %r12, %r15
xorq %r8, %r12
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
movabsq $-0x727478878b8d8e94, %r14 # imm = 0x8D8B87787472716C
addq %r8, %r14
addq %r9, %r14
movq 0x28(%rax,%rbx), %rbp
addq %r8, %rsi
movq %r10, %r13
movabsq $0x6a696665635c5a59, %r10 # imm = 0x6A696665635C5A59
addq %rbp, %r10
addq %r10, %rsi
movabsq $0x5655534e4d4b473c, %r10 # imm = 0x5655534E4D4B473C
addq %rbp, %r10
addq %r9, %r10
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r10, %r9
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %rbp
addq %r8, %rbp
rorxq $0x5, %rbp, %rdi
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r10
xorq %rsi, %r10
addq %rdx, %r10
rorxq $0x35, %r14, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r15, %rdi
xorq %r9, %rsi
addq %r12, %rsi
movq %r11, %r12
movq %r10, 0x38(%rax,%rbx)
movq %r13, %r10
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x1734
vmovdqu 0x68(%rax), %xmm11
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm12
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm11, %xmm12, %xmm12 # xmm12 = xmm12[0],xmm11[0]
vpaddq %xmm12, %xmm11, %xmm11
vpinsrq $0x1, %rcx, %xmm11, %xmm12
vpaddq 0x70(%rax), %xmm12, %xmm12
vpaddq %xmm6, %xmm12, %xmm12
vprolvq %xmm7, %xmm12, %xmm12
vpaddq 0x78(%rax){1to2}, %xmm11, %xmm11
vpaddq %xmm8, %xmm11, %xmm11
vprolvq %xmm9, %xmm11, %xmm11
vpxor %xmm12, %xmm11, %xmm13
vpermq $0x14, %ymm13, %ymm13   # ymm13 = ymm13[0,1,1,0]
vpermt2q %ymm11, %ymm0, %ymm12
vpxor %ymm12, %ymm13, %ymm11
vpaddq %ymm10, %ymm11, %ymm11
vmovdqu %ymm11, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r9,%r13), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r15
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r12, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r12
movq %r15, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r12, %rdx
xorq %rdi, %rcx
xorq %rdi, %r12
xorq %r12, %r15
xorq %r8, %r12
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
movabsq $-0x727478878b8d8e94, %r10 # imm = 0x8D8B87787472716C
addq %r8, %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r14
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %rbp # imm = 0x6A696665635C5A59
addq %r14, %rbp
addq %rbp, %rsi
movabsq $0x5655534e4d4b473c, %rbp # imm = 0x5655534E4D4B473C
addq %r14, %rbp
addq %r9, %rbp
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %rbp, %r9
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r14
addq %r8, %r14
rorxq $0x5, %r14, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r14
xorq %rsi, %r14
addq %rdx, %r14
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r15, %rdi
xorq %r9, %rsi
addq %r12, %rsi
movq %r11, %r12
movq %r14, 0x18(%rax,%rbx)
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x18de
movb $0x1, %dl
xorl %esi, %esi
movq 0x28(%rsp), %r9
movq 0x10(%rsp), %rdi
movq %rdi, %rbx
shlq $0x3, %rsi
addq %rax, %rsi
leaq (,%rdi,8), %r15
leaq (%r9,%rdi,8), %rdi
xorl %ecx, %ecx
movq (%rdi,%rcx,8), %r8
xorq %r8, (%rsi,%rcx,8)
incq %rcx
addq $0x8, %r15
cmpq $0x4, %rcx
jne 0x1a3c
leaq (%rbx,%rcx), %rdi
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x1a24
movq (%rax), %rdx
movq 0x10(%rax), %rsi
movq 0x18(%rax), %rdi
leaq (%rsi,%rdx), %r8
vmovdqu 0x8(%rax), %xmm11
vpbroadcastq %r8, %xmm12
vpinsrq $0x1, %rdi, %xmm11, %xmm11
vpaddq %xmm11, %xmm12, %xmm11
vpaddq %xmm1, %xmm11, %xmm11
vpbroadcastq %rdi, %xmm12
vmovq %rsi, %xmm13
vmovq %rdx, %xmm14
vpunpcklqdq %xmm13, %xmm14, %xmm13 # xmm13 = xmm14[0],xmm13[0]
vpaddq %xmm13, %xmm12, %xmm12
vpaddq 0x8(%rax){1to2}, %xmm12, %xmm12
vprolvq %xmm2, %xmm11, %xmm11
vpaddq %xmm3, %xmm12, %xmm12
vprolvq %xmm4, %xmm12, %xmm12
vpxor %xmm11, %xmm12, %xmm13
vpermq $0x14, %ymm13, %ymm13   # ymm13 = ymm13[0,1,1,0]
vpermt2q %ymm12, %ymm0, %ymm11
vpxor %ymm11, %ymm13, %ymm11
vpaddq %ymm5, %ymm11, %ymm11
vmovdqu %ymm11, (%rax)
addq %rcx, %rbx
movq %rbx, 0x10(%rsp)
xorl %ebx, %ebx
movabsq $-0x5c636566696a6c72, %r11 # imm = 0xA39C9A999695938E
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
movabsq $-0x2e333536393a3c48, %r10 # imm = 0xD1CCCAC9C6C5C3B8
addq %r9, %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r12
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r11, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r14
movq %r12, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r14, %rdx
xorq %rdi, %rcx
xorq %rdi, %r14
xorq %r14, %r12
xorq %r8, %r14
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
movabsq $-0x727478878b8d8e94, %r10 # imm = 0x8D8B87787472716C
addq %r8, %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %rbp
addq %r8, %rsi
movq %r11, %r13
movabsq $0x6a696665635c5a59, %r11 # imm = 0x6A696665635C5A59
addq %rbp, %r11
addq %r11, %rsi
movabsq $0x5655534e4d4b473c, %r11 # imm = 0x5655534E4D4B473C
addq %rbp, %r11
addq %r9, %r11
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r11, %r9
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %rbp
addq %r8, %rbp
rorxq $0x5, %rbp, %rdi
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r12, %rdi
xorq %r9, %rsi
addq %r14, %rsi
movq %r11, 0x38(%rax,%rbx)
movq %r13, %r11
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x1af0
vmovdqu 0x68(%rax), %xmm11
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm12
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm11, %xmm12, %xmm12 # xmm12 = xmm12[0],xmm11[0]
vpaddq %xmm12, %xmm11, %xmm11
vpinsrq $0x1, %rcx, %xmm11, %xmm12
vpaddq 0x70(%rax), %xmm12, %xmm12
vpaddq %xmm6, %xmm12, %xmm12
vprolvq %xmm7, %xmm12, %xmm12
vpaddq 0x78(%rax){1to2}, %xmm11, %xmm11
vpaddq %xmm8, %xmm11, %xmm11
vprolvq %xmm9, %xmm11, %xmm11
vpxor %xmm12, %xmm11, %xmm13
vpermq $0x14, %ymm13, %ymm13   # ymm13 = ymm13[0,1,1,0]
vpermt2q %ymm11, %ymm0, %ymm12
vpxor %ymm12, %ymm13, %ymm11
vpaddq %ymm10, %ymm11, %ymm11
vmovdqu %ymm11, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
movabsq $-0x2e333536393a3c48, %r10 # imm = 0xD1CCCAC9C6C5C3B8
addq %r9, %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r12
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r11, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r14
movq %r12, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r14, %rdx
xorq %rdi, %rcx
xorq %rdi, %r14
xorq %r14, %r12
xorq %r8, %r14
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
movabsq $-0x727478878b8d8e94, %r10 # imm = 0x8D8B87787472716C
addq %r8, %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %rbp # imm = 0x6A696665635C5A59
addq %r11, %rbp
addq %rbp, %rsi
movabsq $0x5655534e4d4b473c, %rbp # imm = 0x5655534E4D4B473C
addq %r11, %rbp
addq %r9, %rbp
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %rbp, %r9
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r12, %rdi
xorq %r9, %rsi
addq %r14, %rsi
movq %r11, 0x18(%rax,%rbx)
movq %r13, %r11
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x1c9d
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
vmovdqu (%rax,%rsi,8), %ymm11
vpaddq (%rcx), %ymm11, %ymm11
vmovdqu %ymm11, (%rcx)
addq $0x20, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x1dea
movq 0x40(%rsp), %rcx
incq %rcx
cmpq 0x38(%rsp), %rcx
movq 0x8(%rsp), %rdx
jne 0x1672
vmovups 0x50(%rsp), %ymm1
vmovups 0x70(%rsp), %ymm2
vmovups 0x90(%rsp), %ymm3
vmovups 0xb0(%rsp), %ymm4
vmovups %ymm1, (%rax)
movq %rdx, 0x8(%rsp)
leaq 0x1(%rdx), %rcx
xorq (%rax), %rcx
movq 0x10(%rax), %rdx
addq %rcx, %rdx
vmovups %ymm4, 0x60(%rax)
vmovups %ymm3, 0x40(%rax)
vmovups %ymm2, 0x20(%rax)
vmovdqa 0x10(%rax), %xmm1
vpbroadcastq %rdx, %xmm2
vpblendd $0x3, 0x8(%rax), %xmm1, %xmm3 # xmm3 = mem[0,1],xmm1[2,3]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x717c(%rip), %xmm2, %xmm2 # 0x9000
vprolvq 0x7182(%rip), %xmm2, %xmm2 # 0x9010
vpinsrq $0x0, %rcx, %xmm1, %xmm3
vpshufd $0x4e, %xmm1, %xmm1     # xmm1 = xmm1[2,3,0,1]
vpaddq %xmm3, %xmm1, %xmm1
vpaddq 0x8(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x7174(%rip), %xmm1, %xmm1 # 0x9020
vprolvq 0x717a(%rip), %xmm1, %xmm1 # 0x9030
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x71ce(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
movq 0x18(%rsp), %rcx
andq $0x3f, %rcx
je 0x2610
movq %rcx, 0x18(%rsp)
xorl %ebx, %ebx
movabsq $-0x2e333536393a3c48, %r10 # imm = 0xD1CCCAC9C6C5C3B8
movabsq $-0x4b4d4e535556595b, %r12 # imm = 0xB4B2B1ACAAA9A6A5
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
movq %r10, %rbp
addq %r9, %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %r12, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r12
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r12, %rdx
xorq %rdi, %rcx
xorq %rdi, %r12
xorq %r12, %r14
xorq %r8, %r12
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r11,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r13 # imm = 0x6A696665635C5A59
addq %r11, %r13
addq %r13, %rsi
movabsq $0x5655534e4d4b473c, %r13 # imm = 0x5655534E4D4B473C
addq %r11, %r13
addq %r9, %r13
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r13, %r9
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
movq %rbp, %r10
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r12, %rsi
movabsq $-0x4b4d4e535556595b, %r12 # imm = 0xB4B2B1ACAAA9A6A5
movq %r11, 0x38(%rax,%rbx)
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x1f0a
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x6fc3(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x6fc9(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x6fca(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x6fd0(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x7004(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r9,%rbp), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %r12, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r12
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r12, %rdx
xorq %rdi, %rcx
xorq %rdi, %r12
xorq %r12, %r14
xorq %r8, %r12
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r11,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r13 # imm = 0x6A696665635C5A59
addq %r11, %r13
addq %r13, %rsi
movabsq $0x5655534e4d4b473c, %r13 # imm = 0x5655534E4D4B473C
addq %r11, %r13
addq %r9, %r13
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r13, %r9
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r12, %rsi
movabsq $-0x4b4d4e535556595b, %r12 # imm = 0xB4B2B1ACAAA9A6A5
movq %r11, 0x18(%rax,%rbx)
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x20d0
movq 0x28(%rsp), %r8
addq %r15, %r8
xorl %ecx, %ecx
xorl %edx, %edx
movq 0x18(%rsp), %rdi
movb (%r8,%rdx), %sil
xorb %sil, (%rax,%rcx)
leaq 0x1(%rcx), %rsi
addq $0x21, %rcx
testb $0x1f, %sil
cmovneq %rsi, %rcx
incq %rdx
cmpq %rdx, %rdi
jne 0x2221
xorb $0x1, (%rax,%rcx)
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
leaq (%rdx,%rcx), %rdi
vmovdqu 0x8(%rax), %xmm1
vpbroadcastq %rdi, %xmm2
vpinsrq $0x1, %rsi, %xmm1, %xmm1
vpaddq %xmm1, %xmm2, %xmm1
vpaddq 0x6d8f(%rip), %xmm1, %xmm1 # 0x9000
vprolvq 0x6d95(%rip), %xmm1, %xmm1 # 0x9010
vpbroadcastq %rsi, %xmm2
vmovq %rdx, %xmm3
vmovq %rcx, %xmm4
vpunpcklqdq %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x8(%rax){1to2}, %xmm2, %xmm2
vpaddq 0x6d7e(%rip), %xmm2, %xmm2 # 0x9020
vprolvq 0x6d84(%rip), %xmm2, %xmm2 # 0x9030
vpxor %xmm1, %xmm2, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm2, %ymm0, %ymm1
vpxor %ymm1, %ymm3, %ymm1
vpaddq 0x6dd8(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r11,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movq %r12, %r13
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x38(%rax,%rbx)
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x22f6
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x6be0(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x6be6(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x6be7(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x6bed(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x6c21(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r11,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
addq %r13, %rsi
addq %r11, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x18(%rax,%rbx)
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x24a9
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
vmovdqu (%rax,%rsi,8), %ymm1
vpaddq (%rcx), %ymm1, %ymm1
vmovdqu %ymm1, (%rcx)
addq $0x20, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x25eb
jmp 0x2cbc
xorl %ebx, %ebx
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
movabsq $-0x2e333536393a3c48, %r10 # imm = 0xD1CCCAC9C6C5C3B8
addq %r9, %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movq %r12, %r13
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movq %r11, 0x38(%rax,%rbx)
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x2626
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x68b1(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x68b7(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x68b8(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x68be(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x68f2(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x18(%rax,%rbx)
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x27e2
xorb $0x1, (%rax)
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
leaq (%rdx,%rcx), %rdi
vmovdqu 0x8(%rax), %xmm1
vpbroadcastq %rdi, %xmm2
vpinsrq $0x1, %rsi, %xmm1, %xmm1
vpaddq %xmm1, %xmm2, %xmm1
vpaddq 0x66b6(%rip), %xmm1, %xmm1 # 0x9000
vprolvq 0x66bc(%rip), %xmm1, %xmm1 # 0x9010
vpbroadcastq %rsi, %xmm2
vmovq %rdx, %xmm3
vmovq %rcx, %xmm4
vpunpcklqdq %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x8(%rax){1to2}, %xmm2, %xmm2
vpaddq 0x66a5(%rip), %xmm2, %xmm2 # 0x9020
vprolvq 0x66ab(%rip), %xmm2, %xmm2 # 0x9030
vpxor %xmm1, %xmm2, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm2, %ymm0, %ymm1
vpxor %ymm1, %ymm3, %ymm1
vpaddq 0x66ff(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x38(%rax,%rbx)
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x29a7
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x6532(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x6538(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x6539(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x653f(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x6573(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x18(%rax,%rbx)
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2b57
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
vmovdqu (%rax,%rsi,8), %ymm1
vpaddq (%rcx), %ymm1, %ymm1
vmovdqu %ymm1, (%rcx)
addq $0x20, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x2c9c
leaq 0x50(%rsp), %rdi
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
leaq 0x90(%rsp), %r8
vmovups (%rcx), %ymm1
vxorps (%rdi), %ymm1, %ymm1
vmovups %ymm1, (%rax,%rsi,8)
vmovdqu 0x70(%rsp,%rsi,8), %ymm1
vmovdqu %ymm1, 0x20(%rax,%rsi,8)
addq $0x20, %rcx
movl $0x8, %esi
movq %r8, %rdi
testb $0x1, %dl
movl $0x0, %edx
jne 0x2cd5
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
leaq (%rdx,%rcx), %rdi
vmovdqu 0x8(%rax), %xmm1
vpbroadcastq %rdi, %xmm2
vpinsrq $0x1, %rsi, %xmm1, %xmm1
vpaddq %xmm1, %xmm2, %xmm1
vpaddq 0x62d0(%rip), %xmm1, %xmm1 # 0x9000
vprolvq 0x62d6(%rip), %xmm1, %xmm1 # 0x9010
vpbroadcastq %rsi, %xmm2
vmovq %rdx, %xmm3
vmovq %rcx, %xmm4
vpunpcklqdq %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x8(%rax){1to2}, %xmm2, %xmm2
vpaddq 0x62bf(%rip), %xmm2, %xmm2 # 0x9020
vprolvq 0x62c5(%rip), %xmm2, %xmm2 # 0x9030
vpxor %xmm1, %xmm2, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm2, %ymm0, %ymm1
vpxor %ymm1, %ymm3, %ymm1
vpaddq 0x6319(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movq %r12, %r13
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x38(%rax,%rbx)
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x2d97
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x613f(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x6145(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x6146(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x614c(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x6180(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x18(%rax,%rbx)
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2f4a
vmovups 0x60(%rax), %ymm1
vmovups %ymm1, 0xb0(%rsp)
vmovups 0x40(%rax), %ymm1
vmovups %ymm1, 0x90(%rsp)
vmovups 0x20(%rax), %ymm1
vmovups %ymm1, 0x70(%rsp)
vmovups (%rax), %ymm1
vmovups %ymm1, 0x50(%rsp)
movq 0x8(%rsp), %rdx
addq $0x2, %rdx
movq (%rax), %rcx
movq %rdx, 0x8(%rsp)
xorq %rdx, %rcx
vmovdqa 0x10(%rax), %xmm1
movq 0x10(%rax), %rdx
addq %rcx, %rdx
vpbroadcastq %rdx, %xmm2
vpblendd $0x3, 0x8(%rax), %xmm1, %xmm3 # xmm3 = mem[0,1],xmm1[2,3]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x5f13(%rip), %xmm2, %xmm2 # 0x9000
vprolvq 0x5f19(%rip), %xmm2, %xmm2 # 0x9010
vpinsrq $0x0, %rcx, %xmm1, %xmm3
vpshufd $0x4e, %xmm1, %xmm1     # xmm1 = xmm1[2,3,0,1]
vpaddq %xmm3, %xmm1, %xmm1
vpaddq 0x8(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x5f0b(%rip), %xmm1, %xmm1 # 0x9020
vprolvq 0x5f11(%rip), %xmm1, %xmm1 # 0x9030
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x5f65(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x38(%rax,%rbx)
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x3141
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x5d98(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x5d9e(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x5d9f(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x5da5(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x5dd9(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
movabsq $-0x5c636566696a6c72, %rcx # imm = 0xA39C9A999695938E
addq %rcx, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x18(%rax,%rbx)
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x32f1
movb $0x1, %dl
xorl %ecx, %ecx
xorl %esi, %esi
movq 0x20(%rsp), %r9
movq 0x2120(%rsp), %r10
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
shlq $0x3, %rsi
addq %rax, %rsi
leaq (%r10,%rcx,8), %rdi
leaq (%r9,%rcx,8), %r14
xorl %ebx, %ebx
movq (%rdi,%rbx,8), %r8
xorq (%rsi,%rbx,8), %r8
movq %r8, (%rsi,%rbx,8)
movq %r8, (%r14,%rbx,8)
incq %rbx
cmpq $0x4, %rbx
jne 0x3458
addq %rbx, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x3447
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
leaq (%rdx,%rcx), %rdi
vmovdqu 0x8(%rax), %xmm1
vpbroadcastq %rdi, %xmm2
vpinsrq $0x1, %rsi, %xmm1, %xmm1
vpaddq %xmm1, %xmm2, %xmm1
vpaddq 0x5b51(%rip), %xmm1, %xmm1 # 0x9000
vprolvq 0x5b57(%rip), %xmm1, %xmm1 # 0x9010
vpbroadcastq %rsi, %xmm2
vmovq %rdx, %xmm3
vmovq %rcx, %xmm4
vpunpcklqdq %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x8(%rax){1to2}, %xmm2, %xmm2
vpaddq 0x5b40(%rip), %xmm2, %xmm2 # 0x9020
vprolvq 0x5b46(%rip), %xmm2, %xmm2 # 0x9030
vpxor %xmm1, %xmm2, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm2, %ymm0, %ymm1
vpxor %ymm1, %ymm3, %ymm1
vpaddq 0x5b9a(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
movq %r13, %r11
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r11, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movq %r12, %r13
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x38(%rax,%rbx)
movabsq $-0x5c636566696a6c72, %r11 # imm = 0xA39C9A999695938E
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x3519
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x59bd(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x59c3(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x59c4(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x59ca(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x59fe(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r11, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r15
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r15, %rdx
xorq %rdi, %rcx
xorq %rdi, %r15
xorq %r15, %r14
xorq %r8, %r15
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r12,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r11, %r12
addq %r12, %rsi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r11, %r12
addq %r9, %r12
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %r12, %r9
movq %r13, %r12
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
xorq %r9, %rsi
addq %r15, %rsi
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r11, 0x18(%rax,%rbx)
movabsq $-0x5c636566696a6c72, %r11 # imm = 0xA39C9A999695938E
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x36cc
movq %r11, %r13
vmovdqu (%rax), %ymm1
vmovdqu 0x20(%rax), %ymm2
vmovdqu 0x40(%rax), %ymm3
vmovdqu 0x60(%rax), %ymm4
vmovdqu %ymm4, 0xb0(%rsp)
vmovdqu %ymm3, 0x90(%rsp)
vmovdqu %ymm2, 0x70(%rsp)
vmovdqu %ymm1, 0x50(%rsp)
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
movq 0x20(%rsp), %rdi
vmovdqu (%rax,%rsi,8), %ymm1
vpaddq (%rcx), %ymm1, %ymm1
vmovdqu %ymm1, (%rcx)
addq $0x20, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x384a
movq 0x30(%rsp), %rsi
cmpq $0x40, %rsi
jae 0x3882
xorl %r8d, %r8d
movq 0x8(%rsp), %rdx
jmp 0x40e9
shrq $0x6, %rsi
movq %rsi, 0x28(%rsp)
leaq 0x40(%rdi), %rcx
movq %rcx, 0x38(%rsp)
xorl %r13d, %r13d
vmovdqa 0x5761(%rip), %xmm1     # 0x9000
vpmovsxbq 0x5848(%rip), %xmm2 # 0x90f0
vmovdqa 0x5770(%rip), %xmm3     # 0x9020
vpmovsxbq 0x5839(%rip), %xmm4 # 0x90f2
vmovdqa 0x57df(%rip), %ymm5     # 0x90a0
vmovdqa 0x5777(%rip), %xmm6     # 0x9040
vpmovsxbq 0x5822(%rip), %xmm7 # 0x90f4
vmovdqa 0x5786(%rip), %xmm8     # 0x9060
vpmovsxbq 0x5813(%rip), %xmm9 # 0x90f6
vmovdqa 0x57d5(%rip), %ymm10    # 0x90c0
xorl %ecx, %ecx
movq 0x8(%rsp), %rdx
movq %rcx, 0x10(%rsp)
vmovups 0x50(%rsp), %ymm11
vmovups 0x70(%rsp), %ymm12
vmovups 0x90(%rsp), %ymm13
vmovups 0xb0(%rsp), %ymm14
vmovups %ymm11, (%rax)
vmovups %ymm14, 0x60(%rax)
vmovups %ymm13, 0x40(%rax)
vmovups %ymm12, 0x20(%rax)
incq %rdx
movq (%rax), %rcx
movq %rdx, 0x8(%rsp)
xorq %rdx, %rcx
vmovdqa 0x10(%rax), %xmm11
vpshufd $0x4e, %xmm11, %xmm12   # xmm12 = xmm11[2,3,0,1]
movq 0x10(%rax), %rdx
addq %rcx, %rdx
vpbroadcastq %rdx, %xmm13
vpblendd $0x3, 0x8(%rax), %xmm11, %xmm14 # xmm14 = mem[0,1],xmm11[2,3]
vpaddq %xmm14, %xmm13, %xmm13
vpaddq %xmm1, %xmm13, %xmm13
vprolvq %xmm2, %xmm13, %xmm13
vpinsrq $0x0, %rcx, %xmm11, %xmm11
vpaddq %xmm11, %xmm12, %xmm11
vpaddq 0x8(%rax){1to2}, %xmm11, %xmm11
vpaddq %xmm3, %xmm11, %xmm11
vprolvq %xmm4, %xmm11, %xmm11
vpxor %xmm13, %xmm11, %xmm12
vpermq $0x14, %ymm12, %ymm12   # ymm12 = ymm12[0,1,1,0]
vpermt2q %ymm11, %ymm0, %ymm13
vpxor %ymm13, %ymm12, %ymm11
vpaddq %ymm5, %ymm11, %ymm11
vmovdqu %ymm11, (%rax)
xorl %ebx, %ebx
movabsq $-0x5c636566696a6c72, %r12 # imm = 0xA39C9A999695938E
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
movq %r15, %r14
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r14,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r12, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r12
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r12, %rdx
xorq %rdi, %rcx
xorq %rdi, %r12
xorq %r12, %r14
xorq %r8, %r12
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r11,%r8), %r10
addq %r9, %r10
movq %r11, %r15
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %rbp # imm = 0x6A696665635C5A59
addq %r11, %rbp
addq %rbp, %rsi
movabsq $0x5655534e4d4b473c, %rbp # imm = 0x5655534E4D4B473C
addq %r11, %rbp
addq %r9, %rbp
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %rbp, %r9
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
movabsq $-0x2e333536393a3c48, %r14 # imm = 0xD1CCCAC9C6C5C3B8
xorq %r9, %rsi
addq %r12, %rsi
movabsq $-0x5c636566696a6c72, %r12 # imm = 0xA39C9A999695938E
movq %r11, 0x38(%rax,%rbx)
movq %r15, %r11
movq %r8, 0x20(%rax,%rbx)
movq %rdi, 0x28(%rax,%rbx)
movq %rsi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x39b7
vmovdqu 0x68(%rax), %xmm11
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm12
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm11, %xmm12, %xmm12 # xmm12 = xmm12[0],xmm11[0]
vpaddq %xmm12, %xmm11, %xmm11
vpinsrq $0x1, %rcx, %xmm11, %xmm12
vpaddq 0x70(%rax), %xmm12, %xmm12
vpaddq %xmm6, %xmm12, %xmm12
vprolvq %xmm7, %xmm12, %xmm12
vpaddq 0x78(%rax){1to2}, %xmm11, %xmm11
vpaddq %xmm8, %xmm11, %xmm11
vprolvq %xmm9, %xmm11, %xmm11
vpxor %xmm12, %xmm11, %xmm13
vpermq $0x14, %ymm13, %ymm13   # ymm13 = ymm13[0,1,1,0]
vpermt2q %ymm11, %ymm0, %ymm12
vpxor %ymm12, %ymm13, %ymm11
vpaddq %ymm10, %ymm11, %ymm11
vmovdqu %ymm11, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r14,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r12, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %r12
movq %r14, %rcx
xorq %r8, %rcx
movq %rcx, %rdx
xorq %r12, %rdx
xorq %rdi, %rcx
xorq %rdi, %r12
xorq %r12, %r14
xorq %r8, %r12
movq 0x20(%rax,%rbx), %rdi
movq 0x30(%rax,%rbx), %rsi
movq 0x38(%rax,%rbx), %r8
leaq (%rsi,%rdi), %r9
leaq (%r11,%r8), %r10
addq %r9, %r10
movq 0x28(%rax,%rbx), %r11
addq %r8, %rsi
movabsq $0x6a696665635c5a59, %rbp # imm = 0x6A696665635C5A59
addq %r11, %rbp
addq %rbp, %rsi
movabsq $0x5655534e4d4b473c, %rbp # imm = 0x5655534E4D4B473C
addq %r11, %rbp
addq %r9, %rbp
rorxq $0x29, %rsi, %rsi
rorxq $0x1b, %rbp, %r9
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
addq %rdi, %r8
movabsq $0x3a393635332e2d2b, %rdi # imm = 0x3A393635332E2D2B
addq %rdi, %r11
addq %r8, %r11
rorxq $0x5, %r11, %rdi
movq %rdi, %r8
xorq %r9, %r8
movq %r8, %r11
xorq %rsi, %r11
addq %rdx, %r11
rorxq $0x35, %r10, %rdx
xorq %rdx, %r8
addq %rcx, %r8
xorq %rdx, %rsi
xorq %rsi, %rdi
addq %r14, %rdi
movabsq $-0x2e333536393a3c48, %r14 # imm = 0xD1CCCAC9C6C5C3B8
xorq %r9, %rsi
addq %r12, %rsi
movabsq $-0x5c636566696a6c72, %r12 # imm = 0xA39C9A999695938E
movq %r11, 0x18(%rax,%rbx)
movq %r15, %r11
movq %r8, (%rax,%rbx)
movq %rdi, 0x8(%rax,%rbx)
movq %rsi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x3b66
movb $0x1, %cl
xorl %edx, %edx
movq 0x48(%rsp), %r9
movq 0x38(%rsp), %r10
movq %r14, %r15
movq %r13, %r14
shlq $0x3, %rdx
addq %rax, %rdx
leaq (%r9,%r13,8), %rsi
leaq (%r10,%r13,8), %rdi
xorl %ebx, %ebx
movq (%rsi,%rbx), %r8
xorq (%rdx,%rbx), %r8
movq %r8, (%rdx,%rbx)
movq %r8, (%rdi,%rbx)
incq %r13
addq $0x8, %rbx
cmpq $0x20, %rbx
jne 0x3cce
movl $0x8, %edx
testb $0x1, %cl
movl $0x0, %ecx
jne 0x3cba
movq %r14, 0x40(%rsp)
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
vmovdqu 0x8(%rax), %xmm11
leaq (%rdx,%rcx), %rdi
vpbroadcastq %rdi, %xmm12
vpinsrq $0x1, %rsi, %xmm11, %xmm11
vpaddq %xmm11, %xmm12, %xmm11
vpaddq %xmm1, %xmm11, %xmm11
vprolvq %xmm2, %xmm11, %xmm11
vpbroadcastq %rsi, %xmm12
vmovq %rdx, %xmm13
vmovq %rcx, %xmm14
vpunpcklqdq %xmm13, %xmm14, %xmm13 # xmm13 = xmm14[0],xmm13[0]
vpaddq %xmm13, %xmm12, %xmm12
vpaddq 0x8(%rax){1to2}, %xmm12, %xmm12
vpaddq %xmm3, %xmm12, %xmm12
vprolvq %xmm4, %xmm12, %xmm12
vpxor %xmm11, %xmm12, %xmm13
vpermq $0x14, %ymm13, %ymm13   # ymm13 = ymm13[0,1,1,0]
vpermt2q %ymm12, %ymm0, %ymm11
vpxor %ymm11, %ymm13, %ymm11
vpaddq %ymm5, %ymm11, %ymm11
vmovdqu %ymm11, (%rax)
xorl %r12d, %r12d
movq %rbp, %r14
movabsq $-0x5c636566696a6c72, %r11 # imm = 0xA39C9A999695938E
movq (%rax,%r12), %rcx
movq 0x8(%rax,%r12), %rsi
movq 0x10(%rax,%r12), %rdi
leaq (%rsi,%rcx), %rdx
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rdi, %r8
addq %rdx, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%r12), %r9
leaq (%r15,%r9), %r10
addq %rdx, %r10
rorxq $0x2d, %r10, %rdx
addq %rdi, %rcx
addq %r14, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %r10
addq %rsi, %rdi
addq %r11, %r9
addq %rdi, %r9
rorxq $0xb, %r9, %rcx
movq %rdx, %rbp
xorq %r8, %rbp
movq %rbp, %rsi
xorq %rcx, %rsi
xorq %r10, %rbp
xorq %r10, %rcx
xorq %rcx, %rdx
xorq %r8, %rcx
movq 0x20(%rax,%r12), %r8
movq 0x30(%rax,%r12), %rdi
movq 0x38(%rax,%r12), %r9
leaq (%rdi,%r8), %r10
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
addq %r9, %r11
addq %r10, %r11
movq 0x28(%rax,%r12), %r15
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %r14 # imm = 0x6A696665635C5A59
addq %r15, %r14
addq %r14, %rdi
movabsq $0x5655534e4d4b473c, %r14 # imm = 0x5655534E4D4B473C
addq %r15, %r14
addq %r10, %r14
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r14, %r10
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r15
addq %r9, %r15
rorxq $0x5, %r15, %r8
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r14
xorq %rdi, %r14
addq %rsi, %r14
rorxq $0x35, %r11, %rsi
movabsq $-0x5c636566696a6c72, %r11 # imm = 0xA39C9A999695938E
xorq %rsi, %r9
addq %rbp, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %rdx, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r14, 0x38(%rax,%r12)
movabsq $-0x4b4d4e535556595b, %r14 # imm = 0xB4B2B1ACAAA9A6A5
movq %r9, 0x20(%rax,%r12)
movq %r8, 0x28(%rax,%r12)
movq %rdi, 0x30(%rax,%r12)
addq $0x20, %r12
cmpq $0x60, %r12
jne 0x3d87
vmovdqu 0x68(%rax), %xmm11
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm12
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm11, %xmm12, %xmm12 # xmm12 = xmm12[0],xmm11[0]
vpaddq %xmm12, %xmm11, %xmm11
vpinsrq $0x1, %rcx, %xmm11, %xmm12
vpaddq 0x70(%rax), %xmm12, %xmm12
vpaddq %xmm6, %xmm12, %xmm12
vprolvq %xmm7, %xmm12, %xmm12
vpaddq 0x78(%rax){1to2}, %xmm11, %xmm11
vpaddq %xmm8, %xmm11, %xmm11
vprolvq %xmm9, %xmm11, %xmm11
vpxor %xmm12, %xmm11, %xmm13
vpermq $0x14, %ymm13, %ymm13   # ymm13 = ymm13[0,1,1,0]
vpermt2q %ymm11, %ymm0, %ymm12
vpxor %ymm12, %ymm13, %ymm11
vpaddq %ymm10, %ymm11, %ymm11
vmovdqu %ymm11, 0x60(%rax)
movl $0x40, %r12d
movq (%rax,%r12), %rcx
movq 0x8(%rax,%r12), %rdx
movq 0x10(%rax,%r12), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%r12), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %rbp
addq %rsi, %rcx
addq %r14, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r11, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %rbp, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %rbp
xorq %r8, %rcx
movq 0x20(%rax,%r12), %r8
movq 0x30(%rax,%r12), %rdi
movq 0x38(%rax,%r12), %r9
leaq (%rdi,%r8), %r10
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
addq %r9, %r11
addq %r10, %r11
movq 0x28(%rax,%r12), %r14
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %r15 # imm = 0x6A696665635C5A59
addq %r14, %r15
addq %r15, %rdi
movabsq $0x5655534e4d4b473c, %r15 # imm = 0x5655534E4D4B473C
addq %r14, %r15
addq %r10, %r15
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r15, %r10
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r14
addq %r9, %r14
rorxq $0x5, %r14, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r14
xorq %rdi, %r14
addq %rsi, %r14
rorxq $0x35, %r11, %rsi
movabsq $-0x5c636566696a6c72, %r11 # imm = 0xA39C9A999695938E
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %rbp, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r14, 0x18(%rax,%r12)
movabsq $-0x4b4d4e535556595b, %r14 # imm = 0xB4B2B1ACAAA9A6A5
movq %r9, (%rax,%r12)
movq %r8, 0x8(%rax,%r12)
movq %rdi, 0x10(%rax,%r12)
addq $-0x20, %r12
cmpq $-0x20, %r12
jne 0x3f3a
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
vmovdqu (%rax,%rsi,8), %ymm11
vpaddq (%rcx), %ymm11, %ymm11
vmovdqu %ymm11, (%rcx)
addq $0x20, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x408f
movq 0x10(%rsp), %rcx
incq %rcx
cmpq 0x28(%rsp), %rcx
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
movq 0x8(%rsp), %rdx
movq 0x40(%rsp), %rsi
jne 0x38f2
leaq (%rbx,%rsi,8), %r8
movq 0x30(%rsp), %rsi
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
vmovups 0x50(%rsp), %ymm1
vmovups 0x70(%rsp), %ymm2
vmovups 0x90(%rsp), %ymm3
vmovups 0xb0(%rsp), %ymm4
vmovups %ymm1, (%rax)
incq %rdx
xorq (%rax), %rdx
movq 0x10(%rax), %rcx
addq %rdx, %rcx
vmovups %ymm4, 0x60(%rax)
vmovups %ymm3, 0x40(%rax)
vmovups %ymm2, 0x20(%rax)
vmovdqa 0x10(%rax), %xmm1
vpbroadcastq %rcx, %xmm2
vpblendd $0x3, 0x8(%rax), %xmm1, %xmm3 # xmm3 = mem[0,1],xmm1[2,3]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x4ebb(%rip), %xmm2, %xmm2 # 0x9000
vprolvq 0x4ec1(%rip), %xmm2, %xmm2 # 0x9010
vpinsrq $0x0, %rdx, %xmm1, %xmm3
vpshufd $0x4e, %xmm1, %xmm1     # xmm1 = xmm1[2,3,0,1]
vpaddq %xmm3, %xmm1, %xmm1
vpaddq 0x8(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x4eb3(%rip), %xmm1, %xmm1 # 0x9020
movq %rsi, %rcx
vprolvq 0x4eb6(%rip), %xmm1, %xmm1 # 0x9030
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x4f0a(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
andq $0x3f, %rcx
je 0x48c1
movq %rcx, 0x10(%rsp)
movq %r8, 0x8(%rsp)
movq %r15, %rbx
xorl %r15d, %r15d
movabsq $0x3a393635332e2d2b, %r14 # imm = 0x3A393635332E2D2B
movq (%rax,%r15), %rcx
movq 0x8(%rax,%r15), %rdx
movq 0x10(%rax,%r15), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%r15), %r9
leaq (%rbx,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r12
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r12, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r12
xorq %r8, %rcx
movq 0x20(%rax,%r15), %r8
movq 0x30(%rax,%r15), %rdi
movq 0x38(%rax,%r15), %r9
leaq (%rdi,%r8), %r10
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
addq %r9, %r11
addq %r10, %r11
movq 0x28(%rax,%r15), %r13
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %rbp # imm = 0x6A696665635C5A59
addq %r13, %rbp
addq %rbp, %rdi
movabsq $0x5655534e4d4b473c, %rbp # imm = 0x5655534E4D4B473C
addq %r13, %rbp
addq %r10, %rbp
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %rbp, %r10
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
addq %r8, %r9
addq %r14, %r13
addq %r9, %r13
rorxq $0x5, %r13, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r13
xorq %rdi, %r13
addq %rsi, %r13
rorxq $0x35, %r11, %rsi
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r12, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r13, 0x38(%rax,%r15)
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
movq %r9, 0x20(%rax,%r15)
movq %r8, 0x28(%rax,%r15)
movq %rdi, 0x30(%rax,%r15)
addq $0x20, %r15
cmpq $0x60, %r15
jne 0x41be
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x4d1f(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x4d25(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x4d26(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x4d2c(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x4d60(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %r15d
movq (%rax,%r15), %rcx
movq 0x8(%rax,%r15), %rdx
movq 0x10(%rax,%r15), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%r15), %r9
leaq (%rbx,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r12
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r12, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r12
xorq %r8, %rcx
movq 0x20(%rax,%r15), %r8
movq 0x30(%rax,%r15), %rdi
movq 0x38(%rax,%r15), %r9
leaq (%rdi,%r8), %r10
movabsq $-0x727478878b8d8e94, %r11 # imm = 0x8D8B87787472716C
addq %r9, %r11
addq %r10, %r11
movq 0x28(%rax,%r15), %r13
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %rbp # imm = 0x6A696665635C5A59
addq %r13, %rbp
addq %rbp, %rdi
movabsq $0x5655534e4d4b473c, %rbp # imm = 0x5655534E4D4B473C
addq %r13, %rbp
addq %r10, %rbp
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %rbp, %r10
movabsq $-0x4b4d4e535556595b, %rbp # imm = 0xB4B2B1ACAAA9A6A5
addq %r8, %r9
addq %r14, %r13
addq %r9, %r13
rorxq $0x5, %r13, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r13
xorq %rdi, %r13
addq %rsi, %r13
rorxq $0x35, %r11, %rsi
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r12, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r13, 0x18(%rax,%r15)
movabsq $-0x5c636566696a6c72, %r13 # imm = 0xA39C9A999695938E
movq %r9, (%rax,%r15)
movq %r8, 0x8(%rax,%r15)
movq %rdi, 0x10(%rax,%r15)
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x436b
movq 0x48(%rsp), %r8
movq 0x8(%rsp), %rdx
addq %rdx, %r8
movq 0x20(%rsp), %rcx
addq %rcx, %rdx
addq $0x40, %rdx
xorl %ecx, %ecx
xorl %esi, %esi
movq 0x10(%rsp), %r9
movb (%r8,%rsi), %dil
xorb (%rax,%rcx), %dil
movb %dil, (%rax,%rcx)
movb %dil, (%rdx,%rsi)
leaq 0x1(%rcx), %rdi
addq $0x21, %rcx
testb $0x1f, %dil
cmovneq %rdi, %rcx
incq %rsi
cmpq %rsi, %r9
jne 0x44c2
xorb $0x1, (%rax,%rcx)
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
leaq (%rdx,%rcx), %rdi
vmovdqu 0x8(%rax), %xmm1
vpbroadcastq %rdi, %xmm2
vpinsrq $0x1, %rsi, %xmm1, %xmm1
vpaddq %xmm1, %xmm2, %xmm1
vpaddq 0x4ae6(%rip), %xmm1, %xmm1 # 0x9000
vprolvq 0x4aec(%rip), %xmm1, %xmm1 # 0x9010
vpbroadcastq %rsi, %xmm2
vmovq %rdx, %xmm3
vmovq %rcx, %xmm4
vpunpcklqdq %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x8(%rax){1to2}, %xmm2, %xmm2
vpaddq 0x4ad5(%rip), %xmm2, %xmm2 # 0x9020
vprolvq 0x4adb(%rip), %xmm2, %xmm2 # 0x9030
vpxor %xmm1, %xmm2, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm2, %ymm0, %ymm1
vpxor %ymm1, %ymm3, %ymm1
vpaddq 0x4b2f(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movabsq $-0x2e333536393a3c48, %r10 # imm = 0xD1CCCAC9C6C5C3B8
movabsq $-0x4b4d4e535556595b, %r11 # imm = 0xB4B2B1ACAAA9A6A5
movabsq $-0x5c636566696a6c72, %r15 # imm = 0xA39C9A999695938E
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
movq %r10, %r13
addq %r9, %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %r11, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r15, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r14, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r14
xorq %r8, %rcx
movq 0x20(%rax,%rbx), %r8
movq 0x30(%rax,%rbx), %rdi
movq 0x38(%rax,%rbx), %r9
leaq (%rdi,%r8), %r10
leaq (%r12,%r9), %r11
addq %r10, %r11
movq 0x28(%rax,%rbx), %r15
addq %r9, %rdi
movq %r12, %rbp
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r15, %r12
addq %r12, %rdi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r15, %r12
addq %r10, %r12
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r12, %r10
movq %rbp, %r12
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r15
addq %r9, %r15
rorxq $0x5, %r15, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r15
xorq %rdi, %r15
addq %rsi, %r15
rorxq $0x35, %r11, %rsi
movabsq $-0x4b4d4e535556595b, %r11 # imm = 0xB4B2B1ACAAA9A6A5
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r14, %r8
xorq %r10, %rdi
movq %r13, %r10
addq %rcx, %rdi
movq %r15, 0x38(%rax,%rbx)
movabsq $-0x5c636566696a6c72, %r15 # imm = 0xA39C9A999695938E
movq %r9, 0x20(%rax,%rbx)
movq %r8, 0x28(%rax,%rbx)
movq %rdi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x459f
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x4932(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x4938(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x4939(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x493f(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermi2q %ymm1, %ymm2, %ymm0
vpxor %ymm0, %ymm3, %ymm0
vpaddq 0x4973(%rip), %ymm0, %ymm0 # 0x90c0
vmovdqu %ymm0, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r9,%r13), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %r11, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r15, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r14, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r14
xorq %r8, %rcx
movq 0x20(%rax,%rbx), %r8
movq 0x30(%rax,%rbx), %rdi
movq 0x38(%rax,%rbx), %r9
leaq (%rdi,%r8), %r10
leaq (%r12,%r9), %r11
addq %r10, %r11
movq 0x28(%rax,%rbx), %r15
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r15, %r12
addq %r12, %rdi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r15, %r12
addq %r10, %r12
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r12, %r10
movq %rbp, %r12
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r15
addq %r9, %r15
rorxq $0x5, %r15, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r15
xorq %rdi, %r15
addq %rsi, %r15
rorxq $0x35, %r11, %rsi
movabsq $-0x4b4d4e535556595b, %r11 # imm = 0xB4B2B1ACAAA9A6A5
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r14, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r15, 0x18(%rax,%rbx)
movabsq $-0x5c636566696a6c72, %r15 # imm = 0xA39C9A999695938E
movq %r9, (%rax,%rbx)
movq %r8, 0x8(%rax,%rbx)
movq %rdi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x4757
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
vmovdqu (%rax,%rsi,8), %ymm0
vpaddq (%rcx), %ymm0, %ymm0
vmovdqu %ymm0, (%rcx)
addq $0x20, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x489c
jmp 0x4f4b
xorl %ebx, %ebx
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r14, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r14
xorq %r8, %rcx
movq 0x20(%rax,%rbx), %r8
movq 0x30(%rax,%rbx), %rdi
movq 0x38(%rax,%rbx), %r9
leaq (%rdi,%r8), %r10
leaq (%r12,%r9), %r11
addq %r10, %r11
movq 0x28(%rax,%rbx), %r15
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r15, %r12
addq %r12, %rdi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r15, %r12
addq %r10, %r12
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r12, %r10
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r15
addq %r9, %r15
rorxq $0x5, %r15, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r15
xorq %rdi, %r15
addq %rsi, %r15
rorxq $0x35, %r11, %rsi
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r14, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r15, 0x38(%rax,%rbx)
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r9, 0x20(%rax,%rbx)
movq %r8, 0x28(%rax,%rbx)
movq %rdi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x48cd
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x460f(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x4615(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x4616(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x461c(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm1, %ymm0, %ymm2
vpxor %ymm2, %ymm3, %ymm1
vpaddq 0x4650(%rip), %ymm1, %ymm1 # 0x90c0
vmovdqu %ymm1, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r14, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r14
xorq %r8, %rcx
movq 0x20(%rax,%rbx), %r8
movq 0x30(%rax,%rbx), %rdi
movq 0x38(%rax,%rbx), %r9
leaq (%rdi,%r8), %r10
leaq (%r12,%r9), %r11
addq %r10, %r11
movq 0x28(%rax,%rbx), %r15
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r15, %r12
addq %r12, %rdi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r15, %r12
addq %r10, %r12
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r12, %r10
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r15
addq %r9, %r15
rorxq $0x5, %r15, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r15
xorq %rdi, %r15
addq %rsi, %r15
rorxq $0x35, %r11, %rsi
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r14, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r15, 0x18(%rax,%rbx)
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r9, (%rax,%rbx)
movq %r8, 0x8(%rax,%rbx)
movq %rdi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x4a7a
xorb $0x1, (%rax)
movq (%rax), %rcx
movq 0x10(%rax), %rdx
movq 0x18(%rax), %rsi
leaq (%rdx,%rcx), %rdi
vmovdqu 0x8(%rax), %xmm1
vpbroadcastq %rdi, %xmm2
vpinsrq $0x1, %rsi, %xmm1, %xmm1
vpaddq %xmm1, %xmm2, %xmm1
vpaddq 0x4421(%rip), %xmm1, %xmm1 # 0x9000
vprolvq 0x4427(%rip), %xmm1, %xmm1 # 0x9010
vpbroadcastq %rsi, %xmm2
vmovq %rdx, %xmm3
vmovq %rcx, %xmm4
vpunpcklqdq %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0]
vpaddq %xmm3, %xmm2, %xmm2
vpaddq 0x8(%rax){1to2}, %xmm2, %xmm2
vpaddq 0x4410(%rip), %xmm2, %xmm2 # 0x9020
vprolvq 0x4416(%rip), %xmm2, %xmm2 # 0x9030
vpxor %xmm1, %xmm2, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermt2q %ymm2, %ymm0, %ymm1
vpxor %ymm1, %ymm3, %ymm1
vpaddq 0x446a(%rip), %ymm1, %ymm1 # 0x90a0
vmovdqu %ymm1, (%rax)
xorl %ebx, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r14, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r14
xorq %r8, %rcx
movq 0x20(%rax,%rbx), %r8
movq 0x30(%rax,%rbx), %rdi
movq 0x38(%rax,%rbx), %r9
leaq (%rdi,%r8), %r10
leaq (%r12,%r9), %r11
addq %r10, %r11
movq 0x28(%rax,%rbx), %r15
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r15, %r12
addq %r12, %rdi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r15, %r12
addq %r10, %r12
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r12, %r10
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r15
addq %r9, %r15
rorxq $0x5, %r15, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r15
xorq %rdi, %r15
addq %rsi, %r15
rorxq $0x35, %r11, %rsi
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r14, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r15, 0x38(%rax,%rbx)
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r9, 0x20(%rax,%rbx)
movq %r8, 0x28(%rax,%rbx)
movq %rdi, 0x30(%rax,%rbx)
addq $0x20, %rbx
cmpq $0x60, %rbx
jne 0x4c3c
vmovdqu 0x68(%rax), %xmm1
movq 0x60(%rax), %rcx
vmovq %rcx, %xmm2
addq 0x70(%rax), %rcx
vpunpcklqdq %xmm1, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm1[0]
vpaddq %xmm2, %xmm1, %xmm1
vpinsrq $0x1, %rcx, %xmm1, %xmm2
vpaddq 0x70(%rax), %xmm2, %xmm2
vpaddq 0x42a0(%rip), %xmm2, %xmm2 # 0x9040
vprolvq 0x42a6(%rip), %xmm2, %xmm2 # 0x9050
vpaddq 0x78(%rax){1to2}, %xmm1, %xmm1
vpaddq 0x42a7(%rip), %xmm1, %xmm1 # 0x9060
vprolvq 0x42ad(%rip), %xmm1, %xmm1 # 0x9070
vpxor %xmm2, %xmm1, %xmm3
vpermq $0x14, %ymm3, %ymm3     # ymm3 = ymm3[0,1,1,0]
vpermi2q %ymm1, %ymm2, %ymm0
vpxor %ymm0, %ymm3, %ymm0
vpaddq 0x42e1(%rip), %ymm0, %ymm0 # 0x90c0
vmovdqu %ymm0, 0x60(%rax)
movl $0x40, %ebx
movq (%rax,%rbx), %rcx
movq 0x8(%rax,%rbx), %rdx
movq 0x10(%rax,%rbx), %rsi
leaq (%rdx,%rcx), %rdi
movabsq $-0xf171b1d1e272b2e, %r8 # imm = 0xF0E8E4E2E1D8D4D2
addq %rsi, %r8
addq %rdi, %r8
rorxq $0x39, %r8, %r8
movq 0x18(%rax,%rbx), %r9
leaq (%r15,%r9), %r10
addq %rdi, %r10
rorxq $0x2d, %r10, %r14
addq %rsi, %rcx
addq %rbp, %rcx
addq %r9, %rcx
rorxq $0x21, %rcx, %rdi
addq %rdx, %rsi
addq %r13, %r9
addq %rsi, %r9
rorxq $0xb, %r9, %rcx
movq %r14, %rdx
xorq %r8, %rdx
movq %rdx, %rsi
xorq %rcx, %rsi
xorq %rdi, %rdx
xorq %rdi, %rcx
xorq %rcx, %r14
xorq %r8, %rcx
movq 0x20(%rax,%rbx), %r8
movq 0x30(%rax,%rbx), %rdi
movq 0x38(%rax,%rbx), %r9
leaq (%rdi,%r8), %r10
leaq (%r12,%r9), %r11
addq %r10, %r11
movq 0x28(%rax,%rbx), %r15
addq %r9, %rdi
movabsq $0x6a696665635c5a59, %r12 # imm = 0x6A696665635C5A59
addq %r15, %r12
addq %r12, %rdi
movabsq $0x5655534e4d4b473c, %r12 # imm = 0x5655534E4D4B473C
addq %r15, %r12
addq %r10, %r12
rorxq $0x29, %rdi, %rdi
rorxq $0x1b, %r12, %r10
movabsq $-0x727478878b8d8e94, %r12 # imm = 0x8D8B87787472716C
addq %r8, %r9
movabsq $0x3a393635332e2d2b, %r8 # imm = 0x3A393635332E2D2B
addq %r8, %r15
addq %r9, %r15
rorxq $0x5, %r15, %r8
movq %r8, %r9
xorq %r10, %r9
movq %r9, %r15
xorq %rdi, %r15
addq %rsi, %r15
rorxq $0x35, %r11, %rsi
xorq %rsi, %r9
addq %rdx, %r9
xorq %rsi, %rdi
xorq %rdi, %r8
addq %r14, %r8
xorq %r10, %rdi
addq %rcx, %rdi
movq %r15, 0x18(%rax,%rbx)
movabsq $-0x2e333536393a3c48, %r15 # imm = 0xD1CCCAC9C6C5C3B8
movq %r9, (%rax,%rbx)
movq %r8, 0x8(%rax,%rbx)
movq %rdi, 0x10(%rax,%rbx)
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x4de9
movb $0x1, %dl
leaq 0xe0(%rsp), %rcx
xorl %esi, %esi
vmovdqu (%rax,%rsi,8), %ymm0
vpaddq (%rcx), %ymm0, %ymm0
vmovdqu %ymm0, (%rcx)
addq $0x20, %rcx
movl $0x8, %esi
testb $0x1, %dl
movl $0x0, %edx
jne 0x4f2b
movq 0x20(%rsp), %rax
movq 0x30(%rsp), %rbx
leaq (%rax,%rbx), %rdi
addq $0x40, %rdi
leaq 0xe0(%rsp), %rsi
movl $0x2000, %edx           # imm = 0x2000
vzeroupper
callq 0x1070
addq $0x2040, %rbx           # imm = 0x2040
movq 0xd8(%rsp), %rax
movq %rbx, (%rax)
xorl %eax, %eax
addq $0x20e8, %rsp           # imm = 0x20E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq