user: 这段汇编代码用C语言表示是什么样的:

```asm
<airBesselI1ExpScaled>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L55
  movsd  -0x28(%rbp),%xmm0
  jmp    L4
L55:
  movsd  -0x28(%rbp),%xmm0
  movq   D214(%rip),%xmm1
  xorpd  %xmm1,%xmm0
L4:
  movsd  %xmm0,-0x10(%rbp)
  movsd  D12(%rip),%xmm0
  comisd -0x10(%rbp),%xmm0
  jbe    L32
  movsd  -0x28(%rbp),%xmm0
  movsd  D188(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm1
  movsd  D60(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D28(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D87(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D172(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D205(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D56(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  -0x8(%rbp),%xmm2
  movsd  D194(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  movsd  D204(%rip),%xmm1
  subsd  %xmm2,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D86(%rip),%xmm2
  subsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x8(%rbp),%xmm2
  movsd  D169(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movq   D214(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  -0x18(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L49
L32:
  movsd  D188(%rip),%xmm0
  divsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm1
  movsd  D248(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D40(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  D95(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D197(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  D48(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D126(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x8(%rbp),%xmm2
  movsd  D39(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  movsd  D80(%rip),%xmm1
  subsd  %xmm2,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D145(%rip),%xmm2
  subsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x8(%rbp),%xmm2
  movsd  D169(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  mov    %eax,%ecx
  mov    $0x1,%eax
  cltd
  idiv   %ecx
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x18(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
L49:
  pxor   %xmm0,%xmm0
  comisd -0x28(%rbp),%xmm0
  jbe    L37
  movsd  -0x18(%rbp),%xmm0
  movq   D214(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  jmp    L22
L37:
  movsd  -0x18(%rbp),%xmm0
L22:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D214
type_guessed: f32[2]
name: extract_symbolic_data
arguments: data_tag: D12
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D188
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D60
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D28
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D87
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D172
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D205
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D56
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D194
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D204
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D86
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D169
type_guessed: f32[2]
name: extract_symbolic_data
arguments: data_tag: D248
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D40
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D95
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D197
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D48
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D126
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D39
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D80
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D145
type_guessed: f64

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

tool: D12: 6.449305566387246

tool: D188: 6.45

tool: D60: 0.0792323006694466

tool: D28: 0.6092719473097832

tool: D87: 2.0569974969268707

tool: D172: 3.3554331305863787

tool: D205: 2.370331499358438

tool: D56: 0.4999999998235554

tool: D194: 0.006777712190188699

tool: D204: 0.08677361454866868

tool: D86: 0.4596495788370524

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

tool: D248: 7.03849046144657e-05

tool: D40: 0.00248933264397244

tool: D95: 0.0766281832045885

tool: D197: 0.40311772245257

tool: D48: 0.669339325353065

tool: D126: 0.398942280267484

tool: D39: 0.142824922601647

tool: D80: 0.919118239717915

tool: D145: 1.61964537617937

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;
}
```