user: 下面的汇编指令对应的C源代码是什么:

```asm
<cc2400_fstst0>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  add    $0xffffffffffffff80,%rsp
  mov    %edi,%eax
  mov    %ax,-0x74(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D1(%rip),%rax
  mov    %rax,-0x70(%rbp)
  lea    D12(%rip),%rax
  mov    %rax,-0x68(%rbp)
  lea    D25(%rip),%rax
  mov    %rax,-0x60(%rbp)
  lea    D108(%rip),%rax
  mov    %rax,-0x58(%rbp)
  movzwl -0x74(%rbp),%eax
  shr    $0xe,%ax
  movzwl %ax,%eax
  and    $0x3,%eax
  cltq
  mov    -0x70(%rbp,%rax,8),%rax
  mov    %rax,%r8
  lea    D11(%rip),%rax
  mov    %rax,%rcx
  lea    D45(%rip),%rax
  mov    %rax,%rdx
  mov    $0xe,%esi
  mov    $0xf,%edi
  call   <bits@plt>
  movzwl -0x74(%rbp),%eax
  shr    $0xc,%ax
  movzwl %ax,%eax
  and    $0x3,%eax
  cltq
  mov    -0x70(%rbp,%rax,8),%rax
  mov    %rax,%r8
  lea    D11(%rip),%rax
  mov    %rax,%rcx
  lea    D16(%rip),%rax
  mov    %rax,%rdx
  mov    $0xc,%esi
  mov    $0xd,%edi
  call   <bits@plt>
  lea    D22(%rip),%r8
  lea    D11(%rip),%rax
  mov    %rax,%rcx
  lea    D13(%rip),%rax
  mov    %rax,%rdx
  mov    $0xb,%esi
  mov    $0xb,%edi
  call   <bits@plt>
  lea    D22(%rip),%r8
  lea    D11(%rip),%rax
  mov    %rax,%rcx
  lea    D94(%rip),%rax
  mov    %rax,%rdx
  mov    $0xa,%esi
  mov    $0xa,%edi
  call   <bits@plt>
  movzwl -0x74(%rbp),%eax
  shr    $0x5,%ax
  movzwl %ax,%eax
  and    $0xf,%eax
  mov    %eax,%edx
  lea    -0x50(%rbp),%rax
  lea    D84(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x50(%rbp),%rax
  mov    %rax,%r8
  lea    D11(%rip),%rax
  mov    %rax,%rcx
  lea    D129(%rip),%rax
  mov    %rax,%rdx
  mov    $0x5,%esi
  mov    $0x9,%edi
  call   <bits@plt>
  movzwl -0x74(%rbp),%eax
  and    $0xf,%eax
  mov    %eax,%edx
  lea    -0x50(%rbp),%rax
  lea    D84(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x50(%rbp),%rax
  mov    %rax,%r8
  lea    D53(%rip),%rax
  mov    %rax,%rcx
  lea    D195(%rip),%rax
  mov    %rax,%rdx
  mov    $0x0,%esi
  mov    $0x4,%edi
  call   <bits@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L4
  call   <__stack_chk_fail@plt>
L4:
  leave
  ret
```

tool_calls: name: read_data
arguments: tag: D1
type_infered: string
name: read_data
arguments: tag: D12
type_infered: string
name: read_data
arguments: tag: D25
type_infered: string
name: read_data
arguments: tag: D108
type_infered: string
name: read_data
arguments: tag: D11
type_infered: string
name: read_data
arguments: tag: D45
type_infered: string
name: read_data
arguments: tag: D16
type_infered: string
name: read_data
arguments: tag: D22
type_infered: string
name: read_data
arguments: tag: D13
type_infered: string
name: read_data
arguments: tag: D94
type_infered: string
name: read_data
arguments: tag: D84
type_infered: string
name: read_data
arguments: tag: D129
type_infered: string
name: read_data
arguments: tag: D53
type_infered: string
name: read_data
arguments: tag: D195
type_infered: string

tool: D1: 690uA

tool: D12: 980uA

tool: D25: 1.16mA

tool: D108: 1.44mA

tool: D11: RW

tool: D45: RXMIXBUF_CUR

tool: D16: TXMIXBUF_CUR

tool: 

tool: D13: VCO_ARRAY_SETTLE_LONG

tool: D94: VCO_ARRAY_OE

tool: D84: %d

tool: D129: VCO_ARRAY_O

tool: D53: RO

tool: D195: VCO_ARRAY_RES

assistant: ```c
void cc2400_fstst0(unsigned short v) {
  char description[64];
  char *rxmixbuf[] = {"690uA", "980uA", "1.16mA", "1.44mA"};
  bits(15, 14, "RXMIXBUF_CUR", "RW", rxmixbuf[(v >> 14) & 3]);
  bits(13, 12, "TXMIXBUF_CUR", "RW", rxmixbuf[(v >> 12) & 3]);
  bits(11, 11, "VCO_ARRAY_SETTLE_LONG", "RW", "");
  bits(10, 10, "VCO_ARRAY_OE", "RW", "");
  sprintf(description, "%d", (v >> 5) & 0xF);
  bits(9, 5, "VCO_ARRAY_O", "RW", description);
  sprintf(description, "%d", v & 0xF);
  bits(4, 0, "VCO_ARRAY_RES", "RO", description);
}
```