user: What is the c source code of the assembly code below:

```asm
<cwritepwf_>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  mov    %rdx,%r13
  push   %r12
  mov    %rsi,%r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  mov    %r9,%rbx
  sub    $0x48,%rsp
  movsbl (%rsi),%edi
  mov    0x80(%rsp),%rax
  mov    %rcx,0x8(%rsp)
  mov    %r8,0x10(%rsp)
  mov    0x88(%rsp),%r15
  mov    %rax,0x18(%rsp)
  mov    0x98(%rsp),%rax
  mov    0x90(%rsp),%r14
  mov    %rax,0x20(%rsp)
  mov    0xa0(%rsp),%rax
  mov    %rax,0x28(%rsp)
  mov    0xa8(%rsp),%rax
  mov    %rax,0x30(%rsp)
  mov    0xb8(%rsp),%rax
  mov    %rax,0x38(%rsp)
  call   <isspace@plt>
  test   %rax,%rax
  je     L8
  movzbl 0x1(%r12),%eax
  movb   $0x20,0x1(%r12)
  mov    %al,(%r12)
L8:
  mov    %rbp,%rcx
  mov    $0x17,%edx
  mov    $0x1,%esi
  lea    D20(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rdx
  mov    %rbp,%rdi
  xor    %eax,%eax
  lea    D48(%rip),%rsi
  lea    D99(%rip),%r12
  call   <fprintf@plt>
  movsd  0x0(%r13),%xmm0
  mov    %rbp,%rdi
  lea    D76(%rip),%rsi
  mov    $0x1,%eax
  call   <fprintf@plt>
  mov    0x8(%rsp),%rax
  mov    %rbp,%rdi
  lea    D103(%rip),%rsi
  mov    (%rax),%edx
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %r12,%rdi
  mov    $0x21,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    0x10(%rsp),%rax
  mov    (%rbx),%ecx
  mov    %rbp,%rdi
  lea    D83(%rip),%rsi
  mov    (%rax),%edx
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %r12,%rdi
  mov    $0x21,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r15,%rdx
  mov    %rbp,%rdi
  xor    %eax,%eax
  lea    D55(%rip),%rsi
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x27,%edx
  mov    $0x1,%esi
  lea    D32(%rip),%rdi
  call   <fwrite@plt>
  mov    %r14,%rdx
  mov    %rbp,%rdi
  xor    %eax,%eax
  lea    D53(%rip),%rsi
  call   <fprintf@plt>
  mov    0x18(%rsp),%rax
  mov    %rbp,%rdi
  lea    D4(%rip),%rsi
  mov    (%rax),%ecx
  mov    0x30(%rsp),%rax
  movsd  (%rax),%xmm1
  mov    0x28(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    0x20(%rsp),%rax
  mov    (%rax),%edx
  mov    $0x2,%eax
  call   <fprintf@plt>
  mov    0x38(%rsp),%rax
  mov    %rbp,%rdi
  lea    D87(%rip),%rsi
  movsd  (%rax),%xmm0
  add    $0x48,%rsp
  mov    $0x1,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1080 <fprintf@plt>
```

tool_calls: name: parse_data
arguments: data_label: D20
type_guessed: string
name: parse_data
arguments: data_label: D48
type_guessed: string
name: parse_data
arguments: data_label: D99
type_guessed: string
name: parse_data
arguments: data_label: D76
type_guessed: string
name: parse_data
arguments: data_label: D103
type_guessed: string
name: parse_data
arguments: data_label: D83
type_guessed: string
name: parse_data
arguments: data_label: D55
type_guessed: string
name: parse_data
arguments: data_label: D32
type_guessed: string
name: parse_data
arguments: data_label: D53
type_guessed: string
name: parse_data
arguments: data_label: D4
type_guessed: string
name: parse_data
arguments: data_label: D87
type_guessed: string

tool: D20: # Opium generated file


tool: D48: %-2s                      : Element Symbol


tool: D99: y                       : dV/dr?


tool: D76: %4.1f                    : Zeff


tool: D103: %4d                    : # Local grid points


tool: D83: %4d %1d                  : # non-local grid points, #proj


tool: D55: %4s                       : projs


tool: D32: y                       : AOs in file?


tool: D53: %1s                       : PCC in file?


tool: D4: %4d%7.4f%7.4f %1d    : # AO grid points,h,r1,#AOs in file


tool: D87: %4.1f                  : AO radius


assistant: ```c
void cwritepwf_(FILE *fp, char *symbol, double *zeff, int *npspt0, int *nflq, int *iproj, int *idi, char *xproj, char *xrpcc, int *igrid, double *spacing, double *first, int *numa, double *aorad) {
  if (isspace(symbol[0])) {
    symbol[0] = symbol[1];
    symbol[1] = ' ';
  }
  fprintf(fp, "# Opium generated file\n");
  fprintf(fp, "%-2s                      : Element Symbol\n", symbol);
  fprintf(fp, "%4.1f                    : Zeff\n", *zeff);
  fprintf(fp, "%4d                    : # Local grid points\n", *npspt0);
  fprintf(fp, "y                       : dV/dr?\n");
  fprintf(fp, "%4d %1d                  : # non-local grid points, #proj\n", *nflq, *iproj);
  fprintf(fp, "y                       : dV/dr?\n");
  fprintf(fp, "%4s                       : projs\n", xproj);
  fprintf(fp, "y                       : AOs in file?\n");
  fprintf(fp, "%1s                       : PCC in file?\n", xrpcc);
  fprintf(fp, "%4d%7.4f%7.4f %1d    : # AO grid points,h,r1,#AOs in file\n", *igrid, *spacing, *first, *idi);
  fprintf(fp, "%4.1f                  : AO radius\n", *aorad);
}
```