// File: qmmlib[P]QmmLibrary/linear.cpp
// Function: train_one(problem const*, parameter const*, double*, double, double, model const*)
static void train_one(const problem *prob, const parameter *param, double *w, double Cp, double Cn, const struct model * model_)
{
	double eps=param->eps;
	int pos = 0;
	int neg = 0;
	for(int i=0;i<prob->l;i++)
		if(prob->y[i] > 0)
			pos++;
	neg = prob->l - pos;
	
	double primal_solver_tol = eps*max(min(pos,neg), 1)/prob->l;

	function *fun_obj=NULL;
	switch(param->solver_type)
	{
		case L2R_LR:
		{
			double *C = new double[prob->l];
			for(int i = 0; i < prob->l; i++)
			{
				if(prob->y[i] > 0)
					C[i] = Cp;
				else
					C[i] = Cn;
			}
			fun_obj=new l2r_lr_fun(prob, C);
			TRON tron_obj(fun_obj, primal_solver_tol);
			tron_obj.set_print_string(liblinear_print_string);
			clock_t cpu_begin = clock();
			tron_obj.tron(w, param, model_, cpu_begin);
			delete fun_obj;
			delete C;
			break;
		}
		case L2R_L2LOSS_SVC:
		{
			double *C = new double[prob->l];
			for(int i = 0; i < prob->l; i++)
			{
				if(prob->y[i] > 0)
					C[i] = Cp;
				else
					C[i] = Cn;
			}
			fun_obj=new l2r_l2_svc_fun(prob, C);
			TRON tron_obj(fun_obj, primal_solver_tol);
			tron_obj.set_print_string(liblinear_print_string);
			clock_t cpu_begin = clock();
			tron_obj.tron(w, param, model_, cpu_begin);
			delete fun_obj;
			delete C;
			break;
		}
		case L2R_L2LOSS_SVC_DUAL:
			solve_l2r_l1l2_svc(prob, w, eps, Cp, Cn, L2R_L2LOSS_SVC_DUAL);
			break;
		case L2R_L1LOSS_SVC_DUAL:
			solve_l2r_l1l2_svc(prob, w, eps, Cp, Cn, L2R_L1LOSS_SVC_DUAL);
			break;
		case L1R_L2LOSS_SVC:
		{
			problem prob_col;
			feature_node *x_space = NULL;
			transpose(prob, &x_space ,&prob_col);
			clock_t cpu_begin = clock();
			solve_l1r_l2_svc(&prob_col, w, primal_solver_tol, Cp, Cn, param, model_, cpu_begin);
			delete [] prob_col.y;
			delete [] prob_col.x;
			delete [] x_space;
			break;
		}
		case L1R_LR:
		{
			problem prob_col;
			feature_node *x_space = NULL;
			transpose(prob, &x_space ,&prob_col);
			clock_t cpu_begin = clock();
			solve_l1r_lr(&prob_col, w, primal_solver_tol, Cp, Cn, param, model_, cpu_begin);
			delete [] prob_col.y;
			delete [] prob_col.x;
			delete [] x_space;
			break;
		}
		case L2R_LR_DUAL:
			solve_l2r_lr_dual(prob, w, eps, Cp, Cn);
			break;
		case L2R_L2LOSS_SVR:
		{
			double *C = new double[prob->l];
			for(int i = 0; i < prob->l; i++)
				C[i] = param->C;
			
			fun_obj=new l2r_l2_svr_fun(prob, C, param->p);
			TRON tron_obj(fun_obj, param->eps);
			tron_obj.set_print_string(liblinear_print_string);
			clock_t cpu_begin = clock();
			tron_obj.tron(w, param, model_, cpu_begin);
			delete fun_obj;
			delete C;
			break;

		}
		case L2R_L1LOSS_SVR_DUAL:
			solve_l2r_l1l2_svr(prob, w, param, L2R_L1LOSS_SVR_DUAL);
			break;
		case L2R_L2LOSS_SVR_DUAL:
			solve_l2r_l1l2_svr(prob, w, param, L2R_L2LOSS_SVR_DUAL);
			break;
		case MMCD:
			{
				problem prob_col;
				feature_node *x_space = NULL;
				transpose(prob, &x_space ,&prob_col);
				clock_t cpu_begin = clock();
				solve_mmcd(&prob_col, w, eps, Cp, Cn, param, model_, cpu_begin);
				delete [] prob_col.y;
				delete [] prob_col.x;
				delete [] x_space;
				break;
			}
		case MMCD_SIMPLE:
			{
				problem prob_col;
				feature_node *x_space = NULL;
				transpose(prob, &x_space ,&prob_col);
				clock_t cpu_begin = clock();
				solve_mmcd_simple(&prob_col, w, eps, Cp, Cn, param, model_, cpu_begin);
				delete [] prob_col.y;
				delete [] prob_col.x;
				delete [] x_space;
				break;
			}	
		case MMGCD:
			{
				problem prob_col;
				feature_node *x_space = NULL;
				transpose(prob, &x_space ,&prob_col);
				clock_t cpu_begin = clock();
				solve_mmgcd(&prob_col, w, eps, Cp, Cn, param, model_, cpu_begin);
				delete [] prob_col.y;
				delete [] prob_col.x;
				delete [] x_space;
				break;
			}	
		case MMCG:
			{
				clock_t cpu_begin = clock();
				solve_mmcg(prob, w, eps, Cp, Cn, param, model_, cpu_begin);
				break;
			}	
		default:
			fprintf(stderr, "ERROR: unknown solver_type\n");
			break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2f0, %rsp            # imm = 0x2F0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movsd %xmm0, -0x20(%rbp)
movsd %xmm1, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x10(%rbp), %rax
movsd 0x80(%rax), %xmm0
movsd %xmm0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl -0x44(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xaa36
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x44(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xaa29
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xaa2b
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0xa9fb
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl -0x3c(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x218(%rbp)
movl -0x3c(%rbp), %edi
movl -0x40(%rbp), %esi
callq 0xf630
movl %eax, %edi
movl $0x1, %esi
callq 0xf600
movsd -0x218(%rbp), %xmm0
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
cvtsi2sdl (%rax), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x210(%rbp)
subq $0x37, %rax
ja 0xb493
movq -0x210(%rbp), %rax
leaq 0x1a81a(%rip), %rcx     # 0x252d0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rax
movslq (%rax), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movl -0x64(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xab4a
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x64(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xab2b
movsd -0x20(%rbp), %xmm0
movq -0x60(%rbp), %rax
movslq -0x64(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xab3d
movsd -0x28(%rbp), %xmm0
movq -0x60(%rbp), %rax
movslq -0x64(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xab3f
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0xaaf2
movl $0x28, %edi
callq 0x32c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x220(%rbp)
movq -0x8(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x6b10
jmp 0xab70
movq -0x220(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
movsd -0x50(%rbp), %xmm0
leaq -0x98(%rbp), %rdi
movq %rdi, -0x228(%rbp)
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x5900
movq -0x228(%rbp), %rdi
movq 0x208ee(%rip), %rsi     # 0x2b498
callq 0x6af0
jmp 0xabb1
callq 0x3180
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0xa0(%rbp), %r8
leaq -0x98(%rbp), %rdi
callq 0x5990
jmp 0xabde
movq -0x58(%rbp), %rax
movq %rax, -0x230(%rbp)
cmpq $0x0, %rax
je 0xabfc
movq -0x230(%rbp), %rdi
movq (%rdi), %rax
callq *0x28(%rax)
movq -0x60(%rbp), %rax
movq %rax, -0x238(%rbp)
cmpq $0x0, %rax
je 0xac1e
movq -0x238(%rbp), %rdi
movl $0x8, %esi
callq 0x32d0
leaq -0x98(%rbp), %rdi
callq 0x5980
jmp 0xb4ab
movq -0x220(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
movl $0x28, %esi
callq 0x32d0
jmp 0xb4b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x5980
jmp 0xb4b4
movq -0x8(%rbp), %rax
movslq (%rax), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x3030
movq %rax, -0xa8(%rbp)
movl $0x0, -0xac(%rbp)
movl -0xac(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xad17
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0xac(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xacec
movsd -0x20(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movslq -0xac(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xad04
movsd -0x28(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movslq -0xac(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0xad06
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0xaca7
movl $0x38, %edi
callq 0x32c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x240(%rbp)
movq -0x8(%rbp), %rsi
movq -0xa8(%rbp), %rdx
callq 0x7300
jmp 0xad40
movq -0x240(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
movsd -0x50(%rbp), %xmm0
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x248(%rbp)
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x5900
movq -0x248(%rbp), %rdi
movq 0x2071e(%rip), %rsi     # 0x2b498
callq 0x6af0
jmp 0xad81
callq 0x3180
movq %rax, -0xd8(%rbp)
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0xd8(%rbp), %r8
leaq -0xd0(%rbp), %rdi
callq 0x5990
jmp 0xadae
movq -0x58(%rbp), %rax
movq %rax, -0x250(%rbp)
cmpq $0x0, %rax
je 0xadcc
movq -0x250(%rbp), %rdi
movq (%rdi), %rax
callq *0x28(%rax)
movq -0xa8(%rbp), %rax
movq %rax, -0x258(%rbp)
cmpq $0x0, %rax
je 0xadf1
movq -0x258(%rbp), %rdi
movl $0x8, %esi
callq 0x32d0
leaq -0xd0(%rbp), %rdi
callq 0x5980
jmp 0xb4ab
movq -0x240(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
movl $0x38, %esi
callq 0x32d0
jmp 0xb4b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5980
jmp 0xb4b4
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movl $0x1, %edx
callq 0xf660
jmp 0xb4ab
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movl $0x3, %edx
callq 0xf660
jmp 0xb4ab
movq $0x0, -0x100(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
callq 0xb750
callq 0x3180
movq %rax, -0x108(%rbp)
movq -0x18(%rbp), %rsi
movsd -0x50(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x108(%rbp), %r8
leaq -0xf8(%rbp), %rdi
callq 0x100d0
movq -0xf0(%rbp), %rax
movq %rax, -0x260(%rbp)
cmpq $0x0, %rax
je 0xaf09
movq -0x260(%rbp), %rdi
callq 0x33b0
movq -0xe8(%rbp), %rax
movq %rax, -0x268(%rbp)
cmpq $0x0, %rax
je 0xaf29
movq -0x268(%rbp), %rdi
callq 0x33b0
movq -0x100(%rbp), %rax
movq %rax, -0x270(%rbp)
cmpq $0x0, %rax
je 0xaf49
movq -0x270(%rbp), %rdi
callq 0x33b0
jmp 0xb4ab
movq $0x0, -0x130(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0xb750
callq 0x3180
movq %rax, -0x138(%rbp)
movq -0x18(%rbp), %rsi
movsd -0x50(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x138(%rbp), %r8
leaq -0x128(%rbp), %rdi
callq 0x116f0
movq -0x120(%rbp), %rax
movq %rax, -0x278(%rbp)
cmpq $0x0, %rax
je 0xafca
movq -0x278(%rbp), %rdi
callq 0x33b0
movq -0x118(%rbp), %rax
movq %rax, -0x280(%rbp)
cmpq $0x0, %rax
je 0xafea
movq -0x280(%rbp), %rdi
callq 0x33b0
movq -0x130(%rbp), %rax
movq %rax, -0x288(%rbp)
cmpq $0x0, %rax
je 0xb00a
movq -0x288(%rbp), %rdi
callq 0x33b0
jmp 0xb4ab
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x9570
jmp 0xb4ab
movq -0x8(%rbp), %rax
movslq (%rax), %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)
movl $0x0, -0x144(%rbp)
movl -0x144(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xb0a7
movq -0x10(%rbp), %rax
movsd 0x88(%rax), %xmm0
movq -0x140(%rbp), %rax
movslq -0x144(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x144(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x144(%rbp)
jmp 0xb069
movl $0x40, %edi
callq 0x32c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x290(%rbp)
movq -0x8(%rbp), %rsi
movq -0x140(%rbp), %rdx
movq -0x10(%rbp), %rax
movsd 0xa8(%rax), %xmm0
callq 0x7b40
jmp 0xb0dc
movq -0x290(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
movq -0x10(%rbp), %rax
movsd 0x80(%rax), %xmm0
leaq -0x168(%rbp), %rdi
movq %rdi, -0x298(%rbp)
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x5900
movq -0x298(%rbp), %rdi
movq 0x2037b(%rip), %rsi     # 0x2b498
callq 0x6af0
jmp 0xb124
callq 0x3180
movq %rax, -0x170(%rbp)
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x170(%rbp), %r8
leaq -0x168(%rbp), %rdi
callq 0x5990
jmp 0xb151
movq -0x58(%rbp), %rax
movq %rax, -0x2a0(%rbp)
cmpq $0x0, %rax
je 0xb16f
movq -0x2a0(%rbp), %rdi
movq (%rdi), %rax
callq *0x28(%rax)
movq -0x140(%rbp), %rax
movq %rax, -0x2a8(%rbp)
cmpq $0x0, %rax
je 0xb194
movq -0x2a8(%rbp), %rdi
movl $0x8, %esi
callq 0x32d0
leaq -0x168(%rbp), %rdi
callq 0x5980
jmp 0xb4ab
movq -0x290(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
movl $0x40, %esi
callq 0x32d0
jmp 0xb4b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x5980
jmp 0xb4b4
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
movl $0xd, %ecx
callq 0x13740
jmp 0xb4ab
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
movl $0xc, %ecx
callq 0x13740
jmp 0xb4ab
movq $0x0, -0x198(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x198(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0xb750
callq 0x3180
movq %rax, -0x1a0(%rbp)
movq -0x18(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x1a0(%rbp), %r8
leaq -0x190(%rbp), %rdi
callq 0x14370
movq -0x188(%rbp), %rax
movq %rax, -0x2b0(%rbp)
cmpq $0x0, %rax
je 0xb296
movq -0x2b0(%rbp), %rdi
callq 0x33b0
movq -0x180(%rbp), %rax
movq %rax, -0x2b8(%rbp)
cmpq $0x0, %rax
je 0xb2b6
movq -0x2b8(%rbp), %rdi
callq 0x33b0
movq -0x198(%rbp), %rax
movq %rax, -0x2c0(%rbp)
cmpq $0x0, %rax
je 0xb2d6
movq -0x2c0(%rbp), %rdi
callq 0x33b0
jmp 0xb4ab
movq $0x0, -0x1c8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
callq 0xb750
callq 0x3180
movq %rax, -0x1d0(%rbp)
movq -0x18(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x1d0(%rbp), %r8
leaq -0x1c0(%rbp), %rdi
callq 0x16b50
movq -0x1b8(%rbp), %rax
movq %rax, -0x2c8(%rbp)
cmpq $0x0, %rax
je 0xb357
movq -0x2c8(%rbp), %rdi
callq 0x33b0
movq -0x1b0(%rbp), %rax
movq %rax, -0x2d0(%rbp)
cmpq $0x0, %rax
je 0xb377
movq -0x2d0(%rbp), %rdi
callq 0x33b0
movq -0x1c8(%rbp), %rax
movq %rax, -0x2d8(%rbp)
cmpq $0x0, %rax
je 0xb397
movq -0x2d8(%rbp), %rdi
callq 0x33b0
jmp 0xb4ab
movq $0x0, -0x1f8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
leaq -0x1f0(%rbp), %rdx
callq 0xb750
callq 0x3180
movq %rax, -0x200(%rbp)
movq -0x18(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x200(%rbp), %r8
leaq -0x1f0(%rbp), %rdi
callq 0x18f00
movq -0x1e8(%rbp), %rax
movq %rax, -0x2e0(%rbp)
cmpq $0x0, %rax
je 0xb418
movq -0x2e0(%rbp), %rdi
callq 0x33b0
movq -0x1e0(%rbp), %rax
movq %rax, -0x2e8(%rbp)
cmpq $0x0, %rax
je 0xb438
movq -0x2e8(%rbp), %rdi
callq 0x33b0
movq -0x1f8(%rbp), %rax
movq %rax, -0x2f0(%rbp)
cmpq $0x0, %rax
je 0xb458
movq -0x2f0(%rbp), %rdi
callq 0x33b0
jmp 0xb4ab
callq 0x3180
movq %rax, -0x208(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
movq -0x10(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x208(%rbp), %r8
callq 0x1c2e0
jmp 0xb4ab
movq 0x1fb3e(%rip), %rax     # 0x2afd8
movq (%rax), %rdi
leaq 0x1a13b(%rip), %rsi     # 0x255df
movb $0x0, %al
callq 0x3400
addq $0x2f0, %rsp            # imm = 0x2F0
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x34b0
nopl (%rax)