user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<BsplnWght7>:
  endbr64
  pxor   %xmm1,%xmm1
  cvtsi2sd %rdi,%xmm1
  subsd  %xmm1,%xmm0
  movsd  D217(%rip),%xmm1
  movapd %xmm0,%xmm3
  andpd  D248(%rip),%xmm3
  comisd %xmm3,%xmm1
  ja     L2
  movsd  D76(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L34
  movsd  D3(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L23
  movsd  D55(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L37
  pxor   %xmm0,%xmm0
  ret
  cs nopw 0x0(%rax,%rax,1)
L34:
  movsd  D226(%rip),%xmm0
  movsd  D71(%rip),%xmm2
  mulsd  %xmm3,%xmm0
  subsd  %xmm0,%xmm2
  movsd  D129(%rip),%xmm0
  movapd %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D84(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D150(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D85(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D130(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D184(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  ret
  nopl   0x0(%rax)
L2:
  mulsd  D48(%rip),%xmm3
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movapd %xmm3,%xmm0
  subsd  D116(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  D162(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  subsd  D132(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  D195(%rip),%xmm0
  ret
  nopl   0x0(%rax)
L23:
  movsd  D47(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D116(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D84(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D56(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D168(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D44(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D128(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D197(%rip),%xmm0
  ret
  nopl   (%rax)
L37:
  subsd  %xmm3,%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm1,%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  D170(%rip),%xmm0
  ret
```

tool_calls: name: retrieve_data
arguments: label: D217
data_type: f64
name: retrieve_data
arguments: label: D248
data_type: qword[2]
name: retrieve_data
arguments: label: D76
data_type: f64
name: retrieve_data
arguments: label: D3
data_type: f64
name: retrieve_data
arguments: label: D55
data_type: f64
name: retrieve_data
arguments: label: D226
data_type: byte[8]
name: retrieve_data
arguments: label: D71
data_type: f64
name: retrieve_data
arguments: label: D129
data_type: byte[8]
name: retrieve_data
arguments: label: D84
data_type: byte[8]
name: retrieve_data
arguments: label: D150
data_type: f64
name: retrieve_data
arguments: label: D85
data_type: byte[8]
name: retrieve_data
arguments: label: D130
data_type: f64
name: retrieve_data
arguments: label: D184
data_type: byte[8]
name: retrieve_data
arguments: label: D48
data_type: byte[8]
name: retrieve_data
arguments: label: D116
data_type: byte[8]
name: retrieve_data
arguments: label: D162
data_type: byte[8]
name: retrieve_data
arguments: label: D132
data_type: byte[8]
name: retrieve_data
arguments: label: D195
data_type: byte[8]
name: retrieve_data
arguments: label: D47
data_type: byte[8]
name: retrieve_data
arguments: label: D56
data_type: byte[8]
name: retrieve_data
arguments: label: D168
data_type: byte[8]
name: retrieve_data
arguments: label: D44
data_type: byte[8]
name: retrieve_data
arguments: label: D128
data_type: byte[8]
name: retrieve_data
arguments: label: D197
data_type: byte[8]
name: retrieve_data
arguments: label: D170
data_type: byte[8]

tool: D217: 1

tool: {"D248": [0x7fffffffffffffff,0x0000000000000000]}

tool: D76: 2

tool: D3: 3

tool: D55: 4

tool: {"D226": [0x11,0x11,0x11,0x11,0x11,0x11,0x71,0x3f]}

tool: D71: 0.05

tool: {"D129": [0x3f,0xf6,0x63,0x3f,0xf6,0x63,0xdf,0x3f]}

tool: {"D84": [0xde,0xdd,0xdd,0xdd,0xdd,0xdd,0xcd,0x3f]}

tool: D150: 0.5

tool: {"D85": [0x39,0x8e,0xe3,0x38,0x8e,0xe3,0xd8,0x3f]}

tool: D130: 0.1

tool: {"D184": [0x94,0x3e,0xe9,0x93,0x3e,0xe9,0xb3,0x3f]}

tool: {"D48": [0x1c,0xc7,0x71,0x1c,0xc7,0x71,0x7c,0x3f]}

tool: {"D116": [0x1c,0xc7,0x71,0x1c,0xc7,0x71,0x9c,0x3f]}

tool: {"D162": [0x1c,0xc7,0x71,0x1c,0xc7,0x71,0xbc,0x3f]}

tool: {"D132": [0x55,0x55,0x55,0x55,0x55,0x55,0xd5,0x3f]}

tool: {"D195": [0xdf,0xea,0xad,0xde,0xea,0xad,0xde,0x3f]}

tool: {"D47": [0x17,0x6c,0xc1,0x16,0x6c,0xc1,0x56,0x3f]}

tool: {"D56": [0x39,0x8e,0xe3,0x38,0x8e,0xe3,0xf0,0x3f]}

tool: {"D168": [0x72,0x1c,0xc7,0x71,0x1c,0xc7,0x05,0x40]}

tool: {"D44": [0xab,0xaa,0xaa,0xaa,0xaa,0xaa,0x0e,0x40]}

tool: {"D128": [0x9f,0xf4,0x49,0x9f,0xf4,0x49,0x03,0x40]}

tool: {"D197": [0xdc,0xc3,0x3d,0xdc,0xc3,0x3d,0xcc,0x3f]}

tool: {"D170": [0x1a,0xa0,0x01,0x1a,0xa0,0x01,0x2a,0x3f]}

assistant: ```c
double BsplnWght7(long i, double x) {
  double f;
  x = fabs(x - (double)i);
  if (x < 1.0) {
    f = x * x;
    return (f * (f * (f * (x * (1.0 / 144.0) - 1.0 / 36.0) + 1.0 / 9.0) - 1.0 / 3.0) + 151.0 / 315.0);
  }
  if (x < 2.0)
    return (x * (x * (x * (x * (x * (x * (0.05 - x * (1.0 / 240.0)) - 7.0 / 30.0) + 0.5) - 7.0 / 18.0) - 0.1) - 7.0 / 90.0) + 103.0 / 210.0);
  if (x < 3.0)
    return (x * (x * (x * (x * (x * (x * (x * (1.0 / 720.0) - 1.0 / 36.0) + 7.0 / 30.0) - 19.0 / 18.0) + 49.0 / 18.0) - 23.0 / 6.0) + 217.0 / 90.0) - 139.0 / 630.0);
  if (x < 4.0) {
    f = 4.0 - x;
    x = f * f * f;
    return (x * x * f * (1.0 / 5040.0));
  }
  return (0.0);
}
```