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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1b0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movq   $0x0,-0x190(%rbp)
  fldt   0xcb8(%rip)        # 2060 <_fini+0x8f4>
  fstpt  -0x130(%rbp)
  fldz
  fstpt  -0x140(%rbp)
  fldt   0xcb4(%rip)        # 2070 <_fini+0x904>
  fstpt  -0x120(%rbp)
  lea    D81(%rip),%rax
  mov    %rax,%rsi
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x188(%rbp)
  cmpq   $0x0,-0x188(%rbp)
  jne    L22
  lea    D97(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L22:
  mov    $0xa,%edi
  call   <malloc@plt>
  mov    %rax,-0x180(%rbp)
  movl   $0x0,-0x198(%rbp)
  jmp    L32
L28:
  mov    -0x188(%rbp),%rax
  mov    %rax,%rdi
  call   <feof@plt>
  test   %eax,%eax
  jne    L7
  mov    -0x180(%rbp),%rdx
  mov    -0x188(%rbp),%rax
  lea    D100(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <fscanf@plt>
  mov    -0x180(%rbp),%rax
  mov    $0xa,%esi
  mov    %rax,%rdi
  call   <cov_deserialize@plt>
  mov    %eax,%edx
  mov    -0x198(%rbp),%eax
  cltq
  mov    %edx,-0xe0(%rbp,%rax,4)
L7:
  addl   $0x1,-0x198(%rbp)
L32:
  cmpl   $0x9,-0x198(%rbp)
  jle    L28
  mov    $0x0,%edi
  call   <sqrtf@plt>
  mov    $0x0,%edi
  call   <acosf@plt>
  mov    $0x0,%edi
  call   <sinf@plt>
  mov    $0x0,%eax
  call   <current_time_ns@plt>
  mov    %rax,-0x178(%rbp)
  movl   $0x0,-0x19c(%rbp)
  jmp    L11
L6:
  mov    -0x19c(%rbp),%eax
  cltq
  mov    -0xe0(%rbp,%rax,4),%eax
  mov    %eax,-0x194(%rbp)
  fld1
  fchs
  fstpt  -0x160(%rbp)
  push   -0x158(%rbp)
  push   -0x160(%rbp)
  call   <acos@plt>
  add    $0x10,%rsp
  fstpt  -0x110(%rbp)
  fldz
  fstpt  -0x150(%rbp)
  fldz
  fstpt  -0x160(%rbp)
  fildl  -0x194(%rbp)
  fldt   -0x110(%rbp)
  fdivp  %st,%st(1)
  fstpt  -0x100(%rbp)
  movl   $0x1,-0x198(%rbp)
  jmp    L19
L83:
  fildl  -0x198(%rbp)
  fldt   -0x100(%rbp)
  fmulp  %st,%st(1)
  fnstcw -0x1a2(%rbp)
  movzwl -0x1a2(%rbp),%eax
  or     $0xc,%ah
  mov    %ax,-0x1a4(%rbp)
  fldcw  -0x1a4(%rbp)
  fistpl -0x1a8(%rbp)
  fldcw  -0x1a2(%rbp)
  mov    -0x1a8(%rbp),%edi
  call   <fun@plt>
  fstpt  -0xf0(%rbp)
  fldt   -0x100(%rbp)
  fld    %st(0)
  fmulp  %st,%st(1)
  fldt   -0xf0(%rbp)
  fldt   -0x160(%rbp)
  fsubrp %st,%st(1)
  fldt   -0xf0(%rbp)
  fldt   -0x160(%rbp)
  fsubrp %st,%st(1)
  fmulp  %st,%st(1)
  faddp  %st,%st(1)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrt@plt>
  add    $0x10,%rsp
  fldt   -0x150(%rbp)
  faddp  %st,%st(1)
  fstpt  -0x150(%rbp)
  fldt   -0xf0(%rbp)
  fstpt  -0x160(%rbp)
  addl   $0x1,-0x198(%rbp)
L19:
  mov    -0x198(%rbp),%eax
  cmp    -0x194(%rbp),%eax
  jle    L83
  mov    -0x19c(%rbp),%eax
  cltq
  shl    $0x4,%rax
  add    %rbp,%rax
  sub    $0xb0,%rax
  fldt   -0x150(%rbp)
  fstpt  (%rax)
  push   -0x118(%rbp)
  push   -0x120(%rbp)
  mov    $0xa,%edi
  call   <pow@plt>
  add    $0x10,%rsp
  fldt   -0x150(%rbp)
  fmulp  %st,%st(1)
  fldt   -0x140(%rbp)
  fxch   %st(1)
  fcomip %st(1),%st
  fstp   %st(0)
  jbe    L77
  push   -0x118(%rbp)
  push   -0x120(%rbp)
  mov    $0xa,%edi
  call   <pow@plt>
  add    $0x10,%rsp
  fldt   -0x150(%rbp)
  fmulp  %st,%st(1)
  fstpt  -0x140(%rbp)
L77:
  addl   $0x1,-0x19c(%rbp)
L11:
  cmpl   $0x9,-0x19c(%rbp)
  jle    L6
  mov    $0x0,%eax
  call   <current_time_ns@plt>
  mov    %rax,-0x170(%rbp)
  mov    -0x170(%rbp),%rax
  sub    -0x178(%rbp),%rax
  mov    %rax,-0x190(%rbp)
  lea    -0xb0(%rbp),%rax
  push   -0x138(%rbp)
  push   -0x140(%rbp)
  mov    %rax,%rdx
  mov    $0xa,%esi
  lea    D64(%rip),%rax
  mov    %rax,%rdi
  call   <cov_arr_spec_log@plt>
  add    $0x10,%rsp
  lea    -0xb0(%rbp),%rax
  lea    D54(%rip),%rdx
  mov    %rdx,%rcx
  lea    D25(%rip),%rdx
  mov    $0xa,%esi
  mov    %rax,%rdi
  call   <cov_arr_log@plt>
  mov    $0xa,%edx
  lea    D64(%rip),%rax
  mov    %rax,%rsi
  lea    D54(%rip),%rax
  mov    %rax,%rdi
  call   <cov_check@plt>
  lea    D10(%rip),%rax
  mov    %rax,%rsi
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x168(%rbp)
  mov    -0x190(%rbp),%rdx
  mov    -0x168(%rbp),%rax
  lea    D11(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x168(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L96
  call   <__stack_chk_fail@plt>
L96:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D81
type_infered: string
name: disassemble_data
arguments: data_label: D60
type_infered: string
name: disassemble_data
arguments: data_label: D97
type_infered: string
name: disassemble_data
arguments: data_label: D100
type_infered: string
name: disassemble_data
arguments: data_label: D64
type_infered: string
name: disassemble_data
arguments: data_label: D54
type_infered: string
name: disassemble_data
arguments: data_label: D25
type_infered: string
name: disassemble_data
arguments: data_label: D10
type_infered: string
name: disassemble_data
arguments: data_label: D77
type_infered: string
name: disassemble_data
arguments: data_label: D11
type_infered: string

tool: D81: r

tool: D60: final_inputs

tool: D97: Could not open final_inputs


tool: D100: %s

tool: D64: spec.cov

tool: D54: log.cov

tool: D25: result

tool: D10: w

tool: D77: score.cov

tool: D11: %ld


assistant: ```c
int main() {
  int l;
  uint64_t start, end;
  long int diff = 0;
  int i, j, k;
  long double h, t1, t2, dppi, ans = 5.795776322412856L;
  long double s1;
  long double log[10];
  long double threshold = 0.0;
  long double epsilon = -4.0;
  int finputs[10];
  FILE *infile = fopen("final_inputs", "r");
  if (!infile) {
    printf("Could not open final_inputs\n");
  }
  char *s = malloc(10);
  for (i = 0; i < 10; i++) {
    if (!feof(infile)) {
      fscanf(infile, "%s", s);
      finputs[i] = (int)cov_deserialize(s, 10);
    }
  }
  sqrtf(0);
  acosf(0);
  sinf(0);
  start = current_time_ns();
  for (l = 0; l < 10; l++) {
    int n = finputs[l];
    t1 = -1.0;
    dppi = acos(t1);
    s1 = 0.0;
    t1 = 0.0;
    h = dppi / n;
    for (i = 1; i <= n; i++) {
      t2 = fun(i * h);
      s1 = s1 + sqrt(h * h + (t2 - t1) * (t2 - t1));
      t1 = t2;
    }
    log[l] = (long double)s1;
    if (s1 * pow(10, epsilon) > threshold) {
      threshold = s1 * pow(10, epsilon);
    }
  }
  end = current_time_ns();
  diff = (end - start);
  cov_arr_spec_log("spec.cov", threshold, 10, log);
  cov_arr_log(log, 10, "result", "log.cov");
  cov_check("log.cov", "spec.cov", 10);
  FILE *file;
  file = fopen("score.cov", "w");
  fprintf(file, "%ld\n", diff);
  fclose(file);
  return 0;
}
```