// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/libraries/libwebp/src/dsp/dec_sse2.c
// Function: VE4_SSE2
static void VE4_SSE2(uint8_t* dst) {    // vertical
  const __m128i one = _mm_set1_epi8(1);
  const __m128i ABCDEFGH = _mm_loadl_epi64((__m128i*)(dst - BPS - 1));
  const __m128i BCDEFGH0 = _mm_srli_si128(ABCDEFGH, 1);
  const __m128i CDEFGH00 = _mm_srli_si128(ABCDEFGH, 2);
  const __m128i a = _mm_avg_epu8(ABCDEFGH, CDEFGH00);
  const __m128i lsb = _mm_and_si128(_mm_xor_si128(ABCDEFGH, CDEFGH00), one);
  const __m128i b = _mm_subs_epu8(a, lsb);
  const __m128i avg = _mm_avg_epu8(b, BCDEFGH0);
  const int vals = _mm_cvtsi128_si32(avg);
  int i;
  for (i = 0; i < 4; ++i) {
    WebPInt32ToMem(dst + i * BPS, vals);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x118(%rbp)
movb $0x1, -0xa1(%rbp)
movb -0xa1(%rbp), %al
movb %al, -0x1a9(%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, -0x130(%rbp)
movq -0x118(%rbp), %rax
addq $-0x21, %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rax
movq (%rax), %xmm0
movaps %xmm0, -0x110(%rbp)
movaps -0x110(%rbp), %xmm0
movaps %xmm0, -0x140(%rbp)
movaps -0x140(%rbp), %xmm0
psrldq $0x1, %xmm0             # xmm0 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero
movaps %xmm0, -0x150(%rbp)
movaps -0x140(%rbp), %xmm0
psrldq $0x2, %xmm0             # xmm0 = xmm0[2,3,4,5,6,7,8,9,10,11,12,13,14,15],zero,zero
movaps %xmm0, -0x160(%rbp)
movaps -0x140(%rbp), %xmm1
movaps -0x160(%rbp), %xmm0
movaps %xmm1, -0x10(%rbp)
movaps %xmm0, -0x20(%rbp)
movaps -0x10(%rbp), %xmm0
movaps -0x20(%rbp), %xmm1
pavgb %xmm1, %xmm0
movaps %xmm0, -0x170(%rbp)
movaps -0x140(%rbp), %xmm1
movaps -0x160(%rbp), %xmm0
movaps %xmm1, -0x50(%rbp)
movaps %xmm0, -0x60(%rbp)
movaps -0x50(%rbp), %xmm1
movaps -0x60(%rbp), %xmm0
pxor %xmm0, %xmm1
movaps -0x130(%rbp), %xmm0
movaps %xmm1, -0x90(%rbp)
movaps %xmm0, -0xa0(%rbp)
movaps -0x90(%rbp), %xmm0
movaps -0xa0(%rbp), %xmm1
pand %xmm1, %xmm0
movaps %xmm0, -0x180(%rbp)
movaps -0x170(%rbp), %xmm1
movaps -0x180(%rbp), %xmm0
movaps %xmm1, -0xc0(%rbp)
movaps %xmm0, -0xd0(%rbp)
movaps -0xc0(%rbp), %xmm0
movaps -0xd0(%rbp), %xmm1
psubusb %xmm1, %xmm0
movaps %xmm0, -0x190(%rbp)
movaps -0x190(%rbp), %xmm1
movaps -0x150(%rbp), %xmm0
movaps %xmm1, -0x30(%rbp)
movaps %xmm0, -0x40(%rbp)
movaps -0x30(%rbp), %xmm0
movaps -0x40(%rbp), %xmm1
pavgb %xmm1, %xmm0
movaps %xmm0, -0x1a0(%rbp)
movaps -0x1a0(%rbp), %xmm0
movaps %xmm0, -0xe0(%rbp)
movaps -0xe0(%rbp), %xmm0
movaps %xmm0, -0xf0(%rbp)
movl -0xf0(%rbp), %eax
movl %eax, -0x1a4(%rbp)
movl $0x0, -0x1a8(%rbp)
cmpl $0x4, -0x1a8(%rbp)
jge 0x15dc9b
movq -0x118(%rbp), %rdi
movl -0x1a8(%rbp), %eax
shll $0x5, %eax
cltq
addq %rax, %rdi
movl -0x1a4(%rbp), %esi
callq 0x15f7a0
movl -0x1a8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a8(%rbp)
jmp 0x15dc61
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
nopw %cs:(%rax,%rax)