user: 下面的汇编指令对应的C源代码是什么：

```asm
<algdiv>:
  endbr64
  push   %rbx
  sub    $0x20,%rsp
  movsd  %xmm0,0x10(%rsp)
  movsd  %xmm1,0x8(%rsp)
  comisd %xmm0,%xmm1
  jb     L0
  movapd %xmm1,%xmm7
  movapd %xmm0,%xmm4
  movsd  D116(%rip),%xmm1
  divsd  %xmm7,%xmm0
  movapd %xmm0,%xmm2
  addsd  %xmm1,%xmm2
  divsd  %xmm2,%xmm0
  movapd %xmm1,%xmm3
  divsd  %xmm2,%xmm3
  subsd  D22(%rip),%xmm4
  movapd %xmm4,%xmm1
  addsd  %xmm7,%xmm1
  movsd  %xmm1,0x18(%rsp)
L8:
  movapd %xmm3,%xmm1
  mulsd  %xmm3,%xmm1
  movapd %xmm3,%xmm7
  addsd  %xmm1,%xmm7
  addsd  D116(%rip),%xmm7
  movapd %xmm1,%xmm6
  mulsd  %xmm7,%xmm6
  addsd  %xmm3,%xmm6
  addsd  D116(%rip),%xmm6
  movapd %xmm1,%xmm2
  mulsd  %xmm6,%xmm2
  addsd  %xmm3,%xmm2
  addsd  D116(%rip),%xmm2
  movapd %xmm1,%xmm8
  mulsd  %xmm2,%xmm8
  addsd  %xmm3,%xmm8
  addsd  D116(%rip),%xmm8
  movsd  D116(%rip),%xmm5
  movsd  0x8(%rsp),%xmm9
  divsd  %xmm9,%xmm5
  mulsd  %xmm5,%xmm5
  movapd %xmm1,%xmm4
  mulsd  %xmm8,%xmm4
  addsd  %xmm4,%xmm3
  addsd  D116(%rip),%xmm3
  mulsd  D169(%rip),%xmm3
  mulsd  %xmm5,%xmm3
  mulsd  D62(%rip),%xmm8
  addsd  %xmm8,%xmm3
  mulsd  %xmm5,%xmm3
  mulsd  D146(%rip),%xmm2
  addsd  %xmm3,%xmm2
  mulsd  %xmm5,%xmm2
  mulsd  D39(%rip),%xmm6
  addsd  %xmm6,%xmm2
  mulsd  %xmm5,%xmm2
  mulsd  D93(%rip),%xmm7
  addsd  %xmm7,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm5,%xmm1
  addsd  D40(%rip),%xmm1
  divsd  %xmm9,%xmm0
  mulsd  %xmm1,%xmm0
  movq   %xmm0,%rbx
  movsd  0x10(%rsp),%xmm4
  divsd  %xmm9,%xmm4
  movapd %xmm4,%xmm0
  call   <alnrel@plt>
  movapd %xmm0,%xmm5
  mulsd  0x18(%rsp),%xmm5
  movsd  %xmm5,0x18(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  subsd  D116(%rip),%xmm1
  mulsd  0x10(%rsp),%xmm1
  comisd 0x18(%rsp),%xmm1
  jae    L11
  movq   %rbx,%xmm0
  subsd  %xmm1,%xmm0
  subsd  0x18(%rsp),%xmm0
L32:
  add    $0x20,%rsp
  pop    %rbx
  ret
L0:
  movsd  D116(%rip),%xmm0
  movsd  0x8(%rsp),%xmm6
  movapd %xmm6,%xmm3
  movsd  0x10(%rsp),%xmm4
  divsd  %xmm4,%xmm3
  movapd %xmm3,%xmm2
  addsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm0
  divsd  %xmm2,%xmm3
  subsd  D22(%rip),%xmm6
  movapd %xmm6,%xmm1
  addsd  %xmm4,%xmm1
  movsd  %xmm1,0x18(%rsp)
  jmp    L8
L11:
  movq   %rbx,%xmm0
  subsd  0x18(%rsp),%xmm0
  subsd  %xmm1,%xmm0
  jmp    L32
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D116
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D22
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D169
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D62
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D146
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D39
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D93
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D40
type_guessed: byte[8]

tool: D116: 1

tool: D22: 0.5

tool: {"D169": [0x38,0x18,0xca,0xcb,0x25,0x16,0x5b,0xbf]}

tool: {"D62": [0x6b,0x4a,0xb9,0x4f,0xd9,0x6f,0x4b,0x3f]}

tool: {"D146": [0xdf,0x30,0xf4,0x8f,0xec,0x80,0x43,0xbf]}

tool: {"D39": [0x60,0x89,0x48,0xd4,0x9f,0x01,0x4a,0x3f]}

tool: {"D93": [0x12,0x84,0xbb,0x16,0x6c,0xc1,0x66,0xbf]}

tool: {"D40": [0x53,0x55,0x55,0x55,0x55,0x55,0xb5,0x3f]}

assistant: ```c
double algdiv(double a, double b) {
  static double c0 = .0833333333333333;
  static double c1 = -.00277777777760991;
  static double c2 = 7.9365066682539e-4;
  static double c3 = -5.9520293135187e-4;
  static double c4 = 8.37308034031215e-4;
  static double c5 = -.00165322962780713;
  double ret_val, r__1;
  double c__, d__, h__, t, u, v, w, x, s3, s5, x2, s7, s9, s11;
  if (a <= b) {
    goto L10;
  }
  h__ = b / a;
  c__ = 1.0 / (h__ + 1.0);
  x = h__ / (h__ + 1.0);
  d__ = a + (b - 0.5);
  goto L20;
L10:
  h__ = a / b;
  c__ = h__ / (h__ + 1.0);
  x = 1.0 / (h__ + 1.0);
  d__ = b + (a - 0.5);
L20:
  x2 = x * x;
  s3 = x + x2 + 1.0;
  s5 = x + x2 * s3 + 1.0;
  s7 = x + x2 * s5 + 1.0;
  s9 = x + x2 * s7 + 1.0;
  s11 = x + x2 * s9 + 1.0;
  r__1 = 1.0 / b;
  t = r__1 * r__1;
  w = ((((c5 * s11 * t + c4 * s9) * t + c3 * s7) * t + c2 * s5) * t + c1 * s3) * t + c0;
  w *= c__ / b;
  r__1 = a / b;
  u = d__ * alnrel(r__1);
  v = a * (log(b) - 1.0);
  if (u <= v) {
    goto L30;
  }
  ret_val = w - v - u;
  return ret_val;
L30:
  ret_val = w - u - v;
  return ret_val;
}
```