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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D107(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x14(%rbp),%rax
  mov    %rax,%rsi
  lea    D101(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D101(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x14(%rbp),%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D94(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x10(%rbp),%eax
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  movsd  D63(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  D85(%rip),%xmm0
  comiss -0xc(%rbp),%xmm0
  jbe    L31
  movb   $0x46,-0x15(%rbp)
  jmp    L29
L31:
  movss  D82(%rip),%xmm0
  comiss -0xc(%rbp),%xmm0
  jbe    L64
  movb   $0x44,-0x15(%rbp)
  jmp    L29
L64:
  movss  D67(%rip),%xmm0
  comiss -0xc(%rbp),%xmm0
  jbe    L18
  movb   $0x43,-0x15(%rbp)
  jmp    L29
L18:
  movss  D75(%rip),%xmm0
  comiss -0xc(%rbp),%xmm0
  jbe    L47
  movb   $0x42,-0x15(%rbp)
  jmp    L29
L47:
  movb   $0x41,-0x15(%rbp)
L29:
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movsbl -0x15(%rbp),%edx
  pxor   %xmm3,%xmm3
  cvtss2sd -0xc(%rbp),%xmm3
  movq   %xmm3,%rax
  mov    %edx,%esi
  movq   %rax,%xmm0
  lea    D11(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L80
  call   <__stack_chk_fail@plt>
L80:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D107
type_guessed: string
name: retrieve_data
arguments: data_label: D101
type_guessed: string
name: retrieve_data
arguments: data_label: D17
type_guessed: string
name: retrieve_data
arguments: data_label: D94
type_guessed: f64
name: retrieve_data
arguments: data_label: D63
type_guessed: f64
name: retrieve_data
arguments: data_label: D85
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D82
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D67
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D75
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D68
type_guessed: string
name: retrieve_data
arguments: data_label: D11
type_guessed: string

tool: D107: Vize notunuz giriniz : 

tool: D101: %d

tool: D17: Final notunuz giriniz: 

tool: D94: 0.4

tool: D63: 0.6

tool: {"D85": [0x00,0x00,0x48,0x42]}

tool: {"D82": [0x00,0x00,0x70,0x42]}

tool: {"D67": [0x00,0x00,0x8c,0x42]}

tool: {"D75": [0x00,0x00,0xa0,0x42]}

tool: D68: ===================================

tool: D11: Basar notu = %.2f	Harf notu:%c

assistant: ```c
int main() {
  int vize, final;
  char harf;
  printf("Vize notunuz giriniz : ");
  scanf("%d", &vize);
  printf("Final notunuz giriniz: ");
  scanf("%d", &final);
  float ortalama = (vize * 0.4) + (final * 0.6);
  if (ortalama < 50) {
    harf = 'F';
  } else if (ortalama < 60) {
    harf = 'D';
  } else if (ortalama < 70) {
    harf = 'C';
  } else if (ortalama < 80) {
    harf = 'B';
  } else
    harf = 'A';
  printf("===================================\n");
  printf("Basar notu = %.2f\tHarf notu:%c", ortalama, harf);
  return 0;
}
```