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

```asm
<eqc>:
  endbr64
  sub    $0x38,%rsp
  movsd  %xmm0,0x8(%rsp)
  call   <ma_sun@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,(%rsp)
  movapd %xmm1,%xmm0
  call   <eoe@plt>
  movsd  %xmm0,0x28(%rsp)
  movsd  (%rsp),%xmm0
  call   <sin@plt>
  movsd  (%rsp),%xmm7
  movsd  %xmm0,0x20(%rsp)
  movapd %xmm7,%xmm0
  addsd  %xmm7,%xmm0
  call   <sin@plt>
  movsd  %xmm0,0x18(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D91(%rip),%xmm0
  call   <sin@plt>
  movsd  %xmm0,0x10(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D14(%rip),%xmm0
  call   <sin@plt>
  movsd  D5(%rip),%xmm3
  mulsd  (%rsp),%xmm3
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm3,%xmm0
  call   <sin@plt>
  movsd  D64(%rip),%xmm1
  movsd  0x20(%rsp),%xmm4
  movsd  D23(%rip),%xmm7
  movsd  0x10(%rsp),%xmm2
  mulsd  %xmm0,%xmm1
  movsd  D5(%rip),%xmm0
  movsd  0x8(%rsp),%xmm6
  divsd  D159(%rip),%xmm1
  mulsd  D30(%rip),%xmm6
  movsd  0x28(%rsp),%xmm3
  mulsd  %xmm4,%xmm0
  movsd  0x18(%rsp),%xmm5
  divsd  %xmm7,%xmm0
  addsd  %xmm0,%xmm1
  movsd  D45(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  D78(%rip),%xmm0
  mulsd  D10(%rip),%xmm2
  divsd  D105(%rip),%xmm2
  subsd  %xmm0,%xmm1
  movapd %xmm6,%xmm0
  movsd  D26(%rip),%xmm6
  divsd  %xmm7,%xmm0
  mulsd  %xmm5,%xmm6
  mulsd  %xmm3,%xmm1
  divsd  D67(%rip),%xmm6
  mulsd  D5(%rip),%xmm5
  subsd  %xmm6,%xmm0
  movapd %xmm4,%xmm6
  addsd  %xmm4,%xmm4
  addsd  %xmm0,%xmm1
  movsd  D111(%rip),%xmm0
  add    $0x38,%rsp
  mulsd  %xmm0,%xmm6
  mulsd  %xmm3,%xmm1
  mulsd  %xmm0,%xmm5
  subsd  %xmm6,%xmm2
  addsd  %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  addsd  %xmm5,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm3,%xmm0
  addsd  %xmm4,%xmm0
  mulsd  %xmm3,%xmm0
  ret
```

tool_calls: name: disassemble_data
arguments: label: D91
datatype: f64
name: disassemble_data
arguments: label: D14
datatype: f64
name: disassemble_data
arguments: label: D5
datatype: f64
name: disassemble_data
arguments: label: D64
datatype: f64
name: disassemble_data
arguments: label: D23
datatype: f64
name: disassemble_data
arguments: label: D159
datatype: f64
name: disassemble_data
arguments: label: D30
datatype: f64
name: disassemble_data
arguments: label: D45
datatype: f64
name: disassemble_data
arguments: label: D78
datatype: byte[8]
name: disassemble_data
arguments: label: D10
datatype: f64
name: disassemble_data
arguments: label: D105
datatype: f64
name: disassemble_data
arguments: label: D26
datatype: f64
name: disassemble_data
arguments: label: D67
datatype: f64
name: disassemble_data
arguments: label: D111
datatype: byte[8]

tool: D91: 3

tool: D14: 4

tool: D5: 5

tool: D64: 1097

tool: D23: 96

tool: D159: 960

tool: D30: 103

tool: D45: 43

tool: {"D78": [0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x3f]}

tool: D10: 13

tool: D105: 12

tool: D26: 11

tool: D67: 24

tool: {"D111": [0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x3f]}

assistant: ```c
double eqc(double t) {
  double a1, a2, a3, a4, a5;
  double ma, e, s1, s2, s3, s4, s5;
  ma = ma_sun(t);
  e = eoe(t);
  s1 = sin(1.0 * ma);
  s2 = sin(2.0 * ma);
  s3 = sin(3.0 * ma);
  s4 = sin(4.0 * ma);
  s5 = sin(5.0 * ma);
  a1 = s1 * 2;
  a2 = s2 * 5.0 / 4.0;
  a3 = s3 * 13.0 / 12.0 - s1 * 1.0 / 4.0;
  a4 = s4 * 103.0 / 96.0 - s2 * 11.0 / 24.0;
  a5 = s5 * 1097.0 / 960.0 + s1 * 5.0 / 96.0 - s3 * 43.0 / 64.0;
  return e * (a1 + e * (a2 + e * (a3 + e * (a4 + e * a5))));
}
```