// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/libraries/libwebp/src/dsp/rescaler_sse2.c
// Function: LoadDispatchAndMult_SSE2
static WEBP_INLINE void LoadDispatchAndMult_SSE2(const rescaler_t* const src,
                                                 const __m128i* const mult,
                                                 __m128i* const out0,
                                                 __m128i* const out1,
                                                 __m128i* const out2,
                                                 __m128i* const out3) {
  const __m128i A0 = _mm_loadu_si128((const __m128i*)(src + 0));
  const __m128i A1 = _mm_loadu_si128((const __m128i*)(src + 4));
  const __m128i A2 = _mm_srli_epi64(A0, 32);
  const __m128i A3 = _mm_srli_epi64(A1, 32);
  if (mult != NULL) {
    *out0 = _mm_mul_epu32(A0, *mult);
    *out1 = _mm_mul_epu32(A1, *mult);
    *out2 = _mm_mul_epu32(A2, *mult);
    *out3 = _mm_mul_epu32(A3, *mult);
  } else {
    *out0 = A0;
    *out1 = A1;
    *out2 = A2;
    *out3 = A3;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0xd0(%rbp)
movq %rsi, -0xd8(%rbp)
movq %rdx, -0xe0(%rbp)
movq %rcx, -0xe8(%rbp)
movq %r8, -0xf0(%rbp)
movq %r9, -0xf8(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movdqu (%rax), %xmm0
movdqa %xmm0, -0x110(%rbp)
movq -0xd0(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movdqu (%rax), %xmm0
movdqa %xmm0, -0x120(%rbp)
movdqa -0x110(%rbp), %xmm0
movdqa %xmm0, -0xa0(%rbp)
movl $0x20, -0xa4(%rbp)
movdqa -0xa0(%rbp), %xmm0
movl -0xa4(%rbp), %eax
movd %eax, %xmm1
psrlq %xmm1, %xmm0
movdqa %xmm0, -0x130(%rbp)
movdqa -0x120(%rbp), %xmm0
movdqa %xmm0, -0xc0(%rbp)
movl $0x20, -0xc4(%rbp)
movdqa -0xc0(%rbp), %xmm0
movl -0xc4(%rbp), %eax
movd %eax, %xmm1
psrlq %xmm1, %xmm0
movdqa %xmm0, -0x140(%rbp)
cmpq $0x0, -0xd8(%rbp)
je 0x16e467
movaps -0x110(%rbp), %xmm1
movq -0xd8(%rbp), %rax
movaps (%rax), %xmm0
movaps %xmm1, -0x20(%rbp)
movaps %xmm0, -0x30(%rbp)
movaps -0x20(%rbp), %xmm0
movaps -0x30(%rbp), %xmm1
pmuludq %xmm1, %xmm0
movq -0xe0(%rbp), %rax
movaps %xmm0, (%rax)
movaps -0x120(%rbp), %xmm1
movq -0xd8(%rbp), %rax
movaps (%rax), %xmm0
movaps %xmm1, -0x40(%rbp)
movaps %xmm0, -0x50(%rbp)
movaps -0x40(%rbp), %xmm0
movaps -0x50(%rbp), %xmm1
pmuludq %xmm1, %xmm0
movq -0xe8(%rbp), %rax
movaps %xmm0, (%rax)
movaps -0x130(%rbp), %xmm1
movq -0xd8(%rbp), %rax
movaps (%rax), %xmm0
movaps %xmm1, -0x60(%rbp)
movaps %xmm0, -0x70(%rbp)
movaps -0x60(%rbp), %xmm0
movaps -0x70(%rbp), %xmm1
pmuludq %xmm1, %xmm0
movq -0xf0(%rbp), %rax
movaps %xmm0, (%rax)
movaps -0x140(%rbp), %xmm1
movq -0xd8(%rbp), %rax
movaps (%rax), %xmm0
movaps %xmm1, -0x80(%rbp)
movaps %xmm0, -0x90(%rbp)
movaps -0x80(%rbp), %xmm0
movaps -0x90(%rbp), %xmm1
movaps 0x52768(%rip), %xmm3    # 0x1c0bb0
movaps %xmm0, %xmm2
pand %xmm3, %xmm2
movaps %xmm1, %xmm2
pand %xmm3, %xmm2
pmuludq %xmm1, %xmm0
movq -0xf8(%rbp), %rax
movdqa %xmm0, (%rax)
jmp 0x16e4b3
movdqa -0x110(%rbp), %xmm0
movq -0xe0(%rbp), %rax
movdqa %xmm0, (%rax)
movdqa -0x120(%rbp), %xmm0
movq -0xe8(%rbp), %rax
movdqa %xmm0, (%rax)
movdqa -0x130(%rbp), %xmm0
movq -0xf0(%rbp), %rax
movdqa %xmm0, (%rax)
movdqa -0x140(%rbp), %xmm0
movq -0xf8(%rbp), %rax
movdqa %xmm0, (%rax)
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)