user: Please show me the C implementation that matches the assembly code listed below:

```asm
<Stewdent>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  cmpl   $0x1,-0x4(%rbp)
  jg     L31
  pxor   %xmm0,%xmm0
  jmp    L315
L31:
  cmpl   $0x2,-0x4(%rbp)
  jne    L283
  movsd  D144(%rip),%xmm0
  jmp    L315
L283:
  cmpl   $0x3,-0x4(%rbp)
  jne    L228
  movsd  D120(%rip),%xmm0
  jmp    L315
L228:
  cmpl   $0x4,-0x4(%rbp)
  jne    L45
  movsd  D166(%rip),%xmm0
  jmp    L315
L45:
  cmpl   $0x5,-0x4(%rbp)
  jne    L457
  movsd  D160(%rip),%xmm0
  jmp    L315
L457:
  cmpl   $0x6,-0x4(%rbp)
  jne    L40
  movsd  D82(%rip),%xmm0
  jmp    L315
L40:
  cmpl   $0x7,-0x4(%rbp)
  jne    L221
  movsd  D174(%rip),%xmm0
  jmp    L315
L221:
  cmpl   $0x8,-0x4(%rbp)
  jne    L424
  movsd  D27(%rip),%xmm0
  jmp    L315
L424:
  cmpl   $0x9,-0x4(%rbp)
  jne    L281
  movsd  D72(%rip),%xmm0
  jmp    L315
L281:
  cmpl   $0xa,-0x4(%rbp)
  jne    L317
  movsd  D98(%rip),%xmm0
  jmp    L315
L317:
  cmpl   $0xc,-0x4(%rbp)
  jg     L419
  cmpl   $0xa,-0x4(%rbp)
  jle    L419
  movsd  D125(%rip),%xmm0
  jmp    L315
L419:
  cmpl   $0xe,-0x4(%rbp)
  jg     L17
  cmpl   $0xc,-0x4(%rbp)
  jle    L17
  movsd  D135(%rip),%xmm0
  jmp    L315
L17:
  cmpl   $0x10,-0x4(%rbp)
  jg     L302
  cmpl   $0xe,-0x4(%rbp)
  jle    L302
  movsd  D66(%rip),%xmm0
  jmp    L315
L302:
  cmpl   $0x12,-0x4(%rbp)
  jg     L194
  cmpl   $0x10,-0x4(%rbp)
  jle    L194
  movsd  D31(%rip),%xmm0
  jmp    L315
L194:
  cmpl   $0x14,-0x4(%rbp)
  jg     L240
  cmpl   $0x12,-0x4(%rbp)
  jle    L240
  movsd  D183(%rip),%xmm0
  jmp    L315
L240:
  cmpl   $0x1e,-0x4(%rbp)
  jg     L8
  cmpl   $0x14,-0x4(%rbp)
  jle    L8
  movsd  D70(%rip),%xmm0
  jmp    L315
L8:
  cmpl   $0x28,-0x4(%rbp)
  jg     L19
  cmpl   $0x1e,-0x4(%rbp)
  jle    L19
  movsd  D54(%rip),%xmm0
  jmp    L315
L19:
  cmpl   $0x32,-0x4(%rbp)
  jg     L342
  cmpl   $0x28,-0x4(%rbp)
  jle    L342
  movsd  D167(%rip),%xmm0
  jmp    L315
L342:
  cmpl   $0x3c,-0x4(%rbp)
  jg     L72
  cmpl   $0x32,-0x4(%rbp)
  jle    L72
  movsd  D107(%rip),%xmm0
  jmp    L315
L72:
  movsd  D117(%rip),%xmm0
L315:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: label: D144
datatype: f64
name: parse_data
arguments: label: D120
datatype: f64
name: parse_data
arguments: label: D166
datatype: f64
name: parse_data
arguments: label: D160
datatype: f64
name: parse_data
arguments: label: D82
datatype: f64
name: parse_data
arguments: label: D174
datatype: f64
name: parse_data
arguments: label: D27
datatype: f64
name: parse_data
arguments: label: D72
datatype: f64
name: parse_data
arguments: label: D98
datatype: f64
name: parse_data
arguments: label: D125
datatype: f64
name: parse_data
arguments: label: D135
datatype: f64
name: parse_data
arguments: label: D66
datatype: f64
name: parse_data
arguments: label: D31
datatype: f64
name: parse_data
arguments: label: D183
datatype: f64
name: parse_data
arguments: label: D70
datatype: f64
name: parse_data
arguments: label: D54
datatype: f64
name: parse_data
arguments: label: D167
datatype: f64
name: parse_data
arguments: label: D107
datatype: f64
name: parse_data
arguments: label: D117
datatype: f64

tool: D144: 12.71

tool: D120: 4.3

tool: D166: 3.188

tool: D160: 2.77

tool: D82: 2.57

tool: D174: 2.45

tool: D27: 2.36

tool: D72: 2.31

tool: D98: 2.26

tool: D125: 2.2

tool: D135: 2.16

tool: D66: 2.13

tool: D31: 2.11

tool: D183: 2.09

tool: D70: 2.04

tool: D54: 2.02

tool: D167: 2.01

tool: D107: 2

tool: D117: 1.96

assistant: ```c
double Stewdent(int i) {
  if (i <= 1)
    return 0;
  else if (i == 2)
    return 12.71;
  else if (i == 3)
    return 4.30;
  else if (i == 4)
    return 3.188;
  else if (i == 5)
    return 2.77;
  else if (i == 6)
    return 2.57;
  else if (i == 7)
    return 2.45;
  else if (i == 8)
    return 2.36;
  else if (i == 9)
    return 2.31;
  else if (i == 10)
    return 2.26;
  else if (i <= 12 && i > 10)
    return 2.20;
  else if (i <= 14 && i > 12)
    return 2.16;
  else if (i <= 16 && i > 14)
    return 2.13;
  else if (i <= 18 && i > 16)
    return 2.11;
  else if (i <= 20 && i > 18)
    return 2.09;
  else if (i <= 30 && i > 20)
    return 2.04;
  else if (i <= 40 && i > 30)
    return 2.02;
  else if (i <= 50 && i > 40)
    return 2.01;
  else if (i <= 60 && i > 50)
    return 2.00;
  else
    return 1.96;
}
```