user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x210,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D66(%rip),%rax
  mov    %rax,%rsi
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  call   <popen@plt>
  mov    %rax,-0x200(%rbp)
  mov    -0x200(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x15,%edx
  mov    $0x1,%esi
  lea    D18(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  mov    -0x200(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x12,%edx
  mov    $0x1,%esi
  lea    D52(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  movl   $0x1,-0x204(%rbp)
  jmp    L2
L73:
  mov    -0x200(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x1e,%edx
  mov    $0x1,%esi
  lea    D92(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  movl   $0x0,-0x208(%rbp)
  jmp    L8
L58:
  mov    -0x204(%rbp),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x208(%rbp),%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  D43(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  mov    -0x1f8(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    -0x208(%rbp),%edx
  movslq %edx,%rdx
  mov    %rax,-0x1f0(%rbp,%rdx,8)
  mov    -0x1f8(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    -0x208(%rbp),%edx
  movslq %edx,%rdx
  mov    %rax,-0x100(%rbp,%rdx,8)
  mov    -0x208(%rbp),%eax
  cltq
  mov    -0x100(%rbp,%rax,8),%rcx
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x208(%rbp),%xmm1
  movsd  D119(%rip),%xmm0
  addsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%edx
  mov    -0x200(%rbp),%rax
  movq   %rcx,%xmm0
  lea    D32(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0x208(%rbp)
L8:
  cmpl   $0x1d,-0x208(%rbp)
  jle    L58
  mov    -0x200(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x2,%edx
  mov    $0x1,%esi
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  movl   $0x0,-0x208(%rbp)
  jmp    L47
L7:
  mov    -0x208(%rbp),%eax
  cltq
  mov    -0x1f0(%rbp,%rax,8),%rcx
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x208(%rbp),%xmm1
  movsd  D106(%rip),%xmm0
  addsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%edx
  mov    -0x200(%rbp),%rax
  movq   %rcx,%xmm0
  lea    D32(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  addl   $0x1,-0x208(%rbp)
L47:
  cmpl   $0x1d,-0x208(%rbp)
  jle    L7
  mov    -0x200(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x2,%edx
  mov    $0x1,%esi
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  mov    -0x200(%rbp),%rax
  mov    %rax,%rdi
  call   <fflush@plt>
  movl   $0x0,-0x208(%rbp)
  jmp    L14
L84:
  addl   $0x1,-0x208(%rbp)
L14:
  cmpl   $0x98967f,-0x208(%rbp)
  jle    L84
  addl   $0x1,-0x204(%rbp)
L2:
  cmpl   $0x64,-0x204(%rbp)
  jle    L73
  mov    -0x200(%rbp),%rax
  mov    %rax,%rdi
  call   <pclose@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L16
  call   <__stack_chk_fail@plt>
L16:
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D66
type_guessed: string
name: parse_data
arguments: label: D29
type_guessed: string
name: parse_data
arguments: label: D18
type_guessed: string
name: parse_data
arguments: label: D52
type_guessed: string
name: parse_data
arguments: label: D92
type_guessed: string
name: parse_data
arguments: label: D43
type_guessed: f64
name: parse_data
arguments: label: D119
type_guessed: f64
name: parse_data
arguments: label: D32
type_guessed: string
name: parse_data
arguments: label: D69
type_guessed: string
name: parse_data
arguments: label: D106
type_guessed: f64

tool: D66: w

tool: D29: gnuplot --persist

tool: D18: load 'startup_2ch.p'


tool: D52: set yrange [-1:1]


tool: D92: plot '-' w boxes, '-' w boxes


tool: D43: 100

tool: D119: 0.25

tool: D32: %f %f


tool: D69: e


tool: D106: 0.75

assistant: ```c
int main() {
  double xarray[30];
  double yarray[30];
  FILE *pipe_gp;
  pipe_gp = popen("gnuplot --persist", "w");
  int i;
  int j;
  fputs("load 'startup_2ch.p'\n", pipe_gp);
  fputs("set yrange [-1:1]\n", pipe_gp);
  for (j = 1; j <= 100; j++) {
    fputs("plot '-' w boxes, '-' w boxes\n", pipe_gp);
    for (i = 0; i < 30; ++i) {
      double x = (i + 4 * j) / 100.0;
      xarray[i] = sin(x);
      yarray[i] = cos(x);
      fprintf(pipe_gp, "%f %f\n", i + 0.25, yarray[i]);
    }
    fputs("e\n", pipe_gp);
    for (i = 0; i < 30; i++) {
      fprintf(pipe_gp, "%f %f\n", i + 0.75, xarray[i]);
    }
    fputs("e\n", pipe_gp);
    fflush(pipe_gp);
    for (i = 0; i < 10000000; i++) {
    }
  }
  pclose(pipe_gp);
  return 0;
}
```