// File: /workspace/github_c_makefile_star2_O0/ugobas[P]tnm/main_tnm.c
// Function: Print_thermal
double Print_thermal(int anharmonic, FILE *file_out,
		     struct Normal_Mode NM, char *out_B,
		     struct axe *axes, int N_main,
		     int N_res, int Nchain,
		     struct Normal_Mode NM_unfold,
		     int N_int_unfold, int N_int, 
		     double E_cont_unfold, int FOLDING,
		     struct Normal_Mode NM_apo, int N_int_inter,
		     double Econt_bind, int BINDING,
		     float *mass_coord, int *Cart_interface, int N_Cart_inter,
		     int *rigid_inter, int N_rigid)
{
  float *sigma2; char name[80]="";
  if(anharmonic){
    sigma2=NM.sigma2_anhar; strcpy(name, "anhar");
    fprintf(file_out, "# Anharmonic correction:\n");
  }else{
    sigma2=NM.sigma2;
    fprintf(file_out, "#\n# Harmonic approximation:\n");
  }

  double k_Therm=Collectivity_norm1(sigma2, NM.N); //Renyi
  fprintf(file_out, "Recp.Coll(therm)      %.0f\n", k_Therm);
  /*fprintf(file_out, "Area(therm)           %.3f\n",
    Area_norm1(NM.sigma2, NM.N));*/

  double Mean_Cart_coll=0, sum_w=0; int ia, i;
  for(ia=0; ia<NM.N; ia++){
    float w=sigma2[ia];
    Mean_Cart_coll+=NM.Cart_coll[ia]*w; sum_w+=w;
  }
  if(sum_w)Mean_Cart_coll/=sum_w;
  fprintf(file_out, "Ave_collectivity_NM   %.3f\n", Mean_Cart_coll);
  /*
  Coll_thr_cc=Mean_Cart_coll*0.6666;
  int N_modes_coll=0;
  for(ia=0; ia<NM.N; ia++){
    if((NM.select[ia])&&(NM.Cart_coll[ia] >= Coll_thr_cc))N_modes_coll++;
  }
  fprintf(file_out, "Num.collective_modes  %d\n", N_modes_coll);
  fprintf(file_out, "Threshold_collectivity %.3f\n", Coll_thr_cc);
  */
  double Free_Ene_holo=0, Free_Ene_holo_rigid=0;

  {  /* Harmonic entropy quantum
	h/= 1.055 e-34 J.sec
	h = 6.626 e-34 J.sec
	k_B T at 293K = 1.381 e-23 *293= 4.05e-21 J
	/h/k_BT = 0.260e-13 s^(-1) = 2.6 ps
	h/k_BT = 1.637e-13 s^(-1) = 0.1636 ps
	omega_q = kBT/h/ = 6.1 ps^(-1)
	(agrees with K. Hinsen)

	Our internal units of time are:
	[t]=[m l^2/E]^(1/2)
	Energy unit: kT= 4.05e-21 J at T=293
	Mass unit: Atomic mass 1.66e-27 kg
	mass/Energy: 0.4099e-6 sqrt: 0.64 e-3
	//sqrt(k_B T/M)= sqrt(4.05e-21 J/1.66e-27 Kg)=1562
	length unit = e-10 m
	time unit: 0.64 e-13 = 6.4 e-12 = 6.4 ps
	Frequency unit: 0.156 ps^(-1)
	omega_q = 39 internal units
	1/(omega_q)^2= 0.00065 in internal units 

	Other constants:
	Avogadro number NA= 6.02e+23
	Gas constant R= 8.314 J/(K*mol) 

     */

    double omega_q=6.1*(Temp_comp/293)/Freq_unit;
    double beta_omega=1./omega_q;
    double entropy=
      Compute_entropy(&Free_Ene_holo, &Free_Ene_holo_rigid,
		      NM, sigma2, beta_omega, NULL, NULL, 0, NULL, 0);
    if(anharmonic==0){
      fprintf(file_out,"kT/h=                %.4g\n", omega_q);
    }
    int m=0, k; for(k=0; k<NM.N; k++){if(NM.omega[k]>omega_q)break; m++;}
    fprintf(file_out, "Quantum modes:        %d / %d\n", NM.N-m, NM.N);
    fprintf(file_out, "Entropy per res       %.4g", entropy/N_res);
    if(BINDING){fprintf(file_out, " (holo)");}
    fprintf(file_out, "\n");
    fprintf(file_out, "Free energy per res   %.4g", Free_Ene_holo/N_res);
    if(BINDING){fprintf(file_out, " (holo)");}
    fprintf(file_out, "\n");

    if(FOLDING){
      float *s2_unfold;
      if(anharmonic){s2_unfold=NM_unfold.sigma2_anhar;}
      else{s2_unfold=NM_unfold.sigma2;}
      double Free_Ene_unfold=0, Free_Ene_unfold_rigid=0;
      double entropy_unfold= 
	Compute_entropy(&Free_Ene_unfold, &Free_Ene_unfold_rigid, NM,
			s2_unfold, beta_omega, NULL, NULL, 0, NULL, 0);
      fprintf(file_out, "Unfolded contacts:   %d\n", N_int_unfold);
      fprintf(file_out, "Contact energy unfold %.4g\n", E_cont_unfold);
      fprintf(file_out, "Entropy per res       %.4g (unfolded)\n",
	      (entropy_unfold)/N_res);
      fprintf(file_out, "Free energy per res   %.4g (unfolded)\n",
	      Free_Ene_unfold/N_res);
      double DG_NM_unfold=(Free_Ene_holo-Free_Ene_unfold)/N_res;
      fprintf(file_out, "Unfold free energy NM  %.4g\n", DG_NM_unfold);
      fprintf(file_out, "Unfold entropy NM      %.4g\n",
	      (entropy_unfold-entropy)/N_res);


      //float r0=pow(N_res, 1/3);
      //float c=(float)N_int/(float)N_res;
      //float Surf=(cont_inf -c)*r0*r0;
      float Surf=N_res-N_int_long/cont_inf;


      //float c_1=(float)N_int_unfold/(float)N_res;
      //float Surf_1=(3.94 -c_1)*r0*r0;

      fprintf(file_out, "SASA diff unfold       %.4g\n",
	      N_res-Surf);
    }
  
    if(BINDING){
      float *s2_apo;
      if(anharmonic){s2_apo=NM_apo.sigma2_anhar;}
      else{s2_apo=NM_apo.sigma2;}
      entropy= //double entropy_holo=
	Compute_entropy(&Free_Ene_holo, &Free_Ene_holo_rigid, NM, sigma2,
			beta_omega, mass_coord, Cart_interface, N_Cart_inter,
			rigid_inter, N_rigid);
      double Free_Ene_apo=0, Free_Ene_apo_rigid=0;
      entropy=
	Compute_entropy(&Free_Ene_apo, &Free_Ene_apo_rigid, NM_apo, s2_apo,
			beta_omega, mass_coord, Cart_interface, N_Cart_inter,
			rigid_inter, N_rigid);
      fprintf(file_out, "Interface contacts:   %d\n", N_int_inter);
      fprintf(file_out, "Entropy per res       %.4g (apo, interface)\n",
	      (entropy)/N_res);
      fprintf(file_out, "Free energy per res   %.4g (apo, intern)\n",
	      Free_Ene_apo/N_res);
      fprintf(file_out, "Free energy rigid     %.4g (apo, /nrigid)\n",
	      Free_Ene_apo_rigid/N_rigid);
      DG_NM_internal=(Free_Ene_holo-Free_Ene_apo)/N_res;
      DG_NM_rigid=(Free_Ene_holo_rigid-Free_Ene_apo_rigid)/N_res;
      //N_rigid_inter;
      Free_Ene_holo/=N_res;

      fprintf(file_out, "Binding free energy NM  %.4g (internal, /Nres)\n",
	      DG_NM_internal);
      fprintf(file_out, "Binding free energy NM  %.4g (rigid body, /nrigid)\n",
	      DG_NM_rigid);

      //fprintf(file_out, "Binding entropy NM      %.4g\n",
      //	      entropy_holo-entropy);
      fprintf(file_out, "Binding free energy cont %.4g\n", Econt_bind);

      int N_int=N_cont_long_1+N_cont_long_2+N_int_inter;
      float Surf=N_res_1+N_res_2-N_int/cont_inf;
      float Surf_1=N_res_1-N_cont_long_1/cont_inf;
      float Surf_2=N_res_2-N_cont_long_2/cont_inf;

      fprintf(file_out, "SASA difference          %.4g\n",
	      Surf_1+Surf_2-Surf);
    }
  }

  fprintf(file_out, "%s", out_B);

  // Rigid body degrees of freedom
  if(Nchain>1){
    double tra=0, rot=0, all=0;
    for(ia=0; ia<NM.N; ia++){
      float *v=NM.MW_Tors[ia];
      double tra_ia=0, rot_ia=0;
      for(i=0; i<N_main; i++){
	if(axes[i].rigid){
	  if(axes[i].type=='l'){tra_ia+=(*v)*(*v);}
	  else{rot_ia += (*v)*(*v);}
	}
	v++;
      }
      tra+=tra_ia*sigma2[ia];
      rot+=rot_ia*sigma2[ia];
      all+=sigma2[ia];
    }
    fprintf(file_out, "Fraction_RB_tra       %.3g\n", tra/all);
    fprintf(file_out, "Fraction_RB_rot       %.3g\n", rot/all);
  }
  return(Free_Ene_holo);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movl 0x2d0(%rbp), %eax
movq 0x2c8(%rbp), %rax
movl 0x2c0(%rbp), %eax
movq 0x2b8(%rbp), %rax
movq 0x2b0(%rbp), %rax
movl 0x2a8(%rbp), %eax
movl 0x2a0(%rbp), %eax
leaq 0x1d0(%rbp), %rax
movq %rax, -0x188(%rbp)
movl 0x1c8(%rbp), %eax
movl 0x1c0(%rbp), %eax
movl 0x1b8(%rbp), %eax
leaq 0xe8(%rbp), %rax
movq %rax, -0x180(%rbp)
movl 0xe0(%rbp), %eax
leaq 0x10(%rbp), %rax
movq %rax, -0x178(%rbp)
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movl %r9d, -0x28(%rbp)
movsd %xmm0, -0x30(%rbp)
movsd %xmm1, -0x38(%rbp)
leaq -0x90(%rbp), %rdi
xorl %esi, %esi
movl $0x50, %edx
callq 0x10e0
cmpl $0x0, -0x4(%rbp)
je 0xc40a
movq -0x178(%rbp), %rax
movq 0x88(%rax), %rax
movq %rax, -0x40(%rbp)
leaq -0x90(%rbp), %rdi
leaq 0x6b5bd(%rip), %rsi     # 0x779ae
callq 0x1060
movq -0x10(%rbp), %rdi
leaq 0x6b5b3(%rip), %rsi     # 0x779b4
movb $0x0, %al
callq 0x1150
jmp 0xc42b
movq -0x178(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x6b5aa(%rip), %rsi     # 0x779ce
movb $0x0, %al
callq 0x1150
movq -0x178(%rbp), %rax
movq -0x40(%rbp), %rdi
movl (%rax), %esi
callq 0x15c80
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movq -0x10(%rbp), %rdi
movsd -0x98(%rbp), %xmm0
leaq 0x6b58f(%rip), %rsi     # 0x779eb
movb $0x1, %al
callq 0x1150
xorps %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xa8(%rbp)
movl $0x0, -0xac(%rbp)
movq -0x178(%rbp), %rcx
movl -0xac(%rbp), %eax
cmpl (%rcx), %eax
jge 0xc50f
movq -0x178(%rbp), %rax
movq -0x40(%rbp), %rcx
movslq -0xac(%rbp), %rdx
movss (%rcx,%rdx,4), %xmm0
movss %xmm0, -0xb4(%rbp)
movq 0x68(%rax), %rax
movslq -0xac(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
mulss -0xb4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
movss -0xb4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0xa8(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0xc483
movsd -0xa8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xc524
jp 0xc524
jmp 0xc540
movsd -0xa8(%rbp), %xmm1
movsd -0xa0(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
movsd -0xa0(%rbp), %xmm0
leaq 0x6b4b4(%rip), %rsi     # 0x77a07
movb $0x1, %al
callq 0x1150
movq -0x178(%rbp), %rsi
xorps %xmm0, %xmm0
movsd %xmm0, -0xc0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xc8(%rbp)
movss 0x7dbd5(%rip), %xmm0    # 0x8a154
movss 0x69b31(%rip), %xmm1    # 0x760b8
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x69ab9(%rip), %xmm0    # 0x76050
mulsd %xmm1, %xmm0
movss 0x7dbb9(%rip), %xmm1    # 0x8a15c
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd 0x69a8d(%rip), %xmm0    # 0x76048
divsd -0xd0(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movq -0x40(%rbp), %rdx
movsd -0xd8(%rbp), %xmm0
xorl %eax, %eax
xorl %eax, %eax
movq %rsp, %rax
movl $0x1a, %ecx
movq %rax, %rdi
rep  movsq (%rsi), %es:(%rdi)
movl $0x0, 0xd8(%rax)
movq $0x0, 0xd0(%rax)
xorl %r9d, %r9d
movl %r9d, %r8d
leaq -0xc0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
movq %r8, %rcx
callq 0xcf00
movsd %xmm0, -0xe0(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0xc642
movq -0x10(%rbp), %rdi
movsd -0xd0(%rbp), %xmm0
leaq 0x6b3e8(%rip), %rsi     # 0x77a23
movb $0x1, %al
callq 0x1150
movl $0x0, -0xe4(%rbp)
movl $0x0, -0xe8(%rbp)
movq -0x178(%rbp), %rcx
movl -0xe8(%rbp), %eax
cmpl (%rcx), %eax
jge 0xc6ae
movq -0x178(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0xe8(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd -0xd0(%rbp), %xmm0
jbe 0xc68e
jmp 0xc6ae
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe4(%rbp)
movl -0xe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe8(%rbp)
jmp 0xc656
movq -0x178(%rbp), %rax
movq -0x10(%rbp), %rdi
movl (%rax), %edx
subl -0xe4(%rbp), %edx
movl (%rax), %ecx
leaq 0x6b374(%rip), %rsi     # 0x77a3e
movb $0x0, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0xe0(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b370(%rip), %rsi     # 0x77a5d
movb $0x1, %al
callq 0x1150
cmpl $0x0, 0x2a8(%rbp)
je 0xc70f
movq -0x10(%rbp), %rdi
leaq 0x6b370(%rip), %rsi     # 0x77a78
movb $0x0, %al
callq 0x1150
movq -0x10(%rbp), %rdi
leaq 0x7195e(%rip), %rsi     # 0x7e078
movb $0x0, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0xc0(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b343(%rip), %rsi     # 0x77a80
movb $0x1, %al
callq 0x1150
cmpl $0x0, 0x2a8(%rbp)
je 0xc75f
movq -0x10(%rbp), %rdi
leaq 0x6b320(%rip), %rsi     # 0x77a78
movb $0x0, %al
callq 0x1150
movq -0x10(%rbp), %rdi
leaq 0x7190e(%rip), %rsi     # 0x7e078
movb $0x0, %al
callq 0x1150
cmpl $0x0, 0x1c8(%rbp)
je 0xc943
cmpl $0x0, -0x4(%rbp)
je 0xc79b
movq -0x180(%rbp), %rax
movq 0x88(%rax), %rax
movq %rax, -0xf0(%rbp)
jmp 0xc7ad
movq -0x180(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xf0(%rbp)
movq -0x178(%rbp), %rsi
xorps %xmm0, %xmm0
movsd %xmm0, -0xf8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x100(%rbp)
movq -0xf0(%rbp), %rdx
movsd -0xd8(%rbp), %xmm0
xorl %eax, %eax
xorl %eax, %eax
movq %rsp, %rax
movl $0x1a, %ecx
movq %rax, %rdi
rep  movsq (%rsi), %es:(%rdi)
movl $0x0, 0xd8(%rax)
movq $0x0, 0xd0(%rax)
xorl %r9d, %r9d
movl %r9d, %r8d
leaq -0xf8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movq %r8, %rcx
callq 0xcf00
movsd %xmm0, -0x108(%rbp)
movq -0x10(%rbp), %rdi
movl 0x1b8(%rbp), %edx
leaq 0x6b266(%rip), %rsi     # 0x77a9b
movb $0x0, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0x30(%rbp), %xmm0
leaq 0x6b268(%rip), %rsi     # 0x77ab4
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0x108(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b261(%rip), %rsi     # 0x77ad0
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0xf8(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b265(%rip), %rsi     # 0x77af7
movb $0x1, %al
callq 0x1150
movsd -0xc0(%rbp), %xmm0
subsd -0xf8(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x110(%rbp)
movq -0x10(%rbp), %rdi
movsd -0x110(%rbp), %xmm0
leaq 0x6b251(%rip), %rsi     # 0x77b1e
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0x108(%rbp), %xmm0
subsd -0xe0(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b243(%rip), %rsi     # 0x77b3b
movb $0x1, %al
callq 0x1150
cvtsi2ssl -0x28(%rbp), %xmm0
cvtsi2ssl 0x804d4(%rip), %xmm1 # 0x8cde0
divss 0x7d8d4(%rip), %xmm1    # 0x8a1e8
subss %xmm1, %xmm0
movss %xmm0, -0x114(%rbp)
movq -0x10(%rbp), %rdi
cvtsi2ssl -0x28(%rbp), %xmm0
subss -0x114(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x6b21c(%rip), %rsi     # 0x77b58
movb $0x1, %al
callq 0x1150
cmpl $0x0, 0x2a8(%rbp)
je 0xcca2
cmpl $0x0, -0x4(%rbp)
je 0xc96d
movq -0x188(%rbp), %rax
movq 0x88(%rax), %rax
movq %rax, -0x120(%rbp)
jmp 0xc97f
movq -0x188(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x120(%rbp)
movq -0x178(%rbp), %rsi
movq -0x40(%rbp), %rdx
movsd -0xd8(%rbp), %xmm0
movq 0x2b0(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq 0x2b8(%rbp), %r8
movl 0x2c0(%rbp), %r9d
movq 0x2c8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movl 0x2d0(%rbp), %eax
movl %eax, -0x1ac(%rbp)
movq %rsp, %rax
movl $0x1a, %ecx
movq %rax, %rdi
rep  movsq (%rsi), %es:(%rdi)
movq -0x1b8(%rbp), %rsi
movl -0x1ac(%rbp), %edi
movq -0x1a8(%rbp), %rcx
movl %edi, 0xd8(%rax)
movq %rsi, 0xd0(%rax)
leaq -0xc0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xcf00
movq -0x188(%rbp), %rsi
movsd %xmm0, -0xe0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x128(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x130(%rbp)
movq -0x120(%rbp), %rdx
movsd -0xd8(%rbp), %xmm0
movq 0x2b0(%rbp), %rax
movq %rax, -0x190(%rbp)
movq 0x2b8(%rbp), %r8
movl 0x2c0(%rbp), %r9d
movq 0x2c8(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movl 0x2d0(%rbp), %eax
movl %eax, -0x194(%rbp)
movq %rsp, %rax
movl $0x1a, %ecx
movq %rax, %rdi
rep  movsq (%rsi), %es:(%rdi)
movq -0x1a0(%rbp), %rsi
movl -0x194(%rbp), %edi
movq -0x190(%rbp), %rcx
movl %edi, 0xd8(%rax)
movq %rsi, 0xd0(%rax)
leaq -0x128(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0xcf00
movsd %xmm0, -0xe0(%rbp)
movq -0x10(%rbp), %rdi
movl 0x2a0(%rbp), %edx
leaq 0x6b0a6(%rip), %rsi     # 0x77b75
movb $0x0, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0xe0(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b09d(%rip), %rsi     # 0x77b8f
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0x128(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b0a7(%rip), %rsi     # 0x77bbc
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0x130(%rbp), %xmm0
cvtsi2sdl 0x2d0(%rbp), %xmm1
divsd %xmm1, %xmm0
leaq 0x6b0ab(%rip), %rsi     # 0x77be6
movb $0x1, %al
callq 0x1150
movsd -0xc0(%rbp), %xmm0
subsd -0x128(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x7f40d(%rip)    # 0x8bf70
movsd -0xc8(%rbp), %xmm0
subsd -0x130(%rbp), %xmm0
cvtsi2sdl -0x28(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x7f3f4(%rip)    # 0x8bf78
cvtsi2sdl -0x28(%rbp), %xmm1
movsd -0xc0(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
movq -0x10(%rbp), %rdi
movsd 0x7f3c7(%rip), %xmm0    # 0x8bf70
leaq 0x6b061(%rip), %rsi     # 0x77c11
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd 0x7f3b5(%rip), %xmm0    # 0x8bf78
leaq 0x6b077(%rip), %rsi     # 0x77c41
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0x38(%rbp), %xmm0
leaq 0x6b094(%rip), %rsi     # 0x77c75
movb $0x1, %al
callq 0x1150
movl 0x7f4ee(%rip), %eax     # 0x8c0dc
addl 0x7f4ec(%rip), %eax     # 0x8c0e0
addl 0x2a0(%rbp), %eax
movl %eax, -0x134(%rbp)
movl 0x7f4ce(%rip), %eax     # 0x8c0d4
addl 0x7f4cc(%rip), %eax     # 0x8c0d8
cvtsi2ss %eax, %xmm0
cvtsi2ssl -0x134(%rbp), %xmm1
divss 0x7d5c8(%rip), %xmm1    # 0x8a1e8
subss %xmm1, %xmm0
movss %xmm0, -0x138(%rbp)
cvtsi2ssl 0x7f4a0(%rip), %xmm0 # 0x8c0d4
cvtsi2ssl 0x7f4a0(%rip), %xmm1 # 0x8c0dc
divss 0x7d5a4(%rip), %xmm1    # 0x8a1e8
subss %xmm1, %xmm0
movss %xmm0, -0x13c(%rbp)
cvtsi2ssl 0x7f480(%rip), %xmm0 # 0x8c0d8
cvtsi2ssl 0x7f480(%rip), %xmm1 # 0x8c0e0
divss 0x7d580(%rip), %xmm1    # 0x8a1e8
subss %xmm1, %xmm0
movss %xmm0, -0x140(%rbp)
movq -0x10(%rbp), %rdi
movss -0x13c(%rbp), %xmm0
addss -0x140(%rbp), %xmm0
subss -0x138(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x6aff9(%rip), %rsi     # 0x77c94
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq 0x6f6ed(%rip), %rsi     # 0x7c39e
movb $0x0, %al
callq 0x1150
cmpl $0x1, 0xe0(%rbp)
jle 0xceeb
xorps %xmm0, %xmm0
movsd %xmm0, -0x148(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x150(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x158(%rbp)
movl $0x0, -0xac(%rbp)
movq -0x178(%rbp), %rcx
movl -0xac(%rbp), %eax
cmpl (%rcx), %eax
jge 0xcea7
movq -0x178(%rbp), %rax
movq 0x48(%rax), %rax
movslq -0xac(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x160(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x168(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x170(%rbp)
movl $0x0, -0xb0(%rbp)
movl -0xb0(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0xce07
movq -0x20(%rbp), %rax
movslq -0xb0(%rbp), %rcx
imulq $0x158, %rcx, %rcx      # imm = 0x158
addq %rcx, %rax
cmpl $0x0, 0x4(%rax)
je 0xcde1
movq -0x20(%rbp), %rax
movslq -0xb0(%rbp), %rcx
imulq $0x158, %rcx, %rcx      # imm = 0x158
addq %rcx, %rax
movsbl (%rax), %eax
cmpl $0x6c, %eax
jne 0xcdb5
movq -0x160(%rbp), %rax
movss (%rax), %xmm0
movq -0x160(%rbp), %rax
mulss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x168(%rbp), %xmm0
movsd %xmm0, -0x168(%rbp)
jmp 0xcddf
movq -0x160(%rbp), %rax
movss (%rax), %xmm0
movq -0x160(%rbp), %rax
mulss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x170(%rbp), %xmm0
movsd %xmm0, -0x170(%rbp)
jmp 0xcde1
movq -0x160(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x160(%rbp)
movl -0xb0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb0(%rbp)
jmp 0xcd42
movsd -0x168(%rbp), %xmm0
movq -0x40(%rbp), %rax
movslq -0xac(%rbp), %rcx
movss (%rax,%rcx,4), %xmm1
cvtss2sd %xmm1, %xmm2
movsd -0x148(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0x170(%rbp), %xmm0
movq -0x40(%rbp), %rax
movslq -0xac(%rbp), %rcx
movss (%rax,%rcx,4), %xmm1
cvtss2sd %xmm1, %xmm2
movsd -0x150(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x150(%rbp)
movq -0x40(%rbp), %rax
movslq -0xac(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x158(%rbp), %xmm0
movsd %xmm0, -0x158(%rbp)
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0xccf0
movq -0x10(%rbp), %rdi
movsd -0x148(%rbp), %xmm0
divsd -0x158(%rbp), %xmm0
leaq 0x6adf1(%rip), %rsi     # 0x77cb3
movb $0x1, %al
callq 0x1150
movq -0x10(%rbp), %rdi
movsd -0x150(%rbp), %xmm0
divsd -0x158(%rbp), %xmm0
leaq 0x6adeb(%rip), %rsi     # 0x77ccf
movb $0x1, %al
callq 0x1150
movsd -0xc0(%rbp), %xmm0
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
nopl (%rax)