// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/output.c
// Function: output_tk
int output_tk(
              struct background * pba,
              struct perturbations * ppt,
              struct output * pop
              ) {

  /** Summary: */

  /** - define local variables */
  char titles[_MAXTITLESTRINGLENGTH_]={0};
  double * data;
  int size_data, number_of_titles;

  FILE * tkfile;

  int index_md;
  int index_ic;
  int index_z;

  double z;

  FileName file_name;
  char redshift_suffix[7]; // 7 is enough to write "z%d_" as long as there are at most 10'000 bins
  char first_line[_LINE_LENGTH_MAX_];
  char ic_suffix[_SUFFIXNAMESIZE_];   // 4 is enough to write "ad", "bi", "cdi", "nid", "niv", ...


  index_md=ppt->index_md_scalars;

  if (pop->output_format == camb_format) {

    class_test(pba->N_ncdm>1,
               pop->error_message,
               "you wish to output the transfer functions in CMBFAST/CAMB format but you have more than one non-cold dark matter (ncdm) species. The two are not compatible (since CMBFAST/CAMB only have one ncdm species): switch to CLASS output format or keep only on ncdm species");

    class_test(ppt->has_velocity_transfers == _TRUE_,
               pop->error_message,
               "you wish to output the transfer functions in CMBFAST/CAMB format, but you requested velocity transfer functions. The two are not compatible (since CMBFAST/CAMB do not compute velocity transfer functions): switch to CLASS output format, or ask only for density transfer function");
  }


  class_call(perturbations_output_titles(pba,ppt,pop->output_format,titles),
             pba->error_message,
             pop->error_message);
  number_of_titles = get_number_of_titles(titles);
  size_data = number_of_titles*ppt->k_size[index_md];

  class_alloc(data, sizeof(double)*ppt->ic_size[index_md]*size_data, pop->error_message);

  for (index_z = 0; index_z < pop->z_pk_num; index_z++) {

    z = pop->z_pk[index_z];

    /** - first, check that requested redshift z_pk is consistent */

    class_test((pop->z_pk[index_z] > ppt->z_max_pk),
               pop->error_message,
               "T_i(k,z) computed up to z=%f but requested at z=%f. Must increase z_max_pk in precision file.",ppt->z_max_pk,pop->z_pk[index_z]);

    if (pop->z_pk_num == 1)
      redshift_suffix[0]='\0';
    else
      class_sprintf(redshift_suffix,"z%d_",index_z+1);

    /** - second, open only the relevant files, and write a heading in each of them */

    class_call(perturbations_output_data_at_z(pba,
                                              ppt,
                                              pop->output_format,
                                              pop->z_pk[index_z],
                                              number_of_titles,
                                              data
                                              ),
               ppt->error_message,
               pop->error_message);

    for (index_ic = 0; index_ic < ppt->ic_size[index_md]; index_ic++) {

      class_call(perturbations_output_firstline_and_ic_suffix(ppt, index_ic, first_line, ic_suffix),
                 ppt->error_message, pop->error_message);

      if ((ppt->has_ad == _TRUE_) && (ppt->ic_size[index_md] == 1) )
        class_sprintf(file_name,"%s%s%s",pop->root,redshift_suffix,"tk.dat");
      else
        class_sprintf(file_name,"%s%s%s%s%s",pop->root,redshift_suffix,"tk_",ic_suffix,".dat");

      class_open(tkfile, file_name, "w", pop->error_message);

      if (pop->write_header == _TRUE_) {
        if (pop->output_format == class_format) {
          fprintf(tkfile,"# Transfer functions T_i(k) %sat redshift z=%g\n",first_line,z);
          fprintf(tkfile,"# for k=%g to %g h/Mpc,\n",ppt->k[index_md][0]/pba->h,ppt->k[index_md][ppt->k_size[index_md]-1]/pba->h);
          fprintf(tkfile,"# number of wavenumbers equal to %d\n",ppt->k_size[index_md]);
          if (ppt->has_density_transfers == _TRUE_) {
            fprintf(tkfile,"# d_i   stands for (delta rho_i/rho_i)(k,z) with above normalization \n");
            fprintf(tkfile,"# d_tot stands for (delta rho_tot/rho_tot)(k,z) with rho_Lambda NOT included in rho_tot\n");
            fprintf(tkfile,"# (note that this differs from the transfer function output from CAMB/CMBFAST, which gives the same\n");
            fprintf(tkfile,"#  quantities divided by -k^2 with k in Mpc^-1; use format=camb to match CAMB)\n");
          }
          if (ppt->has_velocity_transfers == _TRUE_) {
            fprintf(tkfile,"# t_i   stands for theta_i(k,z) with above normalization \n");
            fprintf(tkfile,"# t_tot stands for (sum_i [rho_i+p_i] theta_i)/(sum_i [rho_i+p_i]))(k,z)\n");
          }
          fprintf(tkfile,"#\n");
        }
        else if (pop->output_format == camb_format) {

          fprintf(tkfile,"# Rescaled matter transfer functions [-T_i(k)/k^2] %sat redshift z=%g\n",first_line,z);
          fprintf(tkfile,"# for k=%g to %g h/Mpc,\n",ppt->k[index_md][0]/pba->h,ppt->k[index_md][ppt->k_size[index_md]-1]/pba->h);
          fprintf(tkfile,"# number of wavenumbers equal to %d\n",ppt->k_size[index_md]);
          fprintf(tkfile,"# T_i   stands for (delta rho_i/rho_i)(k,z) with above normalization \n");
          fprintf(tkfile,"# The rescaling factor [-1/k^2] with k in 1/Mpc is here to match the CMBFAST/CAMB output convention\n");
          fprintf(tkfile,"#\n");
          fprintf(tkfile,"#");
          fprintf(tkfile,"\n");

        }
      }

      output_print_data(tkfile,
                        titles,
                        data+index_ic*size_data,
                        size_data);

      /** - free memory and close files */
      fclose(tkfile);

    }

  }

  free(data);

  return _SUCCESS_;

}

// Assembly:
subq $0x7cf8, %rsp           # imm = 0x7CF8
movq %rdi, 0x7ce8(%rsp)
movq %rsi, 0x7ce0(%rsp)
movq %rdx, 0x7cd8(%rsp)
leaq 0x5d90(%rsp), %rdi
xorl %esi, %esi
movl $0x1f40, %edx           # imm = 0x1F40
callq 0x8210
movq 0x7ce0(%rsp), %rax
movl 0x848(%rax), %eax
movl %eax, 0x5d74(%rsp)
movq 0x7cd8(%rsp), %rax
cmpl $0x1, 0x40c(%rax)
jne 0x1cc979
movq 0x7ce8(%rsp), %rax
cmpl $0x1, 0x248(%rax)
jle 0x1cc8ea
leaq 0x5040(%rsp), %rdi
leaq 0x474f2(%rip), %rsi     # 0x213d6f
movb $0x0, %al
callq 0x5b9c0
leaq 0x4840(%rsp), %rdi
leaq 0x5040(%rsp), %rcx
leaq 0x57e7(%rip), %rsi      # 0x1d2082
leaq 0x475d5(%rip), %rdx     # 0x213e77
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x4840(%rsp), %r8
leaq 0x576d(%rip), %rsi      # 0x1d2034
leaq 0x475b7(%rip), %rdx     # 0x213e85
movl $0x421, %ecx            # imm = 0x421
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
movq 0x7ce0(%rsp), %rax
movswl 0x36(%rax), %eax
cmpl $0x1, %eax
jne 0x1cc977
leaq 0x4040(%rsp), %rdi
leaq 0x47585(%rip), %rsi     # 0x213e8f
movb $0x0, %al
callq 0x5b9c0
leaq 0x3840(%rsp), %rdi
leaq 0x4040(%rsp), %rcx
leaq 0x575a(%rip), %rsi      # 0x1d2082
leaq 0x1217a(%rip), %rdx     # 0x1deaa9
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x3840(%rsp), %r8
leaq 0x56e0(%rip), %rsi      # 0x1d2034
leaq 0x4752a(%rip), %rdx     # 0x213e85
movl $0x425, %ecx            # imm = 0x425
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
jmp 0x1cc979
movq 0x7ce8(%rsp), %rdi
movq 0x7ce0(%rsp), %rsi
movq 0x7cd8(%rsp), %rax
movl 0x40c(%rax), %edx
leaq 0x5d90(%rsp), %rcx
callq 0xc9ca0
cmpl $0x1, %eax
jne 0x1cca16
leaq 0x3040(%rsp), %rdi
movq 0x7ce8(%rsp), %rcx
addq $0xd1c, %rcx            # imm = 0xD1C
leaq 0x5a11(%rip), %rsi      # 0x1d23d8
leaq 0x475d7(%rip), %rdx     # 0x213fa5
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x3040(%rsp), %r8
leaq 0x5641(%rip), %rsi      # 0x1d2034
leaq 0x4748b(%rip), %rdx     # 0x213e85
movl $0x42b, %ecx            # imm = 0x42B
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
leaq 0x5d90(%rsp), %rdi
callq 0x5bba0
movl %eax, 0x5d80(%rsp)
movl 0x5d80(%rsp), %eax
movq 0x7ce0(%rsp), %rcx
movq 0x9c8(%rcx), %rcx
movslq 0x5d74(%rsp), %rdx
imull (%rcx,%rdx,4), %eax
movl %eax, 0x5d84(%rsp)
movq 0x7ce0(%rsp), %rax
movq 0x870(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movslq (%rax,%rcx,4), %rdi
shlq $0x3, %rdi
movslq 0x5d84(%rsp), %rax
imulq %rax, %rdi
callq 0x8460
movq %rax, 0x5d88(%rsp)
cmpq $0x0, 0x5d88(%rsp)
jne 0x1ccb31
movq 0x7ce0(%rsp), %rax
movq 0x870(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movslq (%rax,%rcx,4), %rax
shlq $0x3, %rax
movslq 0x5d84(%rsp), %rcx
imulq %rcx, %rax
movl %eax, 0x303c(%rsp)
leaq 0x2830(%rsp), %rdi
movl 0x303c(%rsp), %ecx
leaq 0x5522(%rip), %rsi      # 0x1d2004
leaq 0x42de5(%rip), %rdx     # 0x20f8ce
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x2830(%rsp), %r8
leaq 0x5526(%rip), %rsi      # 0x1d2034
leaq 0x47370(%rip), %rdx     # 0x213e85
movl $0x42f, %ecx            # imm = 0x42F
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
movl $0x0, 0x5d6c(%rsp)
movl 0x5d6c(%rsp), %eax
movq 0x7cd8(%rsp), %rcx
cmpl 0xe0(%rcx), %eax
jge 0x1cd3d1
movq 0x7cd8(%rsp), %rax
movslq 0x5d6c(%rsp), %rcx
movsd 0xe8(%rax,%rcx,8), %xmm0
movsd %xmm0, 0x5d60(%rsp)
movq 0x7cd8(%rsp), %rax
movslq 0x5d6c(%rsp), %rcx
movsd 0xe8(%rax,%rcx,8), %xmm0
movq 0x7ce0(%rsp), %rax
ucomisd 0x818(%rax), %xmm0
jbe 0x1ccc4d
leaq 0x2030(%rsp), %rdi
movq 0x7ce0(%rsp), %rax
movsd 0x818(%rax), %xmm0
movq 0x7cd8(%rsp), %rax
movslq 0x5d6c(%rsp), %rcx
movsd 0xe8(%rax,%rcx,8), %xmm1
leaq 0x47404(%rip), %rsi     # 0x213fe4
movb $0x2, %al
callq 0x5b9c0
leaq 0x1830(%rsp), %rdi
leaq 0x2030(%rsp), %rcx
leaq 0x5484(%rip), %rsi      # 0x1d2082
leaq 0x46c31(%rip), %rdx     # 0x213836
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x1830(%rsp), %r8
leaq 0x540a(%rip), %rsi      # 0x1d2034
leaq 0x47254(%rip), %rdx     # 0x213e85
movl $0x439, %ecx            # imm = 0x439
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
movq 0x7cd8(%rsp), %rax
cmpl $0x1, 0xe0(%rax)
jne 0x1ccc68
movb $0x0, 0x5c59(%rsp)
jmp 0x1cccbf
jmp 0x1ccc6a
movl 0x5d6c(%rsp), %ecx
addl $0x1, %ecx
xorl %eax, %eax
movl %eax, %esi
leaq 0x46bdc(%rip), %rdx     # 0x21385b
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x182c(%rsp)
leaq 0x5c59(%rsp), %rdi
movl 0x182c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movl 0x5d6c(%rsp), %ecx
addl $0x1, %ecx
leaq 0x46ba5(%rip), %rdx     # 0x21385b
movb $0x0, %al
callq 0x8540
jmp 0x1cccbf
movq 0x7ce8(%rsp), %rdi
movq 0x7ce0(%rsp), %rsi
movq 0x7cd8(%rsp), %rax
movl 0x40c(%rax), %edx
movq 0x7cd8(%rsp), %rax
movslq 0x5d6c(%rsp), %rcx
movsd 0xe8(%rax,%rcx,8), %xmm0
movl 0x5d80(%rsp), %ecx
movq 0x5d88(%rsp), %r8
callq 0xc80b0
cmpl $0x1, %eax
jne 0x1ccd7c
leaq 0x1020(%rsp), %rdi
movq 0x7ce0(%rsp), %rcx
addq $0x6c8a, %rcx           # imm = 0x6C8A
leaq 0x56ab(%rip), %rsi      # 0x1d23d8
leaq 0x4730e(%rip), %rdx     # 0x214042
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x1020(%rsp), %r8
leaq 0x52db(%rip), %rsi      # 0x1d2034
leaq 0x47125(%rip), %rdx     # 0x213e85
movl $0x44a, %ecx            # imm = 0x44A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
movl $0x0, 0x5d70(%rsp)
movl 0x5d70(%rsp), %eax
movq 0x7ce0(%rsp), %rcx
movq 0x870(%rcx), %rcx
movslq 0x5d74(%rsp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x1cd3b9
movq 0x7ce0(%rsp), %rdi
movl 0x5d70(%rsp), %esi
leaq 0x5850(%rsp), %rdx
leaq 0x584c(%rsp), %rcx
callq 0xca610
cmpl $0x1, %eax
jne 0x1cce44
leaq 0x820(%rsp), %rdi
movq 0x7ce0(%rsp), %rcx
addq $0x6c8a, %rcx           # imm = 0x6C8A
leaq 0x55e3(%rip), %rsi      # 0x1d23d8
leaq 0x472b0(%rip), %rdx     # 0x2140ac
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x820(%rsp), %r8
leaq 0x5213(%rip), %rsi      # 0x1d2034
leaq 0x4705d(%rip), %rdx     # 0x213e85
movl $0x44f, %ecx            # imm = 0x44F
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
movq 0x7ce0(%rsp), %rax
movswl 0x14(%rax), %eax
cmpl $0x1, %eax
jne 0x1cceea
movq 0x7ce0(%rsp), %rax
movq 0x870(%rax), %rax
movslq 0x5d74(%rsp), %rcx
cmpl $0x1, (%rax,%rcx,4)
jne 0x1cceea
jmp 0x1cce78
movq 0x7cd8(%rsp), %rcx
leaq 0x5c59(%rsp), %r8
xorl %eax, %eax
movl %eax, %esi
leaq 0x47270(%rip), %rdx     # 0x214103
leaq 0x9d09(%rip), %r9       # 0x1d6ba3
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x81c(%rsp)
leaq 0x5c60(%rsp), %rdi
movl 0x81c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movq 0x7cd8(%rsp), %rcx
leaq 0x5c59(%rsp), %r8
leaq 0x4722c(%rip), %rdx     # 0x214103
leaq 0x9cc5(%rip), %r9       # 0x1d6ba3
movb $0x0, %al
callq 0x8540
jmp 0x1ccf8b
jmp 0x1cceec
movq 0x7cd8(%rsp), %rcx
leaq 0x5c59(%rsp), %r8
leaq 0x584c(%rsp), %r10
xorl %eax, %eax
movl %eax, %esi
leaq 0x471f0(%rip), %rdx     # 0x2140ff
leaq 0x471f4(%rip), %r9      # 0x21410a
leaq 0x9cce(%rip), %rax      # 0x1d6beb
movq %rsi, %rdi
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x8540
movl %eax, 0x818(%rsp)
leaq 0x5c60(%rsp), %rdi
movl 0x818(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movq 0x7cd8(%rsp), %rcx
leaq 0x5c59(%rsp), %r8
leaq 0x584c(%rsp), %r10
leaq 0x47194(%rip), %rdx     # 0x2140ff
leaq 0x47198(%rip), %r9      # 0x21410a
leaq 0x9c72(%rip), %rax      # 0x1d6beb
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x8540
jmp 0x1ccf8b
leaq 0x5c60(%rsp), %rdi
leaq 0x848f(%rip), %rsi      # 0x1d5429
callq 0x8410
movq %rax, 0x5d78(%rsp)
cmpq $0x0, 0x5d78(%rsp)
jne 0x1cd019
leaq 0x10(%rsp), %rdi
leaq 0x5c60(%rsp), %rcx
leaq 0x7a0a(%rip), %rsi      # 0x1d49d0
leaq 0x47141(%rip), %rdx     # 0x21410e
leaq 0x21574(%rip), %r8      # 0x1ee548
movb $0x0, %al
callq 0x5b9c0
movq 0x7cd8(%rsp), %rdi
addq $0x420, %rdi            # imm = 0x420
leaq 0x10(%rsp), %r8
leaq 0x503e(%rip), %rsi      # 0x1d2034
leaq 0x46e88(%rip), %rdx     # 0x213e85
movl $0x456, %ecx            # imm = 0x456
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7cf4(%rsp)
jmp 0x1cd3e9
movq 0x7cd8(%rsp), %rax
movswl 0x408(%rax), %eax
cmpl $0x1, %eax
jne 0x1cd35a
movq 0x7cd8(%rsp), %rax
cmpl $0x0, 0x40c(%rax)
jne 0x1cd1ed
movq 0x5d78(%rsp), %rdi
leaq 0x5850(%rsp), %rdx
movsd 0x5d60(%rsp), %xmm0
leaq 0x470af(%rip), %rsi     # 0x214115
movb $0x1, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
movq 0x7ce0(%rsp), %rax
movq 0x9d0(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movsd (%rax), %xmm0
movq 0x7ce8(%rsp), %rax
divsd 0x8(%rax), %xmm0
movq 0x7ce0(%rsp), %rax
movq 0x9d0(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x7ce0(%rsp), %rcx
movq 0x9c8(%rcx), %rcx
movslq 0x5d74(%rsp), %rdx
movl (%rcx,%rdx,4), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x7ce8(%rsp), %rax
divsd 0x8(%rax), %xmm1
leaq 0x47050(%rip), %rsi     # 0x214145
movb $0x2, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
movq 0x7ce0(%rsp), %rax
movq 0x9c8(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movl (%rax,%rcx,4), %edx
leaq 0x47039(%rip), %rsi     # 0x21415e
movb $0x0, %al
callq 0x84e0
movq 0x7ce0(%rsp), %rax
movswl 0x34(%rax), %eax
cmpl $0x1, %eax
jne 0x1cd195
movq 0x5d78(%rsp), %rdi
leaq 0x47037(%rip), %rsi     # 0x214183
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x47068(%rip), %rsi     # 0x2141ca
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x470ab(%rip), %rsi     # 0x214223
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x470fa(%rip), %rsi     # 0x214288
movb $0x0, %al
callq 0x84e0
movq 0x7ce0(%rsp), %rax
movswl 0x36(%rax), %eax
cmpl $0x1, %eax
jne 0x1cd1d2
movq 0x5d78(%rsp), %rdi
leaq 0x47123(%rip), %rsi     # 0x2142d8
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x47148(%rip), %rsi     # 0x214313
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x21410(%rip), %rsi     # 0x1ee5f1
movb $0x0, %al
callq 0x84e0
jmp 0x1cd358
movq 0x7cd8(%rsp), %rax
cmpl $0x1, 0x40c(%rax)
jne 0x1cd356
movq 0x5d78(%rsp), %rdi
leaq 0x5850(%rsp), %rdx
movsd 0x5d60(%rsp), %xmm0
leaq 0x4713b(%rip), %rsi     # 0x21435d
movb $0x1, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
movq 0x7ce0(%rsp), %rax
movq 0x9d0(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movsd (%rax), %xmm0
movq 0x7ce8(%rsp), %rax
divsd 0x8(%rax), %xmm0
movq 0x7ce0(%rsp), %rax
movq 0x9d0(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x7ce0(%rsp), %rcx
movq 0x9c8(%rcx), %rcx
movslq 0x5d74(%rsp), %rdx
movl (%rcx,%rdx,4), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x7ce8(%rsp), %rax
divsd 0x8(%rax), %xmm1
leaq 0x46e94(%rip), %rsi     # 0x214145
movb $0x2, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
movq 0x7ce0(%rsp), %rax
movq 0x9c8(%rax), %rax
movslq 0x5d74(%rsp), %rcx
movl (%rax,%rcx,4), %edx
leaq 0x46e7d(%rip), %rsi     # 0x21415e
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x470ad(%rip), %rsi     # 0x2143a4
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x470de(%rip), %rsi     # 0x2143eb
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x212ce(%rip), %rsi     # 0x1ee5f1
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x47117(%rip), %rsi     # 0x214450
movb $0x0, %al
callq 0x84e0
movq 0x5d78(%rsp), %rdi
leaq 0x22ef5(%rip), %rsi     # 0x1f0244
movb $0x0, %al
callq 0x84e0
jmp 0x1cd358
jmp 0x1cd35a
movq 0x5d78(%rsp), %rdi
leaq 0x5d90(%rsp), %rsi
movq 0x5d88(%rsp), %rdx
movl 0x5d70(%rsp), %eax
imull 0x5d84(%rsp), %eax
cltq
shlq $0x3, %rax
addq %rax, %rdx
movl 0x5d84(%rsp), %ecx
callq 0x1d1430
movq 0x5d78(%rsp), %rdi
callq 0x83c0
movl 0x5d70(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5d70(%rsp)
jmp 0x1ccd87
jmp 0x1cd3bb
movl 0x5d6c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5d6c(%rsp)
jmp 0x1ccb3c
movq 0x5d88(%rsp), %rdi
callq 0x8420
movl $0x0, 0x7cf4(%rsp)
movl 0x7cf4(%rsp), %eax
addq $0x7cf8, %rsp           # imm = 0x7CF8
retq
nopl (%rax,%rax)