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

```asm
<wcscsys>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x4a,%al
  je     L90
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x6a,%al
  je     L90
  mov    -0x8(%rbp),%rax
  lea    D29(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L90
  mov    -0x8(%rbp),%rax
  lea    D88(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L90
  mov    -0x8(%rbp),%rax
  lea    D87(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L90
  mov    -0x8(%rbp),%rax
  lea    D19(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L90
  mov    -0x8(%rbp),%rax
  mov    $0x3,%edx
  lea    D67(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L90
  mov    -0x8(%rbp),%rax
  mov    $0x3,%edx
  lea    D4(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L86
L90:
  mov    $0x1,%eax
  jmp    L111
L86:
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x42,%al
  je     L290
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x62,%al
  je     L290
  mov    -0x8(%rbp),%rax
  lea    D21(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L290
  mov    -0x8(%rbp),%rax
  lea    D92(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L290
  mov    -0x8(%rbp),%rax
  mov    $0x3,%edx
  lea    D6(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L290
  mov    -0x8(%rbp),%rax
  mov    $0x3,%edx
  lea    D40(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L243
L290:
  mov    $0x2,%eax
  jmp    L111
L243:
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x47,%al
  je     L237
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x67,%al
  jne    L145
L237:
  mov    $0x3,%eax
  jmp    L111
L145:
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x45,%al
  je     L151
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L155
L151:
  mov    $0x4,%eax
  jmp    L111
L155:
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x41,%al
  je     L30
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x61,%al
  jne    L44
L30:
  mov    $0x5,%eax
  jmp    L111
L44:
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x4e,%al
  je     L225
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L31
L225:
  mov    $0x7,%eax
  jmp    L111
L31:
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x4c,%al
  je     L138
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x6c,%al
  jne    L114
L138:
  mov    $0x6,%eax
  jmp    L111
L114:
  mov    $0xffffffff,%eax
L111:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D29
type: string
name: unpack_data
arguments: data_tag: D88
type: string
name: unpack_data
arguments: data_tag: D87
type: string
name: unpack_data
arguments: data_tag: D19
type: string
name: unpack_data
arguments: data_tag: D67
type: string
name: unpack_data
arguments: data_tag: D4
type: string
name: unpack_data
arguments: data_tag: D21
type: string
name: unpack_data
arguments: data_tag: D92
type: string
name: unpack_data
arguments: data_tag: D6
type: string
name: unpack_data
arguments: data_tag: D40
type: string

tool: D29: 2000

tool: D88: 2000.0

tool: D87: ICRS

tool: D19: icrs

tool: D67: FK5

tool: D4: fk5

tool: D21: 1950

tool: D92: 1950.0

tool: D6: FK4

tool: D40: fk4

assistant: ```c
int wcscsys(char *wcstring) {
  if (wcstring[0] == 'J' || wcstring[0] == 'j' || !strcmp(wcstring, "2000") || !strcmp(wcstring, "2000.0") || !strcmp(wcstring, "ICRS") || !strcmp(wcstring, "icrs") || !strncmp(wcstring, "FK5", 3) || !strncmp(wcstring, "fk5", 3))
    return 1;
  if (wcstring[0] == 'B' || wcstring[0] == 'b' || !strcmp(wcstring, "1950") || !strcmp(wcstring, "1950.0") || !strncmp(wcstring, "FK4", 3) || !strncmp(wcstring, "fk4", 3))
    return 2;
  else if (wcstring[0] == 'G' || wcstring[0] == 'g')
    return 3;
  else if (wcstring[0] == 'E' || wcstring[0] == 'e')
    return 4;
  else if (wcstring[0] == 'A' || wcstring[0] == 'a')
    return 5;
  else if (wcstring[0] == 'N' || wcstring[0] == 'n')
    return 7;
  else if (wcstring[0] == 'L' || wcstring[0] == 'l')
    return 6;
  else
    return -1;
}
```