user: Translate the below assembly code into C programming language:

```asm
<bessi1_salahat_exponScaled>:
  endbr64
  sub    $0x18,%rsp
  movapd %xmm0,%xmm1
  movsd  D58(%rip),%xmm0
  comisd %xmm1,%xmm0
  ja     L21
  movsd  D202(%rip),%xmm0
  comisd %xmm1,%xmm0
  ja     L1
  movsd  D74(%rip),%xmm0
  movsd  %xmm1,0x8(%rsp)
  comisd %xmm1,%xmm0
  movapd %xmm1,%xmm0
  ja     L12
  mulsd  D86(%rip),%xmm0
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,(%rsp)
  movsd  D314(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  call   <expl@plt>
  movsd  (%rsp),%xmm2
  mulsd  D4(%rip),%xmm0
  mulsd  D199(%rip),%xmm2
  movsd  0x8(%rsp),%xmm1
  addsd  %xmm0,%xmm2
  movsd  D295(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm2,(%rsp)
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  D217(%rip),%xmm1
  mulsd  D51(%rip),%xmm0
  addsd  (%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm1,%xmm0
  call   <expl@plt>
  mulsd  D285(%rip),%xmm0
  movsd  (%rsp),%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,(%rsp)
  fldl   (%rsp)
  add    $0x18,%rsp
  ret
  nopl   0x0(%rax)
L12:
  mulsd  D234(%rip),%xmm0
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,(%rsp)
  movsd  D311(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  call   <expl@plt>
  movsd  (%rsp),%xmm2
  mulsd  D19(%rip),%xmm0
  mulsd  D294(%rip),%xmm2
  movsd  0x8(%rsp),%xmm1
  addsd  %xmm0,%xmm2
  movsd  D337(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm2,(%rsp)
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  D338(%rip),%xmm1
  mulsd  D180(%rip),%xmm0
  addsd  (%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm1,%xmm0
  call   <expl@plt>
  mulsd  D120(%rip),%xmm0
  movsd  (%rsp),%xmm4
  addsd  %xmm0,%xmm4
  movsd  %xmm4,(%rsp)
  fldl   (%rsp)
  add    $0x18,%rsp
  ret
  nopl   (%rax)
L21:
  movapd %xmm1,%xmm0
  movsd  %xmm1,0x8(%rsp)
  mulsd  D153(%rip),%xmm0
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,(%rsp)
  movsd  D134(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  call   <expl@plt>
  movsd  (%rsp),%xmm2
  mulsd  D76(%rip),%xmm0
  mulsd  D313(%rip),%xmm2
  movsd  0x8(%rsp),%xmm1
  addsd  %xmm0,%xmm2
  movsd  D245(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm2,(%rsp)
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  D102(%rip),%xmm1
  mulsd  D68(%rip),%xmm0
  addsd  (%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm1,%xmm0
  call   <expl@plt>
  mulsd  D246(%rip),%xmm0
  movsd  (%rsp),%xmm3
  addsd  %xmm0,%xmm3
  movsd  %xmm3,(%rsp)
  fldl   (%rsp)
  add    $0x18,%rsp
  ret
  nop
L1:
  movapd %xmm1,%xmm0
  movsd  %xmm1,0x8(%rsp)
  mulsd  D288(%rip),%xmm0
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,(%rsp)
  movsd  D148(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  call   <expl@plt>
  movsd  (%rsp),%xmm2
  mulsd  D146(%rip),%xmm0
  mulsd  D318(%rip),%xmm2
  movsd  0x8(%rsp),%xmm1
  addsd  %xmm0,%xmm2
  movsd  D116(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm2,(%rsp)
  call   <expl@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  D16(%rip),%xmm1
  mulsd  D196(%rip),%xmm0
  addsd  (%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm1,%xmm0
  call   <expl@plt>
  mulsd  D7(%rip),%xmm0
  movsd  (%rsp),%xmm5
  addsd  %xmm0,%xmm5
  movsd  %xmm5,(%rsp)
  fldl   (%rsp)
  add    $0x18,%rsp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D58
type: f64
name: retrieve_data
arguments: data_tag: D202
type: byte[8]
name: retrieve_data
arguments: data_tag: D74
type: f64
name: retrieve_data
arguments: data_tag: D86
type: byte[8]
name: retrieve_data
arguments: data_tag: D314
type: byte[8]
name: retrieve_data
arguments: data_tag: D4
type: byte[8]
name: retrieve_data
arguments: data_tag: D199
type: byte[8]
name: retrieve_data
arguments: data_tag: D295
type: byte[8]
name: retrieve_data
arguments: data_tag: D217
type: byte[8]
name: retrieve_data
arguments: data_tag: D51
type: byte[8]
name: retrieve_data
arguments: data_tag: D285
type: byte[8]
name: retrieve_data
arguments: data_tag: D234
type: byte[8]
name: retrieve_data
arguments: data_tag: D311
type: byte[8]
name: retrieve_data
arguments: data_tag: D19
type: byte[8]
name: retrieve_data
arguments: data_tag: D294
type: byte[8]
name: retrieve_data
arguments: data_tag: D337
type: byte[8]
name: retrieve_data
arguments: data_tag: D338
type: byte[8]
name: retrieve_data
arguments: data_tag: D180
type: byte[8]
name: retrieve_data
arguments: data_tag: D120
type: byte[8]
name: retrieve_data
arguments: data_tag: D153
type: byte[8]
name: retrieve_data
arguments: data_tag: D134
type: byte[8]
name: retrieve_data
arguments: data_tag: D76
type: byte[8]
name: retrieve_data
arguments: data_tag: D313
type: byte[8]
name: retrieve_data
arguments: data_tag: D245
type: byte[8]
name: retrieve_data
arguments: data_tag: D102
type: byte[8]
name: retrieve_data
arguments: data_tag: D68
type: byte[8]
name: retrieve_data
arguments: data_tag: D246
type: byte[8]
name: retrieve_data
arguments: data_tag: D288
type: byte[8]
name: retrieve_data
arguments: data_tag: D148
type: byte[8]
name: retrieve_data
arguments: data_tag: D146
type: byte[8]
name: retrieve_data
arguments: data_tag: D318
type: byte[8]
name: retrieve_data
arguments: data_tag: D116
type: byte[8]
name: retrieve_data
arguments: data_tag: D16
type: byte[8]
name: retrieve_data
arguments: data_tag: D196
type: byte[8]
name: retrieve_data
arguments: data_tag: D7
type: byte[8]

tool: D58: 11.5

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

tool: D74: 37.25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

tool: {"D7": [0x6a,0xef,0x8d,0x00,0xf2,0x4e,0x93,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));
}
```