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

```asm
<add_usb_radio_debug_function>:
  endbr64
  push   %r12
  lea    D22(%rip),%rsi
  lea    D180(%rip),%r12
  push   %rbx
  mov    %rdi,%rbx
  sub    $0x8,%rsp
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D33(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D19(%rip),%rsi
  mov    %rbx,%rdi
  lea    D110(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D196(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D153(%rip),%rsi
  mov    %rbx,%rdi
  lea    D80(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D29(%rip),%rsi
  mov    %rbx,%rdi
  lea    D108(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D91(%rip),%rsi
  mov    %rbx,%rdi
  lea    D152(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D77(%rip),%rsi
  mov    %rbx,%rdi
  lea    D138(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D27(%rip),%rsi
  mov    %rbx,%rdi
  lea    D105(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D128(%rip),%rsi
  mov    %rbx,%rdi
  lea    D88(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D154(%rip),%rsi
  mov    %rbx,%rdi
  lea    D198(%rip),%r12
  call   <strcmp@plt>
  test   %eax,%eax
  cmovne %rbx,%r12
L70:
  add    $0x8,%rsp
  mov    %r12,%rax
  pop    %rbx
  pop    %r12
  ret
```

tool_calls: name: read_data
arguments: label: D22
type: string
name: read_data
arguments: label: D180
type: string
name: read_data
arguments: label: D33
type: string
name: read_data
arguments: label: D19
type: string
name: read_data
arguments: label: D110
type: string
name: read_data
arguments: label: D196
type: string
name: read_data
arguments: label: D153
type: string
name: read_data
arguments: label: D80
type: string
name: read_data
arguments: label: D29
type: string
name: read_data
arguments: label: D108
type: string
name: read_data
arguments: label: D91
type: string
name: read_data
arguments: label: D152
type: string
name: read_data
arguments: label: D77
type: string
name: read_data
arguments: label: D138
type: string
name: read_data
arguments: label: D27
type: string
name: read_data
arguments: label: D105
type: string
name: read_data
arguments: label: D128
type: string
name: read_data
arguments: label: D88
type: string
name: read_data
arguments: label: D154
type: string
name: read_data
arguments: label: D198
type: string

tool: D22: mtp,adb,mass_storage

tool: D180: mtp,adb,mass_storage,diag,modem,rmnet

tool: D33: mtp,adb,mass_storage,acm

tool: D19: mtp,mass_storage

tool: D110: mtp,mass_storage,diag,modem,rmnet

tool: D196: mtp,mass_storage,acm

tool: D153: ffs,acm

tool: D80: adb,diag,modem,acm

tool: D29: mass_storage,adb

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

tool: D91: mass_storage

tool: D152: mass_storage,diag,modem,rmnet

tool: D77: rndis,adb

tool: D138: rndis,adb,diag,modem

tool: D27: rndis

tool: D105: rndis,diag,modem

tool: D128: mtp

tool: D88: mtp,diag,modem,rmnet

tool: D154: mtp,adb

tool: D198: mtp,adb,diag,modem,rmnet

assistant: ```c
const char *add_usb_radio_debug_function(const char *buff) {
  if (!strcmp(buff, "mtp,adb,mass_storage"))
    return "mtp,adb,mass_storage,diag,modem,rmnet";
  else if (!strcmp(buff, "mtp,adb,mass_storage,acm"))
    return "mtp,adb,mass_storage,diag,modem,rmnet";
  else if (!strcmp(buff, "mtp,mass_storage"))
    return "mtp,mass_storage,diag,modem,rmnet";
  else if (!strcmp(buff, "mtp,mass_storage,acm"))
    return "mtp,mass_storage,diag,modem,rmnet";
  if (!strcmp(buff, "ffs,acm"))
    return "adb,diag,modem,acm";
  if (!strcmp(buff, "mass_storage,adb"))
    return "mass_storage,adb,diag,modem,rmnet";
  else if (!strcmp(buff, "mass_storage"))
    return "mass_storage,diag,modem,rmnet";
  else if (!strcmp(buff, "rndis,adb"))
    return "rndis,adb,diag,modem";
  else if (!strcmp(buff, "rndis"))
    return "rndis,diag,modem";
  else if (!strcmp(buff, "mtp"))
    return "mtp,diag,modem,rmnet";
  else if (!strcmp(buff, "mtp,adb"))
    return "mtp,adb,diag,modem,rmnet";
  return buff;
}
```