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

```asm
<fibFP>:
  endbr64
  movsd  D43(%rip),%xmm3
  comisd %xmm0,%xmm3
  jbe    L110
  movsd  D52(%rip),%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L110:
  movapd %xmm0,%xmm2
  sub    $0x38,%rsp
  movapd %xmm0,%xmm1
  subsd  %xmm3,%xmm2
  comisd %xmm2,%xmm3
  ja     L197
  movapd %xmm2,%xmm5
  subsd  %xmm3,%xmm5
  comisd %xmm5,%xmm3
  jbe    L148
  movsd  D52(%rip),%xmm4
  movapd %xmm4,%xmm6
L203:
  subsd  %xmm4,%xmm2
  movapd %xmm4,%xmm5
  comisd %xmm2,%xmm3
  ja     L102
  movapd %xmm2,%xmm5
  movapd %xmm4,%xmm7
  subsd  %xmm3,%xmm5
  comisd %xmm5,%xmm3
  ja     L9
  movapd %xmm5,%xmm0
  movsd  %xmm1,0x20(%rsp)
  subsd  %xmm3,%xmm0
  movsd  %xmm6,0x18(%rsp)
  movsd  %xmm2,0x10(%rsp)
  movsd  %xmm4,0x28(%rsp)
  movsd  %xmm5,0x8(%rsp)
  call   <fibFP>
  movsd  0x28(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm5
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm5
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm5,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm7
  mov    D43(%rip),%rax
  movsd  0x20(%rsp),%xmm1
  movsd  0x18(%rsp),%xmm6
  addsd  %xmm0,%xmm7
  movsd  0x10(%rsp),%xmm2
  movsd  0x8(%rsp),%xmm4
  movq   %rax,%xmm3
L9:
  subsd  %xmm4,%xmm2
  movapd %xmm4,%xmm5
  comisd %xmm2,%xmm3
  ja     L97
  movapd %xmm2,%xmm0
  movsd  %xmm1,0x20(%rsp)
  subsd  %xmm3,%xmm0
  movsd  %xmm7,0x18(%rsp)
  movsd  %xmm6,0x10(%rsp)
  movsd  %xmm4,0x28(%rsp)
  movsd  %xmm2,0x8(%rsp)
  call   <fibFP>
  movsd  0x28(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm2
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm2
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm2,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm5
  mov    D43(%rip),%rax
  movsd  0x20(%rsp),%xmm1
  movsd  0x18(%rsp),%xmm7
  addsd  %xmm0,%xmm5
  movsd  0x10(%rsp),%xmm6
  movsd  0x8(%rsp),%xmm4
  movq   %rax,%xmm3
L97:
  addsd  %xmm7,%xmm5
L102:
  addsd  %xmm6,%xmm5
  jmp    L170
  nopl   0x0(%rax)
L197:
  movsd  D52(%rip),%xmm4
  movapd %xmm4,%xmm5
L170:
  subsd  %xmm4,%xmm1
  movapd %xmm4,%xmm0
  comisd %xmm1,%xmm3
  ja     L166
  movapd %xmm1,%xmm2
  movapd %xmm4,%xmm6
  subsd  %xmm3,%xmm2
  comisd %xmm2,%xmm3
  jbe    L85
  subsd  %xmm4,%xmm1
  movapd %xmm4,%xmm0
  comisd %xmm1,%xmm3
  jbe    L145
L120:
  addsd  %xmm6,%xmm0
L166:
  addsd  %xmm5,%xmm0
  add    $0x38,%rsp
  ret
  nopl   0x0(%rax,%rax,1)
L145:
  movapd %xmm1,%xmm2
  movapd %xmm4,%xmm7
  subsd  %xmm3,%xmm2
  comisd %xmm2,%xmm3
  ja     L77
  movapd %xmm2,%xmm0
  movsd  %xmm6,0x20(%rsp)
  subsd  %xmm3,%xmm0
  movsd  %xmm5,0x18(%rsp)
  movsd  %xmm1,0x10(%rsp)
  movsd  %xmm4,0x28(%rsp)
  movsd  %xmm2,0x8(%rsp)
  call   <fibFP>
  movsd  0x28(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm2
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm2
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm2,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm7
  mov    D43(%rip),%rax
  movsd  0x20(%rsp),%xmm6
  movsd  0x18(%rsp),%xmm5
  addsd  %xmm0,%xmm7
  movsd  0x10(%rsp),%xmm1
  movsd  0x8(%rsp),%xmm4
  movq   %rax,%xmm3
L77:
  subsd  %xmm4,%xmm1
  comisd %xmm1,%xmm3
  ja     L30
  movapd %xmm1,%xmm0
  movsd  %xmm7,0x28(%rsp)
  subsd  %xmm3,%xmm0
  movsd  %xmm6,0x18(%rsp)
  movsd  %xmm5,0x10(%rsp)
  movsd  %xmm4,0x20(%rsp)
  movsd  %xmm1,0x8(%rsp)
  call   <fibFP>
  movsd  0x20(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm1
  movapd %xmm1,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm4
  movsd  0x28(%rsp),%xmm7
  movsd  0x18(%rsp),%xmm6
  movsd  0x10(%rsp),%xmm5
  addsd  %xmm0,%xmm4
L30:
  addsd  %xmm7,%xmm4
  movapd %xmm4,%xmm0
  jmp    L120
  nopl   0x0(%rax)
L85:
  movapd %xmm2,%xmm6
  movapd %xmm4,%xmm7
  subsd  %xmm3,%xmm6
  comisd %xmm6,%xmm3
  ja     L54
  movapd %xmm6,%xmm0
  movsd  %xmm5,0x20(%rsp)
  subsd  %xmm3,%xmm0
  movsd  %xmm2,0x18(%rsp)
  movsd  %xmm1,0x10(%rsp)
  movsd  %xmm4,0x28(%rsp)
  movsd  %xmm6,0x8(%rsp)
  call   <fibFP>
  movsd  0x28(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm6
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm6
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm6,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm7
  mov    D43(%rip),%rax
  movsd  0x20(%rsp),%xmm5
  movsd  0x18(%rsp),%xmm2
  addsd  %xmm0,%xmm7
  movsd  0x10(%rsp),%xmm1
  movsd  0x8(%rsp),%xmm4
  movq   %rax,%xmm3
L54:
  subsd  %xmm4,%xmm2
  movapd %xmm4,%xmm6
  comisd %xmm2,%xmm3
  ja     L8
  movapd %xmm2,%xmm0
  movsd  %xmm7,0x20(%rsp)
  subsd  %xmm3,%xmm0
  movsd  %xmm5,0x18(%rsp)
  movsd  %xmm1,0x10(%rsp)
  movsd  %xmm4,0x28(%rsp)
  movsd  %xmm2,0x8(%rsp)
  call   <fibFP>
  movsd  0x28(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm2
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm2
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm2,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm6
  mov    D43(%rip),%rax
  movsd  0x20(%rsp),%xmm7
  movsd  0x18(%rsp),%xmm5
  addsd  %xmm0,%xmm6
  movsd  0x10(%rsp),%xmm1
  movsd  0x8(%rsp),%xmm4
  movq   %rax,%xmm3
L8:
  subsd  %xmm4,%xmm1
  addsd  %xmm7,%xmm6
  movapd %xmm4,%xmm0
  comisd %xmm1,%xmm3
  ja     L120
  jmp    L145
  nopl   0x0(%rax,%rax,1)
L148:
  movapd %xmm5,%xmm6
  subsd  %xmm3,%xmm6
  comisd %xmm6,%xmm3
  ja     L175
  movsd  %xmm0,0x20(%rsp)
  movapd %xmm6,%xmm0
  subsd  %xmm3,%xmm0
  movsd  %xmm5,0x18(%rsp)
  movsd  %xmm2,0x10(%rsp)
  movsd  %xmm6,0x8(%rsp)
  call   <fibFP>
  movsd  D52(%rip),%xmm4
  movsd  0x8(%rsp),%xmm6
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm6
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm6,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm7
  mov    D43(%rip),%rax
  movsd  0x8(%rsp),%xmm4
  movsd  0x10(%rsp),%xmm2
  addsd  %xmm0,%xmm7
  movsd  0x18(%rsp),%xmm5
  movsd  0x20(%rsp),%xmm1
  movq   %rax,%xmm3
L83:
  subsd  %xmm4,%xmm5
  movapd %xmm4,%xmm6
  comisd %xmm5,%xmm3
  ja     L87
  movapd %xmm5,%xmm0
  movsd  %xmm1,0x20(%rsp)
  subsd  %xmm3,%xmm0
  movsd  %xmm7,0x18(%rsp)
  movsd  %xmm2,0x10(%rsp)
  movsd  %xmm4,0x28(%rsp)
  movsd  %xmm5,0x8(%rsp)
  call   <fibFP>
  movsd  0x28(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm5
  movsd  %xmm0,(%rsp)
  subsd  %xmm4,%xmm5
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm5,%xmm0
  call   <fibFP>
  movsd  (%rsp),%xmm6
  mov    D43(%rip),%rax
  movsd  0x20(%rsp),%xmm1
  movsd  0x18(%rsp),%xmm7
  addsd  %xmm0,%xmm6
  movsd  0x10(%rsp),%xmm2
  movsd  0x8(%rsp),%xmm4
  movq   %rax,%xmm3
L87:
  addsd  %xmm7,%xmm6
  jmp    L203
  nopl   (%rax)
L175:
  movsd  D52(%rip),%xmm4
  movapd %xmm4,%xmm7
  jmp    L83
```

tool_calls: name: parse_data
arguments: data_tag: D43
type: f64
name: parse_data
arguments: data_tag: D52
type: f64

tool: D43: 2

tool: D52: 1

assistant: ```c
double fibFP(double n) {
  if (n < 2.0) {
    return 1.0;
  }
  return fibFP(n - 2.0) + fibFP(n - 1.0);
}
```