user: What is the c source code of the assembly code below?

```asm
<rxvm_print_err>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %edi,-0x14(%rbp)
  mov    -0x14(%rbp),%eax
  add    $0x10,%eax
  cmp    $0xf,%eax
  ja     L6
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D176(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D176(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D116(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D188(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D146(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D100(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D162(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D163(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D151(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D56(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D164(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D178(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D23(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D96(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D63(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D111(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D11(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
  lea    D15(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L134
L6:
  lea    D41(%rip),%rax
  mov    %rax,-0x8(%rbp)
L134:
  mov    -0x8(%rbp),%rdx
  mov    -0x14(%rbp),%eax
  mov    %eax,%esi
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D116
type_infered: string
name: parse_data
arguments: data_label: D188
type_infered: string
name: parse_data
arguments: data_label: D146
type_infered: string
name: parse_data
arguments: data_label: D100
type_infered: string
name: parse_data
arguments: data_label: D162
type_infered: string
name: parse_data
arguments: data_label: D163
type_infered: string
name: parse_data
arguments: data_label: D151
type_infered: string
name: parse_data
arguments: data_label: D56
type_infered: string
name: parse_data
arguments: data_label: D164
type_infered: string
name: parse_data
arguments: data_label: D178
type_infered: string
name: parse_data
arguments: data_label: D23
type_infered: string
name: parse_data
arguments: data_label: D96
type_infered: string
name: parse_data
arguments: data_label: D63
type_infered: string
name: parse_data
arguments: data_label: D111
type_infered: string
name: parse_data
arguments: data_label: D11
type_infered: string
name: parse_data
arguments: data_label: D15
type_infered: string
name: parse_data
arguments: data_label: D41
type_infered: string
name: parse_data
arguments: data_label: D73
type_infered: string

tool: D116: Operator used incorrectly

tool: D188: Unexpected character class closing character

tool: D146: Unexpected closing repetition character

tool: D100: Unexpected parenthesis group closing character

tool: D162: Unterminated parenthesis group

tool: D163: Unterminated character class

tool: D151: Missing repetition closing character

tool: D56: Incomplete character range inside character class

tool: D164: Invalid extra comma inside repetition

tool: D178: Non-numerical character inside repetition

tool: D23: Empty repetition

tool: D96: Trailing escape character

tool: D63: Invalid symbol

tool: D111: Failed to allocate memory

tool: D11: Invalid parameter passed to library function

tool: D15: rxvm_fsearch can't read from supplied FILE pointer

tool: D41: Unrecognised error code

tool: D73: Error %d: %s


assistant: ```c
void rxvm_print_err(int err) {
  const char *msg;
  switch (err) {
  case -1:
    msg = "Operator used incorrectly";
    break;
  case -2:
    msg = "Unexpected character class closing character";
    break;
  case -3:
    msg = "Unexpected closing repetition character";
    break;
  case -4:
    msg = "Unexpected parenthesis group closing character";
    break;
  case -5:
    msg = "Unterminated parenthesis group";
    break;
  case -6:
    msg = "Unterminated character class";
    break;
  case -7:
    msg = "Missing repetition closing character";
    break;
  case -8:
    msg = "Incomplete character range inside character class";
    break;
  case -9:
    msg = "Invalid extra comma inside repetition";
    break;
  case -10:
    msg = "Non-numerical character inside repetition";
    break;
  case -11:
    msg = "Empty repetition";
    break;
  case -12:
    msg = "Trailing escape character";
    break;
  case -13:
    msg = "Invalid symbol";
    break;
  case -14:
    msg = "Failed to allocate memory";
    break;
  case -15:
    msg = "Invalid parameter passed to library function";
    break;
  case -16:
    msg = "rxvm_fsearch can't read from supplied FILE pointer";
    break;
  default:
    msg = "Unrecognised error code";
  }
  printf("Error %d: %s\n", err, msg);
}
```