user: Translate the below assembly code into C programming language:

```asm
<get_cmd>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,%eax
  mov    %al,-0x4(%rbp)
  movzbl -0x4(%rbp),%eax
  sub    $0xec,%eax
  cmp    $0x13,%eax
  ja     L93
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D80(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D80(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D174(%rip),%rax
  jmp    L187
  lea    D48(%rip),%rax
  jmp    L187
  lea    D0(%rip),%rax
  jmp    L187
  lea    D97(%rip),%rax
  jmp    L187
  lea    D245(%rip),%rax
  jmp    L187
  lea    D63(%rip),%rax
  jmp    L187
  lea    D106(%rip),%rax
  jmp    L187
  lea    D241(%rip),%rax
  jmp    L187
  lea    D52(%rip),%rax
  jmp    L187
  lea    D87(%rip),%rax
  jmp    L187
  lea    D110(%rip),%rax
  jmp    L187
  lea    D199(%rip),%rax
  jmp    L187
  lea    D4(%rip),%rax
  jmp    L187
  lea    D215(%rip),%rax
  jmp    L187
  lea    D64(%rip),%rax
  jmp    L187
  lea    D62(%rip),%rax
  jmp    L187
  lea    D76(%rip),%rax
  jmp    L187
  lea    D23(%rip),%rax
  jmp    L187
  lea    D169(%rip),%rax
  jmp    L187
  lea    D189(%rip),%rax
  jmp    L187
L93:
  movzbl -0x4(%rbp),%eax
  mov    %eax,%ecx
  lea    D47(%rip),%rax
  mov    %rax,%rdx
  mov    $0x4,%esi
  lea    D51(%rip),%rax
  mov    %rax,%rdi
  call   <snprintf@plt>
  lea    D51(%rip),%rax
L187:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D174
data_type: string
name: read_data
arguments: data_label: D48
data_type: string
name: read_data
arguments: data_label: D0
data_type: string
name: read_data
arguments: data_label: D97
data_type: string
name: read_data
arguments: data_label: D245
data_type: string
name: read_data
arguments: data_label: D63
data_type: string
name: read_data
arguments: data_label: D106
data_type: string
name: read_data
arguments: data_label: D241
data_type: string
name: read_data
arguments: data_label: D52
data_type: string
name: read_data
arguments: data_label: D87
data_type: string
name: read_data
arguments: data_label: D110
data_type: string
name: read_data
arguments: data_label: D199
data_type: string
name: read_data
arguments: data_label: D4
data_type: string
name: read_data
arguments: data_label: D215
data_type: string
name: read_data
arguments: data_label: D64
data_type: string
name: read_data
arguments: data_label: D62
data_type: string
name: read_data
arguments: data_label: D76
data_type: string
name: read_data
arguments: data_label: D23
data_type: string
name: read_data
arguments: data_label: D169
data_type: string
name: read_data
arguments: data_label: D189
data_type: string
name: read_data
arguments: data_label: D47
data_type: string

tool: D174: IAC

tool: D48: DONT

tool: D0: DO

tool: D97: WONT

tool: D245: WILL

tool: D63: SB

tool: D106: GA

tool: D241: EL

tool: D52: EC

tool: D87: AYT

tool: D110: AO

tool: D199: IP

tool: D4: BREAK

tool: D215: DM

tool: D64: NOP

tool: D62: SE

tool: D76: EOR

tool: D23: ABORT

tool: D169: SUSP

tool: D189: xEOF

tool: D47: %d

assistant: ```c
const char *get_cmd(unsigned char cmd) {
  static char buffer[4];
  switch (cmd) {
  case 255:
    return "IAC";
  case 254:
    return "DONT";
  case 253:
    return "DO";
  case 252:
    return "WONT";
  case 251:
    return "WILL";
  case 250:
    return "SB";
  case 249:
    return "GA";
  case 248:
    return "EL";
  case 247:
    return "EC";
  case 246:
    return "AYT";
  case 245:
    return "AO";
  case 244:
    return "IP";
  case 243:
    return "BREAK";
  case 242:
    return "DM";
  case 241:
    return "NOP";
  case 240:
    return "SE";
  case 239:
    return "EOR";
  case 238:
    return "ABORT";
  case 237:
    return "SUSP";
  case 236:
    return "xEOF";
  default:
    snprintf(buffer, sizeof(buffer), "%d", (int)cmd);
    return buffer;
  }
}
```