user: Demonstrate the C code that generates the assembly output below:

```asm
<grace_get_y_tick_major_minor>:
  endbr64
  mov    %rdi,%rax
  movsd  D62(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L112
  divsd  D8(%rip),%xmm0
  movsd  D58(%rip),%xmm2
  comisd %xmm0,%xmm2
  jbe    L9
  mov    D44(%rip),%rdi
  mov    %rdi,(%rax)
  movl   $0x1,(%rsi)
  movl   $0x2,(%rdx)
  jmp    L70
L112:
  mov    D114(%rip),%rdi
  mov    %rdi,(%rax)
  movl   $0x1,(%rsi)
  movl   $0x2,(%rdx)
L70:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ecx,%xmm0
  mulsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jae    L79
  movsd  %xmm0,(%rax)
  ret
L9:
  movsd  D37(%rip),%xmm2
  comisd %xmm0,%xmm2
  jbe    L89
  mov    D105(%rip),%rdi
  mov    %rdi,(%rax)
  movl   $0x1,(%rsi)
  movl   $0x1,(%rdx)
  jmp    L70
L89:
  movsd  D20(%rip),%xmm2
  comisd %xmm0,%xmm2
  jbe    L108
  movsd  %xmm2,(%rax)
  movl   $0x1,(%rsi)
  jmp    L70
L108:
  movsd  D62(%rip),%xmm2
  comisd %xmm0,%xmm2
  ja     L46
  movsd  D90(%rip),%xmm2
  comisd %xmm0,%xmm2
  jbe    L162
  movsd  %xmm2,(%rax)
  movl   $0x1,(%rsi)
  jmp    L70
L46:
  movsd  %xmm2,(%rax)
  movl   $0x1,(%rsi)
  jmp    L70
L162:
  movsd  D103(%rip),%xmm2
  comisd %xmm0,%xmm2
  jbe    L107
  movsd  %xmm2,(%rax)
  movl   $0x1,(%rsi)
  jmp    L70
L107:
  movsd  D76(%rip),%xmm2
  comisd %xmm0,%xmm2
  jbe    L104
  movsd  %xmm2,(%rax)
  movl   $0x1,(%rsi)
  jmp    L70
L104:
  cvttsd2si %xmm0,%edx
  pxor   %xmm0,%xmm0
  cvtsi2sd %edx,%xmm0
  movsd  %xmm0,(%rdi)
  movl   $0x1,(%rsi)
  jmp    L70
L79:
  mulsd  D20(%rip),%xmm1
  movsd  %xmm1,(%rax)
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D62
datatype: f64
name: extract_symbolic_data
arguments: label: D8
datatype: f64
name: extract_symbolic_data
arguments: label: D58
datatype: f64
name: extract_symbolic_data
arguments: label: D44
datatype: f64
name: extract_symbolic_data
arguments: label: D114
datatype: f64
name: extract_symbolic_data
arguments: label: D37
datatype: f64
name: extract_symbolic_data
arguments: label: D105
datatype: f64
name: extract_symbolic_data
arguments: label: D20
datatype: f64
name: extract_symbolic_data
arguments: label: D90
datatype: f64
name: extract_symbolic_data
arguments: label: D103
datatype: f64
name: extract_symbolic_data
arguments: label: D76
datatype: f64

tool: D62: 1

tool: D8: 25

tool: D58: 0.01

tool: D44: 0.02

tool: D114: 0.05

tool: D37: 0.1

tool: D105: 0.2

tool: D20: 0.5

tool: D90: 2

tool: D103: 3

tool: D76: 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;
}
```