user: What would the C source look like for the assembly code provided here?

```asm
<mode_name>:
  endbr64
  cmp    $0x16,%edi
  ja     L2
  mov    %edi,%edi
  lea    D204(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D164(%rip),%rax
  ret
  lea    D186(%rip),%rax
  ret
  lea    D93(%rip),%rax
  ret
  lea    D184(%rip),%rax
  ret
  lea    D132(%rip),%rax
  ret
  lea    D157(%rip),%rax
  ret
  lea    D134(%rip),%rax
  ret
  lea    D221(%rip),%rax
  ret
  lea    D51(%rip),%rax
  ret
  lea    D63(%rip),%rax
  ret
  lea    D17(%rip),%rax
  ret
  lea    D156(%rip),%rax
  ret
  lea    D191(%rip),%rax
  ret
  lea    D158(%rip),%rax
  ret
  lea    D72(%rip),%rax
  ret
  lea    D85(%rip),%rax
  ret
  lea    D117(%rip),%rax
  ret
  lea    D2(%rip),%rax
  ret
  lea    D104(%rip),%rax
  ret
  lea    D113(%rip),%rax
  ret
  lea    D106(%rip),%rax
  ret
L2:
  lea    D80(%rip),%rax
  ret
  lea    D67(%rip),%rax
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D164
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D186
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D93
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D184
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D132
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D157
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D134
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D221
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D51
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D63
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D17
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D156
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D191
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D158
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D72
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D85
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D117
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D2
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D104
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D113
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D106
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D80
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D67
type_infered: string

tool: D164: High Impedance

tool: D186: Digital Input

tool: D93: Digital Output

tool: D184: Analog Input

tool: D132: Analog Output

tool: D157: PWM

tool: D134: Servo

tool: D221: UART Transmit

tool: D51: UART Receive

tool: D63: SPI MOSI

tool: D17: SPI MISO

tool: D156: SPI SCK

tool: D191: Counter Input INT

tool: D158: Counter Input DIR

tool: D72: Counter Input HOME

tool: D85: Counter Output INT

tool: D117: Counter Output DIR

tool: D2: Counter Output HOME

tool: D104: DC Motor VEL

tool: D113: DC Motor DIR

tool: D106: PPM Input

tool: D80: UNKNOWN

tool: D67: No Change

assistant: ```c
const char *mode_name(int mode) {
  switch (mode) {
  case 0x00:
    return "No Change";
  case 0x01:
    return "High Impedance";
  case 0x02:
    return "Digital Input";
  case 0x03:
    return "Digital Output";
  case 0x04:
    return "Analog Input";
  case 0x05:
    return "Analog Output";
  case 0x06:
    return "PWM";
  case 0x07:
    return "Servo";
  case 0x08:
    return "UART Transmit";
  case 0x09:
    return "UART Receive";
  case 0x0A:
    return "SPI MOSI";
  case 0x0B:
    return "SPI MISO";
  case 0x0C:
    return "SPI SCK";
  case 0x0E:
    return "Counter Input INT";
  case 0x0F:
    return "Counter Input DIR";
  case 0x10:
    return "Counter Input HOME";
  case 0x11:
    return "Counter Output INT";
  case 0x12:
    return "Counter Output DIR";
  case 0x13:
    return "Counter Output HOME";
  case 0x14:
    return "DC Motor VEL";
  case 0x15:
    return "DC Motor DIR";
  case 0x16:
    return "PPM Input";
  default:
    return "UNKNOWN";
  }
}
```