user: What would the C source look like for the assembly code provided here?

```asm
<cc2400_agctst1>:
  endbr64
  push   %r13
  lea    D85(%rip),%r8
  lea    D6(%rip),%rcx
  mov    $0xf,%esi
  push   %r12
  lea    D92(%rip),%rdx
  lea    D158(%rip),%r12
  push   %rbp
  push   %rbx
  mov    %edi,%ebx
  mov    $0xf,%edi
  sub    $0x58,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x48(%rsp)
  xor    %eax,%eax
  call   <bits@plt>
  test   $0x40,%bh
  mov    %r12,%rcx
  mov    $0xe,%esi
  lea    D116(%rip),%rax
  lea    D28(%rip),%r8
  mov    $0xe,%edi
  cmove  %rax,%r8
  lea    D26(%rip),%rdx
  call   <bits@plt>
  mov    %ebx,%edx
  shr    $0xb,%dx
  and    $0x7,%dx
  jne    L29
  mov    %rsp,%rbp
  lea    D87(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
L25:
  mov    %rbp,%r8
  mov    %r12,%rcx
  mov    $0xb,%esi
  mov    $0xd,%edi
  lea    D8(%rip),%rdx
  lea    D81(%rip),%r13
  call   <bits@plt>
  lea    D85(%rip),%r8
  mov    %r12,%rcx
  lea    D58(%rip),%rdx
  mov    $0xa,%esi
  mov    $0xa,%edi
  call   <bits@plt>
  mov    %ebx,%edx
  mov    %r13,%rsi
  mov    %rbp,%rdi
  shr    $0x6,%dx
  and    $0x7,%edx
  call   <sprintf@plt>
  mov    %rbp,%r8
  mov    %r12,%rcx
  mov    $0x6,%esi
  lea    D4(%rip),%rdx
  mov    $0x9,%edi
  call   <bits@plt>
  mov    %ebx,%edx
  mov    %r13,%rsi
  mov    %rbp,%rdi
  shr    $0x2,%dx
  and    $0x3,%ebx
  and    $0x7,%edx
  call   <sprintf@plt>
  mov    %rbp,%r8
  mov    %r12,%rcx
  mov    $0x2,%esi
  lea    D16(%rip),%rdx
  mov    $0x5,%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    D73(%rip),%rdx
  mov    $0x1,%edi
  call   <bits@plt>
  mov    0x48(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L6
  add    $0x58,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopw   0x0(%rax,%rax,1)
L29:
  mov    %rsp,%rbp
  movzwl %dx,%edx
  lea    D150(%rip),%rsi
  mov    %rbp,%rdi
  call   <sprintf@plt>
  jmp    L25
L6:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D85
type_infered: string
name: extract_symbolic_data
arguments: data_label: D6
type_infered: string
name: extract_symbolic_data
arguments: data_label: D92
type_infered: string
name: extract_symbolic_data
arguments: data_label: D158
type_infered: string
name: extract_symbolic_data
arguments: data_label: D116
type_infered: string
name: extract_symbolic_data
arguments: data_label: D28
type_infered: string
name: extract_symbolic_data
arguments: data_label: D26
type_infered: string
name: extract_symbolic_data
arguments: data_label: D87
type_infered: string
name: extract_symbolic_data
arguments: data_label: D8
type_infered: string
name: extract_symbolic_data
arguments: data_label: D81
type_infered: string
name: extract_symbolic_data
arguments: data_label: D58
type_infered: string
name: extract_symbolic_data
arguments: data_label: D4
type_infered: string
name: extract_symbolic_data
arguments: data_label: D16
type_infered: string
name: extract_symbolic_data
arguments: data_label: D73
type_infered: string
name: extract_symbolic_data
arguments: data_label: D150
type_infered: string

tool: 

tool: D6: W0

tool: D92: -

tool: D158: RW

tool: D116: -1/-3

tool: D28: -3/-5

tool: D26: AGC_VAR_GAIN_SAT

tool: D87: Disabled

tool: D8: AGC_SETTLE_BLANK_UP

tool: D81: %d

tool: D58: PEAKDET_CUR_BOOST

tool: D4: AGC_MULT_SLOW

tool: D16: AGC_SETTLE_FIXED

tool: D73: AGC_SETTLE_VAR

tool: D150: %d * 8 MHz clock cycles

assistant: ```c
void cc2400_agctst1(unsigned short v) {
  char description[64];
  bits(15, 15, "-", "W0", "");
  bits(14, 14, "AGC_VAR_GAIN_SAT", "RW", (v & 0x4000) ? "-3/-5" : "-1/-3");
  if (((v >> 11) & 7) == 0)
    strcpy(description, "Disabled");
  else
    sprintf(description, "%d * 8 MHz clock cycles", (v >> 11) & 7);
  bits(13, 11, "AGC_SETTLE_BLANK_UP", "RW", description);
  bits(10, 10, "PEAKDET_CUR_BOOST", "RW", "");
  sprintf(description, "%d", (v >> 6) & 7);
  bits(9, 6, "AGC_MULT_SLOW", "RW", description);
  sprintf(description, "%d", (v >> 2) & 7);
  bits(5, 2, "AGC_SETTLE_FIXED", "RW", description);
  sprintf(description, "%d", v & 3);
  bits(1, 0, "AGC_SETTLE_VAR", "RW", description);
}
```