user: What would the C source look like for the assembly code provided here:

```asm
<sweep_v>:
  endbr64
  push   %r15
  movaps %xmm2,%xmm5
  push   %r14
  mov    %rdi,%r14
  push   %r13
  mov    %ecx,%r13d
  push   %r12
  mov    %r8d,%r12d
  push   %rbp
  mov    %edx,%ebp
  mov    %esi,%edx
  push   %rbx
  imul   %ebp,%edx
  mov    %esi,%ebx
  sub    $0xd8,%rsp
  movss  %xmm1,0xc(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0xc8(%rsp)
  xor    %eax,%eax
  movl   $0x3d8f5c29,0x44(%rsp)
  movabs $0x3e99999a3e4ccccd,%rax
  mov    %rax,0x88(%rsp)
  movabs $0x3f0000003ecccccd,%rax
  mov    %rax,0x90(%rsp)
  movabs $0x3f3333333f19999a,%rax
  mov    %rax,0x98(%rsp)
  movabs $0x3e19999a3dcccccd,%rax
  mov    %rax,0x48(%rsp)
  movabs $0x3f3333333e99999a,%rax
  mov    %rax,0x50(%rsp)
  movabs $0x4396000043480000,%rax
  mov    %rax,0xa4(%rsp)
  movabs $0x43fa000043c80000,%rax
  mov    %rax,0xac(%rsp)
  movabs $0x442f000044160000,%rax
  mov    %rax,0xb4(%rsp)
  movabs $0x4461000044480000,%rax
  mov    %rax,0xbc(%rsp)
  movabs $0x4248000041c80000,%rax
  mov    %rax,0x64(%rsp)
  movabs $0x4348000042c80000,%rax
  mov    %rax,0x6c(%rsp)
  movabs $0x4448000043c80000,%rax
  movl   $0x3dcccccd,0x84(%rsp)
  mov    %rax,0x74(%rsp)
  test   %edx,%edx
  jle    L33
  movslq %edx,%rdx
  xor    %esi,%esi
  movss  %xmm3,0x18(%rsp)
  shl    $0x2,%rdx
  movss  %xmm0,0x10(%rsp)
  movss  %xmm2,0x14(%rsp)
  call   <memset@plt>
  movss  0x10(%rsp),%xmm0
  movss  0x14(%rsp),%xmm5
  movss  0x18(%rsp),%xmm3
L33:
  test   %ebx,%ebx
  je     L307
  test   %ebp,%ebp
  je     L307
  pxor   %xmm4,%xmm4
  ucomiss %xmm4,%xmm3
  jp     L324
  jne    L324
  ucomiss %xmm4,%xmm5
  jp     L317
  jne    L317
  movss  D197(%rip),%xmm3
  movss  D206(%rip),%xmm5
L206:
  imul   $0xe,%ebp,%edx
  lea    0x7(%rbx),%r15d
  test   %edx,%edx
  lea    0xf(%rdx),%eax
  cmovns %edx,%eax
  sar    $0x4,%eax
  mov    %eax,0x10(%rsp)
  mov    %eax,%ecx
  lea    (%rbx,%rbx,2),%eax
  add    %eax,%eax
  lea    0x7(%rax),%r9d
  cmovns %eax,%r9d
  lea    0xf(%rbp),%eax
  sar    $0x3,%r9d
  test   %ebp,%ebp
  cmovns %ebp,%eax
  sar    $0x4,%eax
  test   %ebx,%ebx
  cmovns %ebx,%r15d
  mov    %eax,0x14(%rsp)
  mov    %eax,%r8d
  sar    $0x3,%r15d
  test   %r13d,%r13d
  jne    L143
  sub    $0x8,%rsp
  movaps %xmm0,%xmm2
  movaps %xmm3,%xmm1
  mov    %ebp,%edx
  push   %r12
  movaps %xmm5,%xmm0
  mov    %ebx,%esi
  mov    %r14,%rdi
  push   $0x0
  push   %rcx
  mov    %r15d,%ecx
  movss  %xmm3,0x3c(%rsp)
  movss  %xmm5,0x38(%rsp)
  call   <draw_sweep_1@plt>
  movss  0x38(%rsp),%xmm5
  movss  0x3c(%rsp),%xmm3
  add    $0x20,%rsp
  pxor   %xmm4,%xmm4
L22:
  lea    -0xf(%r15),%r10d
  sub    $0x3c,%r15d
  test   %r12d,%r12d
  jne    L137
  lea    0xa0(%rsp),%r11
  mov    %r15d,0x30(%rsp)
  subss  %xmm5,%xmm3
  movss  D159(%rip),%xmm2
  mov    %r13d,0x38(%rsp)
  movss  D93(%rip),%xmm6
  mov    %ebp,%r13d
  mov    %r11,%r15
  lea    0x84(%rsp),%r12
  mov    %ebx,%ebp
  jmp    L312
  nop
L359:
  cmp    %r12,%r15
  je     L169
L49:
  movss  (%r12),%xmm2
  add    $0x4,%r12
L312:
  movaps %xmm2,%xmm0
  subss  %xmm5,%xmm0
  divss  %xmm3,%xmm0
  comiss %xmm4,%xmm0
  jb     L359
  comiss %xmm0,%xmm6
  jb     L359
  pxor   %xmm1,%xmm1
  movss  %xmm2,0x28(%rsp)
  sub    $0x8,%rsp
  mov    %ebp,%esi
  movss  %xmm5,0x28(%rsp)
  mov    %r10d,%ecx
  mov    %r13d,%edx
  mov    %r14,%rdi
  cvtsi2ssl 0x18(%rsp),%xmm1
  movss  %xmm3,0x24(%rsp)
  mov    D13(%rip),%rax
  mov    $0xa,%r9d
  mulss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2ssl 0x1c(%rsp),%xmm1
  push   $0x3
  mov    %r10d,0x28(%rsp)
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%ebx
  movq   %rax,%xmm0
  mov    %ebx,%r8d
  call   <draw_rectangle@plt>
  movss  0x38(%rsp),%xmm2
  mov    %r13d,%edx
  mov    %ebp,%esi
  lea    D198(%rip),%rax
  mov    0x40(%rsp),%ecx
  lea    0x6(%rbx),%r8d
  mov    %r14,%rdi
  mov    %rax,(%rsp)
  mov    D13(%rip),%rax
  mov    $0x6,%r9d
  movaps %xmm2,%xmm0
  movq   %rax,%xmm1
  call   <dispF@plt>
  pop    %r9
  pxor   %xmm4,%xmm4
  pop    %r10
  movss  D93(%rip),%xmm6
  movss  0x20(%rsp),%xmm5
  movss  0x1c(%rsp),%xmm3
  mov    0x18(%rsp),%r10d
  cmp    %r12,%r15
  jne    L49
  nop
L169:
  mov    %ebp,%ebx
  pxor   %xmm6,%xmm6
  mov    %r13d,%ebp
  movss  D193(%rip),%xmm2
  cvtsi2ss %ebp,%xmm6
  lea    0x0(,%rbx,8),%eax
  mov    0x38(%rsp),%r13d
  movss  D93(%rip),%xmm7
  sub    %ebx,%eax
  lea    0xc4(%rsp),%r10
  lea    0xa4(%rsp),%r12
  lea    0x7(%rax),%r11d
  cmovns %eax,%r11d
  sar    $0x3,%r11d
  lea    0xa(%r11),%r15d
  add    $0x5,%r11d
  mov    %r15d,0x3c(%rsp)
  mov    %ebx,%r15d
  mov    %r10,%rbx
  jmp    L25
  nopl   0x0(%rax)
L103:
  cmp    %r12,%rbx
  je     L307
L126:
  movss  (%r12),%xmm2
  add    $0x4,%r12
L25:
  movaps %xmm2,%xmm0
  divss  %xmm6,%xmm0
  test   %r13d,%r13d
  jne    L257
  mulss  0xc(%rsp),%xmm0
L257:
  subss  %xmm5,%xmm0
  divss  %xmm3,%xmm0
  comiss %xmm4,%xmm0
  jb     L103
  comiss %xmm0,%xmm7
  jb     L103
  pxor   %xmm1,%xmm1
  movss  %xmm2,0x38(%rsp)
  sub    $0x8,%rsp
  mov    %ebp,%edx
  movss  %xmm5,0x38(%rsp)
  mov    %r11d,%ecx
  mov    %r15d,%esi
  mov    %r14,%rdi
  cvtsi2ssl 0x18(%rsp),%xmm1
  movss  %xmm6,0x30(%rsp)
  mov    D13(%rip),%rax
  mov    $0xa,%r9d
  movss  %xmm3,0x28(%rsp)
  mulss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2ssl 0x1c(%rsp),%xmm1
  push   $0x3
  mov    %r11d,0x28(%rsp)
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%r8d
  movq   %rax,%xmm0
  mov    %r8d,0x2c(%rsp)
  call   <draw_rectangle@plt>
  movss  0x48(%rsp),%xmm2
  mov    %r14,%rdi
  mov    %ebp,%edx
  lea    D294(%rip),%rax
  mov    0x2c(%rsp),%r8d
  mov    0x4c(%rsp),%ecx
  mov    %r15d,%esi
  mov    %rax,(%rsp)
  mov    D13(%rip),%rax
  movaps %xmm2,%xmm0
  mov    $0x6,%r9d
  add    $0x6,%r8d
  movq   %rax,%xmm1
  call   <dispF@plt>
  pop    %rdi
  pxor   %xmm4,%xmm4
  pop    %r8
  movss  D93(%rip),%xmm7
  movss  0x30(%rsp),%xmm5
  movss  0x28(%rsp),%xmm6
  movss  0x20(%rsp),%xmm3
  mov    0x18(%rsp),%r11d
  cmp    %r12,%rbx
  jne    L126
  nopl   0x0(%rax)
L307:
  mov    0xc8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L0
  add    $0xd8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L324:
  ucomiss %xmm4,%xmm5
  jp     L229
  movd   %xmm5,%eax
  cmove  D206(%rip),%eax
  movd   %eax,%xmm5
L229:
  ucomiss %xmm3,%xmm5
  jp     L206
  jne    L206
  cvtss2sd %xmm3,%xmm3
  addsd  D125(%rip),%xmm3
  cvtsd2ss %xmm3,%xmm3
  jmp    L206
L137:
  movsd  D87(%rip),%xmm2
  cvtss2sd %xmm3,%xmm3
  cvtss2sd %xmm5,%xmm5
  lea    0x58(%rsp),%r11
  mov    %r15d,0x18(%rsp)
  movss  D93(%rip),%xmm7
  lea    0x40(%rsp),%r12
  mov    %r11,%r15
  movapd %xmm2,%xmm0
  movapd %xmm2,%xmm6
  mov    %r13d,0x1c(%rsp)
  mov    %r10d,%r13d
  divsd  %xmm3,%xmm0
  divsd  %xmm5,%xmm6
  movss  D159(%rip),%xmm5
  movapd %xmm0,%xmm3
  subsd  %xmm6,%xmm3
  jmp    L172
  nopl   0x0(%rax)
L12:
  add    $0x4,%r12
  cmp    %r12,%r15
  je     L348
L318:
  movss  (%r12),%xmm5
L172:
  pxor   %xmm1,%xmm1
  movapd %xmm2,%xmm0
  cvtss2sd %xmm5,%xmm1
  divsd  %xmm1,%xmm0
  subsd  %xmm6,%xmm0
  divsd  %xmm3,%xmm0
  cvtsd2ss %xmm0,%xmm0
  comiss %xmm4,%xmm0
  jb     L12
  comiss %xmm0,%xmm7
  jb     L12
  pxor   %xmm1,%xmm1
  movss  %xmm5,0x38(%rsp)
  sub    $0x8,%rsp
  mov    %ebp,%edx
  movsd  %xmm3,0x38(%rsp)
  mov    %r13d,%ecx
  mov    %ebx,%esi
  mov    %r14,%rdi
  cvtsi2ssl 0x18(%rsp),%xmm1
  movsd  %xmm6,0x30(%rsp)
  mov    $0xa,%r9d
  mov    D13(%rip),%rax
  add    $0x4,%r12
  mulss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2ssl 0x1c(%rsp),%xmm1
  push   $0x3
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%r8d
  movq   %rax,%xmm0
  mov    %r8d,0x30(%rsp)
  call   <draw_rectangle@plt>
  lea    D198(%rip),%rax
  mov    %ebx,%esi
  mov    %ebp,%edx
  mov    0x30(%rsp),%r8d
  mov    0x28(%rsp),%ecx
  mov    %rax,(%rsp)
  mov    %r14,%rdi
  movss  0x48(%rsp),%xmm5
  mov    D13(%rip),%rax
  mov    $0x6,%r9d
  add    $0x6,%r8d
  movq   %rax,%xmm1
  movaps %xmm5,%xmm0
  call   <dispF@plt>
  mov    D87(%rip),%rax
  pop    %rcx
  pxor   %xmm4,%xmm4
  pop    %rsi
  movss  D93(%rip),%xmm7
  movsd  0x30(%rsp),%xmm3
  movsd  0x28(%rsp),%xmm6
  movq   %rax,%xmm2
  cmp    %r12,%r15
  jne    L318
  nopw   0x0(%rax,%rax,1)
L348:
  lea    0x0(,%rbx,8),%edx
  pxor   %xmm7,%xmm7
  lea    0x7c(%rsp),%r10
  mov    0x1c(%rsp),%r13d
  sub    %ebx,%edx
  cvtsi2ss %ebp,%xmm7
  movss  D304(%rip),%xmm5
  movss  D93(%rip),%xmm8
  lea    0x7(%rdx),%eax
  lea    0x64(%rsp),%r15
  cmovns %edx,%eax
  sar    $0x3,%eax
  lea    0xa(%rax),%r12d
  lea    0x5(%rax),%r11d
  mov    %r12d,0x3c(%rsp)
  mov    %ebx,%r12d
  mov    %r10,%rbx
  jmp    L249
  nopw   0x0(%rax,%rax,1)
L319:
  cmp    %r15,%rbx
  je     L307
  movss  (%r15),%xmm5
  add    $0x4,%r15
L249:
  movaps %xmm5,%xmm1
  divss  %xmm7,%xmm1
  test   %r13d,%r13d
  jne    L60
  mulss  0xc(%rsp),%xmm1
L60:
  movapd %xmm2,%xmm0
  cvtss2sd %xmm1,%xmm1
  divsd  %xmm1,%xmm0
  subsd  %xmm6,%xmm0
  divsd  %xmm3,%xmm0
  cvtsd2ss %xmm0,%xmm0
  comiss %xmm4,%xmm0
  jb     L319
  comiss %xmm0,%xmm8
  jb     L319
  pxor   %xmm1,%xmm1
  movss  %xmm5,0x38(%rsp)
  sub    $0x8,%rsp
  mov    %ebp,%edx
  movss  %xmm7,0x38(%rsp)
  mov    %r11d,%ecx
  mov    %r12d,%esi
  mov    %r14,%rdi
  cvtsi2ssl 0x18(%rsp),%xmm1
  movsd  %xmm3,0x30(%rsp)
  mov    D13(%rip),%rax
  mov    $0xa,%r9d
  movsd  %xmm6,0x28(%rsp)
  mulss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2ssl 0x1c(%rsp),%xmm1
  push   $0x3
  mov    %r11d,0x28(%rsp)
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%r8d
  movq   %rax,%xmm0
  mov    %r8d,0x2c(%rsp)
  call   <draw_rectangle@plt>
  movss  0x48(%rsp),%xmm5
  mov    %ebp,%edx
  mov    %r12d,%esi
  lea    D294(%rip),%rax
  mov    0x2c(%rsp),%r8d
  mov    0x4c(%rsp),%ecx
  mov    %r14,%rdi
  mov    %rax,(%rsp)
  mov    D13(%rip),%rax
  movaps %xmm5,%xmm0
  mov    $0x6,%r9d
  add    $0x6,%r8d
  movq   %rax,%xmm1
  call   <dispF@plt>
  pop    %rax
  pxor   %xmm4,%xmm4
  pop    %rdx
  mov    D87(%rip),%rax
  movss  0x30(%rsp),%xmm7
  movss  D93(%rip),%xmm8
  movsd  0x28(%rsp),%xmm3
  movsd  0x20(%rsp),%xmm6
  mov    0x18(%rsp),%r11d
  movq   %rax,%xmm2
  jmp    L319
  nopl   0x0(%rax)
L143:
  sub    $0x8,%rsp
  movaps %xmm0,%xmm2
  movaps %xmm3,%xmm1
  mov    %r15d,%ecx
  push   %r12
  movaps %xmm5,%xmm0
  mov    %ebp,%edx
  mov    %ebx,%esi
  push   $0x0
  mov    0x28(%rsp),%eax
  mov    %r14,%rdi
  push   %rax
  mov    0x34(%rsp),%r8d
  movss  %xmm3,0x3c(%rsp)
  movss  %xmm5,0x38(%rsp)
  call   <draw_sweep_2@plt>
  add    $0x20,%rsp
  pxor   %xmm4,%xmm4
  movss  0x1c(%rsp),%xmm3
  movss  0x18(%rsp),%xmm5
  jmp    L22
  nop
L317:
  movss  D206(%rip),%xmm3
  jmp    L229
L0:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: label: D197
type_infered: byte[4]
name: parse_data
arguments: label: D206
type_infered: byte[4]
name: parse_data
arguments: label: D159
type_infered: f32
name: parse_data
arguments: label: D93
type_infered: f32
name: parse_data
arguments: label: D13
type_infered: f64
name: parse_data
arguments: label: D198
type_infered: string
name: parse_data
arguments: label: D193
type_infered: f32
name: parse_data
arguments: label: D294
type_infered: string
name: parse_data
arguments: label: D125
type_infered: byte[8]
name: parse_data
arguments: label: D87
type_infered: f32[2]
name: parse_data
arguments: label: D304
type_infered: f32

tool: {"D197": [0xcc,0xbc,0x0c,0x2c]}

tool: {"D206": [0xcc,0xbc,0x8c,0x2b]}

tool: D159: 0.05

tool: D93: 1

tool: D13: 0.9

tool: D198: %5.2f

tool: D193: 100

tool: D294: %4.0f

tool: {"D125": [0x11,0xea,0x2d,0x81,0x99,0x97,0x71,0x3d]}

tool: {"D87": [0.0,1.875]}

tool: D304: 10

assistant: ```c
void sweep_v(float *sl, int w, int h, int a, float amp, int lps, float ar, float sf, float ef) {
  float xl, nf;
  float lf1[] = {0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7};
  float lf2[] = {0.05, 0.07, 0.1, 0.15, 0.3, 0.7};
  float lf3[] = {100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 700.0, 800.0, 900.0};
  float lf4[] = {10.0, 25.0, 50.0, 100.0, 200.0, 400.0, 800.0};
  int i, x, y;
  for (x = 0; x < w * h; x++)
    sl[x] = 0.0;
  if ((w == 0) || (h == 0))
    return;
  if (ef == 0.0)
    ef = 1.0E-12;
  if (sf == 0.0)
    sf = 1.0E-12;
  if (ef == sf)
    ef = ef + 1E-12;
  if (a == 0)
    draw_sweep_1(sl, w, h, w / 8, h / 16, 6 * w / 8, 14 * h / 16, sf, ef, amp, 0, lps);
  else
    draw_sweep_2(sl, w, h, w / 8, h / 16, 6 * w / 8, 14 * h / 16, sf, ef, amp, 0, lps);
  if (lps == 0) {
    for (i = 0; i < sizeof(lf1) / sizeof(float); i++) {
      xl = (lf1[i] - sf) / (ef - sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = w / 8 - 60;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, w / 8 - 15, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf1[i], "%5.2f", 0.9);
      }
    }
    for (i = 0; i < sizeof(lf3) / sizeof(float); i++) {
      nf = lf3[i] / (float)h;
      if (a == 0)
        nf = nf * ar;
      xl = (nf - sf) / (ef - sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = 7 * w / 8 + 10;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, 7 * w / 8 + 5, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf3[i], "%4.0f", 0.9);
      }
    }
  } else {
    for (i = 0; i < sizeof(lf2) / sizeof(float); i++) {
      xl = (1.0 / lf2[i] - 1.0 / sf) / (1.0 / ef - 1.0 / sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = w / 8 - 60;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, w / 8 - 15, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf2[i], "%5.2f", 0.9);
      }
    }
    for (i = 0; i < sizeof(lf4) / sizeof(float); i++) {
      nf = lf4[i] / (float)h;
      if (a == 0)
        nf = nf * ar;
      xl = (1.0 / nf - 1.0 / sf) / (1.0 / ef - 1.0 / sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = 7 * w / 8 + 10;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, 7 * w / 8 + 5, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf4[i], "%4.0f", 0.9);
      }
    }
  }
}
```