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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %edi,-0x14(%rbp)
  mov    %rsi,-0x20(%rbp)
  cmpl   $0x1,-0x14(%rbp)
  jg     L237
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x1,%edi
  call   <exit@plt>
L237:
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D82(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  lea    D32(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L235
  mov    $0x0,%eax
  call   <test1@plt>
  jmp    L12
L235:
  mov    -0x8(%rbp),%rax
  lea    D13(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L137
  mov    $0x0,%eax
  call   <test2@plt>
  jmp    L12
L137:
  mov    -0x8(%rbp),%rax
  lea    D11(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L52
  mov    $0x0,%eax
  call   <test3@plt>
  jmp    L12
L52:
  mov    -0x8(%rbp),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L108
  mov    $0x0,%eax
  call   <test4@plt>
  jmp    L12
L108:
  mov    -0x8(%rbp),%rax
  lea    D95(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L50
  mov    $0x0,%eax
  call   <test5@plt>
  jmp    L12
L50:
  mov    -0x8(%rbp),%rax
  lea    D130(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L22
  mov    $0x0,%eax
  call   <test6@plt>
  jmp    L12
L22:
  mov    -0x8(%rbp),%rax
  lea    D113(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L229
  mov    $0x0,%eax
  call   <test7@plt>
  jmp    L12
L229:
  mov    -0x8(%rbp),%rax
  lea    D93(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L27
  mov    $0x0,%eax
  call   <test8@plt>
  jmp    L12
L27:
  mov    -0x8(%rbp),%rax
  lea    D133(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L8
  mov    $0x0,%eax
  call   <test9@plt>
  jmp    L12
L8:
  mov    -0x8(%rbp),%rax
  lea    D42(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L65
  mov    $0x0,%eax
  call   <test10@plt>
  jmp    L12
L65:
  mov    -0x8(%rbp),%rax
  lea    D121(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L230
  mov    $0x0,%eax
  call   <test11@plt>
  jmp    L12
L230:
  mov    -0x8(%rbp),%rax
  lea    D100(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L92
  mov    $0x0,%eax
  call   <test12@plt>
  jmp    L12
L92:
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%edi
  call   <exit@plt>
L12:
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: parse_data
arguments: tag: D120
type_guessed: string
name: parse_data
arguments: tag: D82
type_guessed: string
name: parse_data
arguments: tag: D32
type_guessed: string
name: parse_data
arguments: tag: D13
type_guessed: string
name: parse_data
arguments: tag: D11
type_guessed: string
name: parse_data
arguments: tag: D1
type_guessed: string
name: parse_data
arguments: tag: D95
type_guessed: string
name: parse_data
arguments: tag: D130
type_guessed: string
name: parse_data
arguments: tag: D113
type_guessed: string
name: parse_data
arguments: tag: D93
type_guessed: string
name: parse_data
arguments: tag: D133
type_guessed: string
name: parse_data
arguments: tag: D42
type_guessed: string
name: parse_data
arguments: tag: D121
type_guessed: string
name: parse_data
arguments: tag: D100
type_guessed: string
name: parse_data
arguments: tag: D21
type_guessed: string

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

tool: D82: Running %s


tool: D32: test1

tool: D13: test2

tool: D11: test3

tool: D1: test4

tool: D95: test5

tool: D130: test6

tool: D113: test7

tool: D93: test8

tool: D133: test9

tool: D42: test10

tool: D121: test11

tool: D100: test12

tool: D21: 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;
}
```