user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<mode_name>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  cmpl   $0x16,-0x4(%rbp)
  ja     L122
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D179(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D179(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D185(%rip),%rax
  jmp    L164
  lea    D189(%rip),%rax
  jmp    L164
  lea    D178(%rip),%rax
  jmp    L164
  lea    D13(%rip),%rax
  jmp    L164
  lea    D160(%rip),%rax
  jmp    L164
  lea    D167(%rip),%rax
  jmp    L164
  lea    D93(%rip),%rax
  jmp    L164
  lea    D214(%rip),%rax
  jmp    L164
  lea    D120(%rip),%rax
  jmp    L164
  lea    D27(%rip),%rax
  jmp    L164
  lea    D199(%rip),%rax
  jmp    L164
  lea    D205(%rip),%rax
  jmp    L164
  lea    D184(%rip),%rax
  jmp    L164
  lea    D228(%rip),%rax
  jmp    L164
  lea    D173(%rip),%rax
  jmp    L164
  lea    D132(%rip),%rax
  jmp    L164
  lea    D237(%rip),%rax
  jmp    L164
  lea    D71(%rip),%rax
  jmp    L164
  lea    D113(%rip),%rax
  jmp    L164
  lea    D84(%rip),%rax
  jmp    L164
  lea    D148(%rip),%rax
  jmp    L164
  lea    D144(%rip),%rax
  jmp    L164
L122:
  lea    D175(%rip),%rax
L164:
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D185
data_type: string
name: retrieve_data
arguments: data_tag: D189
data_type: string
name: retrieve_data
arguments: data_tag: D178
data_type: string
name: retrieve_data
arguments: data_tag: D13
data_type: string
name: retrieve_data
arguments: data_tag: D160
data_type: string
name: retrieve_data
arguments: data_tag: D167
data_type: string
name: retrieve_data
arguments: data_tag: D93
data_type: string
name: retrieve_data
arguments: data_tag: D214
data_type: string
name: retrieve_data
arguments: data_tag: D120
data_type: string
name: retrieve_data
arguments: data_tag: D27
data_type: string
name: retrieve_data
arguments: data_tag: D199
data_type: string
name: retrieve_data
arguments: data_tag: D205
data_type: string
name: retrieve_data
arguments: data_tag: D184
data_type: string
name: retrieve_data
arguments: data_tag: D228
data_type: string
name: retrieve_data
arguments: data_tag: D173
data_type: string
name: retrieve_data
arguments: data_tag: D132
data_type: string
name: retrieve_data
arguments: data_tag: D237
data_type: string
name: retrieve_data
arguments: data_tag: D71
data_type: string
name: retrieve_data
arguments: data_tag: D113
data_type: string
name: retrieve_data
arguments: data_tag: D84
data_type: string
name: retrieve_data
arguments: data_tag: D148
data_type: string
name: retrieve_data
arguments: data_tag: D144
data_type: string
name: retrieve_data
arguments: data_tag: D175
data_type: string

tool: D185: No Change

tool: D189: High Impedance

tool: D178: Digital Input

tool: D13: Digital Output

tool: D160: Analog Input

tool: D167: Analog Output

tool: D93: PWM

tool: D214: Servo

tool: D120: UART Transmit

tool: D27: UART Receive

tool: D199: SPI MOSI

tool: D205: SPI MISO

tool: D184: SPI SCK

tool: D228: Counter Input INT

tool: D173: Counter Input DIR

tool: D132: Counter Input HOME

tool: D237: Counter Output INT

tool: D71: Counter Output DIR

tool: D113: Counter Output HOME

tool: D84: DC Motor VEL

tool: D148: DC Motor DIR

tool: D144: PPM Input

tool: D175: UNKNOWN

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";
  }
}
```