user: 请将以下的汇编代码转换成C语言代码：

```asm
<grace_get_y_tick_major_minor>:
  endbr64
  movsd  D53(%rip),%xmm3
  comisd %xmm0,%xmm3
  ja     L73
  movsd  D16(%rip),%xmm2
  divsd  D4(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L55
  movl   $0x1,(%rsi)
  movsd  D26(%rip),%xmm2
  movl   $0x2,(%rdx)
L121:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ecx,%xmm0
  mulsd  %xmm2,%xmm0
  comisd %xmm1,%xmm0
  jae    L38
L0:
  movsd  %xmm0,(%rdi)
  ret
  nopl   0x0(%rax,%rax,1)
L55:
  movsd  D65(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L18
  movsd  D94(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L31
  comisd %xmm0,%xmm3
  ja     L126
  movsd  D104(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L31
  movsd  D15(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L31
  movsd  D39(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L31
  cvttsd2si %xmm0,%eax
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
L31:
  pxor   %xmm0,%xmm0
  movl   $0x1,(%rsi)
  cvtsi2sd %ecx,%xmm0
  mulsd  %xmm2,%xmm0
  comisd %xmm1,%xmm0
  jb     L0
L38:
  mulsd  D94(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  ret
  nopl   0x0(%rax)
L73:
  movl   $0x1,(%rsi)
  movsd  D88(%rip),%xmm2
  movl   $0x2,(%rdx)
  jmp    L121
  nopl   0x0(%rax)
L18:
  movl   $0x1,(%rsi)
  movsd  D46(%rip),%xmm2
  movl   $0x1,(%rdx)
  jmp    L121
  nopl   0x0(%rax)
L126:
  movl   $0x1,(%rsi)
  movapd %xmm3,%xmm2
  jmp    L121
```

tool_calls: name: parse_data
arguments: data_tag: D53
type_infered: f64
name: parse_data
arguments: data_tag: D16
type_infered: f64
name: parse_data
arguments: data_tag: D4
type_infered: f64
name: parse_data
arguments: data_tag: D26
type_infered: f64
name: parse_data
arguments: data_tag: D65
type_infered: f64
name: parse_data
arguments: data_tag: D94
type_infered: f64
name: parse_data
arguments: data_tag: D104
type_infered: f64
name: parse_data
arguments: data_tag: D15
type_infered: f64
name: parse_data
arguments: data_tag: D39
type_infered: f64
name: parse_data
arguments: data_tag: D88
type_infered: f64
name: parse_data
arguments: data_tag: D46
type_infered: f64

tool: D53: 1

tool: D16: 0.01

tool: D4: 25

tool: D26: 0.02

tool: D65: 0.1

tool: D94: 0.5

tool: D104: 2

tool: D15: 3

tool: D39: 4

tool: D88: 0.05

tool: D46: 0.2

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;
}
```