// File: /workspace/github_c_makefile_star2_O0/jiqingxiaoxi[P]RPA/RPA.c
// Function: thal
double thal(char oligo_f[],char oligo_r[],double stackEntropies[],double stackEnthalpies[],double stackint2Entropies[],double stackint2Enthalpies[],double dangleEntropies3[],double dangleEnthalpies3[],double dangleEntropies5[],double dangleEnthalpies5[],double hairpinLoopEntropies[],double interiorLoopEntropies[],double bulgeLoopEntropies[],double hairpinLoopEnthalpies[],double interiorLoopEnthalpies[],double bulgeLoopEnthalpies[],double tstackEntropies[],double tstackEnthalpies[],double tstack2Entropies[],double tstack2Enthalpies[],char *triloopEntropies1,char *triloopEnthalpies1,char *tetraloopEntropies1,char *tetraloopEnthalpies1,double *triloopEntropies2,double *triloopEnthalpies2,double *tetraloopEntropies2,double *tetraloopEnthalpies2,int numTriloops,int numTetraloops,double atpS[],double atpH[],int type)
{
	double SH[2],Initdouble[4];//0 is dplx_init_H, 1 is dplx_init_S, 2 is RC, 3 is SHleft
	int Initint[5]; //0 is len1, 1 is len2, 2 is len3, 3 is bestI, 4 is bestJ
	int i, j;
	double T1,enthalpyDPT[3600],entropyDPT[3600],send5[60],hend5[60],result_TH;
	int ps1[60],ps2[60];
	char numSeq1[60],numSeq2[60];
	double mh, ms;

/*** INIT values for unimolecular and bimolecular structures ***/
	if (type==4) /* unimolecular folding */
	{
		Initdouble[0]= 0.0;
		Initdouble[1] = -0.00000000001;
		Initdouble[2]=0;
	}
	else /* hybridization of two oligos */
	{
		Initdouble[0]= 200;
		Initdouble[1]= -5.7;
		if(symmetry_thermo(oligo_f) && symmetry_thermo(oligo_r))
			Initdouble[2]=1.9872* log(38/1000000000.0);
		else
			Initdouble[2]=1.9872* log(38/4000000000.0);
	}
/* convert nucleotides to numbers */
	if(type==1 || type==2)
	{
		Initint[0]=strlen(oligo_f);
		Initint[1]=strlen(oligo_r);
	 	for(i=1;i<=Initint[0];++i)
			numSeq1[i]=str2int(oligo_f[i-1]);
		for(i=1;i<=Initint[1];++i)
			numSeq2[i]=str2int(oligo_r[Initint[1]-i]);
	}
	else if(type==3)
	{
		Initint[0]=strlen(oligo_r);
		Initint[1]=strlen(oligo_f);
		for(i=1;i<=Initint[0];++i)
			numSeq1[i]=str2int(oligo_r[i-1]);
		for(i=1;i<=Initint[1];++i)
			numSeq2[i]=str2int(oligo_f[Initint[1]-i]);
	}
	else
	{
		Initint[0]=strlen(oligo_f);
                Initint[1]=strlen(oligo_r);
		Initint[2]=Initint[1]-1;
                for(i=1;i<=Initint[0];++i)      
                        numSeq1[i]=str2int(oligo_f[i-1]);   
                for(i=1;i<=Initint[1];++i)      
                        numSeq2[i]=str2int(oligo_r[i-1]);
	}
	numSeq1[0]=numSeq1[Initint[0]+1]=numSeq2[0]=numSeq2[Initint[1]+1]=4; /* mark as N-s */

	result_TH=0;
	if (type==4) /* calculate structure of monomer */
	{
		initMatrix2(Initint,enthalpyDPT,entropyDPT,numSeq1);
		fillMatrix2(stackEntropies,stackEnthalpies,stackint2Entropies,stackint2Enthalpies,hairpinLoopEntropies,interiorLoopEntropies,bulgeLoopEntropies,hairpinLoopEnthalpies,interiorLoopEnthalpies,bulgeLoopEnthalpies,tstackEntropies,tstackEnthalpies,tstack2Entropies,tstack2Enthalpies,triloopEntropies1,triloopEnthalpies1,tetraloopEntropies1,tetraloopEnthalpies1,triloopEntropies2,triloopEnthalpies2,tetraloopEntropies2,tetraloopEnthalpies2,numTriloops,numTetraloops,atpS,atpH,Initdouble,Initint,enthalpyDPT,entropyDPT,numSeq1,numSeq2);
		calc_terminal_bp(310.15,dangleEntropies3,dangleEnthalpies3,dangleEntropies5,dangleEnthalpies5,tstack2Entropies,tstack2Enthalpies,atpS,atpH,Initdouble,Initint,enthalpyDPT,entropyDPT,send5,hend5,numSeq1);
		mh=hend5[Initint[0]];
		ms=send5[Initint[0]];
		for (i=0;i<Initint[0];i++)
			ps1[i]=0;
		if(fabs(mh)<999999999)
		{
			tracebacku(ps1,stackEntropies,stackEnthalpies,stackint2Entropies,stackint2Enthalpies,dangleEntropies3,dangleEnthalpies3,dangleEntropies5,dangleEnthalpies5,hairpinLoopEntropies,interiorLoopEntropies,bulgeLoopEntropies,hairpinLoopEnthalpies,interiorLoopEnthalpies,bulgeLoopEnthalpies,tstackEntropies,tstackEnthalpies,tstack2Entropies,tstack2Enthalpies,triloopEntropies1,triloopEnthalpies1,tetraloopEntropies1,tetraloopEnthalpies1,triloopEntropies2,triloopEnthalpies2,tetraloopEntropies2,tetraloopEnthalpies2,numTriloops,numTetraloops,atpS,atpH,Initdouble,Initint,enthalpyDPT,entropyDPT,send5,hend5,numSeq1,numSeq2);
			result_TH=drawHairpin(ps1,mh,ms,Initint);
			result_TH=(int)(result_TH*100+0.5)/100.0;
		}
	}
	else if(type!=4) /* Hybridization of two moleculs */
	{
		Initint[2]=Initint[1];
		initMatrix(Initint,enthalpyDPT,entropyDPT,numSeq1,numSeq2);
		fillMatrix(stackEntropies,stackEnthalpies,stackint2Entropies,stackint2Enthalpies,dangleEntropies3,dangleEnthalpies3,dangleEntropies5,dangleEnthalpies5,interiorLoopEntropies,bulgeLoopEntropies,interiorLoopEnthalpies,bulgeLoopEnthalpies,tstackEntropies,tstackEnthalpies,tstack2Entropies,tstack2Enthalpies,atpS,atpH,Initdouble,Initint,enthalpyDPT,entropyDPT,numSeq1,numSeq2);

		Initdouble[3]=-1.0*INFINITY;
	/* calculate terminal basepairs */
		Initint[3]=Initint[4]=0;
		if(type==1)
			for (i=1;i<=Initint[0];i++)
			{
				for (j=1;j<=Initint[1];j++)
				{
					RSH(i,j,SH,dangleEntropies3,dangleEnthalpies3,dangleEntropies5,dangleEnthalpies5,tstack2Entropies,tstack2Enthalpies,atpS,atpH,Initdouble,numSeq1,numSeq2);
					SH[0]=SH[0]+0.000001; /* this adding is done for compiler, optimization -O2 vs -O0 */
					SH[1]=SH[1]+0.000001;
					T1=((enthalpyDPT[(i-1)*Initint[2]+j-1]+ SH[1] +Initdouble[0]) / ((entropyDPT[(i-1)*Initint[2]+j-1]) + SH[0] +Initdouble[1] + Initdouble[2])) -273.15;
					if(T1>Initdouble[3]&&((entropyDPT[(i-1)*Initint[2]+j-1]+SH[0])<0&&(SH[1]+enthalpyDPT[(i-1)*Initint[2]+j-1])<0))
					{
						Initdouble[3]=T1;
						Initint[3]=i;
						Initint[4]=j;
					}
				}
			}
		if(type==2||type==3)
		{
		 //THAL_END1
			Initint[4]=0;
			Initint[3]=Initint[0];
			i=Initint[0];
			Initdouble[3]=-1.0*INFINITY;
			for (j=1;j<=Initint[1];++j)
			{
				RSH(i,j,SH,dangleEntropies3,dangleEnthalpies3,dangleEntropies5,dangleEnthalpies5,tstack2Entropies,tstack2Enthalpies,atpS,atpH,Initdouble,numSeq1,numSeq2);
				SH[0]=SH[0]+0.000001; // this adding is done for compiler, optimization -O2 vs -O0,that compiler could understand that SH is changed in this cycle 
				SH[1]=SH[1]+0.000001;
				T1=((enthalpyDPT[(i-1)*Initint[2]+j-1]+SH[1]+Initdouble[0])/((entropyDPT[(i-1)*Initint[2]+j-1])+SH[0]+Initdouble[1]+Initdouble[2]))-273.15;
				if (T1>Initdouble[3]&&((SH[0]+entropyDPT[(i-1)*Initint[2]+j-1])<0&&(SH[1]+enthalpyDPT[(i-1)*Initint[2]+j-1])<0))
				{
					Initdouble[3]=T1;
					Initint[4]=j;
				}
			}
		}
		if(fabs(Initdouble[3])>999999999)
			Initint[3]=Initint[4]=1;
		RSH(Initint[3], Initint[4], SH,dangleEntropies3,dangleEnthalpies3,dangleEntropies5,dangleEnthalpies5,tstack2Entropies,tstack2Enthalpies,atpS,atpH,Initdouble,numSeq1,numSeq2);
	 // tracebacking 
		for (i=0;i<Initint[0];++i)
			ps1[i]=0;
		for (j=0;j<Initint[1];++j)
			ps2[j] = 0;
		if(fabs(enthalpyDPT[(Initint[3]-1)*Initint[2]+Initint[4]-1])<999999999)
		{
			traceback(Initint[3],Initint[4],ps1,ps2,stackEntropies,stackEnthalpies,stackint2Entropies,stackint2Enthalpies,dangleEntropies3,dangleEnthalpies3,dangleEntropies5,dangleEnthalpies5,interiorLoopEntropies,bulgeLoopEntropies,interiorLoopEnthalpies,bulgeLoopEnthalpies,tstackEntropies,tstackEnthalpies,tstack2Entropies,tstack2Enthalpies,atpS,atpH,Initdouble,Initint,enthalpyDPT,entropyDPT,numSeq1,numSeq2);
			result_TH=drawDimer(ps1,ps2,(enthalpyDPT[(Initint[3]-1)*Initint[2]+Initint[4]-1]+SH[1]+Initdouble[0]),(entropyDPT[(Initint[3]-1)*Initint[2]+Initint[4]-1]+SH[0]+Initdouble[1]),Initdouble,Initint);
			result_TH=(int)(result_TH*100+0.5)/100.0;
		}
	}
	return result_TH;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xeb18, %rsp           # imm = 0xEB18
movl 0xe0(%rbp), %eax
movq 0xd8(%rbp), %rax
movq 0xd0(%rbp), %rax
movl 0xc8(%rbp), %eax
movl 0xc0(%rbp), %eax
movq 0xb8(%rbp), %rax
movq 0xb0(%rbp), %rax
movq 0xa8(%rbp), %rax
movq 0xa0(%rbp), %rax
movq 0x98(%rbp), %rax
movq 0x90(%rbp), %rax
movq 0x88(%rbp), %rax
movq 0x80(%rbp), %rax
movq 0x78(%rbp), %rax
movq 0x70(%rbp), %rax
movq 0x68(%rbp), %rax
movq 0x60(%rbp), %rax
movq 0x58(%rbp), %rax
movq 0x50(%rbp), %rax
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, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq %rdx, -0x40(%rbp)
movq %rcx, -0x48(%rbp)
movq %r8, -0x50(%rbp)
movq %r9, -0x58(%rbp)
cmpl $0x4, 0xe0(%rbp)
jne 0xd10d
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0xa0c0(%rip), %xmm0     # 0x171b8
movsd %xmm0, -0x88(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
jmp 0xd18f
movsd 0xa083(%rip), %xmm0     # 0x17198
movsd %xmm0, -0x90(%rbp)
movsd 0xa06b(%rip), %xmm0     # 0x17190
movsd %xmm0, -0x88(%rbp)
movq -0x30(%rbp), %rdi
callq 0xce40
cmpl $0x0, %eax
je 0xd16c
movq -0x38(%rbp), %rdi
callq 0xce40
cmpl $0x0, %eax
je 0xd16c
movsd 0xa05f(%rip), %xmm0     # 0x171b0
callq 0x1100
movaps %xmm0, %xmm1
movsd 0xa03f(%rip), %xmm0     # 0x171a0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
jmp 0xd18d
movsd 0xa034(%rip), %xmm0     # 0x171a8
callq 0x1100
movaps %xmm0, %xmm1
movsd 0xa01c(%rip), %xmm0     # 0x171a0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
jmp 0xd18f
cmpl $0x1, 0xe0(%rbp)
je 0xd1a5
cmpl $0x2, 0xe0(%rbp)
jne 0xd26f
movq -0x30(%rbp), %rdi
callq 0x10a0
movl %eax, -0xb0(%rbp)
movq -0x38(%rbp), %rdi
callq 0x10a0
movl %eax, -0xac(%rbp)
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jg 0xd215
movq -0x30(%rbp), %rax
movl -0xb4(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x12e0
movb %al, %cl
movslq -0xb4(%rbp), %rax
movb %cl, -0xe7b0(%rbp,%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xd1cd
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xac(%rbp), %eax
jg 0xd26a
movq -0x38(%rbp), %rax
movl -0xac(%rbp), %ecx
subl -0xb4(%rbp), %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x12e0
movb %al, %cl
movslq -0xb4(%rbp), %rax
movb %cl, -0xe7f0(%rbp,%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xd21f
jmp 0xd41b
cmpl $0x3, 0xe0(%rbp)
jne 0xd346
movq -0x38(%rbp), %rdi
callq 0x10a0
movl %eax, -0xb0(%rbp)
movq -0x30(%rbp), %rdi
callq 0x10a0
movl %eax, -0xac(%rbp)
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jg 0xd2ec
movq -0x38(%rbp), %rax
movl -0xb4(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x12e0
movb %al, %cl
movslq -0xb4(%rbp), %rax
movb %cl, -0xe7b0(%rbp,%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xd2a4
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xac(%rbp), %eax
jg 0xd341
movq -0x30(%rbp), %rax
movl -0xac(%rbp), %ecx
subl -0xb4(%rbp), %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x12e0
movb %al, %cl
movslq -0xb4(%rbp), %rax
movb %cl, -0xe7f0(%rbp,%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xd2f6
jmp 0xd419
movq -0x30(%rbp), %rdi
callq 0x10a0
movl %eax, -0xb0(%rbp)
movq -0x38(%rbp), %rdi
callq 0x10a0
movl %eax, -0xac(%rbp)
movl -0xac(%rbp), %eax
subl $0x1, %eax
movl %eax, -0xa8(%rbp)
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jg 0xd3c5
movq -0x30(%rbp), %rax
movl -0xb4(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x12e0
movb %al, %cl
movslq -0xb4(%rbp), %rax
movb %cl, -0xe7b0(%rbp,%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xd37d
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xac(%rbp), %eax
jg 0xd417
movq -0x38(%rbp), %rax
movl -0xb4(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %edi
callq 0x12e0
movb %al, %cl
movslq -0xb4(%rbp), %rax
movb %cl, -0xe7f0(%rbp,%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xd3cf
jmp 0xd419
jmp 0xd41b
movl -0xac(%rbp), %eax
addl $0x1, %eax
cltq
movb $0x4, -0xe7f0(%rbp,%rax)
movb $0x4, -0xe7f0(%rbp)
movl -0xb0(%rbp), %eax
addl $0x1, %eax
cltq
movb $0x4, -0xe7b0(%rbp,%rax)
movb $0x4, -0xe7b0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xe588(%rbp)
cmpl $0x4, 0xe0(%rbp)
jne 0xdba7
leaq -0xb0(%rbp), %rdi
leaq -0x7140(%rbp), %rsi
leaq -0xe1c0(%rbp), %rdx
leaq -0xe7b0(%rbp), %rcx
callq 0x39c0
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
movq 0x30(%rbp), %r8
movq 0x38(%rbp), %r9
movq 0x40(%rbp), %rax
movq %rax, -0xe8a0(%rbp)
movq 0x48(%rbp), %rax
movq %rax, -0xe898(%rbp)
movq 0x50(%rbp), %rax
movq %rax, -0xe890(%rbp)
movq 0x58(%rbp), %rax
movq %rax, -0xe888(%rbp)
movq 0x60(%rbp), %rax
movq %rax, -0xe880(%rbp)
movq 0x68(%rbp), %rax
movq %rax, -0xe878(%rbp)
movq 0x70(%rbp), %rax
movq %rax, -0xe870(%rbp)
movq 0x78(%rbp), %rax
movq %rax, -0xe868(%rbp)
movq 0x80(%rbp), %rax
movq %rax, -0xe860(%rbp)
movq 0x88(%rbp), %rax
movq %rax, -0xe858(%rbp)
movq 0x90(%rbp), %rax
movq %rax, -0xe850(%rbp)
movq 0x98(%rbp), %rax
movq %rax, -0xe848(%rbp)
movq 0xa0(%rbp), %rax
movq %rax, -0xe840(%rbp)
movq 0xa8(%rbp), %rax
movq %rax, -0xe838(%rbp)
movq 0xb0(%rbp), %rax
movq %rax, -0xe830(%rbp)
movq 0xb8(%rbp), %rax
movq %rax, -0xe828(%rbp)
movl 0xc0(%rbp), %eax
movl %eax, -0xe820(%rbp)
movl 0xc8(%rbp), %eax
movl %eax, -0xe81c(%rbp)
movq 0xd0(%rbp), %r13
movq 0xd8(%rbp), %r12
leaq -0x90(%rbp), %r15
leaq -0xb0(%rbp), %r14
leaq -0x7140(%rbp), %rbx
leaq -0xe1c0(%rbp), %r11
leaq -0xe7b0(%rbp), %r10
leaq -0xe7f0(%rbp), %rax
movq %rax, -0xe818(%rbp)
movq -0xe8a0(%rbp), %rax
movq %rax, (%rsp)
movq -0xe898(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0xe890(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0xe888(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0xe880(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0xe878(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0xe870(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0xe868(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0xe860(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0xe858(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0xe850(%rbp), %rax
movq %rax, 0x50(%rsp)
movq -0xe848(%rbp), %rax
movq %rax, 0x58(%rsp)
movq -0xe840(%rbp), %rax
movq %rax, 0x60(%rsp)
movq -0xe838(%rbp), %rax
movq %rax, 0x68(%rsp)
movq -0xe830(%rbp), %rax
movq %rax, 0x70(%rsp)
movq -0xe828(%rbp), %rax
movq %rax, 0x78(%rsp)
movl -0xe820(%rbp), %eax
movl %eax, 0x80(%rsp)
movl -0xe81c(%rbp), %eax
movl %eax, 0x88(%rsp)
movq -0xe818(%rbp), %rax
movq %r13, 0x90(%rsp)
movq %r12, 0x98(%rsp)
movq %r15, 0xa0(%rsp)
movq %r14, 0xa8(%rsp)
movq %rbx, 0xb0(%rsp)
movq %r11, 0xb8(%rsp)
movq %r10, 0xc0(%rsp)
movq %rax, 0xc8(%rsp)
callq 0x5710
movq 0x10(%rbp), %rdi
movq 0x18(%rbp), %rsi
movq 0x20(%rbp), %rdx
movq 0x28(%rbp), %rcx
movq 0x70(%rbp), %r8
movq 0x78(%rbp), %r9
movq 0xd0(%rbp), %rax
movq %rax, -0xe810(%rbp)
movq 0xd8(%rbp), %r13
leaq -0x90(%rbp), %r12
leaq -0xb0(%rbp), %r15
leaq -0x7140(%rbp), %r14
leaq -0xe1c0(%rbp), %rbx
leaq -0xe3a0(%rbp), %r11
leaq -0xe580(%rbp), %r10
leaq -0xe7b0(%rbp), %rax
movq %rax, -0xe808(%rbp)
movq -0xe810(%rbp), %rax
movsd 0x9a78(%rip), %xmm0     # 0x171d0
movq %rax, (%rsp)
movq -0xe808(%rbp), %rax
movq %r13, 0x8(%rsp)
movq %r12, 0x10(%rsp)
movq %r15, 0x18(%rsp)
movq %r14, 0x20(%rsp)
movq %rbx, 0x28(%rsp)
movq %r11, 0x30(%rsp)
movq %r10, 0x38(%rsp)
movq %rax, 0x40(%rsp)
callq 0x70e0
movslq -0xb0(%rbp), %rax
movsd -0xe580(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xe7f8(%rbp)
movslq -0xb0(%rbp), %rax
movsd -0xe3a0(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xe800(%rbp)
movl $0x0, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jge 0xd7fb
movslq -0xb4(%rbp), %rax
movl $0x0, -0xe680(%rbp,%rax,4)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xd7ca
movsd -0xe7f8(%rbp), %xmm1
movaps 0x99e6(%rip), %xmm0     # 0x171f0
pand %xmm0, %xmm1
movsd 0x9922(%rip), %xmm0     # 0x17138
ucomisd %xmm1, %xmm0
jbe 0xdba2
leaq -0xe680(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0x10(%rbp), %r9
movq 0x18(%rbp), %rax
movq %rax, -0xe968(%rbp)
movq 0x20(%rbp), %rax
movq %rax, -0xe960(%rbp)
movq 0x28(%rbp), %rax
movq %rax, -0xe958(%rbp)
movq 0x30(%rbp), %rax
movq %rax, -0xe950(%rbp)
movq 0x38(%rbp), %rax
movq %rax, -0xe948(%rbp)
movq 0x40(%rbp), %rax
movq %rax, -0xe940(%rbp)
movq 0x48(%rbp), %rax
movq %rax, -0xe938(%rbp)
movq 0x50(%rbp), %rax
movq %rax, -0xe930(%rbp)
movq 0x58(%rbp), %rax
movq %rax, -0xe928(%rbp)
movq 0x60(%rbp), %rax
movq %rax, -0xe920(%rbp)
movq 0x68(%rbp), %rax
movq %rax, -0xe918(%rbp)
movq 0x70(%rbp), %rax
movq %rax, -0xe910(%rbp)
movq 0x78(%rbp), %rax
movq %rax, -0xe908(%rbp)
movq 0x80(%rbp), %rax
movq %rax, -0xe900(%rbp)
movq 0x88(%rbp), %rax
movq %rax, -0xe8f8(%rbp)
movq 0x90(%rbp), %rax
movq %rax, -0xe8f0(%rbp)
movq 0x98(%rbp), %rax
movq %rax, -0xe8e8(%rbp)
movq 0xa0(%rbp), %rax
movq %rax, -0xe8e0(%rbp)
movq 0xa8(%rbp), %rax
movq %rax, -0xe8d8(%rbp)
movq 0xb0(%rbp), %rax
movq %rax, -0xe8d0(%rbp)
movq 0xb8(%rbp), %rax
movq %rax, -0xe8c8(%rbp)
movl 0xc0(%rbp), %eax
movl %eax, -0xe8c0(%rbp)
movl 0xc8(%rbp), %eax
movl %eax, -0xe8bc(%rbp)
movq 0xd0(%rbp), %rax
movq %rax, -0xe8b8(%rbp)
movq 0xd8(%rbp), %rax
movq %rax, -0xe8b0(%rbp)
leaq -0x90(%rbp), %r13
leaq -0xb0(%rbp), %r12
leaq -0x7140(%rbp), %r15
leaq -0xe1c0(%rbp), %r14
leaq -0xe3a0(%rbp), %rbx
leaq -0xe580(%rbp), %r11
leaq -0xe7b0(%rbp), %r10
leaq -0xe7f0(%rbp), %rax
movq %rax, -0xe8a8(%rbp)
movq -0xe968(%rbp), %rax
movq %rax, (%rsp)
movq -0xe960(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0xe958(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0xe950(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0xe948(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0xe940(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0xe938(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0xe930(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0xe928(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0xe920(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0xe918(%rbp), %rax
movq %rax, 0x50(%rsp)
movq -0xe910(%rbp), %rax
movq %rax, 0x58(%rsp)
movq -0xe908(%rbp), %rax
movq %rax, 0x60(%rsp)
movq -0xe900(%rbp), %rax
movq %rax, 0x68(%rsp)
movq -0xe8f8(%rbp), %rax
movq %rax, 0x70(%rsp)
movq -0xe8f0(%rbp), %rax
movq %rax, 0x78(%rsp)
movq -0xe8e8(%rbp), %rax
movq %rax, 0x80(%rsp)
movq -0xe8e0(%rbp), %rax
movq %rax, 0x88(%rsp)
movq -0xe8d8(%rbp), %rax
movq %rax, 0x90(%rsp)
movq -0xe8d0(%rbp), %rax
movq %rax, 0x98(%rsp)
movq -0xe8c8(%rbp), %rax
movq %rax, 0xa0(%rsp)
movl -0xe8c0(%rbp), %eax
movl %eax, 0xa8(%rsp)
movl -0xe8bc(%rbp), %eax
movl %eax, 0xb0(%rsp)
movq -0xe8b8(%rbp), %rax
movq %rax, 0xb8(%rsp)
movq -0xe8b0(%rbp), %rax
movq %rax, 0xc0(%rsp)
movq -0xe8a8(%rbp), %rax
movq %r13, 0xc8(%rsp)
movq %r12, 0xd0(%rsp)
movq %r15, 0xd8(%rsp)
movq %r14, 0xe0(%rsp)
movq %rbx, 0xe8(%rsp)
movq %r11, 0xf0(%rsp)
movq %r10, 0xf8(%rsp)
movq %rax, 0x100(%rsp)
callq 0x7b00
leaq -0xe680(%rbp), %rdi
movsd -0xe7f8(%rbp), %xmm0
movsd -0xe800(%rbp), %xmm1
leaq -0xb0(%rbp), %rsi
callq 0x9a90
movsd %xmm0, -0xe588(%rbp)
movsd -0xe588(%rbp), %xmm0
movsd 0x964a(%rip), %xmm1     # 0x171c0
mulsd %xmm1, %xmm0
movsd 0x9646(%rip), %xmm1     # 0x171c8
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
movsd 0x962a(%rip), %xmm1     # 0x171c0
divsd %xmm1, %xmm0
movsd %xmm0, -0xe588(%rbp)
jmp 0xe5da
cmpl $0x4, 0xe0(%rbp)
je 0xe5d8
movl -0xac(%rbp), %eax
movl %eax, -0xa8(%rbp)
leaq -0xb0(%rbp), %rdi
leaq -0x7140(%rbp), %rsi
leaq -0xe1c0(%rbp), %rdx
leaq -0xe7b0(%rbp), %rcx
leaq -0xe7f0(%rbp), %r8
callq 0x9b80
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
movq 0x10(%rbp), %r8
movq 0x18(%rbp), %r9
movq 0x20(%rbp), %rax
movq %rax, -0xe9c0(%rbp)
movq 0x28(%rbp), %rax
movq %rax, -0xe9b8(%rbp)
movq 0x38(%rbp), %rax
movq %rax, -0xe9b0(%rbp)
movq 0x40(%rbp), %rax
movq %rax, -0xe9a8(%rbp)
movq 0x50(%rbp), %rax
movq %rax, -0xe9a0(%rbp)
movq 0x58(%rbp), %rax
movq %rax, -0xe998(%rbp)
movq 0x60(%rbp), %rax
movq %rax, -0xe990(%rbp)
movq 0x68(%rbp), %rax
movq %rax, -0xe988(%rbp)
movq 0x70(%rbp), %rax
movq %rax, -0xe980(%rbp)
movq 0x78(%rbp), %rax
movq %rax, -0xe978(%rbp)
movq 0xd0(%rbp), %r13
movq 0xd8(%rbp), %r12
leaq -0x90(%rbp), %r15
leaq -0xb0(%rbp), %r14
leaq -0x7140(%rbp), %rbx
leaq -0xe1c0(%rbp), %r11
leaq -0xe7b0(%rbp), %r10
leaq -0xe7f0(%rbp), %rax
movq %rax, -0xe970(%rbp)
movq -0xe9c0(%rbp), %rax
movq %rax, (%rsp)
movq -0xe9b8(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0xe9b0(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0xe9a8(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0xe9a0(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0xe998(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0xe990(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0xe988(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0xe980(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0xe978(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0xe970(%rbp), %rax
movq %r13, 0x50(%rsp)
movq %r12, 0x58(%rsp)
movq %r15, 0x60(%rsp)
movq %r14, 0x68(%rsp)
movq %rbx, 0x70(%rsp)
movq %r11, 0x78(%rsp)
movq %r10, 0x80(%rsp)
movq %rax, 0x88(%rsp)
callq 0xb700
movsd 0x940a(%rip), %xmm0     # 0x17170
movsd %xmm0, -0x78(%rbp)
movl $0x0, -0xa0(%rbp)
movl $0x0, -0xa4(%rbp)
cmpl $0x1, 0xe0(%rbp)
jne 0xdfa8
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jg 0xdfa6
movl $0x1, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
cmpl -0xac(%rbp), %eax
jg 0xdf90
movl -0xb4(%rbp), %edi
movl -0xb8(%rbp), %esi
leaq -0x70(%rbp), %rdx
movq 0x10(%rbp), %rcx
movq 0x18(%rbp), %r8
movq 0x20(%rbp), %r9
movq 0x28(%rbp), %r13
movq 0x70(%rbp), %r12
movq 0x78(%rbp), %r15
movq 0xd0(%rbp), %r14
movq 0xd8(%rbp), %rbx
leaq -0x90(%rbp), %r11
leaq -0xe7b0(%rbp), %r10
leaq -0xe7f0(%rbp), %rax
movq %r13, (%rsp)
movq %r12, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movq %r14, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movq %r11, 0x28(%rsp)
movq %r10, 0x30(%rsp)
movq %rax, 0x38(%rsp)
callq 0xbcc0
movsd 0x9325(%rip), %xmm0     # 0x17168
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x9313(%rip), %xmm0     # 0x17168
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0x7140(%rbp,%rax,8), %xmm0
addsd -0x68(%rbp), %xmm0
addsd -0x90(%rbp), %xmm0
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0xe1c0(%rbp,%rax,8), %xmm1
addsd -0x70(%rbp), %xmm1
addsd -0x88(%rbp), %xmm1
addsd -0x80(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd 0x92ae(%rip), %xmm1     # 0x17180
subsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0xc0(%rbp), %xmm0
ucomisd -0x78(%rbp), %xmm0
jbe 0xdf7a
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0xe1c0(%rbp,%rax,8), %xmm1
addsd -0x70(%rbp), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xdf7a
movsd -0x68(%rbp), %xmm1
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
addsd -0x7140(%rbp,%rax,8), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xdf7a
movsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0xa4(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, -0xa0(%rbp)
jmp 0xdf7c
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0xddb2
jmp 0xdf92
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xdd96
jmp 0xdfa8
cmpl $0x2, 0xe0(%rbp)
je 0xdfbe
cmpl $0x3, 0xe0(%rbp)
jne 0xe1c7
movl $0x0, -0xa0(%rbp)
movl -0xb0(%rbp), %eax
movl %eax, -0xa4(%rbp)
movl -0xb0(%rbp), %eax
movl %eax, -0xb4(%rbp)
movsd 0x9188(%rip), %xmm0     # 0x17170
movsd %xmm0, -0x78(%rbp)
movl $0x1, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
cmpl -0xac(%rbp), %eax
jg 0xe1c5
movl -0xb4(%rbp), %edi
movl -0xb8(%rbp), %esi
leaq -0x70(%rbp), %rdx
movq 0x10(%rbp), %rcx
movq 0x18(%rbp), %r8
movq 0x20(%rbp), %r9
movq 0x28(%rbp), %r13
movq 0x70(%rbp), %r12
movq 0x78(%rbp), %r15
movq 0xd0(%rbp), %r14
movq 0xd8(%rbp), %rbx
leaq -0x90(%rbp), %r11
leaq -0xe7b0(%rbp), %r10
leaq -0xe7f0(%rbp), %rax
movq %r13, (%rsp)
movq %r12, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movq %r14, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movq %r11, 0x28(%rsp)
movq %r10, 0x30(%rsp)
movq %rax, 0x38(%rsp)
callq 0xbcc0
movsd 0x90e0(%rip), %xmm0     # 0x17168
addsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x90ce(%rip), %xmm0     # 0x17168
addsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0x7140(%rbp,%rax,8), %xmm0
addsd -0x68(%rbp), %xmm0
addsd -0x90(%rbp), %xmm0
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0xe1c0(%rbp,%rax,8), %xmm1
addsd -0x70(%rbp), %xmm1
addsd -0x88(%rbp), %xmm1
addsd -0x80(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd 0x9069(%rip), %xmm1     # 0x17180
subsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0xc0(%rbp), %xmm0
ucomisd -0x78(%rbp), %xmm0
jbe 0xe1af
movsd -0x70(%rbp), %xmm1
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
addsd -0xe1c0(%rbp,%rax,8), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xe1af
movsd -0x68(%rbp), %xmm1
movl -0xb4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xb8(%rbp), %eax
subl $0x1, %eax
cltq
addsd -0x7140(%rbp,%rax,8), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xe1af
movsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, -0xa0(%rbp)
jmp 0xe1b1
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0xdff7
jmp 0xe1c7
movsd -0x78(%rbp), %xmm0
movaps 0x901d(%rip), %xmm1     # 0x171f0
pand %xmm1, %xmm0
movsd 0x8f59(%rip), %xmm1     # 0x17138
ucomisd %xmm1, %xmm0
jbe 0xe1f9
movl $0x1, -0xa0(%rbp)
movl $0x1, -0xa4(%rbp)
movl -0xa4(%rbp), %edi
movl -0xa0(%rbp), %esi
leaq -0x70(%rbp), %rdx
movq 0x10(%rbp), %rcx
movq 0x18(%rbp), %r8
movq 0x20(%rbp), %r9
movq 0x28(%rbp), %r13
movq 0x70(%rbp), %r12
movq 0x78(%rbp), %r15
movq 0xd0(%rbp), %r14
movq 0xd8(%rbp), %rbx
leaq -0x90(%rbp), %r11
leaq -0xe7b0(%rbp), %r10
leaq -0xe7f0(%rbp), %rax
movq %r13, (%rsp)
movq %r12, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movq %r14, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movq %r11, 0x28(%rsp)
movq %r10, 0x30(%rsp)
movq %rax, 0x38(%rsp)
callq 0xbcc0
movl $0x0, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jge 0xe2ab
movslq -0xb4(%rbp), %rax
movl $0x0, -0xe680(%rbp,%rax,4)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0xe27a
movl $0x0, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
cmpl -0xac(%rbp), %eax
jge 0xe2e6
movslq -0xb8(%rbp), %rax
movl $0x0, -0xe770(%rbp,%rax,4)
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0xe2b5
movl -0xa4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xa0(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0x7140(%rbp,%rax,8), %xmm1
movaps 0x8edf(%rip), %xmm0     # 0x171f0
pand %xmm0, %xmm1
movsd 0x8e1b(%rip), %xmm0     # 0x17138
ucomisd %xmm1, %xmm0
jbe 0xe5d6
movl -0xa4(%rbp), %edi
movl -0xa0(%rbp), %esi
leaq -0xe680(%rbp), %rdx
leaq -0xe770(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x48(%rbp), %r9
movq -0x50(%rbp), %rax
movq %rax, -0xea38(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0xea30(%rbp)
movq 0x10(%rbp), %rax
movq %rax, -0xea28(%rbp)
movq 0x18(%rbp), %rax
movq %rax, -0xea20(%rbp)
movq 0x20(%rbp), %rax
movq %rax, -0xea18(%rbp)
movq 0x28(%rbp), %rax
movq %rax, -0xea10(%rbp)
movq 0x38(%rbp), %rax
movq %rax, -0xea08(%rbp)
movq 0x40(%rbp), %rax
movq %rax, -0xea00(%rbp)
movq 0x50(%rbp), %rax
movq %rax, -0xe9f8(%rbp)
movq 0x58(%rbp), %rax
movq %rax, -0xe9f0(%rbp)
movq 0x60(%rbp), %rax
movq %rax, -0xe9e8(%rbp)
movq 0x68(%rbp), %rax
movq %rax, -0xe9e0(%rbp)
movq 0x70(%rbp), %rax
movq %rax, -0xe9d8(%rbp)
movq 0x78(%rbp), %rax
movq %rax, -0xe9d0(%rbp)
movq 0xd0(%rbp), %r13
movq 0xd8(%rbp), %r12
leaq -0x90(%rbp), %r15
leaq -0xb0(%rbp), %r14
leaq -0x7140(%rbp), %rbx
leaq -0xe1c0(%rbp), %r11
leaq -0xe7b0(%rbp), %r10
leaq -0xe7f0(%rbp), %rax
movq %rax, -0xe9c8(%rbp)
movq -0xea38(%rbp), %rax
movq %rax, (%rsp)
movq -0xea30(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0xea28(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0xea20(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0xea18(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0xea10(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0xea08(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0xea00(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0xe9f8(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0xe9f0(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0xe9e8(%rbp), %rax
movq %rax, 0x50(%rsp)
movq -0xe9e0(%rbp), %rax
movq %rax, 0x58(%rsp)
movq -0xe9d8(%rbp), %rax
movq %rax, 0x60(%rsp)
movq -0xe9d0(%rbp), %rax
movq %rax, 0x68(%rsp)
movq -0xe9c8(%rbp), %rax
movq %r13, 0x70(%rsp)
movq %r12, 0x78(%rsp)
movq %r15, 0x80(%rsp)
movq %r14, 0x88(%rsp)
movq %rbx, 0x90(%rsp)
movq %r11, 0x98(%rsp)
movq %r10, 0xa0(%rsp)
movq %rax, 0xa8(%rsp)
callq 0xc710
leaq -0xe680(%rbp), %rdi
leaq -0xe770(%rbp), %rsi
movl -0xa4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xa0(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0x7140(%rbp,%rax,8), %xmm0
addsd -0x68(%rbp), %xmm0
addsd -0x90(%rbp), %xmm0
movl -0xa4(%rbp), %eax
subl $0x1, %eax
imull -0xa8(%rbp), %eax
addl -0xa0(%rbp), %eax
subl $0x1, %eax
cltq
movsd -0xe1c0(%rbp,%rax,8), %xmm1
addsd -0x70(%rbp), %xmm1
addsd -0x88(%rbp), %xmm1
leaq -0x90(%rbp), %rdx
leaq -0xb0(%rbp), %rcx
callq 0xcd20
movsd %xmm0, -0xe588(%rbp)
movsd -0xe588(%rbp), %xmm0
movsd 0x8c16(%rip), %xmm1     # 0x171c0
mulsd %xmm1, %xmm0
movsd 0x8c12(%rip), %xmm1     # 0x171c8
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
movsd 0x8bf6(%rip), %xmm1     # 0x171c0
divsd %xmm1, %xmm0
movsd %xmm0, -0xe588(%rbp)
jmp 0xe5d8
jmp 0xe5da
movsd -0xe588(%rbp), %xmm0
addq $0xeb18, %rsp           # imm = 0xEB18
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)