user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<integer_relation>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %esi,-0x1c(%rbp)
  mov    %edx,-0x20(%rbp)
  mov    -0x18(%rbp),%rax
  lea    D32(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L25
  mov    -0x1c(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  jmp    L58
L25:
  mov    -0x18(%rbp),%rax
  lea    D31(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L36
  mov    -0x1c(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  sete   %al
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  jmp    L58
L36:
  mov    -0x18(%rbp),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L117
  mov    -0x1c(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  setne  %al
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  jmp    L58
L117:
  mov    -0x18(%rbp),%rax
  lea    D19(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L14
  mov    -0x1c(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  setle  %al
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  jmp    L58
L14:
  mov    -0x18(%rbp),%rax
  lea    D52(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L12
  mov    -0x1c(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  setge  %al
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  jmp    L58
L12:
  mov    -0x18(%rbp),%rax
  lea    D22(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L120
  mov    -0x1c(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  setl   %al
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  jmp    L58
L120:
  mov    -0x18(%rbp),%rax
  lea    D47(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L38
  mov    -0x1c(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  setg   %al
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  jmp    L58
L38:
  movl   $0x0,-0x4(%rbp)
L58:
  mov    -0x4(%rbp),%eax
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D32
data_type: string
name: unpack_data
arguments: data_label: D31
data_type: string
name: unpack_data
arguments: data_label: D1
data_type: string
name: unpack_data
arguments: data_label: D19
data_type: string
name: unpack_data
arguments: data_label: D52
data_type: string
name: unpack_data
arguments: data_label: D22
data_type: string
name: unpack_data
arguments: data_label: D47
data_type: string

tool: D32: =

tool: D31: ==

tool: D1: !=

tool: D19: <=

tool: D52: >=

tool: D22: <

tool: D47: >

assistant: ```c
int integer_relation(char *operator, int avalue, int ivalue) {
  int t;
  if (strcmp(operator, "=") == 0)
    t = (avalue == ivalue);
  else if (strcmp(operator, "==") == 0)
    t = (avalue == ivalue);
  else if (strcmp(operator, "!=") == 0)
    t = (avalue != ivalue);
  else if (strcmp(operator, "<=") == 0)
    t = (avalue <= ivalue);
  else if (strcmp(operator, ">=") == 0)
    t = (avalue >= ivalue);
  else if (strcmp(operator, "<") == 0)
    t = (avalue < ivalue);
  else if (strcmp(operator, ">") == 0)
    t = (avalue > ivalue);
  else
    t = 0;
  return (t);
}
```