user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<dispoly>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0xb8,%rsp
  mov    %edi,-0x94(%rbp)
  mov    %rsi,-0xa0(%rbp)
  mov    %rdx,-0xa8(%rbp)
  mov    %ecx,-0x98(%rbp)
  mov    %r8,-0xb0(%rbp)
  mov    %r9,-0xb8(%rbp)
  movl   $0x0,-0x84(%rbp)
  jmp    L68
L117:
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L110
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L110
  mov    -0xb8(%rbp),%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    $0x0,%eax
  jmp    L60
L110:
  addl   $0x1,-0x84(%rbp)
L68:
  mov    -0x84(%rbp),%eax
  cmp    -0x98(%rbp),%eax
  jl     L117
  mov    -0xa0(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x30(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L239
L165:
  mov    -0xa0(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  imul   -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
  mov    -0x98(%rbp),%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x60(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x60(%rbp)
  mov    -0x80(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x30(%rbp),%rdx
  add    %rcx,%rdx
  movsd  (%rax),%xmm0
  movsd  %xmm0,(%rdx)
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movl   $0x0,-0x84(%rbp)
  jmp    L250
L279:
  mov    -0x60(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x60(%rbp)
  movsd  (%rax),%xmm2
  movsd  %xmm2,-0xc0(%rbp)
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  -0xc0(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x84(%rbp)
L250:
  mov    -0x84(%rbp),%eax
  cmp    -0x98(%rbp),%eax
  jl     L279
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    -0x80(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x30(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  movsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  mov    %rax,(%rbx)
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L75
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L75
  mov    -0xb8(%rbp),%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    $0x0,%eax
  jmp    L60
L75:
  addl   $0x1,-0x80(%rbp)
L239:
  mov    -0xa0(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  cmp    %eax,-0x80(%rbp)
  jl     L165
  mov    -0xa0(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0xa0(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x20(%rbp),%rax
  mov    %rax,-0x48(%rbp)
  movl   $0x0,-0x84(%rbp)
  jmp    L28
L56:
  movsd  D6(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movl   $0x0,-0x8c(%rbp)
  jmp    L288
L260:
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x38(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x48(%rbp),%rax
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x8c(%rbp)
  addq   $0x8,-0x48(%rbp)
L288:
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  cmp    %eax,-0x8c(%rbp)
  jl     L260
  addl   $0x1,-0x84(%rbp)
  addq   $0x4,-0x70(%rbp)
L28:
  mov    -0x84(%rbp),%eax
  cmp    -0x98(%rbp),%eax
  jl     L56
  movl   $0x0,-0x80(%rbp)
  jmp    L223
L77:
  movsd  D6(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movl   $0x0,-0x8c(%rbp)
  jmp    L64
L24:
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x38(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x48(%rbp),%rax
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x8c(%rbp)
  addq   $0x8,-0x48(%rbp)
L64:
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  cmp    %eax,-0x8c(%rbp)
  jl     L24
  addl   $0x1,-0x80(%rbp)
  addq   $0x4,-0x70(%rbp)
L223:
  mov    -0xa0(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  cmp    %eax,-0x80(%rbp)
  jl     L77
  mov    -0xb8(%rbp),%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%rax
  add    $0x44,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0xa0(%rbp),%rax
  add    $0x48,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0xa0(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  movl   $0x0,-0x7c(%rbp)
  jmp    L123
L155:
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x20(%rbp),%rax
  sub    $0x8,%rax
  mov    %rax,-0x48(%rbp)
  movl   $0x0,-0x88(%rbp)
  jmp    L34
L175:
  mov    -0x78(%rbp),%rax
  mov    (%rax),%eax
  and    $0x2,%eax
  test   %eax,%eax
  jne    L11
  mov    -0x78(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L195
  mov    -0x68(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jns    L104
  mov    -0x68(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movsd  -0x40(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  jmp    L11
L104:
  mov    -0x68(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  jmp    L11
L195:
  mov    -0x58(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x48(%rbp),%rax
  mov    (%rax),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  -0x40(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
L11:
  addq   $0x4,-0x78(%rbp)
  addq   $0x4,-0x68(%rbp)
  addq   $0x8,-0x58(%rbp)
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,-0x48(%rbp)
  addq   $0x4,-0x70(%rbp)
  addl   $0x1,-0x88(%rbp)
L34:
  mov    -0xa0(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  cmp    %eax,-0x88(%rbp)
  jl     L175
  mov    -0xb8(%rbp),%rax
  movsd  (%rax),%xmm0
  addsd  -0x40(%rbp),%xmm0
  mov    -0xb8(%rbp),%rax
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x7c(%rbp)
L123:
  mov    -0xa0(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  cmp    %eax,-0x7c(%rbp)
  jl     L155
  mov    $0x0,%eax
L60:
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: unpack_data
arguments: label: D6
type_infered: f64

tool: D6: 1

assistant: ```c
int dispoly(int dummy, const int iparm[], const double dparm[], int Nhat, const double rawcrd[], double *discrd) {
  const int *iflgp, *imaxp, *imaxpow, *ipowp;
  int ip, ivar, jhat, k, m;
  const double *cptr, *dpolp, *pptr;
  double *aux, auxp0, *dvarpow, *dpowp, term, var;
  for (jhat = 0; jhat < Nhat; jhat++) {
    if (rawcrd[jhat] == 0.0) {
      *discrd = 0.0;
      return 0;
    }
  }
  aux = (double *)(dparm + iparm[13]);
  for (k = 0; k < iparm[6]; k++) {
    cptr = dparm + k * iparm[8];
    pptr = cptr + (1 + Nhat);
    aux[k] = *(cptr++);
    auxp0 = *(pptr++);
    for (jhat = 0; jhat < Nhat; jhat++) {
      aux[k] += *(cptr++) * pow(rawcrd[jhat], *(pptr++));
    }
    aux[k] = pow(aux[k], auxp0);
    if (aux[k] == 0.0) {
      *discrd = 0.0;
      return 0;
    }
  }
  imaxpow = iparm + iparm[15];
  dvarpow = (double *)(dparm + iparm[14]);
  imaxp = imaxpow;
  dpowp = dvarpow;
  for (jhat = 0; jhat < Nhat; jhat++, imaxp++) {
    var = 1.0;
    for (ip = 0; ip < *imaxp; ip++, dpowp++) {
      var *= rawcrd[jhat];
      *dpowp = var;
    }
  }
  for (k = 0; k < iparm[6]; k++, imaxp++) {
    var = 1.0;
    for (ip = 0; ip < *imaxp; ip++, dpowp++) {
      var *= aux[k];
      *dpowp = var;
    }
  }
  *discrd = 0.0;
  iflgp = iparm + iparm[17];
  ipowp = iparm + iparm[18];
  dpolp = dparm + iparm[12];
  for (m = 0; m < iparm[7]; m++) {
    term = *(dpolp++);
    imaxp = imaxpow;
    dpowp = dvarpow - 1;
    for (ivar = 0; ivar < iparm[10]; ivar++) {
      if (*iflgp & 2) {
      } else if (*iflgp) {
        if (*ipowp < 0) {
          term /= dpowp[*ipowp];
        } else {
          term *= dpowp[*ipowp];
        }
      } else {
        term *= pow(dpowp[0], *dpolp);
      }
      iflgp++;
      ipowp++;
      dpolp++;
      dpowp += *imaxp;
      imaxp++;
    }
    *discrd += term;
  }
  return 0;
}
```