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

```asm
<airBesselI1ExpScaled>:
  endbr64
  pxor   %xmm7,%xmm7
  movapd %xmm0,%xmm1
  movapd %xmm0,%xmm2
  sub    $0x18,%rsp
  comisd %xmm7,%xmm0
  ja     L11
  xorpd  D217(%rip),%xmm2
L11:
  movsd  D229(%rip),%xmm0
  comisd %xmm2,%xmm0
  jbe    L8
  movapd %xmm1,%xmm5
  divsd  D190(%rip),%xmm5
  movsd  D85(%rip),%xmm0
  movsd  D87(%rip),%xmm6
  mulsd  %xmm5,%xmm5
  movsd  D205(%rip),%xmm4
  movsd  %xmm1,0x8(%rsp)
  mulsd  %xmm5,%xmm0
  addsd  D1(%rip),%xmm0
  mulsd  %xmm5,%xmm6
  mulsd  %xmm5,%xmm0
  addsd  D36(%rip),%xmm0
  subsd  %xmm6,%xmm4
  mulsd  %xmm5,%xmm0
  addsd  D218(%rip),%xmm0
  movapd %xmm4,%xmm3
  mulsd  %xmm5,%xmm3
  subsd  D213(%rip),%xmm3
  mulsd  %xmm5,%xmm0
  addsd  D152(%rip),%xmm0
  mulsd  %xmm5,%xmm3
  addsd  D49(%rip),%xmm3
  mulsd  %xmm5,%xmm0
  addsd  D108(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  xorpd  D217(%rip),%xmm2
  divsd  %xmm3,%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm2,%xmm0
  call   <exp@plt>
  mulsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
L38:
  pxor   %xmm4,%xmm4
  comisd %xmm1,%xmm4
  jbe    L30
  xorpd  D217(%rip),%xmm0
L30:
  add    $0x18,%rsp
  ret
  nopw   0x0(%rax,%rax,1)
L8:
  movsd  D190(%rip),%xmm5
  movsd  D162(%rip),%xmm0
  movsd  %xmm1,0x8(%rsp)
  movsd  D115(%rip),%xmm6
  movsd  D183(%rip),%xmm4
  divsd  %xmm2,%xmm5
  mulsd  %xmm5,%xmm0
  addsd  D106(%rip),%xmm0
  mulsd  %xmm5,%xmm6
  mulsd  %xmm5,%xmm0
  subsd  D154(%rip),%xmm0
  subsd  %xmm6,%xmm4
  mulsd  %xmm5,%xmm0
  addsd  D227(%rip),%xmm0
  movapd %xmm4,%xmm3
  mulsd  %xmm5,%xmm3
  subsd  D71(%rip),%xmm3
  mulsd  %xmm5,%xmm0
  subsd  D206(%rip),%xmm0
  mulsd  %xmm5,%xmm3
  addsd  D49(%rip),%xmm3
  mulsd  %xmm5,%xmm0
  addsd  D47(%rip),%xmm0
  divsd  %xmm3,%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm2,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm1
  mov    %eax,%r8d
  mov    $0x1,%eax
  cltd
  idiv   %r8d
  cvtsi2sd %eax,%xmm0
  mulsd  (%rsp),%xmm0
  jmp    L38
```

tool_calls: name: unpack_data
arguments: tag: D217
type_infered: f32[4]
name: unpack_data
arguments: tag: D229
type_infered: f64
name: unpack_data
arguments: tag: D190
type_infered: f64
name: unpack_data
arguments: tag: D85
type_infered: f64
name: unpack_data
arguments: tag: D87
type_infered: f64
name: unpack_data
arguments: tag: D205
type_infered: f64
name: unpack_data
arguments: tag: D1
type_infered: f64
name: unpack_data
arguments: tag: D36
type_infered: f64
name: unpack_data
arguments: tag: D218
type_infered: f64
name: unpack_data
arguments: tag: D213
type_infered: f64
name: unpack_data
arguments: tag: D152
type_infered: f64
name: unpack_data
arguments: tag: D49
type_infered: f32[2]
name: unpack_data
arguments: tag: D108
type_infered: f64
name: unpack_data
arguments: tag: D162
type_infered: f64
name: unpack_data
arguments: tag: D115
type_infered: f64
name: unpack_data
arguments: tag: D183
type_infered: f64
name: unpack_data
arguments: tag: D106
type_infered: f64
name: unpack_data
arguments: tag: D154
type_infered: f64
name: unpack_data
arguments: tag: D227
type_infered: f64
name: unpack_data
arguments: tag: D71
type_infered: f64
name: unpack_data
arguments: tag: D206
type_infered: f64
name: unpack_data
arguments: tag: D47
type_infered: f64

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

tool: D229: 6.449305566387246

tool: D190: 6.45

tool: D85: 0.0792323006694466

tool: D87: 0.006777712190188699

tool: D205: 0.08677361454866868

tool: D1: 0.6092719473097832

tool: D36: 2.0569974969268707

tool: D218: 3.3554331305863787

tool: D213: 0.4596495788370524

tool: D152: 2.370331499358438

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

tool: D108: 0.4999999998235554

tool: D162: 7.03849046144657e-05

tool: D115: 0.142824922601647

tool: D183: 0.919118239717915

tool: D106: 0.00248933264397244

tool: D154: 0.0766281832045885

tool: D227: 0.40311772245257

tool: D71: 1.61964537617937

tool: D206: 0.669339325353065

tool: D47: 0.398942280267484

assistant: ```c
double airBesselI1ExpScaled(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));
    b *= exp(-ax);
  } 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 *= 1 / sqrt(ax);
  }
  return x < 0.0 ? -b : b;
}
```