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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  movl   $0x3,-0x10(%rbp)
  movl   $0x4,-0xc(%rbp)
  movl   $0x5,-0x8(%rbp)
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%eax
  add    %edx,%eax
  cmp    %eax,-0x8(%rbp)
  jge    L153
  mov    -0xc(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jne    L153
  mov    $0x1,%eax
  jmp    L113
L153:
  mov    $0x0,%eax
L113:
  mov    %eax,%esi
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %eax,%esi
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x0,-0x10(%rbp)
  jne    L38
  mov    -0xc(%rbp),%edx
  mov    -0x8(%rbp),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L20
  mov    -0xc(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  je     L20
L38:
  mov    $0x1,%eax
  jmp    L14
L20:
  mov    $0x0,%eax
L14:
  mov    %eax,%esi
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %eax,%esi
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x3,-0x10(%rbp)
  movl   $0x4,-0xc(%rbp)
  movl   $0x5,-0x8(%rbp)
  mov    -0x10(%rbp),%eax
  mov    %eax,-0x4(%rbp)
  cmpl   $0x0,-0x4(%rbp)
  jne    L156
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x14(%rbp)
  cmpl   $0x0,-0x14(%rbp)
L156:
  mov    $0x0,%esi
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x14(%rbp),%edx
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%eax
  add    %edx,%eax
  test   %eax,%eax
  sete   %al
  movzbl %al,%edx
  mov    -0x8(%rbp),%eax
  add    %edx,%eax
  cmp    $0x1,%eax
  je     L40
  mov    -0x8(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0xc(%rbp),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L40
  mov    $0x1,%eax
  jmp    L140
L40:
  mov    $0x0,%eax
L140:
  mov    %eax,%esi
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %eax,%esi
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x1,-0x8(%rbp)
  jle    L32
  cmpl   $0x6,-0x8(%rbp)
  jle    L60
L32:
  cmpl   $0x3,-0x8(%rbp)
  jne    L60
  cmpl   $0x5,-0x8(%rbp)
  je     L66
L60:
  mov    $0x1,%eax
  jmp    L19
L66:
  mov    $0x0,%eax
L19:
  mov    %eax,%esi
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%eax
  mov    %eax,%esi
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D76
data_type: string
name: parse_data
arguments: data_label: D58
data_type: string
name: parse_data
arguments: data_label: D81
data_type: string
name: parse_data
arguments: data_label: D84
data_type: string

tool: D76: %d


tool: D58: a=%d,b=%d,c=%d


tool: D81: x=%d,y=%d


tool: D84: c=%d


assistant: ```c
int main() {
  int a = 3, b = 4, c = 5, x, y;
  printf("%d\n", a + b > c && b == c);
  printf("a=%d,b=%d,c=%d\n", a, b, c);
  printf("%d\n", a || b + c && b - c);
  printf("a=%d,b=%d,c=%d\n", a, b, c);
  a = 3, b = 4, c = 5;
  printf("%d\n", !(x = a) && (y = b) && 0);
  printf("x=%d,y=%d\n", x, y);
  printf("%d\n", !(a + b) + c - 1 && b + c / 2);
  printf("a=%d,b=%d,c=%d\n", a, b, c);
  printf("%d\n", (c >= 2 && c <= 6) || (c != 3) || (c != 5));
  printf("c=%d\n", c);
}
```