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

```asm
<cmio_out>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x27000(%rsp),%r11
L116:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L116
  sub    $0x210,%rsp
  movsd  %xmm0,-0x271a8(%rbp)
  mov    %rdi,-0x271b0(%rbp)
  movsd  %xmm1,-0x271b8(%rbp)
  movsd  %xmm2,-0x271c0(%rbp)
  mov    %esi,-0x271c4(%rbp)
  mov    %edx,-0x271c8(%rbp)
  mov    %rcx,-0x271d0(%rbp)
  mov    %r8,-0x271d8(%rbp)
  mov    %r9,-0x271e0(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x271e8(%rbp)
  mov    0x18(%rbp),%rax
  mov    %rax,-0x271f0(%rbp)
  mov    0x20(%rbp),%rax
  mov    %rax,-0x271f8(%rbp)
  mov    0x28(%rbp),%rax
  mov    %rax,-0x27200(%rbp)
  mov    0x30(%rbp),%rax
  mov    %rax,-0x27208(%rbp)
  mov    0x48(%rbp),%rax
  mov    %rax,-0x27210(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x20206128,-0x60(%rbp)
  movb   $0x29,-0x5c(%rbp)
  movsd  D11(%rip),%xmm0
  movsd  %xmm0,-0x27180(%rbp)
  movsd  D22(%rip),%xmm0
  movsd  %xmm0,-0x27178(%rbp)
  movsd  -0x271b8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D7(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x27170(%rbp)
  movsd  -0x271c0(%rbp),%xmm0
  divsd  -0x271b8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log10@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x27168(%rbp)
  mov    -0x27208(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L112
  movl   $0x2,-0x27198(%rbp)
L112:
  mov    -0x27208(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L34
  movl   $0x4,-0x27198(%rbp)
L34:
  mov    -0x27208(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L75
  movl   $0x7,-0x27198(%rbp)
L75:
  mov    -0x27198(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    $0x3,%eax
  mov    %eax,-0x27184(%rbp)
  cmpl   $0xffffffff,0x38(%rbp)
  je     L64
  cmpl   $0x1,0x38(%rbp)
  jne    L46
L64:
  movl   $0x1,-0x27194(%rbp)
  jmp    L115
L36:
  addl   $0x1,-0x27194(%rbp)
L115:
  mov    -0x27194(%rbp),%eax
  cmp    -0x271c4(%rbp),%eax
  jl     L36
  movl   $0x1,-0x27190(%rbp)
  jmp    L142
L144:
  addl   $0x1,-0x27190(%rbp)
L142:
  mov    -0x27190(%rbp),%eax
  cmp    -0x271c4(%rbp),%eax
  jl     L144
L46:
  movl   $0x1,-0x2718c(%rbp)
  jmp    L13
L2:
  addl   $0x1,-0x2718c(%rbp)
L13:
  mov    -0x2718c(%rbp),%eax
  cmp    -0x271c4(%rbp),%eax
  jl     L2
  movl   $0x1,-0x27188(%rbp)
  jmp    L53
L29:
  addl   $0x1,-0x27188(%rbp)
L53:
  mov    -0x27188(%rbp),%eax
  cmp    -0x271c4(%rbp),%eax
  jl     L29
  mov    -0x27210(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  movl   $0x0,0x38(%rbp)
  mov    0x38(%rbp),%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L24
  call   <__stack_chk_fail@plt>
L24:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D11
datatype: byte[8]
name: disassemble_data
arguments: tag: D22
datatype: byte[8]
name: disassemble_data
arguments: tag: D7
datatype: f64

tool: {"D11": [0x1b,0x4b,0x53,0xaa,0xf9,0x20,0x7f,0x40]}

tool: {"D22": [0xeb,0x20,0xa4,0xe8,0xc2,0x66,0xaa,0x40]}

tool: D7: 1

assistant: ```c
int cmio_out(double time, double jcen[3], double rcen, double rmax, int nbod, int nbig, double *m, double **xh, double **vh, double **s, double *rho, int *stat, char **id, int opt[8], int opflag, int algor, FILE *outfile) {
  int len, nchar;
  double rhocgs, k_2, rfac, rcen_2, fr, fv, theta, phi, vtheta, vphi;
  char header[80];
  char c[2000][80];
  char mio_fl2c_out[8], mio_re2c_out[8];
  char fout[5] = {'(', 'a', ' ', ' ', ')'};
  rhocgs = 1.4959787e13 * 1.4959787e13 * 1.4959787e13 * 2.959122082855911e-4 / 1.9891e33;
  k_2 = 1.0 / 2.959122082855911e-4;
  rcen_2 = 1.0 / (rcen * rcen);
  rfac = log10(rmax / rcen);
  if (opt[3] == 1) {
    nchar = 2;
  }
  if (opt[3] == 2) {
    nchar = 4;
  }
  if (opt[3] == 3) {
    nchar = 7;
  }
  len = 3 + 6 * nchar;
  if (opflag == -1 || opflag == 1) {
    for (int k = 1; k < nbod; k++) {
    }
    for (int k = 1; k < nbod; k++) {
    }
  }
  for (int k = 1; k < nbod; k++) {
  }
  for (int k = 1; k < nbod; k++) {
  }
  fclose(outfile);
  opflag = 0;
  return opflag;
}
```