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    D31(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rsi
  lea    D221(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x1c(%rbp),%rax
  mov    %rax,%rsi
  lea    D221(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D215(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D221(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D254(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x14(%rbp),%rax
  mov    %rax,%rsi
  lea    D221(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D182(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D221(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D161(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xc(%rbp),%rax
  mov    %rax,%rsi
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  movss  -0x20(%rbp),%xmm0
  comiss D245(%rip),%xmm0
  jae    L31
  movss  -0x14(%rbp),%xmm0
  comiss D269(%rip),%xmm0
  jb     L112
L31:
  movss  -0x10(%rbp),%xmm0
  comiss D282(%rip),%xmm0
  jae    L120
  movss  -0x1c(%rbp),%xmm0
  comiss D245(%rip),%xmm0
  jae    L120
  movss  -0x18(%rbp),%xmm0
  comiss D239(%rip),%xmm0
  jb     L112
L120:
  lea    D70(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L112:
  movss  -0x20(%rbp),%xmm0
  comiss D29(%rip),%xmm0
  jae    L41
  movss  -0x14(%rbp),%xmm0
  comiss D138(%rip),%xmm0
  jb     L169
L41:
  movss  -0x10(%rbp),%xmm0
  comiss D245(%rip),%xmm0
  jb     L169
  movss  -0x1c(%rbp),%xmm0
  comiss D282(%rip),%xmm0
  jae    L106
  movss  -0x18(%rbp),%xmm0
  comiss D3(%rip),%xmm0
  jb     L169
L106:
  mov    -0xc(%rbp),%eax
  test   %eax,%eax
  jne    L169
  lea    D212(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L169:
  movss  -0x20(%rbp),%xmm0
  comiss D157(%rip),%xmm0
  jae    L141
  movss  -0x14(%rbp),%xmm0
  cvtss2sd %xmm0,%xmm0
  comisd D78(%rip),%xmm0
  jb     L56
L141:
  movss  -0x10(%rbp),%xmm0
  comiss D118(%rip),%xmm0
  jb     L56
  movss  -0x1c(%rbp),%xmm0
  comiss D24(%rip),%xmm0
  jae    L82
  movss  -0x18(%rbp),%xmm0
  comiss D175(%rip),%xmm0
  jb     L56
L82:
  lea    D194(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L56:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L153
  call   <__stack_chk_fail@plt>
L153:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D31
type: string
name: retrieve_data
arguments: data_tag: D221
type: string
name: retrieve_data
arguments: data_tag: D195
type: string
name: retrieve_data
arguments: data_tag: D215
type: string
name: retrieve_data
arguments: data_tag: D254
type: string
name: retrieve_data
arguments: data_tag: D182
type: string
name: retrieve_data
arguments: data_tag: D161
type: string
name: retrieve_data
arguments: data_tag: D44
type: string
name: retrieve_data
arguments: data_tag: D245
type: byte[4]
name: retrieve_data
arguments: data_tag: D269
type: f32
name: retrieve_data
arguments: data_tag: D282
type: byte[4]
name: retrieve_data
arguments: data_tag: D239
type: byte[4]
name: retrieve_data
arguments: data_tag: D70
type: string
name: retrieve_data
arguments: data_tag: D29
type: byte[4]
name: retrieve_data
arguments: data_tag: D138
type: f32
name: retrieve_data
arguments: data_tag: D3
type: byte[4]
name: retrieve_data
arguments: data_tag: D212
type: string
name: retrieve_data
arguments: data_tag: D157
type: byte[4]
name: retrieve_data
arguments: data_tag: D78
type: f64[2]
name: retrieve_data
arguments: data_tag: D118
type: byte[4]
name: retrieve_data
arguments: data_tag: D24
type: byte[4]
name: retrieve_data
arguments: data_tag: D175
type: byte[4]
name: retrieve_data
arguments: data_tag: D194
type: string

tool: D31: ales notunuzu giriniz...


tool: D221: %f

tool: D195: yds notunuzu giriniz...


tool: D215: tofu notunuzu giriniz...


tool: D254: not ortalamanizi giriniz...


tool: D182: mulakat sonucunu giriniz...


tool: D161: disiplin sucunuz varsa 1 yoksa 0


tool: D44: %d

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

tool: D269: 3

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

tool: {"D239": [0x00,0x00,0x5c,0x43]}

tool: D70: a universitesine gidebilirsiniz...


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

tool: D138: 2.5

tool: {"D3": [0x00,0x00,0x34,0x43]}

tool: D212: b universitesine gidebilirsiniz...


tool: {"D157": [0x00,0x00,0x20,0x42]}

tool: {"D78": [2.2,14293653344256.0]}

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

tool: {"D24": [0x00,0x00,0xaa,0x42]}

tool: {"D175": [0x00,0x00,0x7a,0x43]}

tool: D194: c universitesine gidebilirsiniz...


assistant: ```c
int main() {
  float ales, yds, tofu, ort, mulakat;
  int disiplin;
  printf("ales notunuzu giriniz...\n");
  scanf("%f", &ales);
  printf("yds notunuzu giriniz...\n");
  scanf("%f", &yds);
  printf("tofu notunuzu giriniz...\n");
  scanf("%f", &tofu);
  printf("not ortalamanizi giriniz...\n");
  scanf("%f", &ort);
  printf("mulakat sonucunu giriniz...\n");
  scanf("%f", &mulakat);
  printf("disiplin sucunuz varsa 1 yoksa 0\n");
  scanf("%d", &disiplin);
  if ((ales >= 70 || ort >= 3.00) && (mulakat >= 60 || yds >= 70 || tofu >= 220)) {
    printf("a universitesine gidebilirsiniz...\n");
  }
  if ((ales >= 50 || ort >= 2.5) && mulakat >= 70 && (yds >= 60 || tofu >= 180) && disiplin == 0) {
    printf("b universitesine gidebilirsiniz...\n");
  }
  if ((ales >= 40 || ort >= 2.20) && mulakat >= 80 && (yds >= 85 || tofu >= 250)) {
    printf("c universitesine gidebilirsiniz...\n");
  }
  return 0;
}
```