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

```asm
<get_telnet_option>:
  endbr64
  lea    D249(%rip),%rax
  cmp    $0x80,%dil
  je     L5
  cmp    $0x70,%dil
  ja     L2
  ja     L2
  movzbl %dil,%eax
  lea    D349(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D61(%rip),%rax
  ret
  lea    D289(%rip),%rax
  ret
  lea    D183(%rip),%rax
  ret
  lea    D192(%rip),%rax
  ret
  lea    D49(%rip),%rax
  ret
  lea    D343(%rip),%rax
  ret
  lea    D123(%rip),%rax
  ret
  lea    D123(%rip),%rax
  ret
  lea    D301(%rip),%rax
  ret
  lea    D141(%rip),%rax
  ret
  lea    D42(%rip),%rax
  ret
  lea    D131(%rip),%rax
  ret
  lea    D164(%rip),%rax
  ret
  lea    D207(%rip),%rax
  ret
  lea    D226(%rip),%rax
  ret
  lea    D7(%rip),%rax
  ret
  lea    D179(%rip),%rax
  ret
  lea    D112(%rip),%rax
  ret
  lea    D63(%rip),%rax
  ret
  lea    D188(%rip),%rax
  ret
  lea    D79(%rip),%rax
  ret
  lea    D308(%rip),%rax
  ret
  lea    D203(%rip),%rax
  ret
  lea    D201(%rip),%rax
  ret
  lea    D271(%rip),%rax
  ret
  lea    D232(%rip),%rax
  ret
  lea    D214(%rip),%rax
  ret
  lea    D168(%rip),%rax
  ret
  lea    D16(%rip),%rax
  ret
  lea    D234(%rip),%rax
  ret
  lea    D345(%rip),%rax
  ret
  lea    D170(%rip),%rax
  ret
L2:
  push   %rbx
  movsbl %dil,%edx
  lea    D116(%rip),%rsi
  lea    D220(%rip),%rbx
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %rbx,%rax
  pop    %rbx
  ret
  lea    D74(%rip),%rax
  ret
L5:
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D249
data_type: string
name: unpack_data
arguments: data_label: D61
data_type: string
name: unpack_data
arguments: data_label: D289
data_type: string
name: unpack_data
arguments: data_label: D183
data_type: string
name: unpack_data
arguments: data_label: D192
data_type: string
name: unpack_data
arguments: data_label: D49
data_type: string
name: unpack_data
arguments: data_label: D343
data_type: string
name: unpack_data
arguments: data_label: D123
data_type: string
name: unpack_data
arguments: data_label: D301
data_type: string
name: unpack_data
arguments: data_label: D141
data_type: string
name: unpack_data
arguments: data_label: D42
data_type: string
name: unpack_data
arguments: data_label: D131
data_type: string
name: unpack_data
arguments: data_label: D164
data_type: string
name: unpack_data
arguments: data_label: D207
data_type: string
name: unpack_data
arguments: data_label: D226
data_type: string
name: unpack_data
arguments: data_label: D7
data_type: string
name: unpack_data
arguments: data_label: D179
data_type: string
name: unpack_data
arguments: data_label: D112
data_type: string
name: unpack_data
arguments: data_label: D63
data_type: string
name: unpack_data
arguments: data_label: D188
data_type: string
name: unpack_data
arguments: data_label: D79
data_type: string
name: unpack_data
arguments: data_label: D308
data_type: string
name: unpack_data
arguments: data_label: D203
data_type: string
name: unpack_data
arguments: data_label: D201
data_type: string
name: unpack_data
arguments: data_label: D271
data_type: string
name: unpack_data
arguments: data_label: D232
data_type: string
name: unpack_data
arguments: data_label: D214
data_type: string
name: unpack_data
arguments: data_label: D168
data_type: string
name: unpack_data
arguments: data_label: D16
data_type: string
name: unpack_data
arguments: data_label: D234
data_type: string
name: unpack_data
arguments: data_label: D345
data_type: string
name: unpack_data
arguments: data_label: D170
data_type: string
name: unpack_data
arguments: data_label: D116
data_type: string
name: unpack_data
arguments: data_label: D74
data_type: string

tool: D249: EXTOP

tool: D61: ECHO

tool: D289: RECONNECTION

tool: D183: SGA

tool: D192: APPROX MESSAGE SIZE NEGOTIATION

tool: D49: STATUS

tool: D343: TIMING MARK

tool: D123: OUTPUT LINE WIDTH

tool: D301: OUTPUT PAGE SIZE

tool: D141: OUTPUT CR DISPOSITION

tool: D42: EXTENDED ASCII

tool: D131: LOGOUT

tool: D164: BYTE MACRO

tool: D207: DATA ENTRY TERMINAL

tool: D226: SUPDUP

tool: D7: SUPDUP OUTPUT

tool: D179: SEND LOCATION

tool: D112: TERMINAL TYPE

tool: D63: END OF RECORD

tool: D188: NAWS

tool: D79: TS

tool: D308: LINEMODE

tool: D203: ENVIR-OLD

tool: D201: AUTH

tool: D271: ENVIR

tool: D232: CHARSET

tool: D214: START_TLS

tool: D168: COMPRESSv2

tool: D16: MSP

tool: D234: MXP

tool: D345: ZMP

tool: D170: MPLEX

tool: D116: %d

tool: D74: BINARY TRANSMISSION

assistant: ```c
const char *get_telnet_option(char c) {
  switch (c) {
  case 0:
    return "BINARY TRANSMISSION";
  case '\001':
    return "ECHO";
  case 2:
    return "RECONNECTION";
  case '\003':
    return "SGA";
  case 4:
    return "APPROX MESSAGE SIZE NEGOTIATION";
  case 5:
    return "STATUS";
  case 6:
    return "TIMING MARK";
  case 7:
    return "OUTPUT LINE WIDTH";
  case 8:
    return "OUTPUT LINE WIDTH";
  case 9:
    return "OUTPUT PAGE SIZE";
  case 10:
    return "OUTPUT CR DISPOSITION";
  case 17:
    return "EXTENDED ASCII";
  case 18:
    return "LOGOUT";
  case 19:
    return "BYTE MACRO";
  case 20:
    return "DATA ENTRY TERMINAL";
  case 21:
    return "SUPDUP";
  case 22:
    return "SUPDUP OUTPUT";
  case 23:
    return "SEND LOCATION";
  case '\030':
    return "TERMINAL TYPE";
  case '\031':
    return "END OF RECORD";
  case '\037':
    return "NAWS";
  case 32:
    return "TS";
  case '\042':
    return "LINEMODE";
  case 36:
    return "ENVIR-OLD";
  case 37:
    return "AUTH";
  case 39:
    return "ENVIR";
  case 42:
    return "CHARSET";
  case '\056':
    return "START_TLS";
  case '\126':
    return "COMPRESSv2";
  case '\132':
    return "MSP";
  case '\133':
    return "MXP";
  case '\135':
    return "ZMP";
  case '\160':
    return "MPLEX";
  case -128:
    return "EXTOP";
  default: {
    static char buff[4];
    sprintf(buff, "%d", (unsigned)c);
    return buff;
  }
  }
}
```