// File: /workspace/github_c_makefile_star2_O3/tvlabs[P]edge264/./edge264_intra.c
// Function: decode_intra8x8
static void decode_intra8x8(int mode, uint8_t * restrict p, size_t stride, i16x8 clip) {
	INIT_P();
	i8x16 i2a, j2s, j2y, k2z, j2q, k2r, l2s;
	i64x2 pred, p0, p1, p2, p3, p4, p5, p6, p7;
	switch (mode) {
	default: __builtin_unreachable();
	
	case I8x8_V_8:
		j2q = load128(P(-1, -1));
		l2s = shr128(j2q, 2);
		k2r = shr128(j2q, 1);
	vertical_8x8_lowpass:
		pred = lowpass8(j2q, k2r, l2s);
	store1_8x8:
		*(int64_t *)P(0, 0) = pred[0];
		*(int64_t *)P(0, 1) = pred[0];
		*(int64_t *)P(0, 2) = pred[0];
		*(int64_t *)P(0, 3) = pred[0];
		*(int64_t *)P(0, 4) = pred[0];
		*(int64_t *)P(0, 5) = pred[0];
		*(int64_t *)P(0, 6) = pred[0];
		*(int64_t *)P(0, 7) = pred[0];
		return;
	case I8x8_V_C_8: {
		i8x16 v0 = load128(P(-8, -1));
		l2s = shrc128(v0, 9);
		j2q = shr128(v0, 7);
		k2r = shr128(v0, 8);
		} goto vertical_8x8_lowpass;
	case I8x8_V_D_8:
		k2r = load128(P(0, -1));
		j2q = shlc128(k2r, 1);
		l2s = shr128(k2r, 1);
		goto vertical_8x8_lowpass;
	case I8x8_V_CD_8:
		k2r = spreadh8(load64(P(0, -1)));
		j2q = shlc128(k2r, 1);
		l2s = shr128(k2r, 1);
		goto vertical_8x8_lowpass;
	
	case I8x8_H_8:
		i2a = (i8x16){*P(-1, -1)};
	horizontal_8x8_load_left: {
		i2a = ziplo64(ldleft7(i2a, 0, 1, 2, 3, 4, 5, 6), set8(*P(-1, 7)));
		i8x16 v0 = lowpass8(shr128(i2a, 2), shr128(i2a, 1), i2a);
		p0 = broadcast8(v0, 0);
		p1 = broadcast8(v0, 1);
		p2 = broadcast8(v0, 2);
		p3 = broadcast8(v0, 3);
		p4 = broadcast8(v0, 4);
		p5 = broadcast8(v0, 5);
		p6 = broadcast8(v0, 6);
		p7 = broadcast8(v0, 7);
	} store8_8x8:
		*(int64_t *)P(0, 0) = p0[0];
		*(int64_t *)P(0, 1) = p1[0];
		*(int64_t *)P(0, 2) = p2[0];
		*(int64_t *)P(0, 3) = p3[0];
		*(int64_t *)P(0, 4) = p4[0];
		*(int64_t *)P(0, 5) = p5[0];
		*(int64_t *)P(0, 6) = p6[0];
		*(int64_t *)P(0, 7) = p7[0];
		return;
	case I8x8_H_D_8:
		i2a = (i8x16){*P(-1, 0)};
		goto horizontal_8x8_load_left;
	
	case I8x8_DC_8:
		i2a = j2s = load128(P(-1, -1));
	dc_8x8_load_left:
		i2a = ziplo64(ldleft7(i2a, 0, 1, 2, 3, 4, 5, 6), set8(*P(-1, 7)));
	dc_8x8_sum: {
		i8x16 v0 = ziplo64(j2s, i2a);
		i8x16 v1 = ziplo64(shr128(j2s, 1), shr128(i2a, 1));
		i8x16 v2 = ziplo64(shr128(j2s, 2), shr128(i2a, 2));
		pred = broadcast8(shrru16(sum8(lowpass8(v0, v1, v2)), 4), __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__);
		} goto store1_8x8;
	case I8x8_DC_C_8:
		i2a = j2s = shrc128(load128(P(-8, -1)), 7);
		goto dc_8x8_load_left;
	case I8x8_DC_D_8:
		j2s = shlc128(load128(P(0, -1)), 1);
		i2a = (i8x16){*P(-1, 0)};
		goto dc_8x8_load_left;
	case I8x8_DC_CD_8:
		j2s = shlc128(spreadh8(load64(P(0, -1))), 1);
		i2a = (i8x16){*P(-1, 0)};
		goto dc_8x8_load_left;
	case I8x8_DC_A_8:
		i2a = j2s = load128(P(-1, -1));
		goto dc_8x8_sum;
	case I8x8_DC_AC_8:
		i2a = j2s = shrc128(load128(P(-8, -1)), 7);
		goto dc_8x8_sum;
	case I8x8_DC_AD_8:
		i2a = j2s = shlc128(load128(P(0, -1)), 1);
		goto dc_8x8_sum;
	case I8x8_DC_ACD_8:
		i2a = j2s = shlc128(spreadh8(load64(P(0, -1))), 1);
		goto dc_8x8_sum;
	case I8x8_DC_B_8:
		i2a = (i8x16){*P(-1, -1)};
	dc_8x8_dup_left:
		j2s = i2a = ziplo64(ldleft7(i2a, 0, 1, 2, 3, 4, 5, 6), set8(*P(-1, 7)));
		goto dc_8x8_sum;
	case I8x8_DC_BD_8:
		i2a = (i8x16){*P(-1, 0)};
		goto dc_8x8_dup_left;
	case I8x8_DC_AB_8:
		pred = set8(-128);
		goto store1_8x8;
	
	case I8x8_DDL_8:
		j2y = load128(P(-1, -1));
		k2z = load128(P(0, -1));
	diagonal_down_left_8x8_lowpass: {
		i8x16 v0 = lowpass8(j2y, k2z, shrc128(k2z, 1));
		p0 = lowpass8(v0, shr128(v0, 1), shrc128(v0, 2));
		p1 = shr128(p0, 1);
		p2 = shr128(p0, 2);
		p3 = shr128(p0, 3);
		p4 = shr128(p0, 4);
		p5 = shr128(p0, 5);
		p6 = shr128(p0, 6);
		p7 = shr128(p0, 7);
		} goto store8_8x8;
	case I8x8_DDL_C_8: {
		i8x16 j2r = load128(P(-8, -1));
		j2y = shrc128(j2r, 7);
		k2z = shrc128(j2r, 8);
		} goto diagonal_down_left_8x8_lowpass;
	case I8x8_DDL_D_8:
		k2z = load128(P(0, -1));
		j2y = shlc128(k2z, 1);
		goto diagonal_down_left_8x8_lowpass;
	case I8x8_DDL_CD_8:
		k2z = spreadh8(load64(P(0, -1)));
		j2y = shlc128(k2z, 1);
		goto diagonal_down_left_8x8_lowpass;
	
	case I8x8_DDR_8:
		j2s = load128(P(-1, -1));
	diagonal_down_right_8x8_load_left: {
		i8x16 a2h = ldedge8x8lo();
		i8x16 a2q = shrd128(a2h, j2s, 8);
		i8x16 b2r = shrd128(a2h, j2s, 9);
		i8x16 x0 = lowpass8(shrd128(a2h, j2s, 7), a2q, b2r);
		i8x16 x1 = lowpass8(a2q, b2r, shrd128(a2h, j2s, 10));
		p7 = lowpass8(x0, x1, shr128(x1, 1));
		p6 = shr128(p7, 1);
		p5 = shr128(p7, 2);
		p4 = shr128(p7, 3);
		p3 = shr128(p7, 4);
		p2 = shr128(p7, 5);
		p1 = shr128(p7, 6);
		p0 = shr128(p7, 7);
		} goto store8_8x8;
	case I8x8_DDR_C_8:
		j2s = shrc128(load128(P(-8, -1)), 7);
		goto diagonal_down_right_8x8_load_left;
	
	case I8x8_VR_8:
		j2s = load128(P(-1, -1));
	vertical_right_8x8_load_left: {
		i8x16 a2h = ldedge8x8lo();
		i8x16 a2q = shrd128(a2h, j2s, 8);
		i8x16 b2r = shrd128(a2h, j2s, 9);
		i8x16 c2s = shrd128(a2h, j2s, 10);
		i8x16 v0 = lowpass8(a2q, b2r, c2s);
		i8x16 v1 = shl128(v0, 1);
		i8x16 v2 = lowpass8(v0, v1, shl128(v0, 2));
		p0 = shr128(avgu8(v0, v1), 8);
		p1 = shr128(v2, 8);
		p2 = shrd128(shl128(v2, 8), p0, 15);
		p3 = shrd128(shl128(v2, 9), p1, 15);
		p4 = shrd128(shl128(v2, 10), p2, 15);
		p5 = shrd128(shl128(v2, 11), p3, 15);
		p6 = shrd128(shl128(v2, 12), p4, 15);
		p7 = shrd128(shl128(v2, 13), p5, 15);
		} goto store8_8x8;
	case I8x8_VR_C_8:
		j2s = shrc128(load128(P(-8, -1)), 7);
		goto vertical_right_8x8_load_left;
	
	case I8x8_HD_8: {
		j2s = load128(P(-1, -1));
		i8x16 a2h = ldedge8x8lo();
		i8x16 a2p = shrd128(a2h, j2s, 7);
		i8x16 a2q = shrd128(a2h, j2s, 8);
		i8x16 b2r = shrd128(a2h, j2s, 9);
		i8x16 v0 = lowpass8(a2p, a2q, b2r);
		i8x16 v1 = shr128(v0, 1);
		i8x16 v2 = lowpass8(v0, v1, shr128(v0, 2));
		p7 = ziplo8(avgu8(v0, v1), v2);
		p6 = shr128(p7, 2);
		p5 = shr128(p7, 4);
		p4 = shr128(p7, 6);
		p3 = ziphi64(p7, v2);
		p2 = shr128(p3, 2);
		p1 = shr128(p3, 4);
		p0 = shr128(p3, 6);
		} goto store8_8x8;
	
	case I8x8_VL_8:
		j2y = load128(P(-1, -1));
		k2z = load128(P(0, -1));
	vertical_left_8x8_lowpass: {
		i8x16 v0 = lowpass8(j2y, k2z, shr128(k2z, 1));
		i8x16 v1 = shr128(v0, 1);
		p0 = avgu8(v0, v1);
		p1 = lowpass8(v0, v1, shr128(v0, 2));
		p2 = shr128(p0, 1);
		p3 = shr128(p1, 1);
		p4 = shr128(p2, 1);
		p5 = shr128(p3, 1);
		p6 = shr128(p4, 1);
		p7 = shr128(p5, 1);
		} goto store8_8x8;
	case I8x8_VL_C_8: {
		i8x16 j2r = load128(P(-8, -1));
		j2y = shrc128(j2r, 7);
		k2z = shrc128(j2r, 8);
		} goto vertical_left_8x8_lowpass;
	case I8x8_VL_D_8:
		k2z = load128(P(0, -1));
		j2y = shlc128(k2z, 1);
		goto vertical_left_8x8_lowpass;
	case I8x8_VL_CD_8:
		k2z = spreadh8(load64(P(0, -1)));
		j2y = shlc128(k2z, 1);
		goto vertical_left_8x8_lowpass;
	
	case I8x8_HU_8:
		i2a = (i8x16){*P(-1, -1)};
	horizontal_up_8x8_load_left: {
		i2a = ziplo64(ldleft7(i2a, 0, 1, 2, 3, 4, 5, 6), set8(*P(-1, 7)));
		i8x16 v0 = spreadh8(lowpass8(shr128(i2a, 2), shr128(i2a, 1), i2a));
		i8x16 v1 = shr128(v0, 1);
		p0 = ziplo8(avgu8(v0, v1), lowpass8(v0, v1, shr128(v0, 2)));
		p1 = shr128(p0, 2);
		p2 = shr128(p0, 4);
		p3 = shr128(p0, 6);
		p4 = ziphi64(p0, v0);
		p5 = shr128(p4, 2);
		p6 = shr128(p4, 4);
		p7 = shr128(p4, 6);
		} goto store8_8x8;
	case I8x8_HU_D_8:
		i2a = (i8x16){*P(-1, 0)};
		goto horizontal_up_8x8_load_left;
	}
}

// Assembly:
movq %rdx, %rcx
negq %rcx
leaq (%rsi,%rdx,8), %rax
subq %rdx, %rax
movl %edi, %edi
leaq 0x2074b(%rip), %r8      # 0x33c04
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
vmovupd -0x1(%rsi,%rcx), %xmm1
vpsrldq $0x2, %xmm1, %xmm2      # xmm2 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x1, %xmm1, %xmm0      # xmm0 = xmm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
jmp 0x136ed
vmovdqu -0x8(%rsi,%rcx), %xmm0
vpshufb 0x2031a(%rip), %xmm0, %xmm1 # 0x33800
vpshufb 0x20321(%rip), %xmm0, %xmm0 # 0x33810
jmp 0x13cbc
vpbroadcastq 0x23eab(%rip), %xmm0 # 0x373a8
jmp 0x13932
vmovdqu (%rsi,%rcx), %xmm0
vpshufb 0x202e0(%rip), %xmm0, %xmm0 # 0x337f0
jmp 0x1369e
leaq (%rsi,%rcx), %rdi
decq %rdi
jmp 0x1352e
leaq (%rsi,%rcx), %rdi
decq %rdi
jmp 0x1373e
leaq -0x1(%rsi), %rdi
vpbroadcastb (%rdi), %xmm0
vmovd -0x4(%rsi), %xmm1
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]
vmovd -0x4(%rsi,%rdx), %xmm1
vmovd -0x4(%rsi,%rdx,2), %xmm2
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]
vpunpcklwd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
vmovd -0x4(%rax,%rcx,4), %xmm1
vmovd -0x4(%rsi,%rdx,4), %xmm2
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]
vmovd -0x4(%rax,%rcx,2), %xmm2
vmovd -0x4(%rax,%rcx), %xmm3
vpunpcklbw %xmm3, %xmm2, %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]
vpunpcklwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vpbroadcastq 0x23e33(%rip), %xmm2 # 0x373b0
vpermi2d %xmm1, %xmm0, %xmm2
vpbroadcastb -0x1(%rax), %xmm0
vpunpcklqdq %xmm0, %xmm2, %xmm0 # xmm0 = xmm2[0],xmm0[0]
jmp 0x138d3
vmovdqu (%rsi,%rcx), %xmm0
vpshufb 0x20250(%rip), %xmm0, %xmm0 # 0x337f0
jmp 0x138d3
vmovdqu -0x1(%rsi,%rcx), %xmm0
vmovq -0x8(%rax), %xmm1
vmovq -0x8(%rax,%rcx), %xmm2
vmovq -0x8(%rax,%rcx,2), %xmm3
vpunpcklbw %xmm2, %xmm1, %xmm2 # xmm2 = 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]
vmovq -0x8(%rsi,%rdx,4), %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]
vmovd -0x4(%rax,%rcx,4), %xmm4
vpunpckhwd %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
vmovd -0x4(%rsi,%rdx,2), %xmm3
vpunpcklbw %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3],xmm4[4],xmm3[4],xmm4[5],xmm3[5],xmm4[6],xmm3[6],xmm4[7],xmm3[7]
vmovd -0x4(%rsi,%rdx), %xmm4
vmovd -0x4(%rsi), %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]
vpunpckhdq %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
vpblendd $0xc, %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0,1],xmm2[2,3]
vpalignr $0x7, %xmm1, %xmm0, %xmm1 # xmm1 = xmm1[7,8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6]
vpalignr $0x8, %xmm2, %xmm0, %xmm3 # xmm3 = xmm2[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
vpalignr $0x9, %xmm2, %xmm0, %xmm0 # xmm0 = xmm2[9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7,8]
vpavgb %xmm0, %xmm1, %xmm2
vpbroadcastb 0x205e6(%rip), %xmm4 # 0x33c00
vpternlogq $0x48, %xmm0, %xmm4, %xmm1
vpsubusb %xmm1, %xmm2, %xmm0
vpavgb %xmm3, %xmm0, %xmm0
vpsrldq $0x1, %xmm0, %xmm1      # xmm1 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpsrldq $0x2, %xmm0, %xmm2      # xmm2 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpavgb %xmm2, %xmm0, %xmm3
vpternlogq $0x60, %xmm0, %xmm2, %xmm4
vpsubusb %xmm4, %xmm3, %xmm2
vpavgb %xmm1, %xmm2, %xmm2
vpavgb %xmm1, %xmm0, %xmm0
vpunpcklbw %xmm2, %xmm0, %xmm7 # xmm7 = 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]
vpsrldq $0x2, %xmm7, %xmm6      # xmm6 = xmm7[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x4, %xmm7, %xmm5      # xmm5 = xmm7[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpsrldq $0x6, %xmm7, %xmm4      # xmm4 = xmm7[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero
vpunpckhqdq %xmm2, %xmm7, %xmm3 # xmm3 = xmm7[1],xmm2[1]
vpsrldq $0x2, %xmm3, %xmm2      # xmm2 = xmm3[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x4, %xmm3, %xmm1      # xmm1 = xmm3[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpsrldq $0x6, %xmm3, %xmm0      # xmm0 = xmm3[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero
jmp 0x13d1c
vmovdqu -0x8(%rsi,%rcx), %xmm0
vpshufb 0x2017c(%rip), %xmm0, %xmm0 # 0x33800
jmp 0x13ba7
vmovdqu (%rsi,%rcx), %xmm0
jmp 0x136b9
vmovq (%rsi,%rcx), %xmm0
vpshufb 0x201a2(%rip), %xmm0, %xmm0 # 0x33840
movzbl -0x1(%rsi), %edi
vmovd %edi, %xmm1
jmp 0x13836
vmovq (%rsi,%rcx), %xmm0
vpshufb 0x200f7(%rip), %xmm0, %xmm0 # 0x337b0
vpshufb 0x2012e(%rip), %xmm0, %xmm1 # 0x337f0
vpsrldq $0x1, %xmm0, %xmm2      # xmm2 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
jmp 0x136ed
vmovdqu -0x1(%rsi,%rcx), %xmm0
jmp 0x138d3
vmovdqu -0x8(%rsi,%rcx), %xmm0
vpshufb 0x2019d(%rip), %xmm0, %xmm2 # 0x33880
vpsrldq $0x7, %xmm0, %xmm1      # xmm1 = xmm0[7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero
vpsrldq $0x8, %xmm0, %xmm0      # xmm0 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpavgb %xmm2, %xmm1, %xmm3
vpbroadcastb 0x20506(%rip), %xmm4 # 0x33c00
vpternlogq $0x60, %xmm2, %xmm1, %xmm4
vpsubusb %xmm4, %xmm3, %xmm1
vpavgb %xmm0, %xmm1, %xmm0
jmp 0x13932
leaq -0x1(%rsi), %rdi
jmp 0x13965
vmovdqu -0x1(%rsi,%rcx), %xmm1
vmovdqu (%rsi,%rcx), %xmm0
jmp 0x13b33
vmovq (%rsi,%rcx), %xmm0
vpshufb 0x2007b(%rip), %xmm0, %xmm0 # 0x337b0
jmp 0x13b2a
leaq -0x1(%rsi), %rdi
vpbroadcastb (%rdi), %xmm0
vmovd -0x4(%rsi), %xmm1
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]
vmovd -0x4(%rsi,%rdx), %xmm1
vmovd -0x4(%rsi,%rdx,2), %xmm2
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]
vpunpcklwd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
vmovd -0x4(%rax,%rcx,4), %xmm1
vmovd -0x4(%rsi,%rdx,4), %xmm2
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]
vmovd -0x4(%rax,%rcx,2), %xmm2
vmovd -0x4(%rax,%rcx), %xmm3
vpunpcklbw %xmm3, %xmm2, %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]
vpunpcklwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vpbroadcastq 0x23c23(%rip), %xmm2 # 0x373b0
vpermi2d %xmm1, %xmm0, %xmm2
vpbroadcastb -0x1(%rax), %xmm0
vpunpcklqdq %xmm0, %xmm2, %xmm0 # xmm0 = xmm2[0],xmm0[0]
vpsrldq $0x2, %xmm0, %xmm1      # xmm1 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x1, %xmm0, %xmm2      # xmm2 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpavgb %xmm0, %xmm1, %xmm3
vpbroadcastb 0x2044c(%rip), %xmm4 # 0x33c00
vpternlogq $0x60, %xmm0, %xmm1, %xmm4
vpsubusb %xmm4, %xmm3, %xmm0
vpavgb %xmm2, %xmm0, %xmm1
vpbroadcastb %xmm1, %xmm0
vpunpcklbw %xmm1, %xmm1, %xmm7 # xmm7 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
vpshufb 0x1feab(%rip), %xmm7, %xmm1 # 0x33680
vpshufb 0x20072(%rip), %xmm7, %xmm2 # 0x33850
vpshufb 0x1ff09(%rip), %xmm7, %xmm3 # 0x336f0
vpshufb 0x1fec0(%rip), %xmm7, %xmm4 # 0x336b0
vpshufb 0x1fec7(%rip), %xmm7, %xmm5 # 0x336c0
vpshufb 0x2005e(%rip), %xmm7, %xmm6 # 0x33860
vpshufb 0x20065(%rip), %xmm7, %xmm7 # 0x33870
jmp 0x13d1c
vmovdqu -0x1(%rsi,%rcx), %xmm0
jmp 0x13a4e
vmovdqu -0x8(%rsi,%rcx), %xmm0
vpshufb 0x1ffd6(%rip), %xmm0, %xmm0 # 0x33800
jmp 0x13832
vmovdqu -0x1(%rsi,%rcx), %xmm0
vmovdqa %xmm0, %xmm1
vpslld $0x18, %xmm1, %xmm1
vmovd -0x4(%rsi), %xmm2
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]
vmovd -0x4(%rsi,%rdx), %xmm2
vmovd -0x4(%rsi,%rdx,2), %xmm3
vpunpcklbw %xmm3, %xmm2, %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]
vpunpcklwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vmovd -0x4(%rax,%rcx,4), %xmm2
vmovd -0x4(%rsi,%rdx,4), %xmm3
vpunpcklbw %xmm3, %xmm2, %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]
vmovd -0x4(%rax,%rcx,2), %xmm3
vmovd -0x4(%rax,%rcx), %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]
vpbroadcastq 0x23b2b(%rip), %xmm3 # 0x373b0
vpermi2d %xmm2, %xmm1, %xmm3
vpbroadcastb -0x1(%rax), %xmm1
vpunpcklqdq %xmm1, %xmm3, %xmm1 # xmm1 = xmm3[0],xmm1[0]
jmp 0x138d7
vmovdqu -0x8(%rsi,%rcx), %xmm0
vpshufb 0x1ff5a(%rip), %xmm0, %xmm1 # 0x33800
vpshufb 0x1ff61(%rip), %xmm0, %xmm0 # 0x33810
jmp 0x13b33
vmovq (%rsi,%rcx), %xmm0
vpshufb 0x1ff7e(%rip), %xmm0, %xmm0 # 0x33840
jmp 0x138d3
vmovdqu -0x8(%rsi,%rcx), %xmm0
vpshufb 0x1ff2d(%rip), %xmm0, %xmm0 # 0x33800
vmovdqa %xmm0, %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm2 # xmm2 = xmm0[0],xmm1[0]
vpsrldq $0x1, %xmm1, %xmm3      # xmm3 = xmm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpsrldq $0x1, %xmm0, %xmm4      # xmm4 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vunpcklpd %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0]
vpsrldq $0x2, %xmm0, %xmm0      # xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x2, %xmm1, %xmm1      # xmm1 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vpavgb %xmm0, %xmm2, %xmm1
vpbroadcastb 0x202fc(%rip), %xmm4 # 0x33c00
vpternlogq $0x60, %xmm2, %xmm0, %xmm4
vpsubusb %xmm4, %xmm1, %xmm0
vpavgb %xmm3, %xmm0, %xmm0
vpxor %xmm1, %xmm1, %xmm1
vpsadbw %xmm1, %xmm0, %xmm0
vpsrldq $0x8, %xmm0, %xmm2      # xmm2 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpaddw %xmm0, %xmm2, %xmm0
vpsrlw $0x3, %xmm0, %xmm0
vpavgw %xmm1, %xmm0, %xmm0
vpbroadcastb %xmm0, %xmm0
vmovq %xmm0, %rdi
vmovq %xmm0, (%rsi)
vmovq %xmm0, (%rsi,%rdx)
vmovq %xmm0, (%rsi,%rdx,2)
vmovq %xmm0, (%rax,%rcx,4)
vmovq %xmm0, (%rsi,%rdx,4)
vmovq %xmm0, (%rax,%rcx,2)
vmovq %xmm0, (%rax,%rcx)
jmp 0x13d43
leaq (%rsi,%rcx), %rdi
decq %rdi
vpbroadcastb (%rdi), %xmm0
vmovd -0x4(%rsi), %xmm1
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]
vmovd -0x4(%rsi,%rdx), %xmm1
vmovd -0x4(%rsi,%rdx,2), %xmm2
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]
vpunpcklwd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
vmovd -0x4(%rax,%rcx,4), %xmm1
vmovd -0x4(%rsi,%rdx,4), %xmm2
vmovd -0x4(%rax,%rcx,2), %xmm3
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]
vmovd -0x4(%rax,%rcx), %xmm2
vpunpcklbw %xmm2, %xmm3, %xmm2 # xmm2 = 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]
vpbroadcastq 0x23a00(%rip), %xmm3 # 0x373b0
vpunpcklwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
vpermi2d %xmm1, %xmm0, %xmm3
vpbroadcastb -0x1(%rax), %xmm0
vpunpcklqdq %xmm0, %xmm3, %xmm0 # xmm0 = xmm3[0],xmm0[0]
vpsrldq $0x2, %xmm0, %xmm1      # xmm1 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x1, %xmm0, %xmm2      # xmm2 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpavgb %xmm0, %xmm1, %xmm3
vpbroadcastb 0x20225(%rip), %xmm4 # 0x33c00
vpternlogq $0x48, %xmm0, %xmm4, %xmm1
vpsubusb %xmm1, %xmm3, %xmm0
vpavgb %xmm2, %xmm0, %xmm0
vpshufb 0x1fdbd(%rip), %xmm0, %xmm5 # 0x337b0
vpsrldq $0x1, %xmm5, %xmm1      # xmm1 = xmm5[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpavgb %xmm1, %xmm0, %xmm0
vpsrldq $0x2, %xmm5, %xmm2      # xmm2 = xmm5[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpavgb %xmm2, %xmm5, %xmm3
vpternlogq $0x60, %xmm5, %xmm2, %xmm4
vpsubusb %xmm4, %xmm3, %xmm2
vpavgb %xmm1, %xmm2, %xmm1
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]
vpsrldq $0x2, %xmm0, %xmm1      # xmm1 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x4, %xmm0, %xmm2      # xmm2 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpsrldq $0x6, %xmm0, %xmm3      # xmm3 = xmm0[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero
vunpckhpd %xmm5, %xmm0, %xmm4 # xmm4 = xmm0[1],xmm5[1]
vpsrldq $0x2, %xmm4, %xmm5      # xmm5 = xmm4[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x4, %xmm4, %xmm6      # xmm6 = xmm4[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpsrldq $0x6, %xmm4, %xmm7      # xmm7 = xmm4[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero
jmp 0x13d1c
vmovdqu -0x8(%rsi,%rcx), %xmm0
vpshufb 0x1fdb2(%rip), %xmm0, %xmm0 # 0x33800
vmovq -0x8(%rax), %xmm1
vmovq -0x8(%rax,%rcx), %xmm2
vmovq -0x8(%rax,%rcx,2), %xmm3
vmovq -0x8(%rsi,%rdx,4), %xmm4
vpunpcklbw %xmm2, %xmm1, %xmm2 # xmm2 = 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, %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]
vmovd -0x4(%rax,%rcx,4), %xmm4
vmovd -0x4(%rsi,%rdx,2), %xmm5
vpunpckhwd %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[4],xmm3[4],xmm2[5],xmm3[5],xmm2[6],xmm3[6],xmm2[7],xmm3[7]
vpunpcklbw %xmm5, %xmm4, %xmm3 # xmm3 = 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]
vmovd -0x4(%rsi,%rdx), %xmm4
vmovd -0x4(%rsi), %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]
vpunpckhdq %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
vpblendd $0xc, %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0,1],xmm2[2,3]
vpalignr $0x8, %xmm2, %xmm0, %xmm3 # xmm3 = xmm2[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
vpalignr $0x9, %xmm2, %xmm0, %xmm4 # xmm4 = xmm2[9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7,8]
vpalignr $0x7, %xmm1, %xmm0, %xmm1 # xmm1 = xmm1[7,8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6]
vpavgb %xmm4, %xmm1, %xmm5
vpbroadcastb 0x20143(%rip), %xmm6 # 0x33c00
vpternlogq $0x48, %xmm4, %xmm6, %xmm1
vpsubusb %xmm1, %xmm5, %xmm1
vpavgb %xmm3, %xmm1, %xmm1
vpalignr $0xa, %xmm2, %xmm0, %xmm0 # xmm0 = xmm2[10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7,8,9]
vpavgb %xmm0, %xmm3, %xmm2
vpternlogq $0x48, %xmm0, %xmm6, %xmm3
vpsubusb %xmm3, %xmm2, %xmm0
vpavgb %xmm4, %xmm0, %xmm0
vpsrldq $0x1, %xmm0, %xmm2      # xmm2 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpavgb %xmm2, %xmm1, %xmm3
vpternlogq $0x60, %xmm1, %xmm2, %xmm6
vpsubusb %xmm6, %xmm3, %xmm1
vpavgb %xmm0, %xmm1, %xmm7
vpsrldq $0x1, %xmm7, %xmm6      # xmm6 = xmm7[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpsrldq $0x2, %xmm7, %xmm5      # xmm5 = xmm7[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x3, %xmm7, %xmm4      # xmm4 = xmm7[3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero
vpsrldq $0x4, %xmm7, %xmm3      # xmm3 = xmm7[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpsrldq $0x5, %xmm7, %xmm2      # xmm2 = xmm7[5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero
vpsrldq $0x6, %xmm7, %xmm1      # xmm1 = xmm7[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero
vpsrldq $0x7, %xmm7, %xmm0      # xmm0 = xmm7[7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero
jmp 0x13d1c
vmovdqu (%rsi,%rcx), %xmm0
vpshufb 0x1fcbd(%rip), %xmm0, %xmm1 # 0x337f0
vpshufb 0x1fce4(%rip), %xmm0, %xmm2 # 0x33820
vpbroadcastb 0x200bb(%rip), %xmm3 # 0x33c00
vpavgb %xmm2, %xmm1, %xmm4
vpternlogq $0x48, %xmm2, %xmm3, %xmm1
vpsubusb %xmm1, %xmm4, %xmm1
vpavgb %xmm0, %xmm1, %xmm0
vpshufb 0x1fccf(%rip), %xmm0, %xmm1 # 0x33830
vpsrldq $0x1, %xmm0, %xmm2      # xmm2 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpavgb %xmm1, %xmm0, %xmm4
vpternlogq $0x60, %xmm0, %xmm1, %xmm3
vpsubusb %xmm3, %xmm4, %xmm0
vpavgb %xmm2, %xmm0, %xmm0
vpsrldq $0x1, %xmm0, %xmm1      # xmm1 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpsrldq $0x2, %xmm0, %xmm2      # xmm2 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x3, %xmm0, %xmm3      # xmm3 = xmm0[3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero
vpsrldq $0x4, %xmm0, %xmm4      # xmm4 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
vpsrldq $0x5, %xmm0, %xmm5      # xmm5 = xmm0[5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero
vpsrldq $0x6, %xmm0, %xmm6      # xmm6 = xmm0[6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero
vpsrldq $0x7, %xmm0, %xmm7      # xmm7 = xmm0[7,8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero
jmp 0x13d1c
vmovdqu -0x1(%rsi,%rcx), %xmm0
vmovq -0x8(%rax), %xmm1
vmovq -0x8(%rax,%rcx), %xmm2
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]
vmovq -0x8(%rax,%rcx,2), %xmm2
vmovq -0x8(%rsi,%rdx,4), %xmm3
vpunpcklbw %xmm3, %xmm2, %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]
vpunpckhwd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]
vmovd -0x4(%rax,%rcx,4), %xmm2
vmovd -0x4(%rsi,%rdx,2), %xmm3
vmovd -0x4(%rsi,%rdx), %xmm4
vpunpcklbw %xmm3, %xmm2, %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]
vmovd -0x4(%rsi), %xmm3
vpunpcklbw %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1],xmm4[2],xmm3[2],xmm4[3],xmm3[3],xmm4[4],xmm3[4],xmm4[5],xmm3[5],xmm4[6],xmm3[6],xmm4[7],xmm3[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]
vpalignr $0x8, %xmm1, %xmm0, %xmm2 # xmm2 = xmm1[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
vpalignr $0x9, %xmm1, %xmm0, %xmm3 # xmm3 = xmm1[9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7,8]
vpalignr $0xa, %xmm1, %xmm0, %xmm0 # xmm0 = xmm1[10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7,8,9]
vpavgb %xmm0, %xmm2, %xmm1
vpbroadcastb 0x1fff0(%rip), %xmm4 # 0x33c00
vpternlogq $0x48, %xmm0, %xmm4, %xmm2
vpsubusb %xmm2, %xmm1, %xmm0
vpavgb %xmm3, %xmm0, %xmm0
vpslldq $0x1, %xmm0, %xmm1      # xmm1 = zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
vpslldq $0x2, %xmm0, %xmm2      # xmm2 = zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13]
vpavgb %xmm2, %xmm0, %xmm3
vpternlogq $0x60, %xmm0, %xmm2, %xmm4
vpsubusb %xmm4, %xmm3, %xmm2
vpavgb %xmm1, %xmm2, %xmm7
vpavgb %xmm1, %xmm0, %xmm0
vpsrldq $0x8, %xmm0, %xmm0      # xmm0 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpsrldq $0x8, %xmm7, %xmm1      # xmm1 = xmm7[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vpbroadcastq %xmm7, %xmm2
vpalignr $0xf, %xmm2, %xmm0, %xmm2 # xmm2 = xmm2[15],xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
vpslldq $0x9, %xmm7, %xmm3      # xmm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm7[0,1,2,3,4,5,6]
vpalignr $0xf, %xmm3, %xmm1, %xmm3 # xmm3 = xmm3[15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
vpslldq $0xa, %xmm7, %xmm4      # xmm4 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm7[0,1,2,3,4,5]
vpalignr $0xf, %xmm4, %xmm2, %xmm4 # xmm4 = xmm4[15],xmm2[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
vpslldq $0xb, %xmm7, %xmm5      # xmm5 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm7[0,1,2,3,4]
vpalignr $0xf, %xmm5, %xmm3, %xmm5 # xmm5 = xmm5[15],xmm3[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
vpbroadcastd %xmm7, %xmm6
vpalignr $0xf, %xmm6, %xmm4, %xmm6 # xmm6 = xmm6[15],xmm4[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
vpslldq $0xd, %xmm7, %xmm7      # xmm7 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm7[0,1,2]
vpalignr $0xf, %xmm7, %xmm5, %xmm7 # xmm7 = xmm7[15],xmm5[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
jmp 0x13d1c
vmovdqu (%rsi,%rcx), %xmm0
jmp 0x13ca6
vmovq (%rsi,%rcx), %xmm0
vpshufb 0x1fb0a(%rip), %xmm0, %xmm0 # 0x337b0
vpshufb 0x1fb41(%rip), %xmm0, %xmm1 # 0x337f0
jmp 0x13cbc
vmovdqu -0x1(%rsi,%rcx), %xmm1
vmovdqu (%rsi,%rcx), %xmm0
vpsrldq $0x1, %xmm0, %xmm2      # xmm2 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpavgb %xmm2, %xmm1, %xmm3
vpbroadcastb 0x1ff32(%rip), %xmm4 # 0x33c00
vpternlogq $0x48, %xmm2, %xmm4, %xmm1
vpsubusb %xmm1, %xmm3, %xmm1
vpavgb %xmm0, %xmm1, %xmm1
vpsrldq $0x1, %xmm1, %xmm2      # xmm2 = xmm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpavgb %xmm2, %xmm1, %xmm0
vpsrldq $0x2, %xmm1, %xmm3      # xmm3 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpavgb %xmm3, %xmm1, %xmm5
vpternlogq $0x60, %xmm1, %xmm3, %xmm4
vpsubusb %xmm4, %xmm5, %xmm1
vpavgb %xmm2, %xmm1, %xmm1
vpsrldq $0x1, %xmm0, %xmm2      # xmm2 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpsrldq $0x1, %xmm1, %xmm3      # xmm3 = xmm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpsrldq $0x2, %xmm0, %xmm4      # xmm4 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x2, %xmm1, %xmm5      # xmm5 = xmm1[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
vpsrldq $0x3, %xmm0, %xmm6      # xmm6 = xmm0[3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero
vpsrldq $0x3, %xmm1, %xmm7      # xmm7 = xmm1[3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero
vmovq %xmm0, (%rsi)
vmovlpd %xmm1, (%rsi,%rdx)
vmovlpd %xmm2, (%rsi,%rdx,2)
vmovlpd %xmm3, (%rax,%rcx,4)
vmovlpd %xmm4, (%rsi,%rdx,4)
vmovlpd %xmm5, (%rax,%rcx,2)
vmovlpd %xmm6, (%rax,%rcx)
vmovq %xmm7, %rdi
movq %rdi, (%rax)
retq