user: Please show me the C implementation that matches the assembly code listed below:

```asm
<GetEarthNutationParameter>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movsd  %xmm0,-0x28(%rbp)
  mov    %rdi,-0x30(%rbp)
  mov    %rsi,-0x38(%rbp)
  mov    %rdx,-0x40(%rbp)
  mov    %rcx,-0x48(%rbp)
  mov    %r8,-0x50(%rbp)
  movsd  -0x28(%rbp),%xmm1
  movsd  D67(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x18(%rbp),%xmm1
  movsd  D23(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D86(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x10(%rbp),%xmm2
  movsd  D130(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x8(%rbp),%xmm0
  movsd  D167(%rip),%xmm2
  divsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x30(%rbp),%rax
  movsd  %xmm0,(%rax)
  movsd  -0x18(%rbp),%xmm1
  movsd  D160(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x10(%rbp),%xmm2
  movsd  D178(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x8(%rbp),%xmm1
  movsd  D155(%rip),%xmm2
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
  movsd  -0x18(%rbp),%xmm1
  movsd  D195(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D25(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x10(%rbp),%xmm2
  movsd  D194(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x8(%rbp),%xmm0
  movsd  D90(%rip),%xmm2
  divsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  movsd  %xmm0,(%rax)
  movsd  -0x18(%rbp),%xmm1
  movsd  D180(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D141(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x10(%rbp),%xmm2
  movsd  D96(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x8(%rbp),%xmm0
  movsd  D61(%rip),%xmm2
  divsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x48(%rbp),%rax
  movsd  %xmm0,(%rax)
  movsd  -0x18(%rbp),%xmm1
  movsd  D131(%rip),%xmm0
  movapd %xmm1,%xmm2
  mulsd  %xmm0,%xmm2
  movsd  D3(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x10(%rbp),%xmm2
  movsd  D148(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x8(%rbp),%xmm0
  movsd  D185(%rip),%xmm2
  divsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x50(%rbp),%rax
  movsd  %xmm0,(%rax)
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: label: D67
type_guessed: f64
name: disassemble_data
arguments: label: D23
type_guessed: f64
name: disassemble_data
arguments: label: D86
type_guessed: f64
name: disassemble_data
arguments: label: D130
type_guessed: f64
name: disassemble_data
arguments: label: D167
type_guessed: f64
name: disassemble_data
arguments: label: D160
type_guessed: f64
name: disassemble_data
arguments: label: D6
type_guessed: f64
name: disassemble_data
arguments: label: D178
type_guessed: f64
name: disassemble_data
arguments: label: D155
type_guessed: f64
name: disassemble_data
arguments: label: D195
type_guessed: f64
name: disassemble_data
arguments: label: D25
type_guessed: f64
name: disassemble_data
arguments: label: D194
type_guessed: f64
name: disassemble_data
arguments: label: D90
type_guessed: f64
name: disassemble_data
arguments: label: D180
type_guessed: f64
name: disassemble_data
arguments: label: D141
type_guessed: f64
name: disassemble_data
arguments: label: D96
type_guessed: f64
name: disassemble_data
arguments: label: D61
type_guessed: f64
name: disassemble_data
arguments: label: D131
type_guessed: f64
name: disassemble_data
arguments: label: D3
type_guessed: f64
name: disassemble_data
arguments: label: D148
type_guessed: f64
name: disassemble_data
arguments: label: D185
type_guessed: f64

tool: D67: 10

tool: D23: 445267.11148

tool: D86: 297.85036

tool: D130: 0.0019142

tool: D167: 189474

tool: D160: 35999.05034

tool: D6: 357.52772

tool: D178: 0.0001603

tool: D155: 300000

tool: D195: 477198.867398

tool: D25: 134.96298

tool: D194: 0.0086972

tool: D90: 56250

tool: D180: 483202.017538

tool: D141: 93.27191

tool: D96: 0.0036825

tool: D61: 327270

tool: D131: 1934.136261

tool: D3: 125.04452

tool: D148: 0.0020708

tool: D185: 450000

assistant: ```c
void GetEarthNutationParameter(double dt, double *D, double *M, double *Mp, double *F, double *Omega) {
  double T = dt * 10;
  double T2 = T * T;
  double T3 = T2 * T;
  *D = 297.85036 + 445267.111480 * T - 0.0019142 * T2 + T3 / 189474.0;
  *M = 357.52772 + 35999.050340 * T - 0.0001603 * T2 - T3 / 300000.0;
  *Mp = 134.96298 + 477198.867398 * T + 0.0086972 * T2 + T3 / 56250.0;
  *F = 93.27191 + 483202.017538 * T - 0.0036825 * T2 + T3 / 327270.0;
  *Omega = 125.04452 - 1934.136261 * T + 0.0020708 * T2 + T3 / 450000.0;
}
```