user: Please show me the C implementation that matches the assembly code listed below:

```asm
<sweep_v>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xe0,%rsp
  mov    %rdi,-0xb8(%rbp)
  mov    %esi,-0xbc(%rbp)
  mov    %edx,-0xc0(%rbp)
  mov    %ecx,-0xc4(%rbp)
  movss  %xmm0,-0xc8(%rbp)
  mov    %r8d,-0xcc(%rbp)
  movss  %xmm1,-0xd0(%rbp)
  movss  %xmm2,-0xd4(%rbp)
  movss  %xmm3,-0xd8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movss  D163(%rip),%xmm0
  movss  %xmm0,-0x50(%rbp)
  movss  D229(%rip),%xmm0
  movss  %xmm0,-0x4c(%rbp)
  movss  D337(%rip),%xmm0
  movss  %xmm0,-0x48(%rbp)
  movss  D388(%rip),%xmm0
  movss  %xmm0,-0x44(%rbp)
  movss  D32(%rip),%xmm0
  movss  %xmm0,-0x40(%rbp)
  movss  D368(%rip),%xmm0
  movss  %xmm0,-0x3c(%rbp)
  movss  D308(%rip),%xmm0
  movss  %xmm0,-0x38(%rbp)
  movss  D341(%rip),%xmm0
  movss  %xmm0,-0x34(%rbp)
  movss  D163(%rip),%xmm0
  movss  %xmm0,-0x90(%rbp)
  movss  D157(%rip),%xmm0
  movss  %xmm0,-0x8c(%rbp)
  movss  D229(%rip),%xmm0
  movss  %xmm0,-0x88(%rbp)
  movss  D196(%rip),%xmm0
  movss  %xmm0,-0x84(%rbp)
  movss  D388(%rip),%xmm0
  movss  %xmm0,-0x80(%rbp)
  movss  D341(%rip),%xmm0
  movss  %xmm0,-0x7c(%rbp)
  movss  D433(%rip),%xmm0
  movss  %xmm0,-0x30(%rbp)
  movss  D327(%rip),%xmm0
  movss  %xmm0,-0x2c(%rbp)
  movss  D238(%rip),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  D370(%rip),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  D555(%rip),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  D530(%rip),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  D63(%rip),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  D334(%rip),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  D133(%rip),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  D14(%rip),%xmm0
  movss  %xmm0,-0x70(%rbp)
  movss  D420(%rip),%xmm0
  movss  %xmm0,-0x6c(%rbp)
  movss  D223(%rip),%xmm0
  movss  %xmm0,-0x68(%rbp)
  movss  D433(%rip),%xmm0
  movss  %xmm0,-0x64(%rbp)
  movss  D327(%rip),%xmm0
  movss  %xmm0,-0x60(%rbp)
  movss  D370(%rip),%xmm0
  movss  %xmm0,-0x5c(%rbp)
  movss  D334(%rip),%xmm0
  movss  %xmm0,-0x58(%rbp)
  movl   $0x0,-0x9c(%rbp)
  jmp    L3
L331:
  mov    -0x9c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x9c(%rbp)
L3:
  mov    -0xbc(%rbp),%eax
  imul   -0xc0(%rbp),%eax
  cmp    %eax,-0x9c(%rbp)
  jl     L331
  cmpl   $0x0,-0xbc(%rbp)
  je     L146
  cmpl   $0x0,-0xc0(%rbp)
  je     L146
  pxor   %xmm0,%xmm0
  ucomiss -0xd8(%rbp),%xmm0
  jp     L171
  pxor   %xmm0,%xmm0
  ucomiss -0xd8(%rbp),%xmm0
  jne    L171
  movss  D212(%rip),%xmm0
  movss  %xmm0,-0xd8(%rbp)
L171:
  pxor   %xmm0,%xmm0
  ucomiss -0xd4(%rbp),%xmm0
  jp     L209
  pxor   %xmm0,%xmm0
  ucomiss -0xd4(%rbp),%xmm0
  jne    L209
  movss  D212(%rip),%xmm0
  movss  %xmm0,-0xd4(%rbp)
L209:
  movss  -0xd8(%rbp),%xmm0
  ucomiss -0xd4(%rbp),%xmm0
  jp     L71
  movss  -0xd8(%rbp),%xmm0
  ucomiss -0xd4(%rbp),%xmm0
  jne    L71
  pxor   %xmm1,%xmm1
  cvtss2sd -0xd8(%rbp),%xmm1
  movsd  D187(%rip),%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0xd8(%rbp)
L71:
  cmpl   $0x0,-0xc4(%rbp)
  jne    L202
  mov    -0xc0(%rbp),%eax
  imul   $0xe,%eax,%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  mov    %eax,%r8d
  mov    -0xbc(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  mov    %eax,%r9d
  mov    -0xc0(%rbp),%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  mov    %eax,%r11d
  mov    -0xbc(%rbp),%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  mov    %eax,%r10d
  movss  -0xc8(%rbp),%xmm1
  movss  -0xd8(%rbp),%xmm0
  mov    -0xd4(%rbp),%ecx
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0xcc(%rbp),%edi
  push   %rdi
  push   $0x0
  push   %r8
  movaps %xmm1,%xmm2
  movaps %xmm0,%xmm1
  movd   %ecx,%xmm0
  mov    %r11d,%r8d
  mov    %r10d,%ecx
  mov    %rax,%rdi
  call   <draw_sweep_1@plt>
  add    $0x20,%rsp
  jmp    L115
L202:
  mov    -0xc0(%rbp),%eax
  imul   $0xe,%eax,%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  mov    %eax,%r8d
  mov    -0xbc(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  mov    %eax,%r9d
  mov    -0xc0(%rbp),%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  mov    %eax,%r11d
  mov    -0xbc(%rbp),%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  mov    %eax,%r10d
  movss  -0xc8(%rbp),%xmm1
  movss  -0xd8(%rbp),%xmm0
  mov    -0xd4(%rbp),%ecx
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0xcc(%rbp),%edi
  push   %rdi
  push   $0x0
  push   %r8
  movaps %xmm1,%xmm2
  movaps %xmm0,%xmm1
  movd   %ecx,%xmm0
  mov    %r11d,%r8d
  mov    %r10d,%ecx
  mov    %rax,%rdi
  call   <draw_sweep_2@plt>
  add    $0x20,%rsp
L115:
  cmpl   $0x0,-0xcc(%rbp)
  jne    L298
  movl   $0x0,-0xa0(%rbp)
  jmp    L261
L155:
  mov    -0xa0(%rbp),%eax
  cltq
  movss  -0x50(%rbp,%rax,4),%xmm0
  subss  -0xd4(%rbp),%xmm0
  movss  -0xd8(%rbp),%xmm1
  subss  -0xd4(%rbp),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x98(%rbp)
  movss  -0x98(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jb     L64
  movss  D376(%rip),%xmm0
  comiss -0x98(%rbp),%xmm0
  jb     L64
  mov    -0xbc(%rbp),%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  sub    $0x3c,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0xc0(%rbp),%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm1,%xmm1
  cvtsi2ss %eax,%xmm1
  mov    -0xc0(%rbp),%eax
  imul   $0xe,%eax,%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x98(%rbp),%xmm0
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xbc(%rbp),%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  lea    -0xf(%rax),%edi
  mov    D295(%rip),%rcx
  mov    -0x94(%rbp),%r8d
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x3
  movq   %rcx,%xmm0
  mov    $0xa,%r9d
  mov    %edi,%ecx
  mov    %rax,%rdi
  call   <draw_rectangle@plt>
  add    $0x10,%rsp
  mov    -0xa0(%rbp),%eax
  cltq
  mov    -0x50(%rbp,%rax,4),%edi
  mov    -0x94(%rbp),%eax
  lea    0x6(%rax),%r10d
  movsd  D295(%rip),%xmm0
  mov    -0x9c(%rbp),%ecx
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  lea    D117(%rip),%r8
  push   %r8
  movapd %xmm0,%xmm1
  movd   %edi,%xmm0
  mov    $0x6,%r9d
  mov    %r10d,%r8d
  mov    %rax,%rdi
  call   <dispF@plt>
  add    $0x10,%rsp
L64:
  addl   $0x1,-0xa0(%rbp)
L261:
  mov    -0xa0(%rbp),%eax
  cmp    $0x7,%eax
  jbe    L155
  movl   $0x0,-0xa0(%rbp)
  jmp    L251
L168:
  mov    -0xa0(%rbp),%eax
  cltq
  movss  -0x30(%rbp,%rax,4),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2ssl -0xc0(%rbp),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0xa4(%rbp)
  cmpl   $0x0,-0xc4(%rbp)
  jne    L93
  movss  -0xa4(%rbp),%xmm0
  mulss  -0xd0(%rbp),%xmm0
  movss  %xmm0,-0xa4(%rbp)
L93:
  movss  -0xa4(%rbp),%xmm0
  subss  -0xd4(%rbp),%xmm0
  movss  -0xd8(%rbp),%xmm1
  subss  -0xd4(%rbp),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x98(%rbp)
  movss  -0x98(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jb     L326
  movss  D376(%rip),%xmm0
  comiss -0x98(%rbp),%xmm0
  jb     L326
  mov    -0xbc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  add    $0xa,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0xc0(%rbp),%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm1,%xmm1
  cvtsi2ss %eax,%xmm1
  mov    -0xc0(%rbp),%eax
  imul   $0xe,%eax,%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x98(%rbp),%xmm0
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xbc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  lea    0x5(%rax),%edi
  mov    D295(%rip),%rcx
  mov    -0x94(%rbp),%r8d
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x3
  movq   %rcx,%xmm0
  mov    $0xa,%r9d
  mov    %edi,%ecx
  mov    %rax,%rdi
  call   <draw_rectangle@plt>
  add    $0x10,%rsp
  mov    -0xa0(%rbp),%eax
  cltq
  mov    -0x30(%rbp,%rax,4),%edi
  mov    -0x94(%rbp),%eax
  lea    0x6(%rax),%r10d
  movsd  D295(%rip),%xmm0
  mov    -0x9c(%rbp),%ecx
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  lea    D440(%rip),%r8
  push   %r8
  movapd %xmm0,%xmm1
  movd   %edi,%xmm0
  mov    $0x6,%r9d
  mov    %r10d,%r8d
  mov    %rax,%rdi
  call   <dispF@plt>
  add    $0x10,%rsp
L326:
  addl   $0x1,-0xa0(%rbp)
L251:
  mov    -0xa0(%rbp),%eax
  cmp    $0x8,%eax
  jbe    L168
  jmp    L300
L298:
  movl   $0x0,-0xa0(%rbp)
  jmp    L193
L249:
  mov    -0xa0(%rbp),%eax
  cltq
  movss  -0x90(%rbp,%rax,4),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D148(%rip),%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0xd4(%rbp),%xmm2
  movsd  D148(%rip),%xmm1
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0xd8(%rbp),%xmm2
  movsd  D148(%rip),%xmm1
  divsd  %xmm2,%xmm1
  pxor   %xmm3,%xmm3
  cvtss2sd -0xd4(%rbp),%xmm3
  movsd  D148(%rip),%xmm2
  divsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x98(%rbp)
  movss  -0x98(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jb     L6
  movss  D376(%rip),%xmm0
  comiss -0x98(%rbp),%xmm0
  jb     L6
  mov    -0xbc(%rbp),%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  sub    $0x3c,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0xc0(%rbp),%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm1,%xmm1
  cvtsi2ss %eax,%xmm1
  mov    -0xc0(%rbp),%eax
  imul   $0xe,%eax,%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x98(%rbp),%xmm0
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xbc(%rbp),%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  lea    -0xf(%rax),%edi
  mov    D295(%rip),%rcx
  mov    -0x94(%rbp),%r8d
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x3
  movq   %rcx,%xmm0
  mov    $0xa,%r9d
  mov    %edi,%ecx
  mov    %rax,%rdi
  call   <draw_rectangle@plt>
  add    $0x10,%rsp
  mov    -0xa0(%rbp),%eax
  cltq
  mov    -0x90(%rbp,%rax,4),%edi
  mov    -0x94(%rbp),%eax
  lea    0x6(%rax),%r10d
  movsd  D295(%rip),%xmm0
  mov    -0x9c(%rbp),%ecx
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  lea    D117(%rip),%r8
  push   %r8
  movapd %xmm0,%xmm1
  movd   %edi,%xmm0
  mov    $0x6,%r9d
  mov    %r10d,%r8d
  mov    %rax,%rdi
  call   <dispF@plt>
  add    $0x10,%rsp
L6:
  addl   $0x1,-0xa0(%rbp)
L193:
  mov    -0xa0(%rbp),%eax
  cmp    $0x5,%eax
  jbe    L249
  movl   $0x0,-0xa0(%rbp)
  jmp    L267
L226:
  mov    -0xa0(%rbp),%eax
  cltq
  movss  -0x70(%rbp,%rax,4),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2ssl -0xc0(%rbp),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0xa4(%rbp)
  cmpl   $0x0,-0xc4(%rbp)
  jne    L282
  movss  -0xa4(%rbp),%xmm0
  mulss  -0xd0(%rbp),%xmm0
  movss  %xmm0,-0xa4(%rbp)
L282:
  pxor   %xmm1,%xmm1
  cvtss2sd -0xa4(%rbp),%xmm1
  movsd  D148(%rip),%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0xd4(%rbp),%xmm2
  movsd  D148(%rip),%xmm1
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0xd8(%rbp),%xmm2
  movsd  D148(%rip),%xmm1
  divsd  %xmm2,%xmm1
  pxor   %xmm3,%xmm3
  cvtss2sd -0xd4(%rbp),%xmm3
  movsd  D148(%rip),%xmm2
  divsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x98(%rbp)
  movss  -0x98(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jb     L169
  movss  D376(%rip),%xmm0
  comiss -0x98(%rbp),%xmm0
  jb     L169
  mov    -0xbc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  add    $0xa,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0xc0(%rbp),%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm1,%xmm1
  cvtsi2ss %eax,%xmm1
  mov    -0xc0(%rbp),%eax
  imul   $0xe,%eax,%eax
  lea    0xf(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x4,%eax
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x98(%rbp),%xmm0
  addss  %xmm1,%xmm0
  cvttss2si %xmm0,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xbc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  lea    0x7(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x3,%eax
  lea    0x5(%rax),%edi
  mov    D295(%rip),%rcx
  mov    -0x94(%rbp),%r8d
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x3
  movq   %rcx,%xmm0
  mov    $0xa,%r9d
  mov    %edi,%ecx
  mov    %rax,%rdi
  call   <draw_rectangle@plt>
  add    $0x10,%rsp
  mov    -0xa0(%rbp),%eax
  cltq
  mov    -0x70(%rbp,%rax,4),%edi
  mov    -0x94(%rbp),%eax
  lea    0x6(%rax),%r10d
  movsd  D295(%rip),%xmm0
  mov    -0x9c(%rbp),%ecx
  mov    -0xc0(%rbp),%edx
  mov    -0xbc(%rbp),%esi
  mov    -0xb8(%rbp),%rax
  sub    $0x8,%rsp
  lea    D440(%rip),%r8
  push   %r8
  movapd %xmm0,%xmm1
  movd   %edi,%xmm0
  mov    $0x6,%r9d
  mov    %r10d,%r8d
  mov    %rax,%rdi
  call   <dispF@plt>
  add    $0x10,%rsp
L169:
  addl   $0x1,-0xa0(%rbp)
L267:
  mov    -0xa0(%rbp),%eax
  cmp    $0x6,%eax
  jbe    L226
  jmp    L300
L146:
  nop
L300:
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L174
  call   <__stack_chk_fail@plt>
L174:
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D163
type: f32
name: parse_data
arguments: data_label: D229
type: f32
name: parse_data
arguments: data_label: D337
type: f32
name: parse_data
arguments: data_label: D388
type: f32
name: parse_data
arguments: data_label: D32
type: f32
name: parse_data
arguments: data_label: D368
type: f32
name: parse_data
arguments: data_label: D308
type: f32
name: parse_data
arguments: data_label: D341
type: f32
name: parse_data
arguments: data_label: D157
type: f32
name: parse_data
arguments: data_label: D196
type: f32
name: parse_data
arguments: data_label: D433
type: f32
name: parse_data
arguments: data_label: D327
type: f32
name: parse_data
arguments: data_label: D238
type: f32
name: parse_data
arguments: data_label: D370
type: f32
name: parse_data
arguments: data_label: D555
type: f32
name: parse_data
arguments: data_label: D530
type: f32
name: parse_data
arguments: data_label: D63
type: f32
name: parse_data
arguments: data_label: D334
type: f32
name: parse_data
arguments: data_label: D133
type: f32
name: parse_data
arguments: data_label: D14
type: f32
name: parse_data
arguments: data_label: D420
type: f32
name: parse_data
arguments: data_label: D223
type: f32
name: parse_data
arguments: data_label: D212
type: byte[4]
name: parse_data
arguments: data_label: D187
type: byte[8]
name: parse_data
arguments: data_label: D376
type: f32
name: parse_data
arguments: data_label: D295
type: f64
name: parse_data
arguments: data_label: D117
type: string
name: parse_data
arguments: data_label: D440
type: string
name: parse_data
arguments: data_label: D148
type: f32[2]

tool: D163: 0.05

tool: D229: 0.1

tool: D337: 0.2

tool: D388: 0.3

tool: D32: 0.4

tool: D368: 0.5

tool: D308: 0.6

tool: D341: 0.7

tool: D157: 0.07

tool: D196: 0.15

tool: D433: 100

tool: D327: 200

tool: D238: 300

tool: D370: 400

tool: D555: 500

tool: D530: 600

tool: D63: 700

tool: D334: 800

tool: D133: 900

tool: D14: 10

tool: D420: 25

tool: D223: 50

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

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

tool: D376: 1

tool: D295: 0.9

tool: D117: %5.2f

tool: D440: %4.0f

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

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);
      }
    }
  }
}
```