user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<add_usb_radio_debug_function>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D93(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L95
  lea    D130(%rip),%rax
  jmp    L10
L95:
  mov    -0x8(%rbp),%rax
  lea    D120(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L138
  lea    D49(%rip),%rax
  jmp    L10
L138:
  mov    -0x8(%rbp),%rax
  lea    D148(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L127
  lea    D17(%rip),%rax
  jmp    L10
L127:
  mov    -0x8(%rbp),%rax
  lea    D57(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L50
  lea    D17(%rip),%rax
  jmp    L10
L50:
  mov    -0x8(%rbp),%rax
  lea    D168(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L84
  lea    D30(%rip),%rax
  jmp    L10
L84:
  mov    -0x8(%rbp),%rax
  lea    D166(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L144
  lea    D30(%rip),%rax
  jmp    L10
L144:
  mov    -0x8(%rbp),%rax
  lea    D105(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L62
  lea    D83(%rip),%rax
  jmp    L10
L62:
  mov    -0x8(%rbp),%rax
  lea    D107(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L21
  lea    D156(%rip),%rax
  jmp    L10
L21:
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D167(%rip),%rax
  mov    %rax,%rdi
  call   <USB_INFO@plt>
  mov    -0x8(%rbp),%rax
L10:
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D93
datatype: string
name: parse_data
arguments: label: D130
datatype: string
name: parse_data
arguments: label: D120
datatype: string
name: parse_data
arguments: label: D49
datatype: string
name: parse_data
arguments: label: D148
datatype: string
name: parse_data
arguments: label: D17
datatype: string
name: parse_data
arguments: label: D57
datatype: string
name: parse_data
arguments: label: D168
datatype: string
name: parse_data
arguments: label: D30
datatype: string
name: parse_data
arguments: label: D166
datatype: string
name: parse_data
arguments: label: D105
datatype: string
name: parse_data
arguments: label: D83
datatype: string
name: parse_data
arguments: label: D107
datatype: string
name: parse_data
arguments: label: D156
datatype: string
name: parse_data
arguments: label: D167
datatype: string

tool: D93: ffs,acm

tool: D130: adb,diag,modem,acm

tool: D120: mtp,adb

tool: D49: adb,diag,modem,rmnet

tool: D148: mass_storage,adb

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

tool: D57: mass_storage,adb,acm

tool: D168: mass_storage

tool: D30: mass_storage,diag,modem,rmnet

tool: D166: mass_storage,acm

tool: D105: rndis

tool: D83: rndis,diag,modem

tool: D107: rndis,adb

tool: D156: rndis,adb,diag,modem

tool: D167: 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;
}
```