user: Converte this assembly snippet into its equivalent C code:

```asm
<get_telnet_option>:
  endbr64
  lea    D359(%rip),%rax
  cmp    $0x80,%dil
  je     L17
  cmp    $0x70,%dil
  ja     L19
  lea    D294(%rip),%rdx
  movzbl %dil,%eax
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
L17:
  ret
  nopl   0x0(%rax)
  lea    D249(%rip),%rax
  ret
L19:
  push   %rbx
  lea    D264(%rip),%rbx
  movsbl %dil,%edx
  lea    D303(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %rbx,%rax
  pop    %rbx
  ret
  lea    D136(%rip),%rax
  ret
  lea    D217(%rip),%rax
  ret
  lea    D144(%rip),%rax
  ret
  lea    D82(%rip),%rax
  ret
  lea    D124(%rip),%rax
  ret
  lea    D122(%rip),%rax
  ret
  lea    D306(%rip),%rax
  ret
  lea    D129(%rip),%rax
  ret
  lea    D163(%rip),%rax
  ret
  lea    D337(%rip),%rax
  ret
  lea    D317(%rip),%rax
  ret
  lea    D70(%rip),%rax
  ret
  lea    D322(%rip),%rax
  ret
  lea    D325(%rip),%rax
  ret
  lea    D127(%rip),%rax
  ret
  lea    D137(%rip),%rax
  ret
  lea    D262(%rip),%rax
  ret
  lea    D174(%rip),%rax
  ret
  lea    D331(%rip),%rax
  ret
  lea    D77(%rip),%rax
  ret
  lea    D134(%rip),%rax
  ret
  lea    D155(%rip),%rax
  ret
  lea    D338(%rip),%rax
  ret
  lea    D353(%rip),%rax
  ret
  lea    D257(%rip),%rax
  ret
  lea    D1(%rip),%rax
  ret
  lea    D327(%rip),%rax
  ret
  lea    D41(%rip),%rax
  ret
  lea    D198(%rip),%rax
  ret
  lea    D104(%rip),%rax
  ret
  lea    D9(%rip),%rax
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D359
data_type: string
name: unpack_data
arguments: data_tag: D294
data_type: string
name: unpack_data
arguments: data_tag: D249
data_type: string
name: unpack_data
arguments: data_tag: D303
data_type: string
name: unpack_data
arguments: data_tag: D136
data_type: string
name: unpack_data
arguments: data_tag: D217
data_type: string
name: unpack_data
arguments: data_tag: D144
data_type: string
name: unpack_data
arguments: data_tag: D82
data_type: string
name: unpack_data
arguments: data_tag: D124
data_type: string
name: unpack_data
arguments: data_tag: D122
data_type: string
name: unpack_data
arguments: data_tag: D306
data_type: string
name: unpack_data
arguments: data_tag: D129
data_type: string
name: unpack_data
arguments: data_tag: D163
data_type: string
name: unpack_data
arguments: data_tag: D337
data_type: string
name: unpack_data
arguments: data_tag: D317
data_type: string
name: unpack_data
arguments: data_tag: D70
data_type: string
name: unpack_data
arguments: data_tag: D322
data_type: string
name: unpack_data
arguments: data_tag: D325
data_type: string
name: unpack_data
arguments: data_tag: D127
data_type: string
name: unpack_data
arguments: data_tag: D137
data_type: string
name: unpack_data
arguments: data_tag: D262
data_type: string
name: unpack_data
arguments: data_tag: D174
data_type: string
name: unpack_data
arguments: data_tag: D331
data_type: string
name: unpack_data
arguments: data_tag: D77
data_type: string
name: unpack_data
arguments: data_tag: D134
data_type: string
name: unpack_data
arguments: data_tag: D155
data_type: string
name: unpack_data
arguments: data_tag: D338
data_type: string
name: unpack_data
arguments: data_tag: D353
data_type: string
name: unpack_data
arguments: data_tag: D257
data_type: string
name: unpack_data
arguments: data_tag: D1
data_type: string
name: unpack_data
arguments: data_tag: D327
data_type: string
name: unpack_data
arguments: data_tag: D41
data_type: string
name: unpack_data
arguments: data_tag: D198
data_type: string
name: unpack_data
arguments: data_tag: D104
data_type: string
name: unpack_data
arguments: data_tag: D9
data_type: string

tool: D359: EXTOP

tool: 

tool: D249: OUTPUT LINE WIDTH

tool: D303: %d

tool: D136: MXP

tool: D217: MSP

tool: D144: COMPRESSv2

tool: D82: START_TLS

tool: D124: CHARSET

tool: D122: ENVIR

tool: D306: AUTH

tool: D129: ENVIR-OLD

tool: D163: LINEMODE

tool: D337: TS

tool: D317: NAWS

tool: D70: END OF RECORD

tool: D322: TERMINAL TYPE

tool: D325: SEND LOCATION

tool: D127: DATA ENTRY TERMINAL

tool: D137: BYTE MACRO

tool: D262: LOGOUT

tool: D174: EXTENDED ASCII

tool: D331: OUTPUT CR DISPOSITION

tool: D77: OUTPUT PAGE SIZE

tool: D134: MPLEX

tool: D155: ZMP

tool: D338: SGA

tool: D353: RECONNECTION

tool: D257: SUPDUP OUTPUT

tool: D1: SUPDUP

tool: D327: STATUS

tool: D41: APPROX MESSAGE SIZE NEGOTIATION

tool: D198: TIMING MARK

tool: D104: BINARY TRANSMISSION

tool: D9: ECHO

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