user: Demonstrate the C code that generates the assembly output below:

```asm
<Linefit>:
  endbr64
  push   %rbx
  pxor   %xmm1,%xmm1
  mov    %r9,%rbx
  cvtsi2ss %edx,%xmm1
  sub    $0x10,%rsp
  test   %edx,%edx
  jle    L103
  lea    -0x1(%rdx),%r10d
  cmp    $0x2,%r10d
  jbe    L25
  mov    %edx,%r9d
  pxor   %xmm2,%xmm2
  xor    %eax,%eax
  shr    $0x2,%r9d
  movaps %xmm2,%xmm6
  movaps %xmm2,%xmm7
  shl    $0x4,%r9
  nopl   0x0(%rax)
L118:
  movups (%rdi,%rax,1),%xmm0
  movaps %xmm0,%xmm4
  movaps %xmm0,%xmm3
  addss  %xmm7,%xmm4
  shufps $0x55,%xmm0,%xmm3
  addss  %xmm3,%xmm4
  movaps %xmm0,%xmm3
  unpckhps %xmm0,%xmm3
  shufps $0xff,%xmm0,%xmm0
  addss  %xmm3,%xmm4
  movaps %xmm4,%xmm7
  addss  %xmm0,%xmm7
  movups (%rsi,%rax,1),%xmm0
  add    $0x10,%rax
  movaps %xmm0,%xmm5
  movaps %xmm0,%xmm3
  addss  %xmm6,%xmm5
  shufps $0x55,%xmm0,%xmm3
  addss  %xmm3,%xmm5
  movaps %xmm0,%xmm3
  unpckhps %xmm0,%xmm3
  shufps $0xff,%xmm0,%xmm0
  addss  %xmm3,%xmm5
  movaps %xmm5,%xmm6
  addss  %xmm0,%xmm6
  cmp    %rax,%r9
  jne    L118
  mov    %edx,%eax
  and    $0xfffffffc,%eax
  cmp    %eax,%edx
  je     L12
L42:
  movslq %eax,%r11
  addss  (%rdi,%r11,4),%xmm7
  movss  (%rsi,%r11,4),%xmm5
  lea    0x0(,%r11,4),%r9
  lea    0x1(%rax),%r11d
  addss  %xmm6,%xmm5
  movaps %xmm7,%xmm4
  cmp    %edx,%r11d
  jge    L117
  add    $0x2,%eax
  addss  0x4(%rdi,%r9,1),%xmm4
  addss  0x4(%rsi,%r9,1),%xmm5
  cmp    %eax,%edx
  jle    L117
  addss  0x8(%rdi,%r9,1),%xmm4
  addss  0x8(%rsi,%r9,1),%xmm5
L117:
  divss  %xmm1,%xmm4
  divss  %xmm1,%xmm5
  cmp    $0x2,%r10d
  jbe    L132
L120:
  mov    %edx,%r9d
  movaps %xmm4,%xmm6
  movaps %xmm5,%xmm7
  xor    %eax,%eax
  shr    $0x2,%r9d
  movaps %xmm2,%xmm8
  movaps %xmm2,%xmm3
  shufps $0x0,%xmm6,%xmm6
  shl    $0x4,%r9
  shufps $0x0,%xmm7,%xmm7
  nopw   0x0(%rax,%rax,1)
L45:
  movups (%rdi,%rax,1),%xmm9
  subps  %xmm6,%xmm9
  movaps %xmm9,%xmm0
  mulps  %xmm9,%xmm0
  addss  %xmm0,%xmm3
  movaps %xmm0,%xmm1
  shufps $0x55,%xmm0,%xmm1
  addss  %xmm3,%xmm1
  movaps %xmm0,%xmm3
  unpckhps %xmm0,%xmm3
  shufps $0xff,%xmm0,%xmm0
  addss  %xmm1,%xmm3
  addss  %xmm0,%xmm3
  movups (%rsi,%rax,1),%xmm0
  add    $0x10,%rax
  movaps %xmm0,%xmm1
  subps  %xmm6,%xmm0
  subps  %xmm7,%xmm1
  mulps  %xmm1,%xmm0
  mulps  %xmm9,%xmm1
  addss  %xmm0,%xmm8
  movaps %xmm0,%xmm10
  shufps $0x55,%xmm0,%xmm10
  addss  %xmm1,%xmm2
  addss  %xmm8,%xmm10
  movaps %xmm0,%xmm8
  unpckhps %xmm0,%xmm8
  shufps $0xff,%xmm0,%xmm0
  addss  %xmm10,%xmm8
  addss  %xmm0,%xmm8
  movaps %xmm1,%xmm0
  shufps $0x55,%xmm1,%xmm0
  addss  %xmm2,%xmm0
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm0,%xmm2
  addss  %xmm1,%xmm2
  cmp    %r9,%rax
  jne    L45
  mov    %edx,%r9d
  and    $0xfffffffc,%r9d
  mov    %r9d,%eax
  cmp    %edx,%r9d
  je     L9
L108:
  sub    %r9d,%edx
  cmp    $0x1,%edx
  je     L90
  movq   (%rdi,%r9,4),%xmm0
  movaps %xmm4,%xmm6
  movaps %xmm5,%xmm9
  shufps $0xe0,%xmm6,%xmm6
  shufps $0xe0,%xmm9,%xmm9
  subps  %xmm6,%xmm0
  movaps %xmm0,%xmm1
  mulps  %xmm0,%xmm1
  movaps %xmm1,%xmm7
  shufps $0xe5,%xmm1,%xmm1
  addss  %xmm3,%xmm7
  movaps %xmm1,%xmm3
  movq   (%rsi,%r9,4),%xmm1
  mov    %edx,%r9d
  and    $0xfffffffe,%r9d
  add    %r9d,%eax
  addss  %xmm7,%xmm3
  movaps %xmm1,%xmm7
  subps  %xmm6,%xmm1
  subps  %xmm9,%xmm7
  mulps  %xmm7,%xmm1
  mulps  %xmm7,%xmm0
  movaps %xmm1,%xmm6
  shufps $0xe5,%xmm1,%xmm1
  addss  %xmm8,%xmm6
  addss  %xmm6,%xmm1
  movaps %xmm1,%xmm8
  movaps %xmm0,%xmm1
  shufps $0xe5,%xmm0,%xmm0
  addss  %xmm2,%xmm1
  movaps %xmm0,%xmm2
  addss  %xmm1,%xmm2
  cmp    %r9d,%edx
  je     L9
L90:
  cltq
  movss  (%rdi,%rax,4),%xmm0
  subss  %xmm4,%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm0,%xmm1
  addss  %xmm1,%xmm3
  movss  (%rsi,%rax,4),%xmm1
  movaps %xmm1,%xmm6
  subss  %xmm4,%xmm1
  subss  %xmm5,%xmm6
  mulss  %xmm6,%xmm1
  mulss  %xmm6,%xmm0
  addss  %xmm1,%xmm8
  addss  %xmm0,%xmm2
L9:
  movaps %xmm2,%xmm0
  movss  %xmm2,0x8(%rsp)
  divss  %xmm3,%xmm0
  movss  %xmm8,0xc(%rsp)
  movss  %xmm0,(%r8)
  mulss  %xmm4,%xmm0
  subss  %xmm0,%xmm5
  movaps %xmm3,%xmm0
  movss  %xmm5,(%rcx)
  call   <sqrt@plt>
  movss  0xc(%rsp),%xmm8
  movss  %xmm0,0x4(%rsp)
  movaps %xmm8,%xmm0
  call   <sqrt@plt>
  mulss  0x4(%rsp),%xmm0
  movss  0x8(%rsp),%xmm2
  mov    $0x1,%eax
  divss  %xmm0,%xmm2
  movss  %xmm2,(%rbx)
  add    $0x10,%rsp
  pop    %rbx
  ret
  nopl   (%rax)
L12:
  divss  %xmm1,%xmm7
  movaps %xmm6,%xmm5
  divss  %xmm1,%xmm5
  movaps %xmm7,%xmm4
  jmp    L120
  nopl   0x0(%rax,%rax,1)
L103:
  pxor   %xmm2,%xmm2
  movaps %xmm2,%xmm4
  movaps %xmm2,%xmm8
  movaps %xmm2,%xmm3
  divss  %xmm1,%xmm4
  movaps %xmm4,%xmm5
  jmp    L9
L132:
  xor    %r9d,%r9d
  movaps %xmm2,%xmm8
  movaps %xmm2,%xmm3
  xor    %eax,%eax
  jmp    L108
L25:
  pxor   %xmm2,%xmm2
  xor    %eax,%eax
  movaps %xmm2,%xmm6
  movaps %xmm2,%xmm7
  jmp    L42
```

assistant: ```c
int Linefit(float *x, float *y, int N, float *ret_a, float *ret_b, float *ret_r) {
  float xbar, ybar;
  float sxx, syy, sxy;
  int i;
  xbar = ybar = 0.0;
  for (i = 0; i < N; i++) {
    xbar += x[i];
    ybar += y[i];
  }
  xbar /= N;
  ybar /= N;
  sxx = syy = sxy = 0.0;
  for (i = 0; i < N; i++) {
    sxx += (x[i] - xbar) * (x[i] - xbar);
    syy += (y[i] - ybar) * (y[i] - xbar);
    sxy += (x[i] - xbar) * (y[i] - ybar);
  }
  *ret_b = sxy / sxx;
  *ret_a = ybar - xbar * (*ret_b);
  *ret_r = sxy / (sqrt(sxx) * sqrt(syy));
  return 1;
}
```