user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<sorter_2>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xb0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    $0x10,%esi
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x0,-0x9c(%rbp)
  jmp    L56
L83:
  mov    -0x9c(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,%esi
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x90(%rbp),%rdx
  mov    -0x9c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    %rax,%rsi
  lea    D30(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    -0x90(%rbp),%rdx
  mov    -0x9c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rax,%rdx
  mov    -0x9c(%rbp),%eax
  cltq
  mov    %rdx,-0x60(%rbp,%rax,8)
  addl   $0x1,-0x9c(%rbp)
L56:
  cmpl   $0x9,-0x9c(%rbp)
  jle    L83
  movl   $0x0,-0xa4(%rbp)
  jmp    L81
L48:
  mov    -0xa4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xa0(%rbp)
  jmp    L21
L28:
  mov    -0xa4(%rbp),%eax
  cltq
  mov    -0x60(%rbp,%rax,8),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%eax
  cltq
  mov    -0x60(%rbp,%rax,8),%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  jle    L25
  mov    -0xa4(%rbp),%eax
  cltq
  mov    -0x60(%rbp,%rax,8),%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xa0(%rbp),%eax
  cltq
  mov    -0x60(%rbp,%rax,8),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  mov    %rdx,-0x60(%rbp,%rax,8)
  mov    -0xa0(%rbp),%eax
  cltq
  mov    -0x98(%rbp),%rdx
  mov    %rdx,-0x60(%rbp,%rax,8)
L25:
  addl   $0x1,-0xa0(%rbp)
L21:
  cmpl   $0x9,-0xa0(%rbp)
  jle    L28
  addl   $0x1,-0xa4(%rbp)
L81:
  cmpl   $0x8,-0xa4(%rbp)
  jle    L48
  lea    D26(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c(%rbp)
  jmp    L76
L46:
  mov    -0x9c(%rbp),%eax
  cltq
  mov    -0x60(%rbp,%rax,8),%rax
  mov    (%rax),%edx
  mov    -0x9c(%rbp),%eax
  cltq
  mov    -0x90(%rbp,%rax,4),%eax
  mov    %eax,%esi
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x1,-0x9c(%rbp)
L76:
  cmpl   $0x9,-0x9c(%rbp)
  jle    L46
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L74
  call   <__stack_chk_fail@plt>
L74:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D9
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D13
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D30
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D26
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D48
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D14
type_guessed: string

tool: D9: Enter here your chosen numbers to be sorted %c 


tool: D13: 	#%d: 

tool: D30: %d

tool: D26: 

Original	Sorted

tool: D48: Numbers		Numbers


tool: D14: %-3d		%-3d


assistant: ```c
void sorter_2(void) {
  int input[10];
  int *isort[10];
  int *temp;
  int a, b, x;
  printf("Enter here your chosen numbers to be sorted %c \n", 16);
  for (x = 0; x < 10; x++) {
    printf("\t#%d: ", x + 1);
    scanf("%d", &input[x]);
    isort[x] = &input[x];
  }
  for (a = 0; a < 10 - 1; a++)
    for (b = a + 1; b < 10; b++) {
      if (*isort[a] > *isort[b]) {
        temp = isort[a];
        isort[a] = isort[b];
        isort[b] = temp;
      }
    }
  puts("\n\nOriginal\tSorted");
  puts("Numbers\t\tNumbers\n");
  for (x = 0; x < 10; x++)
    printf("%-3d\t\t%-3d\n", input[x], *isort[x]);
}
```