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

```asm
<get_telnet_option>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,%eax
  mov    %al,-0x4(%rbp)
  movsbl -0x4(%rbp),%eax
  cmp    $0xffffff80,%eax
  je     L96
  cmp    $0xffffff80,%eax
  jl     L32
  cmp    $0x70,%eax
  jg     L32
  test   %eax,%eax
  js     L32
  cmp    $0x70,%eax
  ja     L32
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D155(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D155(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D358(%rip),%rax
  jmp    L227
  lea    D77(%rip),%rax
  jmp    L227
  lea    D145(%rip),%rax
  jmp    L227
  lea    D80(%rip),%rax
  jmp    L227
  lea    D22(%rip),%rax
  jmp    L227
  lea    D272(%rip),%rax
  jmp    L227
  lea    D211(%rip),%rax
  jmp    L227
  lea    D310(%rip),%rax
  jmp    L227
  lea    D310(%rip),%rax
  jmp    L227
  lea    D76(%rip),%rax
  jmp    L227
  lea    D212(%rip),%rax
  jmp    L227
  lea    D333(%rip),%rax
  jmp    L227
  lea    D108(%rip),%rax
  jmp    L227
  lea    D83(%rip),%rax
  jmp    L227
  lea    D62(%rip),%rax
  jmp    L227
  lea    D221(%rip),%rax
  jmp    L227
  lea    D233(%rip),%rax
  jmp    L227
  lea    D347(%rip),%rax
  jmp    L227
  lea    D21(%rip),%rax
  jmp    L227
  lea    D126(%rip),%rax
  jmp    L227
  lea    D5(%rip),%rax
  jmp    L227
  lea    D167(%rip),%rax
  jmp    L227
  lea    D361(%rip),%rax
  jmp    L227
  lea    D298(%rip),%rax
  jmp    L227
  lea    D386(%rip),%rax
  jmp    L227
  lea    D157(%rip),%rax
  jmp    L227
  lea    D216(%rip),%rax
  jmp    L227
  lea    D106(%rip),%rax
  jmp    L227
  lea    D169(%rip),%rax
  jmp    L227
  lea    D259(%rip),%rax
  jmp    L227
  lea    D268(%rip),%rax
  jmp    L227
  lea    D277(%rip),%rax
  jmp    L227
  lea    D112(%rip),%rax
  jmp    L227
L96:
  lea    D257(%rip),%rax
  jmp    L227
L32:
  movsbl -0x4(%rbp),%eax
  mov    %eax,%edx
  lea    D110(%rip),%rax
  mov    %rax,%rsi
  lea    D109(%rip),%rax
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    D109(%rip),%rax
L227:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: label: D358
data_type: string
name: retrieve_data
arguments: label: D77
data_type: string
name: retrieve_data
arguments: label: D145
data_type: string
name: retrieve_data
arguments: label: D80
data_type: string
name: retrieve_data
arguments: label: D22
data_type: string
name: retrieve_data
arguments: label: D272
data_type: string
name: retrieve_data
arguments: label: D211
data_type: string
name: retrieve_data
arguments: label: D310
data_type: string
name: retrieve_data
arguments: label: D76
data_type: string
name: retrieve_data
arguments: label: D212
data_type: string
name: retrieve_data
arguments: label: D333
data_type: string
name: retrieve_data
arguments: label: D108
data_type: string
name: retrieve_data
arguments: label: D83
data_type: string
name: retrieve_data
arguments: label: D62
data_type: string
name: retrieve_data
arguments: label: D221
data_type: string
name: retrieve_data
arguments: label: D233
data_type: string
name: retrieve_data
arguments: label: D347
data_type: string
name: retrieve_data
arguments: label: D21
data_type: string
name: retrieve_data
arguments: label: D126
data_type: string
name: retrieve_data
arguments: label: D5
data_type: string
name: retrieve_data
arguments: label: D167
data_type: string
name: retrieve_data
arguments: label: D361
data_type: string
name: retrieve_data
arguments: label: D298
data_type: string
name: retrieve_data
arguments: label: D386
data_type: string
name: retrieve_data
arguments: label: D157
data_type: string
name: retrieve_data
arguments: label: D216
data_type: string
name: retrieve_data
arguments: label: D106
data_type: string
name: retrieve_data
arguments: label: D169
data_type: string
name: retrieve_data
arguments: label: D259
data_type: string
name: retrieve_data
arguments: label: D268
data_type: string
name: retrieve_data
arguments: label: D277
data_type: string
name: retrieve_data
arguments: label: D112
data_type: string
name: retrieve_data
arguments: label: D257
data_type: string
name: retrieve_data
arguments: label: D110
data_type: string

tool: D358: BINARY TRANSMISSION

tool: D77: ECHO

tool: D145: RECONNECTION

tool: D80: SGA

tool: D22: APPROX MESSAGE SIZE NEGOTIATION

tool: D272: STATUS

tool: D211: TIMING MARK

tool: D310: OUTPUT LINE WIDTH

tool: D76: OUTPUT PAGE SIZE

tool: D212: OUTPUT CR DISPOSITION

tool: D333: EXTENDED ASCII

tool: D108: LOGOUT

tool: D83: BYTE MACRO

tool: D62: DATA ENTRY TERMINAL

tool: D221: SUPDUP

tool: D233: SUPDUP OUTPUT

tool: D347: SEND LOCATION

tool: D21: TERMINAL TYPE

tool: D126: END OF RECORD

tool: D5: NAWS

tool: D167: TS

tool: D361: LINEMODE

tool: D298: ENVIR-OLD

tool: D386: AUTH

tool: D157: ENVIR

tool: D216: CHARSET

tool: D106: START_TLS

tool: D169: COMPRESSv2

tool: D259: MSP

tool: D268: MXP

tool: D277: ZMP

tool: D112: MPLEX

tool: D257: EXTOP

tool: D110: %d

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