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

```asm
<print_to_file>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L43
L18:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x50(%rax),%xmm1
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x38(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D118(%rip),%rax
  mov    %rax,%rdi
  mov    $0x3,%eax
  call   <printf@plt>
  addl   $0x1,-0xc(%rbp)
L43:
  cmpl   $0x9,-0xc(%rbp)
  jle    L18
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L128
L42:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x8(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L128:
  cmpl   $0x9,-0xc(%rbp)
  jle    L42
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D221(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L118
L169:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x38(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L118:
  cmpl   $0x9,-0xc(%rbp)
  jle    L169
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D171(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L129
L69:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x20(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L129:
  cmpl   $0x9,-0xc(%rbp)
  jle    L69
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D226(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L4
L136:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x40(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L4:
  cmpl   $0x9,-0xc(%rbp)
  jle    L136
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L97
L141:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x48(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L97:
  cmpl   $0x9,-0xc(%rbp)
  jle    L141
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D160(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L83
L139:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x50(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L83:
  cmpl   $0x9,-0xc(%rbp)
  jle    L139
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L151
L127:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x58(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L151:
  cmpl   $0x9,-0xc(%rbp)
  jle    L127
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D1(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0xc(%rbp)
  jmp    L150
L166:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  0x60(%rax),%xmm0
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0xc(%rbp)
L150:
  cmpl   $0x9,-0xc(%rbp)
  jle    L166
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  nop
  leave
  ret
```

tool_calls: name: parse_data
arguments: tag: D118
data_type: string
name: parse_data
arguments: tag: D201
data_type: string
name: parse_data
arguments: tag: D111
data_type: string
name: parse_data
arguments: tag: D245
data_type: string
name: parse_data
arguments: tag: D221
data_type: string
name: parse_data
arguments: tag: D171
data_type: string
name: parse_data
arguments: tag: D226
data_type: string
name: parse_data
arguments: tag: D86
data_type: string
name: parse_data
arguments: tag: D160
data_type: string
name: parse_data
arguments: tag: D28
data_type: string
name: parse_data
arguments: tag: D1
data_type: string

tool: D118: 		%f		%f		%f


tool: D201: w+

tool: D111: e_avg.dat

tool: D245: %f	%f


tool: D221: e_avg_persite.dat

tool: D171: m_avg.dat

tool: D226: m_avg_persite.dat

tool: D86: c.dat

tool: D160: c_persite.dat

tool: D28: x.dat

tool: D1: x_persite.dat

assistant: ```c
void print_to_file(double data[][13]) {
  FILE *file;
  int i;
  if (0)
    printf("\t\tTemp\t\t<E/N>\t\tC/N\n");
  {
    for (i = 0; i < 10; i++)
      printf("\t\t%f\t\t%f\t\t%f\n", data[i][0], data[i][7], data[i][10]);
  }
  file = fopen("e_avg.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][1]);
  }
  fclose(file);
  file = fopen("e_avg_persite.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][7]);
  }
  fclose(file);
  file = fopen("m_avg.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][4]);
  }
  fclose(file);
  file = fopen("m_avg_persite.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][8]);
  }
  fclose(file);
  file = fopen("c.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][9]);
  }
  fclose(file);
  file = fopen("c_persite.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][10]);
  }
  fclose(file);
  file = fopen("x.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][11]);
  }
  fclose(file);
  file = fopen("x_persite.dat", "w+");
  for (i = 0; i < 10; i++) {
    fprintf(file, "%f\t%f\n", data[i][0], data[i][12]);
  }
  fclose(file);
}
```