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    D3(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x10(%rbp),%rcx
  lea    -0x14(%rbp),%rdx
  lea    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x18(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  je     L41
  mov    -0x18(%rbp),%edx
  mov    -0x10(%rbp),%eax
  cmp    %eax,%edx
  jne    L90
L41:
  mov    -0x18(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  jmp    L135
L90:
  mov    -0x14(%rbp),%edx
  mov    -0x10(%rbp),%eax
  cmp    %eax,%edx
  je     L29
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jne    L49
L29:
  mov    -0x14(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  jmp    L135
L49:
  mov    -0x10(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  je     L166
  mov    -0x10(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  jne    L172
L166:
  mov    -0x10(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  jmp    L135
L172:
  mov    -0x18(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  jle    L209
  mov    -0x18(%rbp),%edx
  mov    -0x10(%rbp),%eax
  cmp    %eax,%edx
  jl     L67
L209:
  mov    -0x18(%rbp),%edx
  mov    -0x10(%rbp),%eax
  cmp    %eax,%edx
  jle    L98
  mov    -0x18(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  jge    L98
L67:
  mov    -0x18(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  jmp    L135
L98:
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jle    L150
  mov    -0x14(%rbp),%edx
  mov    -0x10(%rbp),%eax
  cmp    %eax,%edx
  jl     L216
L150:
  mov    -0x14(%rbp),%edx
  mov    -0x10(%rbp),%eax
  cmp    %eax,%edx
  jle    L213
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jge    L213
L216:
  mov    -0x14(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  jmp    L135
L213:
  mov    -0x10(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jle    L174
  mov    -0x10(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  jl     L123
L174:
  mov    -0x10(%rbp),%edx
  mov    -0x14(%rbp),%eax
  cmp    %eax,%edx
  jle    L135
  mov    -0x10(%rbp),%edx
  mov    -0x18(%rbp),%eax
  cmp    %eax,%edx
  jge    L135
L123:
  mov    -0x10(%rbp),%eax
  mov    %eax,-0xc(%rbp)
L135:
  mov    -0xc(%rbp),%eax
  mov    %eax,%esi
  lea    D24(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L127
  call   <__stack_chk_fail@plt>
L127:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: tag: D3
type: string
name: unpack_data
arguments: tag: D8
type: string
name: unpack_data
arguments: tag: D24
type: string

tool: D3: Please enter 3 numbers separated by spaces > 

tool: D8: %d %d %d

tool: D24: %d is the median


assistant: ```c
int main() {
  int a, b, c, m;
  printf("Please enter 3 numbers separated by spaces > ");
  scanf("%d %d %d", &a, &b, &c);
  if (a == b || a == c)
    m = a;
  else if (b == c || b == a)
    m = b;
  else if (c == a || c == b)
    m = c;
  else {
    if ((a > b && a < c) || (a > c && a < b))
      m = a;
    else if ((b > a && b < c) || (b > c && b < a))
      m = b;
    else if ((c > a && c < b) || (c > b && c < a))
      m = c;
  }
  printf("%d is the median\n", m);
  return 0;
}
```