// File: /workspace/github_c_makefile_star2_O0/ugobas[P]tnm/allostery.c
// Function: Print_interface_coupling
void Print_interface_coupling(struct interaction *Int_list_inter,
			      int N_int_inter,
			      struct interaction *Int_list, int N_int,
			      atom *atoms, int Nchain, char *nameout,
			      float **Coup_dir, float**Coup_coord,
			      float **Coup_deformation, 
			      double **Chain_dir, double **Chain_coord,
			      double **Chain_def, double **norm_chain, int Na)
{
  char name2[200]; sprintf(name2, "%s.interface.dat", nameout);
  FILE *file_out=fopen(name2, "w");
  printf("Writing %s\n", name2);

  int ia, ja, n, npair=N_int_inter; float y;
  double Ave_dir=0, Ave_coord=0, Ave_def=0;
  double Min_dir=100, Min_coord=100, Max_def=0;
  int mpair=0, mpair_max=Nchain*(Nchain-1)/2, m;
  int c1[mpair_max], c2[mpair_max];
  for(n=0; n<N_int_inter; n++){
    ia=(atoms+Int_list_inter[n].i1)->res;
    ja=(atoms+Int_list_inter[n].i2)->res;
    if((ia>=Na)||(ja>=Na)){npair--; continue;}
    {
      int ic1=(atoms+Int_list_inter[n].i1)->chain;
      int ic2=(atoms+Int_list_inter[n].i2)->chain;
      if(ic1!=ic2){
	if(ic1>ic2){int tmp=ic2; ic2=ic1; ic1=tmp;}
	for(m=0; m<mpair; m++)if(ic1==c1[m] && ic2==c2[m])break;
	if(m==mpair){c1[m]=ic1; c2[m]=ic2; mpair++;}
      }
    }
    if(Coup_dir){
      y=Coup_dir[ia][ja]; Ave_dir+=y; if(y<Min_dir)Min_dir=y;
    }
    if(Coup_coord){
      y=Coup_coord[ia][ja]; Ave_coord+=y; if(y<Min_coord)Min_coord=y;
    }
    if(Coup_deformation){
      y=Coup_deformation[ia][ja]; Ave_def+=y; if(y>Max_def)Max_def=y;
    }
  }
  if(npair){Ave_dir/=npair; Ave_coord/=npair; Ave_def/=npair;}

  int numran=200;
  unsigned long iran=randomgenerator();
  if(ini_ran==0){
    InitRandom((RANDOMTYPE)iran); ini_ran=1;
  }
  double Ave_dir_ran=0, Ave_coord_ran=0, Ave_def_ran=0;
  double p_dir_ran=0, p_coord_ran=0, p_def_ran=0;
  for(int kran=0; kran<numran; kran++){
    npair=N_int_inter;
    double Ave_dir_tmp=0, Ave_coord_tmp=0, Ave_def_tmp=0;
    for(int k=0; k<N_int_inter; k++){
      n=RandomFloating()*N_int;
      if(n>=N_int){
	printf("WARNING in RandomFloating\n"); n=N_int-1;
      }
      ia=(atoms+Int_list[n].i1)->res;
      ja=(atoms+Int_list[n].i2)->res;
      if((ia>=Na)||(ja>=Na)){npair--; continue;}
      if(Coup_dir)Ave_dir_tmp+=Coup_dir[ia][ja];
      if(Coup_coord)Ave_coord_tmp+=Coup_coord[ia][ja];
      if(Coup_deformation)Ave_def_tmp+=Coup_deformation[ia][ja];
    }
    Ave_dir_tmp/=npair; Ave_dir_ran+=Ave_dir_tmp;
    if(Ave_dir_tmp>Ave_dir)p_dir_ran++;
    Ave_coord_tmp/=npair; Ave_coord_ran+=Ave_coord_tmp;
    if(Ave_coord_tmp>Ave_coord)p_coord_ran++;
    Ave_def_tmp/=npair; Ave_def_ran+=Ave_def_tmp;
    if(Ave_def_tmp<Ave_def)p_def_ran++;
  }
  
  fprintf(file_out,"# %d interface contacts\n", N_int_inter);
  fprintf(file_out, "Directionality_coupling: "
	  "Ave= %.4g Min= %.4g Random= %.2g p> = %.3g\n",
	  Ave_dir, Min_dir, Ave_dir_ran/numran, p_dir_ran/numran);
  fprintf(file_out, "Coordination_coupling:   "
	  "Ave= %.4g Min= %.4g Random= %.2g p> = %.3g\n",
	  Ave_coord, Min_coord, Ave_coord_ran/numran, p_coord_ran/numran);
  fprintf(file_out, "Deformation_coupling:    "
	  "Ave= %.4g Max= %.4g Random= %.2g p< = %.3g\n",
	  Ave_def, Max_def, Ave_def_ran/numran, p_def_ran/numran);

  double Ave_chain_coord=0, Ave_chain_dir=0, norm=0;
  fprintf(file_out, "# %d pairs of chains: ", mpair);
  for(m=0; m<mpair; m++){
    int ic1= c1[m], ic2= c2[m];
    fprintf(file_out, " %d-%d", ic1, ic2);
    Ave_chain_coord+=Chain_coord[ic1][ic2]*norm_chain[ic1][ic2];
    Ave_chain_dir+=Chain_dir[ic1][ic2]*norm_chain[ic1][ic2];
    norm+=norm_chain[ic1][ic2];
  }
  fprintf(file_out, "\n");
  Ave_chain_coord/=norm; Ave_chain_dir/=norm; 
  
  float Chain_dir_coeff=0, Chain_coord_coeff=0, Ave_coord_coeff=0,
    Ave_dir_coeff=0, bias=0, G_NM_coeff=0, DG_NM_coeff=0, DG_cont_coeff=0;
  if(strcmp(DOF_LABEL,"PHI")==0){ 
    // Param: KAPPA=5.0, SCALE_COORD=2, SCALE_D=2 Err=0.57 bias=0.37
    G_NM_coeff=0.0; DG_NM_coeff=31.3; DG_cont_coeff=0.27;
    Ave_coord_coeff=-14.2; Ave_dir_coeff=-3.61;
    Chain_coord_coeff=-13.3; Chain_dir_coeff=-4.16; bias=0.37;
  }else if(strcmp(DOF_LABEL,"PHIPSI")==0){
    // Param: KAPPA=8.2, SCALE_COORD=2, SCALE_D=2 Err=0.59 bias=0.44
    G_NM_coeff=0; DG_NM_coeff=26.2; DG_cont_coeff=0.325;
    Ave_coord_coeff=-13.8; Ave_dir_coeff=-3.7;
    Chain_coord_coeff=-13.8; Chain_dir_coeff=-4.58; bias=0.44;
  }else if(strcmp(DOF_LABEL,"PHIPSIOME")==0){
    // Param: KAPPA=15, SCALE_COORD=2, SCALE_D=2 Err=0.63 bias=0.50
    G_NM_coeff=0; DG_NM_coeff=21.2; DG_cont_coeff=0.335;
    Ave_coord_coeff=-12.5; Ave_dir_coeff=-3.64;
    Chain_coord_coeff=-13.0; Chain_dir_coeff=-4.66; bias=0.50;
  }else if(strcmp(DOF_LABEL,"PHIPSIOMESCH")==0){
    // Param: KAPPA=14, SCALE_COORD=2, SCALE_D=2 Err=0.60 bias=24.7
    G_NM_coeff=1.08; DG_NM_coeff=0; DG_cont_coeff=0.255;
    Ave_coord_coeff=-10.8; Ave_dir_coeff=-5.22;
    Chain_coord_coeff=-10.5; Chain_dir_coeff=-5.16; bias=24.7;
  }
  double DG_bind=
    G_NM_coeff*G_NM_holo+
    DG_NM_coeff*DG_NM_internal+
    DG_cont_coeff*E_cont_bind+
    Ave_coord_coeff*Ave_coord+
    Ave_dir_coeff*Ave_dir+
    Chain_coord_coeff*Ave_chain_coord+
    Chain_dir_coeff*Ave_chain_dir+
    bias;
  fprintf(file_out,"# Predicted binding free energy: %.4g\n", DG_bind);
  fprintf(file_out,"# Calculated as: %.4g*G_NM + %.4g*DG_NM + %.4g*DE_cont"
	  " + %.4g*Ave_coord_interface + %.4g*Ave_dir_interface"
	  " + %.4g*Ave_coord_CHAIN + %.4g*Ave_dir_chain + %.4g\n",
	  G_NM_coeff, DG_NM_coeff, DG_cont_coeff,
	  Ave_coord_coeff, Ave_dir_coeff, Chain_coord_coeff, Chain_dir_coeff,
	  bias);
  fprintf(file_out, "# Coordination computed as Coord_ij="
	  "exp(-%.3g*<(dij-<dij>)^2)\n", SCALE_COORD);
  fprintf(file_out, "# Interchain contacts weighted with "
	  "Proximity_ij=exp(-d_ij/%.3g)\n", SCALE_D);
  fprintf(file_out, "# G_NM/nres  = %.4g\n", G_NM_holo);
  fprintf(file_out, "# DG_NM_internal/nres = %.4g\n", DG_NM_internal);
  fprintf(file_out, "# DG_NM_rigid/nres = %.4g\n", DG_NM_rigid);
  //fprintf(file_out, "# DG_NM/nres = %.4g\n", DG_NM_rigid+DG_NM_internal);
  fprintf(file_out, "# DE_cont = %.4g\n", E_cont_bind);
  fprintf(file_out, "# Ave_inter_coord = %.4g\n", Ave_coord);
  fprintf(file_out, "# Ave_inter_dir   = %.4g\n", Ave_dir);
  fprintf(file_out, "# Ave_chain_coord = %.4g\n", Ave_chain_coord);
  fprintf(file_out, "# Ave_chain_dir   = %.4g\n", Ave_chain_dir);

  fclose(file_out);
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movl 0x50(%rbp), %eax
movq 0x48(%rbp), %rax
movq 0x40(%rbp), %rax
movq 0x38(%rbp), %rax
movq 0x30(%rbp), %rax
movq 0x28(%rbp), %rax
movq 0x20(%rbp), %rax
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movl %r9d, -0x2c(%rbp)
movq 0x10(%rbp), %rdx
leaq 0x1e4a7(%rip), %rsi     # 0x82d26
xorl %eax, %eax
movb %al, -0x241(%rbp)
leaq -0x100(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x1200
movq -0x250(%rbp), %rdi
leaq 0x17aca(%rip), %rsi     # 0x7c372
callq 0x11b0
movq -0x250(%rbp), %rsi
movq %rax, %rcx
movb -0x241(%rbp), %al
movq %rcx, -0x108(%rbp)
leaq 0x12c23(%rip), %rdi     # 0x774ee
callq 0x10d0
movl -0xc(%rbp), %eax
movl %eax, -0x118(%rbp)
movq $0x0, -0x128(%rbp)
movq $0x0, -0x130(%rbp)
movq $0x0, -0x138(%rbp)
movabsq $0x4059000000000000, %rax # imm = 0x4059000000000000
movq %rax, -0x140(%rbp)
movq %rax, -0x148(%rbp)
movq $0x0, -0x150(%rbp)
movl $0x0, -0x154(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, %ecx
decl %ecx
imull %ecx, %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %ecx, %eax
sarl %eax
movl %eax, -0x158(%rbp)
movl -0x158(%rbp), %eax
movq %rsp, %rcx
movq %rcx, -0x168(%rbp)
leaq 0xf(,%rax,4), %rdx
andq $-0x10, %rdx
movq %rsp, %rcx
subq %rdx, %rcx
movq %rcx, -0x240(%rbp)
movq %rcx, %rsp
movq %rax, -0x170(%rbp)
movl -0x158(%rbp), %eax
leaq 0xf(,%rax,4), %rdx
andq $-0x10, %rdx
movq %rsp, %rcx
subq %rdx, %rcx
movq %rcx, -0x238(%rbp)
movq %rcx, %rsp
movq %rax, -0x178(%rbp)
movl $0x0, -0x114(%rbp)
movl -0x114(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x64cf5
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq -0x114(%rbp), %rdx
imulq $0xc8, %rdx, %rdx
addq %rdx, %rcx
movslq (%rcx), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x64(%rax), %eax
movl %eax, -0x10c(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq -0x114(%rbp), %rdx
imulq $0xc8, %rdx, %rdx
addq %rdx, %rcx
movslq 0x4(%rcx), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x64(%rax), %eax
movl %eax, -0x110(%rbp)
movl -0x10c(%rbp), %eax
cmpl 0x50(%rbp), %eax
jge 0x64a24
movl -0x110(%rbp), %eax
cmpl 0x50(%rbp), %eax
jl 0x64a38
movl -0x118(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x118(%rbp)
jmp 0x64ce1
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq -0x114(%rbp), %rdx
imulq $0xc8, %rdx, %rdx
addq %rdx, %rcx
movslq (%rcx), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x6c(%rax), %eax
movl %eax, -0x17c(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq -0x114(%rbp), %rdx
imulq $0xc8, %rdx, %rdx
addq %rdx, %rcx
movslq 0x4(%rcx), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x6c(%rax), %eax
movl %eax, -0x180(%rbp)
movl -0x17c(%rbp), %eax
cmpl -0x180(%rbp), %eax
je 0x64b81
movl -0x17c(%rbp), %eax
cmpl -0x180(%rbp), %eax
jle 0x64ad5
movl -0x180(%rbp), %eax
movl %eax, -0x184(%rbp)
movl -0x17c(%rbp), %eax
movl %eax, -0x180(%rbp)
movl -0x184(%rbp), %eax
movl %eax, -0x17c(%rbp)
movl $0x0, -0x15c(%rbp)
movl -0x15c(%rbp), %eax
cmpl -0x154(%rbp), %eax
jge 0x64b34
movq -0x240(%rbp), %rcx
movl -0x17c(%rbp), %eax
movslq -0x15c(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x64b21
movq -0x238(%rbp), %rcx
movl -0x180(%rbp), %eax
movslq -0x15c(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x64b21
jmp 0x64b34
jmp 0x64b23
movl -0x15c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x15c(%rbp)
jmp 0x64adf
movl -0x15c(%rbp), %eax
cmpl -0x154(%rbp), %eax
jne 0x64b7f
movq -0x238(%rbp), %rax
movq -0x240(%rbp), %rcx
movl -0x17c(%rbp), %esi
movslq -0x15c(%rbp), %rdx
movl %esi, (%rcx,%rdx,4)
movl -0x180(%rbp), %edx
movslq -0x15c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x154(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x154(%rbp)
jmp 0x64b81
cmpq $0x0, 0x18(%rbp)
je 0x64bf7
movq 0x18(%rbp), %rax
movslq -0x10c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x110(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x11c(%rbp)
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x128(%rbp), %xmm0
movsd %xmm0, -0x128(%rbp)
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd -0x140(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x64bf5
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x140(%rbp)
jmp 0x64bf7
cmpq $0x0, 0x20(%rbp)
je 0x64c6d
movq 0x20(%rbp), %rax
movslq -0x10c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x110(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x11c(%rbp)
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x130(%rbp), %xmm0
movsd %xmm0, -0x130(%rbp)
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd -0x148(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x64c6b
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x148(%rbp)
jmp 0x64c6d
cmpq $0x0, 0x28(%rbp)
je 0x64cdf
movq 0x28(%rbp), %rax
movslq -0x10c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x110(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x11c(%rbp)
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x138(%rbp), %xmm0
movsd %xmm0, -0x138(%rbp)
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd -0x150(%rbp), %xmm0
jbe 0x64cdd
movss -0x11c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x150(%rbp)
jmp 0x64cdf
jmp 0x64ce1
movl -0x114(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x114(%rbp)
jmp 0x649a6
cmpl $0x0, -0x118(%rbp)
je 0x64d52
cvtsi2sdl -0x118(%rbp), %xmm1
movsd -0x128(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x128(%rbp)
cvtsi2sdl -0x118(%rbp), %xmm1
movsd -0x130(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x130(%rbp)
cvtsi2sdl -0x118(%rbp), %xmm1
movsd -0x138(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movl $0xc8, -0x188(%rbp)
callq 0x49ce0
movq %rax, -0x190(%rbp)
cmpl $0x0, 0x38ce5(%rip)     # 0x9da54
jne 0x64d87
movq -0x190(%rbp), %rdi
callq 0x756e0
movl $0x1, 0x38ccd(%rip)     # 0x9da54
xorps %xmm0, %xmm0
movsd %xmm0, -0x198(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1a0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1a8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1c0(%rbp)
movl $0x0, -0x1c4(%rbp)
movl -0x1c4(%rbp), %eax
cmpl -0x188(%rbp), %eax
jge 0x650d6
movl -0xc(%rbp), %eax
movl %eax, -0x118(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1d0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1d8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1e0(%rbp)
movl $0x0, -0x1e4(%rbp)
movl -0x1e4(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x64fa2
movb $0x0, %al
callq 0x75930
cvtsi2sdl -0x1c(%rbp), %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x114(%rbp)
movl -0x114(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jl 0x64e67
leaq 0x1dee3(%rip), %rdi     # 0x82d37
movb $0x0, %al
callq 0x10d0
movl -0x1c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x114(%rbp)
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq -0x114(%rbp), %rdx
imulq $0xc8, %rdx, %rdx
addq %rdx, %rcx
movslq (%rcx), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x64(%rax), %eax
movl %eax, -0x10c(%rbp)
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq -0x114(%rbp), %rdx
imulq $0xc8, %rdx, %rdx
addq %rdx, %rcx
movslq 0x4(%rcx), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x64(%rax), %eax
movl %eax, -0x110(%rbp)
movl -0x10c(%rbp), %eax
cmpl 0x50(%rbp), %eax
jge 0x64ed6
movl -0x110(%rbp), %eax
cmpl 0x50(%rbp), %eax
jl 0x64eea
movl -0x118(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x118(%rbp)
jmp 0x64f8e
cmpq $0x0, 0x18(%rbp)
je 0x64f20
movq 0x18(%rbp), %rax
movslq -0x10c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x110(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x1d0(%rbp), %xmm0
movsd %xmm0, -0x1d0(%rbp)
cmpq $0x0, 0x20(%rbp)
je 0x64f56
movq 0x20(%rbp), %rax
movslq -0x10c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x110(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x1d8(%rbp), %xmm0
movsd %xmm0, -0x1d8(%rbp)
cmpq $0x0, 0x28(%rbp)
je 0x64f8c
movq 0x28(%rbp), %rax
movslq -0x10c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x110(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
addsd -0x1e0(%rbp), %xmm0
movsd %xmm0, -0x1e0(%rbp)
jmp 0x64f8e
movl -0x1e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e4(%rbp)
jmp 0x64e19
cvtsi2sdl -0x118(%rbp), %xmm1
movsd -0x1d0(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x1d0(%rbp)
movsd -0x1d0(%rbp), %xmm0
addsd -0x198(%rbp), %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x1d0(%rbp), %xmm0
ucomisd -0x128(%rbp), %xmm0
jbe 0x65000
movsd 0x11058(%rip), %xmm0    # 0x76048
addsd -0x1b0(%rbp), %xmm0
movsd %xmm0, -0x1b0(%rbp)
cvtsi2sdl -0x118(%rbp), %xmm1
movsd -0x1d8(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x1d8(%rbp)
movsd -0x1d8(%rbp), %xmm0
addsd -0x1a0(%rbp), %xmm0
movsd %xmm0, -0x1a0(%rbp)
movsd -0x1d8(%rbp), %xmm0
ucomisd -0x130(%rbp), %xmm0
jbe 0x6505e
movsd 0x10ffa(%rip), %xmm0    # 0x76048
addsd -0x1b8(%rbp), %xmm0
movsd %xmm0, -0x1b8(%rbp)
cvtsi2sdl -0x118(%rbp), %xmm1
movsd -0x1e0(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x1e0(%rbp)
movsd -0x1e0(%rbp), %xmm0
addsd -0x1a8(%rbp), %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x1e0(%rbp), %xmm1
movsd -0x138(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x650c0
movsd 0x10f98(%rip), %xmm0    # 0x76048
addsd -0x1c0(%rbp), %xmm0
movsd %xmm0, -0x1c0(%rbp)
jmp 0x650c2
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x64dd3
movq -0x108(%rbp), %rdi
movl -0xc(%rbp), %edx
leaq 0x1dc6b(%rip), %rsi     # 0x82d52
movb $0x0, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd -0x128(%rbp), %xmm0
movsd -0x140(%rbp), %xmm1
movsd -0x198(%rbp), %xmm2
cvtsi2sdl -0x188(%rbp), %xmm3
divsd %xmm3, %xmm2
movsd -0x1b0(%rbp), %xmm3
cvtsi2sdl -0x188(%rbp), %xmm4
divsd %xmm4, %xmm3
leaq 0x1dc37(%rip), %rsi     # 0x82d6b
movb $0x4, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd -0x130(%rbp), %xmm0
movsd -0x148(%rbp), %xmm1
movsd -0x1a0(%rbp), %xmm2
cvtsi2sdl -0x188(%rbp), %xmm3
divsd %xmm3, %xmm2
movsd -0x1b8(%rbp), %xmm3
cvtsi2sdl -0x188(%rbp), %xmm4
divsd %xmm4, %xmm3
leaq 0x1dc2f(%rip), %rsi     # 0x82db0
movb $0x4, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd -0x138(%rbp), %xmm0
movsd -0x150(%rbp), %xmm1
movsd -0x1a8(%rbp), %xmm2
cvtsi2sdl -0x188(%rbp), %xmm3
divsd %xmm3, %xmm2
movsd -0x1c0(%rbp), %xmm3
cvtsi2sdl -0x188(%rbp), %xmm4
divsd %xmm4, %xmm3
leaq 0x1dc27(%rip), %rsi     # 0x82df5
movb $0x4, %al
callq 0x1150
xorps %xmm0, %xmm0
movsd %xmm0, -0x1f0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1f8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x200(%rbp)
movq -0x108(%rbp), %rdi
movl -0x154(%rbp), %edx
leaq 0x1dc30(%rip), %rsi     # 0x82e3a
movb $0x0, %al
callq 0x1150
movl $0x0, -0x15c(%rbp)
movl -0x15c(%rbp), %eax
cmpl -0x154(%rbp), %eax
jge 0x65357
movq -0x238(%rbp), %rax
movq -0x240(%rbp), %rcx
movslq -0x15c(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
movl %ecx, -0x204(%rbp)
movslq -0x15c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x208(%rbp)
movq -0x108(%rbp), %rdi
movl -0x204(%rbp), %edx
movl -0x208(%rbp), %ecx
leaq 0x1dbdc(%rip), %rsi     # 0x82e51
movb $0x0, %al
callq 0x1150
movq 0x38(%rbp), %rax
movslq -0x204(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x208(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x48(%rbp), %rax
movslq -0x204(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x208(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movsd -0x1f0(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1f0(%rbp)
movq 0x30(%rbp), %rax
movslq -0x204(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x208(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x48(%rbp), %rax
movslq -0x204(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x208(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movsd -0x1f8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1f8(%rbp)
movq 0x48(%rbp), %rax
movslq -0x204(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x208(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x200(%rbp), %xmm0
movsd %xmm0, -0x200(%rbp)
movl -0x15c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x15c(%rbp)
jmp 0x6521b
movq -0x108(%rbp), %rdi
leaq 0x18d13(%rip), %rsi     # 0x7e078
movb $0x0, %al
callq 0x1150
movsd -0x200(%rbp), %xmm1
movsd -0x1f0(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x1f0(%rbp)
movsd -0x200(%rbp), %xmm1
movsd -0x1f8(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -0x1f8(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x20c(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x210(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x214(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x218(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x21c(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x220(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x224(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x228(%rbp)
leaq 0x26d0d(%rip), %rdi     # 0x8c110
leaq 0x15176(%rip), %rsi     # 0x7a580
callq 0x1140
cmpl $0x0, %eax
jne 0x65498
xorps %xmm0, %xmm0
movss %xmm0, -0x220(%rbp)
movss 0x1cfd1(%rip), %xmm0    # 0x823fc
movss %xmm0, -0x224(%rbp)
movss 0x1cfbd(%rip), %xmm0    # 0x823f8
movss %xmm0, -0x228(%rbp)
movss 0x1cfa9(%rip), %xmm0    # 0x823f4
movss %xmm0, -0x214(%rbp)
movss 0x1cf95(%rip), %xmm0    # 0x823f0
movss %xmm0, -0x218(%rbp)
movss 0x1cf81(%rip), %xmm0    # 0x823ec
movss %xmm0, -0x210(%rbp)
movss 0x1cf6d(%rip), %xmm0    # 0x823e8
movss %xmm0, -0x20c(%rbp)
movss 0x1cf59(%rip), %xmm0    # 0x823e4
movss %xmm0, -0x21c(%rbp)
jmp 0x65669
leaq 0x26c71(%rip), %rdi     # 0x8c110
leaq 0x1d9b2(%rip), %rsi     # 0x82e58
callq 0x1140
cmpl $0x0, %eax
jne 0x65534
xorps %xmm0, %xmm0
movss %xmm0, -0x220(%rbp)
movss 0x1cf19(%rip), %xmm0    # 0x823e0
movss %xmm0, -0x224(%rbp)
movss 0x1cf05(%rip), %xmm0    # 0x823dc
movss %xmm0, -0x228(%rbp)
movss 0x1ceed(%rip), %xmm0    # 0x823d4
movss %xmm0, -0x214(%rbp)
movss 0x1cee1(%rip), %xmm0    # 0x823d8
movss %xmm0, -0x218(%rbp)
movss 0x1cecd(%rip), %xmm0    # 0x823d4
movss %xmm0, -0x210(%rbp)
movss 0x1ceb9(%rip), %xmm0    # 0x823d0
movss %xmm0, -0x20c(%rbp)
movss 0x1cea5(%rip), %xmm0    # 0x823cc
movss %xmm0, -0x21c(%rbp)
jmp 0x65667
leaq 0x26bd5(%rip), %rdi     # 0x8c110
leaq 0x1d91d(%rip), %rsi     # 0x82e5f
callq 0x1140
cmpl $0x0, %eax
jne 0x655d0
xorps %xmm0, %xmm0
movss %xmm0, -0x220(%rbp)
movss 0x1ce65(%rip), %xmm0    # 0x823c8
movss %xmm0, -0x224(%rbp)
movss 0x1ce51(%rip), %xmm0    # 0x823c4
movss %xmm0, -0x228(%rbp)
movss 0x1ce3d(%rip), %xmm0    # 0x823c0
movss %xmm0, -0x214(%rbp)
movss 0x1ce29(%rip), %xmm0    # 0x823bc
movss %xmm0, -0x218(%rbp)
movss 0x1ce15(%rip), %xmm0    # 0x823b8
movss %xmm0, -0x210(%rbp)
movss 0x1ce01(%rip), %xmm0    # 0x823b4
movss %xmm0, -0x20c(%rbp)
movss 0x10aa5(%rip), %xmm0    # 0x76068
movss %xmm0, -0x21c(%rbp)
jmp 0x65665
leaq 0x26b39(%rip), %rdi     # 0x8c110
leaq 0x1d88b(%rip), %rsi     # 0x82e69
callq 0x1140
cmpl $0x0, %eax
jne 0x65663
movss 0x1cdc0(%rip), %xmm0    # 0x823b0
movss %xmm0, -0x220(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x224(%rbp)
movss 0x1cda1(%rip), %xmm0    # 0x823ac
movss %xmm0, -0x228(%rbp)
movss 0x1cd8d(%rip), %xmm0    # 0x823a8
movss %xmm0, -0x214(%rbp)
movss 0x1cd79(%rip), %xmm0    # 0x823a4
movss %xmm0, -0x218(%rbp)
movss 0x1cd65(%rip), %xmm0    # 0x823a0
movss %xmm0, -0x210(%rbp)
movss 0x1cd51(%rip), %xmm0    # 0x8239c
movss %xmm0, -0x20c(%rbp)
movss 0x1cd3d(%rip), %xmm0    # 0x82398
movss %xmm0, -0x21c(%rbp)
jmp 0x65665
jmp 0x65667
jmp 0x65669
movss -0x220(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
leaq 0x268ec(%rip), %rax     # 0x8bf68
movsd (%rax), %xmm2
movss -0x224(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x268dd(%rip), %rax     # 0x8bf70
mulsd (%rax), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movss -0x228(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x268ce(%rip), %rax     # 0x8bf80
movsd (%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movss -0x214(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd -0x130(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movss -0x218(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd -0x128(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movss -0x210(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd -0x1f0(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movss -0x20c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd -0x1f8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movss -0x21c(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x230(%rbp)
movq -0x108(%rbp), %rdi
movsd -0x230(%rbp), %xmm0
leaq 0x1d71a(%rip), %rsi     # 0x82e76
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movss -0x220(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x224(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x228(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
movss -0x214(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
movss -0x218(%rbp), %xmm4
cvtss2sd %xmm4, %xmm4
movss -0x210(%rbp), %xmm5
cvtss2sd %xmm5, %xmm5
movss -0x20c(%rbp), %xmm6
cvtss2sd %xmm6, %xmm6
movss -0x21c(%rbp), %xmm7
cvtss2sd %xmm7, %xmm7
leaq 0x1d6cc(%rip), %rsi     # 0x82e9d
movb $0x8, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd 0x26749(%rip), %xmm0    # 0x8bf30
leaq 0x1d74e(%rip), %rsi     # 0x82f3c
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd 0x26734(%rip), %xmm0    # 0x8bf38
leaq 0x1d770(%rip), %rsi     # 0x82f7b
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
leaq 0x26748(%rip), %rax     # 0x8bf68
movsd (%rax), %xmm0
leaq 0x1d792(%rip), %rsi     # 0x82fbd
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
leaq 0x26730(%rip), %rax     # 0x8bf70
movsd (%rax), %xmm0
leaq 0x1d787(%rip), %rsi     # 0x82fd2
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
leaq 0x26718(%rip), %rax     # 0x8bf78
movsd (%rax), %xmm0
leaq 0x1d785(%rip), %rsi     # 0x82ff0
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
leaq 0x26700(%rip), %rax     # 0x8bf80
movsd (%rax), %xmm0
leaq 0x1d780(%rip), %rsi     # 0x8300b
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd -0x130(%rbp), %xmm0
leaq 0x1d775(%rip), %rsi     # 0x8301d
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd -0x128(%rbp), %xmm0
leaq 0x1d772(%rip), %rsi     # 0x83037
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd -0x1f0(%rbp), %xmm0
leaq 0x1d76f(%rip), %rsi     # 0x83051
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
movsd -0x1f8(%rbp), %xmm0
leaq 0x1d76c(%rip), %rsi     # 0x8306b
movb $0x1, %al
callq 0x1150
movq -0x108(%rbp), %rdi
callq 0x10a0
movq -0x168(%rbp), %rax
movq %rax, %rsp
movq %rbp, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)