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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0xc(%rbp),%rax
  mov    %rax,%rsi
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0xc(%rbp),%eax
  test   %eax,%eax
  js     L0
  mov    -0xc(%rbp),%eax
  cmp    $0x9,%eax
  jg     L0
  mov    -0xc(%rbp),%eax
  test   %eax,%eax
  jne    L16
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L16:
  mov    -0xc(%rbp),%eax
  cmp    $0x1,%eax
  jne    L125
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L125:
  mov    -0xc(%rbp),%eax
  cmp    $0x2,%eax
  jne    L29
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L29:
  mov    -0xc(%rbp),%eax
  cmp    $0x3,%eax
  jne    L84
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L84:
  mov    -0xc(%rbp),%eax
  cmp    $0x4,%eax
  jne    L114
  lea    D24(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L114:
  mov    -0xc(%rbp),%eax
  cmp    $0x5,%eax
  jne    L28
  lea    D56(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L28:
  mov    -0xc(%rbp),%eax
  cmp    $0x6,%eax
  jne    L44
  lea    D78(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L44:
  mov    -0xc(%rbp),%eax
  cmp    $0x7,%eax
  jne    L94
  lea    D51(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L94:
  mov    -0xc(%rbp),%eax
  cmp    $0x8,%eax
  jne    L52
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L52:
  mov    -0xc(%rbp),%eax
  cmp    $0x9,%eax
  jne    L0
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L0:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L18
  call   <__stack_chk_fail@plt>
L18:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: tag: D23
type_infered: string
name: unpack_data
arguments: tag: D77
type_infered: string
name: unpack_data
arguments: tag: D16
type_infered: string
name: unpack_data
arguments: tag: D14
type_infered: string
name: unpack_data
arguments: tag: D69
type_infered: string
name: unpack_data
arguments: tag: D24
type_infered: string
name: unpack_data
arguments: tag: D56
type_infered: string
name: unpack_data
arguments: tag: D78
type_infered: string
name: unpack_data
arguments: tag: D51
type_infered: string
name: unpack_data
arguments: tag: D91
type_infered: string
name: unpack_data
arguments: tag: D50
type_infered: string

tool: D23: %d

tool: D77: 
zero

tool: D16: 
one

tool: D14: 
two

tool: D69: three

tool: D24: four

tool: D56: five

tool: D78: six

tool: D51: seven

tool: D91: eight

tool: D50: nine

assistant: ```c
int main() {
  int a;
  scanf("%d", &a);
  if (a >= 0 && a <= 9) {
    if (a == 0) {
      printf("\nzero");
    }
    if (a == 1) {
      printf("\none");
    }
    if (a == 2) {
      printf("\ntwo");
    }
    if (a == 3) {
      printf("three");
    }
    if (a == 4) {
      printf("four");
    }
    if (a == 5) {
      printf("five");
    }
    if (a == 6) {
      printf("six");
    }
    if (a == 7) {
      printf("seven");
    }
    if (a == 8) {
      printf("eight");
    }
    if (a == 9) {
      printf("nine");
    }
  }
  return 0;
}
```