user: 下面的汇编指令对应的C源代码是什么：

```asm
<main>:
  endbr64
  sub    $0x118,%rsp
  movsd  D46(%rip),%xmm2
  movsd  D71(%rip),%xmm1
  mov    $0x10,%edx
  mov    %fs:0x28,%rax
  mov    %rax,0x108(%rsp)
  xor    %eax,%eax
  mov    D259(%rip),%rax
  movsd  D38(%rip),%xmm0
  mov    %rsp,%rdi
  movsd  %xmm2,0x18(%rsp)
  lea    0x80(%rsp),%rsi
  mov    %rax,(%rsp)
  mov    D152(%rip),%rax
  movsd  %xmm1,0x38(%rsp)
  mov    %rax,0x8(%rsp)
  mov    D161(%rip),%rax
  movsd  %xmm0,0x48(%rsp)
  mov    %rax,0x10(%rsp)
  mov    D178(%rip),%rax
  mov    %rax,0x20(%rsp)
  mov    D249(%rip),%rax
  mov    %rax,0x28(%rsp)
  mov    D230(%rip),%rax
  mov    %rax,0x30(%rsp)
  mov    D251(%rip),%rax
  mov    %rax,0x40(%rsp)
  mov    D232(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D32(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D79(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D170(%rip),%rax
  mov    %rax,0x68(%rsp)
  mov    D143(%rip),%rax
  mov    %rax,0x70(%rsp)
  mov    D176(%rip),%rax
  movsd  %xmm2,0x80(%rsp)
  mov    %rax,0x78(%rsp)
  mov    D201(%rip),%rax
  movsd  %xmm1,0x90(%rsp)
  mov    %rax,0x88(%rsp)
  mov    D286(%rip),%rax
  movsd  %xmm0,0xc0(%rsp)
  mov    %rax,0x98(%rsp)
  mov    D73(%rip),%rax
  mov    %rax,0xa0(%rsp)
  mov    D253(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D154(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D57(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D93(%rip),%rax
  mov    %rax,0xc8(%rsp)
  mov    D162(%rip),%rax
  mov    %rax,0xd0(%rsp)
  mov    D269(%rip),%rax
  mov    %rax,0xd8(%rsp)
  mov    D92(%rip),%rax
  mov    %rax,0xe0(%rsp)
  mov    D29(%rip),%rax
  mov    %rax,0xe8(%rsp)
  mov    D163(%rip),%rax
  mov    %rax,0xf0(%rsp)
  mov    D110(%rip),%rax
  mov    %rax,0xf8(%rsp)
  call   <lspa_set_discrete_data@plt>
  xor    %eax,%eax
  call   <lspa_get_coefficient@plt>
  xor    %eax,%eax
  call   <lspa_cleanup@plt>
  mov    0x108(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L0
  xor    %eax,%eax
  add    $0x118,%rsp
  ret
L0:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D46
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D71
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D259
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D38
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D152
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D161
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D178
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D249
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D230
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D251
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D232
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D32
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D79
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D170
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D143
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D176
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D201
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D286
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D73
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D253
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D154
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D57
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D93
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D162
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D269
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D92
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D29
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D163
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D110
datatype: f64

tool: D46: 4

tool: D71: 8

tool: {"D259": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

tool: D38: 10

tool: {"D152": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40]}

tool: {"D161": [0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40]}

tool: {"D178": [0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x40]}

tool: {"D249": [0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x40]}

tool: {"D230": [0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x40]}

tool: {"D251": [0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x40]}

tool: {"D232": [0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x40]}

tool: {"D32": [0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x40]}

tool: {"D79": [0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x40]}

tool: {"D170": [0x00,0x00,0x00,0x00,0x00,0x00,0x2c,0x40]}

tool: {"D143": [0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x40]}

tool: {"D176": [0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x40]}

tool: D201: 6.4

tool: D286: 8.8

tool: D73: 9.22

tool: D253: 9.5

tool: D154: 9.7

tool: D57: 9.86

tool: D93: 10.2

tool: D162: 10.32

tool: D269: 10.42

tool: D92: 10.5

tool: D29: 10.55

tool: D163: 10.58

tool: D110: 10.6

assistant: ```c
int main() {
  double x[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
  double y[] = {4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60};
  lspa_set_discrete_data(x, y, sizeof(y) / sizeof(double));
  lspa_get_coefficient();
  lspa_cleanup();
  return 0;
}
```