user: 请从给定的汇编指令推导出C源代码：

```asm
<bessi1_salahat_exponScaled>:
  endbr64
  push   %rbx
  sub    $0x10,%rsp
  movapd %xmm0,%xmm3
  movsd  %xmm0,(%rsp)
  movsd  D42(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L39
  movsd  D147(%rip),%xmm0
  comisd (%rsp),%xmm0
  ja     L58
  movsd  D218(%rip),%xmm0
  movsd  (%rsp),%xmm2
  comisd %xmm2,%xmm0
  jbe    L52
  movapd %xmm2,%xmm0
  mulsd  D13(%rip),%xmm0
  call   <expl@plt>
  movq   %xmm0,%rbx
  movsd  (%rsp),%xmm0
  mulsd  D116(%rip),%xmm0
  call   <expl@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm5
  mulsd  D232(%rip),%xmm5
  mulsd  D157(%rip),%xmm1
  movapd %xmm5,%xmm6
  addsd  %xmm1,%xmm6
  movsd  %xmm6,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D124(%rip),%xmm0
  call   <expl@plt>
  mulsd  D220(%rip),%xmm0
  movapd %xmm0,%xmm7
  addsd  0x8(%rsp),%xmm7
  movsd  %xmm7,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D312(%rip),%xmm0
  call   <expl@plt>
  mulsd  D325(%rip),%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  fldl   (%rsp)
L0:
  add    $0x10,%rsp
  pop    %rbx
  ret
L39:
  movapd %xmm3,%xmm0
  mulsd  D27(%rip),%xmm0
  call   <expl@plt>
  movq   %xmm0,%rbx
  movsd  (%rsp),%xmm0
  mulsd  D306(%rip),%xmm0
  call   <expl@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm4
  mulsd  D43(%rip),%xmm4
  mulsd  D65(%rip),%xmm1
  movapd %xmm4,%xmm5
  addsd  %xmm1,%xmm5
  movsd  %xmm5,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D153(%rip),%xmm0
  call   <expl@plt>
  mulsd  D263(%rip),%xmm0
  movapd %xmm0,%xmm4
  addsd  0x8(%rsp),%xmm4
  movsd  %xmm4,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D41(%rip),%xmm0
  call   <expl@plt>
  mulsd  D92(%rip),%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  fldl   (%rsp)
  jmp    L0
L58:
  movsd  (%rsp),%xmm0
  mulsd  D202(%rip),%xmm0
  call   <expl@plt>
  movq   %xmm0,%rbx
  movsd  (%rsp),%xmm0
  mulsd  D28(%rip),%xmm0
  call   <expl@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm2
  mulsd  D105(%rip),%xmm2
  mulsd  D313(%rip),%xmm1
  movapd %xmm2,%xmm5
  addsd  %xmm1,%xmm5
  movsd  %xmm5,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D127(%rip),%xmm0
  call   <expl@plt>
  mulsd  D190(%rip),%xmm0
  movapd %xmm0,%xmm6
  addsd  0x8(%rsp),%xmm6
  movsd  %xmm6,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D171(%rip),%xmm0
  call   <expl@plt>
  mulsd  D310(%rip),%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  fldl   (%rsp)
  jmp    L0
L52:
  movsd  (%rsp),%xmm0
  mulsd  D185(%rip),%xmm0
  call   <expl@plt>
  movq   %xmm0,%rbx
  movsd  (%rsp),%xmm0
  mulsd  D289(%rip),%xmm0
  call   <expl@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm5
  mulsd  D143(%rip),%xmm5
  mulsd  D63(%rip),%xmm1
  movapd %xmm5,%xmm6
  addsd  %xmm1,%xmm6
  movsd  %xmm6,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D133(%rip),%xmm0
  call   <expl@plt>
  mulsd  D268(%rip),%xmm0
  movapd %xmm0,%xmm7
  addsd  0x8(%rsp),%xmm7
  movsd  %xmm7,0x8(%rsp)
  movsd  (%rsp),%xmm0
  mulsd  D270(%rip),%xmm0
  call   <expl@plt>
  mulsd  D248(%rip),%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  fldl   (%rsp)
  jmp    L0
```

tool_calls: name: parse_data
arguments: data_tag: D42
type: f64
name: parse_data
arguments: data_tag: D147
type: byte[8]
name: parse_data
arguments: data_tag: D218
type: f64
name: parse_data
arguments: data_tag: D13
type: byte[8]
name: parse_data
arguments: data_tag: D116
type: byte[8]
name: parse_data
arguments: data_tag: D232
type: byte[8]
name: parse_data
arguments: data_tag: D157
type: byte[8]
name: parse_data
arguments: data_tag: D124
type: byte[8]
name: parse_data
arguments: data_tag: D220
type: byte[8]
name: parse_data
arguments: data_tag: D312
type: byte[8]
name: parse_data
arguments: data_tag: D325
type: byte[8]
name: parse_data
arguments: data_tag: D27
type: byte[8]
name: parse_data
arguments: data_tag: D306
type: byte[8]
name: parse_data
arguments: data_tag: D43
type: byte[8]
name: parse_data
arguments: data_tag: D65
type: byte[8]
name: parse_data
arguments: data_tag: D153
type: byte[8]
name: parse_data
arguments: data_tag: D263
type: byte[8]
name: parse_data
arguments: data_tag: D41
type: byte[8]
name: parse_data
arguments: data_tag: D92
type: byte[8]
name: parse_data
arguments: data_tag: D202
type: byte[8]
name: parse_data
arguments: data_tag: D28
type: byte[8]
name: parse_data
arguments: data_tag: D105
type: byte[8]
name: parse_data
arguments: data_tag: D313
type: byte[8]
name: parse_data
arguments: data_tag: D127
type: byte[8]
name: parse_data
arguments: data_tag: D190
type: byte[8]
name: parse_data
arguments: data_tag: D171
type: byte[8]
name: parse_data
arguments: data_tag: D310
type: byte[8]
name: parse_data
arguments: data_tag: D185
type: byte[8]
name: parse_data
arguments: data_tag: D289
type: byte[8]
name: parse_data
arguments: data_tag: D143
type: byte[8]
name: parse_data
arguments: data_tag: D63
type: byte[8]
name: parse_data
arguments: data_tag: D133
type: byte[8]
name: parse_data
arguments: data_tag: D268
type: byte[8]
name: parse_data
arguments: data_tag: D270
type: byte[8]
name: parse_data
arguments: data_tag: D248
type: byte[8]

tool: D42: 11.5

tool: {"D147": [0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x40]}

tool: D218: 37.25

tool: {"D13": [0xa0,0x4e,0x40,0x13,0x61,0xc3,0x93,0xbf]}

tool: {"D116": [0x90,0x53,0x74,0x24,0x97,0xff,0xc0,0xbf]}

tool: {"D232": [0xc3,0x59,0x01,0x53,0x40,0xb9,0x61,0xbf]}

tool: {"D157": [0xce,0x57,0x6e,0x0e,0x7c,0xb1,0x8c,0xbf]}

tool: {"D124": [0x20,0x31,0x08,0xac,0x1c,0x5a,0xb4,0x3f]}

tool: {"D220": [0xec,0x57,0x97,0x6c,0x9f,0x02,0xee,0xbe]}

tool: {"D312": [0x80,0xc0,0xca,0xa1,0x45,0xb6,0xa3,0x3f]}

tool: {"D325": [0xa9,0xe8,0xcd,0xb0,0x6a,0x73,0x20,0x3f]}

tool: {"D27": [0xd0,0x00,0xde,0x02,0x09,0x8a,0xcf,0xbf]}

tool: {"D306": [0x80,0xd0,0xb3,0x59,0xf5,0xb9,0x9a,0xbf]}

tool: {"D43": [0x7e,0x42,0x66,0xfc,0x35,0x38,0xa5,0xbf]}

tool: {"D65": [0x87,0x86,0x1f,0x18,0x17,0x79,0x6f,0xbf]}

tool: {"D153": [0x70,0x3d,0x0a,0xd7,0xa3,0x70,0xfb,0xbf]}

tool: {"D263": [0x5c,0xfe,0x43,0xfa,0xed,0x6b,0xe8,0xbf]}

tool: {"D41": [0xaa,0x82,0x51,0x49,0x9d,0x80,0xe8,0xbf]}

tool: {"D92": [0x4d,0x85,0x36,0x08,0x8c,0x58,0xc7,0xbf]}

tool: {"D202": [0x21,0xb0,0x72,0x68,0x91,0xed,0xe0,0xbf]}

tool: {"D28": [0xcd,0xcc,0xcc,0xcc,0xcc,0x8c,0x64,0xc0]}

tool: {"D105": [0x9a,0x51,0x3d,0xe3,0x0c,0x0f,0xc2,0xbf]}

tool: {"D313": [0x6a,0x87,0xbf,0x26,0x6b,0x34,0x54,0xc0]}

tool: {"D127": [0xc0,0xad,0xd8,0x5f,0x76,0x4f,0x8e,0xbf]}

tool: {"D190": [0x13,0x11,0x87,0x11,0x67,0xea,0x5a,0xbf]}

tool: {"D171": [0x6c,0x34,0x80,0xb7,0x40,0x82,0xc2,0xbf]}

tool: {"D310": [0x6a,0xef,0x8d,0x00,0xf2,0x4e,0x93,0xbf]}

tool: {"D185": [0x38,0xdf,0x4f,0x8d,0x97,0x6e,0xc2,0x3f]}

tool: {"D289": [0x80,0x14,0xae,0x47,0xe1,0x7a,0x74,0xbf]}

tool: {"D143": [0x4b,0x71,0xf5,0x36,0x31,0xd9,0xf7,0x3d]}

tool: {"D63": [0x37,0xab,0x77,0xb8,0x1d,0x1a,0x36,0xbf]}

tool: {"D133": [0x40,0xa4,0xdf,0xbe,0x0e,0x9c,0xdb,0xbf]}

tool: {"D268": [0x7d,0x25,0x6a,0x4b,0x18,0x2b,0x98,0xbf]}

tool: {"D270": [0xe0,0xce,0xf7,0x53,0xe3,0xa5,0xab,0xbf]}

tool: {"D248": [0x5f,0x18,0xb7,0x0b,0xac,0x67,0x71,0xbf]}

assistant: ```c
long double bessi1_salahat_exponScaled(double x) {
  if (x < 11.5)
    return 0.1682 * (0.7536 - 1) * expl(x * (0.7536 - 1)) + 0.1472 * (0.9739 - 1) * expl(x * (0.9739 - 1)) + 0.4450 * (-0.715 - 1) * expl(x * (-0.715 - 1)) + 0.2382 * (0.2343 - 1) * expl(x * (0.2343 - 1));
  else if (x < 20)
    return 0.2667 * (0.4710 - 1) * expl(x * (0.4710 - 1)) + 0.4916 * (-163.4 - 1) * expl(x * (-163.4 - 1)) + 0.1110 * (0.9852 - 1) * expl(x * (0.9852 - 1)) + 0.1304 * (0.8554 - 1) * expl(x * (0.8554 - 1));
  else if (x < 37.25)
    return 0.1121 * (0.9807 - 1) * expl(x * (0.9807 - 1)) + 0.1055 * (0.8672 - 1) * expl(x * (0.8672 - 1)) + -0.00018 * (1.0795 - 1) * expl(x * (1.0795 - 1)) + 0.00326 * (1.0385 - 1) * expl(x * (1.0385 - 1));
  else
    return 2.41E-9 * (1.144 - 1) * expl(x * (1.144 - 1)) + 0.06745 * (0.995 - 1) * expl(x * (0.995 - 1)) + 0.05471 * (0.5686 - 1) * expl(x * (0.5686 - 1)) + 0.07869 * (0.946 - 1) * expl(x * (0.946 - 1));
}
```