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

```asm
<grad_to_D>:
  endbr64
  comisd D87(%rip),%xmm0
  push   %r12
  mov    %rdi,%r12
  movsd  D163(%rip),%xmm1
  jb     L232
  comisd %xmm0,%xmm1
  ja     L196
L232:
  comisd %xmm1,%xmm0
  movsd  D186(%rip),%xmm1
  jb     L4
  comisd %xmm0,%xmm1
  ja     L205
L4:
  comisd %xmm1,%xmm0
  movsd  D144(%rip),%xmm1
  jb     L124
  comisd %xmm0,%xmm1
  ja     L123
L124:
  comisd %xmm1,%xmm0
  movsd  D151(%rip),%xmm1
  jae    L179
L68:
  comisd %xmm1,%xmm0
  movsd  D180(%rip),%xmm1
  jb     L198
  comisd %xmm0,%xmm1
  ja     L225
L198:
  comisd %xmm1,%xmm0
  movsd  D76(%rip),%xmm1
  jb     L242
  comisd %xmm0,%xmm1
  ja     L143
L242:
  comisd %xmm1,%xmm0
  movsd  D115(%rip),%xmm1
  jb     L25
  comisd %xmm0,%xmm1
  jbe    L25
  lea    D130(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L126:
  mov    %r12,%rax
  pop    %r12
  ret
  nopl   0x0(%rax)
L179:
  comisd %xmm0,%xmm1
  jbe    L68
  lea    D42(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L126
  nopw   0x0(%rax,%rax,1)
L25:
  comisd %xmm1,%xmm0
  jb     L118
  movsd  D99(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L118
L48:
  mov    %r12,%rdi
  lea    D192(%rip),%rsi
  call   <strcpy@plt>
  mov    %r12,%rax
  pop    %r12
  ret
  nopl   0x0(%rax)
L118:
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L128
  movsd  D87(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L48
L78:
  lea    D101(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L126
  nopl   0x0(%rax)
L196:
  lea    D199(%rip),%rsi
  call   <strcpy@plt>
  mov    %r12,%rax
  pop    %r12
  ret
  nopw   0x0(%rax,%rax,1)
L205:
  mov    %r12,%rdi
  lea    D104(%rip),%rsi
  call   <strcpy@plt>
  mov    %r12,%rax
  pop    %r12
  ret
  nopl   (%rax)
L123:
  mov    %r12,%rdi
  lea    D51(%rip),%rsi
  call   <strcpy@plt>
  mov    %r12,%rax
  pop    %r12
  ret
  nopl   (%rax)
L128:
  ucomisd %xmm1,%xmm0
  jp     L78
  jne    L78
  lea    D170(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L126
  nopl   0x0(%rax)
L225:
  lea    D160(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L126
  nopl   0x0(%rax)
L143:
  lea    D93(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L126
```

tool_calls: name: extract_symbolic_data
arguments: tag: D87
type_infered: f64[2]
name: extract_symbolic_data
arguments: tag: D163
type_infered: f64
name: extract_symbolic_data
arguments: tag: D186
type_infered: f64
name: extract_symbolic_data
arguments: tag: D144
type_infered: f64
name: extract_symbolic_data
arguments: tag: D151
type_infered: f64
name: extract_symbolic_data
arguments: tag: D180
type_infered: f64
name: extract_symbolic_data
arguments: tag: D76
type_infered: f64
name: extract_symbolic_data
arguments: tag: D115
type_infered: f64
name: extract_symbolic_data
arguments: tag: D130
type_infered: string
name: extract_symbolic_data
arguments: tag: D42
type_infered: string
name: extract_symbolic_data
arguments: tag: D99
type_infered: f64
name: extract_symbolic_data
arguments: tag: D192
type_infered: string
name: extract_symbolic_data
arguments: tag: D101
type_infered: string
name: extract_symbolic_data
arguments: tag: D199
type_infered: string
name: extract_symbolic_data
arguments: tag: D104
type_infered: string
name: extract_symbolic_data
arguments: tag: D51
type_infered: string
name: extract_symbolic_data
arguments: tag: D170
type_infered: string
name: extract_symbolic_data
arguments: tag: D160
type_infered: string
name: extract_symbolic_data
arguments: tag: D93
type_infered: string

tool: {"D87": [22.5,67.5]}

tool: D163: 67.5

tool: D186: 112.5

tool: D144: 157.5

tool: D151: 202.5

tool: D180: 247.5

tool: D76: 292.5

tool: D115: 337.5

tool: D130: 7

tool: D42: 4

tool: D99: 360

tool: D192: 8

tool: D101: 9

tool: D199: 1

tool: D104: 2

tool: D51: 3

tool: D170: 0

tool: D160: 5

tool: D93: 6

assistant: ```c
char *grad_to_D(char *D, double grad) {
  if (grad >= 22.5 && grad < 67.5)
    strcpy(D, "1");
  else if (grad >= 67.5 && grad < 112.5)
    strcpy(D, "2");
  else if (grad >= 112.5 && grad < 157.5)
    strcpy(D, "3");
  else if (grad >= 157.5 && grad < 202.5)
    strcpy(D, "4");
  else if (grad >= 202.5 && grad < 247.5)
    strcpy(D, "5");
  else if (grad >= 247.5 && grad < 292.5)
    strcpy(D, "6");
  else if (grad >= 292.5 && grad < 337.5)
    strcpy(D, "7");
  else if ((grad >= 337.5 && grad <= 360.0) || (grad > 0.0 && grad < 22.5))
    strcpy(D, "8");
  else if (grad == 0.0)
    strcpy(D, "0");
  else
    strcpy(D, "9");
  return D;
}
```