// File: /workspace/github_c_makefile_star2_O0/nh13[P]ksw/src/ksw2/ksw2_gg2_sse.c
// Function: ksw_gg2_sse
int ksw_gg2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat, int8_t q, int8_t e, int w, int *m_cigar_, int *n_cigar_, uint32_t **cigar_)
{
	int r, t, n_col, n_col_, *off, tlen_, last_st, last_en, H0 = 0, last_H0_t = 0;
	uint8_t *qr, *mem, *mem2;
	__m128i *u, *v, *x, *y, *s, *p;
	__m128i q_, qe2_, zero_, flag1_, flag2_, flag8_, flag16_;

	zero_   = _mm_set1_epi8(0);
	q_      = _mm_set1_epi8(q);
	qe2_    = _mm_set1_epi8((q + e) * 2);
	flag1_  = _mm_set1_epi8(1);
	flag2_  = _mm_set1_epi8(2);
	flag8_  = _mm_set1_epi8(0x08);
	flag16_ = _mm_set1_epi8(0x10);

	if (w < 0) w = tlen > qlen? tlen : qlen;
	n_col = w + 1 < tlen? w + 1 : tlen; // number of columns in the backtrack matrix
	tlen_ = (tlen + 15) / 16;
	n_col_ = (n_col + 15) / 16 + 1;
	n_col = n_col_ * 16;

	mem = (uint8_t*)kcalloc(km, tlen_ * 5 + 1, 16);
	u = (__m128i*)(((size_t)mem + 15) >> 4 << 4); // 16-byte aligned
	v = u + tlen_, x = v + tlen_, y = x + tlen_, s = y + tlen_;
	qr = (uint8_t*)kcalloc(km, qlen, 1);
	mem2 = (uint8_t*)kmalloc(km, ((qlen + tlen - 1) * n_col_ + 1) * 16);
	p = (__m128i*)(((size_t)mem2 + 15) >> 4 << 4);
	off = (int*)kmalloc(km, (qlen + tlen - 1) * sizeof(int));

	for (t = 0; t < qlen; ++t)
		qr[t] = query[qlen - 1 - t];

	for (r = 0, last_st = last_en = -1; r < qlen + tlen - 1; ++r) {
		int st = 0, en = tlen - 1, st0, en0, st_, en_;
		int8_t x1, v1;
		__m128i x1_, v1_, *pr;
		// find the boundaries
		if (st < r - qlen + 1) st = r - qlen + 1;
		if (en > r) en = r;
		if (st < (r-w+1)>>1) st = (r-w+1)>>1; // take the ceil
		if (en > (r+w)>>1) en = (r+w)>>1; // take the floor
		st0 = st, en0 = en;
		st = st / 16 * 16, en = (en + 16) / 16 * 16 - 1;
		off[r] = st;
		// set boundary conditions
		if (st > 0) {
			if (st - 1 >= last_st && st - 1 <= last_en)
				x1 = ((uint8_t*)x)[st - 1], v1 = ((uint8_t*)v)[st - 1]; // (r-1,s-1) calculated in the last round
			else x1 = v1 = 0; // not calculated; set to zeros
		} else x1 = 0, v1 = r? q : 0;
		if (en >= r) ((uint8_t*)y)[r] = 0, ((uint8_t*)u)[r] = r? q : 0;
		// loop fission: set scores first
		for (t = st0; t <= en0; ++t)
			((uint8_t*)s)[t] = mat[target[t] * m + qr[t + qlen - 1 - r]];
		// core loop
		x1_ = _mm_cvtsi32_si128(x1);
		v1_ = _mm_cvtsi32_si128(v1);
		st_ = st>>4, en_ = en>>4;
		pr = p + r * n_col_ - st_;
		for (t = st_; t <= en_; ++t) {
			__m128i d, z, a, b, xt1, vt1, ut, tmp;

			z = _mm_add_epi8(_mm_load_si128(&s[t]), qe2_);

			xt1 = _mm_load_si128(&x[t]);          // xt1 <- x[r-1][t..t+15]
			tmp = _mm_srli_si128(xt1, 15);                   // tmp <- x[r-1][t+15]
			xt1 = _mm_or_si128(_mm_slli_si128(xt1, 1), x1_); // xt1 <- x[r-1][t-1..t+14]
			x1_ = tmp;
			vt1 = _mm_load_si128(&v[t]);          // vt1 <- v[r-1][t..t+15]
			tmp = _mm_srli_si128(vt1, 15);                   // tmp <- v[r-1][t+15]
			vt1 = _mm_or_si128(_mm_slli_si128(vt1, 1), v1_); // vt1 <- v[r-1][t-1..t+14]
			v1_ = tmp;
			a = _mm_add_epi8(xt1, vt1);                      // a <- x[r-1][t-1..t+14] + v[r-1][t-1..t+14]

			ut = _mm_load_si128(&u[t]);           // ut <- u[t..t+15]
			b = _mm_add_epi8(_mm_load_si128(&y[t]), ut); // b <- y[r-1][t..t+15] + u[r-1][t..t+15]

			d = _mm_and_si128(_mm_cmpgt_epi8(a, z), flag1_); // d = a > z? 1 : 0
#ifdef __SSE4_1__
			z = _mm_max_epi8(z, a);                          // z = z > a? z : a (signed)
			tmp = _mm_cmpgt_epi8(b, z);
			d = _mm_blendv_epi8(d, flag2_, tmp);             // d = b > z? 2 : d
#else // we need to emulate SSE4.1 intrinsics _mm_max_epi8() and _mm_blendv_epi8()
			z = _mm_and_si128(z, _mm_cmpgt_epi8(z, zero_));  // z = z > 0? z : 0;
			z = _mm_max_epu8(z, a);                          // z = max(z, a); this works because both are non-negative
			tmp = _mm_cmpgt_epi8(b, z);
			d = _mm_or_si128(_mm_andnot_si128(tmp, d), _mm_and_si128(tmp, flag2_)); // d = b > z? 2 : d; emulating blendv
#endif
			z = _mm_max_epu8(z, b);                          // z = max(z, b); this works because both are non-negative
			_mm_store_si128(&u[t], _mm_sub_epi8(z, vt1)); // u[r][t..t+15] <- z - v[r-1][t-1..t+14]
			_mm_store_si128(&v[t], _mm_sub_epi8(z, ut));  // v[r][t..t+15] <- z - u[r-1][t..t+15]

			z = _mm_sub_epi8(z, q_);
			a = _mm_sub_epi8(a, z);
			b = _mm_sub_epi8(b, z);
			tmp = _mm_cmpgt_epi8(a, zero_);
			d = _mm_or_si128(d, _mm_and_si128(flag8_,  tmp));
			_mm_store_si128(&x[t], _mm_and_si128(a, tmp));
			tmp = _mm_cmpgt_epi8(b, zero_);
			d = _mm_or_si128(d, _mm_and_si128(flag16_, tmp));
			_mm_store_si128(&y[t], _mm_and_si128(b, tmp));
			_mm_store_si128(&pr[t], d);
		}
		if (r > 0) {
			if (last_H0_t >= st0 && last_H0_t <= en0)
				H0 += ((uint8_t*)v)[last_H0_t] - (q + e);
			else ++last_H0_t, H0 += ((uint8_t*)u)[last_H0_t] - (q + e);
		} else H0 = ((uint8_t*)v)[0] - 2 * (q + e), last_H0_t = 0;
		last_st = st, last_en = en;
		//for (t = st0; t <= en0; ++t) printf("(%d,%d)\t(%d,%d,%d,%d)\t%x\n", r, t, ((uint8_t*)u)[t], ((uint8_t*)v)[t], ((uint8_t*)x)[t], ((uint8_t*)y)[t], ((uint8_t*)(p + r * n_col_))[t-st]); // for debugging
	}
	kfree(km, mem); kfree(km, qr);
	ksw_backtrack(km, 1, 0, 0, (uint8_t*)p, off, 0, n_col, tlen-1, qlen-1, m_cigar_, n_cigar_, cigar_);
	kfree(km, mem2); kfree(km, off);
	return H0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x7b8, %rsp            # imm = 0x7B8
movb %r9b, %al
movq 0x40(%rbp), %r9
movq 0x38(%rbp), %r9
movq 0x30(%rbp), %r9
movl 0x28(%rbp), %r9d
movb 0x20(%rbp), %r9b
movb 0x18(%rbp), %r9b
movq 0x10(%rbp), %r9
movq %rdi, -0x5a0(%rbp)
movl %esi, -0x5a4(%rbp)
movq %rdx, -0x5b0(%rbp)
movl %ecx, -0x5b4(%rbp)
movq %r8, -0x5c0(%rbp)
movb %al, -0x5c1(%rbp)
movl $0x0, -0x5f0(%rbp)
movl $0x0, -0x5f4(%rbp)
movb $0x0, -0x591(%rbp)
movb -0x591(%rbp), %al
movb %al, -0x787(%rbp)
movb %al, -0xe1(%rbp)
movb %al, -0xe2(%rbp)
movb %al, -0xe3(%rbp)
movb %al, -0xe4(%rbp)
movb %al, -0xe5(%rbp)
movb %al, -0xe6(%rbp)
movb %al, -0xe7(%rbp)
movb %al, -0xe8(%rbp)
movb %al, -0xe9(%rbp)
movb %al, -0xea(%rbp)
movb %al, -0xeb(%rbp)
movb %al, -0xec(%rbp)
movb %al, -0xed(%rbp)
movb %al, -0xee(%rbp)
movb %al, -0xef(%rbp)
movb %al, -0xf0(%rbp)
movzbl -0xe1(%rbp), %eax
movd %eax, %xmm0
movzbl -0xe2(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
movzbl -0xe3(%rbp), %eax
movd %eax, %xmm2
movzbl -0xe4(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movzbl -0xe5(%rbp), %eax
movd %eax, %xmm1
movzbl -0xe6(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]
movzbl -0xe7(%rbp), %eax
movd %eax, %xmm3
movzbl -0xe8(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
punpcklwd %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movzbl -0xe9(%rbp), %eax
movd %eax, %xmm2
movzbl -0xea(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
movzbl -0xeb(%rbp), %eax
movd %eax, %xmm3
movzbl -0xec(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
punpcklwd %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]
movzbl -0xed(%rbp), %eax
movd %eax, %xmm0
movzbl -0xee(%rbp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]
movzbl -0xef(%rbp), %eax
movd %eax, %xmm4
movzbl -0xf0(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movaps %xmm0, -0x100(%rbp)
movaps -0x100(%rbp), %xmm0
movaps %xmm0, -0x670(%rbp)
movb 0x18(%rbp), %al
movb %al, -0x592(%rbp)
movb -0x592(%rbp), %al
movb %al, -0x786(%rbp)
movb %al, -0xc1(%rbp)
movb %al, -0xc2(%rbp)
movb %al, -0xc3(%rbp)
movb %al, -0xc4(%rbp)
movb %al, -0xc5(%rbp)
movb %al, -0xc6(%rbp)
movb %al, -0xc7(%rbp)
movb %al, -0xc8(%rbp)
movb %al, -0xc9(%rbp)
movb %al, -0xca(%rbp)
movb %al, -0xcb(%rbp)
movb %al, -0xcc(%rbp)
movb %al, -0xcd(%rbp)
movb %al, -0xce(%rbp)
movb %al, -0xcf(%rbp)
movb %al, -0xd0(%rbp)
movzbl -0xc1(%rbp), %eax
movd %eax, %xmm0
movzbl -0xc2(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
movzbl -0xc3(%rbp), %eax
movd %eax, %xmm2
movzbl -0xc4(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movzbl -0xc5(%rbp), %eax
movd %eax, %xmm1
movzbl -0xc6(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]
movzbl -0xc7(%rbp), %eax
movd %eax, %xmm3
movzbl -0xc8(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
punpcklwd %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movzbl -0xc9(%rbp), %eax
movd %eax, %xmm2
movzbl -0xca(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
movzbl -0xcb(%rbp), %eax
movd %eax, %xmm3
movzbl -0xcc(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
punpcklwd %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]
movzbl -0xcd(%rbp), %eax
movd %eax, %xmm0
movzbl -0xce(%rbp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]
movzbl -0xcf(%rbp), %eax
movd %eax, %xmm4
movzbl -0xd0(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movaps %xmm0, -0xe0(%rbp)
movaps -0xe0(%rbp), %xmm0
movaps %xmm0, -0x650(%rbp)
movzbl 0x18(%rbp), %eax
movzbl 0x20(%rbp), %ecx
addl %ecx, %eax
addb %al, %al
movb %al, -0x593(%rbp)
movb -0x593(%rbp), %al
movb %al, -0x785(%rbp)
movb %al, -0xa1(%rbp)
movb %al, -0xa2(%rbp)
movb %al, -0xa3(%rbp)
movb %al, -0xa4(%rbp)
movb %al, -0xa5(%rbp)
movb %al, -0xa6(%rbp)
movb %al, -0xa7(%rbp)
movb %al, -0xa8(%rbp)
movb %al, -0xa9(%rbp)
movb %al, -0xaa(%rbp)
movb %al, -0xab(%rbp)
movb %al, -0xac(%rbp)
movb %al, -0xad(%rbp)
movb %al, -0xae(%rbp)
movb %al, -0xaf(%rbp)
movb %al, -0xb0(%rbp)
movzbl -0xa1(%rbp), %eax
movd %eax, %xmm0
movzbl -0xa2(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
movzbl -0xa3(%rbp), %eax
movd %eax, %xmm2
movzbl -0xa4(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movzbl -0xa5(%rbp), %eax
movd %eax, %xmm1
movzbl -0xa6(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]
movzbl -0xa7(%rbp), %eax
movd %eax, %xmm3
movzbl -0xa8(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
punpcklwd %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movzbl -0xa9(%rbp), %eax
movd %eax, %xmm2
movzbl -0xaa(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
movzbl -0xab(%rbp), %eax
movd %eax, %xmm3
movzbl -0xac(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
punpcklwd %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]
movzbl -0xad(%rbp), %eax
movd %eax, %xmm0
movzbl -0xae(%rbp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]
movzbl -0xaf(%rbp), %eax
movd %eax, %xmm4
movzbl -0xb0(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movaps %xmm0, -0xc0(%rbp)
movaps -0xc0(%rbp), %xmm0
movaps %xmm0, -0x660(%rbp)
movb $0x1, -0x594(%rbp)
movb -0x594(%rbp), %al
movb %al, -0x784(%rbp)
movb %al, -0x81(%rbp)
movb %al, -0x82(%rbp)
movb %al, -0x83(%rbp)
movb %al, -0x84(%rbp)
movb %al, -0x85(%rbp)
movb %al, -0x86(%rbp)
movb %al, -0x87(%rbp)
movb %al, -0x88(%rbp)
movb %al, -0x89(%rbp)
movb %al, -0x8a(%rbp)
movb %al, -0x8b(%rbp)
movb %al, -0x8c(%rbp)
movb %al, -0x8d(%rbp)
movb %al, -0x8e(%rbp)
movb %al, -0x8f(%rbp)
movb %al, -0x90(%rbp)
movzbl -0x81(%rbp), %eax
movd %eax, %xmm0
movzbl -0x82(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
movzbl -0x83(%rbp), %eax
movd %eax, %xmm2
movzbl -0x84(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movzbl -0x85(%rbp), %eax
movd %eax, %xmm1
movzbl -0x86(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]
movzbl -0x87(%rbp), %eax
movd %eax, %xmm3
movzbl -0x88(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
punpcklwd %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movzbl -0x89(%rbp), %eax
movd %eax, %xmm2
movzbl -0x8a(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
movzbl -0x8b(%rbp), %eax
movd %eax, %xmm3
movzbl -0x8c(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
punpcklwd %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]
movzbl -0x8d(%rbp), %eax
movd %eax, %xmm0
movzbl -0x8e(%rbp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]
movzbl -0x8f(%rbp), %eax
movd %eax, %xmm4
movzbl -0x90(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movaps %xmm0, -0xa0(%rbp)
movaps -0xa0(%rbp), %xmm0
movaps %xmm0, -0x680(%rbp)
movb $0x2, -0x595(%rbp)
movb -0x595(%rbp), %al
movb %al, -0x783(%rbp)
movb %al, -0x61(%rbp)
movb %al, -0x62(%rbp)
movb %al, -0x63(%rbp)
movb %al, -0x64(%rbp)
movb %al, -0x65(%rbp)
movb %al, -0x66(%rbp)
movb %al, -0x67(%rbp)
movb %al, -0x68(%rbp)
movb %al, -0x69(%rbp)
movb %al, -0x6a(%rbp)
movb %al, -0x6b(%rbp)
movb %al, -0x6c(%rbp)
movb %al, -0x6d(%rbp)
movb %al, -0x6e(%rbp)
movb %al, -0x6f(%rbp)
movb %al, -0x70(%rbp)
movzbl -0x61(%rbp), %eax
movd %eax, %xmm0
movzbl -0x62(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
movzbl -0x63(%rbp), %eax
movd %eax, %xmm2
movzbl -0x64(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movzbl -0x65(%rbp), %eax
movd %eax, %xmm1
movzbl -0x66(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]
movzbl -0x67(%rbp), %eax
movd %eax, %xmm3
movzbl -0x68(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
punpcklwd %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movzbl -0x69(%rbp), %eax
movd %eax, %xmm2
movzbl -0x6a(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
movzbl -0x6b(%rbp), %eax
movd %eax, %xmm3
movzbl -0x6c(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
punpcklwd %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]
movzbl -0x6d(%rbp), %eax
movd %eax, %xmm0
movzbl -0x6e(%rbp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]
movzbl -0x6f(%rbp), %eax
movd %eax, %xmm4
movzbl -0x70(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movaps %xmm0, -0x80(%rbp)
movaps -0x80(%rbp), %xmm0
movaps %xmm0, -0x690(%rbp)
movb $0x8, -0x596(%rbp)
movb -0x596(%rbp), %al
movb %al, -0x782(%rbp)
movb %al, -0x41(%rbp)
movb %al, -0x42(%rbp)
movb %al, -0x43(%rbp)
movb %al, -0x44(%rbp)
movb %al, -0x45(%rbp)
movb %al, -0x46(%rbp)
movb %al, -0x47(%rbp)
movb %al, -0x48(%rbp)
movb %al, -0x49(%rbp)
movb %al, -0x4a(%rbp)
movb %al, -0x4b(%rbp)
movb %al, -0x4c(%rbp)
movb %al, -0x4d(%rbp)
movb %al, -0x4e(%rbp)
movb %al, -0x4f(%rbp)
movb %al, -0x50(%rbp)
movzbl -0x41(%rbp), %eax
movd %eax, %xmm0
movzbl -0x42(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
movzbl -0x43(%rbp), %eax
movd %eax, %xmm2
movzbl -0x44(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movzbl -0x45(%rbp), %eax
movd %eax, %xmm1
movzbl -0x46(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]
movzbl -0x47(%rbp), %eax
movd %eax, %xmm3
movzbl -0x48(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
punpcklwd %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movzbl -0x49(%rbp), %eax
movd %eax, %xmm2
movzbl -0x4a(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
movzbl -0x4b(%rbp), %eax
movd %eax, %xmm3
movzbl -0x4c(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
punpcklwd %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]
movzbl -0x4d(%rbp), %eax
movd %eax, %xmm0
movzbl -0x4e(%rbp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]
movzbl -0x4f(%rbp), %eax
movd %eax, %xmm4
movzbl -0x50(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movaps %xmm0, -0x60(%rbp)
movaps -0x60(%rbp), %xmm0
movaps %xmm0, -0x6a0(%rbp)
movb $0x10, -0x597(%rbp)
movb -0x597(%rbp), %al
movb %al, -0x781(%rbp)
movb %al, -0x19(%rbp)
movb %al, -0x1a(%rbp)
movb %al, -0x1b(%rbp)
movb %al, -0x1c(%rbp)
movb %al, -0x1d(%rbp)
movb %al, -0x1e(%rbp)
movb %al, -0x1f(%rbp)
movb %al, -0x20(%rbp)
movb %al, -0x21(%rbp)
movb %al, -0x22(%rbp)
movb %al, -0x23(%rbp)
movb %al, -0x24(%rbp)
movb %al, -0x25(%rbp)
movb %al, -0x26(%rbp)
movb %al, -0x27(%rbp)
movb %al, -0x28(%rbp)
movzbl -0x19(%rbp), %eax
movd %eax, %xmm0
movzbl -0x1a(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
movzbl -0x1b(%rbp), %eax
movd %eax, %xmm2
movzbl -0x1c(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movzbl -0x1d(%rbp), %eax
movd %eax, %xmm1
movzbl -0x1e(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1],xmm2[2],xmm1[2],xmm2[3],xmm1[3],xmm2[4],xmm1[4],xmm2[5],xmm1[5],xmm2[6],xmm1[6],xmm2[7],xmm1[7]
movzbl -0x1f(%rbp), %eax
movd %eax, %xmm3
movzbl -0x20(%rbp), %eax
movd %eax, %xmm1
punpcklbw %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1],xmm1[2],xmm3[2],xmm1[3],xmm3[3],xmm1[4],xmm3[4],xmm1[5],xmm3[5],xmm1[6],xmm3[6],xmm1[7],xmm3[7]
punpcklwd %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movzbl -0x21(%rbp), %eax
movd %eax, %xmm2
movzbl -0x22(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],xmm2[3],xmm0[4],xmm2[4],xmm0[5],xmm2[5],xmm0[6],xmm2[6],xmm0[7],xmm2[7]
movzbl -0x23(%rbp), %eax
movd %eax, %xmm3
movzbl -0x24(%rbp), %eax
movd %eax, %xmm2
punpcklbw %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3],xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
punpcklwd %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],xmm0[3]
movzbl -0x25(%rbp), %eax
movd %eax, %xmm0
movzbl -0x26(%rbp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1],xmm3[2],xmm0[2],xmm3[3],xmm0[3],xmm3[4],xmm0[4],xmm3[5],xmm0[5],xmm3[6],xmm0[6],xmm3[7],xmm0[7]
movzbl -0x27(%rbp), %eax
movd %eax, %xmm4
movzbl -0x28(%rbp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3]
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movdqa %xmm0, -0x40(%rbp)
movdqa -0x40(%rbp), %xmm0
movdqa %xmm0, -0x6b0(%rbp)
cmpl $0x0, 0x28(%rbp)
jge 0x1b647b
movl -0x5b4(%rbp), %eax
cmpl -0x5a4(%rbp), %eax
jle 0x1b6466
movl -0x5b4(%rbp), %eax
movl %eax, -0x78c(%rbp)
jmp 0x1b6472
movl -0x5a4(%rbp), %eax
movl %eax, -0x78c(%rbp)
movl -0x78c(%rbp), %eax
movl %eax, 0x28(%rbp)
movl 0x28(%rbp), %eax
addl $0x1, %eax
cmpl -0x5b4(%rbp), %eax
jge 0x1b6497
movl 0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x790(%rbp)
jmp 0x1b64a3
movl -0x5b4(%rbp), %eax
movl %eax, -0x790(%rbp)
movl -0x790(%rbp), %eax
movl %eax, -0x5d0(%rbp)
movl -0x5b4(%rbp), %eax
addl $0xf, %eax
movl $0x10, %ecx
cltd
idivl %ecx
movl %eax, -0x5e4(%rbp)
movl -0x5d0(%rbp), %eax
addl $0xf, %eax
movl $0x10, %ecx
cltd
idivl %ecx
addl $0x1, %eax
movl %eax, -0x5d4(%rbp)
movl -0x5d4(%rbp), %eax
shll $0x4, %eax
movl %eax, -0x5d0(%rbp)
movq -0x5a0(%rbp), %rdi
imull $0x5, -0x5e4(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movl $0x10, %edx
callq 0x19e9c0
movq %rax, -0x608(%rbp)
movq -0x608(%rbp), %rax
addq $0xf, %rax
shrq $0x4, %rax
shlq $0x4, %rax
movq %rax, -0x618(%rbp)
movq -0x618(%rbp), %rax
movslq -0x5e4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x620(%rbp)
movq -0x620(%rbp), %rax
movslq -0x5e4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x628(%rbp)
movq -0x628(%rbp), %rax
movslq -0x5e4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x630(%rbp)
movq -0x630(%rbp), %rax
movslq -0x5e4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x638(%rbp)
movq -0x5a0(%rbp), %rdi
movslq -0x5a4(%rbp), %rsi
movl $0x1, %edx
callq 0x19e9c0
movq %rax, -0x600(%rbp)
movq -0x5a0(%rbp), %rdi
movl -0x5a4(%rbp), %eax
addl -0x5b4(%rbp), %eax
subl $0x1, %eax
imull -0x5d4(%rbp), %eax
addl $0x1, %eax
shll $0x4, %eax
movslq %eax, %rsi
callq 0x19e720
movq %rax, -0x610(%rbp)
movq -0x610(%rbp), %rax
addq $0xf, %rax
shrq $0x4, %rax
shlq $0x4, %rax
movq %rax, -0x640(%rbp)
movq -0x5a0(%rbp), %rdi
movl -0x5a4(%rbp), %eax
addl -0x5b4(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
shlq $0x2, %rsi
callq 0x19e720
movq %rax, -0x5e0(%rbp)
movl $0x0, -0x5cc(%rbp)
movl -0x5cc(%rbp), %eax
cmpl -0x5a4(%rbp), %eax
jge 0x1b6688
movq -0x5b0(%rbp), %rax
movl -0x5a4(%rbp), %ecx
subl $0x1, %ecx
subl -0x5cc(%rbp), %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x600(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x5cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5cc(%rbp)
jmp 0x1b663c
movl $0x0, -0x5c8(%rbp)
movl $0xffffffff, -0x5ec(%rbp) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x5e8(%rbp) # imm = 0xFFFFFFFF
movl -0x5c8(%rbp), %eax
movl -0x5a4(%rbp), %ecx
addl -0x5b4(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1b72a1
movl $0x0, -0x6b4(%rbp)
movl -0x5b4(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x6b8(%rbp)
movl -0x6b4(%rbp), %eax
movl -0x5c8(%rbp), %ecx
subl -0x5a4(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1b670a
movl -0x5c8(%rbp), %eax
subl -0x5a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6b4(%rbp)
movl -0x6b8(%rbp), %eax
cmpl -0x5c8(%rbp), %eax
jle 0x1b6724
movl -0x5c8(%rbp), %eax
movl %eax, -0x6b8(%rbp)
movl -0x6b4(%rbp), %eax
movl -0x5c8(%rbp), %ecx
subl 0x28(%rbp), %ecx
addl $0x1, %ecx
sarl %ecx
cmpl %ecx, %eax
jge 0x1b6750
movl -0x5c8(%rbp), %eax
subl 0x28(%rbp), %eax
addl $0x1, %eax
sarl %eax
movl %eax, -0x6b4(%rbp)
movl -0x6b8(%rbp), %eax
movl -0x5c8(%rbp), %ecx
addl 0x28(%rbp), %ecx
sarl %ecx
cmpl %ecx, %eax
jle 0x1b6776
movl -0x5c8(%rbp), %eax
addl 0x28(%rbp), %eax
sarl %eax
movl %eax, -0x6b8(%rbp)
movl -0x6b4(%rbp), %eax
movl %eax, -0x6bc(%rbp)
movl -0x6b8(%rbp), %eax
movl %eax, -0x6c0(%rbp)
movl -0x6b4(%rbp), %eax
movl $0x10, %ecx
cltd
idivl %ecx
shll $0x4, %eax
movl %eax, -0x6b4(%rbp)
movl -0x6b8(%rbp), %eax
addl $0x10, %eax
movl $0x10, %ecx
cltd
idivl %ecx
shll $0x4, %eax
subl $0x1, %eax
movl %eax, -0x6b8(%rbp)
movl -0x6b4(%rbp), %edx
movq -0x5e0(%rbp), %rax
movslq -0x5c8(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
cmpl $0x0, -0x6b4(%rbp)
jle 0x1b684e
movl -0x6b4(%rbp), %eax
subl $0x1, %eax
cmpl -0x5e8(%rbp), %eax
jl 0x1b683e
movl -0x6b4(%rbp), %eax
subl $0x1, %eax
cmpl -0x5ec(%rbp), %eax
jg 0x1b683e
movq -0x628(%rbp), %rax
movl -0x6b4(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x6c9(%rbp)
movq -0x620(%rbp), %rax
movl -0x6b4(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x6ca(%rbp)
jmp 0x1b684c
movb $0x0, -0x6ca(%rbp)
movb $0x0, -0x6c9(%rbp)
jmp 0x1b6880
movb $0x0, -0x6c9(%rbp)
cmpl $0x0, -0x5c8(%rbp)
je 0x1b686a
movsbl 0x18(%rbp), %eax
movl %eax, -0x794(%rbp)
jmp 0x1b6874
xorl %eax, %eax
movl %eax, -0x794(%rbp)
jmp 0x1b6874
movl -0x794(%rbp), %eax
movb %al, -0x6ca(%rbp)
movl -0x6b8(%rbp), %eax
cmpl -0x5c8(%rbp), %eax
jl 0x1b68d8
movq -0x630(%rbp), %rax
movslq -0x5c8(%rbp), %rcx
movb $0x0, (%rax,%rcx)
cmpl $0x0, -0x5c8(%rbp)
je 0x1b68b5
movsbl 0x18(%rbp), %eax
movl %eax, -0x798(%rbp)
jmp 0x1b68bf
xorl %eax, %eax
movl %eax, -0x798(%rbp)
jmp 0x1b68bf
movl -0x798(%rbp), %eax
movb %al, %dl
movq -0x618(%rbp), %rax
movslq -0x5c8(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x6bc(%rbp), %eax
movl %eax, -0x5cc(%rbp)
movl -0x5cc(%rbp), %eax
cmpl -0x6c0(%rbp), %eax
jg 0x1b695f
movq 0x10(%rbp), %rax
movq -0x5c0(%rbp), %rcx
movslq -0x5cc(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
movsbl -0x5c1(%rbp), %edx
imull %edx, %ecx
movq -0x600(%rbp), %rdx
movl -0x5cc(%rbp), %esi
addl -0x5a4(%rbp), %esi
subl $0x1, %esi
subl -0x5c8(%rbp), %esi
movslq %esi, %rsi
movzbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x638(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x5cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5cc(%rbp)
jmp 0x1b68e4
movsbl -0x6c9(%rbp), %eax
movl %eax, -0x554(%rbp)
movd -0x554(%rbp), %xmm0
movaps %xmm0, -0x570(%rbp)
movaps -0x570(%rbp), %xmm0
movaps %xmm0, -0x6e0(%rbp)
movsbl -0x6ca(%rbp), %eax
movl %eax, -0x574(%rbp)
movd -0x574(%rbp), %xmm0
movdqa %xmm0, -0x590(%rbp)
movdqa -0x590(%rbp), %xmm0
movdqa %xmm0, -0x6f0(%rbp)
movl -0x6b4(%rbp), %eax
sarl $0x4, %eax
movl %eax, -0x6c4(%rbp)
movl -0x6b8(%rbp), %eax
sarl $0x4, %eax
movl %eax, -0x6c8(%rbp)
movq -0x640(%rbp), %rax
movl -0x5c8(%rbp), %ecx
imull -0x5d4(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movslq -0x6c4(%rbp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x6f8(%rbp)
movl -0x6c4(%rbp), %eax
movl %eax, -0x5cc(%rbp)
movl -0x5cc(%rbp), %eax
cmpl -0x6c8(%rbp), %eax
jg 0x1b71bd
movq -0x638(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x4c8(%rbp)
movq -0x4c8(%rbp), %rax
movaps (%rax), %xmm1
movaps -0x660(%rbp), %xmm0
movaps %xmm1, -0x500(%rbp)
movaps %xmm0, -0x510(%rbp)
movaps -0x500(%rbp), %xmm0
movaps -0x510(%rbp), %xmm1
paddb %xmm1, %xmm0
movaps %xmm0, -0x720(%rbp)
movq -0x628(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x4d0(%rbp)
movq -0x4d0(%rbp), %rax
movaps (%rax), %xmm0
movaps %xmm0, -0x750(%rbp)
movaps -0x750(%rbp), %xmm0
psrldq $0xf, %xmm0             # xmm0 = xmm0[15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
movaps %xmm0, -0x780(%rbp)
movaps -0x750(%rbp), %xmm1
pslldq $0x1, %xmm1             # xmm1 = zero,xmm1[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
movaps -0x6e0(%rbp), %xmm0
movaps %xmm1, -0x430(%rbp)
movaps %xmm0, -0x440(%rbp)
movaps -0x430(%rbp), %xmm0
movaps -0x440(%rbp), %xmm1
por %xmm1, %xmm0
movaps %xmm0, -0x750(%rbp)
movaps -0x780(%rbp), %xmm0
movaps %xmm0, -0x6e0(%rbp)
movq -0x620(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x4d8(%rbp)
movq -0x4d8(%rbp), %rax
movaps (%rax), %xmm0
movaps %xmm0, -0x760(%rbp)
movaps -0x760(%rbp), %xmm0
psrldq $0xf, %xmm0             # xmm0 = xmm0[15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
movaps %xmm0, -0x780(%rbp)
movaps -0x760(%rbp), %xmm1
pslldq $0x1, %xmm1             # xmm1 = zero,xmm1[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
movaps -0x6f0(%rbp), %xmm0
movaps %xmm1, -0x450(%rbp)
movaps %xmm0, -0x460(%rbp)
movaps -0x450(%rbp), %xmm0
movaps -0x460(%rbp), %xmm1
por %xmm1, %xmm0
movaps %xmm0, -0x760(%rbp)
movaps -0x780(%rbp), %xmm0
movaps %xmm0, -0x6f0(%rbp)
movaps -0x750(%rbp), %xmm1
movaps -0x760(%rbp), %xmm0
movaps %xmm1, -0x520(%rbp)
movaps %xmm0, -0x530(%rbp)
movaps -0x520(%rbp), %xmm0
movaps -0x530(%rbp), %xmm1
paddb %xmm1, %xmm0
movaps %xmm0, -0x730(%rbp)
movq -0x618(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x4e0(%rbp)
movq -0x4e0(%rbp), %rax
movaps (%rax), %xmm0
movaps %xmm0, -0x770(%rbp)
movq -0x630(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x4e8(%rbp)
movq -0x4e8(%rbp), %rax
movaps (%rax), %xmm1
movaps -0x770(%rbp), %xmm0
movaps %xmm1, -0x540(%rbp)
movaps %xmm0, -0x550(%rbp)
movaps -0x540(%rbp), %xmm0
movaps -0x550(%rbp), %xmm1
paddb %xmm1, %xmm0
movaps %xmm0, -0x740(%rbp)
movaps -0x730(%rbp), %xmm1
movaps -0x720(%rbp), %xmm0
movaps %xmm1, -0x2b0(%rbp)
movaps %xmm0, -0x2c0(%rbp)
movaps -0x2b0(%rbp), %xmm1
movaps -0x2c0(%rbp), %xmm0
pcmpgtb %xmm0, %xmm1
movaps -0x680(%rbp), %xmm0
movaps %xmm1, -0x350(%rbp)
movaps %xmm0, -0x360(%rbp)
movaps -0x350(%rbp), %xmm0
movaps -0x360(%rbp), %xmm1
pand %xmm1, %xmm0
movaps %xmm0, -0x710(%rbp)
movaps -0x720(%rbp), %xmm1
movaps -0x670(%rbp), %xmm0
movaps %xmm1, -0x2d0(%rbp)
movaps %xmm0, -0x2e0(%rbp)
movaps -0x2d0(%rbp), %xmm0
movaps -0x2e0(%rbp), %xmm2
pcmpgtb %xmm2, %xmm0
movaps %xmm1, -0x370(%rbp)
movaps %xmm0, -0x380(%rbp)
movaps -0x370(%rbp), %xmm0
movaps -0x380(%rbp), %xmm1
pand %xmm1, %xmm0
movaps %xmm0, -0x720(%rbp)
movaps -0x720(%rbp), %xmm1
movaps -0x730(%rbp), %xmm0
movaps %xmm1, -0x270(%rbp)
movaps %xmm0, -0x280(%rbp)
movaps -0x270(%rbp), %xmm0
movaps -0x280(%rbp), %xmm1
pmaxub %xmm1, %xmm0
movaps %xmm0, -0x720(%rbp)
movaps -0x740(%rbp), %xmm1
movaps -0x720(%rbp), %xmm0
movaps %xmm1, -0x2f0(%rbp)
movaps %xmm0, -0x300(%rbp)
movaps -0x2f0(%rbp), %xmm0
movaps -0x300(%rbp), %xmm1
pcmpgtb %xmm1, %xmm0
movaps %xmm0, -0x780(%rbp)
movaps -0x780(%rbp), %xmm1
movaps -0x710(%rbp), %xmm0
movaps %xmm1, -0x250(%rbp)
movaps %xmm0, -0x260(%rbp)
movaps -0x250(%rbp), %xmm1
movaps -0x260(%rbp), %xmm0
pandn %xmm0, %xmm1
movaps -0x780(%rbp), %xmm2
movaps -0x690(%rbp), %xmm0
movaps %xmm2, -0x390(%rbp)
movaps %xmm0, -0x3a0(%rbp)
movaps -0x390(%rbp), %xmm0
movaps -0x3a0(%rbp), %xmm2
pand %xmm2, %xmm0
movaps %xmm1, -0x470(%rbp)
movaps %xmm0, -0x480(%rbp)
movaps -0x470(%rbp), %xmm0
movaps -0x480(%rbp), %xmm1
por %xmm1, %xmm0
movaps %xmm0, -0x710(%rbp)
movaps -0x720(%rbp), %xmm1
movaps -0x740(%rbp), %xmm0
movaps %xmm1, -0x290(%rbp)
movaps %xmm0, -0x2a0(%rbp)
movaps -0x290(%rbp), %xmm0
movaps -0x2a0(%rbp), %xmm1
pmaxub %xmm1, %xmm0
movaps %xmm0, -0x720(%rbp)
movq -0x618(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movaps -0x720(%rbp), %xmm1
movaps -0x760(%rbp), %xmm0
movaps %xmm1, -0x110(%rbp)
movaps %xmm0, -0x120(%rbp)
movaps -0x110(%rbp), %xmm0
movaps -0x120(%rbp), %xmm1
psubb %xmm1, %xmm0
movq %rax, -0x1a8(%rbp)
movaps %xmm0, -0x1c0(%rbp)
movaps -0x1c0(%rbp), %xmm0
movq -0x1a8(%rbp), %rax
movaps %xmm0, (%rax)
movq -0x620(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movaps -0x720(%rbp), %xmm1
movaps -0x770(%rbp), %xmm0
movaps %xmm1, -0x130(%rbp)
movaps %xmm0, -0x140(%rbp)
movaps -0x130(%rbp), %xmm0
movaps -0x140(%rbp), %xmm1
psubb %xmm1, %xmm0
movq %rax, -0x1c8(%rbp)
movaps %xmm0, -0x1e0(%rbp)
movaps -0x1e0(%rbp), %xmm0
movq -0x1c8(%rbp), %rax
movaps %xmm0, (%rax)
movaps -0x720(%rbp), %xmm1
movaps -0x650(%rbp), %xmm0
movaps %xmm1, -0x150(%rbp)
movaps %xmm0, -0x160(%rbp)
movaps -0x150(%rbp), %xmm0
movaps -0x160(%rbp), %xmm1
psubb %xmm1, %xmm0
movaps %xmm0, -0x720(%rbp)
movaps -0x730(%rbp), %xmm1
movaps -0x720(%rbp), %xmm0
movaps %xmm1, -0x170(%rbp)
movaps %xmm0, -0x180(%rbp)
movaps -0x170(%rbp), %xmm0
movaps -0x180(%rbp), %xmm1
psubb %xmm1, %xmm0
movaps %xmm0, -0x730(%rbp)
movaps -0x740(%rbp), %xmm1
movaps -0x720(%rbp), %xmm0
movaps %xmm1, -0x190(%rbp)
movaps %xmm0, -0x1a0(%rbp)
movaps -0x190(%rbp), %xmm0
movaps -0x1a0(%rbp), %xmm1
psubb %xmm1, %xmm0
movaps %xmm0, -0x740(%rbp)
movaps -0x730(%rbp), %xmm1
movaps -0x670(%rbp), %xmm0
movaps %xmm1, -0x310(%rbp)
movaps %xmm0, -0x320(%rbp)
movaps -0x310(%rbp), %xmm0
movaps -0x320(%rbp), %xmm1
pcmpgtb %xmm1, %xmm0
movaps %xmm0, -0x780(%rbp)
movaps -0x710(%rbp), %xmm1
movaps -0x6a0(%rbp), %xmm2
movaps -0x780(%rbp), %xmm0
movaps %xmm2, -0x3b0(%rbp)
movaps %xmm0, -0x3c0(%rbp)
movaps -0x3b0(%rbp), %xmm0
movaps -0x3c0(%rbp), %xmm2
pand %xmm2, %xmm0
movaps %xmm1, -0x490(%rbp)
movaps %xmm0, -0x4a0(%rbp)
movaps -0x490(%rbp), %xmm0
movaps -0x4a0(%rbp), %xmm1
por %xmm1, %xmm0
movaps %xmm0, -0x710(%rbp)
movq -0x628(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movaps -0x730(%rbp), %xmm1
movaps -0x780(%rbp), %xmm0
movaps %xmm1, -0x3d0(%rbp)
movaps %xmm0, -0x3e0(%rbp)
movaps -0x3d0(%rbp), %xmm0
movaps -0x3e0(%rbp), %xmm1
pand %xmm1, %xmm0
movq %rax, -0x1e8(%rbp)
movaps %xmm0, -0x200(%rbp)
movaps -0x200(%rbp), %xmm0
movq -0x1e8(%rbp), %rax
movaps %xmm0, (%rax)
movaps -0x740(%rbp), %xmm1
movaps -0x670(%rbp), %xmm0
movaps %xmm1, -0x330(%rbp)
movaps %xmm0, -0x340(%rbp)
movaps -0x330(%rbp), %xmm0
movaps -0x340(%rbp), %xmm1
pcmpgtb %xmm1, %xmm0
movdqa %xmm0, -0x780(%rbp)
movdqa -0x710(%rbp), %xmm1
movdqa -0x6b0(%rbp), %xmm2
movdqa -0x780(%rbp), %xmm0
movdqa %xmm2, -0x3f0(%rbp)
movdqa %xmm0, -0x400(%rbp)
movdqa -0x3f0(%rbp), %xmm0
pand -0x400(%rbp), %xmm0
movdqa %xmm1, -0x4b0(%rbp)
movdqa %xmm0, -0x4c0(%rbp)
movdqa -0x4b0(%rbp), %xmm0
por -0x4c0(%rbp), %xmm0
movdqa %xmm0, -0x710(%rbp)
movq -0x630(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movdqa -0x740(%rbp), %xmm1
movdqa -0x780(%rbp), %xmm0
movdqa %xmm1, -0x410(%rbp)
movdqa %xmm0, -0x420(%rbp)
movdqa -0x410(%rbp), %xmm0
pand -0x420(%rbp), %xmm0
movq %rax, -0x208(%rbp)
movdqa %xmm0, -0x220(%rbp)
movdqa -0x220(%rbp), %xmm0
movq -0x208(%rbp), %rax
movdqa %xmm0, (%rax)
movq -0x6f8(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movdqa -0x710(%rbp), %xmm0
movq %rax, -0x228(%rbp)
movdqa %xmm0, -0x240(%rbp)
movdqa -0x240(%rbp), %xmm0
movq -0x228(%rbp), %rax
movdqa %xmm0, (%rax)
movl -0x5cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5cc(%rbp)
jmp 0x1b6a18
cmpl $0x0, -0x5c8(%rbp)
jle 0x1b724d
movl -0x5f4(%rbp), %eax
cmpl -0x6bc(%rbp), %eax
jl 0x1b7212
movl -0x5f4(%rbp), %eax
cmpl -0x6c0(%rbp), %eax
jg 0x1b7212
movq -0x620(%rbp), %rax
movslq -0x5f4(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movsbl 0x18(%rbp), %ecx
movsbl 0x20(%rbp), %edx
addl %edx, %ecx
subl %ecx, %eax
addl -0x5f0(%rbp), %eax
movl %eax, -0x5f0(%rbp)
jmp 0x1b724b
movl -0x5f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5f4(%rbp)
movq -0x618(%rbp), %rax
movslq -0x5f4(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movsbl 0x18(%rbp), %ecx
movsbl 0x20(%rbp), %edx
addl %edx, %ecx
subl %ecx, %eax
addl -0x5f0(%rbp), %eax
movl %eax, -0x5f0(%rbp)
jmp 0x1b7275
movq -0x620(%rbp), %rax
movzbl (%rax), %eax
movsbl 0x18(%rbp), %ecx
movsbl 0x20(%rbp), %edx
addl %edx, %ecx
shll %ecx
subl %ecx, %eax
movl %eax, -0x5f0(%rbp)
movl $0x0, -0x5f4(%rbp)
movl -0x6b4(%rbp), %eax
movl %eax, -0x5e8(%rbp)
movl -0x6b8(%rbp), %eax
movl %eax, -0x5ec(%rbp)
movl -0x5c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c8(%rbp)
jmp 0x1b66a6
movq -0x5a0(%rbp), %rdi
movq -0x608(%rbp), %rsi
callq 0x19e3f0
movq -0x5a0(%rbp), %rdi
movq -0x600(%rbp), %rsi
callq 0x19e3f0
movq -0x5a0(%rbp), %rdi
movq -0x640(%rbp), %r8
movq -0x5e0(%rbp), %r9
movl -0x5d0(%rbp), %r15d
movl -0x5b4(%rbp), %r14d
subl $0x1, %r14d
movl -0x5a4(%rbp), %ebx
subl $0x1, %ebx
movq 0x30(%rbp), %r11
movq 0x38(%rbp), %r10
movq 0x40(%rbp), %rax
movl $0x1, %esi
xorl %ecx, %ecx
xorl %edx, %edx
movl %ecx, %edx
movq $0x0, (%rsp)
movl %r15d, 0x8(%rsp)
movl %r14d, 0x10(%rsp)
movl %ebx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x1b7380
movq -0x5a0(%rbp), %rdi
movq -0x610(%rbp), %rsi
callq 0x19e3f0
movq -0x5a0(%rbp), %rdi
movq -0x5e0(%rbp), %rsi
callq 0x19e3f0
movl -0x5f0(%rbp), %eax
addq $0x7b8, %rsp            # imm = 0x7B8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)