// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movl %r9d, %r15d
movq %r8, %r12
movq %rcx, -0x70(%rbp)
movq %rdx, -0x80(%rbp)
movl %esi, %r14d
movq %rdi, %rbx
movq 0x10(%rbp), %rdx
leaq 0x17a2e(%rip), %rsi     # 0x5d94c
leaq -0x230(%rbp), %r13
movq %r13, %rdi
xorl %eax, %eax
callq 0x2260
leaq 0x1130a(%rip), %rsi     # 0x57240
movq %r13, %rdi
callq 0x2210
movq %rax, -0xa8(%rbp)
leaq 0xbd8f(%rip), %rdi      # 0x51cdb
movq %r13, %rsi
xorl %eax, %eax
callq 0x20f0
movq %rsp, -0x140(%rbp)
leal -0x1(%r15), %eax
imull %r15d, %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
leaq 0xf(,%rcx,4), %rax
andq $-0x10, %rax
movq %rsp, %r15
subq %rax, %r15
movq %r15, %rsp
movq %rsp, %r13
subq %rax, %r13
movl %r14d, %eax
movq %r13, %rsp
testl %r14d, %r14d
movl %r14d, -0x5c(%rbp)
jle 0x460ff
movl %eax, %r14d
xorl %edx, %edx
movsd 0x10f77(%rip), %xmm2    # 0x56f20
xorps %xmm0, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd %xmm0, -0x30(%rbp)
movsd %xmm0, -0x58(%rbp)
movapd %xmm2, %xmm4
xorl %r11d, %r11d
xorpd %xmm3, %xmm3
movl 0x50(%rbp), %ecx
imulq $0xc8, %rdx, %rdi
movslq (%rbx,%rdi), %rsi
imulq $0x70, %rsi, %r8
movslq 0x64(%r12,%r8), %rsi
cmpl %ecx, %esi
jge 0x4603c
movslq 0x4(%rbx,%rdi), %rdi
imulq $0x70, %rdi, %r9
movl 0x64(%r12,%r9), %edi
cmpl %ecx, %edi
jge 0x4603c
addq %r12, %r8
addq %r12, %r9
movl 0x6c(%r8), %r10d
movl 0x6c(%r9), %r8d
cmpl %r8d, %r10d
je 0x4605a
movl %r8d, %r9d
cmovll %r10d, %r9d
cmovgl %r10d, %r8d
testl %r11d, %r11d
jle 0x46043
movl %r11d, %ecx
movl %r11d, %r11d
xorl %r10d, %r10d
cmpl (%r15,%r10,4), %r9d
jne 0x4602c
cmpl (%r13,%r10,4), %r8d
je 0x46037
incq %r10
cmpq %r10, %r11
jne 0x4601f
movl %r11d, %r10d
movl %ecx, %r11d
jmp 0x46046
decl %eax
jmp 0x460f1
xorl %r10d, %r10d
cmpl %r11d, %r10d
jne 0x4605a
movl %r10d, %r10d
movl %r9d, (%r15,%r10,4)
movl %r8d, (%r13,%r10,4)
incl %r11d
movl 0x50(%rbp), %ecx
movq 0x28(%rbp), %r9
movslq %edi, %rdi
movq 0x18(%rbp), %r8
testq %r8, %r8
je 0x4608e
movq (%r8,%rsi,8), %r8
xorps %xmm0, %xmm0
cvtss2sd (%r8,%rdi,4), %xmm0
movsd -0x38(%rbp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, -0x38(%rbp)
ucomisd %xmm0, %xmm2
ja 0x46092
movapd %xmm2, %xmm0
movq 0x20(%rbp), %r8
testq %r8, %r8
je 0x460bc
movq (%r8,%rsi,8), %r8
xorps %xmm1, %xmm1
cvtss2sd (%r8,%rdi,4), %xmm1
movsd -0x30(%rbp), %xmm2
addsd %xmm1, %xmm2
movsd %xmm2, -0x30(%rbp)
ucomisd %xmm1, %xmm4
ja 0x460c0
movapd %xmm4, %xmm1
testq %r9, %r9
je 0x460e9
movq (%r9,%rsi,8), %rsi
xorps %xmm2, %xmm2
cvtss2sd (%rsi,%rdi,4), %xmm2
movsd -0x58(%rbp), %xmm4
addsd %xmm2, %xmm4
movsd %xmm4, -0x58(%rbp)
ucomisd %xmm3, %xmm2
jbe 0x460e9
movapd %xmm2, %xmm3
movapd %xmm1, %xmm4
movapd %xmm0, %xmm2
incq %rdx
cmpq %r14, %rdx
jne 0x45fc9
jmp 0x46124
movsd 0x10e19(%rip), %xmm4    # 0x56f20
xorpd %xmm3, %xmm3
movapd %xmm4, %xmm2
xorps %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd %xmm0, -0x30(%rbp)
movsd %xmm0, -0x38(%rbp)
xorl %r11d, %r11d
testl %eax, %eax
movl %r11d, -0xb4(%rbp)
movsd %xmm3, -0x128(%rbp)
movsd %xmm4, -0x120(%rbp)
movsd %xmm2, -0x118(%rbp)
je 0x46178
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd -0x38(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, -0x38(%rbp)
movsd -0x30(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, -0x30(%rbp)
movsd -0x58(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, -0x58(%rbp)
movq %r13, -0x130(%rbp)
movq %r15, -0x138(%rbp)
callq 0x32e47
cmpl $0x0, 0x34902(%rip)     # 0x7aa94
jne 0x461a6
movq %rax, %rdi
callq 0x5050c
movl $0x1, 0x348ee(%rip)     # 0x7aa94
movq 0x48(%rbp), %rbx
movq 0x38(%rbp), %r14
movq -0x70(%rbp), %rax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x88(%rbp)
decl %eax
movl %eax, -0xb0(%rbp)
xorpd %xmm1, %xmm1
xorl %eax, %eax
xorpd %xmm3, %xmm3
xorpd %xmm0, %xmm0
movapd %xmm0, -0x110(%rbp)
movapd %xmm0, -0x100(%rbp)
movapd %xmm0, -0xf0(%rbp)
movapd %xmm0, -0xe0(%rbp)
movapd %xmm3, -0x150(%rbp)
movapd %xmm1, -0x160(%rbp)
movl %eax, -0xb8(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, %r15d
xorpd %xmm0, %xmm0
movapd %xmm0, -0xd0(%rbp)
movapd %xmm0, -0xa0(%rbp)
xorpd %xmm2, %xmm2
testl %eax, %eax
jle 0x46336
movl -0x5c(%rbp), %r15d
movl %r15d, %r13d
movapd %xmm0, -0xa0(%rbp)
movapd %xmm0, -0xd0(%rbp)
movapd %xmm2, -0x50(%rbp)
xorl %eax, %eax
callq 0x50647
mulsd -0x88(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl -0x70(%rbp), %eax
jl 0x46279
leaq 0x17a57(%rip), %rdi     # 0x5dcc5
callq 0x2090
movl -0xb0(%rbp), %eax
cltq
imulq $0xc8, %rax, %rcx
movq -0x80(%rbp), %rdi
movslq (%rdi,%rcx), %rax
imulq $0x70, %rax, %rax
movslq 0x64(%r12,%rax), %rax
movl 0x50(%rbp), %edx
cmpl %edx, %eax
movq 0x28(%rbp), %rsi
jge 0x46325
movslq 0x4(%rdi,%rcx), %rcx
imulq $0x70, %rcx, %rcx
movl 0x64(%r12,%rcx), %ecx
cmpl %edx, %ecx
jge 0x46325
movslq %ecx, %rcx
movq 0x18(%rbp), %rdx
testq %rdx, %rdx
movapd -0x50(%rbp), %xmm2
je 0x462e5
movq (%rdx,%rax,8), %rdx
xorps %xmm0, %xmm0
cvtss2sd (%rdx,%rcx,4), %xmm0
movapd -0xd0(%rbp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, -0xd0(%rbp)
movq 0x20(%rbp), %rdx
testq %rdx, %rdx
je 0x4630e
movq (%rdx,%rax,8), %rdx
xorps %xmm0, %xmm0
cvtss2sd (%rdx,%rcx,4), %xmm0
movapd -0xa0(%rbp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, -0xa0(%rbp)
testq %rsi, %rsi
je 0x4632d
movq (%rsi,%rax,8), %rax
xorps %xmm0, %xmm0
cvtss2sd (%rax,%rcx,4), %xmm0
addsd %xmm0, %xmm2
jmp 0x4632d
decl %r15d
movapd -0x50(%rbp), %xmm2
decl %r13d
jne 0x4624a
xorps %xmm0, %xmm0
cvtsi2sd %r15d, %xmm0
movapd -0xd0(%rbp), %xmm5
divsd %xmm0, %xmm5
movapd -0xe0(%rbp), %xmm1
addsd %xmm5, %xmm1
movapd %xmm1, -0xe0(%rbp)
movapd -0x110(%rbp), %xmm4
movapd %xmm4, %xmm1
movsd 0xacce(%rip), %xmm3     # 0x51040
addsd %xmm3, %xmm1
movsd -0x38(%rbp), %xmm6
cmpltsd %xmm5, %xmm6
andpd %xmm6, %xmm1
andnpd %xmm4, %xmm6
orpd %xmm1, %xmm6
movapd -0xa0(%rbp), %xmm5
divsd %xmm0, %xmm5
movapd -0xf0(%rbp), %xmm1
addsd %xmm5, %xmm1
movapd %xmm1, -0xf0(%rbp)
movapd -0x150(%rbp), %xmm4
movapd %xmm4, %xmm1
addsd %xmm3, %xmm1
movsd -0x30(%rbp), %xmm7
cmpltsd %xmm5, %xmm7
andpd %xmm7, %xmm1
andnpd %xmm4, %xmm7
orpd %xmm1, %xmm7
divsd %xmm0, %xmm2
movapd -0x100(%rbp), %xmm0
addsd %xmm2, %xmm0
movapd %xmm0, -0x100(%rbp)
movapd -0x160(%rbp), %xmm1
movapd %xmm1, %xmm0
addsd %xmm3, %xmm0
cmpltsd -0x58(%rbp), %xmm2
andpd %xmm2, %xmm0
andnpd %xmm1, %xmm2
orpd %xmm0, %xmm2
movl -0xb8(%rbp), %eax
incl %eax
movapd %xmm2, %xmm1
movapd %xmm7, %xmm3
movapd %xmm6, -0x110(%rbp)
cmpl $0xc8, %eax
jne 0x461f7
leaq 0x17527(%rip), %rsi     # 0x5d95d
movq -0xa8(%rbp), %rbx
movq %rbx, %rdi
movl -0x5c(%rbp), %edx
xorl %eax, %eax
movapd %xmm2, -0x50(%rbp)
movapd %xmm6, -0x80(%rbp)
movapd %xmm7, -0x70(%rbp)
callq 0x2190
movsd 0x1386f(%rip), %xmm0    # 0x59cd0
movapd -0xe0(%rbp), %xmm2
divsd %xmm0, %xmm2
movapd -0x80(%rbp), %xmm3
divsd %xmm0, %xmm3
leaq 0x174f9(%rip), %rsi     # 0x5d976
movq %rbx, %rdi
movsd -0x38(%rbp), %xmm0
movsd -0x118(%rbp), %xmm1
movb $0x4, %al
callq 0x2190
movapd -0xf0(%rbp), %xmm2
movsd 0x1382c(%rip), %xmm0    # 0x59cd0
divsd %xmm0, %xmm2
movapd -0x70(%rbp), %xmm3
divsd %xmm0, %xmm3
leaq 0x17503(%rip), %rsi     # 0x5d9bb
movq %rbx, %rdi
movsd -0x30(%rbp), %xmm0
movsd -0x120(%rbp), %xmm1
movb $0x4, %al
callq 0x2190
movapd -0x100(%rbp), %xmm2
movsd 0x137f1(%rip), %xmm0    # 0x59cd0
divsd %xmm0, %xmm2
movapd -0x50(%rbp), %xmm3
divsd %xmm0, %xmm3
leaq 0x1750d(%rip), %rsi     # 0x5da00
movq %rbx, %rdi
movsd -0x58(%rbp), %xmm0
movsd -0x128(%rbp), %xmm1
movb $0x4, %al
callq 0x2190
leaq 0x17534(%rip), %rsi     # 0x5da45
movq %rbx, %rdi
movl -0xb4(%rbp), %ebx
movl %ebx, %edx
xorl %eax, %eax
callq 0x2190
xorps %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
xorpd %xmm2, %xmm2
xorpd %xmm3, %xmm3
testl %ebx, %ebx
movq -0x138(%rbp), %rcx
movq -0x130(%rbp), %r12
jle 0x465f3
movl %ebx, %eax
movq %rax, -0x88(%rbp)
xorl %r13d, %r13d
movsd %xmm3, -0x80(%rbp)
movsd %xmm2, -0x70(%rbp)
movsd %xmm0, -0x50(%rbp)
movslq (%rcx,%r13,4), %r14
movslq (%r12,%r13,4), %r15
movq -0xa8(%rbp), %rdi
leaq 0x174df(%rip), %rsi     # 0x5da5c
movl %r14d, %edx
movq %rcx, %rbx
movl %r15d, %ecx
xorl %eax, %eax
callq 0x2190
movsd -0x80(%rbp), %xmm3
movsd -0x70(%rbp), %xmm2
movq 0x38(%rbp), %rax
movq (%rax,%r14,8), %rax
movq 0x48(%rbp), %rcx
movq (%rcx,%r14,8), %rcx
movsd (%rcx,%r15,8), %xmm0
movq %rbx, %rcx
movsd (%rax,%r15,8), %xmm1
mulsd %xmm0, %xmm1
movq 0x30(%rbp), %rax
movq (%rax,%r14,8), %rax
addsd %xmm0, %xmm3
mulsd (%rax,%r15,8), %xmm0
addsd %xmm1, %xmm2
movsd -0x50(%rbp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
incq %r13
cmpq %r13, -0x88(%rbp)
jne 0x46558
movsd %xmm3, -0x80(%rbp)
movsd %xmm2, -0x70(%rbp)
movsd %xmm0, -0x50(%rbp)
movl $0xa, %edi
movq -0xa8(%rbp), %r12
movq %r12, %rsi
callq 0x2140
leaq 0x22b33(%rip), %rdi     # 0x69150
leaq 0xe3e5(%rip), %rsi      # 0x54a09
callq 0x2180
testl %eax, %eax
je 0x466b1
leaq 0x22b18(%rip), %rdi     # 0x69150
leaq 0x17424(%rip), %rsi     # 0x5da63
callq 0x2180
testl %eax, %eax
je 0x466f1
leaq 0x22afd(%rip), %rdi     # 0x69150
leaq 0x17410(%rip), %rsi     # 0x5da6a
callq 0x2180
testl %eax, %eax
je 0x4672d
leaq 0x22ae2(%rip), %rdi     # 0x69150
leaq 0x173ff(%rip), %rsi     # 0x5da74
callq 0x2180
xorpd %xmm4, %xmm4
testl %eax, %eax
je 0x4676a
xorpd %xmm9, %xmm9
xorpd %xmm8, %xmm8
xorpd %xmm10, %xmm10
xorpd %xmm7, %xmm7
xorpd %xmm5, %xmm5
xorps %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
xorpd %xmm6, %xmm6
jmp 0x467ad
movsd 0x169a7(%rip), %xmm6    # 0x5d060
movsd 0x169a7(%rip), %xmm4    # 0x5d068
movsd 0x169a7(%rip), %xmm5    # 0x5d070
movsd 0x169a7(%rip), %xmm7    # 0x5d078
movsd 0x169a6(%rip), %xmm10   # 0x5d080
movsd 0x169a5(%rip), %xmm8    # 0x5d088
movsd 0x169a4(%rip), %xmm9    # 0x5d090
jmp 0x467ad
movsd 0x1699f(%rip), %xmm6    # 0x5d098
movsd 0x1699f(%rip), %xmm4    # 0x5d0a0
movsd 0x1699f(%rip), %xmm5    # 0x5d0a8
movsd 0x1699f(%rip), %xmm7    # 0x5d0b0
movsd 0x1699e(%rip), %xmm8    # 0x5d0b8
movsd 0x1699d(%rip), %xmm9    # 0x5d0c0
movapd %xmm8, %xmm10
jmp 0x467ad
movsd 0x16993(%rip), %xmm6    # 0x5d0c8
movsd 0x16993(%rip), %xmm4    # 0x5d0d0
movsd 0xa913(%rip), %xmm5     # 0x51058
movsd 0x1698b(%rip), %xmm7    # 0x5d0d8
movsd 0x1698a(%rip), %xmm10   # 0x5d0e0
movsd 0x16989(%rip), %xmm8    # 0x5d0e8
movsd 0x16988(%rip), %xmm9    # 0x5d0f0
jmp 0x467ad
movsd 0x16986(%rip), %xmm6    # 0x5d0f8
movsd 0x16986(%rip), %xmm0    # 0x5d100
movsd %xmm0, -0xa0(%rbp)
movsd 0x1697e(%rip), %xmm5    # 0x5d108
movsd 0x1697e(%rip), %xmm7    # 0x5d110
movsd 0x1697d(%rip), %xmm10   # 0x5d118
movsd 0x1697c(%rip), %xmm8    # 0x5d120
movsd 0x1697b(%rip), %xmm9    # 0x5d128
movsd -0x50(%rbp), %xmm0
movsd -0x70(%rbp), %xmm2
movsd -0x80(%rbp), %xmm1
movsd %xmm10, -0x110(%rbp)
movsd %xmm4, -0xe0(%rbp)
movsd %xmm6, -0xf0(%rbp)
movsd %xmm7, -0x100(%rbp)
movsd %xmm8, -0xb0(%rbp)
movsd %xmm9, -0xd0(%rbp)
movsd %xmm5, -0x88(%rbp)
divsd %xmm1, %xmm0
divsd %xmm1, %xmm2
movsd %xmm2, -0x70(%rbp)
leaq 0x2279d(%rip), %r15     # 0x68fa8
leaq 0x2279e(%rip), %r14     # 0x68fb0
movapd %xmm0, %xmm3
movsd %xmm0, -0x50(%rbp)
movsd (%r14), %xmm0
mulsd %xmm4, %xmm0
movsd (%r15), %xmm1
mulsd -0xa0(%rbp), %xmm1
addsd %xmm0, %xmm1
leaq 0x22784(%rip), %rbx     # 0x68fc0
movsd (%rbx), %xmm0
mulsd %xmm6, %xmm0
addsd %xmm1, %xmm0
movapd %xmm10, %xmm1
mulsd -0x30(%rbp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm7, %xmm0
mulsd -0x38(%rbp), %xmm0
addsd %xmm1, %xmm0
movapd %xmm8, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movapd %xmm9, %xmm0
mulsd %xmm3, %xmm0
addsd %xmm1, %xmm0
addsd %xmm5, %xmm0
leaq 0x171f9(%rip), %rsi     # 0x5da81
movq %r12, %rdi
movb $0x1, %al
callq 0x2190
leaq 0x1720f(%rip), %rsi     # 0x5daa8
movq %r12, %rdi
movsd -0xa0(%rbp), %xmm0
movsd -0xe0(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
movsd -0x110(%rbp), %xmm3
movsd -0x100(%rbp), %xmm4
movsd -0xb0(%rbp), %xmm5
movsd -0xd0(%rbp), %xmm6
movsd -0x88(%rbp), %xmm7
movb $0x8, %al
callq 0x2190
movsd 0x22685(%rip), %xmm0    # 0x68f70
leaq 0x17255(%rip), %rsi     # 0x5db47
movq %r12, %rdi
movb $0x1, %al
callq 0x2190
movsd 0x22674(%rip), %xmm0    # 0x68f78
leaq 0x1727b(%rip), %rsi     # 0x5db86
movq %r12, %rdi
movb $0x1, %al
callq 0x2190
movsd (%r15), %xmm0
leaq 0x172a7(%rip), %rsi     # 0x5dbc8
movq %r12, %rdi
movb $0x1, %al
callq 0x2190
movsd (%r14), %xmm0
leaq 0x172a6(%rip), %rsi     # 0x5dbdd
movq %r12, %rdi
movb $0x1, %al
callq 0x2190
leaq 0x22670(%rip), %rax     # 0x68fb8
movsd (%rax), %xmm0
leaq 0x172a8(%rip), %rsi     # 0x5dbfb
movq %r12, %rdi
movb $0x1, %al
callq 0x2190
movsd (%rbx), %xmm0
leaq 0x172ae(%rip), %rsi     # 0x5dc16
movq %r12, %rdi
movb $0x1, %al
callq 0x2190
leaq 0x172af(%rip), %rsi     # 0x5dc28
movq %r12, %rdi
movsd -0x30(%rbp), %xmm0
movb $0x1, %al
callq 0x2190
leaq 0x172b3(%rip), %rsi     # 0x5dc42
movq %r12, %rdi
movsd -0x38(%rbp), %xmm0
movb $0x1, %al
callq 0x2190
leaq 0x172b7(%rip), %rsi     # 0x5dc5c
movq %r12, %rdi
movsd -0x70(%rbp), %xmm0
movb $0x1, %al
callq 0x2190
leaq 0x172bb(%rip), %rsi     # 0x5dc76
movq %r12, %rdi
movsd -0x50(%rbp), %xmm0
movb $0x1, %al
callq 0x2190
movq %r12, %rdi
callq 0x20c0
movq -0x140(%rbp), %rsp
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq