// File: qmmlib[P]QmmLibrary/linear.cpp
// Function: solve_l1r_lr(problem const*, double*, double, double, double, parameter const*, model const*, long)
static void solve_l1r_lr(
	const problem *prob_col, double *w, double eps, 
	double Cp, double Cn, const parameter *param, const struct model* model_, clock_t cpu_begin)
{
	int l = prob_col->l;
	int w_size = prob_col->n;
	int j, s, newton_iter=0, iter=0;
	int max_newton_iter = 100;
	int max_iter = 1000;
	int max_num_linesearch = 20;
	int active_size;
	int QP_active_size;

	double nu = 1e-12;
	double inner_eps = 1;
	double sigma = 0.01;
	double w_norm, w_norm_new;
	double z, G, H;
	double Gnorm1_init;
	double Gmax_old = INF;
	double Gmax_new, Gnorm1_new;
	double QP_Gmax_old = INF;
	double QP_Gmax_new, QP_Gnorm1_new;
	double delta, negsum_xTd, cond;

	int *index = new int[w_size];
	schar *y = new schar[l];
	double *Hdiag = new double[w_size];
	double *Grad = new double[w_size];
	double *wpd = new double[w_size];
	double *xjneg_sum = new double[w_size];
	double *xTd = new double[l];
	double *exp_wTx = new double[l];
	double *exp_wTx_new = new double[l];
	double *tau = new double[l];
	double *D = new double[l];
	feature_node *x;

	clock_t cpu_now;
	double cpu_time_elapsed;

	double C[3] = {Cn,0,Cp};

	// Initial w can be set here.
	for(j=0; j<w_size; j++)
		w[j] = 0;

	for(j=0; j<l; j++)
	{
		if(prob_col->y[j] > 0)
			y[j] = 1;
		else
			y[j] = -1;

		exp_wTx[j] = 0;
	}

	w_norm = 0;
	for(j=0; j<w_size; j++)
	{
		w_norm += fabs(w[j]);
		wpd[j] = w[j];
		index[j] = j;
		xjneg_sum[j] = 0;
		x = prob_col->x[j];
		while(x->index != -1)
		{
			int ind = x->index-1;
			double val = x->value;
			exp_wTx[ind] += w[j]*val;
			if(y[ind] == -1)
				xjneg_sum[j] += C[GETI(ind)]*val;
			x++;
		}
	}
	for(j=0; j<l; j++)
	{
		exp_wTx[j] = exp(exp_wTx[j]);
		double tau_tmp = 1/(1+exp_wTx[j]);
		tau[j] = C[GETI(j)]*tau_tmp;
		D[j] = C[GETI(j)]*exp_wTx[j]*tau_tmp*tau_tmp;
	}
	
	if(param->save_each_iter!=0) {char filenametosave[1024]; sprintf(filenametosave,"%s%d.model",param->save_each_iter,0); save_model(filenametosave,model_);}
	if (param->chat_level > 0)
	{
		cpu_now = clock();
		cpu_time_elapsed = ((double) (cpu_now - cpu_begin)) / ((double) CLOCKS_PER_SEC);																					
		int _iter = iter;
		iter = newton_iter;
		double objective_value = 0;
		for(j=0; j<w_size; j++)
			if(w[j] != 0)
				objective_value += fabs(w[j]);
		for(j=0; j<l; j++)
			if(y[j] == 1)
				objective_value += C[GETI(j)]*log(1+1/exp_wTx[j]);
			else
				objective_value += C[GETI(j)]*log(1+exp_wTx[j]);
		__QMMCHAT__
		iter = _iter;
		cpu_begin += (clock() - cpu_now);
	}

	while(newton_iter < max_newton_iter)
	{
		Gmax_new = 0;
		Gnorm1_new = 0;
		active_size = w_size;

		for(s=0; s<active_size; s++)
		{
			j = index[s];
			Hdiag[j] = nu;
			Grad[j] = 0;

			double tmp = 0;
			x = prob_col->x[j];
			while(x->index != -1)
			{
				int ind = x->index-1;
				Hdiag[j] += x->value*x->value*D[ind];
				tmp += x->value*tau[ind];
				x++;
			}
			Grad[j] = -tmp + xjneg_sum[j];

			double Gp = Grad[j]+1;
			double Gn = Grad[j]-1;
			double violation = 0;
			if(w[j] == 0)
			{
				if(Gp < 0)
					violation = -Gp;
				else if(Gn > 0)
					violation = Gn;
				//outer-level shrinking
				else if(Gp>Gmax_old/l && Gn<-Gmax_old/l)
				{
					active_size--;
					swap(index[s], index[active_size]);
					s--;
					continue;
				}
			}
			else if(w[j] > 0)
				violation = fabs(Gp);
			else
				violation = fabs(Gn);

			Gmax_new = max(Gmax_new, violation);
			Gnorm1_new += violation;
		}

		if(newton_iter == 0)
			Gnorm1_init = Gnorm1_new;

		if(newton_iter > 0 && param->save_each_iter!=0) {char filenametosave[1024]; sprintf(filenametosave,"%s%d.model",param->save_each_iter,newton_iter); save_model(filenametosave,model_);}
		if(newton_iter > 0 && param->chat_level > 0)
		{
			cpu_now = clock();
			cpu_time_elapsed = ((double) (cpu_now - cpu_begin)) / ((double) CLOCKS_PER_SEC);																					
			int _iter = iter;
			iter = newton_iter;
			double objective_value = 0;
			for(j=0; j<w_size; j++)
				if(w[j] != 0)
					objective_value += fabs(w[j]);
			for(j=0; j<l; j++)
				if(y[j] == 1)
					objective_value += C[GETI(j)]*log(1+1/exp_wTx[j]);
				else
					objective_value += C[GETI(j)]*log(1+exp_wTx[j]);
			__QMMCHAT__
			iter = _iter;
			cpu_begin += (clock() - cpu_now);
		}

		if(Gnorm1_new <= eps*Gnorm1_init)
			break;

		iter = 0;
		QP_Gmax_old = INF;
		QP_active_size = active_size;

		for(int i=0; i<l; i++)
			xTd[i] = 0;

		// optimize QP over wpd
		while(iter < max_iter)
		{
			QP_Gmax_new = 0;
			QP_Gnorm1_new = 0;

			for(j=0; j<QP_active_size; j++)
			{
				int i = j+rand()%(QP_active_size-j);
				swap(index[i], index[j]);
			}

			for(s=0; s<QP_active_size; s++)
			{
				j = index[s];
				H = Hdiag[j];

				x = prob_col->x[j];
				G = Grad[j] + (wpd[j]-w[j])*nu;
				while(x->index != -1)
				{
					int ind = x->index-1;
					G += x->value*D[ind]*xTd[ind];
					x++;
				}

				double Gp = G+1;
				double Gn = G-1;
				double violation = 0;
				if(wpd[j] == 0)
				{
					if(Gp < 0)
						violation = -Gp;
					else if(Gn > 0)
						violation = Gn;
					//inner-level shrinking
					else if(Gp>QP_Gmax_old/l && Gn<-QP_Gmax_old/l)
					{
						QP_active_size--;
						swap(index[s], index[QP_active_size]);
						s--;
						continue;
					}
				}
				else if(wpd[j] > 0)
					violation = fabs(Gp);
				else
					violation = fabs(Gn);

				QP_Gmax_new = max(QP_Gmax_new, violation);
				QP_Gnorm1_new += violation;

				// obtain solution of one-variable problem
				if(Gp < H*wpd[j])
					z = -Gp/H;
				else if(Gn > H*wpd[j])
					z = -Gn/H;
				else
					z = -wpd[j];

				if(fabs(z) < 1.0e-12)
					continue;
				z = min(max(z,-10.0),10.0);

				wpd[j] += z;

				x = prob_col->x[j];
				while(x->index != -1)
				{
					int ind = x->index-1;
					xTd[ind] += x->value*z;
					x++;
				}
			}

			iter++;

			if(QP_Gnorm1_new <= inner_eps*Gnorm1_init)
			{
				//inner stopping
				if(QP_active_size == active_size)
					break;
				//active set reactivation
				else
				{
					QP_active_size = active_size;
					QP_Gmax_old = INF;
					continue;
				}
			}

			QP_Gmax_old = QP_Gmax_new;
		}

		if(iter >= max_iter)
			info("WARNING: reaching max number of inner iterations\n");

		delta = 0;
		w_norm_new = 0;
		for(j=0; j<w_size; j++)
		{
			delta += Grad[j]*(wpd[j]-w[j]);
			if(wpd[j] != 0)
				w_norm_new += fabs(wpd[j]);
		}
		delta += (w_norm_new-w_norm);

		negsum_xTd = 0;
		for(int i=0; i<l; i++)
			if(y[i] == -1)
				negsum_xTd += C[GETI(i)]*xTd[i];

		int num_linesearch;
		for(num_linesearch=0; num_linesearch < max_num_linesearch; num_linesearch++)
		{
			cond = w_norm_new - w_norm + negsum_xTd - sigma*delta;

			for(int i=0; i<l; i++)
			{
				double exp_xTd = exp(xTd[i]);
				exp_wTx_new[i] = exp_wTx[i]*exp_xTd;
				cond += C[GETI(i)]*log((1+exp_wTx_new[i])/(exp_xTd+exp_wTx_new[i]));
			}

			if(cond <= 0)
			{
				w_norm = w_norm_new;
				for(j=0; j<w_size; j++)
					w[j] = wpd[j];
				for(int i=0; i<l; i++)
				{
					exp_wTx[i] = exp_wTx_new[i];
					double tau_tmp = 1/(1+exp_wTx[i]);
					tau[i] = C[GETI(i)]*tau_tmp;
					D[i] = C[GETI(i)]*exp_wTx[i]*tau_tmp*tau_tmp;
				}
				break;
			}
			else
			{
				w_norm_new = 0;
				for(j=0; j<w_size; j++)
				{
					wpd[j] = (w[j]+wpd[j])*0.5;
					if(wpd[j] != 0)
						w_norm_new += fabs(wpd[j]);
				}
				delta *= 0.5;
				negsum_xTd *= 0.5;
				for(int i=0; i<l; i++)
					xTd[i] *= 0.5;
			}
		}

		// Recompute some info due to too many line search steps
		if(num_linesearch >= max_num_linesearch)
		{
			for(int i=0; i<l; i++)
				exp_wTx[i] = 0;

			for(int i=0; i<w_size; i++)
			{
				if(w[i]==0) continue;
				x = prob_col->x[i];
				while(x->index != -1)
				{
					exp_wTx[x->index-1] += w[i]*x->value;
					x++;
				}
			}

			for(int i=0; i<l; i++)
				exp_wTx[i] = exp(exp_wTx[i]);
		}

		if(iter == 1)
			inner_eps *= 0.25;

		newton_iter++;
		Gmax_old = Gmax_new;

		info("iter %3d  #CD cycles %d\n", newton_iter, iter);
	}

	info("=========================\n");
	info("optimization finished, #iter = %d\n", newton_iter);
	if(newton_iter >= max_newton_iter)
		info("WARNING: reaching max number of iterations\n");

	// calculate objective value
	
	double v = 0;
	int nnz = 0;
	for(j=0; j<w_size; j++)
		if(w[j] != 0)
		{
			v += fabs(w[j]);
			nnz++;
		}
	for(j=0; j<l; j++)
		if(y[j] == 1)
			v += C[GETI(j)]*log(1+1/exp_wTx[j]);
		else
			v += C[GETI(j)]*log(1+exp_wTx[j]);

	info("Objective value = %lf\n", v);
	info("#nonzeros/#features = %d/%d\n", nnz, w_size);

	delete [] index;
	delete [] y;
	delete [] Hdiag;
	delete [] Grad;
	delete [] wpd;
	delete [] xjneg_sum;
	delete [] xTd;
	delete [] exp_wTx;
	delete [] exp_wTx_new;
	delete [] tau;
	delete [] D;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb10, %rsp            # imm = 0xB10
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movsd %xmm0, -0x18(%rbp)
movsd %xmm1, -0x20(%rbp)
movsd %xmm2, -0x28(%rbp)
movq %rdx, -0x30(%rbp)
movq %rcx, -0x38(%rbp)
movq %r8, -0x40(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x48(%rbp)
movl $0x0, -0x54(%rbp)
movl $0x0, -0x58(%rbp)
movl $0x64, -0x5c(%rbp)
movl $0x3e8, -0x60(%rbp)     # imm = 0x3E8
movl $0x14, -0x64(%rbp)
movsd 0x139b4(%rip), %xmm0    # 0x25110
movsd %xmm0, -0x78(%rbp)
movsd 0x128bf(%rip), %xmm0    # 0x24028
movsd %xmm0, -0x80(%rbp)
movsd 0x1289a(%rip), %xmm0    # 0x24010
movsd %xmm0, -0x88(%rbp)
movsd 0x128ba(%rip), %xmm0    # 0x24040
movsd %xmm0, -0xc0(%rbp)
movsd 0x128aa(%rip), %xmm0    # 0x24040
movsd %xmm0, -0xd8(%rbp)
movslq -0x48(%rbp), %rax
movl $0x4, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x108(%rbp)
movslq -0x44(%rbp), %rdi
callq 0x3030
movq %rax, -0x110(%rbp)
movslq -0x48(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x118(%rbp)
movslq -0x48(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x120(%rbp)
movslq -0x48(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x128(%rbp)
movslq -0x48(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x130(%rbp)
movslq -0x44(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x138(%rbp)
movslq -0x44(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x140(%rbp)
movslq -0x44(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x148(%rbp)
movslq -0x44(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x150(%rbp)
movslq -0x44(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x158(%rbp)
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x190(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x180(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x119b5
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x11992
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x11a1c
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x119ef
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movb $0x1, (%rax,%rcx)
jmp 0x119fe
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x119bc
xorps %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x11ba8
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x136d2(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
addsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x4c(%rbp), %edx
movq -0x108(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x130(%rbp), %rax
movslq -0x4c(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
cmpl $-0x1, (%rax)
je 0x11b98
movq -0x160(%rbp), %rax
movl (%rax), %eax
subl $0x1, %eax
movl %eax, -0x194(%rbp)
movq -0x160(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x1a0(%rbp)
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd -0x1a0(%rbp), %xmm2
movq -0x140(%rbp), %rax
movslq -0x194(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x110(%rbp), %rax
movslq -0x194(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $-0x1, %eax
jne 0x11b81
movq -0x110(%rbp), %rax
movslq -0x194(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd -0x1a0(%rbp), %xmm2
movq -0x130(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x160(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x160(%rbp)
jmp 0x11aba
jmp 0x11b9a
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x11a2e
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x11c9c
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x34d0
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x12435(%rip), %xmm1    # 0x24028
addsd (%rax,%rcx,8), %xmm1
movsd 0x12428(%rip), %xmm0    # 0x24028
divsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
mulsd -0x1a8(%rbp), %xmm0
movq -0x150(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm0
mulsd -0x1a8(%rbp), %xmm0
mulsd -0x1a8(%rbp), %xmm0
movq -0x158(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x11baf
movq -0x30(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x11cd6
leaq -0x5b0(%rbp), %rdi
movq -0x30(%rbp), %rax
movq 0x48(%rax), %rdx
leaq 0x13473(%rip), %rsi     # 0x25130
xorl %ecx, %ecx
movb $0x0, %al
callq 0x30a0
leaq -0x5b0(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xe810
movq -0x30(%rbp), %rax
cmpl $0x0, 0x40(%rax)
jle 0x11f98
callq 0x3180
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rax
subq -0x40(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd 0x12300(%rip), %xmm1    # 0x24008
divsd %xmm1, %xmm0
movsd %xmm0, -0x170(%rbp)
movl -0x58(%rbp), %eax
movl %eax, -0x5b4(%rbp)
movl -0x54(%rbp), %eax
movl %eax, -0x58(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x5c0(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x11d8c
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x11d57
jp 0x11d57
jmp 0x11d7f
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x133b5(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
addsd -0x5c0(%rbp), %xmm0
movsd %xmm0, -0x5c0(%rbp)
jmp 0x11d81
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x11d35
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x11e9b
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x11e26
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xa78(%rbp)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x1223d(%rip), %xmm1    # 0x24028
divsd (%rax,%rcx,8), %xmm1
movsd 0x12230(%rip), %xmm0    # 0x24028
addsd %xmm1, %xmm0
callq 0x3220
movaps %xmm0, %xmm2
movsd -0xa78(%rbp), %xmm0
movsd -0x5c0(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x5c0(%rbp)
jmp 0x11e8b
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xa80(%rbp)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x121ca(%rip), %xmm0    # 0x24028
addsd (%rax,%rcx,8), %xmm0
callq 0x3220
movaps %xmm0, %xmm2
movsd -0xa80(%rbp), %xmm0
movsd -0x5c0(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x5c0(%rbp)
jmp 0x11e8d
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x11d93
movq -0x30(%rbp), %rax
cmpl $0x0, 0x40(%rax)
jle 0x11f7b
movl -0x58(%rbp), %esi
movsd -0x170(%rbp), %xmm0
leaq 0x13280(%rip), %rdi     # 0x2513b
movb $0x1, %al
callq 0x9490
movq -0x30(%rbp), %rax
cmpl $0x1, 0x40(%rax)
jle 0x11f6d
movq -0x30(%rbp), %rax
cmpl $0x2, 0x40(%rax)
jle 0x11f6b
movsd -0x5c0(%rbp), %xmm0
leaq 0x13266(%rip), %rdi     # 0x25153
movb $0x1, %al
callq 0x9490
movq -0x30(%rbp), %rax
cmpl $0x3, 0x40(%rax)
jle 0x11f69
movq -0x30(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x11f2b
movq 0x190c8(%rip), %rax     # 0x2afd8
movq (%rax), %rdi
leaq 0x1324e(%rip), %rsi     # 0x25168
movb $0x0, %al
callq 0x3400
movl $0x1, %edi
callq 0x3380
movq -0x30(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0x20fa0
leaq 0x1325f(%rip), %rdi     # 0x251a2
movb $0x1, %al
callq 0x9490
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0x20fa0
leaq 0x13250(%rip), %rdi     # 0x251b2
movb $0x1, %al
callq 0x9490
jmp 0x11f6b
jmp 0x11f6d
leaq 0x130b9(%rip), %rdi     # 0x2502d
movb $0x0, %al
callq 0x9490
movl -0x5b4(%rbp), %eax
movl %eax, -0x58(%rbp)
callq 0x3180
subq -0x168(%rbp), %rax
addq -0x40(%rbp), %rax
movq %rax, -0x40(%rbp)
jmp 0x11f9a
movl -0x54(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x133dd
xorps %xmm0, %xmm0
movsd %xmm0, -0xc8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xd0(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x68(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x68(%rbp), %eax
jge 0x12323
movq -0x108(%rbp), %rax
movslq -0x50(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4c(%rbp)
movsd -0x78(%rbp), %xmm0
movq -0x118(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x120(%rbp), %rax
movslq -0x4c(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
xorps %xmm0, %xmm0
movsd %xmm0, -0x5c8(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
cmpl $-0x1, (%rax)
je 0x120e8
movq -0x160(%rbp), %rax
movl (%rax), %eax
subl $0x1, %eax
movl %eax, -0x5cc(%rbp)
movq -0x160(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x160(%rbp), %rax
mulsd 0x8(%rax), %xmm0
movq -0x158(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movq -0x118(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x160(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x150(%rbp), %rax
movslq -0x5cc(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movsd -0x5c8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x5c8(%rbp)
movq -0x160(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x160(%rbp)
jmp 0x12030
movsd -0x5c8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x130(%rbp), %rax
movslq -0x4c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
movq -0x120(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x120(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x11eee(%rip), %xmm0    # 0x24028
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x5d8(%rbp)
movq -0x120(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x11ec9(%rip), %xmm1    # 0x24028
subsd %xmm1, %xmm0
movsd %xmm0, -0x5e0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x5e8(%rbp)
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x12290
jp 0x12290
xorps %xmm0, %xmm0
ucomisd -0x5d8(%rbp), %xmm0
jbe 0x121cf
movsd -0x5d8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x5e8(%rbp)
jmp 0x1228e
movsd -0x5e0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x121f5
movsd -0x5e0(%rbp), %xmm0
movsd %xmm0, -0x5e8(%rbp)
jmp 0x1228c
movsd -0x5d8(%rbp), %xmm0
movsd -0xc0(%rbp), %xmm1
cvtsi2sdl -0x44(%rbp), %xmm2
divsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1228a
movsd -0x5e0(%rbp), %xmm1
movsd -0xc0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsi2sdl -0x44(%rbp), %xmm2
divsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x1228a
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
movq -0x108(%rbp), %rdi
movslq -0x50(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x108(%rbp), %rsi
movslq -0x68(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x9420
movl -0x50(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x12315
jmp 0x1228c
jmp 0x1228e
jmp 0x122e0
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x122c3
movsd -0x5d8(%rbp), %xmm0
movaps 0x12e6b(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
movsd %xmm0, -0x5e8(%rbp)
jmp 0x122de
movsd -0x5e0(%rbp), %xmm0
movaps 0x12e4e(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
movsd %xmm0, -0x5e8(%rbp)
jmp 0x122e0
movsd -0xc8(%rbp), %xmm0
movsd -0x5e8(%rbp), %xmm1
callq 0x93e0
movsd %xmm0, -0xc8(%rbp)
movsd -0x5e8(%rbp), %xmm0
addsd -0xd0(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x11fc9
cmpl $0x0, -0x54(%rbp)
jne 0x12339
movsd -0xd0(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
cmpl $0x0, -0x54(%rbp)
jle 0x1237a
movq -0x30(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x1237a
leaq -0x9f0(%rbp), %rdi
movq -0x30(%rbp), %rax
movq 0x48(%rax), %rdx
movl -0x54(%rbp), %ecx
leaq 0x12dcd(%rip), %rsi     # 0x25130
movb $0x0, %al
callq 0x30a0
leaq -0x9f0(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xe810
cmpl $0x0, -0x54(%rbp)
jle 0x12646
movq -0x30(%rbp), %rax
cmpl $0x0, 0x40(%rax)
jle 0x12646
callq 0x3180
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rax
subq -0x40(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd 0x11c52(%rip), %xmm1    # 0x24008
divsd %xmm1, %xmm0
movsd %xmm0, -0x170(%rbp)
movl -0x58(%rbp), %eax
movl %eax, -0x9f4(%rbp)
movl -0x54(%rbp), %eax
movl %eax, -0x58(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xa00(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x1243a
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x12405
jp 0x12405
jmp 0x1242d
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x12d07(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
addsd -0xa00(%rbp), %xmm0
movsd %xmm0, -0xa00(%rbp)
jmp 0x1242f
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x123e3
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x12549
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x124d4
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xa88(%rbp)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x11b8f(%rip), %xmm1    # 0x24028
divsd (%rax,%rcx,8), %xmm1
movsd 0x11b82(%rip), %xmm0    # 0x24028
addsd %xmm1, %xmm0
callq 0x3220
movaps %xmm0, %xmm2
movsd -0xa88(%rbp), %xmm0
movsd -0xa00(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa00(%rbp)
jmp 0x12539
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xa90(%rbp)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x11b1c(%rip), %xmm0    # 0x24028
addsd (%rax,%rcx,8), %xmm0
callq 0x3220
movaps %xmm0, %xmm2
movsd -0xa90(%rbp), %xmm0
movsd -0xa00(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa00(%rbp)
jmp 0x1253b
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x12441
movq -0x30(%rbp), %rax
cmpl $0x0, 0x40(%rax)
jle 0x12629
movl -0x58(%rbp), %esi
movsd -0x170(%rbp), %xmm0
leaq 0x12bd2(%rip), %rdi     # 0x2513b
movb $0x1, %al
callq 0x9490
movq -0x30(%rbp), %rax
cmpl $0x1, 0x40(%rax)
jle 0x1261b
movq -0x30(%rbp), %rax
cmpl $0x2, 0x40(%rax)
jle 0x12619
movsd -0xa00(%rbp), %xmm0
leaq 0x12bb8(%rip), %rdi     # 0x25153
movb $0x1, %al
callq 0x9490
movq -0x30(%rbp), %rax
cmpl $0x3, 0x40(%rax)
jle 0x12617
movq -0x30(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x125d9
movq 0x18a1a(%rip), %rax     # 0x2afd8
movq (%rax), %rdi
leaq 0x12ba0(%rip), %rsi     # 0x25168
movb $0x0, %al
callq 0x3400
movl $0x1, %edi
callq 0x3380
movq -0x30(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0x20fa0
leaq 0x12bb1(%rip), %rdi     # 0x251a2
movb $0x1, %al
callq 0x9490
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0x20fa0
leaq 0x12ba2(%rip), %rdi     # 0x251b2
movb $0x1, %al
callq 0x9490
jmp 0x12619
jmp 0x1261b
leaq 0x12a0b(%rip), %rdi     # 0x2502d
movb $0x0, %al
callq 0x9490
movl -0x9f4(%rbp), %eax
movl %eax, -0x58(%rbp)
callq 0x3180
subq -0x168(%rbp), %rax
addq -0x40(%rbp), %rax
movq %rax, -0x40(%rbp)
movsd -0xd0(%rbp), %xmm1
movsd -0x18(%rbp), %xmm0
mulsd -0xb8(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x12666
jmp 0x133dd
movl $0x0, -0x58(%rbp)
movsd 0x119cb(%rip), %xmm0    # 0x24040
movsd %xmm0, -0xd8(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0x6c(%rbp)
movl $0x0, -0xa04(%rbp)
movl -0xa04(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x126bf
movq -0x138(%rbp), %rax
movslq -0xa04(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0xa04(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa04(%rbp)
jmp 0x1268d
jmp 0x126c1
movl -0x58(%rbp), %eax
cmpl -0x60(%rbp), %eax
jge 0x12c7d
xorps %xmm0, %xmm0
movsd %xmm0, -0xe0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xe8(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jge 0x1274e
movl -0x4c(%rbp), %eax
movl %eax, -0xa94(%rbp)
callq 0x30b0
movl -0x6c(%rbp), %ecx
subl -0x4c(%rbp), %ecx
cltd
idivl %ecx
movl -0xa94(%rbp), %eax
addl %edx, %eax
movl %eax, -0xa08(%rbp)
movq -0x108(%rbp), %rdi
movslq -0xa08(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x108(%rbp), %rsi
movslq -0x4c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x9420
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x126ea
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jge 0x12c1f
movq -0x108(%rbp), %rax
movslq -0x50(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x4c(%rbp)
movq -0x118(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x160(%rbp)
movq -0x120(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
subsd (%rax,%rcx,8), %xmm0
movsd -0x78(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x160(%rbp), %rax
cmpl $-0x1, (%rax)
je 0x1285f
movq -0x160(%rbp), %rax
movl (%rax), %eax
subl $0x1, %eax
movl %eax, -0xa0c(%rbp)
movq -0x160(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x158(%rbp), %rax
movslq -0xa0c(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq -0x138(%rbp), %rax
movslq -0xa0c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movsd -0xa8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x160(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x160(%rbp)
jmp 0x127e3
movsd 0x117c1(%rip), %xmm0    # 0x24028
addsd -0xa8(%rbp), %xmm0
movsd %xmm0, -0xa18(%rbp)
movsd -0xa8(%rbp), %xmm0
movsd 0x117a1(%rip), %xmm1    # 0x24028
subsd %xmm1, %xmm0
movsd %xmm0, -0xa20(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xa28(%rbp)
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x129bb
jp 0x129bb
xorps %xmm0, %xmm0
ucomisd -0xa18(%rbp), %xmm0
jbe 0x128fa
movsd -0xa18(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xa28(%rbp)
jmp 0x129b9
movsd -0xa20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x12920
movsd -0xa20(%rbp), %xmm0
movsd %xmm0, -0xa28(%rbp)
jmp 0x129b7
movsd -0xa18(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
cvtsi2sdl -0x44(%rbp), %xmm2
divsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x129b5
movsd -0xa20(%rbp), %xmm1
movsd -0xd8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsi2sdl -0x44(%rbp), %xmm2
divsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x129b5
movl -0x6c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x6c(%rbp)
movq -0x108(%rbp), %rdi
movslq -0x50(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x108(%rbp), %rsi
movslq -0x6c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x9420
movl -0x50(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x12c11
jmp 0x129b7
jmp 0x129b9
jmp 0x12a0e
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x129f1
movsd -0xa18(%rbp), %xmm0
movaps 0x1273d(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
movsd %xmm0, -0xa28(%rbp)
jmp 0x12a0c
movsd -0xa20(%rbp), %xmm0
movaps 0x12720(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
movsd %xmm0, -0xa28(%rbp)
jmp 0x12a0e
movsd -0xe0(%rbp), %xmm0
movsd -0xa28(%rbp), %xmm1
callq 0x93e0
movsd %xmm0, -0xe0(%rbp)
movsd -0xa28(%rbp), %xmm0
addsd -0xe8(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xa18(%rbp), %xmm1
movsd -0xb0(%rbp), %xmm0
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x12a9d
movsd -0xa18(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0x12b25
movsd -0xa20(%rbp), %xmm0
movsd -0xb0(%rbp), %xmm1
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x12af4
movsd -0xa20(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0x12b23
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0x12b25
movsd -0xa0(%rbp), %xmm1
movaps 0x125ec(%rip), %xmm0    # 0x25120
pand %xmm0, %xmm1
movsd 0x125d0(%rip), %xmm0    # 0x25110
ucomisd %xmm1, %xmm0
jbe 0x12b4b
jmp 0x12c11
movsd -0xa0(%rbp), %xmm0
movsd 0x12755(%rip), %xmm1    # 0x252b0
callq 0x93e0
movsd 0x12728(%rip), %xmm1    # 0x25290
callq 0x82a0
movsd %xmm0, -0xa0(%rbp)
movsd -0xa0(%rbp), %xmm0
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
cmpl $-0x1, (%rax)
je 0x12c0f
movq -0x160(%rbp), %rax
movl (%rax), %eax
subl $0x1, %eax
movl %eax, -0xa2c(%rbp)
movq -0x160(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd -0xa0(%rbp), %xmm2
movq -0x138(%rbp), %rax
movslq -0xa2c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x160(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x160(%rbp)
jmp 0x12ba9
jmp 0x12c11
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x12755
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
movsd -0xe8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm0
mulsd -0xb8(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x12c68
movl -0x6c(%rbp), %eax
cmpl -0x68(%rbp), %eax
jne 0x12c4d
jmp 0x12c7d
movl -0x68(%rbp), %eax
movl %eax, -0x6c(%rbp)
movsd 0x113e5(%rip), %xmm0    # 0x24040
movsd %xmm0, -0xd8(%rbp)
jmp 0x126c1
movsd -0xe0(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
jmp 0x126c1
movl -0x58(%rbp), %eax
cmpl -0x60(%rbp), %eax
jl 0x12c93
leaq 0x129e4(%rip), %rdi     # 0x25670
movb $0x0, %al
callq 0x9490
xorps %xmm0, %xmm0
movsd %xmm0, -0xf0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x12d59
movq -0x120(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
subsd (%rax,%rcx,8), %xmm2
movsd -0xf0(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x12d1e
jp 0x12d1e
jmp 0x12d49
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x123eb(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
jmp 0x12d4b
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x12cb0
movsd -0x98(%rbp), %xmm0
subsd -0x90(%rbp), %xmm0
addsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xf8(%rbp)
movl $0x0, -0xa30(%rbp)
movl -0xa30(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x12e0e
movq -0x110(%rbp), %rax
movslq -0xa30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $-0x1, %eax
jne 0x12dfb
movq -0x110(%rbp), %rax
movslq -0xa30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movq -0x138(%rbp), %rax
movslq -0xa30(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movsd -0xf8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf8(%rbp)
jmp 0x12dfd
movl -0xa30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa30(%rbp)
jmp 0x12d8e
movl $0x0, -0xa34(%rbp)
movl -0xa34(%rbp), %eax
cmpl -0x64(%rbp), %eax
jge 0x13228
movsd -0x98(%rbp), %xmm1
subsd -0x90(%rbp), %xmm1
addsd -0xf8(%rbp), %xmm1
movsd -0x88(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
movl $0x0, -0xa38(%rbp)
movl -0xa38(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x12f7b
movq -0x138(%rbp), %rax
movslq -0xa38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x34d0
movsd %xmm0, -0xa40(%rbp)
movq -0x140(%rbp), %rax
movslq -0xa38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
mulsd -0xa40(%rbp), %xmm0
movq -0x148(%rbp), %rax
movslq -0xa38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x110(%rbp), %rax
movslq -0xa38(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xaa0(%rbp)
movq -0x148(%rbp), %rax
movslq -0xa38(%rbp), %rcx
movsd 0x1110d(%rip), %xmm0    # 0x24028
addsd (%rax,%rcx,8), %xmm0
movsd -0xa40(%rbp), %xmm1
movq -0x148(%rbp), %rax
movslq -0xa38(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm1
divsd %xmm1, %xmm0
callq 0x3220
movaps %xmm0, %xmm2
movsd -0xaa0(%rbp), %xmm0
movsd -0x100(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
movl -0xa38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa38(%rbp)
jmp 0x12e80
xorps %xmm0, %xmm0
ucomisd -0x100(%rbp), %xmm0
jb 0x130eb
movsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x12fd3
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x12fa3
movl $0x0, -0xa44(%rbp)
movl -0xa44(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x130e6
movq -0x148(%rbp), %rax
movslq -0xa44(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x140(%rbp), %rax
movslq -0xa44(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x140(%rbp), %rax
movslq -0xa44(%rbp), %rcx
movsd 0x11000(%rip), %xmm1    # 0x24028
addsd (%rax,%rcx,8), %xmm1
movsd 0x10ff3(%rip), %xmm0    # 0x24028
divsd %xmm1, %xmm0
movsd %xmm0, -0xa50(%rbp)
movq -0x110(%rbp), %rax
movslq -0xa44(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
mulsd -0xa50(%rbp), %xmm0
movq -0x150(%rbp), %rax
movslq -0xa44(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x110(%rbp), %rax
movslq -0xa44(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movq -0x140(%rbp), %rax
movslq -0xa44(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm0
mulsd -0xa50(%rbp), %xmm0
mulsd -0xa50(%rbp), %xmm0
movq -0x158(%rbp), %rax
movslq -0xa44(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0xa44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa44(%rbp)
jmp 0x12fdd
jmp 0x13228
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x1319a
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd 0x10ef2(%rip), %xmm1    # 0x24020
mulsd %xmm1, %xmm0
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x1315f
jp 0x1315f
jmp 0x1318a
movq -0x128(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x11faa(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
jmp 0x1318c
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x130fd
movsd 0x10e7e(%rip), %xmm0    # 0x24020
mulsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd 0x10e66(%rip), %xmm0    # 0x24020
mulsd -0xf8(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
movl $0x0, -0xa54(%rbp)
movl -0xa54(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x13210
movq -0x138(%rbp), %rax
movslq -0xa54(%rbp), %rcx
movsd 0x10e2b(%rip), %xmm0    # 0x24020
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0xa54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa54(%rbp)
jmp 0x131d4
jmp 0x13212
jmp 0x13214
movl -0xa34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa34(%rbp)
jmp 0x12e18
movl -0xa34(%rbp), %eax
cmpl -0x64(%rbp), %eax
jl 0x13393
movl $0x0, -0xa58(%rbp)
movl -0xa58(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x13273
movq -0x140(%rbp), %rax
movslq -0xa58(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0xa58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa58(%rbp)
jmp 0x13241
movl $0x0, -0xa5c(%rbp)
movl -0xa5c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x13340
movq -0x10(%rbp), %rax
movslq -0xa5c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x132ac
jp 0x132ac
jmp 0x1332c
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0xa5c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
cmpl $-0x1, (%rax)
je 0x1332a
movq -0x10(%rbp), %rax
movslq -0xa5c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x160(%rbp), %rax
movsd 0x8(%rax), %xmm2
movq -0x140(%rbp), %rax
movq -0x160(%rbp), %rcx
movl (%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x160(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x160(%rbp)
jmp 0x132c6
jmp 0x1332c
movl -0xa5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa5c(%rbp)
jmp 0x1327d
movl $0x0, -0xa60(%rbp)
movl -0xa60(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x13391
movq -0x140(%rbp), %rax
movslq -0xa60(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x34d0
movq -0x140(%rbp), %rax
movslq -0xa60(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0xa60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa60(%rbp)
jmp 0x1334a
jmp 0x13393
cmpl $0x1, -0x58(%rbp)
jne 0x133ab
movsd 0x11d47(%rip), %xmm0    # 0x250e8
mulsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x80(%rbp)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
movsd -0xc8(%rbp), %xmm0
movsd %xmm0, -0xc0(%rbp)
movl -0x54(%rbp), %esi
movl -0x58(%rbp), %edx
leaq 0x122d1(%rip), %rdi     # 0x256a2
movb $0x0, %al
callq 0x9490
jmp 0x11f9a
leaq 0x122d7(%rip), %rdi     # 0x256bb
movb $0x0, %al
callq 0x9490
movl -0x54(%rbp), %esi
leaq 0x12006(%rip), %rdi     # 0x253fb
movb $0x0, %al
callq 0x9490
movl -0x54(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jl 0x13412
leaq 0x12014(%rip), %rdi     # 0x2541f
movb $0x0, %al
callq 0x9490
xorps %xmm0, %xmm0
movsd %xmm0, -0xa68(%rbp)
movl $0x0, -0xa6c(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x13494
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x13450
jp 0x13450
jmp 0x13487
movq -0x10(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movaps 0x11cbc(%rip), %xmm1    # 0x25120
pand %xmm1, %xmm0
addsd -0xa68(%rbp), %xmm0
movsd %xmm0, -0xa68(%rbp)
movl -0xa6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa6c(%rbp)
jmp 0x13489
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x1342e
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x44(%rbp), %eax
jge 0x135a3
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x1352e
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xaa8(%rbp)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x10b35(%rip), %xmm1    # 0x24028
divsd (%rax,%rcx,8), %xmm1
movsd 0x10b28(%rip), %xmm0    # 0x24028
addsd %xmm1, %xmm0
callq 0x3220
movaps %xmm0, %xmm2
movsd -0xaa8(%rbp), %xmm0
movsd -0xa68(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa68(%rbp)
jmp 0x13593
movq -0x110(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
addl $0x1, %eax
cltq
movsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0xab0(%rbp)
movq -0x140(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd 0x10ac2(%rip), %xmm0    # 0x24028
addsd (%rax,%rcx,8), %xmm0
callq 0x3220
movaps %xmm0, %xmm2
movsd -0xab0(%rbp), %xmm0
movsd -0xa68(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xa68(%rbp)
jmp 0x13595
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x1349b
movsd -0xa68(%rbp), %xmm0
leaq 0x11e99(%rip), %rdi     # 0x2544b
movb $0x1, %al
callq 0x9490
movl -0xa6c(%rbp), %esi
movl -0x48(%rbp), %edx
leaq 0x1208a(%rip), %rdi     # 0x25653
movb $0x0, %al
callq 0x9490
movq -0x108(%rbp), %rax
movq %rax, -0xab8(%rbp)
cmpq $0x0, %rax
je 0x135f0
movq -0xab8(%rbp), %rdi
callq 0x33b0
movq -0x110(%rbp), %rax
movq %rax, -0xac0(%rbp)
cmpq $0x0, %rax
je 0x13610
movq -0xac0(%rbp), %rdi
callq 0x33b0
movq -0x118(%rbp), %rax
movq %rax, -0xac8(%rbp)
cmpq $0x0, %rax
je 0x13630
movq -0xac8(%rbp), %rdi
callq 0x33b0
movq -0x120(%rbp), %rax
movq %rax, -0xad0(%rbp)
cmpq $0x0, %rax
je 0x13650
movq -0xad0(%rbp), %rdi
callq 0x33b0
movq -0x128(%rbp), %rax
movq %rax, -0xad8(%rbp)
cmpq $0x0, %rax
je 0x13670
movq -0xad8(%rbp), %rdi
callq 0x33b0
movq -0x130(%rbp), %rax
movq %rax, -0xae0(%rbp)
cmpq $0x0, %rax
je 0x13690
movq -0xae0(%rbp), %rdi
callq 0x33b0
movq -0x138(%rbp), %rax
movq %rax, -0xae8(%rbp)
cmpq $0x0, %rax
je 0x136b0
movq -0xae8(%rbp), %rdi
callq 0x33b0
movq -0x140(%rbp), %rax
movq %rax, -0xaf0(%rbp)
cmpq $0x0, %rax
je 0x136d0
movq -0xaf0(%rbp), %rdi
callq 0x33b0
movq -0x148(%rbp), %rax
movq %rax, -0xaf8(%rbp)
cmpq $0x0, %rax
je 0x136f0
movq -0xaf8(%rbp), %rdi
callq 0x33b0
movq -0x150(%rbp), %rax
movq %rax, -0xb00(%rbp)
cmpq $0x0, %rax
je 0x13710
movq -0xb00(%rbp), %rdi
callq 0x33b0
movq -0x158(%rbp), %rax
movq %rax, -0xb08(%rbp)
cmpq $0x0, %rax
je 0x13730
movq -0xb08(%rbp), %rdi
callq 0x33b0
addq $0xb10, %rsp            # imm = 0xB10
popq %rbp
retq
nopl (%rax)