// File: /workspace/github_c_makefile_star2_O3/tvlabs[P]edge264/./edge264_headers.c
// Function: recover_slice
static void recover_slice(Edge264Context *ctx, int currPic) {
	// mark all previous mbs as erroneous and assign them an error probability
	ctx->mby = (unsigned)ctx->t.first_mb_in_slice / (unsigned)ctx->t.pic_width_in_mbs;
	ctx->mbx = (unsigned)ctx->t.first_mb_in_slice % (unsigned)ctx->t.pic_width_in_mbs;
	ctx->samples_mb[0] = ctx->t.samples_base + (ctx->mbx + ctx->mby * ctx->t.stride[0]) * 16;
	ctx->samples_mb[1] = ctx->t.samples_base + ctx->t.plane_size_Y + (ctx->mbx + ctx->mby * ctx->t.stride[1]) * 8;
	ctx->samples_mb[2] = ctx->samples_mb[1] + (ctx->t.stride[1] >> 1);
	int mb_offset = ctx->t.plane_size_Y + ctx->t.plane_size_C + sizeof(Edge264Macroblock) * (ctx->mbx + ctx->mby * (ctx->t.pic_width_in_mbs + 1));
	ctx->_mb = (Edge264Macroblock *)(ctx->t.samples_base + mb_offset);
	ctx->mbCol = (Edge264Macroblock *)(ctx->t.frame_buffers[ctx->t.RefPicList[1][0]] + mb_offset);
	unsigned num = ctx->CurrMbAddr - ctx->t.first_mb_in_slice;
	unsigned div = 65536 - ppow(65194, num);
	for (unsigned i = 0; i < num; i++) {
		unsigned p12800 = (!ctx->t.pps.entropy_coding_mode_flag) ?
			((i + 1) * 12800 + num - 1) / num : // division with upward rounding
			((div - (65536 - ppow(65194, num - 1 - i))) * 12800 + div - 1) / div;
		ctx->_mb->error_probability = p12800 >> 7;
		unsigned p128 = p12800 / 100;
		
		// recover the macroblock depending on slice_type
		if (ctx->t.slice_type == 2) { // I slice -> blend with intra DC
			uint8_t * restrict p = ctx->samples_mb[0];
			size_t stride = ctx->t.stride[0];
			INIT_P();
			i8x16 l = set8(-128), t = l;
			if (i == 0 || ctx->mbx == 0) { // A not available
				if (i >= ctx->t.pic_width_in_mbs) // B available
					l = t = load128(P(0, -1));
			} else { // A available
				l = t = ldleft16(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
				if (i >= ctx->t.pic_width_in_mbs) // B available
					t = load128(P(0, -1));
			}
			i8x16 dcY = broadcast8(shrru16(sumd8(t, l), 5), __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__);
			i8x16 w8 = ziplo8(set8(128 - p128), set8(p128));
			i16x8 w16 = {128 - p128, p128};
			i16x8 o = {};
			i64x2 wd64 = {7};
			i16x8 wd16 = set16(7);
			if (p128 == 128) {
				w8 = (i8x16){0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
				w16 = (i16x8){0, 1};
				wd64 = wd16 = o;
			}
			*(i8x16 *)P(0, 0) = maddshr8(*(i8x16 *)P(0, 0), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 1) = maddshr8(*(i8x16 *)P(0, 1), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 2) = maddshr8(*(i8x16 *)P(0, 2), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 3) = maddshr8(*(i8x16 *)P(0, 3), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 4) = maddshr8(*(i8x16 *)P(0, 4), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 5) = maddshr8(*(i8x16 *)P(0, 5), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 6) = maddshr8(*(i8x16 *)P(0, 6), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 7) = maddshr8(*(i8x16 *)P(0, 7), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 8) = maddshr8(*(i8x16 *)P(0, 8), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 9) = maddshr8(*(i8x16 *)P(0, 9), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 10) = maddshr8(*(i8x16 *)P(0, 10), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 11) = maddshr8(*(i8x16 *)P(0, 11), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 12) = maddshr8(*(i8x16 *)P(0, 12), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 13) = maddshr8(*(i8x16 *)P(0, 13), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 14) = maddshr8(*(i8x16 *)P(0, 14), dcY, w8, w16, o, wd64, wd16);
			*(i8x16 *)P(0, 15) = maddshr8(*(i8x16 *)P(0, 15), dcY, w8, w16, o, wd64, wd16);
			{
				uint8_t * restrict p = ctx->samples_mb[1];
				size_t stride = ctx->t.stride[1] >> 1;
				INIT_P();
				i8x16 b = ziplo64(load64(P(0, -2)), ldleft8(0, 2, 4, 6, 8, 10, 12, 14));
				i8x16 r = ziplo64(load64(P(0, -1)), ldleft8(1, 3, 5, 7, 9, 11, 13, 15));
				i8x16 dcb = broadcast8(shrru16(sum8(b), 4), __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__);
				i8x16 dcr = broadcast8(shrru16(sum8(r), 4), __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__);
				i8x16 dcC = ziplo64(dcb, dcr);
				i64x2 v0 = maddshr8(load8x2(P(0, 0), P(0, 1)), dcC, w8, w16, o, wd64, wd16);
				i64x2 v1 = maddshr8(load8x2(P(0, 2), P(0, 3)), dcC, w8, w16, o, wd64, wd16);
				i64x2 v2 = maddshr8(load8x2(P(0, 4), P(0, 5)), dcC, w8, w16, o, wd64, wd16);
				i64x2 v3 = maddshr8(load8x2(P(0, 6), P(0, 7)), dcC, w8, w16, o, wd64, wd16);
				i64x2 v4 = maddshr8(load8x2(P(0, 8), P(0, 9)), dcC, w8, w16, o, wd64, wd16);
				i64x2 v5 = maddshr8(load8x2(P(0, 10), P(0, 11)), dcC, w8, w16, o, wd64, wd16);
				i64x2 v6 = maddshr8(load8x2(P(0, 12), P(0, 13)), dcC, w8, w16, o, wd64, wd16);
				i64x2 v7 = maddshr8(load8x2(P(0, 14), P(0, 15)), dcC, w8, w16, o, wd64, wd16);
				*(int64_t *)P(0, 0) = v0[0];
				*(int64_t *)P(0, 1) = v0[1];
				*(int64_t *)P(0, 2) = v1[0];
				*(int64_t *)P(0, 3) = v1[1];
				*(int64_t *)P(0, 4) = v2[0];
				*(int64_t *)P(0, 5) = v2[1];
				*(int64_t *)P(0, 6) = v3[0];
				*(int64_t *)P(0, 7) = v3[1];
				*(int64_t *)P(0, 8) = v4[0];
				*(int64_t *)P(0, 9) = v4[1];
				*(int64_t *)P(0, 10) = v5[0];
				*(int64_t *)P(0, 11) = v5[1];
				*(int64_t *)P(0, 12) = v6[0];
				*(int64_t *)P(0, 13) = v6[1];
				*(int64_t *)P(0, 14) = v7[0];
				*(int64_t *)P(0, 15) = v7[1];
			}
		} else if (i > 0 && p128 >= 32) { // recover above 25% error (arbitrary)
			if (ctx->t.slice_type == 0) { // P slice -> P_Skip
				mb->nC_v[0] = (i8x16){};
				decode_P_skip(ctx);
			} else { // B slice -> B_Skip
				mb->nC_v[0] = (i8x16){};
				decode_direct_mv_pred(ctx, 0xffffffff);
			}
		}
		__atomic_store_n(&ctx->_mb->recovery_bits, ctx->t.frame_flip_bit + 2, __ATOMIC_RELEASE);
		
		// point to the next macroblock
		ctx->_mb++;
		ctx->mbx++;
		ctx->mbCol++;
		ctx->samples_mb[0] += 16;
		ctx->samples_mb[1] += 8;
		ctx->samples_mb[2] += 8;
		if (ctx->mbx >= ctx->t.pic_width_in_mbs) {
			ctx->_mb++;
			ctx->mbx = 0;
			ctx->mby++;
			ctx->mbCol++;
			ctx->samples_mb[0] += ctx->t.stride[0] * 16 - ctx->t.pic_width_in_mbs * 16;
			ctx->samples_mb[1] += ctx->t.stride[1] * 8 - ctx->t.pic_width_in_mbs * 8;
			ctx->samples_mb[2] += ctx->t.stride[1] * 8 - ctx->t.pic_width_in_mbs * 8;
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movl 0x48(%rdi), %esi
movswl 0x30(%rdi), %r8d
movl %esi, %eax
xorl %edx, %edx
divl %r8d
movl %edx, %ecx
movw %ax, 0x656(%rdi)
movw %cx, 0x654(%rdi)
movq 0x58(%rdi), %r9
movswl %cx, %edx
cwtl
movzwl 0x34(%rdi), %edi
imull %eax, %edi
addl %edx, %edi
shll $0x4, %edi
movslq %edi, %rdi
addq %r9, %rdi
movq %rdi, 0x668(%rbx)
movslq 0x3c(%rbx), %r10
leal 0x1(%r8), %r11d
imull %eax, %r11d
addl %edx, %r11d
imull $0x130, %r11d, %r11d    # imm = 0x130
addl %r10d, %r11d
addq %r9, %r10
movzwl 0x36(%rbx), %r14d
imull %r14d, %eax
addl %edx, %eax
shll $0x3, %eax
cltq
addq %r10, %rax
movq %rax, 0x670(%rbx)
shrl %r14d
addq %rax, %r14
movq %r14, 0x678(%rbx)
addl 0x40(%rbx), %r11d
movslq %r11d, %rax
addq %rax, %r9
movq %r9, 0x680(%rbx)
movsbq 0x1c0(%rbx), %rdx
addq 0x60(%rbx,%rdx,8), %rax
movq %rax, 0x6a8(%rbx)
movl 0x658(%rbx), %r15d
subl %esi, %r15d
je 0xb6c6
movl $0xfeaa, %eax           # imm = 0xFEAA
movl $0x10000, %ebp          # imm = 0x10000
movl %r15d, %esi
movl %r15d, %edx
movl %ebp, %r10d
movl %eax, %ebp
imull %r10d, %ebp
shrl $0x10, %ebp
testb $0x1, %sil
cmovel %r10d, %ebp
imull %eax, %eax
shrl $0x10, %eax
shrl %edx
cmpl $0x1, %esi
movl %edx, %esi
ja 0xad23
testl %r15d, %r15d
je 0xb6c6
movl $0x10000, %r14d         # imm = 0x10000
subl %ebp, %r14d
leal 0x31ff(%r15), %eax
movl %eax, 0x4(%rsp)
xorl %r13d, %r13d
vpxord %xmm19, %xmm19, %xmm19
vpbroadcastw 0x28d7a(%rip), %xmm20 # 0x33af0
vpbroadcastq 0x2c630(%rip), %xmm21 # 0x373b0
movl $0x130, %r12d           # imm = 0x130
movq %r15, 0x10(%rsp)
movl %r14d, 0x8(%rsp)
cmpb $0x0, 0x220(%rbx)
je 0xaded
movl %r13d, %edx
notl %edx
movl %r14d, %eax
addl %r15d, %edx
je 0xadd9
movl $0xfeaa, %esi           # imm = 0xFEAA
movl $0x10000, %eax          # imm = 0x10000
movl %edx, %r10d
movl %eax, %r11d
movl %esi, %eax
imull %r11d, %eax
shrl $0x10, %eax
testb $0x1, %dl
cmovel %r11d, %eax
imull %esi, %esi
shrl $0x10, %esi
shrl %r10d
cmpl $0x1, %edx
movl %r10d, %edx
ja 0xadb3
subl %ebp, %eax
imull $0x3200, %eax, %eax     # imm = 0x3200
subl %ebp, %eax
addl $0xffff, %eax           # imm = 0xFFFF
xorl %edx, %edx
divl %r14d
jmp 0xadfd
imull $0x3200, %r13d, %eax    # imm = 0x3200
addl 0x4(%rsp), %eax
xorl %edx, %edx
divl %r15d
movl %eax, %edx
shrl $0x7, %edx
movb %dl, (%r9)
movb 0x20(%rbx), %dl
cmpb $0x2, %dl
jne 0xaf05
movzwl 0x34(%rbx), %r11d
movq %r11, %rsi
negq %rsi
movl %r11d, %r9d
shll $0x3, %r9d
leaq (%rdi,%r9), %r12
movq %r12, %rdx
subq %r11, %rdx
addq %rdx, %r9
movq %r9, %r10
subq %r11, %r10
testl %r13d, %r13d
je 0xaf3a
testw %cx, %cx
je 0xaf3a
vmovd -0x4(%rdi), %xmm0
vmovd -0x4(%rdi,%r11), %xmm1
leal (%r11,%r11), %ecx
vmovd -0x4(%rdi,%rcx), %xmm2
vmovd -0x4(%rdx,%rsi,4), %xmm3
vpunpcklbw %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
vpunpcklbw %xmm3, %xmm2, %xmm1 # xmm1 = 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]
vpunpcklwd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
leal (,%r11,4), %r14d
vmovd -0x4(%rdi,%r14), %xmm1
vmovd -0x4(%rdx,%rsi,2), %xmm2
vmovd -0x4(%rdx,%rsi), %xmm3
vmovd -0x4(%rdx), %xmm4
vpunpcklbw %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3],xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]
vpunpcklbw %xmm4, %xmm3, %xmm2 # xmm2 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3],xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]
vpunpcklwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vpunpckhdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
vmovd -0x4(%rdx,%r11), %xmm1
vmovd -0x4(%rdx,%rcx), %xmm2
vmovd -0x4(%r10,%rsi,4), %xmm3
vmovd -0x4(%rdx,%r14), %xmm4
vpunpcklbw %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3],xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]
vpunpcklbw %xmm4, %xmm3, %xmm2 # xmm2 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3],xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]
vmovd -0x4(%r10,%rsi,2), %xmm3
vmovd -0x4(%r10,%rsi), %xmm4
vpunpcklwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vpunpcklbw %xmm4, %xmm3, %xmm2 # xmm2 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3],xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]
vmovd -0x4(%r10), %xmm3
vmovd -0x4(%r10,%r11), %xmm4
vpunpcklbw %xmm4, %xmm3, %xmm3 # xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3],xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]
vpunpcklwd %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]
vpunpckhdq %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vpunpckhqdq %xmm1, %xmm0, %xmm2 # xmm2 = xmm0[1],xmm1[1]
movswl %r8w, %ecx
cmpl %ecx, %r13d
jae 0xaf5b
vmovdqa %xmm2, %xmm3
jmp 0xaf60
testl %r13d, %r13d
je 0xb5cf
cmpl $0xc80, %eax            # imm = 0xC80
jb 0xb5cf
vmovdqa64 %xmm19, 0x40(%r9)
movq %rbx, %rdi
testb %dl, %dl
je 0xb5b0
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x14b19
jmp 0xb5b5
movswl %r8w, %ecx
vpbroadcastq 0x2c461(%rip), %xmm2 # 0x373a8
vmovdqa %xmm2, %xmm3
cmpl %ecx, %r13d
jb 0xaf60
vmovdqu (%rdi,%rsi), %xmm3
vmovdqa %xmm3, %xmm2
jmp 0xaf60
vmovdqu (%rdi,%rsi), %xmm3
movl %eax, %ecx
imulq $0x51eb851f, %rcx, %rcx # imm = 0x51EB851F
shrq $0x25, %rcx
movb $-0x80, %r8b
subb %cl, %r8b
addl $0xffffce00, %eax       # imm = 0xFFFFCE00
vpxor %xmm0, %xmm0, %xmm0
cmpl $0x64, %eax
jb 0xaf8a
vpmovsxbq 0x28b68(%rip), %xmm0 # 0x33af2
movl %r13d, 0xc(%rsp)
vmovdqa64 %xmm20, %xmm1
jb 0xafa9
vmovd %r8d, %xmm1
vmovd %ecx, %xmm4
vpunpcklbw %xmm4, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]
vpbroadcastw %xmm1, %xmm1
vpsadbw %xmm19, %xmm3, %xmm3
vpsadbw %xmm19, %xmm2, %xmm2
vpaddw %xmm3, %xmm2, %xmm2
vpsrldq $0x8, %xmm2, %xmm3      # xmm3 = xmm2[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpaddw %xmm3, %xmm2, %xmm2
vpsrlw $0x4, %xmm2, %xmm2
vpavgw %xmm19, %xmm2, %xmm2
vpbroadcastb %xmm2, %xmm2
vmovdqa (%rdi), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdi)
vmovdqa (%rdi,%r11), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpsraw %xmm0, %xmm4, %xmm4
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdi,%r11)
leal (%r11,%r11), %eax
vmovdqa (%rdi,%rax), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdi,%rax)
vmovdqa (%rdx,%rsi,4), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdx,%rsi,4)
leal (,%r11,4), %ecx
vmovdqa (%rdi,%rcx), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpsraw %xmm0, %xmm4, %xmm4
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdi,%rcx)
vmovdqa (%rdx,%rsi,2), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdx,%rsi,2)
vmovdqa (%rdx,%rsi), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdx,%rsi)
vmovdqa (%r12,%rsi), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpsraw %xmm0, %xmm4, %xmm4
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%r12,%rsi)
leal (,%r11,8), %r8d
vmovdqa (%rdi,%r8), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdi,%r8)
vmovdqa (%rdx,%rax), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpsraw %xmm0, %xmm4, %xmm4
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdx,%rax)
vmovdqa (%r10,%rsi,4), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%r10,%rsi,4)
vmovdqa (%rdx,%rcx), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%rdx,%rcx)
vmovdqa (%r10,%rsi,2), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpsraw %xmm0, %xmm4, %xmm4
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%r10,%rsi,2)
vmovdqa (%r10,%rsi), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%r10,%rsi)
vmovdqa (%r9,%rsi), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm3 # xmm3 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpmaddubsw %xmm1, %xmm3, %xmm3
vpsraw %xmm0, %xmm4, %xmm4
vpsraw %xmm0, %xmm3, %xmm3
vpackuswb %xmm3, %xmm4, %xmm3
vmovdqa %xmm3, (%r9,%rsi)
vmovdqa (%rdx,%r8), %xmm3
vpunpcklbw %xmm2, %xmm3, %xmm4 # xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1],xmm3[2],xmm2[2],xmm3[3],xmm2[3],xmm3[4],xmm2[4],xmm3[5],xmm2[5],xmm3[6],xmm2[6],xmm3[7],xmm2[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpunpckhbw %xmm2, %xmm3, %xmm2 # xmm2 = xmm3[8],xmm2[8],xmm3[9],xmm2[9],xmm3[10],xmm2[10],xmm3[11],xmm2[11],xmm3[12],xmm2[12],xmm3[13],xmm2[13],xmm3[14],xmm2[14],xmm3[15],xmm2[15]
vpsraw %xmm0, %xmm4, %xmm3
vpmaddubsw %xmm1, %xmm2, %xmm2
vpsraw %xmm0, %xmm2, %xmm2
vpackuswb %xmm2, %xmm3, %xmm2
vmovdqa %xmm2, (%rdx,%r8)
movq 0x670(%rbx), %rdx
movzwl 0x36(%rbx), %esi
movl %esi, %r8d
shrl %r8d
leal (,%r8,8), %eax
leaq (%rdx,%rax), %rcx
subq %r8, %rcx
leaq (%rcx,%rax), %r13
subq %r8, %r13
andl $-0x2, %esi
movq %rdx, %rdi
subq %rsi, %rdi
vmovq (%rdi), %xmm2
vmovd -0x4(%rdx), %xmm3
vmovd -0x4(%rdx,%rsi), %xmm4
vpunpcklbw %xmm4, %xmm3, %xmm3 # xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3],xmm3[4],xmm4[4],xmm3[5],xmm4[5],xmm3[6],xmm4[6],xmm3[7],xmm4[7]
movl %r8d, %r9d
shll $0x2, %r9d
vmovd -0x4(%rdx,%r9), %xmm4
leaq -0x4(%rcx), %r10
movq %r10, %rdi
subq %r8, %rdi
vmovd (%rdi), %xmm5
vpunpcklbw %xmm5, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]
vpunpcklwd %xmm4, %xmm3, %xmm3 # xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1],xmm3[2],xmm4[2],xmm3[3],xmm4[3]
vmovd -0x4(%rcx,%r8), %xmm4
leaq -0x4(%r13), %rdi
movq %rdi, %r11
subq %r9, %r11
vmovd (%r11), %xmm5
vpunpcklbw %xmm5, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]
movq %rdi, %r11
subq %rsi, %r11
vmovd (%r11), %xmm5
vmovd -0x4(%r13), %xmm6
vpunpcklbw %xmm6, %xmm5, %xmm5 # xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3],xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]
vpunpcklwd %xmm5, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3]
vpermt2d %xmm4, %xmm21, %xmm3
vpunpcklqdq %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[0],xmm3[0]
movq %rdx, %r11
subq %r8, %r11
vmovq (%r11), %xmm3
vmovd -0x4(%rdx,%r8), %xmm4
movq %r10, %r11
subq %r9, %r11
vmovd (%r11), %xmm5
vpunpcklbw %xmm5, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3],xmm4[4],xmm5[4],xmm4[5],xmm5[5],xmm4[6],xmm5[6],xmm4[7],xmm5[7]
subq %rsi, %r10
vmovd (%r10), %xmm5
vmovd -0x4(%rcx), %xmm6
vpunpcklbw %xmm6, %xmm5, %xmm5 # xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3],xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]
vpunpcklwd %xmm5, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3]
vmovd -0x4(%rcx,%rsi), %xmm5
vmovd -0x4(%rcx,%r9), %xmm6
vpunpcklbw %xmm6, %xmm5, %xmm5 # xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3],xmm5[4],xmm6[4],xmm5[5],xmm6[5],xmm5[6],xmm6[6],xmm5[7],xmm6[7]
subq %r8, %rdi
vmovd (%rdi), %xmm6
vmovd -0x4(%r13,%r8), %xmm7
vpunpcklbw %xmm7, %xmm6, %xmm6 # xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1],xmm6[2],xmm7[2],xmm6[3],xmm7[3],xmm6[4],xmm7[4],xmm6[5],xmm7[5],xmm6[6],xmm7[6],xmm6[7],xmm7[7]
vpunpcklwd %xmm6, %xmm5, %xmm5 # xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1],xmm5[2],xmm6[2],xmm5[3],xmm6[3]
vpermt2d %xmm5, %xmm21, %xmm4
vpunpcklqdq %xmm4, %xmm3, %xmm3 # xmm3 = xmm3[0],xmm4[0]
vpsadbw %xmm19, %xmm2, %xmm2
vpsrldq $0x8, %xmm2, %xmm4      # xmm4 = xmm2[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpaddw %xmm2, %xmm4, %xmm2
vpsrlw $0x3, %xmm2, %xmm2
vpavgw %xmm19, %xmm2, %xmm2
vpbroadcastb %xmm2, %xmm2
vpsadbw %xmm19, %xmm3, %xmm3
vpsrldq $0x8, %xmm3, %xmm4      # xmm4 = xmm3[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpaddw %xmm3, %xmm4, %xmm3
vpsrlw $0x3, %xmm3, %xmm3
vpavgw %xmm19, %xmm3, %xmm3
vpbroadcastb %xmm3, %xmm3
vmovq (%rdx,%r8), %xmm5
vmovq (%rdx), %xmm4
vpunpcklbw %xmm2, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1],xmm4[2],xmm2[2],xmm4[3],xmm2[3],xmm4[4],xmm2[4],xmm4[5],xmm2[5],xmm4[6],xmm2[6],xmm4[7],xmm2[7]
vpunpcklbw %xmm3, %xmm5, %xmm5 # xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1],xmm5[2],xmm3[2],xmm5[3],xmm3[3],xmm5[4],xmm3[4],xmm5[5],xmm3[5],xmm5[6],xmm3[6],xmm5[7],xmm3[7]
movq %rcx, %r10
subq %r9, %r10
vmovq (%r10), %xmm7
vmovq (%rdx,%rsi), %xmm6
vpunpcklbw %xmm2, %xmm6, %xmm6 # xmm6 = xmm6[0],xmm2[0],xmm6[1],xmm2[1],xmm6[2],xmm2[2],xmm6[3],xmm2[3],xmm6[4],xmm2[4],xmm6[5],xmm2[5],xmm6[6],xmm2[6],xmm6[7],xmm2[7]
vpunpcklbw %xmm3, %xmm7, %xmm7 # xmm7 = xmm7[0],xmm3[0],xmm7[1],xmm3[1],xmm7[2],xmm3[2],xmm7[3],xmm3[3],xmm7[4],xmm3[4],xmm7[5],xmm3[5],xmm7[6],xmm3[6],xmm7[7],xmm3[7]
movq %rcx, %r11
subq %rsi, %r11
vmovq (%r11), %xmm8
vmovq (%rdx,%r9), %xmm9
vpunpcklbw %xmm2, %xmm9, %xmm9 # xmm9 = xmm9[0],xmm2[0],xmm9[1],xmm2[1],xmm9[2],xmm2[2],xmm9[3],xmm2[3],xmm9[4],xmm2[4],xmm9[5],xmm2[5],xmm9[6],xmm2[6],xmm9[7],xmm2[7]
movq %rcx, %r12
subq %r8, %r12
vmovq (%rcx), %xmm10
vmovq (%r12), %xmm11
vpunpcklbw %xmm3, %xmm8, %xmm8 # xmm8 = xmm8[0],xmm3[0],xmm8[1],xmm3[1],xmm8[2],xmm3[2],xmm8[3],xmm3[3],xmm8[4],xmm3[4],xmm8[5],xmm3[5],xmm8[6],xmm3[6],xmm8[7],xmm3[7]
vpunpcklbw %xmm2, %xmm11, %xmm11 # xmm11 = xmm11[0],xmm2[0],xmm11[1],xmm2[1],xmm11[2],xmm2[2],xmm11[3],xmm2[3],xmm11[4],xmm2[4],xmm11[5],xmm2[5],xmm11[6],xmm2[6],xmm11[7],xmm2[7]
vmovq (%rcx,%rsi), %xmm12
vmovq (%rdx,%rax), %xmm13
vpunpcklbw %xmm3, %xmm10, %xmm10 # xmm10 = xmm10[0],xmm3[0],xmm10[1],xmm3[1],xmm10[2],xmm3[2],xmm10[3],xmm3[3],xmm10[4],xmm3[4],xmm10[5],xmm3[5],xmm10[6],xmm3[6],xmm10[7],xmm3[7]
vpunpcklbw %xmm2, %xmm13, %xmm13 # xmm13 = xmm13[0],xmm2[0],xmm13[1],xmm2[1],xmm13[2],xmm2[2],xmm13[3],xmm2[3],xmm13[4],xmm2[4],xmm13[5],xmm2[5],xmm13[6],xmm2[6],xmm13[7],xmm2[7]
vpunpcklbw %xmm3, %xmm12, %xmm12 # xmm12 = xmm12[0],xmm3[0],xmm12[1],xmm3[1],xmm12[2],xmm3[2],xmm12[3],xmm3[3],xmm12[4],xmm3[4],xmm12[5],xmm3[5],xmm12[6],xmm3[6],xmm12[7],xmm3[7]
movq %r13, %rdi
subq %r9, %rdi
vmovq (%rcx,%r9), %xmm14
vmovq (%rdi), %xmm15
vpunpcklbw %xmm2, %xmm15, %xmm15 # xmm15 = xmm15[0],xmm2[0],xmm15[1],xmm2[1],xmm15[2],xmm2[2],xmm15[3],xmm2[3],xmm15[4],xmm2[4],xmm15[5],xmm2[5],xmm15[6],xmm2[6],xmm15[7],xmm2[7]
vpunpcklbw %xmm3, %xmm14, %xmm14 # xmm14 = xmm14[0],xmm3[0],xmm14[1],xmm3[1],xmm14[2],xmm3[2],xmm14[3],xmm3[3],xmm14[4],xmm3[4],xmm14[5],xmm3[5],xmm14[6],xmm3[6],xmm14[7],xmm3[7]
movq %r13, %r15
subq %rsi, %r15
movq %r13, %r14
subq %r8, %r14
vmovq (%r14), %xmm16
vmovq (%r15), %xmm17
vpunpcklbw %xmm2, %xmm17, %xmm17 # xmm17 = xmm17[0],xmm2[0],xmm17[1],xmm2[1],xmm17[2],xmm2[2],xmm17[3],xmm2[3],xmm17[4],xmm2[4],xmm17[5],xmm2[5],xmm17[6],xmm2[6],xmm17[7],xmm2[7]
vpunpcklbw %xmm3, %xmm16, %xmm16 # xmm16 = xmm16[0],xmm3[0],xmm16[1],xmm3[1],xmm16[2],xmm3[2],xmm16[3],xmm3[3],xmm16[4],xmm3[4],xmm16[5],xmm3[5],xmm16[6],xmm3[6],xmm16[7],xmm3[7]
vmovq (%r13), %xmm18
vpunpcklbw %xmm2, %xmm18, %xmm2 # xmm2 = xmm18[0],xmm2[0],xmm18[1],xmm2[1],xmm18[2],xmm2[2],xmm18[3],xmm2[3],xmm18[4],xmm2[4],xmm18[5],xmm2[5],xmm18[6],xmm2[6],xmm18[7],xmm2[7]
vmovq (%rcx,%rax), %xmm18
vpunpcklbw %xmm3, %xmm18, %xmm3 # xmm3 = xmm18[0],xmm3[0],xmm18[1],xmm3[1],xmm18[2],xmm3[2],xmm18[3],xmm3[3],xmm18[4],xmm3[4],xmm18[5],xmm3[5],xmm18[6],xmm3[6],xmm18[7],xmm3[7]
vpmaddubsw %xmm1, %xmm4, %xmm4
vpmaddubsw %xmm1, %xmm5, %xmm5
vpmaddubsw %xmm1, %xmm6, %xmm6
vpmaddubsw %xmm1, %xmm7, %xmm7
vpmaddubsw %xmm1, %xmm9, %xmm9
vpmaddubsw %xmm1, %xmm8, %xmm8
vpmaddubsw %xmm1, %xmm11, %xmm11
vpmaddubsw %xmm1, %xmm10, %xmm10
vpmaddubsw %xmm1, %xmm13, %xmm13
vpmaddubsw %xmm1, %xmm12, %xmm12
vpmaddubsw %xmm1, %xmm15, %xmm15
vpmaddubsw %xmm1, %xmm14, %xmm14
vpmaddubsw %xmm1, %xmm17, %xmm17
vpmaddubsw %xmm1, %xmm16, %xmm16
vpmaddubsw %xmm1, %xmm2, %xmm2
vpmaddubsw %xmm1, %xmm3, %xmm1
vpsraw %xmm0, %xmm4, %xmm3
vpsraw %xmm0, %xmm5, %xmm4
vpsraw %xmm0, %xmm6, %xmm5
vpsraw %xmm0, %xmm7, %xmm6
vpsraw %xmm0, %xmm9, %xmm7
vpsraw %xmm0, %xmm8, %xmm8
vpsraw %xmm0, %xmm11, %xmm9
vpsraw %xmm0, %xmm10, %xmm10
vpsraw %xmm0, %xmm13, %xmm11
vpsraw %xmm0, %xmm12, %xmm12
vpsraw %xmm0, %xmm15, %xmm13
vpsraw %xmm0, %xmm14, %xmm14
vpsraw %xmm0, %xmm17, %xmm15
vpsraw %xmm0, %xmm16, %xmm16
vpsraw %xmm0, %xmm2, %xmm2
vpsraw %xmm0, %xmm1, %xmm0
vpackuswb %xmm4, %xmm3, %xmm1
vmovq %xmm1, (%rdx)
vpextrq $0x1, %xmm1, (%rdx,%r8)
vpackuswb %xmm6, %xmm5, %xmm1
vmovq %xmm1, (%rdx,%rsi)
vpextrq $0x1, %xmm1, (%r10)
vpackuswb %xmm8, %xmm7, %xmm1
vmovq %xmm1, (%rdx,%r9)
vpextrq $0x1, %xmm1, (%r11)
vpackuswb %xmm10, %xmm9, %xmm1
vmovq %xmm1, (%r12)
vpextrq $0x1, %xmm1, (%rcx)
vpackuswb %xmm12, %xmm11, %xmm1
vmovq %xmm1, (%rdx,%rax)
vpextrq $0x1, %xmm1, (%rcx,%rsi)
vpackuswb %xmm14, %xmm13, %xmm1
vmovq %xmm1, (%rdi)
vpextrq $0x1, %xmm1, (%rcx,%r9)
vpackuswb %xmm16, %xmm15, %xmm1
vmovq %xmm1, (%r15)
vpextrq $0x1, %xmm1, (%r14)
vpackuswb %xmm0, %xmm2, %xmm0
vmovq %xmm0, (%r13)
vpextrq $0x1, %xmm0, (%rcx,%rax)
movq 0x10(%rsp), %r15
movl 0x8(%rsp), %r14d
movl 0xc(%rsp), %r13d
movl $0x130, %r12d           # imm = 0x130
jmp 0xb5cf
callq 0xf911
vpxord %xmm19, %xmm19, %xmm19
vpbroadcastw 0x2852b(%rip), %xmm20 # 0x33af0
vpbroadcastq 0x2bde1(%rip), %xmm21 # 0x373b0
movq 0x680(%rbx), %rax
movb 0x2e(%rbx), %cl
addb $0x2, %cl
movb %cl, 0x1(%rax)
movq 0x680(%rbx), %rax
leaq (%rax,%r12), %r9
movq %r9, 0x680(%rbx)
movl 0x654(%rbx), %ecx
incl %ecx
movw %cx, 0x654(%rbx)
movq 0x6a8(%rbx), %r10
leaq (%r10,%r12), %rdx
movq %rdx, 0x6a8(%rbx)
movq 0x668(%rbx), %rdi
addq $0x10, %rdi
movq %rdi, 0x668(%rbx)
movq 0x670(%rbx), %rdx
addq $0x8, %rdx
movq %rdx, 0x670(%rbx)
movq 0x678(%rbx), %rsi
addq $0x8, %rsi
movq %rsi, 0x678(%rbx)
movzwl 0x30(%rbx), %r8d
cmpw %r8w, %cx
jl 0xb6ba
movswq %r8w, %rcx
movl $0x260, %r9d            # imm = 0x260
addq %r9, %rax
movq %rax, 0x680(%rbx)
movw $0x0, 0x654(%rbx)
incw 0x656(%rbx)
addq %r9, %r10
movq %r10, 0x6a8(%rbx)
movzwl 0x34(%rbx), %r9d
subq %rcx, %r9
shlq $0x4, %r9
addq %r9, %rdi
movq %rdi, 0x668(%rbx)
movzwl 0x36(%rbx), %r9d
subq %rcx, %r9
leaq (%rdx,%r9,8), %rcx
movq %rcx, 0x670(%rbx)
leaq (%rsi,%r9,8), %rcx
movq %rcx, 0x678(%rbx)
xorl %ecx, %ecx
movq %rax, %r9
incl %r13d
cmpl %r15d, %r13d
jne 0xad90
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq