user: Demonstrate the C code that generates the assembly output below:

```asm
<mus_header_data_format2string>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cmp    $0x16,%eax
  ja     L109
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D124(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D124(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D228(%rip),%rax
  jmp    L154
  lea    D93(%rip),%rax
  jmp    L154
  lea    D85(%rip),%rax
  jmp    L154
  lea    D205(%rip),%rax
  jmp    L154
  lea    D192(%rip),%rax
  jmp    L154
  lea    D212(%rip),%rax
  jmp    L154
  lea    D141(%rip),%rax
  jmp    L154
  lea    D90(%rip),%rax
  jmp    L154
  lea    D70(%rip),%rax
  jmp    L154
  lea    D156(%rip),%rax
  jmp    L154
  lea    D238(%rip),%rax
  jmp    L154
  lea    D61(%rip),%rax
  jmp    L154
  lea    D87(%rip),%rax
  jmp    L154
  lea    D132(%rip),%rax
  jmp    L154
  lea    D43(%rip),%rax
  jmp    L154
  lea    D220(%rip),%rax
  jmp    L154
  lea    D235(%rip),%rax
  jmp    L154
  lea    D214(%rip),%rax
  jmp    L154
  lea    D133(%rip),%rax
  jmp    L154
  lea    D177(%rip),%rax
  jmp    L154
  lea    D13(%rip),%rax
  jmp    L154
  lea    D105(%rip),%rax
  jmp    L154
  lea    D227(%rip),%rax
  jmp    L154
L109:
  lea    D8(%rip),%rax
L154:
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D228
type_infered: string
name: retrieve_data
arguments: data_label: D93
type_infered: string
name: retrieve_data
arguments: data_label: D85
type_infered: string
name: retrieve_data
arguments: data_label: D205
type_infered: string
name: retrieve_data
arguments: data_label: D192
type_infered: string
name: retrieve_data
arguments: data_label: D212
type_infered: string
name: retrieve_data
arguments: data_label: D141
type_infered: string
name: retrieve_data
arguments: data_label: D90
type_infered: string
name: retrieve_data
arguments: data_label: D70
type_infered: string
name: retrieve_data
arguments: data_label: D156
type_infered: string
name: retrieve_data
arguments: data_label: D238
type_infered: string
name: retrieve_data
arguments: data_label: D61
type_infered: string
name: retrieve_data
arguments: data_label: D87
type_infered: string
name: retrieve_data
arguments: data_label: D132
type_infered: string
name: retrieve_data
arguments: data_label: D43
type_infered: string
name: retrieve_data
arguments: data_label: D220
type_infered: string
name: retrieve_data
arguments: data_label: D235
type_infered: string
name: retrieve_data
arguments: data_label: D214
type_infered: string
name: retrieve_data
arguments: data_label: D133
type_infered: string
name: retrieve_data
arguments: data_label: D177
type_infered: string
name: retrieve_data
arguments: data_label: D13
type_infered: string
name: retrieve_data
arguments: data_label: D105
type_infered: string
name: retrieve_data
arguments: data_label: D227
type_infered: string
name: retrieve_data
arguments: data_label: D8
type_infered: string

tool: D228: unsupported

tool: D93: no_snd

tool: D85: 16-bit big endian

tool: D205: mulaw

tool: D192: 8-bit

tool: D212: 32-bit big endian float

tool: D141: 32-bit big endian

tool: D90: alaw

tool: D70: 8-bit unsigned

tool: D156: 24-bit big endian

tool: D238: 64-bit big endian double

tool: D61: 16-bit little endian

tool: D87: 32-bit little endian

tool: D132: 32-bit little endian float

tool: D43: 64-bit little endian double

tool: D220: 16-bit big endian unsigned

tool: D235: 16-bit little endian unsigned

tool: D214: 12-bit big endian unsigned

tool: D133: 12-bit little endian unsigned

tool: D177: 12-bit big endian

tool: D13: 12-bit little endian

tool: D105: 24-bit little endian

tool: D227: vax float

tool: D8: unknown

assistant: ```c
char *mus_header_data_format2string(int format) {
  switch (format) {
  case -1:
    return ("unsupported");
    break;
  case 0:
    return ("no_snd");
    break;
  case 1:
    return ("16-bit big endian");
    break;
  case 2:
    return ("mulaw");
    break;
  case 3:
    return ("8-bit");
    break;
  case 4:
    return ("32-bit big endian float");
    break;
  case 5:
    return ("32-bit big endian");
    break;
  case 6:
    return ("alaw");
    break;
  case 7:
    return ("8-bit unsigned");
    break;
  case 8:
    return ("24-bit big endian");
    break;
  case 9:
    return ("64-bit big endian double");
    break;
  case 10:
    return ("16-bit little endian");
    break;
  case 11:
    return ("32-bit little endian");
    break;
  case 12:
    return ("32-bit little endian float");
    break;
  case 13:
    return ("64-bit little endian double");
    break;
  case 14:
    return ("16-bit big endian unsigned");
    break;
  case 15:
    return ("16-bit little endian unsigned");
    break;
  case 20:
    return ("12-bit big endian unsigned");
    break;
  case 21:
    return ("12-bit little endian unsigned");
    break;
  case 18:
    return ("12-bit big endian");
    break;
  case 19:
    return ("12-bit little endian");
    break;
  case 16:
    return ("24-bit little endian");
    break;
  case 17:
    return ("vax float");
    break;
  default:
    return ("unknown");
    break;
  }
}
```