user: Demonstrate the C code that generates the assembly output below:

```asm
<main>:
  endbr64
  push   %rbp
  push   %rbx
  mov    %rsi,%rbx
  sub    $0x8,%rsp
  cmp    $0x1,%edi
  jle    L25
L193:
  mov    0x8(%rbx),%rbp
  lea    D137(%rip),%rdi
  xor    %eax,%eax
  mov    %rbp,%rsi
  call   <printf@plt>
  lea    D130(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L5
  call   <test1@plt>
L115:
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  ret
L5:
  lea    D50(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L201
  call   <test2@plt>
  jmp    L115
L201:
  lea    D25(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L83
  lea    D80(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L195
  call   <test4@plt>
  jmp    L115
L25:
  lea    D48(%rip),%rdi
  call   <puts@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  jmp    L193
L83:
  call   <test3@plt>
  jmp    L115
L195:
  lea    D98(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L35
  lea    D47(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L27
  call   <test6@plt>
  jmp    L115
L35:
  call   <test5@plt>
  jmp    L115
L27:
  lea    D68(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L200
  call   <test7@plt>
  jmp    L115
L200:
  lea    D51(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L52
  call   <test8@plt>
  jmp    L115
L52:
  lea    D88(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L48
  call   <test9@plt>
  jmp    L115
L48:
  lea    D93(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L26
  call   <test10@plt>
  jmp    L115
L26:
  lea    D136(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L102
  call   <test11@plt>
  jmp    L115
L102:
  lea    D64(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L215
  call   <test12@plt>
  jmp    L115
L215:
  lea    D101(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  jmp    L115
```

tool_calls: name: parse_data
arguments: data_label: D137
type_guessed: string
name: parse_data
arguments: data_label: D130
type_guessed: string
name: parse_data
arguments: data_label: D50
type_guessed: string
name: parse_data
arguments: data_label: D25
type_guessed: string
name: parse_data
arguments: data_label: D80
type_guessed: string
name: parse_data
arguments: data_label: D48
type_guessed: string
name: parse_data
arguments: data_label: D98
type_guessed: string
name: parse_data
arguments: data_label: D47
type_guessed: string
name: parse_data
arguments: data_label: D68
type_guessed: string
name: parse_data
arguments: data_label: D51
type_guessed: string
name: parse_data
arguments: data_label: D88
type_guessed: string
name: parse_data
arguments: data_label: D93
type_guessed: string
name: parse_data
arguments: data_label: D136
type_guessed: string
name: parse_data
arguments: data_label: D64
type_guessed: string
name: parse_data
arguments: data_label: D101
type_guessed: string

tool: D137: Running %s


tool: D130: test1

tool: D50: test2

tool: D25: test3

tool: D80: test4

tool: D48: Usage: test_linked_list test1|test2|...test12

tool: D98: test5

tool: D47: test6

tool: D68: test7

tool: D51: test8

tool: D88: test9

tool: D93: test10

tool: D136: test11

tool: D64: test12

tool: D101: Test not found!!n

assistant: ```c
int main(int argc, char **argv) {
  char *test;
  if (argc < 2) {
    printf("Usage: test_linked_list test1|test2|...test12\n");
    exit(1);
  }
  test = argv[1];
  printf("Running %s\n", test);
  if (strcmp(test, "test1") == 0) {
    test1();
  } else if (strcmp(test, "test2") == 0) {
    test2();
  } else if (strcmp(test, "test3") == 0) {
    test3();
  } else if (strcmp(test, "test4") == 0) {
    test4();
  } else if (strcmp(test, "test5") == 0) {
    test5();
  } else if (strcmp(test, "test6") == 0) {
    test6();
  } else if (strcmp(test, "test7") == 0) {
    test7();
  } else if (strcmp(test, "test8") == 0) {
    test8();
  } else if (strcmp(test, "test9") == 0) {
    test9();
  } else if (strcmp(test, "test10") == 0) {
    test10();
  } else if (strcmp(test, "test11") == 0) {
    test11();
  } else if (strcmp(test, "test12") == 0) {
    test12();
  } else {
    printf("Test not found!!n");
    exit(1);
  }
  return 0;
}
```