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

```asm
<wctype>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D110(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L141
  mov    $0x1,%eax
  jmp    L157
L141:
  mov    -0x8(%rbp),%rax
  lea    D37(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L92
  mov    $0x2,%eax
  jmp    L157
L92:
  mov    -0x8(%rbp),%rax
  lea    D119(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L229
  mov    $0x3,%eax
  jmp    L157
L229:
  mov    -0x8(%rbp),%rax
  lea    D76(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L183
  mov    $0x4,%eax
  jmp    L157
L183:
  mov    -0x8(%rbp),%rax
  lea    D100(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L230
  mov    $0x5,%eax
  jmp    L157
L230:
  mov    -0x8(%rbp),%rax
  lea    D74(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L64
  mov    $0x6,%eax
  jmp    L157
L64:
  mov    -0x8(%rbp),%rax
  lea    D68(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L62
  mov    $0x7,%eax
  jmp    L157
L62:
  mov    -0x8(%rbp),%rax
  lea    D26(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L169
  mov    $0x8,%eax
  jmp    L157
L169:
  mov    -0x8(%rbp),%rax
  lea    D117(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L17
  mov    $0x9,%eax
  jmp    L157
L17:
  mov    -0x8(%rbp),%rax
  lea    D66(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L97
  mov    $0xa,%eax
  jmp    L157
L97:
  mov    -0x8(%rbp),%rax
  lea    D92(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L185
  mov    $0xb,%eax
  jmp    L157
L185:
  mov    -0x8(%rbp),%rax
  lea    D78(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L235
  mov    $0xc,%eax
  jmp    L157
L235:
  mov    $0x0,%eax
L157:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D110
data_type: string
name: extract_symbolic_data
arguments: label: D37
data_type: string
name: extract_symbolic_data
arguments: label: D119
data_type: string
name: extract_symbolic_data
arguments: label: D76
data_type: string
name: extract_symbolic_data
arguments: label: D100
data_type: string
name: extract_symbolic_data
arguments: label: D74
data_type: string
name: extract_symbolic_data
arguments: label: D68
data_type: string
name: extract_symbolic_data
arguments: label: D26
data_type: string
name: extract_symbolic_data
arguments: label: D117
data_type: string
name: extract_symbolic_data
arguments: label: D66
data_type: string
name: extract_symbolic_data
arguments: label: D92
data_type: string
name: extract_symbolic_data
arguments: label: D78
data_type: string

tool: D110: alnum

tool: D37: alpha

tool: D119: blank

tool: D76: cntrl

tool: D100: digit

tool: D74: graph

tool: D68: lower

tool: D26: print

tool: D117: punct

tool: D66: space

tool: D92: upper

tool: D78: xdigit

assistant: ```c
wctype_t wctype(const char *name) {
  if (strcmp(name, "alnum") != 0)
    return 1;
  else if (strcmp(name, "alpha") == 0)
    return 2;
  else if (strcmp(name, "blank") == 0)
    return 3;
  else if (strcmp(name, "cntrl") == 0)
    return 4;
  else if (strcmp(name, "digit") == 0)
    return 5;
  else if (strcmp(name, "graph") == 0)
    return 6;
  else if (strcmp(name, "lower") == 0)
    return 7;
  else if (strcmp(name, "print") == 0)
    return 8;
  else if (strcmp(name, "punct") == 0)
    return 9;
  else if (strcmp(name, "space") == 0)
    return 10;
  else if (strcmp(name, "upper") == 0)
    return 11;
  else if (strcmp(name, "xdigit") == 0)
    return 12;
  else
    return 0;
}
```