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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D4(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1c(%rbp),%rax
  mov    %rax,%rsi
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D54(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x14(%rbp),%rax
  mov    %rax,%rsi
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x1c(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jge    L66
  mov    -0x1c(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x18(%rbp)
L66:
  mov    -0x18(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  jge    L38
  mov    -0x18(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,-0x18(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x14(%rbp)
L38:
  mov    -0x1c(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jge    L56
  mov    -0x1c(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x18(%rbp)
L56:
  mov    -0x10(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  jle    L65
  mov    -0x10(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,-0x10(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x14(%rbp)
L65:
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jle    L51
  mov    -0x14(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x14(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x18(%rbp)
L51:
  mov    -0x18(%rbp),%edx
  mov    -0x1c(%rbp),%eax
  cmp    %eax,%edx
  jle    L61
  mov    -0x18(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x1c(%rbp),%eax
  mov    %eax,-0x18(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L61:
  mov    -0x10(%rbp),%esi
  mov    -0x14(%rbp),%ecx
  mov    -0x18(%rbp),%edx
  mov    -0x1c(%rbp),%eax
  mov    %esi,%r8d
  mov    %eax,%esi
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L6
  call   <__stack_chk_fail@plt>
L6:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D4
type_guessed: string
name: read_data
arguments: data_tag: D13
type_guessed: string
name: read_data
arguments: data_tag: D35
type_guessed: string
name: read_data
arguments: data_tag: D54
type_guessed: string
name: read_data
arguments: data_tag: D23
type_guessed: string
name: read_data
arguments: data_tag: D73
type_guessed: string

tool: D4: Informe o primeiro numero: 

tool: D13: %d

tool: D35: Informe o segundo numero: 

tool: D54: Informe o terceiro numero: 

tool: D23: Informe o quarto numero: 

tool: D73: Ordem decrescente: %d %d %d %d


assistant: ```c
void main() {
  int n1, n2, n3, n4, aux;
  printf("Informe o primeiro numero: ");
  scanf("%d", &n1);
  printf("Informe o segundo numero: ");
  scanf("%d", &n2);
  printf("Informe o terceiro numero: ");
  scanf("%d", &n3);
  printf("Informe o quarto numero: ");
  scanf("%d", &n4);
  if (n1 < n2) {
    aux = n1;
    n1 = n2;
    n2 = aux;
  }
  if (n2 < n3) {
    aux = n2;
    n2 = n3;
    n3 = aux;
  }
  if (n1 < n2) {
    aux = n1;
    n1 = n2;
    n2 = aux;
  }
  if (n4 > n3) {
    aux = n4;
    n4 = n3;
    n3 = aux;
  }
  if (n3 > n2) {
    aux = n3;
    n3 = n2;
    n2 = aux;
  }
  if (n2 > n1) {
    aux = n2;
    n2 = n1;
    n1 = aux;
  }
  printf("Ordem decrescente: %d %d %d %d\n", n1, n2, n3, n4);
}
```