user: Please show me the C implementation that matches the assembly code listed below:

```asm
<audio_out_format_name>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  cmpl   $0x100000,-0x4(%rbp)
  je     L36
  cmpl   $0x100000,-0x4(%rbp)
  jg     L77
  cmpl   $0x40000,-0x4(%rbp)
  je     L257
  cmpl   $0x40000,-0x4(%rbp)
  jg     L77
  cmpl   $0x20000,-0x4(%rbp)
  je     L172
  cmpl   $0x20000,-0x4(%rbp)
  jg     L77
  cmpl   $0x10000,-0x4(%rbp)
  je     L496
  cmpl   $0x10000,-0x4(%rbp)
  jg     L77
  cmpl   $0x8000,-0x4(%rbp)
  je     L48
  cmpl   $0x8000,-0x4(%rbp)
  jg     L77
  cmpl   $0x4000,-0x4(%rbp)
  je     L161
  cmpl   $0x4000,-0x4(%rbp)
  jg     L77
  cmpl   $0x2000,-0x4(%rbp)
  je     L124
  cmpl   $0x2000,-0x4(%rbp)
  jg     L77
  cmpl   $0x1000,-0x4(%rbp)
  je     L49
  cmpl   $0x1000,-0x4(%rbp)
  jg     L77
  cmpl   $0x800,-0x4(%rbp)
  je     L13
  cmpl   $0x800,-0x4(%rbp)
  jg     L77
  cmpl   $0x400,-0x4(%rbp)
  je     L483
  cmpl   $0x400,-0x4(%rbp)
  jg     L77
  cmpl   $0x200,-0x4(%rbp)
  je     L336
  cmpl   $0x200,-0x4(%rbp)
  jg     L77
  cmpl   $0x100,-0x4(%rbp)
  je     L481
  cmpl   $0x100,-0x4(%rbp)
  jg     L77
  cmpl   $0x80,-0x4(%rbp)
  je     L362
  cmpl   $0x80,-0x4(%rbp)
  jg     L77
  cmpl   $0x20,-0x4(%rbp)
  jg     L428
  cmpl   $0x0,-0x4(%rbp)
  jle    L77
  cmpl   $0x20,-0x4(%rbp)
  ja     L77
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D128(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D128(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L428:
  cmpl   $0x40,-0x4(%rbp)
  je     L73
  jmp    L77
  lea    D167(%rip),%rax
  jmp    L489
  lea    D114(%rip),%rax
  jmp    L489
  lea    D43(%rip),%rax
  jmp    L489
L73:
  lea    D38(%rip),%rax
  jmp    L489
  lea    D78(%rip),%rax
  jmp    L489
L362:
  lea    D138(%rip),%rax
  jmp    L489
L481:
  lea    D200(%rip),%rax
  jmp    L489
  lea    D139(%rip),%rax
  jmp    L489
  lea    D20(%rip),%rax
  jmp    L489
L336:
  lea    D70(%rip),%rax
  jmp    L489
L483:
  lea    D132(%rip),%rax
  jmp    L489
L172:
  lea    D198(%rip),%rax
  jmp    L489
L257:
  lea    D219(%rip),%rax
  jmp    L489
L48:
  lea    D149(%rip),%rax
  jmp    L489
L496:
  lea    D218(%rip),%rax
  jmp    L489
L124:
  lea    D211(%rip),%rax
  jmp    L489
L161:
  lea    D49(%rip),%rax
  jmp    L489
L13:
  lea    D39(%rip),%rax
  jmp    L489
L49:
  lea    D183(%rip),%rax
  jmp    L489
L36:
  lea    D197(%rip),%rax
  jmp    L489
L77:
  lea    D75(%rip),%rax
L489:
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D167
type: string
name: disassemble_data
arguments: data_label: D114
type: string
name: disassemble_data
arguments: data_label: D43
type: string
name: disassemble_data
arguments: data_label: D38
type: string
name: disassemble_data
arguments: data_label: D78
type: string
name: disassemble_data
arguments: data_label: D138
type: string
name: disassemble_data
arguments: data_label: D200
type: string
name: disassemble_data
arguments: data_label: D139
type: string
name: disassemble_data
arguments: data_label: D20
type: string
name: disassemble_data
arguments: data_label: D70
type: string
name: disassemble_data
arguments: data_label: D132
type: string
name: disassemble_data
arguments: data_label: D198
type: string
name: disassemble_data
arguments: data_label: D219
type: string
name: disassemble_data
arguments: data_label: D149
type: string
name: disassemble_data
arguments: data_label: D218
type: string
name: disassemble_data
arguments: data_label: D211
type: string
name: disassemble_data
arguments: data_label: D49
type: string
name: disassemble_data
arguments: data_label: D39
type: string
name: disassemble_data
arguments: data_label: D183
type: string
name: disassemble_data
arguments: data_label: D197
type: string
name: disassemble_data
arguments: data_label: D75
type: string

tool: D167: Mu-Law

tool: D114: A-Law

tool: D43: Ima-ADPCM

tool: D38: Signed 8-bit

tool: D78: Unsigned 8-bit

tool: D138: Unsigned 16-bit (Little-Endian)

tool: D200: Unsigned 16-bit (Big-Endian)

tool: D139: Signed 16-bit (Little-Endian)

tool: D20: Signed 16-bit (Big-Endian)

tool: D70: MPEG (2) audio

tool: D132: AC3

tool: D198: Unsigned 32-bit (Little-Endian)

tool: D219: Unsigned 32-bit (Big-Endian)

tool: D149: Signed 32-bit (Little-Endian)

tool: D218: Signed 32-bit (Big-Endian)

tool: D211: Unsigned 24-bit (Little-Endian)

tool: D49: Unsigned 24-bit (Big-Endian)

tool: D39: Signed 24-bit (Little-Endian)

tool: D183: Signed 24-bit (Big-Endian)

tool: D197: Floating Point

tool: D75: Unknown

assistant: ```c
char *audio_out_format_name(int format) {
  switch (format) {
  case 0x00000001:
    return ("Mu-Law");
  case 0x00000002:
    return ("A-Law");
  case 0x00000004:
    return ("Ima-ADPCM");
  case 0x00000040:
    return ("Signed 8-bit");
  case 0x00000008:
    return ("Unsigned 8-bit");
  case 0x00000080:
    return ("Unsigned 16-bit (Little-Endian)");
  case 0x00000100:
    return ("Unsigned 16-bit (Big-Endian)");
  case 0x00000010:
    return ("Signed 16-bit (Little-Endian)");
  case 0x00000020:
    return ("Signed 16-bit (Big-Endian)");
  case 0x00000200:
    return ("MPEG (2) audio");
  case 0x00000400:
    return ("AC3");
  case 0x00020000:
    return ("Unsigned 32-bit (Little-Endian)");
  case 0x00040000:
    return ("Unsigned 32-bit (Big-Endian)");
  case 0x00008000:
    return ("Signed 32-bit (Little-Endian)");
  case 0x00010000:
    return ("Signed 32-bit (Big-Endian)");
  case 0x00002000:
    return ("Unsigned 24-bit (Little-Endian)");
  case 0x00004000:
    return ("Unsigned 24-bit (Big-Endian)");
  case 0x00000800:
    return ("Signed 24-bit (Little-Endian)");
  case 0x00001000:
    return ("Signed 24-bit (Big-Endian)");
  case 0x00100000:
    return ("Floating Point");
  }
  return ("Unknown");
}
```