user: What would the C source look like for the assembly code provided here:

```asm
<testQSort>:
  endbr64
  push   %r14
  mov    $0x9,%edx
  lea    D126(%rip),%r14
  push   %r13
  movabs $0x100000003,%r13
  push   %r12
  lea    D112(%rip),%r12
  push   %rbp
  lea    D114(%rip),%rbp
  push   %rbx
  lea    D42(%rip),%rbx
  sub    $0x1c0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x1b8(%rsp)
  movabs $0x600000005,%rax
  lea    0x80(%rsp),%rsi
  lea    0x110(%rsp),%rdi
  movl   $0x3,0xa0(%rsp)
  mov    %rax,0x80(%rsp)
  movabs $0x400000000,%rax
  mov    %rax,0x88(%rsp)
  movabs $0x700000002,%rax
  mov    %rax,0x90(%rsp)
  movabs $0x100000008,%rax
  mov    %rax,0x98(%rsp)
  lea    D59(%rip),%rax
  mov    %rax,0x110(%rsp)
  lea    D33(%rip),%rax
  mov    %rax,0x118(%rsp)
  lea    D63(%rip),%rax
  mov    %rax,0x120(%rsp)
  lea    D51(%rip),%rax
  mov    %rax,0x128(%rsp)
  lea    D27(%rip),%rax
  mov    %rax,0x130(%rsp)
  lea    D14(%rip),%rax
  mov    %rax,0x138(%rsp)
  mov    %rax,0x140(%rsp)
  lea    D109(%rip),%rax
  mov    %rax,0x148(%rsp)
  lea    D106(%rip),%rax
  mov    %rax,0x150(%rsp)
  xor    %eax,%eax
  call   <testQSort_@plt>
  lea    0x20(%rsp),%rsi
  movabs $0x100000000,%rax
  lea    0xb0(%rsp),%rdi
  mov    %rax,0x20(%rsp)
  mov    $0x5,%edx
  movabs $0x400000003,%rax
  mov    %rax,0x28(%rsp)
  lea    D117(%rip),%rax
  mov    %rax,0xc0(%rsp)
  xor    %eax,%eax
  mov    %r12,0xc8(%rsp)
  movl   $0x2,0x30(%rsp)
  mov    %rbx,0xb0(%rsp)
  mov    %rbp,0xb8(%rsp)
  mov    %r14,0xd0(%rsp)
  call   <testQSort_@plt>
  mov    %rsp,%rsi
  lea    0x40(%rsp),%rdi
  xor    %eax,%eax
  mov    $0x4,%edx
  mov    %r12,0x50(%rsp)
  movabs $0x200000000,%r12
  mov    %r13,(%rsp)
  movq   $0x2,0x8(%rsp)
  mov    %r14,0x40(%rsp)
  mov    %rbp,0x48(%rsp)
  mov    %rbx,0x58(%rsp)
  call   <testQSort_@plt>
  lea    0x10(%rsp),%rsi
  lea    0x60(%rsp),%rdi
  xor    %eax,%eax
  mov    $0x4,%edx
  mov    %r12,0x10(%rsp)
  mov    %r13,0x18(%rsp)
  mov    %rbx,0x60(%rsp)
  mov    %rbp,0x68(%rsp)
  mov    %rbx,0x70(%rsp)
  mov    %rbx,0x78(%rsp)
  call   <testQSort_@plt>
  lea    0xe0(%rsp),%rsi
  movabs $0x500000003,%rax
  lea    0x160(%rsp),%rdi
  mov    %rax,0xe8(%rsp)
  mov    $0xb,%edx
  movabs $0x900000008,%rax
  mov    %rax,0xf0(%rsp)
  movabs $0x400000001,%rax
  mov    %rax,0xf8(%rsp)
  movabs $0x700000006,%rax
  mov    %rax,0x100(%rsp)
  xor    %eax,%eax
  mov    %r12,0xe0(%rsp)
  movl   $0xa,0x108(%rsp)
  mov    %rbx,0x160(%rsp)
  mov    %rbp,0x168(%rsp)
  mov    %rbx,0x170(%rsp)
  mov    %rbx,0x178(%rsp)
  mov    %rbp,0x180(%rsp)
  mov    %rbx,0x188(%rsp)
  mov    %rbp,0x190(%rsp)
  mov    %rbp,0x198(%rsp)
  mov    %rbx,0x1a0(%rsp)
  mov    %rbx,0x1a8(%rsp)
  mov    %rbp,0x1b0(%rsp)
  call   <testQSort_@plt>
  mov    0x1b8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x1c0,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D126
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D112
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D114
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D42
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D59
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D33
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D63
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D51
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D27
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D14
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D109
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D106
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D117
type_guessed: string

tool: D126: 4

tool: D112: 3

tool: D114: 2

tool: D42: 1

tool: D59: asdfd);

tool: D33: tabloid

tool: D63: elapid

tool: D51: venomous

tool: D27: curtain

tool: D14: applicable

tool: D109: innovative

tool: D106: nest

tool: D117: 5

assistant: ```c
void testQSort() {
  testQSort_((char *[]){"asdfd);", "tabloid", "elapid", "venomous", "curtain", "applicable", "applicable", "innovative", "nest"}, (int[]){5, 6, 0, 4, 2, 7, 8, 1, 3}, 9);
  testQSort_((char *[]){"1", "2", "5", "3", "4"}, (int[]){0, 1, 3, 4, 2}, 5);
  testQSort_((char *[]){"4", "2", "3", "1"}, (int[]){3, 1, 2, 0}, 4);
  testQSort_((char *[]){"1", "2", "1", "1"}, (int[]){0, 2, 3, 1}, 4);
  testQSort_((char *[]){"1", "2", "1", "1", "2", "1", "2", "2", "1", "1", "2"}, (int[]){0, 2, 3, 5, 8, 9, 1, 4, 6, 7, 10}, 11);
}
```