user: 这段汇编代码用C语言表示是什么样的:

```asm
<toylog_convert_priority>:
  endbr64
  push   %rbp
  lea    D97(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x1,%eax
  test   %r8,%r8
  jne    L2
L95:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L2:
  lea    D17(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x2,%eax
  test   %r8,%r8
  je     L95
  lea    D86(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x4,%eax
  test   %r8,%r8
  je     L95
  lea    D39(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x8,%eax
  test   %r8,%r8
  je     L95
  lea    D38(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x10,%eax
  test   %r8,%r8
  je     L95
  lea    D79(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x20,%eax
  test   %r8,%r8
  je     L95
  lea    D59(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x40,%eax
  test   %r8,%r8
  je     L95
  lea    D104(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x80,%eax
  test   %r8,%r8
  je     L95
  lea    D13(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x100,%eax
  test   %r8,%r8
  je     L95
  lea    D27(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x200,%eax
  test   %r8,%r8
  je     L95
  mov    %rbp,%rdi
  lea    D83(%rip),%rsi
  call   <strcasecmp@plt>
  pop    %rbp
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x401,%eax
  sub    $0x1,%eax
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D97
datatype: string
name: parse_data
arguments: data_tag: D17
datatype: string
name: parse_data
arguments: data_tag: D86
datatype: string
name: parse_data
arguments: data_tag: D39
datatype: string
name: parse_data
arguments: data_tag: D38
datatype: string
name: parse_data
arguments: data_tag: D79
datatype: string
name: parse_data
arguments: data_tag: D59
datatype: string
name: parse_data
arguments: data_tag: D104
datatype: string
name: parse_data
arguments: data_tag: D13
datatype: string
name: parse_data
arguments: data_tag: D27
datatype: string
name: parse_data
arguments: data_tag: D83
datatype: string

tool: D97: FATAL

tool: D17: ALERT

tool: D86: CRIT

tool: D39: ERROR

tool: D38: WARN

tool: D79: NOTICE

tool: D59: INFO

tool: D104: DEBUG

tool: D13: RACE

tool: D27: NOTSET

tool: D83: UNKNOWN

assistant: ```c
int toylog_convert_priority(const char *priority) {
  if (strcasecmp(priority, "FATAL") == 0) {
    return (1 << 0);
  }
  if (strcasecmp(priority, "ALERT") == 0) {
    return (1 << 1);
  }
  if (strcasecmp(priority, "CRIT") == 0) {
    return (1 << 2);
  }
  if (strcasecmp(priority, "ERROR") == 0) {
    return (1 << 3);
  }
  if (strcasecmp(priority, "WARN") == 0) {
    return (1 << 4);
  }
  if (strcasecmp(priority, "NOTICE") == 0) {
    return (1 << 5);
  }
  if (strcasecmp(priority, "INFO") == 0) {
    return (1 << 6);
  }
  if (strcasecmp(priority, "DEBUG") == 0) {
    return (1 << 7);
  }
  if (strcasecmp(priority, "RACE") == 0) {
    return (1 << 8);
  }
  if (strcasecmp(priority, "NOTSET") == 0) {
    return (1 << 9);
  }
  if (strcasecmp(priority, "UNKNOWN") == 0) {
    return (1 << 10);
  }
  return -1;
}
```