// File: /workspace/github_cpp_makefile_star2_O3/cjlin1[P]liblinear/linear.cpp
// Function: train_one(problem const*, parameter const*, double*, double, double)
static void train_one(const problem *prob, const parameter *param, double *w, double Cp, double Cn)
{
	int solver_type = param->solver_type;
	int dual_solver_max_iter = 300;
	int iter;

	bool is_regression = (solver_type==L2R_L2LOSS_SVR ||
				solver_type==L2R_L1LOSS_SVR_DUAL ||
				solver_type==L2R_L2LOSS_SVR_DUAL);

	// Some solvers use Cp,Cn but not C array; extensions possible but no plan for now
	double *C = new double[prob->l];
	double primal_solver_tol = param->eps;
	if(is_regression)
	{
		for(int i=0;i<prob->l;i++)
			C[i] = param->C;
	}
	else
	{
		int pos = 0;
		for(int i=0;i<prob->l;i++)
		{
			if(prob->y[i] > 0)
			{
				pos++;
				C[i] = Cp;
			}
			else
				C[i] = Cn;
		}
		int neg = prob->l - pos;
		primal_solver_tol = param->eps*max(min(pos,neg), 1)/prob->l;
	}

	switch(solver_type)
	{
		case L2R_LR:
		{
			l2r_lr_fun fun_obj(prob, param, C);
			NEWTON newton_obj(&fun_obj, primal_solver_tol);
			newton_obj.set_print_string(liblinear_print_string);
			newton_obj.newton(w);
			break;
		}
		case L2R_L2LOSS_SVC:
		{
			l2r_l2_svc_fun fun_obj(prob, param, C);
			NEWTON newton_obj(&fun_obj, primal_solver_tol);
			newton_obj.set_print_string(liblinear_print_string);
			newton_obj.newton(w);
			break;
		}
		case L2R_L2LOSS_SVC_DUAL:
		{
			iter = solve_l2r_l1l2_svc(prob, param, w, Cp, Cn, dual_solver_max_iter);
			if(iter >= dual_solver_max_iter)
			{
				info("\nWARNING: reaching max number of iterations\nSwitching to use -s 2\n\n");
				// primal_solver_tol obtained from eps for dual may be too loose
				primal_solver_tol *= 0.1;
				l2r_l2_svc_fun fun_obj(prob, param, C);
				NEWTON newton_obj(&fun_obj, primal_solver_tol);
				newton_obj.set_print_string(liblinear_print_string);
				newton_obj.newton(w);
			}
			break;
		}
		case L2R_L1LOSS_SVC_DUAL:
		{
			iter = solve_l2r_l1l2_svc(prob, param, w, Cp, Cn, dual_solver_max_iter);
			if(iter >= dual_solver_max_iter)
				info("\nWARNING: reaching max number of iterations\nUsing -s 2 may be faster (also see FAQ)\n\n");			
			break;
		}
		case L1R_L2LOSS_SVC:
		{
			problem prob_col;
			feature_node *x_space = NULL;
			transpose(prob, &x_space ,&prob_col);
			solve_l1r_l2_svc(&prob_col, param, w, Cp, Cn, primal_solver_tol);
			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);
			solve_l1r_lr(&prob_col, param, w, Cp, Cn, primal_solver_tol);
			delete [] prob_col.y;
			delete [] prob_col.x;
			delete [] x_space;
			break;
		}
		case L2R_LR_DUAL:
		{
			iter = solve_l2r_lr_dual(prob, param, w, Cp, Cn, dual_solver_max_iter);
			if(iter >= dual_solver_max_iter)
			{
				info("\nWARNING: reaching max number of iterations\nSwitching to use -s 0\n\n");
				// primal_solver_tol obtained from eps for dual may be too loose
				primal_solver_tol *= 0.1;
				l2r_lr_fun fun_obj(prob, param, C);
				NEWTON newton_obj(&fun_obj, primal_solver_tol);
				newton_obj.set_print_string(liblinear_print_string);
				newton_obj.newton(w);
			}
			break;
		}
		case L2R_L2LOSS_SVR:
		{
			l2r_l2_svr_fun fun_obj(prob, param, C);
			NEWTON newton_obj(&fun_obj, primal_solver_tol);
			newton_obj.set_print_string(liblinear_print_string);
			newton_obj.newton(w);
			break;
		}
		case L2R_L1LOSS_SVR_DUAL:
		{
			iter = solve_l2r_l1l2_svr(prob, param, w, dual_solver_max_iter);
			if(iter >= dual_solver_max_iter)
				info("\nWARNING: reaching max number of iterations\nUsing -s 11 may be faster (also see FAQ)\n\n");			

			break;
		}
		case L2R_L2LOSS_SVR_DUAL:
		{
			iter = solve_l2r_l1l2_svr(prob, param, w, dual_solver_max_iter);
			if(iter >= dual_solver_max_iter)
			{
				info("\nWARNING: reaching max number of iterations\nSwitching to use -s 11\n\n");
				// primal_solver_tol obtained from eps for dual may be too loose
				primal_solver_tol *= 0.001;
				l2r_l2_svr_fun fun_obj(prob, param, C);
				NEWTON newton_obj(&fun_obj, primal_solver_tol);
				newton_obj.set_print_string(liblinear_print_string);
				newton_obj.newton(w);
			}
			break;
		}
		default:
			fprintf(stderr, "ERROR: unknown solver_type\n");
			break;
	}

	delete[] C;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
movsd %xmm1, 0x140(%rsp)
movsd %xmm0, 0xe8(%rsp)
movq %rdx, (%rsp)
movq %rsi, %r15
movl (%rsi), %r14d
leal -0xb(%r14), %ebp
movq %rdi, 0x18(%rsp)
movslq (%rdi), %r13
leaq (,%r13,8), %rax
testq %r13, %r13
movq $-0x1, %rbx
cmovnsq %rax, %rbx
movq %rbx, %rdi
callq 0x2030
movq %rax, %r12
movsd 0x8(%r15), %xmm0
cmpl $0x3, %ebp
movsd %xmm0, 0xf0(%rsp)
jae 0x77a2
movsd %xmm0, 0x20(%rsp)
testl %r13d, %r13d
movq (%rsp), %rdx
movsd 0xe8(%rsp), %xmm0
jle 0x7840
movsd 0x10(%r15), %xmm9
leal 0x1(%r13), %eax
leaq -0x1(%r13), %rcx
movq %rcx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
shrl %eax
shlq $0x4, %rax
movdqa 0x7744(%rip), %xmm2     # 0xee60
xorl %ecx, %ecx
movdqa 0x774a(%rip), %xmm3     # 0xee70
pxor %xmm3, %xmm1
pcmpeqd %xmm4, %xmm4
movdqa 0x774a(%rip), %xmm5     # 0xee80
movdqa %xmm2, %xmm6
pxor %xmm3, %xmm6
movdqa %xmm6, %xmm7
pcmpgtd %xmm1, %xmm7
pcmpeqd %xmm1, %xmm6
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pand %xmm7, %xmm8
pshufd $0xf5, %xmm7, %xmm6     # xmm6 = xmm7[1,1,3,3]
por %xmm8, %xmm6
movd %xmm6, %esi
notl %esi
testb $0x1, %sil
je 0x7771
movsd %xmm9, (%r12,%rcx)
pxor %xmm4, %xmm6
pextrw $0x4, %xmm6, %esi
testb $0x1, %sil
je 0x7787
movsd %xmm9, 0x8(%r12,%rcx)
paddq %xmm5, %xmm2
addq $0x10, %rcx
cmpq %rcx, %rax
jne 0x7736
movsd 0xf0(%rsp), %xmm1
jmp 0x783a
testl %r13d, %r13d
jle 0x77fa
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
xorl %r8d, %r8d
xorpd %xmm2, %xmm2
xorl %eax, %eax
movq (%rsp), %rdx
movsd 0xe8(%rsp), %xmm0
movsd (%rcx,%r8,8), %xmm1
xorl %esi, %esi
ucomisd %xmm2, %xmm1
seta %dil
movapd %xmm0, %xmm1
ja 0x77e5
movsd 0x140(%rsp), %xmm1
movb %dil, %sil
addl %esi, %eax
movsd %xmm1, (%r12,%r8,8)
incq %r8
cmpq %r8, %r13
jne 0x77c6
jmp 0x7809
xorl %eax, %eax
movq (%rsp), %rdx
movsd 0xe8(%rsp), %xmm0
movl %r13d, %ecx
subl %eax, %ecx
cmpl %ecx, %eax
cmovll %eax, %ecx
cmpl $0x2, %ecx
movl $0x1, %eax
cmovgel %ecx, %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
mulsd 0xf0(%rsp), %xmm1
xorps %xmm2, %xmm2
cvtsi2sd %r13d, %xmm2
divsd %xmm2, %xmm1
movsd %xmm1, 0x20(%rsp)
cmpl $0xd, %r14d
ja 0xa022
movl %r14d, %eax
leaq 0x767c(%rip), %rcx      # 0xeed0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x4352
leaq 0xc0(%rsp), %rdi
movsd 0x73a8(%rip), %xmm1     # 0xec30
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x3784
movq 0xb8f6(%rip), %rsi      # 0x13198
leaq 0xc0(%rsp), %rdi
callq 0x3ea6
leaq 0xc0(%rsp), %rdi
movq (%rsp), %rsi
callq 0x37bc
jmp 0x9055
movq %r12, 0x158(%rsp)
xorl %eax, %eax
leaq 0x188(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x1b0(%rsp), %rbx
movq 0x18(%rsp), %rdi
movq %rbx, %rdx
callq 0xc49e
movl 0x48(%r15), %eax
movl %eax, 0x10(%rsp)
movslq (%rbx), %r13
movslq 0x4(%rbx), %r14
leaq (,%r14,4), %rdi
leaq (,%r14,8), %rbp
testq %r14, %r14
movq $-0x1, %rbx
cmovsq %rbx, %rdi
movq %rbp, 0x30(%rsp)
cmovsq %rbx, %rbp
callq 0x2030
movq %rax, %r15
movq %r13, %rdi
callq 0x2030
movq %rax, %r12
movq %r13, 0x50(%rsp)
leaq (,%r13,8), %rdi
testq %r13, %r13
cmovsq %rbx, %rdi
callq 0x2030
movq %rax, %r13
movq %rbp, %rdi
callq 0x2030
movq %rax, %rbx
movl 0x50(%rsp), %ebp
movsd 0x140(%rsp), %xmm0
movsd %xmm0, 0xc0(%rsp)
xorl %eax, %eax
movq %rax, 0xc8(%rsp)
movsd 0xe8(%rsp), %xmm0
movsd %xmm0, 0xd0(%rsp)
testq %r14, %r14
jle 0x79a6
movq (%rsp), %rdi
xorl %esi, %esi
movq 0x30(%rsp), %rdx
callq 0x20c0
movabsq $0x3ff0000000000000, %rsi # imm = 0x3FF0000000000000
testl %ebp, %ebp
jle 0x79e4
movq 0x1b8(%rsp), %rax
xorl %ecx, %ecx
xorpd %xmm0, %xmm0
movq %rsi, (%r13,%rcx,8)
movsd (%rax,%rcx,8), %xmm1
ucomisd %xmm0, %xmm1
setbe %dl
negb %dl
orb $0x1, %dl
movb %dl, (%r12,%rcx)
incq %rcx
cmpq %rcx, %rbp
jne 0x79c2
movq 0x1c0(%rsp), %rcx
testl %r14d, %r14d
movq (%rsp), %rdi
movq %rcx, 0x80(%rsp)
jle 0x7a8f
xorl %eax, %eax
movl %eax, (%r15,%rax,4)
movq $0x0, (%rbx,%rax,8)
movq (%rcx,%rax,8), %rcx
movl (%rcx), %edx
cmpl $-0x1, %edx
je 0x7a7b
addq $0x8, %rcx
xorpd %xmm0, %xmm0
movslq %edx, %rdx
movsbq -0x1(%r12,%rdx), %rsi
xorps %xmm1, %xmm1
cvtsi2sd %esi, %xmm1
mulsd (%rcx), %xmm1
movsd %xmm1, (%rcx)
movsd -0x8(%r13,%rdx,8), %xmm2
movsd (%rdi,%rax,8), %xmm3
mulsd %xmm1, %xmm3
subsd %xmm3, %xmm2
movsd %xmm2, -0x8(%r13,%rdx,8)
movsd 0xc8(%rsp,%rsi,8), %xmm2
mulsd %xmm1, %xmm2
mulsd %xmm1, %xmm2
addsd %xmm2, %xmm0
movsd %xmm0, (%rbx,%rax,8)
movl 0x8(%rcx), %edx
addq $0x10, %rcx
cmpl $-0x1, %edx
jne 0x7a22
incq %rax
cmpq %r14, %rax
movq 0x80(%rsp), %rcx
jne 0x7a03
movq %rbx, 0xa0(%rsp)
leal -0x1(%r14), %eax
movl %eax, 0x118(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x28(%rsp)
movq %rbp, %rcx
incl %ebp
movq %rcx, 0x68(%rsp)
leaq -0x1(%rcx), %rax
movq %rax, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, 0x100(%rsp)
shrl %ebp
shlq $0x4, %rbp
movsd 0x6562(%rip), %xmm0     # 0xe040
movsd 0x654a(%rip), %xmm1     # 0xe030
xorl %eax, %eax
movl %r14d, %edx
movaps %xmm1, 0xb0(%rsp)
movapd %xmm0, %xmm1
xorpd %xmm0, %xmm0
movsd %xmm0, 0x50(%rsp)
movq %r14, 0x8(%rsp)
movq %rax, 0x1a0(%rsp)
testl %edx, %edx
movsd %xmm1, 0x40(%rsp)
jle 0x819d
movl %edx, 0x30(%rsp)
movl %edx, %ebx
xorl %r14d, %r14d
callq 0x2090
cltd
idivl %ebx
movslq %edx, %rax
addq %r14, %rax
movl (%r15,%rax,4), %ecx
movl (%r15,%r14,4), %edx
movl %edx, (%r15,%rax,4)
movl %ecx, (%r15,%r14,4)
incq %r14
decq %rbx
jne 0x7b25
movapd 0xb0(%rsp), %xmm1
movapd %xmm1, %xmm2
movsd 0x28(%rsp), %xmm0
divsd %xmm0, %xmm2
movapd %xmm2, 0x130(%rsp)
movapd 0x710c(%rip), %xmm12    # 0xec80
xorpd %xmm12, %xmm1
divsd %xmm0, %xmm1
movapd %xmm1, 0x120(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0xb0(%rsp)
xorl %ebx, %ebx
movapd %xmm0, 0x70(%rsp)
movq (%rsp), %r11
movq 0x8(%rsp), %r14
movq 0x80(%rsp), %rsi
movapd 0x70bb(%rip), %xmm9     # 0xec70
xorpd %xmm10, %xmm10
movsd 0x708d(%rip), %xmm13    # 0xec50
movapd 0x70a4(%rip), %xmm14    # 0xec70
movsd 0x7233(%rip), %xmm15    # 0xee08
movl 0x30(%rsp), %edx
movl %edx, 0x30(%rsp)
movslq %ebx, %rdi
movl (%r15,%rdi,4), %r8d
movslq %r8d, %rax
movq (%rsi,%rax,8), %rcx
movl (%rcx), %edx
cmpl $-0x1, %edx
je 0x7c53
leaq 0x10(%rcx), %rsi
xorpd %xmm0, %xmm0
movl %edx, %r9d
movslq %r9d, %r9
movsd -0x8(%r13,%r9,8), %xmm1
ucomisd %xmm10, %xmm1
jbe 0x7c40
movsd -0x8(%rsi), %xmm2
movsbq -0x1(%r12,%r9), %r9
movsd 0xc8(%rsp,%r9,8), %xmm3
mulsd %xmm2, %xmm3
movapd %xmm3, %xmm4
xorpd %xmm12, %xmm4
unpcklpd %xmm4, %xmm3            # xmm3 = xmm3[0],xmm4[0]
unpcklpd %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0]
mulpd %xmm3, %xmm2
addpd %xmm2, %xmm0
movl (%rsi), %r9d
addq $0x10, %rsi
cmpl $-0x1, %r9d
jne 0x7bfd
addpd %xmm0, %xmm0
jmp 0x7c57
xorpd %xmm0, %xmm0
movapd %xmm0, %xmm3
maxsd %xmm13, %xmm3
movl %r8d, %esi
xorl 0x118(%rsp), %esi
orl 0x10(%rsp), %esi
sete %sil
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
jne 0x7cd5
movapd %xmm1, %xmm2
andpd %xmm14, %xmm2
movapd 0xb0(%rsp), %xmm4
maxsd %xmm2, %xmm4
movapd %xmm4, 0xb0(%rsp)
movapd 0x70(%rsp), %xmm4
addsd %xmm2, %xmm4
movapd %xmm4, 0x70(%rsp)
movapd %xmm1, %xmm5
xorpd %xmm12, %xmm5
divsd %xmm3, %xmm5
movapd %xmm5, %xmm2
andpd %xmm14, %xmm2
ucomisd %xmm2, %xmm13
ja 0x817f
mulsd %xmm5, %xmm1
jmp 0x7dff
movapd %xmm1, %xmm5
addsd 0x6f5f(%rip), %xmm5     # 0xec40
movapd %xmm1, %xmm4
addsd 0x6353(%rip), %xmm4     # 0xe040
movsd (%r11,%rax,8), %xmm2
ucomisd %xmm10, %xmm2
jne 0x7d0e
jp 0x7d0e
ucomisd %xmm5, %xmm10
jbe 0x7d16
movapd %xmm5, %xmm6
xorpd %xmm12, %xmm6
jmp 0x7d70
jbe 0x7d67
movapd %xmm5, %xmm6
jmp 0x7d6b
ucomisd %xmm10, %xmm4
movapd %xmm4, %xmm6
ja 0x7d70
ucomisd 0x130(%rsp), %xmm5
xorpd %xmm6, %xmm6
jbe 0x7d70
movapd 0x120(%rsp), %xmm7
ucomisd %xmm4, %xmm7
jbe 0x7d70
movl 0x30(%rsp), %edx
movslq %edx, %rax
decl %edx
movl -0x4(%r15,%rax,4), %ecx
movl %ecx, (%r15,%rdi,4)
movl %r8d, -0x4(%r15,%rax,4)
decl %edi
movl %edi, %ebx
movq 0x80(%rsp), %rsi
jmp 0x818b
movapd %xmm4, %xmm6
andpd %xmm9, %xmm6
movapd %xmm3, %xmm7
mulsd %xmm2, %xmm7
ucomisd %xmm5, %xmm7
jbe 0x7d89
xorpd %xmm12, %xmm5
divsd %xmm3, %xmm5
jmp 0x7da7
ucomisd %xmm7, %xmm4
jbe 0x7d9e
xorpd %xmm12, %xmm4
divsd %xmm3, %xmm4
movapd %xmm4, %xmm5
jmp 0x7da7
movapd %xmm2, %xmm5
xorpd %xmm12, %xmm5
movapd 0xb0(%rsp), %xmm3
maxsd %xmm6, %xmm3
movapd %xmm3, 0xb0(%rsp)
movapd 0x70(%rsp), %xmm3
addsd %xmm6, %xmm3
movapd %xmm3, 0x70(%rsp)
movapd %xmm5, %xmm3
andpd %xmm9, %xmm3
ucomisd %xmm3, %xmm13
ja 0x817f
movapd %xmm2, %xmm3
addsd %xmm5, %xmm3
andpd %xmm14, %xmm3
andpd %xmm14, %xmm2
subsd %xmm2, %xmm3
mulsd %xmm5, %xmm1
addsd %xmm3, %xmm1
movq 0xa0(%rsp), %rdi
movsd (%rdi,%rax,8), %xmm3
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addq $0x10, %rcx
xorpd %xmm4, %xmm4
xorl %edi, %edi
movl %edx, %r8d
movapd %xmm5, %xmm2
testb %sil, %sil
je 0x7e31
movapd %xmm1, %xmm5
mulsd %xmm15, %xmm5
jmp 0x7e5a
movsd (%r11,%rax,8), %xmm5
movapd %xmm2, %xmm6
addsd %xmm5, %xmm6
andpd %xmm14, %xmm6
andpd %xmm14, %xmm5
subsd %xmm5, %xmm6
movapd %xmm1, %xmm5
mulsd %xmm15, %xmm5
addsd %xmm6, %xmm5
subsd %xmm2, %xmm4
movapd %xmm3, %xmm6
mulsd %xmm2, %xmm6
movapd %xmm0, %xmm7
mulsd %xmm2, %xmm7
mulsd %xmm2, %xmm6
addsd %xmm7, %xmm6
addsd %xmm5, %xmm6
ucomisd %xmm6, %xmm10
jae 0x8130
xorpd %xmm6, %xmm6
testl %edi, %edi
je 0x7ef0
cmpl $-0x1, %r8d
je 0x7f95
movq %rcx, %r9
movl %r8d, %r10d
movslq %r10d, %r10
movsd -0x8(%r9), %xmm7
mulsd %xmm4, %xmm7
addsd -0x8(%r13,%r10,8), %xmm7
movsd %xmm7, -0x8(%r13,%r10,8)
ucomisd %xmm10, %xmm7
jbe 0x7ede
movsbq -0x1(%r12,%r10), %r10
movsd 0xc8(%rsp,%r10,8), %xmm8
mulsd %xmm7, %xmm8
mulsd %xmm7, %xmm8
addsd %xmm8, %xmm6
movl (%r9), %r10d
addq $0x10, %r9
cmpl $-0x1, %r10d
jne 0x7e9d
jmp 0x7fad
cmpl $-0x1, %edx
je 0x7f9d
movsd %xmm6, 0x50(%rsp)
movq %rcx, %r8
movl %edx, %r9d
movslq %r9d, %r9
movsd -0x8(%r13,%r9,8), %xmm7
ucomisd %xmm10, %xmm7
jbe 0x7f43
movsbq -0x1(%r12,%r9), %r10
movsd 0xc8(%rsp,%r10,8), %xmm8
mulsd %xmm7, %xmm8
mulsd %xmm7, %xmm8
movsd 0x50(%rsp), %xmm11
addsd %xmm8, %xmm11
movsd %xmm11, 0x50(%rsp)
movsd -0x8(%r8), %xmm8
mulsd %xmm4, %xmm8
addsd %xmm7, %xmm8
movsd %xmm8, -0x8(%r13,%r9,8)
ucomisd %xmm10, %xmm8
jbe 0x7f7f
movsbq -0x1(%r12,%r9), %r9
movsd 0xc8(%rsp,%r9,8), %xmm7
mulsd %xmm8, %xmm7
mulsd %xmm8, %xmm7
addsd %xmm7, %xmm6
movl (%r8), %r9d
addq $0x10, %r8
cmpl $-0x1, %r9d
jne 0x7f05
movl %edx, %r8d
jmp 0x7fad
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
jmp 0x7fad
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorpd %xmm4, %xmm4
movsd %xmm4, 0x50(%rsp)
addsd %xmm6, %xmm5
subsd 0x50(%rsp), %xmm5
ucomisd %xmm5, %xmm10
jae 0x815d
movapd %xmm2, %xmm5
movsd 0x6c62(%rip), %xmm4     # 0xec30
mulsd %xmm4, %xmm5
mulsd %xmm4, %xmm1
incl %edi
movapd %xmm2, %xmm4
cmpl $0x14, %edi
jne 0x7e1d
addsd (%r11,%rax,8), %xmm5
movsd %xmm5, (%r11,%rax,8)
leaq 0x7577(%rip), %rdi      # 0xf56f
xorl %eax, %eax
callq 0x5d62
movdqa 0x100(%rsp), %xmm4
cmpl $0x0, 0x68(%rsp)
movq 0x80(%rsp), %rsi
movabsq $0x3ff0000000000000, %rdx # imm = 0x3FF0000000000000
movdqa 0x6e49(%rip), %xmm5     # 0xee70
pcmpeqd %xmm6, %xmm6
movdqa 0x6e4d(%rip), %xmm7     # 0xee80
jle 0x809d
xorl %eax, %eax
movdqa 0x6e21(%rip), %xmm0     # 0xee60
movdqa %xmm4, %xmm1
pxor %xmm5, %xmm1
movdqa %xmm0, %xmm2
pxor %xmm5, %xmm2
movdqa %xmm2, %xmm3
pcmpgtd %xmm1, %xmm3
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pand %xmm3, %xmm2
pshufd $0xf5, %xmm3, %xmm1     # xmm1 = xmm3[1,1,3,3]
por %xmm2, %xmm1
movd %xmm1, %ecx
notl %ecx
testb $0x1, %cl
je 0x807d
movq %rdx, (%r13,%rax)
pxor %xmm6, %xmm1
pextrw $0x4, %xmm1, %ecx
testb $0x1, %cl
je 0x8090
movq %rdx, 0x8(%r13,%rax)
paddq %xmm7, %xmm0
addq $0x10, %rax
cmpq %rax, %rbp
jne 0x803f
testl %r14d, %r14d
movapd 0x6bc7(%rip), %xmm9     # 0xec70
xorpd %xmm10, %xmm10
movapd 0x6bc9(%rip), %xmm12    # 0xec80
movsd 0x6b90(%rip), %xmm13    # 0xec50
movapd 0x6ba7(%rip), %xmm14    # 0xec70
movsd 0x6d36(%rip), %xmm15    # 0xee08
jle 0x8197
xorl %eax, %eax
movq (%rsp), %r11
movsd (%r11,%rax,8), %xmm0
ucomisd %xmm10, %xmm0
jne 0x80ed
jnp 0x8126
movq (%rsi,%rax,8), %rcx
movl (%rcx), %edx
cmpl $-0x1, %edx
je 0x8126
xorpd %xmm12, %xmm0
addq $0x10, %rcx
movslq %edx, %rdx
movsd -0x8(%rcx), %xmm1
mulsd %xmm0, %xmm1
addsd -0x8(%r13,%rdx,8), %xmm1
movsd %xmm1, -0x8(%r13,%rdx,8)
movl (%rcx), %edx
addq $0x10, %rcx
cmpl $-0x1, %edx
jne 0x8101
incq %rax
cmpq %r14, %rax
jne 0x80de
jmp 0x8187
cmpl $-0x1, %r8d
je 0x8173
movslq %r8d, %rdx
movsd -0x8(%rcx), %xmm0
mulsd %xmm4, %xmm0
addsd -0x8(%r13,%rdx,8), %xmm0
movsd %xmm0, -0x8(%r13,%rdx,8)
movl (%rcx), %r8d
addq $0x10, %rcx
cmpl $-0x1, %r8d
jne 0x8136
movq 0x80(%rsp), %rsi
addsd (%r11,%rax,8), %xmm2
movsd %xmm2, (%r11,%rax,8)
jmp 0x8187
addsd (%r11,%rax,8), %xmm2
movsd %xmm2, (%r11,%rax,8)
movq 0x80(%rsp), %rsi
movl 0x30(%rsp), %edx
incl %ebx
cmpl %edx, %ebx
jl 0x7bd9
jmp 0x81b0
movq (%rsp), %r11
jmp 0x8187
xorpd %xmm0, %xmm0
movapd %xmm0, 0x70(%rsp)
movapd %xmm0, 0xb0(%rsp)
movapd 0x70(%rsp), %xmm1
movapd %xmm1, %xmm2
movq 0x1a0(%rsp), %rbx
testl %ebx, %ebx
je 0x81cc
movsd 0x40(%rsp), %xmm2
leal 0x1(%rbx), %esi
imull $0xcccccccd, %esi, %eax # imm = 0xCCCCCCCD
rorl %eax
cmpl $0x19999999, %eax       # imm = 0x19999999
ja 0x821a
leaq 0x6db3(%rip), %rdi      # 0xef98
xorl %eax, %eax
movl %edx, 0x30(%rsp)
movl %esi, 0x120(%rsp)
movsd %xmm2, 0x130(%rsp)
callq 0x5d62
movsd 0x130(%rsp), %xmm2
movl 0x120(%rsp), %esi
movapd 0x70(%rsp), %xmm1
movl 0x30(%rsp), %edx
movsd 0x20(%rsp), %xmm0
mulsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0x826b
cmpl %r14d, %edx
je 0x9e54
leaq 0x6d60(%rip), %rdi      # 0xef9a
xorl %eax, %eax
movl %esi, %ebx
movsd %xmm2, 0x130(%rsp)
callq 0x5d62
movsd 0x130(%rsp), %xmm2
movl %ebx, %esi
movsd 0x5dd1(%rip), %xmm0     # 0xe030
movapd %xmm0, 0xb0(%rsp)
movl %r14d, %edx
movl %esi, %eax
movapd %xmm2, %xmm1
cmpl $0x3e8, %esi            # imm = 0x3E8
jne 0x7b06
leaq 0x6d18(%rip), %rdi      # 0xef9c
movl $0x3e8, %esi            # imm = 0x3E8
xorl %eax, %eax
callq 0x5d62
jmp 0x9e6a
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x47ca
leaq 0xa9a1(%rip), %rax      # 0x12c58
movq %rax, (%rbx)
movsd 0x30(%r15), %xmm0
movsd %xmm0, 0x48(%rbx)
movl 0x48(%r15), %eax
movl %eax, 0x30(%rbx)
leaq 0xc0(%rsp), %rdi
movsd 0x6954(%rip), %xmm1     # 0xec30
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x3784
movq 0xaea2(%rip), %rsi      # 0x13198
leaq 0xc0(%rsp), %rdi
callq 0x3ea6
leaq 0xc0(%rsp), %rdi
movq (%rsp), %rsi
callq 0x37bc
jmp 0x8f2c
movq 0x18(%rsp), %rdi
movq %r15, %rsi
movsd 0x140(%rsp), %xmm1
callq 0xbd67
cmpl $0x12c, %eax            # imm = 0x12C
jl 0xa008
leaq 0x70dc(%rip), %rdi      # 0xf41d
jmp 0x8f6a
movq 0x18(%rsp), %rax
movl 0x4(%rax), %eax
movq %rax, 0x160(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x40(%rsp)
leaq (,%r13,4), %rdi
movq %r13, %rbx
shlq $0x4, %rbx
testl %r13d, %r13d
movq $-0x1, %rax
cmovsq %rax, %rdi
cmovsq %rax, %rbx
callq 0x2030
movq %rax, %rbp
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x100(%rsp)
movq %r13, %rdi
callq 0x2030
movq %rax, %r14
movsd 0x6a41(%rip), %xmm3     # 0xedf0
movsd 0x140(%rsp), %xmm0
movsd %xmm0, 0x1b0(%rsp)
movq $0x0, 0x1b8(%rsp)
movsd 0xe8(%rsp), %xmm0
movsd %xmm0, 0x1c0(%rsp)
testl %r13d, %r13d
jle 0x8459
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
xorl %ecx, %ecx
xorpd %xmm0, %xmm0
movsd (%rax,%rcx,8), %xmm1
ucomisd %xmm0, %xmm1
setbe %dl
negb %dl
orb $0x1, %dl
movb %dl, (%r14,%rcx)
incq %rcx
cmpq %rcx, %r13
jne 0x83f3
movq 0x100(%rsp), %rax
addq $0x8, %rax
xorl %ecx, %ecx
movsd 0x69c2(%rip), %xmm0     # 0xede8
movsbq (%r14,%rcx), %rdx
movsd 0x1b8(%rsp,%rdx,8), %xmm1
movapd %xmm1, %xmm2
mulsd %xmm0, %xmm2
minsd %xmm3, %xmm2
movsd %xmm2, -0x8(%rax)
subsd %xmm2, %xmm1
movsd %xmm1, (%rax)
incq %rcx
addq $0x10, %rax
cmpq %rcx, %r13
jne 0x8426
movq 0x160(%rsp), %rax
testl %eax, %eax
jle 0x8480
leaq (,%rax,8), %rdx
movq (%rsp), %rdi
xorl %esi, %esi
callq 0x20c0
movsd 0x6970(%rip), %xmm3     # 0xedf0
testl %r13d, %r13d
movq (%rsp), %r8
movq 0x18(%rsp), %rbx
jle 0x8533
movq 0x10(%rbx), %rax
xorl %ecx, %ecx
movq 0x100(%rsp), %r9
movq (%rax,%rcx,8), %rdx
movl (%rdx), %esi
cmpl $-0x1, %esi
je 0x8516
addq $0x10, %rdx
xorpd %xmm0, %xmm0
movq %rdx, %rdi
movsd -0x8(%rdi), %xmm1
mulsd %xmm1, %xmm1
addsd %xmm1, %xmm0
cmpl $-0x1, (%rdi)
leaq 0x10(%rdi), %rdi
jne 0x84b6
movq 0x40(%rsp), %rdi
movsd %xmm0, (%rdi,%rcx,8)
movsbl (%r14,%rcx), %edi
xorps %xmm0, %xmm0
cvtsi2sd %edi, %xmm0
movq %rcx, %rdi
shlq $0x4, %rdi
mulsd (%r9,%rdi), %xmm0
movslq %esi, %rsi
movsd -0x8(%rdx), %xmm1
mulsd %xmm0, %xmm1
addsd -0x8(%r8,%rsi,8), %xmm1
movsd %xmm1, -0x8(%r8,%rsi,8)
movl (%rdx), %esi
addq $0x10, %rdx
cmpl $-0x1, %esi
jne 0x84ef
jmp 0x8523
movq 0x40(%rsp), %rdx
movq $0x0, (%rdx,%rcx,8)
movl %ecx, (%rbp,%rcx,4)
incq %rcx
cmpq %r13, %rcx
jne 0x84a0
movq %r15, 0x98(%rsp)
movq %r12, 0x158(%rsp)
minsd 0xf0(%rsp), %xmm3
movq %r13, 0x120(%rsp)
movslq %r13d, %rax
imulq $0x66666667, %rax, %rcx # imm = 0x66666667
movq %rcx, %rax
shrq $0x3f, %rax
sarq $0x22, %rcx
addl %eax, %ecx
movq %rcx, 0xa8(%rsp)
movsd 0x66ad(%rip), %xmm0     # 0xec28
movsd %xmm0, 0x10(%rsp)
xorl %r13d, %r13d
movq %r14, 0x8(%rsp)
movsd %xmm3, 0x28(%rsp)
movl %r13d, %eax
movq %rax, 0x110(%rsp)
xorpd %xmm1, %xmm1
movl $0x0, 0x190(%rsp)
cmpl $0x0, 0x120(%rsp)
jle 0x8957
movq 0x120(%rsp), %r15
movl %r15d, %ebx
xorl %r14d, %r14d
callq 0x2090
cltd
idivl %ebx
addl %r14d, %edx
movslq %edx, %rax
movl (%rbp,%r14,4), %ecx
movl (%rbp,%rax,4), %edx
movl %edx, (%rbp,%r14,4)
movl %ecx, (%rbp,%rax,4)
incq %r14
decl %ebx
cmpq %r14, %r15
jne 0x85c5
xorpd %xmm1, %xmm1
xorl %r13d, %r13d
movl $0x0, 0x190(%rsp)
movq (%rsp), %rdi
movq 0x18(%rsp), %rbx
movq 0x8(%rsp), %rdx
movsd %xmm1, 0x68(%rsp)
movslq (%rbp,%r13,4), %rax
movsbq (%rdx,%rax), %rcx
movsd 0x1b8(%rsp,%rcx,8), %xmm0
movsd %xmm0, 0x70(%rsp)
movq 0x40(%rsp), %rdx
movsd (%rdx,%rax,8), %xmm4
movq 0x10(%rbx), %rdx
movq (%rdx,%rax,8), %r15
movl (%r15), %edx
pxor %xmm5, %xmm5
cmpl $-0x1, %edx
je 0x866d
leaq 0x10(%r15), %rsi
movslq %edx, %rdx
movsd -0x8(%rdi,%rdx,8), %xmm0
mulsd -0x8(%rsi), %xmm0
addsd %xmm0, %xmm5
movl (%rsi), %edx
addq $0x10, %rsi
cmpl $-0x1, %edx
jne 0x8650
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
movsd %xmm0, 0x130(%rsp)
mulsd %xmm0, %xmm5
leaq 0x1(,%rax,2), %r12
addq %rax, %rax
movapd %xmm4, %xmm0
movsd 0x6598(%rip), %xmm2     # 0xec30
mulsd %xmm2, %xmm0
movq 0x100(%rsp), %rsi
movsd 0x8(%rsi,%rax,8), %xmm1
cltq
subsd (%rsi,%rax,8), %xmm1
mulsd %xmm0, %xmm1
addsd %xmm5, %xmm1
xorl %ecx, %ecx
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
movl %eax, %edx
cmoval %r12d, %edx
cmoval %eax, %r12d
seta %cl
leaq 0x67d9(%rip), %rax      # 0xeeb0
movsd (%rax,%rcx,8), %xmm6
movslq %edx, %r14
movsd (%rsi,%r14,8), %xmm7
movsd 0x70(%rsp), %xmm3
movapd %xmm3, %xmm8
subsd %xmm7, %xmm8
movapd %xmm3, %xmm0
mulsd %xmm2, %xmm0
movapd %xmm7, %xmm1
mulsd 0x66ef(%rip), %xmm1     # 0xedf8
cmpltsd %xmm0, %xmm8
andpd %xmm8, %xmm1
andnpd %xmm7, %xmm8
orpd %xmm1, %xmm8
movapd %xmm8, %xmm0
movapd %xmm7, 0x80(%rsp)
subsd %xmm7, %xmm0
movsd %xmm6, 0x1a0(%rsp)
mulsd %xmm6, %xmm5
movsd %xmm4, 0xb0(%rsp)
mulsd %xmm4, %xmm0
movsd %xmm5, 0x118(%rsp)
addsd %xmm5, %xmm0
movapd %xmm0, 0x30(%rsp)
movapd %xmm3, %xmm1
subsd %xmm8, %xmm1
movapd %xmm8, 0x50(%rsp)
movapd %xmm8, %xmm0
divsd %xmm1, %xmm0
callq 0x20f0
addsd 0x30(%rsp), %xmm0
movapd %xmm0, %xmm2
andpd 0x64e3(%rip), %xmm2     # 0xec70
movsd 0x10(%rsp), %xmm1
ucomisd %xmm2, %xmm1
jbe 0x87b3
movq (%rsp), %rdi
movq 0x8(%rsp), %rdx
movsd 0x28(%rsp), %xmm3
movsd 0x68(%rsp), %xmm1
jmp 0x8942
movapd %xmm2, 0x140(%rsp)
xorl %eax, %eax
movsd 0xb0(%rsp), %xmm4
movl %eax, %ebx
movsd 0x70(%rsp), %xmm3
movapd %xmm3, %xmm1
movapd 0x50(%rsp), %xmm5
subsd %xmm5, %xmm1
movapd %xmm3, %xmm2
divsd %xmm1, %xmm2
divsd %xmm5, %xmm2
addsd %xmm4, %xmm2
divsd %xmm2, %xmm0
movapd %xmm5, %xmm1
subsd %xmm0, %xmm1
mulsd 0x65f7(%rip), %xmm5     # 0xedf8
movapd %xmm1, %xmm0
cmpnlesd 0x582a(%rip), %xmm0     # 0xe038
andpd %xmm0, %xmm1
andnpd %xmm5, %xmm0
orpd %xmm1, %xmm0
movapd %xmm0, 0x50(%rsp)
movapd %xmm0, %xmm1
subsd 0x80(%rsp), %xmm1
movapd %xmm1, 0x30(%rsp)
subsd %xmm0, %xmm3
movsd %xmm3, 0xa0(%rsp)
divsd %xmm3, %xmm0
callq 0x20f0
movapd 0x30(%rsp), %xmm3
movsd 0xb0(%rsp), %xmm4
leal 0x1(%rbx), %eax
cmpl $0x63, %ebx
ja 0x8891
movapd %xmm4, %xmm1
mulsd %xmm3, %xmm1
addsd 0x118(%rsp), %xmm1
addsd %xmm1, %xmm0
movapd %xmm0, %xmm1
andpd 0x63ef(%rip), %xmm1     # 0xec70
movsd 0x10(%rsp), %xmm2
ucomisd %xmm1, %xmm2
jbe 0x87c7
movq 0x100(%rsp), %rdx
movaps 0x50(%rsp), %xmm0
movsd %xmm0, (%rdx,%r14,8)
movslq %r12d, %rcx
movsd 0xa0(%rsp), %xmm0
movsd %xmm0, (%rdx,%rcx,8)
movl (%r15), %ecx
addl %eax, 0x190(%rsp)
cmpl $-0x1, %ecx
je 0x891f
movsd 0x1a0(%rsp), %xmm2
mulsd %xmm3, %xmm2
mulsd 0x130(%rsp), %xmm2
addq $0x10, %r15
movq (%rsp), %rdi
movq 0x18(%rsp), %rbx
movq 0x8(%rsp), %rdx
movsd 0x28(%rsp), %xmm3
movsd 0x68(%rsp), %xmm1
movslq %ecx, %rax
movsd -0x8(%r15), %xmm0
mulsd %xmm2, %xmm0
addsd -0x8(%rdi,%rax,8), %xmm0
movsd %xmm0, -0x8(%rdi,%rax,8)
movl (%r15), %ecx
addq $0x10, %r15
cmpl $-0x1, %ecx
jne 0x88f8
jmp 0x8939
movq (%rsp), %rdi
movq 0x18(%rsp), %rbx
movq 0x8(%rsp), %rdx
movsd 0x28(%rsp), %xmm3
movsd 0x68(%rsp), %xmm1
movapd 0x140(%rsp), %xmm2
maxsd %xmm2, %xmm1
incq %r13
cmpq 0x120(%rsp), %r13
jne 0x860f
movq 0x110(%rsp), %rax
leal 0x1(%rax), %r13d
imull $0xcccccccd, %r13d, %eax # imm = 0xCCCCCCCD
rorl %eax
cmpl $0x19999999, %eax       # imm = 0x19999999
ja 0x8993
leaq 0x661e(%rip), %rdi      # 0xef98
xorl %eax, %eax
movsd %xmm1, 0x68(%rsp)
callq 0x5d62
movsd 0x68(%rsp), %xmm1
movsd 0x28(%rsp), %xmm3
movsd 0xf0(%rsp), %xmm0
ucomisd %xmm1, %xmm0
ja 0x89db
movl 0x190(%rsp), %eax
cmpl 0xa8(%rsp), %eax
jg 0x89ce
movsd 0x10(%rsp), %xmm1
mulsd 0x6438(%rip), %xmm1     # 0xedf8
movapd %xmm3, %xmm0
maxsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
cmpl $0x12c, %r13d           # imm = 0x12C
jne 0x858f
leaq 0x65ba(%rip), %rdi      # 0xef9c
movl %r13d, %esi
xorl %eax, %eax
callq 0x5d62
movq 0x160(%rsp), %rsi
xorpd %xmm1, %xmm1
testl %esi, %esi
jle 0x8a1f
xorl %eax, %eax
movq (%rsp), %rcx
movsd (%rcx,%rax,8), %xmm0
mulsd %xmm0, %xmm0
addsd %xmm0, %xmm1
incq %rax
cmpq %rax, %rsi
jne 0x8a02
mulsd 0x6211(%rip), %xmm1     # 0xec30
cmpl $0x0, 0x120(%rsp)
jle 0x8f76
movq 0x100(%rsp), %r14
addq $0x8, %r14
xorl %r15d, %r15d
movq 0x120(%rsp), %r13
movq 0x8(%rsp), %r12
movsd %xmm1, 0x30(%rsp)
movsd -0x8(%r14), %xmm0
movsd %xmm0, 0x70(%rsp)
callq 0x20f0
movsd %xmm0, 0x50(%rsp)
movsd (%r14), %xmm0
movsd %xmm0, 0xb0(%rsp)
callq 0x20f0
mulsd 0xb0(%rsp), %xmm0
movsd 0x50(%rsp), %xmm1
mulsd 0x70(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x50(%rsp)
movsbq (%r12,%r15), %rax
movsd 0x1b8(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x70(%rsp)
callq 0x20f0
movsd 0x30(%rsp), %xmm1
mulsd 0x70(%rsp), %xmm0
movsd 0x50(%rsp), %xmm2
subsd %xmm0, %xmm2
addsd %xmm2, %xmm1
incq %r15
addq $0x10, %r14
cmpq %r15, %r13
jne 0x8a49
jmp 0x8f7b
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x47ca
leaq 0xc0(%rsp), %rdi
movsd 0x6125(%rip), %xmm1     # 0xec30
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x3784
movq 0xa673(%rip), %rsi      # 0x13198
leaq 0xc0(%rsp), %rdi
callq 0x3ea6
leaq 0xc0(%rsp), %rdi
movq (%rsp), %rsi
callq 0x37bc
jmp 0x8f2c
movq 0x18(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
movsd 0x140(%rsp), %xmm1
callq 0xbd67
cmpl $0x12c, %eax            # imm = 0x12C
jl 0xa008
leaq 0x6866(%rip), %rdi      # 0xf3d9
xorl %eax, %eax
callq 0x5d62
movsd 0x20(%rsp), %xmm0
mulsd 0x6270(%rip), %xmm0     # 0xedf8
movsd %xmm0, 0x20(%rsp)
movq %rbx, %rsi
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x47ca
leaq 0xc0(%rsp), %rdi
movsd 0x6079(%rip), %xmm1     # 0xec30
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x3784
movq 0xa5c7(%rip), %rsi      # 0x13198
leaq 0xc0(%rsp), %rdi
callq 0x3ea6
leaq 0xc0(%rsp), %rdi
movq (%rsp), %rsi
callq 0x37bc
jmp 0x8f2c
movq %r12, 0x158(%rsp)
xorl %r14d, %r14d
leaq 0x188(%rsp), %rsi
movq %r14, (%rsi)
leaq 0x1b0(%rsp), %rbx
movq 0x18(%rsp), %rdi
movq %rbx, %rdx
callq 0xc49e
movl 0x48(%r15), %eax
movl %eax, 0xa0(%rsp)
movslq (%rbx), %rbp
movslq 0x4(%rbx), %r15
leaq (,%r15,4), %rdi
testq %r15, %r15
movq $-0x1, %r13
cmovsq %r13, %rdi
leaq (,%r15,8), %rbx
cmovsq %r13, %rbx
callq 0x2030
movq %rax, %r12
movq %rbp, %rdi
callq 0x2030
movq %rax, 0xa8(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x110(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x80(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x70(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x170(%rsp)
leaq (,%rbp,8), %rbx
testq %rbp, %rbp
cmovsq %r13, %rbx
movq %rbx, %rdi
callq 0x2030
movq %rax, %r13
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x98(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x168(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, 0x18(%rsp)
movq %rbx, %rdi
callq 0x2030
movq %rax, %rbx
movl %ebp, %r11d
movl %r15d, %ebp
movsd 0x140(%rsp), %xmm0
movsd %xmm0, 0xc0(%rsp)
movq %r14, 0xc8(%rsp)
movsd 0xe8(%rsp), %xmm0
movsd %xmm0, 0xd0(%rsp)
movq %r15, 0x8(%rsp)
testq %r15, %r15
movq %r11, 0x10(%rsp)
jle 0x8d53
leaq (,%rbp,8), %rdx
movq (%rsp), %rdi
xorl %esi, %esi
callq 0x20c0
movq 0x10(%rsp), %r11
movq %rbp, 0x40(%rsp)
testl %r11d, %r11d
movq 0x98(%rsp), %r10
movq 0xa8(%rsp), %r14
jle 0x8da0
movq 0x1b8(%rsp), %rax
xorl %ecx, %ecx
xorpd %xmm0, %xmm0
movsd (%rax,%rcx,8), %xmm1
ucomisd %xmm0, %xmm1
setbe %dl
negb %dl
orb $0x1, %dl
movb %dl, (%r14,%rcx)
movq $0x0, (%r10,%rcx,8)
incq %rcx
cmpq %rcx, %r11
jne 0x8d7b
cmpl $0x0, 0x8(%rsp)
movq (%rsp), %rdi
movq 0x70(%rsp), %r8
movq 0x170(%rsp), %r9
movq 0x18(%rsp), %r15
xorpd %xmm0, %xmm0
jle 0x9074
movsd %xmm0, 0x28(%rsp)
movq 0x1c0(%rsp), %rax
xorl %ecx, %ecx
movapd 0x5e93(%rip), %xmm0     # 0xec70
movsd (%rdi,%rcx,8), %xmm1
movsd %xmm1, (%r8,%rcx,8)
movl %ecx, (%r12,%rcx,4)
movq $0x0, (%r9,%rcx,8)
movq (%rax,%rcx,8), %rdx
movl (%rdx), %esi
cmpl $-0x1, %esi
je 0x8e4b
addq $0x10, %rdx
xorpd %xmm2, %xmm2
movslq %esi, %rsi
movsd -0x8(%rdx), %xmm3
movapd %xmm1, %xmm4
mulsd %xmm3, %xmm4
addsd -0x8(%r10,%rsi,8), %xmm4
movsd %xmm4, -0x8(%r10,%rsi,8)
cmpb $-0x1, -0x1(%r14,%rsi)
jne 0x8e40
mulsd 0x140(%rsp), %xmm3
addsd %xmm3, %xmm2
movsd %xmm2, (%r9,%rcx,8)
movl (%rdx), %esi
addq $0x10, %rdx
cmpl $-0x1, %esi
jne 0x8e07
andpd %xmm0, %xmm1
movsd 0x28(%rsp), %xmm2
addsd %xmm1, %xmm2
movsd %xmm2, 0x28(%rsp)
incq %rcx
cmpq 0x40(%rsp), %rcx
jne 0x8ddd
jmp 0x907a
movq 0x18(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xc694
cmpl $0x12c, %eax            # imm = 0x12C
jl 0xa008
leaq 0x667a(%rip), %rdi      # 0xf50e
xorl %eax, %eax
callq 0x5d62
movsd 0x20(%rsp), %xmm0
mulsd 0x5f3f(%rip), %xmm0     # 0xede8
movsd %xmm0, 0x20(%rsp)
movq %rbx, %rsi
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x47ca
leaq 0x9d89(%rip), %rax      # 0x12c58
movq %rax, (%rbx)
movsd 0x30(%r15), %xmm0
movsd %xmm0, 0x48(%rbx)
movl 0x48(%r15), %eax
movl %eax, 0x30(%rbx)
leaq 0xc0(%rsp), %rdi
movsd 0x5d3c(%rip), %xmm1     # 0xec30
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x3784
movq 0xa28a(%rip), %rsi      # 0x13198
leaq 0xc0(%rsp), %rdi
callq 0x3ea6
leaq 0xc0(%rsp), %rdi
movq (%rsp), %rsi
callq 0x37bc
leaq 0xc0(%rsp), %rdi
callq 0x37ba
leaq 0x1b0(%rsp), %rdi
callq 0xbd42
jmp 0xa008
movq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0xc694
cmpl $0x12c, %eax            # imm = 0x12C
jl 0xa008
leaq 0x654d(%rip), %rdi      # 0xf4b7
xorl %eax, %eax
callq 0x5d62
jmp 0xa008
movq 0x8(%rsp), %r12
leaq 0x606b(%rip), %rdi      # 0xefed
movapd %xmm1, %xmm0
movb $0x1, %al
callq 0x5d62
movq 0x40(%rsp), %rdi
callq 0x21e0
movq 0x100(%rsp), %rdi
callq 0x21e0
movq %r12, %rdi
callq 0x21e0
movq %rbp, %rdi
callq 0x21e0
cmpl $0x12b, 0x110(%rsp) # imm = 0x12B
movq 0x158(%rsp), %r12
jb 0xa008
leaq 0x649f(%rip), %rdi      # 0xf473
xorl %eax, %eax
callq 0x5d62
movsd 0x20(%rsp), %xmm0
mulsd 0x5e0f(%rip), %xmm0     # 0xedf8
movsd %xmm0, 0x20(%rsp)
movq %rbx, %rsi
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq 0x98(%rsp), %rdx
movq %r12, %rcx
callq 0x4352
leaq 0xc0(%rsp), %rdi
movsd 0x5c13(%rip), %xmm1     # 0xec30
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x3784
movq 0xa161(%rip), %rsi      # 0x13198
leaq 0xc0(%rsp), %rdi
callq 0x3ea6
leaq 0xc0(%rsp), %rdi
movq (%rsp), %rsi
callq 0x37bc
leaq 0xc0(%rsp), %rdi
callq 0x37ba
leaq 0x1b0(%rsp), %rdi
callq 0x43a8
jmp 0xa008
movsd %xmm0, 0x28(%rsp)
cmpl $0x0, 0xa0(%rsp)
jne 0x90a7
movq 0x8(%rsp), %rax
movsd -0x8(%rdi,%rax,8), %xmm0
andpd 0x5bd9(%rip), %xmm0     # 0xec70
movsd 0x28(%rsp), %xmm1
subsd %xmm0, %xmm1
movsd %xmm1, 0x28(%rsp)
testl %r11d, %r11d
movq 0x98(%rsp), %rbp
jle 0x911d
xorl %r14d, %r14d
movsd (%rbp,%r14,8), %xmm0
callq 0x22a0
movq 0xa8(%rsp), %rdx
movq 0x10(%rsp), %r11
movsd %xmm0, (%rbp,%r14,8)
movapd %xmm0, %xmm1
movsd 0x5b5d(%rip), %xmm2     # 0xec40
addsd %xmm2, %xmm1
divsd %xmm1, %xmm2
movsbq (%rdx,%r14), %rax
movsd 0xc8(%rsp,%rax,8), %xmm1
mulsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm1, %xmm2
movsd %xmm2, (%r15,%r14,8)
movsd %xmm0, (%rbx,%r14,8)
incq %r14
cmpq %r14, %r11
jne 0x90b7
movq 0x8(%rsp), %rax
decl %eax
movl %eax, 0x118(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %r11d, %xmm0
movsd %xmm0, 0x160(%rsp)
leaq (,%r11,8), %rax
movq %rax, 0x178(%rsp)
movq 0x40(%rsp), %rax
leaq (,%rax,8), %rax
movq %rax, 0x210(%rsp)
movsd 0x4ec7(%rip), %xmm1     # 0xe030
movsd 0x4ecf(%rip), %xmm7     # 0xe040
movsd 0x5ac6(%rip), %xmm8     # 0xec40
movq 0x1c0(%rsp), %rax
movq %rax, 0xb0(%rsp)
movapd 0x5aed(%rip), %xmm10    # 0xec80
movapd 0x5ad4(%rip), %xmm9     # 0xec70
xorpd %xmm13, %xmm13
xorl %eax, %eax
movsd %xmm8, 0x180(%rsp)
movapd %xmm7, %xmm0
movq 0x80(%rsp), %r14
movq %r12, 0xf0(%rsp)
movl %eax, 0x4c(%rsp)
xorpd %xmm2, %xmm2
pxor %xmm3, %xmm3
movq %xmm3, 0x100(%rsp)
movq 0x8(%rsp), %rax
movl %eax, 0x30(%rsp)
testl %eax, %eax
movq (%rsp), %r11
movq 0x170(%rsp), %r9
movq 0x110(%rsp), %r10
jle 0x9366
movapd %xmm1, %xmm3
movsd 0x160(%rsp), %xmm2
divsd %xmm2, %xmm3
xorpd %xmm10, %xmm1
divsd %xmm2, %xmm1
xorpd %xmm2, %xmm2
movsd %xmm2, 0x100(%rsp)
xorl %eax, %eax
movq 0x8(%rsp), %rcx
movl %ecx, 0x30(%rsp)
movslq %eax, %rcx
movl (%r12,%rcx,4), %edx
movslq %edx, %rsi
movabsq $0x3d719799812dea11, %rdi # imm = 0x3D719799812DEA11
movq %rdi, (%r10,%rsi,8)
movq 0xb0(%rsp), %rdi
movq (%rdi,%rsi,8), %rdi
movl (%rdi), %r8d
pxor %xmm4, %xmm4
cmpl $-0x1, %r8d
je 0x92ab
addq $0x10, %rdi
movsd 0x59e6(%rip), %xmm4     # 0xec50
movsd -0x8(%rdi), %xmm5
movapd %xmm5, %xmm6
mulsd %xmm5, %xmm6
movslq %r8d, %r8
unpcklpd %xmm5, %xmm6            # xmm6 = xmm6[0],xmm5[0]
movsd -0x8(%rbx,%r8,8), %xmm5
movhpd -0x8(%r15,%r8,8), %xmm5 # xmm5 = xmm5[0],mem[0]
mulpd %xmm6, %xmm5
addpd %xmm5, %xmm4
movlpd %xmm4, (%r10,%rsi,8)
movl (%rdi), %r8d
addq $0x10, %rdi
cmpl $-0x1, %r8d
jne 0x926a
unpckhpd %xmm4, %xmm4            # xmm4 = xmm4[1,1]
movsd (%r9,%rsi,8), %xmm5
subsd %xmm4, %xmm5
movsd %xmm5, (%r14,%rsi,8)
cmpl $0x0, 0xa0(%rsp)
jne 0x92ff
cmpl 0x118(%rsp), %edx
jne 0x92ff
andpd %xmm9, %xmm5
movapd %xmm5, %xmm4
movsd 0x100(%rsp), %xmm5
maxsd %xmm4, %xmm5
movsd %xmm5, 0x100(%rsp)
addsd %xmm4, %xmm2
incl %eax
cmpl 0x30(%rsp), %eax
jl 0x922d
jmp 0x9366
movapd %xmm5, %xmm4
addsd %xmm8, %xmm4
addsd %xmm7, %xmm5
movsd (%r11,%rsi,8), %xmm6
ucomisd %xmm13, %xmm6
jne 0x9329
jp 0x9329
ucomisd %xmm4, %xmm13
jbe 0x9332
xorpd %xmm10, %xmm4
jmp 0x92d7
jbe 0x92ce
andpd %xmm9, %xmm4
jmp 0x92d7
ucomisd %xmm13, %xmm5
ja 0x92d3
ucomisd %xmm3, %xmm4
xorpd %xmm4, %xmm4
jbe 0x92d7
ucomisd %xmm5, %xmm1
jbe 0x92d7
movl 0x30(%rsp), %edi
movslq %edi, %rsi
decl %edi
movl %edi, 0x30(%rsp)
movl -0x4(%r12,%rsi,4), %edi
movl %edi, (%r12,%rcx,4)
movl %edx, -0x4(%r12,%rsi,4)
jmp 0x92f3
movapd %xmm2, %xmm1
cmpl $0x0, 0x4c(%rsp)
je 0x9375
movapd %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
mulsd %xmm1, %xmm0
ucomisd %xmm2, %xmm0
movq 0x40(%rsp), %r14
jae 0x9c3b
cmpl $0x0, 0x10(%rsp)
movsd %xmm1, 0x208(%rsp)
jle 0x93cb
movq %r13, %rdi
xorl %esi, %esi
movq 0x178(%rsp), %rdx
callq 0x20c0
movsd 0x208(%rsp), %xmm1
xorpd %xmm13, %xmm13
movapd 0x58a9(%rip), %xmm9     # 0xec70
movq (%rsp), %r11
movsd 0x180(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x130(%rsp)
xorl %eax, %eax
movl 0x30(%rsp), %r14d
movsd 0x4c40(%rip), %xmm2     # 0xe030
movq 0x70(%rsp), %r9
movl 0xa0(%rsp), %r15d
testl %r14d, %r14d
movq %rax, 0x68(%rsp)
jle 0x968d
movapd %xmm2, 0x50(%rsp)
movl %r14d, %ebp
xorl %r15d, %r15d
callq 0x2090
cltd
idivl %ebp
movslq %edx, %rax
addq %r15, %rax
movl (%r12,%rax,4), %ecx
movl (%r12,%r15,4), %edx
movl %edx, (%r12,%rax,4)
movl %ecx, (%r12,%r15,4)
incq %r15
decq %rbp
jne 0x9417
movapd 0x50(%rsp), %xmm2
movapd %xmm2, %xmm0
movsd 0x160(%rsp), %xmm1
divsd %xmm1, %xmm0
movapd 0x5823(%rip), %xmm12    # 0xec80
xorpd %xmm12, %xmm2
divsd %xmm1, %xmm2
movapd %xmm2, 0x50(%rsp)
xorpd %xmm2, %xmm2
xorl %eax, %eax
xorpd %xmm1, %xmm1
movq (%rsp), %r11
movq 0x110(%rsp), %r10
movq 0x70(%rsp), %r9
movl 0xa0(%rsp), %r15d
movapd 0x57d8(%rip), %xmm9     # 0xec70
movsd 0x4b9f(%rip), %xmm10    # 0xe040
movsd 0x5796(%rip), %xmm11    # 0xec40
xorpd %xmm13, %xmm13
movsd 0x5798(%rip), %xmm14    # 0xec50
movsd 0x593f(%rip), %xmm15    # 0xee00
movslq %eax, %rdi
movl (%r12,%rdi,4), %r8d
movslq %r8d, %rsi
movq %r10, %rbp
movsd (%r10,%rsi,8), %xmm5
movq 0xb0(%rsp), %rcx
movq (%rcx,%rsi,8), %rcx
movsd (%r9,%rsi,8), %xmm4
movapd %xmm4, %xmm3
subsd (%r11,%rsi,8), %xmm3
mulsd %xmm14, %xmm3
movq 0x80(%rsp), %rdx
addsd (%rdx,%rsi,8), %xmm3
movl (%rcx), %edx
cmpl $-0x1, %edx
je 0x9538
leaq 0x10(%rcx), %r9
movl %edx, %r10d
movsd -0x8(%r9), %xmm6
movslq %r10d, %r10
mulsd -0x8(%rbx,%r10,8), %xmm6
mulsd -0x8(%r13,%r10,8), %xmm6
addsd %xmm6, %xmm3
movl (%r9), %r10d
addq $0x10, %r9
cmpl $-0x1, %r10d
jne 0x9510
testl %r15d, %r15d
jne 0x9566
cmpl 0x118(%rsp), %r8d
jne 0x9566
movapd %xmm3, %xmm6
andpd %xmm9, %xmm6
xorpd %xmm12, %xmm3
divsd %xmm5, %xmm3
movq 0x70(%rsp), %r9
movq %rbp, %r10
jmp 0x9623
movapd %xmm3, %xmm7
addsd %xmm11, %xmm7
addsd %xmm10, %xmm3
ucomisd %xmm13, %xmm4
movq 0x70(%rsp), %r9
movq %rbp, %r10
jne 0x9597
jp 0x9597
ucomisd %xmm7, %xmm13
jbe 0x959f
movapd %xmm7, %xmm6
xorpd %xmm12, %xmm6
jmp 0x95e8
jbe 0x95df
movapd %xmm7, %xmm6
jmp 0x95e3
ucomisd %xmm13, %xmm3
movapd %xmm3, %xmm6
ja 0x95e8
ucomisd %xmm0, %xmm7
xorpd %xmm6, %xmm6
jbe 0x95e8
movapd 0x50(%rsp), %xmm8
ucomisd %xmm3, %xmm8
jbe 0x95e8
movslq %r14d, %rax
decl %r14d
movl -0x4(%r12,%rax,4), %ecx
movl %ecx, (%r12,%rdi,4)
movl %r8d, -0x4(%r12,%rax,4)
decl %edi
movl %edi, %eax
jmp 0x9680
movapd %xmm3, %xmm6
andpd %xmm9, %xmm6
movapd %xmm5, %xmm8
mulsd %xmm4, %xmm8
ucomisd %xmm7, %xmm8
jbe 0x9608
xorpd %xmm12, %xmm7
divsd %xmm5, %xmm7
movapd %xmm7, %xmm3
jmp 0x9623
ucomisd %xmm8, %xmm3
jbe 0x961a
xorpd %xmm12, %xmm3
divsd %xmm5, %xmm3
jmp 0x9623
movapd %xmm4, %xmm3
xorpd %xmm12, %xmm3
maxsd %xmm6, %xmm2
addsd %xmm6, %xmm1
movapd %xmm3, %xmm5
andpd %xmm9, %xmm5
ucomisd %xmm5, %xmm14
ja 0x9680
maxsd %xmm15, %xmm3
minsd 0x5788(%rip), %xmm3     # 0xedd0
addsd %xmm3, %xmm4
movsd %xmm4, (%r9,%rsi,8)
cmpl $-0x1, %edx
je 0x9680
addq $0x10, %rcx
movslq %edx, %rdx
movsd -0x8(%rcx), %xmm4
mulsd %xmm3, %xmm4
addsd -0x8(%r13,%rdx,8), %xmm4
movsd %xmm4, -0x8(%r13,%rdx,8)
movl (%rcx), %edx
addq $0x10, %rcx
cmpl $-0x1, %edx
jne 0x965b
incl %eax
cmpl %r14d, %eax
jl 0x94c1
jmp 0x9695
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
movq 0x68(%rsp), %rax
leal 0x1(%rax), %edx
movsd 0x130(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x96c0
movsd 0x497c(%rip), %xmm2     # 0xe030
movl 0x30(%rsp), %ecx
cmpl %ecx, %r14d
movl %ecx, %r14d
je 0x96d0
movl %edx, %eax
cmpl $0x3e8, %edx            # imm = 0x3E8
jne 0x93fd
jmp 0x96d7
cmpl $0x3e7, %eax            # imm = 0x3E7
jne 0x9706
leaq 0x5eb0(%rip), %rdi      # 0xf58e
xorl %eax, %eax
callq 0x5d62
xorpd %xmm13, %xmm13
movapd 0x557d(%rip), %xmm9     # 0xec70
movq 0x70(%rsp), %r9
movq (%rsp), %r11
movl $0x3e7, %eax            # imm = 0x3E7
movl $0x3e8, %edx            # imm = 0x3E8
movl %edx, 0xfc(%rsp)
movq %rax, 0x68(%rsp)
cmpl $0x0, 0x8(%rsp)
jle 0x977e
xorpd %xmm0, %xmm0
xorl %eax, %eax
xorpd %xmm2, %xmm2
movq 0x80(%rsp), %rcx
movq 0xa8(%rsp), %rsi
movq 0x40(%rsp), %rdx
movsd (%r9,%rax,8), %xmm5
movapd %xmm5, %xmm1
subsd (%r11,%rax,8), %xmm1
mulsd (%rcx,%rax,8), %xmm1
addsd %xmm1, %xmm2
movapd %xmm5, %xmm1
andpd %xmm9, %xmm1
addsd %xmm0, %xmm1
cmpneqsd %xmm13, %xmm5
andpd %xmm5, %xmm1
andnpd %xmm0, %xmm5
orpd %xmm1, %xmm5
incq %rax
movapd %xmm5, %xmm0
cmpq %rax, %rdx
jne 0x9738
jmp 0x978e
xorpd %xmm2, %xmm2
xorpd %xmm5, %xmm5
movq 0xa8(%rsp), %rsi
testl %r15d, %r15d
jne 0x97a8
movq 0x8(%rsp), %rax
movsd -0x8(%r9,%rax,8), %xmm0
andpd %xmm9, %xmm0
subsd %xmm0, %xmm5
movq 0x10(%rsp), %rdi
xorpd %xmm1, %xmm1
testl %edi, %edi
jle 0x97d9
xorl %eax, %eax
cmpb $-0x1, (%rsi,%rax)
jne 0x97d1
movsd (%r13,%rax,8), %xmm0
mulsd 0x140(%rsp), %xmm0
addsd %xmm0, %xmm1
incq %rax
cmpq %rax, %rdi
jne 0x97b7
movapd %xmm5, %xmm0
subsd 0x28(%rsp), %xmm0
addsd %xmm0, %xmm2
xorl %eax, %eax
movl %eax, 0x130(%rsp)
movapd %xmm5, 0x190(%rsp)
movapd %xmm5, %xmm0
subsd 0x28(%rsp), %xmm0
movsd %xmm1, 0x120(%rsp)
addsd %xmm1, %xmm0
movapd %xmm2, 0x1a0(%rsp)
mulsd 0x55e7(%rip), %xmm2     # 0xee08
addsd %xmm0, %xmm2
testl %edi, %edi
jle 0x98b5
xorl %r14d, %r14d
movq 0x98(%rsp), %rbp
movq 0x168(%rsp), %r15
movq 0xa8(%rsp), %r12
movsd %xmm2, 0x50(%rsp)
movsd (%r13,%r14,8), %xmm0
callq 0x22a0
movsd (%rbp,%r14,8), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, (%r15,%r14,8)
movsbq (%r12,%r14), %rax
movsd 0xc8(%rsp,%rax,8), %xmm2
movsd %xmm2, 0x30(%rsp)
addsd %xmm1, %xmm0
addsd 0x53b5(%rip), %xmm1     # 0xec40
divsd %xmm0, %xmm1
movapd %xmm1, %xmm0
callq 0x20f0
movsd 0x50(%rsp), %xmm2
movq 0x10(%rsp), %rdi
mulsd 0x30(%rsp), %xmm0
addsd %xmm0, %xmm2
incq %r14
cmpq %r14, %rdi
jne 0x9848
xorpd %xmm4, %xmm4
ucomisd %xmm2, %xmm4
jae 0x99d2
cmpl $0x0, 0x8(%rsp)
movq (%rsp), %rcx
movq 0x70(%rsp), %rdx
movq 0x18(%rsp), %r15
movq 0xf0(%rsp), %r12
jle 0x9939
xorpd %xmm0, %xmm0
xorl %eax, %eax
movq 0x40(%rsp), %r8
movapd 0x537d(%rip), %xmm2     # 0xec70
movsd 0x5335(%rip), %xmm3     # 0xec30
movsd (%rcx,%rax,8), %xmm5
addsd (%rdx,%rax,8), %xmm5
mulsd %xmm3, %xmm5
movsd %xmm5, (%rdx,%rax,8)
movapd %xmm5, %xmm1
andpd %xmm2, %xmm1
addsd %xmm0, %xmm1
cmpneqsd %xmm4, %xmm5
andpd %xmm5, %xmm1
andnpd %xmm0, %xmm5
orpd %xmm1, %xmm5
incq %rax
movapd %xmm5, %xmm0
cmpq %rax, %r8
jne 0x98fb
jmp 0x994d
xorpd %xmm5, %xmm5
movapd 0x532b(%rip), %xmm2     # 0xec70
movsd 0x52e3(%rip), %xmm3     # 0xec30
cmpl $0x0, 0xa0(%rsp)
jne 0x996a
movq 0x8(%rsp), %rax
movsd -0x8(%rdx,%rax,8), %xmm0
andpd %xmm2, %xmm0
subsd %xmm0, %xmm5
movapd 0x1a0(%rsp), %xmm2
movsd 0x120(%rsp), %xmm1
testl %edi, %edi
jle 0x999c
xorl %eax, %eax
movsd (%r13,%rax,8), %xmm0
mulsd %xmm3, %xmm0
movsd %xmm0, (%r13,%rax,8)
incq %rax
cmpq %rax, %rdi
jne 0x9982
mulsd %xmm3, %xmm2
mulsd %xmm3, %xmm1
movl 0x130(%rsp), %eax
incl %eax
cmpl $0x14, %eax
jne 0x97e9
movsd 0x28(%rsp), %xmm0
movapd %xmm0, 0x190(%rsp)
movl 0x4c(%rsp), %esi
xorpd %xmm4, %xmm4
jmp 0x9aaa
cmpl $0x0, 0x8(%rsp)
movq 0x80(%rsp), %r14
movq 0x18(%rsp), %r15
movq 0xf0(%rsp), %r12
jle 0x9a0d
movq (%rsp), %rdi
movq 0x70(%rsp), %rsi
movq 0x210(%rsp), %rdx
callq 0x2100
xorpd %xmm4, %xmm4
movq 0x10(%rsp), %rdi
testl %edi, %edi
movq 0x168(%rsp), %rsi
movq 0xa8(%rsp), %rbp
jle 0x9a98
movq 0x98(%rsp), %rdi
movq 0x178(%rsp), %rdx
callq 0x2100
xorpd %xmm4, %xmm4
movsd 0x51fe(%rip), %xmm3     # 0xec40
movq 0x10(%rsp), %rdi
movq 0x168(%rsp), %rdx
xorl %eax, %eax
movsd (%rdx,%rax,8), %xmm0
movapd %xmm0, %xmm1
addsd %xmm3, %xmm1
movapd %xmm3, %xmm2
divsd %xmm1, %xmm2
movsbq (%rbp,%rax), %rcx
movsd 0xc8(%rsp,%rcx,8), %xmm1
mulsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd %xmm1, %xmm2
movsd %xmm2, (%r15,%rax,8)
movsd %xmm0, (%rbx,%rax,8)
incq %rax
cmpq %rax, %rdi
jne 0x9a51
cmpl $0x14, 0x130(%rsp)
movl 0x4c(%rsp), %esi
jb 0x9b78
testl %edi, %edi
movq 0x98(%rsp), %r14
jle 0x9ad5
movq %r14, %rdi
xorl %esi, %esi
movq 0x178(%rsp), %rdx
callq 0x20c0
xorpd %xmm4, %xmm4
movl 0x4c(%rsp), %esi
movq 0x10(%rsp), %rdi
cmpl $0x0, 0x8(%rsp)
movq (%rsp), %r9
movq 0xb0(%rsp), %r8
jle 0x9b36
xorl %eax, %eax
movsd (%r9,%rax,8), %xmm0
ucomisd %xmm4, %xmm0
jne 0x9af8
jnp 0x9b2c
movq (%r8,%rax,8), %rcx
movl (%rcx), %edx
cmpl $-0x1, %edx
je 0x9b2c
addq $0x10, %rcx
movslq %edx, %rdx
movsd -0x8(%rcx), %xmm1
mulsd %xmm0, %xmm1
addsd -0x8(%r14,%rdx,8), %xmm1
movsd %xmm1, -0x8(%r14,%rdx,8)
movl (%rcx), %edx
addq $0x10, %rcx
cmpl $-0x1, %edx
jne 0x9b07
incq %rax
cmpq 0x40(%rsp), %rax
jne 0x9aea
testl %edi, %edi
jle 0x9b70
xorl %r14d, %r14d
movq 0x98(%rsp), %rbp
movsd (%rbp,%r14,8), %xmm0
callq 0x22a0
movsd %xmm0, (%rbp,%r14,8)
incq %r14
cmpq %r14, 0x10(%rsp)
jne 0x9b45
movq 0x80(%rsp), %r14
movl 0x4c(%rsp), %esi
jmp 0x9b78
movq 0x80(%rsp), %r14
movsd 0x180(%rsp), %xmm0
movapd %xmm0, %xmm1
mulsd 0x5283(%rip), %xmm1     # 0xee10
cmpl $0x0, 0x68(%rsp)
movl $0x1, %eax
movl 0xfc(%rsp), %ecx
cmovel %eax, %ecx
movl %ecx, 0xfc(%rsp)
je 0x9bae
movapd %xmm0, %xmm1
movsd %xmm1, 0x50(%rsp)
incl %esi
leaq 0x5a03(%rip), %rdi      # 0xf5c0
movl 0xfc(%rsp), %edx
xorl %eax, %eax
movl %esi, %ebp
callq 0x5d62
movl %ebp, %eax
movsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x180(%rsp)
movaps 0x190(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x208(%rsp), %xmm0
movsd 0x100(%rsp), %xmm1
cmpl $0x64, %ebp
movapd 0x5066(%rip), %xmm9     # 0xec70
movsd 0x442e(%rip), %xmm7     # 0xe040
movsd 0x5025(%rip), %xmm8     # 0xec40
movapd 0x505c(%rip), %xmm10    # 0xec80
xorpd %xmm13, %xmm13
jne 0x91c1
movl $0x64, %ebp
movq 0x40(%rsp), %r14
jmp 0x9c3f
movl 0x4c(%rsp), %ebp
leaq 0x5993(%rip), %rdi      # 0xf5d9
xorl %eax, %eax
callq 0x5d62
leaq 0x5349(%rip), %rdi      # 0xef9d
movl %ebp, %esi
xorl %eax, %eax
callq 0x5d62
cmpl $0x64, %ebp
jb 0x9c70
leaq 0x5358(%rip), %rdi      # 0xefc1
xorl %eax, %eax
callq 0x5d62
cmpl $0x0, 0x8(%rsp)
movapd 0x4ff3(%rip), %xmm3     # 0xec70
jle 0x9ccb
xorpd %xmm0, %xmm0
xorl %eax, %eax
xorl %ebp, %ebp
xorpd %xmm1, %xmm1
movq (%rsp), %rdx
movq 0x10(%rsp), %rsi
movsd (%rdx,%rax,8), %xmm2
ucomisd %xmm2, %xmm0
movapd %xmm2, %xmm4
andpd %xmm3, %xmm4
addsd %xmm1, %xmm4
jne 0x9cb1
jp 0x9cb1
movapd %xmm1, %xmm4
cmpneqsd %xmm0, %xmm2
movq %xmm2, %rcx
subl %ecx, %ebp
incq %rax
movapd %xmm4, %xmm1
cmpq %rax, %r14
jne 0x9c94
jmp 0x9cda
pxor %xmm4, %xmm4
movq (%rsp), %rdx
movq 0x10(%rsp), %rsi
xorl %ebp, %ebp
cmpl $0x0, 0xa0(%rsp)
jne 0x9cfb
movq 0x8(%rsp), %rax
movsd -0x8(%rdx,%rax,8), %xmm0
andpd 0x4f79(%rip), %xmm0     # 0xec70
subsd %xmm0, %xmm4
testl %esi, %esi
jle 0x9d96
xorl %r14d, %r14d
movq 0xa8(%rsp), %rax
movsbq (%rax,%r14), %rax
cmpq $0x1, %rax
movsd 0xe8(%rsp), %xmm1
movapd %xmm4, 0x50(%rsp)
jne 0x9d4a
movsd 0x4f10(%rip), %xmm2     # 0xec40
movapd %xmm2, %xmm0
movq 0x98(%rsp), %rax
divsd (%rax,%r14,8), %xmm0
movsd %xmm1, 0x30(%rsp)
jmp 0x9d6f
movsd 0xc8(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x30(%rsp)
movq 0x98(%rsp), %rax
movsd (%rax,%r14,8), %xmm0
movsd 0x4ed1(%rip), %xmm2     # 0xec40
addsd %xmm2, %xmm0
callq 0x20f0
mulsd 0x30(%rsp), %xmm0
movapd 0x50(%rsp), %xmm4
addsd %xmm0, %xmm4
incq %r14
cmpq %r14, 0x10(%rsp)
jne 0x9d06
leaq 0x5250(%rip), %rdi      # 0xefed
movapd %xmm4, %xmm0
movb $0x1, %al
callq 0x5d62
leaq 0x57c2(%rip), %rdi      # 0xf571
movl %ebp, %esi
movq 0x8(%rsp), %rdx
xorl %eax, %eax
callq 0x5d62
movq %r12, %rdi
callq 0x21e0
movq 0xa8(%rsp), %rdi
callq 0x21e0
movq 0x110(%rsp), %rdi
callq 0x21e0
movq 0x80(%rsp), %rdi
callq 0x21e0
movq 0x70(%rsp), %rdi
callq 0x21e0
movq 0x170(%rsp), %rdi
callq 0x21e0
movq %r13, %rdi
callq 0x21e0
movq 0x98(%rsp), %rdi
callq 0x21e0
movq 0x168(%rsp), %rdi
callq 0x21e0
movq %r15, %rdi
callq 0x21e0
movq %rbx, %rdi
callq 0x21e0
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x9e47
callq 0x21e0
movq 0xb0(%rsp), %rdi
jmp 0x9fe4
leaq 0x5141(%rip), %rdi      # 0xef9c
xorl %eax, %eax
callq 0x5d62
cmpl $0x3e7, %ebx            # imm = 0x3E7
jne 0x9e78
leaq 0x514f(%rip), %rdi      # 0xefc0
xorl %eax, %eax
callq 0x5d62
testl %r14d, %r14d
movq 0xa0(%rsp), %rbx
movq 0x68(%rsp), %r8
jle 0x9f2b
xorpd %xmm1, %xmm1
xorl %eax, %eax
movq 0x1b8(%rsp), %rcx
xorl %ebp, %ebp
xorpd %xmm2, %xmm2
movq (%rsp), %rdi
movq 0x80(%rsp), %rsi
movapd 0x4dba(%rip), %xmm4     # 0xec70
movq (%rsi,%rax,8), %rdx
movl (%rdx), %esi
cmpl $-0x1, %esi
je 0x9ee2
addq $0x8, %rdx
movslq %esi, %rsi
movsd -0x8(%rcx,%rsi,8), %xmm0
mulsd (%rdx), %xmm0
movsd %xmm0, (%rdx)
movl 0x8(%rdx), %esi
addq $0x10, %rdx
cmpl $-0x1, %esi
jne 0x9ec5
movsd (%rdi,%rax,8), %xmm3
ucomisd %xmm3, %xmm1
movapd %xmm3, %xmm0
andpd %xmm4, %xmm0
addsd %xmm2, %xmm0
jne 0x9f09
movq 0x80(%rsp), %rsi
jp 0x9f11
movapd %xmm2, %xmm0
jmp 0x9f11
movq 0x80(%rsp), %rsi
cmpneqsd %xmm1, %xmm3
movq %xmm3, %rdx
subl %edx, %ebp
incq %rax
movapd %xmm0, %xmm2
cmpq %r14, %rax
jne 0x9eb6
jmp 0x9f35
xorl %ebp, %ebp
xorpd %xmm0, %xmm0
movq (%rsp), %rdi
cmpl $0x0, 0x10(%rsp)
jne 0x9f4f
movsd -0x8(%rdi,%r14,8), %xmm1
andpd 0x4d25(%rip), %xmm1     # 0xec70
subsd %xmm1, %xmm0
testl %r8d, %r8d
jle 0x9f89
xorl %eax, %eax
xorpd %xmm1, %xmm1
movsd (%r13,%rax,8), %xmm2
ucomisd %xmm1, %xmm2
jbe 0x9f81
movsbq (%r12,%rax), %rcx
movsd 0xc8(%rsp,%rcx,8), %xmm3
mulsd %xmm2, %xmm3
mulsd %xmm2, %xmm3
addsd %xmm3, %xmm0
incq %rax
cmpq %rax, %r8
jne 0x9f5a
leaq 0x505d(%rip), %rdi      # 0xefed
movb $0x1, %al
callq 0x5d62
leaq 0x55d3(%rip), %rdi      # 0xf571
movl %ebp, %esi
movl %r14d, %edx
xorl %eax, %eax
callq 0x5d62
movq %r15, %rdi
callq 0x21e0
movq %r12, %rdi
callq 0x21e0
movq %r13, %rdi
callq 0x21e0
movq %rbx, %rdi
callq 0x21e0
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x9fdc
callq 0x21e0
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
movq 0x158(%rsp), %r12
je 0x9ff6
callq 0x21e0
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0xa008
callq 0x21e0
movq %r12, %rdi
callq 0x21e0
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x24d6
jmp 0xa008
jmp 0xa03c
jmp 0xa037
jmp 0xa037
jmp 0xa062
jmp 0xa043
jmp 0xa043
jmp 0xa037
movq %rax, %rbx
jmp 0xa053
movq %rax, %rbx
jmp 0xa072
jmp 0xa043
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x37ba
leaq 0x1b0(%rsp), %rdi
callq 0xbd42
jmp 0xa07f
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x37ba
leaq 0x1b0(%rsp), %rdi
callq 0x43a8
movq %rbx, %rdi
callq 0x2290