user: 请将以下的汇编代码转换成C语言代码:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x300,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    $0xa,%esi
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x0,-0x2f4(%rbp)
  jmp    L46
L26:
  mov    -0x2f4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,%esi
  lea    D24(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x290(%rbp),%rdx
  mov    -0x2f4(%rbp),%eax
  cltq
  shl    $0x6,%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  call   <gets@plt>
  lea    -0x290(%rbp),%rdx
  mov    -0x2f4(%rbp),%eax
  cltq
  shl    $0x6,%rax
  add    %rax,%rdx
  mov    -0x2f4(%rbp),%eax
  cltq
  mov    %rdx,-0x2e0(%rbp,%rax,8)
  addl   $0x1,-0x2f4(%rbp)
L46:
  cmpl   $0x9,-0x2f4(%rbp)
  jle    L26
  movl   $0x0,-0x2f0(%rbp)
  jmp    L91
L52:
  mov    -0x2f0(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x2ec(%rbp)
  jmp    L113
L118:
  mov    -0x2ec(%rbp),%eax
  cltq
  mov    -0x2e0(%rbp,%rax,8),%rdx
  mov    -0x2f0(%rbp),%eax
  cltq
  mov    -0x2e0(%rbp,%rax,8),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <c_insensitive@plt>
  test   %rax,%rax
  jle    L96
  mov    -0x2f0(%rbp),%eax
  cltq
  mov    -0x2e0(%rbp,%rax,8),%rax
  mov    %rax,-0x2e8(%rbp)
  mov    -0x2ec(%rbp),%eax
  cltq
  mov    -0x2e0(%rbp,%rax,8),%rdx
  mov    -0x2f0(%rbp),%eax
  cltq
  mov    %rdx,-0x2e0(%rbp,%rax,8)
  mov    -0x2ec(%rbp),%eax
  cltq
  mov    -0x2e8(%rbp),%rdx
  mov    %rdx,-0x2e0(%rbp,%rax,8)
L96:
  addl   $0x1,-0x2ec(%rbp)
L113:
  cmpl   $0x9,-0x2ec(%rbp)
  jle    L118
  addl   $0x1,-0x2f0(%rbp)
L91:
  cmpl   $0x8,-0x2f0(%rbp)
  jle    L52
  lea    D30(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x2f4(%rbp)
  jmp    L7
L98:
  lea    -0x290(%rbp),%rdx
  mov    -0x2f4(%rbp),%eax
  cltq
  shl    $0x6,%rax
  add    %rax,%rdx
  mov    -0x2f4(%rbp),%eax
  cltq
  mov    -0x2e0(%rbp,%rax,8),%rax
  mov    %rax,%rsi
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x1,-0x2f4(%rbp)
L7:
  cmpl   $0x9,-0x2f4(%rbp)
  jle    L98
  jmp    L104
L89:
  nop
L104:
  mov    $0x0,%eax
  call   <getchar@plt>
  cmp    $0x7e,%al
  jne    L89
  mov    $0x0,%eax
  call   <getchar@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L13
  call   <__stack_chk_fail@plt>
L13:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D23
type: string
name: extract_symbolic_data
arguments: tag: D24
type: string
name: extract_symbolic_data
arguments: tag: D30
type: string
name: extract_symbolic_data
arguments: tag: D8
type: string

tool: D23: Enter %d types of fruits:


tool: D24: #%d: 

tool: D30: 

Sorted list:	Original list:

tool: D8: %12s	%12s


assistant: ```c
int main() {
  char input[10][64];
  char *isort[10];
  char *temp;
  int x, a, b;
  printf("Enter %d types of fruits:\n", 10);
  for (x = 0; x < 10; x++) {
    printf("#%d: ", x + 1);
    gets(input[x]);
    isort[x] = input[x];
  }
  for (a = 0; a < 10 - 1; a++)
    for (b = a + 1; b < 10; b++)
      if (c_insensitive(isort[a], isort[b]) > 0) {
        temp = isort[a];
        isort[a] = isort[b];
        isort[b] = temp;
      }
  printf("\n\nSorted list:\tOriginal list:\n");
  for (x = 0; x < 10; x++)
    printf("%12s\t%12s\n", isort[x], input[x]);
  while (getchar() != '~')
    continue;
  getchar();
  return 0;
}
```