user: Demonstrate the C code that generates the assembly output below:

```asm
<add_usb_radio_debug_function>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D57(%rip),%rsi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D104(%rip),%rax
  test   %edx,%edx
  je     L86
  lea    D19(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D103(%rip),%rax
  test   %edx,%edx
  je     L86
  lea    D77(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D15(%rip),%rax
  test   %edx,%edx
  je     L86
  lea    D98(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D15(%rip),%rax
  test   %edx,%edx
  je     L86
  lea    D131(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D23(%rip),%rax
  test   %edx,%edx
  je     L86
  lea    D148(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D23(%rip),%rax
  test   %edx,%edx
  je     L86
  lea    D108(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D37(%rip),%rax
  test   %edx,%edx
  je     L86
  lea    D165(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  lea    D151(%rip),%rax
  test   %edx,%edx
  jne    L31
L86:
  pop    %rbx
  ret
L31:
  mov    %rbx,%rsi
  lea    D106(%rip),%rdi
  call   <USB_INFO@plt>
  mov    %rbx,%rax
  jmp    L86
```

tool_calls: name: disassemble_data
arguments: data_label: D57
type: string
name: disassemble_data
arguments: data_label: D104
type: string
name: disassemble_data
arguments: data_label: D19
type: string
name: disassemble_data
arguments: data_label: D103
type: string
name: disassemble_data
arguments: data_label: D77
type: string
name: disassemble_data
arguments: data_label: D15
type: string
name: disassemble_data
arguments: data_label: D98
type: string
name: disassemble_data
arguments: data_label: D131
type: string
name: disassemble_data
arguments: data_label: D23
type: string
name: disassemble_data
arguments: data_label: D148
type: string
name: disassemble_data
arguments: data_label: D108
type: string
name: disassemble_data
arguments: data_label: D37
type: string
name: disassemble_data
arguments: data_label: D165
type: string
name: disassemble_data
arguments: data_label: D151
type: string
name: disassemble_data
arguments: data_label: D106
type: string

tool: D57: ffs,acm

tool: D104: adb,diag,modem,acm

tool: D19: mtp,adb

tool: D103: adb,diag,modem,rmnet

tool: D77: mass_storage,adb

tool: D15: mass_storage,adb,diag,modem,rmnet

tool: D98: mass_storage,adb,acm

tool: D131: mass_storage

tool: D23: mass_storage,diag,modem,rmnet

tool: D148: mass_storage,acm

tool: D108: rndis

tool: D37: rndis,diag,modem

tool: D165: rndis,adb

tool: D151: rndis,adb,diag,modem

tool: D106: switch to radio debug function:%s


assistant: ```c
const char *add_usb_radio_debug_function(const char *buff) {
  if (!strcmp(buff, "ffs,acm"))
    return "adb,diag,modem,acm";
  else if (!strcmp(buff, "mtp,adb"))
    return "adb,diag,modem,rmnet";
  else if (!strcmp(buff, "mass_storage,adb"))
    return "mass_storage,adb,diag,modem,rmnet";
  else if (!strcmp(buff, "mass_storage,adb,acm"))
    return "mass_storage,adb,diag,modem,rmnet";
  else if (!strcmp(buff, "mass_storage"))
    return "mass_storage,diag,modem,rmnet";
  else if (!strcmp(buff, "mass_storage,acm"))
    return "mass_storage,diag,modem,rmnet";
  else if (!strcmp(buff, "rndis"))
    return "rndis,diag,modem";
  else if (!strcmp(buff, "rndis,adb"))
    return "rndis,adb,diag,modem";
  USB_INFO("switch to radio debug function:%s\n", buff);
  return buff;
}
```