user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<exactI>:
  endbr64
  push   %r14
  movapd %xmm0,%xmm4
  push   %r13
  mov    %rsi,%r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rdx,%rbp
  push   %rbx
  mov    %rcx,%rbx
  sub    $0x60,%rsp
  movsd  %xmm1,0x30(%rsp)
  movsd  D33(%rip),%xmm1
  movsd  %xmm0,0x8(%rsp)
  addsd  %xmm1,%xmm4
  divsd  %xmm0,%xmm1
  movsd  %xmm2,0x10(%rsp)
  movapd %xmm4,%xmm0
  movsd  %xmm4,0x28(%rsp)
  call   <pow@plt>
  movq   D99(%rip),%xmm2
  movsd  0x10(%rsp),%xmm6
  divsd  D35(%rip),%xmm6
  movapd %xmm6,%xmm5
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,0x18(%rsp)
  movq   %xmm6,%r14
  andpd  %xmm2,%xmm5
  movapd %xmm5,%xmm0
  movsd  %xmm5,0x20(%rsp)
  call   <pow@plt>
  movsd  D35(%rip),%xmm1
  mulsd  0x18(%rsp),%xmm1
  movsd  0x10(%rsp),%xmm5
  movq   D99(%rip),%xmm2
  mulsd  D3(%rip),%xmm0
  movsd  0x30(%rsp),%xmm3
  xorpd  D68(%rip),%xmm3
  andpd  %xmm2,%xmm5
  movsd  0x28(%rsp),%xmm4
  mulsd  D81(%rip),%xmm3
  comisd %xmm5,%xmm1
  movsd  0x20(%rsp),%xmm5
  movsd  %xmm0,0x0(%r13)
  pxor   %xmm0,%xmm0
  movsd  %xmm3,(%r12)
  ja     L0
L7:
  movsd  %xmm0,0x0(%rbp)
  xor    %eax,%eax
  movq   $0x0,(%rbx)
  add    $0x60,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
  nopw   0x0(%rax,%rax,1)
L0:
  movapd %xmm4,%xmm0
  movsd  %xmm5,0x18(%rsp)
  movsd  D71(%rip),%xmm1
  divsd  0x8(%rsp),%xmm1
  movsd  %xmm4,0x10(%rsp)
  call   <pow@plt>
  movsd  0x10(%rsp),%xmm4
  mov    D71(%rip),%rax
  movsd  %xmm0,0x58(%rsp)
  movapd %xmm4,%xmm8
  movapd %xmm4,%xmm6
  movq   %rax,%xmm1
  movsd  %xmm4,0x50(%rsp)
  mulsd  %xmm0,%xmm8
  movq   %r14,%xmm0
  mulsd  %xmm8,%xmm6
  movsd  %xmm8,0x48(%rsp)
  movsd  %xmm6,0x40(%rsp)
  call   <pow@plt>
  movsd  0x18(%rsp),%xmm5
  movsd  D71(%rip),%xmm11
  addsd  0x8(%rsp),%xmm11
  movsd  %xmm0,0x38(%rsp)
  movapd %xmm5,%xmm0
  movsd  %xmm5,0x10(%rsp)
  movapd %xmm11,%xmm1
  movsd  %xmm11,0x30(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm6
  movsd  0x10(%rsp),%xmm5
  movsd  %xmm0,0x28(%rsp)
  movapd %xmm6,%xmm7
  movapd %xmm5,%xmm0
  movsd  %xmm5,0x18(%rsp)
  addsd  %xmm6,%xmm7
  addsd  D71(%rip),%xmm7
  movapd %xmm7,%xmm1
  movsd  %xmm7,0x20(%rsp)
  call   <pow@plt>
  movsd  D61(%rip),%xmm2
  mulsd  0x8(%rsp),%xmm2
  addsd  D71(%rip),%xmm2
  movsd  0x18(%rsp),%xmm5
  movq   %xmm0,%r12
  movapd %xmm5,%xmm0
  movapd %xmm2,%xmm1
  movsd  %xmm2,0x10(%rsp)
  call   <pow@plt>
  movsd  0x50(%rsp),%xmm4
  mov    D61(%rip),%rax
  movq   %xmm0,%r13
  movq   %rax,%xmm1
  movapd %xmm4,%xmm0
  movsd  %xmm4,0x8(%rsp)
  call   <pow@plt>
  movsd  0x38(%rsp),%xmm3
  movsd  0x58(%rsp),%xmm9
  movq   %r12,%xmm1
  movsd  0x8(%rsp),%xmm4
  movsd  0x30(%rsp),%xmm11
  movapd %xmm0,%xmm5
  subsd  %xmm9,%xmm3
  movsd  D119(%rip),%xmm0
  movsd  0x28(%rsp),%xmm10
  mulsd  %xmm4,%xmm11
  movsd  0x48(%rsp),%xmm8
  movsd  0x20(%rsp),%xmm7
  movsd  0x40(%rsp),%xmm6
  movsd  0x10(%rsp),%xmm2
  mulsd  %xmm3,%xmm0
  movapd %xmm10,%xmm3
  subsd  %xmm8,%xmm3
  subsd  %xmm6,%xmm1
  mulsd  %xmm5,%xmm2
  divsd  %xmm11,%xmm3
  mulsd  D61(%rip),%xmm3
  subsd  %xmm3,%xmm0
  movapd %xmm4,%xmm3
  mulsd  %xmm4,%xmm3
  mulsd  %xmm6,%xmm4
  mulsd  %xmm7,%xmm3
  divsd  %xmm3,%xmm1
  mulsd  D61(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movq   %r13,%xmm1
  subsd  %xmm4,%xmm1
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mulsd  D96(%rip),%xmm0
  jmp    L7
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D33
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D99
type_infered: qword
name: extract_symbolic_data
arguments: data_tag: D35
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D3
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D68
type_infered: f32[4]
name: extract_symbolic_data
arguments: data_tag: D81
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D71
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D61
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D119
type_infered: f32[2]
name: extract_symbolic_data
arguments: data_tag: D96
type_infered: byte[8]

tool: D33: 1

tool: D99: 9223372036854775807

tool: D35: 40000

tool: {"D3": [0xcd,0xcc,0xcc,0xcc,0x8c,0x6f,0xd1,0x40]}

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

tool: D81: 0.001

tool: D71: 4

tool: D61: 3

tool: {"D119": [0.0,1.625]}

tool: {"D96": [0x14,0xc0,0x1c,0x73,0xdf,0xd9,0x12,0xbf]}

assistant: ```c
int exactI(const double m, const double x, const double y, double *bed, double *tauc, double *u, double *v) {
  const double L = 40e3;
  const double aspect = 0.05;
  const double h0 = aspect * L;
  const double theta = atan(0.001);
  const double rho = 910, g = 9.81;
  const double f = rho * g * h0 * tan(theta);
  const double W = pow(m + 1.0, 1.0 / m) * L;
  const double B = 3.7e8;
  const double s = fabs(y / L);
  double C0, C1, C2, C3, C4, z1, z2, z3, z4;
  *tauc = f * pow(s, m);
  *bed = -x * tan(theta);
  if (fabs(y) < W) {
    C0 = 2.0 * pow(f / (B * h0), 3.0) * pow(L, 4.0);
    C1 = pow(m + 1.0, 4.0 / m);
    C2 = (m + 1.0) * C1;
    C3 = (m + 1.0) * C2;
    C4 = (m + 1.0) * C3;
    z1 = (pow(s, 4.0) - C1) / 4.0;
    z2 = (pow(s, m + 4.0) - C2) / ((m + 1.0) * (m + 4.0));
    z3 = (pow(s, 2.0 * m + 4.0) - C3) / ((m + 1.0) * (m + 1.0) * (2.0 * m + 4.0));
    z4 = (pow(s, 3.0 * m + 4.0) - C4) / (pow((m + 1.0), 3.0) * (3.0 * m + 4.0));
    *u = -C0 * (z1 - 3.0 * z2 + 3.0 * z3 - z4);
  } else {
    *u = 0.0;
  }
  *v = 0.0;
  return 0;
}
```