user: 这段汇编代码用C语言表示是什么样的:

```asm
<grace_get_y_tick_major_minor>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    %rdx,-0x28(%rbp)
  movsd  %xmm0,-0x30(%rbp)
  mov    %ecx,-0x34(%rbp)
  movsd  %xmm1,-0x40(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movsd  D17(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D93(%rip),%xmm0
  comisd -0x30(%rbp),%xmm0
  jbe    L22
  mov    -0x18(%rbp),%rax
  movsd  D7(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x28(%rbp),%rax
  movl   $0x2,(%rax)
  jmp    L27
L22:
  movsd  D65(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L111
  mov    -0x18(%rbp),%rax
  movsd  D136(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x28(%rbp),%rax
  movl   $0x2,(%rax)
  jmp    L27
L111:
  movsd  D96(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L165
  mov    -0x18(%rbp),%rax
  movsd  D34(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x28(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L27
L165:
  movsd  D168(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L2
  mov    -0x18(%rbp),%rax
  movsd  D168(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L27
L2:
  movsd  D93(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L33
  mov    -0x18(%rbp),%rax
  movsd  D93(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L27
L33:
  movsd  D153(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L86
  mov    -0x18(%rbp),%rax
  movsd  D153(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L27
L86:
  movsd  D46(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L56
  mov    -0x18(%rbp),%rax
  movsd  D46(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L27
L56:
  movsd  D94(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L17
  mov    -0x18(%rbp),%rax
  movsd  D94(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L27
L17:
  movsd  -0x8(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0x18(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
L27:
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x34(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd -0x40(%rbp),%xmm0
  jae    L76
  jmp    L130
L76:
  movsd  -0x40(%rbp),%xmm0
  movsd  D153(%rip),%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  movsd  %xmm0,(%rax)
L130:
  nop
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D17
datatype: f64
name: parse_data
arguments: data_tag: D93
datatype: f64
name: parse_data
arguments: data_tag: D7
datatype: f64
name: parse_data
arguments: data_tag: D65
datatype: f64
name: parse_data
arguments: data_tag: D136
datatype: f64
name: parse_data
arguments: data_tag: D96
datatype: f64
name: parse_data
arguments: data_tag: D34
datatype: f64
name: parse_data
arguments: data_tag: D168
datatype: f64
name: parse_data
arguments: data_tag: D153
datatype: f64
name: parse_data
arguments: data_tag: D46
datatype: f64
name: parse_data
arguments: data_tag: D94
datatype: f64

tool: D17: 25

tool: D93: 1

tool: D7: 0.05

tool: D65: 0.01

tool: D136: 0.02

tool: D96: 0.1

tool: D34: 0.2

tool: D168: 0.5

tool: D153: 2

tool: D46: 3

tool: D94: 4

assistant: ```c
void grace_get_y_tick_major_minor(double *y_tick_major, int *y_tick_minor, int *yaxis_ticklabel_precision, double y_range, int graph_list_length, double world_max_y) {
  double range_div_twenty_five;
  range_div_twenty_five = y_range / 25.0;
  if (y_range < 1) {
    *y_tick_major = 0.05;
    *y_tick_minor = 1;
    *yaxis_ticklabel_precision = 2;
  } else if (range_div_twenty_five < 0.01) {
    *y_tick_major = 0.02;
    *y_tick_minor = 1;
    *yaxis_ticklabel_precision = 2;
  } else if (range_div_twenty_five < 0.1) {
    *y_tick_major = 0.2;
    *y_tick_minor = 1;
    *yaxis_ticklabel_precision = 1;
  } else if (range_div_twenty_five < 0.5) {
    *y_tick_major = 0.5;
    *y_tick_minor = 1;
  } else if (range_div_twenty_five < 1.0) {
    *y_tick_major = 1.0;
    *y_tick_minor = 1;
  } else if (range_div_twenty_five < 2.0) {
    *y_tick_major = 2.0;
    *y_tick_minor = 1;
  } else if (range_div_twenty_five < 3.0) {
    *y_tick_major = 3.0;
    *y_tick_minor = 1;
  } else if (range_div_twenty_five < 4.0) {
    *y_tick_major = 4.0;
    *y_tick_minor = 1;
  } else {
    *y_tick_major = (double)(int)range_div_twenty_five;
    *y_tick_minor = 1;
  }
  *y_tick_major *= (double)graph_list_length;
  if (*y_tick_major >= world_max_y)
    *y_tick_major = world_max_y / 2.0;
}
```