user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<libiso_msgs__text_to_sev>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %rdi,%rbx
  mov    %rsi,%rbp
  mov    $0x5,%edx
  lea    D105(%rip),%rsi
  call   <strncmp@plt>
  mov    %rax,%rcx
  mov    $0x7fffffff,%edx
  mov    $0x1,%eax
  test   %rcx,%rcx
  jne    L31
L104:
  mov    %edx,0x0(%rbp)
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
L31:
  mov    $0x5,%edx
  lea    D18(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  mov    %rax,%rcx
  mov    $0x71000000,%edx
  mov    $0x1,%eax
  test   %rcx,%rcx
  je     L104
  mov    $0x5,%edx
  lea    D27(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  mov    %rax,%rcx
  mov    $0x70000000,%edx
  mov    $0x1,%eax
  test   %rcx,%rcx
  je     L104
  mov    $0x7,%edx
  lea    D83(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  mov    %rax,%rcx
  mov    $0x68000000,%edx
  mov    $0x1,%eax
  test   %rcx,%rcx
  je     L104
  mov    $0x6,%edx
  lea    D73(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  mov    %rax,%rcx
  mov    $0x64000000,%edx
  mov    $0x1,%eax
  test   %rcx,%rcx
  je     L104
  mov    $0x5,%edx
  lea    D112(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  mov    %rax,%rcx
  mov    $0x60000000,%edx
  mov    $0x1,%eax
  test   %rcx,%rcx
  je     L104
  mov    $0x7,%edx
  lea    D0(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  mov    %rax,%rcx
  mov    $0x50000000,%edx
  mov    $0x1,%eax
  test   %rcx,%rcx
  je     L104
  mov    $0x4,%edx
  lea    D15(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L95
  mov    $0x40000000,%edx
  mov    $0x1,%eax
  jmp    L104
L95:
  mov    $0x4,%edx
  lea    D92(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L37
  mov    $0x30000000,%edx
  mov    $0x1,%eax
  jmp    L104
L37:
  mov    $0x6,%edx
  lea    D70(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L52
  mov    $0x20000000,%edx
  mov    $0x1,%eax
  jmp    L104
L52:
  mov    $0x5,%edx
  lea    D102(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L35
  mov    $0x10000000,%edx
  mov    $0x1,%eax
  jmp    L104
L35:
  mov    $0x7,%edx
  lea    D2(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L49
  mov    $0x8000000,%edx
  mov    $0x1,%eax
  jmp    L104
L49:
  mov    $0x3,%edx
  lea    D114(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  mov    $0x0,%edx
  jmp    L104
```

tool_calls: name: retrieve_data
arguments: tag: D105
type_guessed: string
name: retrieve_data
arguments: tag: D18
type_guessed: string
name: retrieve_data
arguments: tag: D27
type_guessed: string
name: retrieve_data
arguments: tag: D83
type_guessed: string
name: retrieve_data
arguments: tag: D73
type_guessed: string
name: retrieve_data
arguments: tag: D112
type_guessed: string
name: retrieve_data
arguments: tag: D0
type_guessed: string
name: retrieve_data
arguments: tag: D15
type_guessed: string
name: retrieve_data
arguments: tag: D92
type_guessed: string
name: retrieve_data
arguments: tag: D70
type_guessed: string
name: retrieve_data
arguments: tag: D102
type_guessed: string
name: retrieve_data
arguments: tag: D2
type_guessed: string
name: retrieve_data
arguments: tag: D114
type_guessed: string

tool: D105: NEVER

tool: D18: ABORT

tool: D27: FATAL

tool: D83: FAILURE

tool: D73: MISHAP

tool: D112: SORRY

tool: D0: WARNING

tool: D15: HINT

tool: D92: NOTE

tool: D70: UPDATE

tool: D102: DEBUG

tool: D2: ERRFILE

tool: D114: ALL

assistant: ```c
int libiso_msgs__text_to_sev(char *severity_name, int *severity, int flag) {
  if (strncmp(severity_name, "NEVER", 5) == 0)
    *severity = 0x7fffffff;
  else if (strncmp(severity_name, "ABORT", 5) == 0)
    *severity = 0x71000000;
  else if (strncmp(severity_name, "FATAL", 5) == 0)
    *severity = 0x70000000;
  else if (strncmp(severity_name, "FAILURE", 7) == 0)
    *severity = 0x68000000;
  else if (strncmp(severity_name, "MISHAP", 6) == 0)
    *severity = 0x64000000;
  else if (strncmp(severity_name, "SORRY", 5) == 0)
    *severity = 0x60000000;
  else if (strncmp(severity_name, "WARNING", 7) == 0)
    *severity = 0x50000000;
  else if (strncmp(severity_name, "HINT", 4) == 0)
    *severity = 0x40000000;
  else if (strncmp(severity_name, "NOTE", 4) == 0)
    *severity = 0x30000000;
  else if (strncmp(severity_name, "UPDATE", 6) == 0)
    *severity = 0x20000000;
  else if (strncmp(severity_name, "DEBUG", 5) == 0)
    *severity = 0x10000000;
  else if (strncmp(severity_name, "ERRFILE", 7) == 0)
    *severity = 0x08000000;
  else if (strncmp(severity_name, "ALL", 3) == 0)
    *severity = 0x00000000;
  else {
    *severity = 0x00000000;
    return (0);
  }
  return (1);
}
```