user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<digitize_one>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xc0,%rsp
  movsd  %xmm0,-0x98(%rbp)
  movsd  %xmm1,-0xa0(%rbp)
  mov    %rdi,-0xa8(%rbp)
  mov    %rsi,-0xb0(%rbp)
  mov    %rdx,-0xb8(%rbp)
  mov    -0xa8(%rbp),%rax
  imul   %rax,%rax
  mov    %rax,-0x50(%rbp)
  movq   $0x0,-0x78(%rbp)
  cmpq   $0x0,-0xb0(%rbp)
  jne    L302
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm1
  movsd  D112(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  D129(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x50(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x78(%rbp),%rax
  cmp    -0x50(%rbp),%rax
  jl     L501
  mov    -0x50(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x78(%rbp)
  jmp    L550
L501:
  cmpq   $0x0,-0x78(%rbp)
  jns    L550
  movq   $0x0,-0x78(%rbp)
  jmp    L550
L302:
  mov    -0xb8(%rbp),%rax
  lea    D100(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L453
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x58(%rbp),%xmm0
  jbe    L126
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  jmp    L79
L126:
  movsd  -0x58(%rbp),%xmm0
  movsd  D112(%rip),%xmm1
  comisd %xmm1,%xmm0
  jbe    L79
  movsd  D112(%rip),%xmm0
  movsd  %xmm0,-0x58(%rbp)
L79:
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0xa8(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x70(%rbp),%rax
  cmp    -0xa8(%rbp),%rax
  jl     L261
  mov    -0xa8(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x70(%rbp)
  jmp    L247
L261:
  cmpq   $0x0,-0x70(%rbp)
  jns    L247
  movq   $0x0,-0x70(%rbp)
L247:
  mov    -0x70(%rbp),%rax
  add    %rax,%rax
  add    $0x1,%rax
  mov    %rax,-0x10(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mov    -0xa0(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <atan2@plt>
  movsd  D171(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  pxor   %xmm1,%xmm1
  cvtsi2sdq -0x10(%rbp),%xmm1
  movsd  -0x60(%rbp),%xmm0
  movsd  D111(%rip),%xmm2
  divsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  cmp    -0x10(%rbp),%rax
  jl     L368
  mov    -0x10(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x68(%rbp)
  jmp    L378
L368:
  cmpq   $0x0,-0x68(%rbp)
  jns    L378
  movq   $0x0,-0x68(%rbp)
L378:
  mov    -0x70(%rbp),%rax
  imul   %rax,%rax
  mov    %rax,%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  jmp    L550
L453:
  mov    -0xb8(%rbp),%rax
  lea    D216(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L81
  pxor   %xmm3,%xmm3
  cvtsi2sdq -0x50(%rbp),%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x28(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  cmp    -0x28(%rbp),%rax
  jl     L244
  mov    -0x28(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x80(%rbp)
  jmp    L360
L244:
  cmpq   $0x0,-0x80(%rbp)
  jns    L360
  movq   $0x0,-0x80(%rbp)
L360:
  mov    -0x80(%rbp),%rax
  add    %rax,%rax
  add    $0x1,%rax
  mov    %rax,-0x20(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mov    -0xa0(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <atan2@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x60(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x60(%rbp),%xmm0
  jbe    L286
  movsd  -0x60(%rbp),%xmm1
  movsd  D111(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
L286:
  pxor   %xmm1,%xmm1
  cvtsi2sdq -0x20(%rbp),%xmm1
  movsd  -0x60(%rbp),%xmm0
  movsd  D111(%rip),%xmm2
  divsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x90(%rbp),%rax
  cmp    -0x20(%rbp),%rax
  jl     L322
  mov    -0x20(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x90(%rbp)
  jmp    L576
L322:
  cmpq   $0x0,-0x90(%rbp)
  jns    L576
  movq   $0x0,-0x90(%rbp)
L576:
  mov    -0x80(%rbp),%rax
  imul   %rax,%rax
  mov    %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  jmp    L550
L81:
  mov    -0xb8(%rbp),%rax
  lea    D69(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L418
  pxor   %xmm4,%xmm4
  cvtsi2sdq -0x50(%rbp),%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x20(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x28(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  cmp    -0x28(%rbp),%rax
  jl     L328
  mov    -0x28(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x80(%rbp)
  jmp    L355
L328:
  cmpq   $0x0,-0x80(%rbp)
  jns    L355
  movq   $0x0,-0x80(%rbp)
L355:
  movsd  -0x98(%rbp),%xmm0
  mov    -0xa0(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <atan2@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x60(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x60(%rbp),%xmm0
  jbe    L590
  movsd  -0x60(%rbp),%xmm1
  movsd  D111(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
L590:
  pxor   %xmm1,%xmm1
  cvtsi2sdq -0x20(%rbp),%xmm1
  movsd  -0x60(%rbp),%xmm0
  movsd  D111(%rip),%xmm2
  divsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x90(%rbp),%rax
  cmp    -0x20(%rbp),%rax
  jl     L353
  mov    -0x20(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x90(%rbp)
  jmp    L565
L353:
  cmpq   $0x0,-0x90(%rbp)
  jns    L565
  movq   $0x0,-0x90(%rbp)
L565:
  mov    -0x80(%rbp),%rax
  imul   -0x20(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  jmp    L550
L418:
  mov    -0xb8(%rbp),%rax
  lea    D162(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L149
  pxor   %xmm5,%xmm5
  cvtsi2sdq -0x50(%rbp),%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x20(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mov    -0xa0(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <atan2@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x60(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x60(%rbp),%xmm0
  jbe    L400
  movsd  -0x60(%rbp),%xmm1
  movsd  D111(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
L400:
  pxor   %xmm1,%xmm1
  cvtsi2sdq -0x20(%rbp),%xmm1
  movsd  -0x60(%rbp),%xmm0
  movsd  D111(%rip),%xmm2
  divsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x90(%rbp),%rax
  cmp    -0x20(%rbp),%rax
  jl     L170
  mov    -0x20(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x90(%rbp)
  jmp    L94
L170:
  cmpq   $0x0,-0x90(%rbp)
  jns    L94
  movq   $0x0,-0x90(%rbp)
L94:
  mov    -0x90(%rbp),%rax
  and    $0x1,%eax
  test   %rax,%rax
  je     L133
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x28(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  jmp    L479
L133:
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x28(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  D10(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x80(%rbp)
L479:
  mov    -0x80(%rbp),%rax
  cmp    -0x28(%rbp),%rax
  jl     L446
  mov    -0x28(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x80(%rbp)
  jmp    L221
L446:
  cmpq   $0x0,-0x80(%rbp)
  jns    L221
  movq   $0x0,-0x80(%rbp)
L221:
  mov    -0x80(%rbp),%rax
  imul   -0x20(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  jmp    L550
L149:
  mov    -0xb8(%rbp),%rax
  lea    D177(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L385
  pxor   %xmm6,%xmm6
  cvtsi2sdq -0x50(%rbp),%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x20(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mov    -0xa0(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <atan2@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x60(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x60(%rbp),%xmm0
  jbe    L383
  movsd  -0x60(%rbp),%xmm1
  movsd  D111(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
L383:
  pxor   %xmm1,%xmm1
  cvtsi2sdq -0x20(%rbp),%xmm1
  movsd  -0x60(%rbp),%xmm0
  movsd  D111(%rip),%xmm2
  divsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x90(%rbp),%rax
  cmp    -0x20(%rbp),%rax
  jl     L186
  mov    -0x20(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x90(%rbp)
  jmp    L482
L186:
  cmpq   $0x0,-0x90(%rbp)
  jns    L482
  movq   $0x0,-0x90(%rbp)
L482:
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x90(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sdq -0x20(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x28(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  cmp    -0x28(%rbp),%rax
  jl     L119
  mov    -0x28(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x80(%rbp)
  jmp    L566
L119:
  cmpq   $0x0,-0x80(%rbp)
  jns    L566
  movq   $0x0,-0x80(%rbp)
L566:
  mov    -0x80(%rbp),%rax
  imul   -0x20(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  jmp    L550
L385:
  mov    -0xb8(%rbp),%rax
  lea    D90(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L123
  pxor   %xmm7,%xmm7
  cvtsi2sdq -0x50(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  pxor   %xmm3,%xmm3
  cvtsi2sdq -0x50(%rbp),%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x40(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  movsd  -0xa0(%rbp),%xmm1
  movsd  D139(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D99(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x48(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x38(%rbp),%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x90(%rbp)
  movsd  -0x98(%rbp),%xmm1
  movsd  D139(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D99(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdq -0x40(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0x30(%rbp),%rax
  movq   %rax,%xmm0
  call   <floor@plt>
  cvttsd2si %xmm0,%rax
  mov    %rax,-0x88(%rbp)
  mov    -0x90(%rbp),%rax
  cmp    -0x48(%rbp),%rax
  jl     L111
  mov    -0x48(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x90(%rbp)
  jmp    L215
L111:
  cmpq   $0x0,-0x90(%rbp)
  jns    L215
  movq   $0x0,-0x90(%rbp)
L215:
  mov    -0x88(%rbp),%rax
  cmp    -0x40(%rbp),%rax
  jl     L317
  mov    -0x40(%rbp),%rax
  sub    $0x1,%rax
  mov    %rax,-0x88(%rbp)
  jmp    L256
L317:
  cmpq   $0x0,-0x88(%rbp)
  jns    L256
  movq   $0x0,-0x88(%rbp)
L256:
  mov    -0x90(%rbp),%rax
  imul   -0x40(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  jmp    L550
L123:
  mov    $0x0,%eax
  jmp    L253
L550:
  mov    -0x78(%rbp),%rax
L253:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D112
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D129
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D100
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D171
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D111
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D216
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D69
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D162
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D10
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D177
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D90
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D139
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D99
type_guessed: f64

tool: D112: 1

tool: D129: 2

tool: D100: old

tool: D171: 3.141592653589793

tool: {"D111": [0x18,0x2d,0x44,0x54,0xfb,0x21,0x19,0x40]}

tool: D216: maze

tool: D69: dart

tool: D162: stagger

tool: D10: 0.5

tool: D177: spiral

tool: D90: chess

tool: D139: 0.125

tool: D99: 4

assistant: ```c
long digitize_one(double c, double s, long nbin1, long idx, char *partition) {
  long is, ic, ir, ncol, nrow, nannuli, nsec;
  long one, nbin, nbin2, ibin1, ibin2;
  double angle, modulus, scaled, fs, fc, offset;
  nbin = nbin1 * nbin1;
  one = 0;
  if (idx == 0) {
    modulus = (c * c + s * s);
    modulus = sqrt(modulus);
    scaled = ((modulus + 1.0) / 2.0) * nbin;
    one = floor(scaled);
    if (one >= nbin)
      one = nbin - 1;
    else if (one < 0)
      one = 0;
  } else {
    if (strcmp(partition, "old") == 0) {
      modulus = (c * c + s * s);
      if (modulus < 0.0)
        modulus = 0.0;
      else if (modulus > 1.0)
        modulus = 1.0;
      modulus = sqrt(modulus);
      modulus = sqrt(modulus);
      modulus = sqrt(modulus);
      ibin1 = modulus * nbin1;
      if (ibin1 >= nbin1)
        ibin1 = nbin1 - 1;
      else if (ibin1 < 0)
        ibin1 = 0;
      nbin2 = 2 * ibin1 + 1;
      angle = 3.14159265358979323846 + atan2(s, c);
      ibin2 = nbin2 * (angle / (2 * 3.14159265358979323846));
      if (ibin2 >= nbin2)
        ibin2 = nbin2 - 1;
      else if (ibin2 < 0)
        ibin2 = 0;
      one = ibin1 * ibin1 + ibin2;
    } else if (strcmp(partition, "maze") == 0) {
      nannuli = sqrt((double)nbin);
      modulus = (c * c + s * s);
      modulus = sqrt(modulus);
      modulus = sqrt(modulus);
      ir = (modulus * nannuli);
      if (ir >= nannuli)
        ir = nannuli - 1;
      else if (ir < 0)
        ir = 0;
      nsec = 2 * ir + 1;
      angle = atan2(s, c);
      if (angle < 0.0)
        angle += 2.0 * 3.14159265358979323846;
      is = nsec * (angle / (2.0 * 3.14159265358979323846));
      if (is >= nsec)
        is = nsec - 1;
      else if (is < 0)
        is = 0;
      one = ir * ir + is;
    } else if (strcmp(partition, "dart") == 0) {
      nannuli = (long)sqrt((double)nbin);
      nsec = nannuli;
      modulus = (c * c + s * s);
      modulus = sqrt(modulus);
      ir = (long)floor((modulus * nannuli));
      if (ir >= nannuli)
        ir = nannuli - 1;
      else if (ir < 0)
        ir = 0;
      angle = atan2(s, c);
      if (angle < 0.0)
        angle += 2.0 * 3.14159265358979323846;
      is = (long)floor((double)nsec * (angle / (2.0 * 3.14159265358979323846)));
      if (is >= nsec)
        is = nsec - 1;
      else if (is < 0)
        is = 0;
      one = ir * nsec + is;
    } else if (strcmp(partition, "stagger") == 0) {
      nannuli = (long)sqrt((double)nbin);
      nsec = nannuli;
      modulus = (c * c + s * s);
      modulus = sqrt(modulus);
      angle = atan2(s, c);
      if (angle < 0.0)
        angle += 2.0 * 3.14159265358979323846;
      is = (long)floor((double)nsec * (angle / (2.0 * 3.14159265358979323846)));
      if (is >= nsec)
        is = nsec - 1;
      else if (is < 0)
        is = 0;
      if (is % 2)
        ir = (long)floor(modulus * nannuli);
      else
        ir = (long)floor(modulus * nannuli + 0.5);
      if (ir >= nannuli)
        ir = nannuli - 1;
      else if (ir < 0)
        ir = 0;
      one = ir * nsec + is;
    } else if (strcmp(partition, "spiral") == 0) {
      nannuli = (long)sqrt((double)nbin);
      nsec = nannuli;
      modulus = (c * c + s * s);
      modulus = sqrt(modulus);
      angle = atan2(s, c);
      if (angle < 0.0)
        angle += 2.0 * 3.14159265358979323846;
      is = (long)floor((double)nsec * (angle / (2.0 * 3.14159265358979323846)));
      if (is >= nsec)
        is = nsec - 1;
      else if (is < 0)
        is = 0;
      offset = ((double)is) / ((double)nsec);
      ir = (long)floor(modulus * nannuli + offset);
      if (ir >= nannuli)
        ir = nannuli - 1;
      else if (ir < 0)
        ir = 0;
      one = ir * nsec + is;
    } else if (strcmp(partition, "chess") == 0) {
      nrow = (long)floor(sqrt((double)nbin));
      ncol = (long)floor(sqrt((double)nbin));
      modulus = (c * c + s * s);
      modulus = sqrt(modulus);
      fs = 4.0 * (s + 0.125) * nrow;
      is = (long)floor(fs);
      fc = 4.0 * (c + 0.125) * ncol;
      ic = (long)floor(fc);
      if (is >= nrow)
        is = nrow - 1;
      else if (is < 0)
        is = 0;
      if (ic >= ncol)
        ic = ncol - 1;
      else if (ic < 0)
        ic = 0;
      one = is * ncol + ic;
    } else
      return (0);
  }
  return (one);
}
```