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

```asm
<cc2400_dactst>:
  endbr64
  push   %r13
  lea    D84(%rip),%rcx
  lea    D102(%rip),%rsi
  push   %r12
  movq   %rcx,%xmm0
  lea    D71(%rip),%rcx
  lea    D91(%rip),%r8
  push   %rbp
  lea    D23(%rip),%rdx
  lea    D80(%rip),%r12
  push   %rbx
  mov    %edi,%ebx
  mov    $0xf,%edi
  lea    D70(%rip),%r13
  sub    $0x98,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x88(%rsp)
  lea    D18(%rip),%rax
  lea    0x40(%rsp),%rbp
  movq   %rax,%xmm1
  lea    D10(%rip),%rax
  punpcklqdq %xmm1,%xmm0
  movq   %rax,%xmm2
  lea    D77(%rip),%rax
  movaps %xmm0,(%rsp)
  movq   %rsi,%xmm0
  movq   %rax,%xmm3
  lea    D61(%rip),%rsi
  punpcklqdq %xmm2,%xmm0
  lea    D85(%rip),%rax
  movaps %xmm0,0x10(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm4
  lea    D150(%rip),%rcx
  punpcklqdq %xmm3,%xmm0
  movaps %xmm0,0x20(%rsp)
  movq   %rsi,%xmm0
  mov    $0xf,%esi
  punpcklqdq %xmm4,%xmm0
  movaps %xmm0,0x30(%rsp)
  call   <bits@plt>
  mov    %ebx,%eax
  mov    %r12,%rcx
  mov    $0xc,%esi
  shr    $0xc,%ax
  lea    D83(%rip),%rdx
  mov    $0xe,%edi
  and    $0x7,%eax
  mov    (%rsp,%rax,8),%r8
  call   <bits@plt>
  mov    %ebx,%edx
  mov    %r13,%rsi
  mov    %rbp,%rdi
  shr    $0x6,%dx
  and    $0x3f,%ebx
  and    $0x3f,%edx
  call   <sprintf@plt>
  mov    %rbp,%r8
  mov    %r12,%rcx
  mov    $0x6,%esi
  lea    D131(%rip),%rdx
  mov    $0xb,%edi
  call   <bits@plt>
  mov    %ebx,%edx
  mov    %r13,%rsi
  mov    %rbp,%rdi
  call   <sprintf@plt>
  xor    %esi,%esi
  mov    %rbp,%r8
  mov    %r12,%rcx
  lea    D123(%rip),%rdx
  mov    $0x5,%edi
  call   <bits@plt>
  mov    0x88(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L3
  add    $0x98,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
L3:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D84
type_guessed: string
name: unpack_data
arguments: data_tag: D102
type_guessed: string
name: unpack_data
arguments: data_tag: D71
type_guessed: string
name: unpack_data
arguments: data_tag: D91
type_guessed: string
name: unpack_data
arguments: data_tag: D23
type_guessed: string
name: unpack_data
arguments: data_tag: D80
type_guessed: string
name: unpack_data
arguments: data_tag: D70
type_guessed: string
name: unpack_data
arguments: data_tag: D18
type_guessed: string
name: unpack_data
arguments: data_tag: D10
type_guessed: string
name: unpack_data
arguments: data_tag: D77
type_guessed: string
name: unpack_data
arguments: data_tag: D61
type_guessed: string
name: unpack_data
arguments: data_tag: D85
type_guessed: string
name: unpack_data
arguments: data_tag: D150
type_guessed: string
name: unpack_data
arguments: data_tag: D83
type_guessed: string
name: unpack_data
arguments: data_tag: D131
type_guessed: string
name: unpack_data
arguments: data_tag: D123
type_guessed: string

tool: D84: Normal

tool: D102: From ADC

tool: D71: Full-spectrum White Noise

tool: 

tool: D23: -

tool: D80: RW

tool: D70: %d

tool: D18: Override

tool: D10: I/Q after digital down-mixing and channel filtering

tool: D77: RX signal magnitude/frequency

tool: D61: RSSI/RX frequency offset estimation

tool: D85: HSSD Module

tool: D150: W0

tool: D83: DAC_SRC

tool: D131: DAC_I_O

tool: D123: DAC_Q_O

assistant: ```c
void cc2400_dactst(unsigned short v) {
  char *src[] = {"Normal", "Override", "From ADC", "I/Q after digital down-mixing and channel filtering", "Full-spectrum White Noise", "RX signal magnitude/frequency", "RSSI/RX frequency offset estimation", "HSSD Module"};
  char description[64];
  bits(15, 15, "-", "W0", "");
  bits(14, 12, "DAC_SRC", "RW", src[(v >> 12) & 0x7]);
  sprintf(description, "%d", (v >> 6) & 0x3F);
  bits(11, 6, "DAC_I_O", "RW", description);
  sprintf(description, "%d", v & 0x3F);
  bits(5, 0, "DAC_Q_O", "RW", description);
}
```