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

```asm
<ComputeHueQuadrature>:
  endbr64
  movapd %xmm0,%xmm1
  comisd D82(%rip),%xmm1
  movsd  D35(%rip),%xmm0
  jb     L1
  comisd %xmm1,%xmm0
  jbe    L1
  movsd  D98(%rip),%xmm7
  movapd %xmm1,%xmm6
  movapd %xmm1,%xmm0
  movsd  D116(%rip),%xmm4
  movsd  D173(%rip),%xmm3
  pxor   %xmm5,%xmm5
  movsd  D22(%rip),%xmm8
  divsd  %xmm4,%xmm6
  movapd %xmm7,%xmm9
  movapd %xmm7,%xmm2
  jmp    L45
  nop
L1:
  comisd %xmm0,%xmm1
  movsd  D106(%rip),%xmm0
  jb     L55
  comisd %xmm1,%xmm0
  jbe    L55
  movsd  D98(%rip),%xmm7
  movapd %xmm1,%xmm0
  movsd  D22(%rip),%xmm4
  movsd  D8(%rip),%xmm2
  movsd  D223(%rip),%xmm3
  subsd  %xmm7,%xmm0
  movapd %xmm7,%xmm9
  movapd %xmm7,%xmm5
  movsd  D52(%rip),%xmm8
  movapd %xmm0,%xmm6
  divsd  %xmm4,%xmm6
  jmp    L45
  nopl   0x0(%rax,%rax,1)
L55:
  comisd %xmm0,%xmm1
  jae    L33
L23:
  movsd  D155(%rip),%xmm5
  movapd %xmm1,%xmm0
  movsd  D64(%rip),%xmm4
  pxor   %xmm2,%xmm2
  movsd  D92(%rip),%xmm3
  movsd  D98(%rip),%xmm7
  movsd  D83(%rip),%xmm9
  subsd  %xmm5,%xmm0
  movsd  D116(%rip),%xmm8
  movapd %xmm0,%xmm6
  divsd  %xmm4,%xmm6
L45:
  subsd  %xmm1,%xmm2
  mulsd  %xmm0,%xmm3
  mulsd  %xmm7,%xmm0
  divsd  %xmm8,%xmm2
  divsd  %xmm4,%xmm0
  movapd %xmm2,%xmm1
  addsd  %xmm6,%xmm1
  divsd  %xmm9,%xmm3
  divsd  %xmm1,%xmm0
  addsd  %xmm4,%xmm3
  movsd  %xmm3,(%rsi)
  addsd  %xmm5,%xmm0
  movsd  %xmm0,(%rdi)
  ret
  nopw   0x0(%rax,%rax,1)
L33:
  movsd  D225(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L23
  movsd  D8(%rip),%xmm5
  movapd %xmm1,%xmm0
  movsd  D98(%rip),%xmm7
  movsd  D155(%rip),%xmm2
  movsd  D121(%rip),%xmm3
  subsd  %xmm5,%xmm0
  movsd  D52(%rip),%xmm4
  movapd %xmm7,%xmm9
  movsd  D64(%rip),%xmm8
  movapd %xmm0,%xmm6
  jmp    L45
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D82
data_type: f64[2]
name: extract_symbolic_data
arguments: data_tag: D35
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D98
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D116
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D173
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D22
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D106
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D8
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D223
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D52
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D155
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D64
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D92
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D83
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D225
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D121
data_type: byte[8]

tool: {"D82": [20.14,90.0]}

tool: D35: 90

tool: D98: 100

tool: D116: 0.8

tool: {"D173": [0xa0,0x99,0x99,0x99,0x99,0x99,0xb9,0xbf]}

tool: D22: 0.7

tool: D106: 164.25

tool: {"D8": [0x00,0x00,0x00,0x00,0x00,0x00,0x69,0x40]}

tool: {"D223": [0x34,0x33,0x33,0x33,0x33,0x33,0xd3,0x3f]}

tool: D52: 1

tool: {"D155": [0x00,0x00,0x00,0x00,0x00,0xc0,0x72,0x40]}

tool: D64: 1.2

tool: {"D92": [0x98,0x99,0x99,0x99,0x99,0x99,0xd9,0xbf]}

tool: {"D83": [0x00,0x00,0x00,0x00,0x00,0xc0,0x72,0xc0]}

tool: D225: 237.53

tool: {"D121": [0x98,0x99,0x99,0x99,0x99,0x99,0xc9,0x3f]}

assistant: ```c
void ComputeHueQuadrature(double h, double *H, double *e) {
  double e_tab[] = {0.8, 0.7, 1.0, 1.2};
  double H_tab[] = {0, 100, 200, 300};
  int p1, p2;
  double e1, e2, h1, h2;
  if (h >= 20.14 && h < 90.0) {
    p1 = 0;
    p2 = 1;
  } else if (h >= 90.0 && h < 164.25) {
    p1 = 1;
    p2 = 2;
  } else if (h >= 164.25 && h < 237.53) {
    p1 = 2;
    p2 = 3;
  } else {
    p1 = 3;
    p2 = 0;
  }
  e1 = e_tab[p1];
  e2 = e_tab[p2];
  h1 = H_tab[p1];
  h2 = H_tab[p2];
  *e = e1 + ((e2 - e1) * (h - h1) / (h2 - h1));
  *H = h1 + (100. * (h - h1) / e1) / ((h - h1) / e1 + (h2 - h) / e2);
}
```