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

```asm
<cmd_class_string>:
  endbr64
  cmp    $0x94,%edi
  jg     L19
  test   %edi,%edi
  js     L21
  cmp    $0x94,%edi
  ja     L21
  lea    D42(%rip),%rdx
  mov    %edi,%eax
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax,%rax,1)
L19:
  lea    D103(%rip),%rax
  cmp    $0xef,%edi
  jne    L21
  ret
L21:
  push   %rbx
  lea    D84(%rip),%rbx
  mov    %edi,%edx
  lea    D147(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %rbx,%rax
  pop    %rbx
  ret
  lea    D28(%rip),%rax
  ret
  lea    D50(%rip),%rax
  ret
  lea    D213(%rip),%rax
  ret
  lea    D77(%rip),%rax
  ret
  lea    D242(%rip),%rax
  ret
  lea    D142(%rip),%rax
  ret
  lea    D0(%rip),%rax
  ret
  lea    D182(%rip),%rax
  ret
  lea    D134(%rip),%rax
  ret
  lea    D121(%rip),%rax
  ret
  lea    D218(%rip),%rax
  ret
  lea    D117(%rip),%rax
  ret
  lea    D127(%rip),%rax
  ret
  lea    D40(%rip),%rax
  ret
  lea    D180(%rip),%rax
  ret
  lea    D78(%rip),%rax
  ret
  lea    D122(%rip),%rax
  ret
  lea    D237(%rip),%rax
  ret
  lea    D105(%rip),%rax
  ret
  lea    D203(%rip),%rax
  ret
  lea    D55(%rip),%rax
  ret
```

tool_calls: name: unpack_data
arguments: tag: D103
datatype: string
name: unpack_data
arguments: tag: D147
datatype: string
name: unpack_data
arguments: tag: D28
datatype: string
name: unpack_data
arguments: tag: D50
datatype: string
name: unpack_data
arguments: tag: D213
datatype: string
name: unpack_data
arguments: tag: D77
datatype: string
name: unpack_data
arguments: tag: D242
datatype: string
name: unpack_data
arguments: tag: D142
datatype: string
name: unpack_data
arguments: tag: D0
datatype: string
name: unpack_data
arguments: tag: D182
datatype: string
name: unpack_data
arguments: tag: D134
datatype: string
name: unpack_data
arguments: tag: D121
datatype: string
name: unpack_data
arguments: tag: D218
datatype: string
name: unpack_data
arguments: tag: D117
datatype: string
name: unpack_data
arguments: tag: D127
datatype: string
name: unpack_data
arguments: tag: D40
datatype: string
name: unpack_data
arguments: tag: D180
datatype: string
name: unpack_data
arguments: tag: D78
datatype: string
name: unpack_data
arguments: tag: D122
datatype: string
name: unpack_data
arguments: tag: D237
datatype: string
name: unpack_data
arguments: tag: D105
datatype: string
name: unpack_data
arguments: tag: D203
datatype: string
name: unpack_data
arguments: tag: D55
datatype: string

tool: D103: COMMAND_CLASS_MARK

tool: D147: %02x

tool: D28: COMMAND_CLASS_SIMPLE_AV_CONTROL

tool: D50: COMMAND_CLASS_PROPRIETARY

tool: D213: COMMAND_CLASS_INDICATOR

tool: D77: COMMAND_CLASS_VERSION

tool: D242: COMMAND_CLASS_ASSOCIATION

tool: D142: COMMAND_CLASS_WAKE_UP

tool: D0: COMMAND_CLASS_BATTERY

tool: D182: COMMAND_CLASS_MANUFACTURER_SPECIFIC

tool: D134: COMMAND_CLASS_CONFIGURATION

tool: D121: COMMAND_CLASS_MULTI_INSTANCE

tool: D218: COMMAND_CLASS_THERMOSTAT_SETPOINT

tool: D117: COMMAND_CLASS_THERMOSTAT_MODE

tool: D127: COMMAND_CLASS_METER

tool: D40: COMMAND_CLASS_SENSOR_MULTILEVEL

tool: D180: COMMAND_CLASS_ACTUATOR_CONF

tool: D78: COMMAND_CLASS_SCENE_ACTIVATION

tool: D122: COMMAND_CLASS_SWITCH_ALL

tool: D237: COMMAND_CLASS_SWITCH_MULTILEVEL

tool: D105: COMMAND_CLASS_NO_OPERATION

tool: D203: COMMAND_CLASS_BASIC

tool: D55: COMMAND_CLASS_SCENE_CONTROLLER

assistant: ```c
char *cmd_class_string(int cls) {
  static char str[10];
  if (cls == 0x20)
    return "COMMAND_CLASS_BASIC";
  else if (cls == 0x2D)
    return "COMMAND_CLASS_SCENE_CONTROLLER";
  else if (cls == 0x2B)
    return "COMMAND_CLASS_SCENE_ACTIVATION";
  else if (cls == 0x85)
    return "COMMAND_CLASS_ASSOCIATION";
  else if (cls == 0x26)
    return "COMMAND_CLASS_SWITCH_MULTILEVEL";
  else if (cls == 0x31)
    return "COMMAND_CLASS_SENSOR_MULTILEVEL";
  else if (cls == 0x72)
    return "COMMAND_CLASS_MANUFACTURER_SPECIFIC";
  else if (cls == 0x94)
    return "COMMAND_CLASS_SIMPLE_AV_CONTROL";
  else if (cls == 0x70)
    return "COMMAND_CLASS_CONFIGURATION";
  else if (cls == 0x87)
    return "COMMAND_CLASS_INDICATOR";
  else if (cls == 0x84)
    return "COMMAND_CLASS_WAKE_UP";
  else if (cls == 0x40)
    return "COMMAND_CLASS_THERMOSTAT_MODE";
  else if (cls == 0x43)
    return "COMMAND_CLASS_THERMOSTAT_SETPOINT";
  else if (cls == 0x2C)
    return "COMMAND_CLASS_ACTUATOR_CONF";
  else if (cls == 0x60)
    return "COMMAND_CLASS_MULTI_INSTANCE";
  else if (cls == 0x32)
    return "COMMAND_CLASS_METER";
  else if (cls == 0x80)
    return "COMMAND_CLASS_BATTERY";
  else if (cls == 0x88)
    return "COMMAND_CLASS_PROPRIETARY";
  else if (cls == 0x86)
    return "COMMAND_CLASS_VERSION";
  else if (cls == 0x60)
    return "COMMAND_CLASS_MULTI_INSTANCE_V2";
  else if (cls == 0x27)
    return "COMMAND_CLASS_SWITCH_ALL";
  else if (cls == 0xEF)
    return "COMMAND_CLASS_MARK";
  else if (cls == 0x00)
    return "COMMAND_CLASS_NO_OPERATION";
  else {
    sprintf(str, "%02x", cls);
    return str;
  }
}
```