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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D6(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D45(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x24(%rbp),%rax
  mov    %rax,%rsi
  lea    D110(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D33(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rsi
  lea    D110(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D90(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1c(%rbp),%rax
  mov    %rax,%rsi
  lea    D110(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D15(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D110(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x14(%rbp),%rax
  mov    %rax,%rsi
  lea    D110(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x24(%rbp),%edx
  mov    -0x20(%rbp),%eax
  cmp    %eax,%edx
  jge    L50
  mov    -0x20(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  jmp    L26
L50:
  mov    -0x24(%rbp),%eax
  mov    %eax,-0xc(%rbp)
L26:
  mov    -0x1c(%rbp),%eax
  cmp    %eax,-0xc(%rbp)
  jge    L31
  mov    -0x1c(%rbp),%eax
  mov    %eax,-0xc(%rbp)
L31:
  mov    -0x18(%rbp),%eax
  cmp    %eax,-0xc(%rbp)
  jge    L94
  mov    -0x18(%rbp),%eax
  mov    %eax,-0xc(%rbp)
L94:
  mov    -0x14(%rbp),%eax
  cmp    %eax,-0xc(%rbp)
  jge    L15
  mov    -0x14(%rbp),%eax
  mov    %eax,-0xc(%rbp)
L15:
  mov    -0x24(%rbp),%edx
  mov    -0x20(%rbp),%eax
  cmp    %eax,%edx
  jle    L4
  mov    -0x20(%rbp),%eax
  mov    %eax,-0x10(%rbp)
  jmp    L76
L4:
  mov    -0x24(%rbp),%eax
  mov    %eax,-0x10(%rbp)
L76:
  mov    -0x1c(%rbp),%eax
  cmp    %eax,-0x10(%rbp)
  jle    L66
  mov    -0x1c(%rbp),%eax
  mov    %eax,-0x10(%rbp)
L66:
  mov    -0x18(%rbp),%eax
  cmp    %eax,-0x10(%rbp)
  jle    L64
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x10(%rbp)
L64:
  mov    -0x14(%rbp),%eax
  cmp    %eax,-0x10(%rbp)
  jle    L43
  mov    -0x14(%rbp),%eax
  mov    %eax,-0x10(%rbp)
L43:
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%eax
  mov    %eax,%esi
  lea    D96(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L42
  call   <__stack_chk_fail@plt>
L42:
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D6
type_guessed: string
name: read_data
arguments: label: D45
type_guessed: string
name: read_data
arguments: label: D110
type_guessed: string
name: read_data
arguments: label: D33
type_guessed: string
name: read_data
arguments: label: D90
type_guessed: string
name: read_data
arguments: label: D15
type_guessed: string
name: read_data
arguments: label: D53
type_guessed: string
name: read_data
arguments: label: D96
type_guessed: string

tool: D6: 5 tam sayidan en buyugunu en kucugunu bulmak icin sayilari giriniz.

tool: D45: Birinci sayi:

tool: D110: %d

tool: D33: Ikinci sayi:

tool: D90: Ucuncu sayi:

tool: D15: Dorduncu sayi:

tool: D53: Besinci sayi:

tool: D96: 
En buyuk sayi:%d
En kucuk sayi %d

assistant: ```c
int main() {
  int sayi1, sayi2, sayi3, sayi4, sayi5, en_kucuk, en_buyuk;
  printf("5 tam sayidan en buyugunu en kucugunu bulmak icin sayilari giriniz.\n");
  printf("Birinci sayi:");
  scanf("%d", &sayi1);
  printf("Ikinci sayi:");
  scanf("%d", &sayi2);
  printf("Ucuncu sayi:");
  scanf("%d", &sayi3);
  printf("Dorduncu sayi:");
  scanf("%d", &sayi4);
  printf("Besinci sayi:");
  scanf("%d", &sayi5);
  if (sayi1 < sayi2) {
    en_buyuk = sayi2;
  } else {
    en_buyuk = sayi1;
  }
  if (en_buyuk < sayi3) {
    en_buyuk = sayi3;
  } else {
    en_buyuk = en_buyuk;
  }
  if (en_buyuk < sayi4) {
    en_buyuk = sayi4;
  } else {
    en_buyuk = en_buyuk;
  }
  if (en_buyuk < sayi5) {
    en_buyuk = sayi5;
  } else {
    en_buyuk = en_buyuk;
  }
  if (sayi1 > sayi2) {
    en_kucuk = sayi2;
  } else {
    en_kucuk = sayi1;
  }
  if (en_kucuk > sayi3) {
    en_kucuk = sayi3;
  } else {
    en_kucuk = en_kucuk;
  }
  if (en_kucuk > sayi4) {
    en_kucuk = sayi4;
  } else {
    en_kucuk = en_kucuk;
  }
  if (en_kucuk > sayi5) {
    en_kucuk = sayi5;
  } else {
    en_kucuk = en_kucuk;
  }
  printf("\nEn buyuk sayi:%d\nEn kucuk sayi %d", en_buyuk, en_kucuk);
  return 0;
}
```