// File: /workspace/github_c_makefile_star2_O0/jiqingxiaoxi[P]RPA/RPA.c
// Function: calc_bulge_internal
void calc_bulge_internal(int i,int j,int ii,int jj,double* EntropyEnthalpy,int traceback,double stackEntropies[],double stackEnthalpies[],double stackint2Entropies[],double stackint2Enthalpies[],double interiorLoopEntropies[],double bulgeLoopEntropies[],double interiorLoopEnthalpies[],double bulgeLoopEnthalpies[],double tstackEntropies[],double tstackEnthalpies[],double atpS[],double atpH[],double Initdouble[],int Initint[],double enthalpyDPT[],double entropyDPT[],char numSeq1[],char numSeq2[])
{
	int loopSize1,loopSize2,loopSize,N,N_loop;
	double T1,T2,S,H;

	S=-3224.0;
	H=0;
	loopSize1=ii-i-1;
	loopSize2=jj-j-1;
	if(ii<jj)
	{
		N=i;
		N_loop=N;
		if(loopSize1>2)
			N_loop-=(loopSize1-2);
		if(loopSize2>2)
			N_loop-=(loopSize2-2);
	}
	else
	{
		N=j;
		N_loop=2*jj;
		if(loopSize1>2)
			N_loop-=(loopSize1-2);
		if(loopSize2>2)
			N_loop-=(loopSize2-2);
		N_loop=(N_loop/2)-1;
	}

	loopSize=loopSize1+loopSize2-1;
	if((loopSize1==0&&loopSize2>0)||(loopSize2==0&&loopSize1>0))// only bulges have to be considered
	{
		if(loopSize2==1||loopSize1==1) // bulge loop of size one is treated differently the intervening nn-pair must be added
		{
			if((loopSize2==1&&loopSize1==0)||(loopSize2==0&&loopSize1==1))
			{
				H=bulgeLoopEnthalpies[loopSize]+stackEnthalpies[numSeq1[i]*125+numSeq1[ii]*25+numSeq2[j]*5+numSeq2[jj]];
				S=bulgeLoopEntropies[loopSize]+stackEntropies[numSeq1[i]*125+numSeq1[ii]*25+numSeq2[j]*5+numSeq2[jj]];
			}
			H+=enthalpyDPT[(i-1)*Initint[2]+j-1];
			S+=entropyDPT[(i-1)*Initint[2]+j-1];
			if(fabs(H)>999999999)
			{
				H=1.0*INFINITY;
				S=-1.0;
			}

			T1=(H+Initdouble[0])/((S+Initdouble[1])+Initdouble[2]);
			T2=(enthalpyDPT[(ii-1)*Initint[2]+jj-1]+Initdouble[0])/((entropyDPT[(ii-1)*Initint[2]+jj-1])+Initdouble[1]+Initdouble[2]);
			if((T1>T2)||((traceback&&T1>=T2)||(traceback==1)))
			{
				EntropyEnthalpy[0]=S;
				EntropyEnthalpy[1]=H;
			}
		}
		else // we have _not_ implemented Jacobson-Stockaymayer equation; the maximum bulgeloop size is 30
		{
			H=bulgeLoopEnthalpies[loopSize]+atpH[numSeq1[i]*5+numSeq2[j]]+atpH[numSeq1[ii]*5+numSeq2[jj]];
			H+=enthalpyDPT[(i-1)*Initint[2]+j-1];

			S=bulgeLoopEntropies[loopSize]+atpS[numSeq1[i]*5+numSeq2[j]]+atpS[numSeq1[ii]*5+numSeq2[jj]];
			S+=entropyDPT[(i-1)*Initint[2]+j-1];
			if(fabs(H)>999999999)
			{
				H=1.0*INFINITY;
				S=-1.0;
			}
			T1=(H+Initdouble[0])/((S+Initdouble[1])+Initdouble[2]);
			T2=(enthalpyDPT[(ii-1)*Initint[2]+jj-1]+Initdouble[0])/(entropyDPT[(ii-1)*Initint[2]+jj-1]+Initdouble[1]+Initdouble[2]);
			if((T1>T2)||((traceback&&T1>=T2)||(traceback==1)))
			{
				EntropyEnthalpy[0]=S;
				EntropyEnthalpy[1]=H;
			}
		}
	}
	else if(loopSize1==1&&loopSize2==1)
	{
		S=stackint2Entropies[numSeq1[i]*125+numSeq1[i+1]*25+numSeq2[j]*5+numSeq2[j+1]]+stackint2Entropies[numSeq2[jj]*125+numSeq2[jj-1]*25+numSeq1[ii]*5+numSeq1[ii-1]];
		S+=entropyDPT[(i-1)*Initint[2]+j-1];

		H=stackint2Enthalpies[numSeq1[i]*125+numSeq1[i+1]*25+numSeq2[j]*5+numSeq2[j+1]]+stackint2Enthalpies[numSeq2[jj]*125+numSeq2[jj-1]*25+numSeq1[ii]*5+numSeq1[ii-1]];
		H+=enthalpyDPT[(i-1)*Initint[2]+j-1];
		if(fabs(H)>999999999)
		{
			H=1.0*INFINITY;
			S=-1.0;
		}
		T1=(H+Initdouble[0])/((S+Initdouble[1])+Initdouble[2]);
		T2=(enthalpyDPT[(ii-1)*Initint[2]+jj-1]+Initdouble[0])/(entropyDPT[(ii-1)*Initint[2]+jj-1]+Initdouble[1]+Initdouble[2]);
		if((T1-T2>=0.000001)||traceback==1)
		{
			if((T1>T2)||(traceback&&T1>=T2))
			{
				EntropyEnthalpy[0]=S;
				EntropyEnthalpy[1]=H;
			}
		}
		return;
	}
	else // only internal loops
	{
		H=interiorLoopEnthalpies[loopSize]+tstackEnthalpies[numSeq1[i]*125+numSeq1[i+1]*25+numSeq2[j]*5+numSeq2[j+1]]+tstackEnthalpies[numSeq2[jj]*125+numSeq2[jj-1]*25+numSeq1[ii]*5+numSeq1[ii-1]];
		H+=enthalpyDPT[(i-1)*Initint[2]+j-1];

		S=interiorLoopEntropies[loopSize]+tstackEntropies[numSeq1[i]*125+numSeq1[i+1]*25+numSeq2[j]*5+numSeq2[j+1]]+tstackEntropies[numSeq2[jj]*125+numSeq2[jj-1]*25+numSeq1[ii]*5+numSeq1[ii-1]]+(-300/310.15*abs(loopSize1-loopSize2));
		S+=entropyDPT[(i-1)*Initint[2]+j-1];
		if(fabs(H)>999999999)
		{
			H=1.0*INFINITY;
			S=-1.0;
		}
		T1=(H+Initdouble[0])/((S+Initdouble[1])+Initdouble[2]);
		T2=(enthalpyDPT[(ii-1)*Initint[2]+jj-1]+Initdouble[0])/((entropyDPT[(ii-1)*Initint[2]+jj-1])+Initdouble[1]+Initdouble[2]);
		if((T1>T2)||((traceback&&T1>=T2)||(traceback==1)))
		{
			EntropyEnthalpy[0]=S;
			EntropyEnthalpy[1]=H;
		}
	}
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
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
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movl %ecx, -0x10(%rbp)
movq %r8, -0x18(%rbp)
movl %r9d, -0x1c(%rbp)
movsd 0xc64c(%rip), %xmm0     # 0x17150
movsd %xmm0, -0x48(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x50(%rbp)
movl -0xc(%rbp), %eax
subl -0x4(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x20(%rbp)
movl -0x10(%rbp), %eax
subl -0x8(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0xab67
movl -0x4(%rbp), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x30(%rbp)
cmpl $0x2, -0x20(%rbp)
jle 0xab51
movl -0x20(%rbp), %ecx
subl $0x2, %ecx
movl -0x30(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
cmpl $0x2, -0x24(%rbp)
jle 0xab65
movl -0x24(%rbp), %ecx
subl $0x2, %ecx
movl -0x30(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
jmp 0xabae
movl -0x8(%rbp), %eax
movl %eax, -0x2c(%rbp)
movl -0x10(%rbp), %eax
shll %eax
movl %eax, -0x30(%rbp)
cmpl $0x2, -0x20(%rbp)
jle 0xab89
movl -0x20(%rbp), %ecx
subl $0x2, %ecx
movl -0x30(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
cmpl $0x2, -0x24(%rbp)
jle 0xab9d
movl -0x24(%rbp), %ecx
subl $0x2, %ecx
movl -0x30(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
subl $0x1, %eax
movl %eax, -0x30(%rbp)
movl -0x20(%rbp), %eax
addl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x20(%rbp)
jne 0xabc6
cmpl $0x0, -0x24(%rbp)
jg 0xabda
cmpl $0x0, -0x24(%rbp)
jne 0xb096
cmpl $0x0, -0x20(%rbp)
jle 0xb096
cmpl $0x1, -0x24(%rbp)
je 0xabea
cmpl $0x1, -0x20(%rbp)
jne 0xae48
cmpl $0x1, -0x24(%rbp)
jne 0xabf6
cmpl $0x0, -0x20(%rbp)
je 0xac0a
cmpl $0x0, -0x24(%rbp)
jne 0xacdc
cmpl $0x1, -0x20(%rbp)
jne 0xacdc
movq 0x48(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x18(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x90(%rbp), %rdx
movslq -0xc(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x10(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x50(%rbp)
movq 0x38(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x10(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x90(%rbp), %rdx
movslq -0xc(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x10(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x48(%rbp)
movq 0x80(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movq 0x88(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x50(%rbp), %xmm0
movaps 0xc4ae(%rip), %xmm1     # 0x171f0
pand %xmm1, %xmm0
movsd 0xc3ea(%rip), %xmm1     # 0x17138
ucomisd %xmm1, %xmm0
jbe 0xad6e
movsd 0xc3d4(%rip), %xmm0     # 0x17130
movsd %xmm0, -0x50(%rbp)
movsd 0xc3d7(%rip), %xmm0     # 0x17140
movsd %xmm0, -0x48(%rbp)
movsd -0x50(%rbp), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movsd -0x48(%rbp), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movq 0x80(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movq 0x88(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
ja 0xae28
cmpl $0x0, -0x1c(%rbp)
je 0xae22
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
jae 0xae28
cmpl $0x1, -0x1c(%rbp)
jne 0xae43
movsd -0x48(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0xb091
movq 0x48(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x68(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x5, %ecx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movq 0x68(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0xc(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x5, %ecx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x10(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x50(%rbp)
movq 0x80(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movq 0x38(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x60(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x5, %ecx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movq 0x60(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0xc(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x5, %ecx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x10(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x48(%rbp)
movq 0x88(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x50(%rbp), %xmm0
movaps 0xc262(%rip), %xmm1     # 0x171f0
pand %xmm1, %xmm0
movsd 0xc19e(%rip), %xmm1     # 0x17138
ucomisd %xmm1, %xmm0
jbe 0xafba
movsd 0xc188(%rip), %xmm0     # 0x17130
movsd %xmm0, -0x50(%rbp)
movsd 0xc18b(%rip), %xmm0     # 0x17140
movsd %xmm0, -0x48(%rbp)
movsd -0x50(%rbp), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movsd -0x48(%rbp), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movq 0x80(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movq 0x88(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
ja 0xb074
cmpl $0x0, -0x1c(%rbp)
je 0xb06e
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
jae 0xb074
cmpl $0x1, -0x1c(%rbp)
jne 0xb08f
movsd -0x48(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0xb091
jmp 0xb6f2
cmpl $0x1, -0x20(%rbp)
jne 0xb3be
cmpl $0x1, -0x24(%rbp)
jne 0xb3be
movq 0x20(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x90(%rbp), %rdx
movl -0x4(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movl -0x8(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x20(%rbp), %rax
movq 0x98(%rbp), %rcx
movslq -0x10(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x98(%rbp), %rdx
movl -0x10(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movslq -0xc(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movl -0xc(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x48(%rbp)
movq 0x88(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movq 0x28(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x90(%rbp), %rdx
movl -0x4(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movl -0x8(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x28(%rbp), %rax
movq 0x98(%rbp), %rcx
movslq -0x10(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x98(%rbp), %rdx
movl -0x10(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movslq -0xc(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movl -0xc(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x50(%rbp)
movq 0x80(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
movaps 0xbf52(%rip), %xmm1     # 0x171f0
pand %xmm1, %xmm0
movsd 0xbe8e(%rip), %xmm1     # 0x17138
ucomisd %xmm1, %xmm0
jbe 0xb2ca
movsd 0xbe78(%rip), %xmm0     # 0x17130
movsd %xmm0, -0x50(%rbp)
movsd 0xbe7b(%rip), %xmm0     # 0x17140
movsd %xmm0, -0x48(%rbp)
movsd -0x50(%rbp), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movsd -0x48(%rbp), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movq 0x80(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movq 0x88(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x38(%rbp), %xmm0
subsd -0x40(%rbp), %xmm0
movsd 0xbdf6(%rip), %xmm1     # 0x17168
ucomisd %xmm1, %xmm0
jae 0xb37e
cmpl $0x1, -0x1c(%rbp)
jne 0xb3b9
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
ja 0xb39c
cmpl $0x0, -0x1c(%rbp)
je 0xb3b7
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
jb 0xb3b7
movsd -0x48(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0xb3b9
jmp 0xb6f4
movq 0x40(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x58(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x90(%rbp), %rdx
movl -0x4(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movl -0x8(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movq 0x58(%rbp), %rax
movq 0x98(%rbp), %rcx
movslq -0x10(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x98(%rbp), %rdx
movl -0x10(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movslq -0xc(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movl -0xc(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x50(%rbp)
movq 0x80(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movq 0x30(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x50(%rbp), %rax
movq 0x90(%rbp), %rcx
movslq -0x4(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x90(%rbp), %rdx
movl -0x4(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movslq -0x8(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x98(%rbp), %rdx
movl -0x8(%rbp), %esi
addl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm1
movq 0x50(%rbp), %rax
movq 0x98(%rbp), %rcx
movslq -0x10(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
imull $0x7d, %ecx, %ecx
movq 0x98(%rbp), %rdx
movl -0x10(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
imull $0x19, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movslq -0xc(%rbp), %rsi
movsbl (%rdx,%rsi), %edx
imull $0x5, %edx, %edx
addl %edx, %ecx
movq 0x90(%rbp), %rdx
movl -0xc(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movsbl (%rdx,%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm1
movl -0x20(%rbp), %eax
subl -0x24(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xbbb9(%rip), %xmm2     # 0x17160
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movq 0x88(%rbp), %rax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x8(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x50(%rbp), %xmm0
movaps 0xbc03(%rip), %xmm1     # 0x171f0
pand %xmm1, %xmm0
movsd 0xbb3f(%rip), %xmm1     # 0x17138
ucomisd %xmm1, %xmm0
jbe 0xb619
movsd 0xbb29(%rip), %xmm0     # 0x17130
movsd %xmm0, -0x50(%rbp)
movsd 0xbb2c(%rip), %xmm0     # 0x17140
movsd %xmm0, -0x48(%rbp)
movsd -0x50(%rbp), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movsd -0x48(%rbp), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movq 0x80(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x70(%rbp), %rax
addsd (%rax), %xmm0
movq 0x88(%rbp), %rax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
movq 0x78(%rbp), %rdx
imull 0x8(%rdx), %ecx
addl -0x10(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x70(%rbp), %rax
addsd 0x8(%rax), %xmm1
movq 0x70(%rbp), %rax
addsd 0x10(%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
ja 0xb6d3
cmpl $0x0, -0x1c(%rbp)
je 0xb6cd
movsd -0x38(%rbp), %xmm0
ucomisd -0x40(%rbp), %xmm0
jae 0xb6d3
cmpl $0x1, -0x1c(%rbp)
jne 0xb6ee
movsd -0x48(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0xb6f0
jmp 0xb6f2
jmp 0xb6f4
popq %rbp
retq
nopw %cs:(%rax,%rax)