user: 下面的汇编指令对应的C源代码是什么：

```asm
<airBesselI1>:
  endbr64
  pxor   %xmm2,%xmm2
  movapd %xmm0,%xmm1
  movapd %xmm0,%xmm4
  comisd %xmm2,%xmm0
  ja     L13
  xorpd  D12(%rip),%xmm4
L13:
  movsd  D35(%rip),%xmm0
  comisd %xmm4,%xmm0
  jbe    L12
  movapd %xmm1,%xmm5
  divsd  D104(%rip),%xmm5
  movsd  D146(%rip),%xmm0
  comisd %xmm1,%xmm2
  mulsd  %xmm5,%xmm5
  movsd  D30(%rip),%xmm3
  mulsd  %xmm5,%xmm0
  addsd  D126(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D190(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D66(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D228(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D210(%rip),%xmm0
  mulsd  %xmm4,%xmm0
  movsd  D37(%rip),%xmm4
  mulsd  %xmm5,%xmm4
  subsd  %xmm4,%xmm3
  mulsd  %xmm5,%xmm3
  subsd  D162(%rip),%xmm3
  mulsd  %xmm5,%xmm3
  addsd  D152(%rip),%xmm3
  divsd  %xmm3,%xmm0
  ja     L5
  ret
  nopl   0x0(%rax,%rax,1)
L5:
  xorpd  D12(%rip),%xmm0
  ret
  nopl   0x0(%rax)
L12:
  sub    $0x28,%rsp
  movsd  D104(%rip),%xmm6
  movsd  D239(%rip),%xmm0
  movsd  D166(%rip),%xmm7
  movsd  D85(%rip),%xmm5
  movsd  %xmm1,0x18(%rsp)
  divsd  %xmm4,%xmm6
  movsd  %xmm4,0x10(%rsp)
  mulsd  %xmm6,%xmm0
  addsd  D115(%rip),%xmm0
  mulsd  %xmm6,%xmm7
  mulsd  %xmm6,%xmm0
  subsd  D72(%rip),%xmm0
  subsd  %xmm7,%xmm5
  mulsd  %xmm6,%xmm0
  addsd  D136(%rip),%xmm0
  movapd %xmm5,%xmm3
  mulsd  %xmm6,%xmm3
  subsd  D160(%rip),%xmm3
  mulsd  %xmm6,%xmm0
  subsd  D225(%rip),%xmm0
  mulsd  %xmm6,%xmm3
  addsd  D152(%rip),%xmm3
  mulsd  %xmm6,%xmm0
  addsd  D1(%rip),%xmm0
  divsd  %xmm3,%xmm0
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm4,%xmm0
  call   <exp@plt>
  movsd  0x10(%rsp),%xmm4
  pxor   %xmm2,%xmm2
  movsd  0x18(%rsp),%xmm1
  movapd %xmm0,%xmm3
  ucomisd %xmm4,%xmm2
  ja     L21
  sqrtsd %xmm4,%xmm4
L39:
  divsd  %xmm4,%xmm3
  comisd %xmm1,%xmm2
  movsd  0x8(%rsp),%xmm0
  mulsd  %xmm3,%xmm0
  ja     L45
  add    $0x28,%rsp
  ret
  cs nopw 0x0(%rax,%rax,1)
L45:
  xorpd  D12(%rip),%xmm0
  add    $0x28,%rsp
  ret
L21:
  movsd  %xmm0,0x10(%rsp)
  movapd %xmm4,%xmm0
  movsd  %xmm1,0x18(%rsp)
  call   <sqrt@plt>
  movsd  0x18(%rsp),%xmm1
  movsd  0x10(%rsp),%xmm3
  pxor   %xmm2,%xmm2
  movapd %xmm0,%xmm4
  jmp    L39
```

tool_calls: name: retrieve_data
arguments: data_label: D12
data_type: f32[4]
name: retrieve_data
arguments: data_label: D35
data_type: f64
name: retrieve_data
arguments: data_label: D104
data_type: f64
name: retrieve_data
arguments: data_label: D146
data_type: f64
name: retrieve_data
arguments: data_label: D30
data_type: f64
name: retrieve_data
arguments: data_label: D126
data_type: f64
name: retrieve_data
arguments: data_label: D190
data_type: f64
name: retrieve_data
arguments: data_label: D66
data_type: f64
name: retrieve_data
arguments: data_label: D228
data_type: f64
name: retrieve_data
arguments: data_label: D210
data_type: f64
name: retrieve_data
arguments: data_label: D37
data_type: f64
name: retrieve_data
arguments: data_label: D162
data_type: f64
name: retrieve_data
arguments: data_label: D152
data_type: f32[2]
name: retrieve_data
arguments: data_label: D239
data_type: f64
name: retrieve_data
arguments: data_label: D166
data_type: f64
name: retrieve_data
arguments: data_label: D85
data_type: f64
name: retrieve_data
arguments: data_label: D115
data_type: f64
name: retrieve_data
arguments: data_label: D72
data_type: f64
name: retrieve_data
arguments: data_label: D136
data_type: f64
name: retrieve_data
arguments: data_label: D160
data_type: f64
name: retrieve_data
arguments: data_label: D225
data_type: f64
name: retrieve_data
arguments: data_label: D1
data_type: f64

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

tool: D35: 6.449305566387246

tool: D104: 6.45

tool: D146: 0.0792323006694466

tool: D30: 0.08677361454866868

tool: D126: 0.6092719473097832

tool: D190: 2.0569974969268707

tool: D66: 3.3554331305863787

tool: D228: 2.370331499358438

tool: D210: 0.4999999998235554

tool: D37: 0.006777712190188699

tool: D162: 0.4596495788370524

tool: {"D152": [0.0,1.875]}

tool: D239: 7.03849046144657e-05

tool: D166: 0.142824922601647

tool: D85: 0.919118239717915

tool: D115: 0.00248933264397244

tool: D72: 0.0766281832045885

tool: D136: 0.40311772245257

tool: D160: 1.61964537617937

tool: D225: 0.669339325353065

tool: D1: 0.398942280267484

assistant: ```c
double airBesselI1(double x) {
  double b, ax, y;
  ax = ((x) > 0.0f ? (x) : -(x));
  if (ax < 6.449305566387246) {
    y = x / 6.45;
    y *= y;
    b = ax * (0.4999999998235554 + y * (2.370331499358438 + y * (3.3554331305863787 + y * (2.0569974969268707 + (0.6092719473097832 + 0.0792323006694466 * y) * y)))) / (1 + y * (-0.4596495788370524 + (0.08677361454866868 - 0.006777712190188699 * y) * y));
  } else {
    y = 6.45 / ax;
    b = (0.398942280267484 + y * (-0.669339325353065 + y * (0.40311772245257 + y * (-0.0766281832045885 + (0.00248933264397244 + 0.0000703849046144657 * y) * y)))) / (1 + y * (-1.61964537617937 + (0.919118239717915 - 0.142824922601647 * y) * y));
    b *= exp(ax) / sqrt(ax);
  }
  return x < 0.0 ? -b : b;
}
```