user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D240(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xc(%rbp),%rax
  mov    %rax,%rsi
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0xc(%rbp),%eax
  cmp    $0x64,%eax
  jle    L10
  lea    D188(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L92
L10:
  mov    -0xc(%rbp),%eax
  cmp    $0x59,%eax
  jg     L37
  lea    D215(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L92
L37:
  mov    -0xc(%rbp),%eax
  cmp    $0x59,%eax
  jle    L92
  lea    D100(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L92:
  lea    D240(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xc(%rbp),%rax
  mov    %rax,%rsi
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0xc(%rbp),%eax
  cmp    $0x59,%eax
  jle    L113
  lea    D11(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L193
L113:
  mov    -0xc(%rbp),%eax
  cmp    $0x4f,%eax
  jg     L248
  lea    D11(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L193
L248:
  mov    -0xc(%rbp),%eax
  cmp    $0x4f,%eax
  jle    L193
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L193:
  lea    D240(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xc(%rbp),%rax
  mov    %rax,%rsi
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0xc(%rbp),%eax
  cmp    $0x4f,%eax
  jle    L79
  lea    D246(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L110
L79:
  mov    -0xc(%rbp),%eax
  cmp    $0x45,%eax
  jg     L126
  lea    D246(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L110
L126:
  mov    -0xc(%rbp),%eax
  cmp    $0x45,%eax
  jle    L110
  lea    D83(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L110:
  lea    D240(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xc(%rbp),%rax
  mov    %rax,%rsi
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0xc(%rbp),%eax
  cmp    $0x45,%eax
  jle    L28
  lea    D224(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L217
L28:
  mov    -0xc(%rbp),%eax
  cmp    $0x3b,%eax
  jg     L67
  lea    D224(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L217
L67:
  mov    -0xc(%rbp),%eax
  cmp    $0x3b,%eax
  jle    L217
  lea    D166(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L217:
  lea    D240(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xc(%rbp),%rax
  mov    %rax,%rsi
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0xc(%rbp),%eax
  cmp    $0x3b,%eax
  jle    L257
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L200
L257:
  mov    -0xc(%rbp),%eax
  test   %eax,%eax
  jns    L71
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L200
L71:
  mov    -0xc(%rbp),%eax
  test   %eax,%eax
  js     L200
  lea    D241(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L200:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L233
  call   <__stack_chk_fail@plt>
L233:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D240
datatype: string
name: disassemble_data
arguments: label: D53
datatype: string
name: disassemble_data
arguments: label: D188
datatype: string
name: disassemble_data
arguments: label: D215
datatype: string
name: disassemble_data
arguments: label: D100
datatype: string
name: disassemble_data
arguments: label: D11
datatype: string
name: disassemble_data
arguments: label: D14
datatype: string
name: disassemble_data
arguments: label: D246
datatype: string
name: disassemble_data
arguments: label: D83
datatype: string
name: disassemble_data
arguments: label: D224
datatype: string
name: disassemble_data
arguments: label: D166
datatype: string
name: disassemble_data
arguments: label: D87
datatype: string
name: disassemble_data
arguments: label: D241
datatype: string

tool: D240: Enter the student's grade: 

tool: D53: %d

tool: D188: Invalid grade entered.Expected 0 <= grade <= 100


tool: D215: Invalid grade entered.  Expected 90 <= grade <= 100


tool: D100: Letter grade is: A


tool: D11: Invalid grade entered. Expected 80 <= grade <= 89


tool: D14: Letter grade is: B


tool: D246: Invalid grade entered. Expected 70 <= grade <= 79


tool: D83: Letter grade is: C


tool: D224: Invalid grade entered. Expected 60 <= grade <= 69


tool: D166: Letter grade is: D


tool: D87: Invalid grade entered. Expected 0 <= grade <= 59


tool: D241: Letter grade is: F


assistant: ```c
int main() {
  int grade;
  printf("Enter the student's grade: ");
  scanf("%d", &grade);
  if (grade > 100) {
    printf("Invalid grade entered.Expected 0 <= grade <= 100\n");
  } else if (grade < 90) {
    printf("Invalid grade entered.  Expected 90 <= grade <= 100\n");
  } else if (grade >= 90) {
    printf("Letter grade is: A\n");
  }
  printf("Enter the student's grade: ");
  scanf("%d", &grade);
  if (grade > 89) {
    printf("Invalid grade entered. Expected 80 <= grade <= 89\n");
  } else if (grade < 80) {
    printf("Invalid grade entered. Expected 80 <= grade <= 89\n");
  } else if (grade >= 80) {
    printf("Letter grade is: B\n");
  }
  printf("Enter the student's grade: ");
  scanf("%d", &grade);
  if (grade > 79) {
    printf("Invalid grade entered. Expected 70 <= grade <= 79\n");
  } else if (grade < 70) {
    printf("Invalid grade entered. Expected 70 <= grade <= 79\n");
  } else if (grade >= 70) {
    printf("Letter grade is: C\n");
  }
  printf("Enter the student's grade: ");
  scanf("%d", &grade);
  if (grade > 69) {
    printf("Invalid grade entered. Expected 60 <= grade <= 69\n");
  } else if (grade < 60) {
    printf("Invalid grade entered. Expected 60 <= grade <= 69\n");
  } else if (grade >= 60) {
    printf("Letter grade is: D\n");
  }
  printf("Enter the student's grade: ");
  scanf("%d", &grade);
  if (grade > 59) {
    printf("Invalid grade entered. Expected 0 <= grade <= 59\n");
  } else if (grade < 0) {
    printf("Invalid grade entered. Expected 0 <= grade <= 59\n");
  } else if (grade >= 0) {
    printf("Letter grade is: F\n");
  }
  return 0;
}
```