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

```asm
<Int1d>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xf0,%rsp
  movsd  %xmm0,-0x98(%rbp)
  mov    %edi,-0x9c(%rbp)
  mov    %esi,-0xa0(%rbp)
  mov    %edx,-0xa4(%rbp)
  mov    %ecx,-0xa8(%rbp)
  movsd  %xmm1,-0xb0(%rbp)
  movsd  %xmm2,-0xb8(%rbp)
  movsd  %xmm3,-0xc0(%rbp)
  movsd  %xmm4,-0xc8(%rbp)
  movsd  %xmm5,-0xd0(%rbp)
  movsd  %xmm6,-0xd8(%rbp)
  movsd  %xmm7,-0xe0(%rbp)
  mov    %r8,-0xe8(%rbp)
  mov    -0x9c(%rbp),%edx
  mov    -0xa0(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x88(%rbp)
  mov    -0xa4(%rbp),%edx
  mov    -0xa8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x84(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  addsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0xe0(%rbp),%xmm0
  addsd  0x10(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb0(%rbp),%xmm1
  movsd  -0xd8(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  divsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0xe0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xc0(%rbp),%xmm1
  movsd  0x10(%rbp),%xmm0
  mulsd  -0xc8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  subsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  subsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x98(%rbp),%xmm1
  movsd  D66(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D66(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  movsd  -0x98(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  -0x38(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm1
  movsd  D58(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D58(%rip),%xmm0
  divsd  -0x68(%rbp),%xmm0
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x28(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  D58(%rip),%xmm0
  divsd  -0x60(%rbp),%xmm0
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x28(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0xb0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x38(%rbp),%xmm1
  movsd  -0x50(%rbp),%xmm0
  subsd  -0xb0(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x60(%rbp),%xmm2
  movsd  -0x58(%rbp),%xmm0
  subsd  -0xb0(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x30(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x50(%rbp),%xmm0
  subsd  -0xc0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x38(%rbp),%xmm1
  movsd  -0x50(%rbp),%xmm0
  subsd  -0xc0(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x60(%rbp),%xmm2
  movsd  -0x58(%rbp),%xmm0
  subsd  -0xc0(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x30(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  movq   D34(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movsd  -0xe0(%rbp),%xmm1
  mulsd  0x10(%rbp),%xmm1
  mulsd  -0x40(%rbp),%xmm1
  mulsd  -0x40(%rbp),%xmm1
  divsd  -0x60(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D69(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm3
  mulsd  -0x60(%rbp),%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm1
  movsd  -0xf0(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  mov    -0xe8(%rbp),%rax
  movsd  %xmm0,(%rax)
  cmpl   $0x0,-0x88(%rbp)
  jle    L146
  mov    -0xe8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xe8(%rbp),%rax
  add    $0x38,%rax
  mulsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L146:
  cmpl   $0x0,-0x84(%rbp)
  jle    L158
  mov    -0xe8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mov    -0xe8(%rbp),%rax
  movsd  %xmm0,0x8(%rax)
L158:
  movl   $0x2,-0x80(%rbp)
  jmp    L69
L18:
  mov    -0x80(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x70(%rax),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L69:
  mov    -0x88(%rbp),%eax
  cmp    -0x80(%rbp),%eax
  jge    L18
  movl   $0x2,-0x7c(%rbp)
  jmp    L72
L52:
  mov    -0x7c(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x7c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0xe8(%rbp),%rax
  movslq %edx,%rdx
  movsd  (%rax,%rdx,8),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x7c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0xe8(%rbp),%rax
  movslq %edx,%rdx
  movsd  (%rax,%rdx,8),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0xe8(%rbp),%rax
  mov    -0x7c(%rbp),%edx
  movslq %edx,%rdx
  movsd  %xmm0,(%rax,%rdx,8)
  addl   $0x1,-0x7c(%rbp)
L72:
  mov    -0x84(%rbp),%eax
  cmp    -0x7c(%rbp),%eax
  jge    L52
  cmpl   $0x0,-0x84(%rbp)
  jle    L2
  cmpl   $0x0,-0x88(%rbp)
  jle    L2
  movl   $0x1,-0x80(%rbp)
  jmp    L148
L44:
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x80(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x28(%rbp),%xmm1
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%rax)
  movl   $0x2,-0x7c(%rbp)
  jmp    L83
L19:
  mov    -0x7c(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x7c(%rbp),%eax
  sub    $0x2,%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x80(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x28(%rbp),%xmm2
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x7c(%rbp),%eax
  sub    $0x1,%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x7c(%rbp),%eax
  sub    $0x1,%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mov    -0x80(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rax,%rdx
  addsd  %xmm1,%xmm0
  mov    -0x7c(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  addl   $0x1,-0x7c(%rbp)
L83:
  mov    -0x84(%rbp),%eax
  cmp    -0x7c(%rbp),%eax
  jge    L19
  addl   $0x1,-0x80(%rbp)
L148:
  mov    -0x88(%rbp),%eax
  cmp    -0x80(%rbp),%eax
  jge    L44
L2:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movl   $0x0,-0x84(%rbp)
  jmp    L159
L76:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movl   $0x0,-0x88(%rbp)
  jmp    L132
L112:
  mov    -0x88(%rbp),%edx
  mov    -0xa0(%rbp),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <binomial@plt>
  pxor   %xmm4,%xmm4
  cvtsi2sd %eax,%xmm4
  movsd  %xmm4,-0xf0(%rbp)
  mov    -0xa0(%rbp),%eax
  sub    -0x88(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0x48(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  -0xf0(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  mov    -0x88(%rbp),%edx
  mov    -0x9c(%rbp),%eax
  add    %edx,%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x84(%rbp),%ecx
  mov    -0xa4(%rbp),%eax
  add    %ecx,%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x70(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  addl   $0x1,-0x88(%rbp)
L132:
  mov    -0xa0(%rbp),%eax
  cmp    -0x88(%rbp),%eax
  jge    L112
  mov    -0x84(%rbp),%edx
  mov    -0xa8(%rbp),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <binomial@plt>
  pxor   %xmm5,%xmm5
  cvtsi2sd %eax,%xmm5
  movsd  %xmm5,-0xf0(%rbp)
  mov    -0xa8(%rbp),%eax
  sub    -0x84(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0x40(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0xf0(%rbp),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  movsd  -0x78(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  addl   $0x1,-0x84(%rbp)
L159:
  mov    -0xa8(%rbp),%eax
  cmp    -0x84(%rbp),%eax
  jge    L76
  movsd  -0x78(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D66
datatype: f64
name: disassemble_data
arguments: data_tag: D58
datatype: f64
name: disassemble_data
arguments: data_tag: D34
datatype: f32[2]
name: disassemble_data
arguments: data_tag: D69
datatype: f64

tool: D66: 1

tool: D58: 0.5

tool: {"D34": [0.0,-0.0]}

tool: D69: 3.141592653589793

assistant: ```c
double Int1d(double t, int i, int j, int k, int l, double xi, double xj, double xk, double xl, double alphai, double alphaj, double alphak, double alphal, double G[][7]) {
  int n, m, a, b;
  double A, B, Px, Qx;
  n = i + j;
  m = k + l;
  A = alphai + alphaj;
  B = alphak + alphal;
  Px = (alphai * xi + alphaj * xj) / A;
  Qx = (alphak * xk + alphal * xl) / B;
  double xij = xi - xj;
  double xkl = xk - xl;
  double fff, B00, B1, B1p, C, Cp;
  double inv_t1 = 1.0 / (1 + t);
  fff = t / (A + B) * inv_t1;
  B00 = 0.5 * fff;
  B1 = 0.5 / A * inv_t1 + B00;
  B1p = 0.5 / B * inv_t1 + B00;
  C = (Px - xi) * inv_t1 + (B * (Qx - xi) + A * (Px - xi)) * fff;
  Cp = (Qx - xk) * inv_t1 + (B * (Qx - xk) + A * (Px - xk)) * fff;
  G[0][0] = 3.14159265358979323846 * exp(-alphai * alphaj * xij * xij / A - alphak * alphal * xkl * xkl / B) / sqrt(A * B);
  if (n > 0)
    G[1][0] = C * G[0][0];
  if (m > 0)
    G[0][1] = Cp * G[0][0];
  for (a = 2; a < n + 1; a++)
    G[a][0] = B1 * (a - 1) * G[a - 2][0] + C * G[a - 1][0];
  for (b = 2; b < m + 1; b++)
    G[0][b] = B1p * (b - 1) * G[0][b - 2] + Cp * G[0][b - 1];
  if ((m > 0) && (n > 0)) {
    for (a = 1; a < n + 1; a++) {
      G[a][1] = a * B00 * G[a - 1][0] + Cp * G[a][0];
      for (b = 2; b < m + 1; b++)
        G[a][b] = B1p * (b - 1) * G[a][b - 2] + a * B00 * G[a - 1][b - 1] + Cp * G[a][b - 1];
    }
  }
  double ijkl = 0.0;
  for (m = 0; m < l + 1; m++) {
    double ijm0 = 0.0;
    for (n = 0; n < j + 1; n++)
      ijm0 += binomial(j, n) * pow(xij, j - n) * G[n + i][m + k];
    ijkl += binomial(l, m) * pow(xkl, l - m) * ijm0;
  }
  return ijkl;
}
```