// File: /workspace/github_c_makefile_star2_O0/tvlabs[P]edge264/./edge264_inter.c
// Function: decode_inter_chroma
static void decode_inter_chroma(int w, int h, size_t dstride, uint8_t *dst, size_t sstride, const uint8_t *src, i8x16 ABCD, i8x16 wod) {
		i8x16 wo32 = shufflehi(shufflelo(wod, 1, 1, 2, 2), 0, 0, 1, 1);
		i64x2 wd64 = shr128(wod, 14);
		i8x16 abcd = shufflelo(ABCD, 0, 0, 1, 1);
		i8x16 AB = shuffle32(abcd, 0, 0, 0, 0);
		i8x16 CD = shuffle32(abcd, 1, 1, 1, 1);
		ssize_t sstride3 = sstride * 3, dstride3 = dstride * 3;
		
		if (w == 16) {
			i8x16 wb = shuffle32(wo32, 0, 0, 0, 0);
			i8x16 wr = shuffle32(wo32, 1, 1, 1, 1);
			i16x8 ob = shuffle32(wo32, 2, 2, 2, 2);
			i16x8 or = shuffle32(wo32, 3, 3, 3, 3);
			i8x16 l0 = load128(src);
			i8x16 l1 = load128(src + sstride);
			i8x16 r0 = ziplo8(l0, shr128(l0, 1));
			i8x16 r1 = ziplo8(l1, shr128(l1, 1));
			do {
				i8x16 l2 = load128(src + sstride * 2);
				i8x16 l3 = load128(src + sstride3);
				i8x16 r2 = ziplo8(l2, shr128(l2, 1));
				i8x16 r3 = ziplo8(l3, shr128(l3, 1));
				i16x8 x0 = maddubs(r0, AB) + maddubs(r2, CD);
				i16x8 x1 = maddubs(r1, AB) + maddubs(r3, CD);
				i8x16 p = packus16(avg16(x0 >> 5, (i8x16){}), avg16(x1 >> 5, (i8x16){}));
				i8x16 q = load8x2(dst, dst + dstride);
				i16x8 vb = shr16(adds16(maddubs(ziplo8(q, p), wb), ob), wd64);
				i16x8 vr = shr16(adds16(maddubs(ziphi8(q, p), wr), or), wd64);
				i64x2 v = packus16(vb, vr);
				*(int64_t *)dst = v[0];
				*(int64_t *)(dst + dstride) = v[1];
				src += sstride * 2;
				dst += dstride * 2;
				r0 = r2, r1 = r3;
			} while (h -= 2);
			
		} else if (w == 8) {
			i8x16 wbr = shuffle32(wo32, 0, 0, 1, 1);
			i16x8 obr = shuffle32(wo32, 2, 2, 3, 3);
			i8x16 shuf = {0, 1, 1, 2, 2, 3, 3, 4, 8, 9, 9, 10, 10, 11, 11, 12};
			i8x16 r0 = shuffle(load8x2(src, src + sstride), shuf);
			src += sstride * 2;
			do {
				i8x16 r1 = shuffle(load8x2(src, src + sstride), shuf);
				i8x16 r2 = shuffle(load8x2(src + sstride * 2, src + sstride3), shuf);
				i16x8 x0 = maddubs(r0, AB) + maddubs(r1, CD);
				i16x8 x1 = maddubs(r1, AB) + maddubs(r2, CD);
				i8x16 p = packus16(avg16(x0 >> 5, (i8x16){}), avg16(x1 >> 5, (i8x16){}));
				i8x16 q = load4x4(dst, dst + dstride, dst + dstride * 2, dst + dstride3);
				i16x8 vb = shr16(adds16(maddubs(ziplo8(q, p), wbr), obr), wd64);
				i16x8 vr = shr16(adds16(maddubs(ziphi8(q, p), wbr), obr), wd64);
				i32x4 v = packus16(vb, vr);
				*(int32_t *)dst = v[0];
				*(int32_t *)(dst + dstride) = v[1];
				*(int32_t *)(dst + dstride * 2) = v[2];
				*(int32_t *)(dst + dstride3) = v[3];
				src += sstride * 4;
				dst += dstride * 4;
				r0 = r2;
			} while (h -= 4);
			
		} else {
			i8x16 wbr = shuffle32(wo32, 0, 1, 0, 1);
			i16x8 obr = shuffle32(wo32, 2, 3, 2, 3);
			i8x16 shuf = {0, 1, 1, 2, 4, 5, 5, 6, 8, 9, 9, 10, 12, 13, 13, 14};
			i8x16 r0 = shuffle((i32x4){*(int32_t *)src, *(int32_t *)(src + sstride)}, shuf);
			src += sstride * 2;
			do {
				i8x16 r1 = shuffle(load4x4(src, src + sstride, src + sstride * 2, src + sstride3), shuf);
				i16x8 x0 = maddubs(ziplo64(r0, r1), AB) + maddubs(r1, CD);
				i16x8 q = {*(int16_t *)dst, *(int16_t *)(dst + dstride), *(int16_t *)(dst + dstride * 2), *(int16_t *)(dst + dstride * 3)};
				i8x16 p = packus16(avg16(x0 >> 5, (i8x16){}), (i8x16){});
				i16x8 v = packus16(shr16(adds16(maddubs(ziplo8(q, p), wbr), obr), wd64), (i8x16){});
				*(int16_t *)dst = v[0];
				*(int16_t *)(dst + dstride) = v[1];
				*(int16_t *)(dst + dstride * 2) = v[2];
				*(int16_t *)(dst + dstride3) = v[3];
				src += sstride * 4;
				dst += dstride * 4;
				r0 = shr128(r1, 8);
			} while (h -= 4);
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xac0, %rsp            # imm = 0xAC0
movl %edi, -0x724(%rbp)
movl %esi, -0x728(%rbp)
movq %rdx, -0x730(%rbp)
movq %rcx, -0x738(%rbp)
movq %r8, -0x740(%rbp)
movq %r9, -0x748(%rbp)
vmovdqa %xmm0, -0x760(%rbp)
vmovdqa %xmm1, -0x770(%rbp)
vmovdqa -0x770(%rbp), %xmm0
vmovdqa 0xa65ed(%rip), %xmm1    # 0xc9360
vpshufb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x780(%rbp)
vmovdqa -0x770(%rbp), %xmm0
vpsrldq $0xe, %xmm0, %xmm0      # xmm0 = xmm0[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
vmovdqa %xmm0, -0x790(%rbp)
vmovdqa -0x760(%rbp), %xmm0
vpshuflw $0x50, %xmm0, %xmm0     # xmm0 = xmm0[0,0,1,1,4,5,6,7]
vmovdqa %xmm0, -0x7a0(%rbp)
vpbroadcastd -0x7a0(%rbp), %xmm0
vmovdqa %xmm0, -0x7b0(%rbp)
vpbroadcastd -0x79c(%rbp), %xmm0
vmovdqa %xmm0, -0x7c0(%rbp)
imulq $0x3, -0x740(%rbp), %rax
movq %rax, -0x7c8(%rbp)
imulq $0x3, -0x730(%rbp), %rax
movq %rax, -0x7d0(%rbp)
cmpl $0x10, -0x724(%rbp)
jne 0x233e8
vpbroadcastd -0x780(%rbp), %xmm0
vmovdqa %xmm0, -0x7e0(%rbp)
vpbroadcastd -0x77c(%rbp), %xmm0
vmovdqa %xmm0, -0x7f0(%rbp)
vpbroadcastd -0x778(%rbp), %xmm0
vmovdqa %xmm0, -0x800(%rbp)
vpbroadcastd -0x774(%rbp), %xmm0
vmovdqa %xmm0, -0x810(%rbp)
movq -0x748(%rbp), %rax
movq %rax, -0x668(%rbp)
movq -0x668(%rbp), %rax
vmovdqu (%rax), %xmm0
vmovdqa %xmm0, -0x820(%rbp)
movq -0x748(%rbp), %rax
movq -0x740(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x670(%rbp)
movq -0x670(%rbp), %rax
vmovdqu (%rax), %xmm0
vmovdqa %xmm0, -0x830(%rbp)
vmovdqa -0x820(%rbp), %xmm1
vpsrldq $0x1, %xmm1, %xmm0      # xmm0 = xmm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vmovdqa %xmm1, -0x590(%rbp)
vmovdqa %xmm0, -0x5a0(%rbp)
vmovdqa -0x590(%rbp), %xmm0
vmovdqa -0x5a0(%rbp), %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]
vmovdqa %xmm0, -0x840(%rbp)
vmovdqa -0x830(%rbp), %xmm1
vpsrldq $0x1, %xmm1, %xmm0      # xmm0 = xmm1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vmovdqa %xmm1, -0x5b0(%rbp)
vmovdqa %xmm0, -0x5c0(%rbp)
vmovdqa -0x5b0(%rbp), %xmm0
vmovdqa -0x5c0(%rbp), %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]
vmovdqa %xmm0, -0x850(%rbp)
movq -0x748(%rbp), %rax
movq -0x740(%rbp), %rcx
leaq (%rax,%rcx,2), %rax
movq %rax, -0x678(%rbp)
movq -0x678(%rbp), %rax
vmovdqu (%rax), %xmm0
vmovdqa %xmm0, -0x860(%rbp)
movq -0x748(%rbp), %rax
movq -0x7c8(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x680(%rbp)
movq -0x680(%rbp), %rax
vmovdqu (%rax), %xmm0
vmovdqa %xmm0, -0x870(%rbp)
vmovdqa -0x860(%rbp), %xmm2
vpsrldq $0x1, %xmm2, %xmm1      # xmm1 = xmm2[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm2, -0x5d0(%rbp)
vmovdqa %xmm1, -0x5e0(%rbp)
vmovdqa -0x5d0(%rbp), %xmm1
vmovdqa -0x5e0(%rbp), %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]
vmovdqa %xmm1, -0x880(%rbp)
vmovdqa -0x870(%rbp), %xmm2
vpsrldq $0x1, %xmm2, %xmm1      # xmm1 = xmm2[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
vmovdqa %xmm2, -0x5f0(%rbp)
vmovdqa %xmm1, -0x600(%rbp)
vmovdqa -0x5f0(%rbp), %xmm1
vmovdqa -0x600(%rbp), %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]
vmovdqa %xmm1, -0x890(%rbp)
vmovdqa -0x840(%rbp), %xmm2
vmovdqa -0x7b0(%rbp), %xmm1
vmovdqa %xmm2, -0x3b0(%rbp)
vmovdqa %xmm1, -0x3c0(%rbp)
vmovdqa -0x3b0(%rbp), %xmm1
vmovdqa -0x3c0(%rbp), %xmm2
vpmaddubsw %xmm2, %xmm1, %xmm1
vmovdqa -0x880(%rbp), %xmm3
vmovdqa -0x7c0(%rbp), %xmm2
vmovdqa %xmm3, -0x3d0(%rbp)
vmovdqa %xmm2, -0x3e0(%rbp)
vmovdqa -0x3d0(%rbp), %xmm2
vmovdqa -0x3e0(%rbp), %xmm3
vpmaddubsw %xmm3, %xmm2, %xmm2
vpaddw %xmm2, %xmm1, %xmm1
vmovdqa %xmm1, -0x8a0(%rbp)
vmovdqa -0x850(%rbp), %xmm2
vmovdqa -0x7b0(%rbp), %xmm1
vmovdqa %xmm2, -0x3f0(%rbp)
vmovdqa %xmm1, -0x400(%rbp)
vmovdqa -0x3f0(%rbp), %xmm1
vmovdqa -0x400(%rbp), %xmm2
vpmaddubsw %xmm2, %xmm1, %xmm1
vmovdqa -0x890(%rbp), %xmm3
vmovdqa -0x7c0(%rbp), %xmm2
vmovdqa %xmm3, -0x410(%rbp)
vmovdqa %xmm2, -0x420(%rbp)
vmovdqa -0x410(%rbp), %xmm2
vmovdqa -0x420(%rbp), %xmm3
vpmaddubsw %xmm3, %xmm2, %xmm2
vpaddw %xmm2, %xmm1, %xmm1
vmovdqa %xmm1, -0x8b0(%rbp)
vmovdqa -0x8a0(%rbp), %xmm1
vpsraw $0x5, %xmm1, %xmm2
vmovdqa %xmm0, -0x8d0(%rbp)
vmovdqa -0x8d0(%rbp), %xmm1
vmovdqa %xmm2, -0x250(%rbp)
vmovdqa %xmm1, -0x260(%rbp)
vmovdqa -0x250(%rbp), %xmm1
vmovdqa -0x260(%rbp), %xmm2
vpavgw %xmm2, %xmm1, %xmm1
vmovdqa -0x8b0(%rbp), %xmm2
vpsraw $0x5, %xmm2, %xmm2
vmovdqa %xmm0, -0x8e0(%rbp)
vmovdqa -0x8e0(%rbp), %xmm0
vmovdqa %xmm2, -0x270(%rbp)
vmovdqa %xmm0, -0x280(%rbp)
vmovdqa -0x270(%rbp), %xmm0
vmovdqa -0x280(%rbp), %xmm2
vpavgw %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, -0x2f0(%rbp)
vmovdqa %xmm0, -0x300(%rbp)
vmovdqa -0x2f0(%rbp), %xmm0
vmovdqa -0x300(%rbp), %xmm1
vpackuswb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x8c0(%rbp)
movq -0x738(%rbp), %rax
movq -0x730(%rbp), %rcx
vmovq (%rax,%rcx), %xmm1
vmovq (%rax), %xmm0
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x900(%rbp)
vmovdqa -0x900(%rbp), %xmm0
vmovdqa %xmm0, -0x8f0(%rbp)
vmovdqa -0x8f0(%rbp), %xmm1
vmovdqa -0x8c0(%rbp), %xmm0
vmovdqa %xmm1, -0x610(%rbp)
vmovdqa %xmm0, -0x620(%rbp)
vmovdqa -0x610(%rbp), %xmm0
vmovdqa -0x620(%rbp), %xmm1
vpunpcklbw %xmm1, %xmm0, %xmm1 # xmm1 = 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]
vmovdqa -0x7e0(%rbp), %xmm0
vmovdqa %xmm1, -0x430(%rbp)
vmovdqa %xmm0, -0x440(%rbp)
vmovdqa -0x430(%rbp), %xmm0
vmovdqa -0x440(%rbp), %xmm1
vpmaddubsw %xmm1, %xmm0, %xmm1
vmovdqa -0x800(%rbp), %xmm0
vmovdqa %xmm1, -0x110(%rbp)
vmovdqa %xmm0, -0x120(%rbp)
vmovdqa -0x110(%rbp), %xmm0
vmovdqa -0x120(%rbp), %xmm1
vpaddsw %xmm1, %xmm0, %xmm1
vmovdqa -0x790(%rbp), %xmm0
vmovdqa %xmm1, -0x1b0(%rbp)
vmovdqa %xmm0, -0x1c0(%rbp)
vmovdqa -0x1b0(%rbp), %xmm0
vmovdqa -0x1c0(%rbp), %xmm1
vpsraw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x910(%rbp)
vmovdqa -0x8f0(%rbp), %xmm1
vmovdqa -0x8c0(%rbp), %xmm0
vmovdqa %xmm1, -0xd0(%rbp)
vmovdqa %xmm0, -0xe0(%rbp)
vmovdqa -0xd0(%rbp), %xmm0
vmovdqa -0xe0(%rbp), %xmm1
vpunpckhbw %xmm1, %xmm0, %xmm1 # xmm1 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
vmovdqa -0x7f0(%rbp), %xmm0
vmovdqa %xmm1, -0x450(%rbp)
vmovdqa %xmm0, -0x460(%rbp)
vmovdqa -0x450(%rbp), %xmm0
vmovdqa -0x460(%rbp), %xmm1
vpmaddubsw %xmm1, %xmm0, %xmm1
vmovdqa -0x810(%rbp), %xmm0
vmovdqa %xmm1, -0x130(%rbp)
vmovdqa %xmm0, -0x140(%rbp)
vmovdqa -0x130(%rbp), %xmm0
vmovdqa -0x140(%rbp), %xmm1
vpaddsw %xmm1, %xmm0, %xmm1
vmovdqa -0x790(%rbp), %xmm0
vmovdqa %xmm1, -0x1d0(%rbp)
vmovdqa %xmm0, -0x1e0(%rbp)
vmovdqa -0x1d0(%rbp), %xmm0
vmovdqa -0x1e0(%rbp), %xmm1
vpsraw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x920(%rbp)
vmovdqa -0x910(%rbp), %xmm1
vmovdqa -0x920(%rbp), %xmm0
vmovdqa %xmm1, -0x310(%rbp)
vmovdqa %xmm0, -0x320(%rbp)
vmovdqa -0x310(%rbp), %xmm0
vmovdqa -0x320(%rbp), %xmm1
vpackuswb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x930(%rbp)
movq -0x930(%rbp), %rcx
movq -0x738(%rbp), %rax
movq %rcx, (%rax)
movq -0x928(%rbp), %rdx
movq -0x738(%rbp), %rax
movq -0x730(%rbp), %rcx
movq %rdx, (%rax,%rcx)
movq -0x740(%rbp), %rax
shlq %rax
addq -0x748(%rbp), %rax
movq %rax, -0x748(%rbp)
movq -0x730(%rbp), %rax
shlq %rax
addq -0x738(%rbp), %rax
movq %rax, -0x738(%rbp)
vmovdqa -0x880(%rbp), %xmm0
vmovdqa %xmm0, -0x840(%rbp)
vmovdqa -0x890(%rbp), %xmm0
vmovdqa %xmm0, -0x850(%rbp)
movl -0x728(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x728(%rbp)
cmpl $0x0, %eax
jne 0x22ef9
jmp 0x23e74
cmpl $0x8, -0x724(%rbp)
jne 0x23a12
vmovdqa -0x780(%rbp), %xmm0
vpshufd $0x50, %xmm0, %xmm0     # xmm0 = xmm0[0,0,1,1]
vmovdqa %xmm0, -0x940(%rbp)
vmovdqa -0x780(%rbp), %xmm0
vpshufd $0xfa, %xmm0, %xmm0     # xmm0 = xmm0[2,2,3,3]
vmovdqa %xmm0, -0x950(%rbp)
vmovdqa 0xa5f59(%rip), %xmm0    # 0xc9380
vmovdqa %xmm0, -0x960(%rbp)
movq -0x748(%rbp), %rax
movq -0x740(%rbp), %rcx
vmovq (%rax,%rcx), %xmm1
vmovq (%rax), %xmm0
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x980(%rbp)
vmovdqa -0x980(%rbp), %xmm1
vmovdqa -0x960(%rbp), %xmm0
vmovdqa %xmm1, -0x690(%rbp)
vmovdqa %xmm0, -0x6a0(%rbp)
vmovdqa -0x690(%rbp), %xmm1
vmovdqa -0x6a0(%rbp), %xmm0
vmovdqa %xmm1, -0x90(%rbp)
vmovdqa %xmm0, -0xa0(%rbp)
vmovdqa -0x90(%rbp), %xmm0
vmovdqa -0xa0(%rbp), %xmm1
vpshufb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x970(%rbp)
movq -0x740(%rbp), %rax
shlq %rax
addq -0x748(%rbp), %rax
movq %rax, -0x748(%rbp)
movq -0x748(%rbp), %rax
movq -0x740(%rbp), %rcx
vmovq (%rax,%rcx), %xmm1
vmovq (%rax), %xmm0
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x9a0(%rbp)
vmovdqa -0x9a0(%rbp), %xmm1
vmovdqa -0x960(%rbp), %xmm0
vmovdqa %xmm1, -0x6b0(%rbp)
vmovdqa %xmm0, -0x6c0(%rbp)
vmovdqa -0x6b0(%rbp), %xmm1
vmovdqa -0x6c0(%rbp), %xmm0
vmovdqa %xmm1, -0x70(%rbp)
vmovdqa %xmm0, -0x80(%rbp)
vmovdqa -0x70(%rbp), %xmm0
vmovdqa -0x80(%rbp), %xmm1
vpshufb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x990(%rbp)
movq -0x748(%rbp), %rax
movq -0x740(%rbp), %rcx
movq -0x7c8(%rbp), %rdx
vmovq (%rax,%rdx), %xmm1
vmovq (%rax,%rcx,2), %xmm0
vpunpcklqdq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovdqa %xmm0, -0x9c0(%rbp)
vmovdqa -0x9c0(%rbp), %xmm1
vmovdqa -0x960(%rbp), %xmm0
vmovdqa %xmm1, -0x6d0(%rbp)
vmovdqa %xmm0, -0x6e0(%rbp)
vmovdqa -0x6d0(%rbp), %xmm1
vmovdqa -0x6e0(%rbp), %xmm0
vmovdqa %xmm1, -0x50(%rbp)
vmovdqa %xmm0, -0x60(%rbp)
vmovdqa -0x50(%rbp), %xmm0
vmovdqa -0x60(%rbp), %xmm1
vpshufb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x9b0(%rbp)
vmovdqa -0x970(%rbp), %xmm1
vmovdqa -0x7b0(%rbp), %xmm0
vmovdqa %xmm1, -0x470(%rbp)
vmovdqa %xmm0, -0x480(%rbp)
vmovdqa -0x470(%rbp), %xmm0
vmovdqa -0x480(%rbp), %xmm1
vpmaddubsw %xmm1, %xmm0, %xmm0
vmovdqa -0x990(%rbp), %xmm2
vmovdqa -0x7c0(%rbp), %xmm1
vmovdqa %xmm2, -0x490(%rbp)
vmovdqa %xmm1, -0x4a0(%rbp)
vmovdqa -0x490(%rbp), %xmm1
vmovdqa -0x4a0(%rbp), %xmm2
vpmaddubsw %xmm2, %xmm1, %xmm1
vpaddw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x9d0(%rbp)
vmovdqa -0x990(%rbp), %xmm1
vmovdqa -0x7b0(%rbp), %xmm0
vmovdqa %xmm1, -0x4b0(%rbp)
vmovdqa %xmm0, -0x4c0(%rbp)
vmovdqa -0x4b0(%rbp), %xmm0
vmovdqa -0x4c0(%rbp), %xmm1
vpmaddubsw %xmm1, %xmm0, %xmm0
vmovdqa -0x9b0(%rbp), %xmm2
vmovdqa -0x7c0(%rbp), %xmm1
vmovdqa %xmm2, -0x4d0(%rbp)
vmovdqa %xmm1, -0x4e0(%rbp)
vmovdqa -0x4d0(%rbp), %xmm1
vmovdqa -0x4e0(%rbp), %xmm2
vpmaddubsw %xmm2, %xmm1, %xmm1
vpaddw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x9e0(%rbp)
vmovdqa -0x9d0(%rbp), %xmm0
vpsraw $0x5, %xmm0, %xmm2
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0xa00(%rbp)
vmovdqa -0xa00(%rbp), %xmm1
vmovdqa %xmm2, -0x290(%rbp)
vmovdqa %xmm1, -0x2a0(%rbp)
vmovdqa -0x290(%rbp), %xmm1
vmovdqa -0x2a0(%rbp), %xmm2
vpavgw %xmm2, %xmm1, %xmm1
vmovdqa -0x9e0(%rbp), %xmm2
vpsraw $0x5, %xmm2, %xmm2
vmovdqa %xmm0, -0xa10(%rbp)
vmovdqa -0xa10(%rbp), %xmm0
vmovdqa %xmm2, -0x2b0(%rbp)
vmovdqa %xmm0, -0x2c0(%rbp)
vmovdqa -0x2b0(%rbp), %xmm0
vmovdqa -0x2c0(%rbp), %xmm2
vpavgw %xmm2, %xmm0, %xmm0
vmovdqa %xmm1, -0x330(%rbp)
vmovdqa %xmm0, -0x340(%rbp)
vmovdqa -0x330(%rbp), %xmm0
vmovdqa -0x340(%rbp), %xmm1
vpackuswb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0x9f0(%rbp)
movq -0x738(%rbp), %rsi
movq -0x730(%rbp), %rax
movl (%rsi,%rax), %edx
movl (%rsi,%rax,2), %ecx
movq -0x7d0(%rbp), %rax
movl (%rsi,%rax), %eax
vmovd (%rsi), %xmm0
vpinsrd $0x1, %edx, %xmm0, %xmm0
vpinsrd $0x2, %ecx, %xmm0, %xmm0
vpinsrd $0x3, %eax, %xmm0, %xmm0
vmovdqa %xmm0, -0xa30(%rbp)
vmovdqa -0xa30(%rbp), %xmm0
vmovdqa %xmm0, -0xa20(%rbp)
vmovdqa -0xa20(%rbp), %xmm1
vmovdqa -0x9f0(%rbp), %xmm0
vmovdqa %xmm1, -0x630(%rbp)
vmovdqa %xmm0, -0x640(%rbp)
vmovdqa -0x630(%rbp), %xmm0
vmovdqa -0x640(%rbp), %xmm1
vpunpcklbw %xmm1, %xmm0, %xmm1 # xmm1 = 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]
vmovdqa -0x940(%rbp), %xmm0
vmovdqa %xmm1, -0x4f0(%rbp)
vmovdqa %xmm0, -0x500(%rbp)
vmovdqa -0x4f0(%rbp), %xmm0
vmovdqa -0x500(%rbp), %xmm1
vpmaddubsw %xmm1, %xmm0, %xmm1
vmovdqa -0x950(%rbp), %xmm0
vmovdqa %xmm1, -0x150(%rbp)
vmovdqa %xmm0, -0x160(%rbp)
vmovdqa -0x150(%rbp), %xmm0
vmovdqa -0x160(%rbp), %xmm1
vpaddsw %xmm1, %xmm0, %xmm1
vmovdqa -0x790(%rbp), %xmm0
vmovdqa %xmm1, -0x1f0(%rbp)
vmovdqa %xmm0, -0x200(%rbp)
vmovdqa -0x1f0(%rbp), %xmm0
vmovdqa -0x200(%rbp), %xmm1
vpsraw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0xa40(%rbp)
vmovdqa -0xa20(%rbp), %xmm1
vmovdqa -0x9f0(%rbp), %xmm0
vmovdqa %xmm1, -0xf0(%rbp)
vmovdqa %xmm0, -0x100(%rbp)
vmovdqa -0xf0(%rbp), %xmm0
vmovdqa -0x100(%rbp), %xmm1
vpunpckhbw %xmm1, %xmm0, %xmm1 # xmm1 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
vmovdqa -0x940(%rbp), %xmm0
vmovdqa %xmm1, -0x510(%rbp)
vmovdqa %xmm0, -0x520(%rbp)
vmovdqa -0x510(%rbp), %xmm0
vmovdqa -0x520(%rbp), %xmm1
vpmaddubsw %xmm1, %xmm0, %xmm1
vmovdqa -0x950(%rbp), %xmm0
vmovdqa %xmm1, -0x170(%rbp)
vmovdqa %xmm0, -0x180(%rbp)
vmovdqa -0x170(%rbp), %xmm0
vmovdqa -0x180(%rbp), %xmm1
vpaddsw %xmm1, %xmm0, %xmm1
vmovdqa -0x790(%rbp), %xmm0
vmovdqa %xmm1, -0x210(%rbp)
vmovdqa %xmm0, -0x220(%rbp)
vmovdqa -0x210(%rbp), %xmm0
vmovdqa -0x220(%rbp), %xmm1
vpsraw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0xa50(%rbp)
vmovdqa -0xa40(%rbp), %xmm1
vmovdqa -0xa50(%rbp), %xmm0
vmovdqa %xmm1, -0x350(%rbp)
vmovdqa %xmm0, -0x360(%rbp)
vmovdqa -0x350(%rbp), %xmm0
vmovdqa -0x360(%rbp), %xmm1
vpackuswb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0xa60(%rbp)
movl -0xa60(%rbp), %ecx
movq -0x738(%rbp), %rax
movl %ecx, (%rax)
movl -0xa5c(%rbp), %edx
movq -0x738(%rbp), %rax
movq -0x730(%rbp), %rcx
movl %edx, (%rax,%rcx)
movl -0xa58(%rbp), %edx
movq -0x738(%rbp), %rax
movq -0x730(%rbp), %rcx
movl %edx, (%rax,%rcx,2)
movl -0xa54(%rbp), %edx
movq -0x738(%rbp), %rax
movq -0x7d0(%rbp), %rcx
movl %edx, (%rax,%rcx)
movq -0x740(%rbp), %rax
shlq $0x2, %rax
addq -0x748(%rbp), %rax
movq %rax, -0x748(%rbp)
movq -0x730(%rbp), %rax
shlq $0x2, %rax
addq -0x738(%rbp), %rax
movq %rax, -0x738(%rbp)
vmovdqa -0x9b0(%rbp), %xmm0
vmovdqa %xmm0, -0x970(%rbp)
movl -0x728(%rbp), %eax
subl $0x4, %eax
movl %eax, -0x728(%rbp)
cmpl $0x0, %eax
jne 0x234c7
jmp 0x23e72
vpbroadcastq -0x780(%rbp), %xmm0
vmovdqa %xmm0, -0xa70(%rbp)
vpbroadcastq -0x778(%rbp), %xmm0
vmovdqa %xmm0, -0xa80(%rbp)
vmovdqa 0xa5934(%rip), %xmm0    # 0xc9370
vmovdqa %xmm0, -0xa90(%rbp)
movq -0x748(%rbp), %rax
movq -0x740(%rbp), %rcx
vmovd (%rax,%rcx), %xmm1
vmovd (%rax), %xmm0
vpunpckldq %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
vmovq %xmm0, %xmm0            # xmm0 = xmm0[0],zero
vmovdqa %xmm0, -0xab0(%rbp)
vmovdqa -0xab0(%rbp), %xmm1
vmovdqa -0xa90(%rbp), %xmm0
vmovdqa %xmm1, -0x6f0(%rbp)
vmovdqa %xmm0, -0x700(%rbp)
vmovdqa -0x6f0(%rbp), %xmm1
vmovdqa -0x700(%rbp), %xmm0
vmovdqa %xmm1, -0x30(%rbp)
vmovdqa %xmm0, -0x40(%rbp)
vmovdqa -0x30(%rbp), %xmm0
vmovdqa -0x40(%rbp), %xmm1
vpshufb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0xaa0(%rbp)
movq -0x740(%rbp), %rax
shlq %rax
addq -0x748(%rbp), %rax
movq %rax, -0x748(%rbp)
movq -0x748(%rbp), %rsi
movq -0x740(%rbp), %rax
movl (%rsi,%rax), %edx
movl (%rsi,%rax,2), %ecx
movq -0x7c8(%rbp), %rax
movl (%rsi,%rax), %eax
vmovd (%rsi), %xmm0
vpinsrd $0x1, %edx, %xmm0, %xmm0
vpinsrd $0x2, %ecx, %xmm0, %xmm0
vpinsrd $0x3, %eax, %xmm0, %xmm0
vmovdqa %xmm0, -0xad0(%rbp)
vmovdqa -0xad0(%rbp), %xmm1
vmovdqa -0xa90(%rbp), %xmm0
vmovdqa %xmm1, -0x710(%rbp)
vmovdqa %xmm0, -0x720(%rbp)
vmovdqa -0x710(%rbp), %xmm1
vmovdqa -0x720(%rbp), %xmm0
vmovdqa %xmm1, -0x10(%rbp)
vmovdqa %xmm0, -0x20(%rbp)
vmovdqa -0x10(%rbp), %xmm0
vmovdqa -0x20(%rbp), %xmm1
vpshufb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0xac0(%rbp)
vmovdqa -0xaa0(%rbp), %xmm1
vmovdqa -0xac0(%rbp), %xmm0
vmovdqa %xmm1, -0xb0(%rbp)
vmovdqa %xmm0, -0xc0(%rbp)
vmovdqa -0xb0(%rbp), %xmm0
vmovdqa -0xc0(%rbp), %xmm1
vpunpcklqdq %xmm1, %xmm0, %xmm1 # xmm1 = xmm0[0],xmm1[0]
vmovdqa -0x7b0(%rbp), %xmm0
vmovdqa %xmm1, -0x530(%rbp)
vmovdqa %xmm0, -0x540(%rbp)
vmovdqa -0x530(%rbp), %xmm0
vmovdqa -0x540(%rbp), %xmm1
vpmaddubsw %xmm1, %xmm0, %xmm0
vmovdqa -0xac0(%rbp), %xmm2
vmovdqa -0x7c0(%rbp), %xmm1
vmovdqa %xmm2, -0x550(%rbp)
vmovdqa %xmm1, -0x560(%rbp)
vmovdqa -0x550(%rbp), %xmm1
vmovdqa -0x560(%rbp), %xmm2
vpmaddubsw %xmm2, %xmm1, %xmm1
vpaddw %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0xae0(%rbp)
movq -0x738(%rbp), %rax
movzwl (%rax), %edi
movq -0x730(%rbp), %rsi
leaq (%rsi,%rsi,2), %rcx
movzwl (%rax,%rsi,2), %edx
movzwl (%rax,%rsi), %esi
vmovd %edi, %xmm0
vpinsrw $0x1, %esi, %xmm0, %xmm0
vpinsrw $0x2, %edx, %xmm0, %xmm0
movzwl (%rax,%rcx), %eax
vpinsrw $0x3, %eax, %xmm0, %xmm0
vmovdqa %xmm0, -0xaf0(%rbp)
vmovdqa -0xae0(%rbp), %xmm0
vpsraw $0x5, %xmm0, %xmm2
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, -0xb10(%rbp)
vmovdqa -0xb10(%rbp), %xmm1
vmovdqa %xmm2, -0x2d0(%rbp)
vmovdqa %xmm1, -0x2e0(%rbp)
vmovdqa -0x2d0(%rbp), %xmm1
vmovdqa -0x2e0(%rbp), %xmm2
vpavgw %xmm2, %xmm1, %xmm2
vmovdqa %xmm0, -0xb20(%rbp)
vmovdqa -0xb20(%rbp), %xmm1
vmovdqa %xmm2, -0x370(%rbp)
vmovdqa %xmm1, -0x380(%rbp)
vmovdqa -0x370(%rbp), %xmm1
vmovdqa -0x380(%rbp), %xmm2
vpackuswb %xmm2, %xmm1, %xmm1
vmovdqa %xmm1, -0xb00(%rbp)
vmovdqa -0xaf0(%rbp), %xmm2
vmovdqa -0xb00(%rbp), %xmm1
vmovdqa %xmm2, -0x650(%rbp)
vmovdqa %xmm1, -0x660(%rbp)
vmovdqa -0x650(%rbp), %xmm1
vmovdqa -0x660(%rbp), %xmm2
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]
vmovdqa -0xa70(%rbp), %xmm1
vmovdqa %xmm2, -0x570(%rbp)
vmovdqa %xmm1, -0x580(%rbp)
vmovdqa -0x570(%rbp), %xmm1
vmovdqa -0x580(%rbp), %xmm2
vpmaddubsw %xmm2, %xmm1, %xmm2
vmovdqa -0xa80(%rbp), %xmm1
vmovdqa %xmm2, -0x190(%rbp)
vmovdqa %xmm1, -0x1a0(%rbp)
vmovdqa -0x190(%rbp), %xmm1
vmovdqa -0x1a0(%rbp), %xmm2
vpaddsw %xmm2, %xmm1, %xmm2
vmovdqa -0x790(%rbp), %xmm1
vmovdqa %xmm2, -0x230(%rbp)
vmovdqa %xmm1, -0x240(%rbp)
vmovdqa -0x230(%rbp), %xmm1
vmovdqa -0x240(%rbp), %xmm2
vpsraw %xmm2, %xmm1, %xmm1
vmovdqa %xmm0, -0xb40(%rbp)
vmovdqa -0xb40(%rbp), %xmm0
vmovdqa %xmm1, -0x390(%rbp)
vmovdqa %xmm0, -0x3a0(%rbp)
vmovdqa -0x390(%rbp), %xmm0
vmovdqa -0x3a0(%rbp), %xmm1
vpackuswb %xmm1, %xmm0, %xmm0
vmovdqa %xmm0, -0xb30(%rbp)
movw -0xb30(%rbp), %cx
movq -0x738(%rbp), %rax
movw %cx, (%rax)
movw -0xb2e(%rbp), %dx
movq -0x738(%rbp), %rax
movq -0x730(%rbp), %rcx
movw %dx, (%rax,%rcx)
movw -0xb2c(%rbp), %dx
movq -0x738(%rbp), %rax
movq -0x730(%rbp), %rcx
movw %dx, (%rax,%rcx,2)
movw -0xb2a(%rbp), %dx
movq -0x738(%rbp), %rax
movq -0x7d0(%rbp), %rcx
movw %dx, (%rax,%rcx)
movq -0x740(%rbp), %rcx
movq -0x748(%rbp), %rax
leaq (%rax,%rcx,4), %rax
movq %rax, -0x748(%rbp)
movq -0x730(%rbp), %rcx
movq -0x738(%rbp), %rax
leaq (%rax,%rcx,4), %rax
movq %rax, -0x738(%rbp)
vmovdqa -0xac0(%rbp), %xmm0
vpsrldq $0x8, %xmm0, %xmm0      # xmm0 = xmm0[8,9,10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero
vmovdqa %xmm0, -0xaa0(%rbp)
movl -0x728(%rbp), %eax
subl $0x4, %eax
movl %eax, -0x728(%rbp)
cmpl $0x0, %eax
jne 0x23ad4
jmp 0x23e72
jmp 0x23e74
addq $0xac0, %rsp            # imm = 0xAC0
popq %rbp
retq
nopl (%rax)