user: 请从给定的汇编指令推导出C源代码:

```asm
<libiso_msgs__text_to_sev>:
  endbr64
  push   %r12
  mov    $0x5,%edx
  mov    $0x1,%r12d
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  mov    %rsi,%rbx
  lea    D11(%rip),%rsi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x7fffffff,%eax
  test   %r8,%r8
  jne    L127
L79:
  mov    %eax,(%rbx)
  mov    %r12d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax)
L127:
  mov    $0x5,%edx
  lea    D91(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x71000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x5,%edx
  lea    D46(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x70000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x7,%edx
  lea    D2(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x68000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x6,%edx
  lea    D86(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x64000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x5,%edx
  lea    D83(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x60000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x7,%edx
  lea    D17(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x50000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x4,%edx
  lea    D62(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x40000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x4,%edx
  lea    D66(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  mov    %rax,%r8
  mov    $0x30000000,%eax
  test   %r8,%r8
  je     L79
  mov    $0x6,%edx
  lea    D71(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L94
  mov    $0x20000000,%eax
  mov    $0x1,%r12d
  jmp    L79
L94:
  mov    $0x5,%edx
  lea    D63(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L23
  mov    $0x10000000,%eax
  mov    $0x1,%r12d
  jmp    L79
L23:
  mov    $0x7,%edx
  lea    D4(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L49
  mov    $0x8000000,%eax
  mov    $0x1,%r12d
  jmp    L79
L49:
  mov    $0x3,%edx
  lea    D114(%rip),%rsi
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <strncmp@plt>
  test   %rax,%rax
  sete   %r12b
  xor    %eax,%eax
  jmp    L79
```

tool_calls: name: unpack_data
arguments: data_tag: D11
type: string
name: unpack_data
arguments: data_tag: D91
type: string
name: unpack_data
arguments: data_tag: D46
type: string
name: unpack_data
arguments: data_tag: D2
type: string
name: unpack_data
arguments: data_tag: D86
type: string
name: unpack_data
arguments: data_tag: D83
type: string
name: unpack_data
arguments: data_tag: D17
type: string
name: unpack_data
arguments: data_tag: D62
type: string
name: unpack_data
arguments: data_tag: D66
type: string
name: unpack_data
arguments: data_tag: D71
type: string
name: unpack_data
arguments: data_tag: D63
type: string
name: unpack_data
arguments: data_tag: D4
type: string
name: unpack_data
arguments: data_tag: D114
type: string

tool: D11: NEVER

tool: D91: ABORT

tool: D46: FATAL

tool: D2: FAILURE

tool: D86: MISHAP

tool: D83: SORRY

tool: D17: WARNING

tool: D62: HINT

tool: D66: NOTE

tool: D71: UPDATE

tool: D63: DEBUG

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