// File: /workspace/github_cpp_makefile_star2_O2/toxaart[P]hierarchical_block_sparse_lib/source/HierarchicalBlockSparseMatrix.h
// Function: hbsm::HierarchicalBlockSparseMatrix<double>::count_skips(hbsm::HierarchicalBlockSparseMatrix<double> const&, bool, hbsm::HierarchicalBlockSparseMatrix<double> const&, bool, std::vector<double, std::allocator<double>> const&, bool const&, bool const&)
std::vector<unsigned long int> HierarchicalBlockSparseMatrix<Treal>::count_skips(HierarchicalBlockSparseMatrix<Treal> const & A, const bool tA,
			 HierarchicalBlockSparseMatrix<Treal> const & B, const bool tB, std::vector<Treal> const & taus,
		   const bool & apply_truncation, const bool & apply_spamm){

	    // look at the current level
			std::vector<unsigned long int> curr_level_skips;
			const int length = taus.size();
			curr_level_skips.resize(length);

			Treal A_norm = std::sqrt(A.get_frob_norm_squared_internal());
			Treal B_norm = std::sqrt(B.get_frob_norm_squared_internal());

			Treal product_of_norms = A_norm * B_norm;

			for(int i = 0; i < length; ++i){

					// depending on values of apply_truncation and apply_spamm decide if this multiplication is to be skipped

					//truncmul
					if(apply_truncation && !apply_spamm){
						if(A_norm < taus[i] || B_norm < taus[i])	curr_level_skips[i] = 1;
						else curr_level_skips[i] = 0;
					}

					//SpAMM
					if(!apply_truncation && apply_spamm){
						if(product_of_norms < taus[i]) curr_level_skips[i] = 1;
						else curr_level_skips[i] = 0;
					}

					//hybrid
					if(apply_truncation && apply_spamm){
						if(A_norm < taus[i] || B_norm < taus[i] || product_of_norms < taus[i]) curr_level_skips[i] = 1;
						else curr_level_skips[i] = 0;
					}

					if(!apply_truncation && !apply_spamm){
						curr_level_skips[i] = 0;
					}

			}


			if(A.lowest_level() && B.lowest_level()){
					return curr_level_skips;
			}

			if(A.get_depth() < B.get_depth()){

					bool B0 = false, B1 = false, B2 = false, B3 = false;
					if(B.children[0] != NULL) B0 = true;
					if(B.children[1] != NULL) B1 = true;
					if(B.children[2] != NULL) B2 = true;
					if(B.children[3] != NULL) B3 = true;

					std::vector<unsigned long int> sub_skips0(length,0),sub_skips1(length,0),sub_skips2(length,0),sub_skips3(length,0);

					if(B0) sub_skips0 = count_skips(A, tA, *B.children[0],tB, taus, apply_truncation, apply_spamm);
					if(tB){
						if(B2) sub_skips1 = count_skips(A, tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);
						if(B1) sub_skips2 = count_skips(A, tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);
					}
					else{
						if(B1) sub_skips1 = count_skips(A, tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);
					  if(B2) sub_skips2 = count_skips(A, tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);
					}
					if(B3) sub_skips3 = count_skips(A, tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);

					std::vector<std::vector<unsigned long int> > all_subskips;
					all_subskips.push_back(std::move(sub_skips0));
					all_subskips.push_back(std::move(sub_skips1));
					all_subskips.push_back(std::move(sub_skips2));
					all_subskips.push_back(std::move(sub_skips3));

					return sum_skips(curr_level_skips, all_subskips);
			}

			if(A.get_depth() > B.get_depth()){

					bool A0 = false, A1 = false, A2 = false, A3 = false;

					std::vector<unsigned long int> sub_skips0(length,0),sub_skips1(length,0),sub_skips2(length,0),sub_skips3(length,0);

					if(A.children[0] != NULL) A0 = true;
					if(A.children[1] != NULL) A1 = true;
					if(A.children[2] != NULL) A2 = true;
					if(A.children[3] != NULL) A3 = true;

					if(A0) sub_skips0 = count_skips(*A.children[0], tA, B, tB, taus, apply_truncation, apply_spamm);
					if(tA){
						if(A2) sub_skips1 = count_skips(*A.children[2], tA, B, tB, taus, apply_truncation, apply_spamm);
						if(A1) sub_skips2 = count_skips(*A.children[1], tA, B, tB, taus, apply_truncation, apply_spamm);
					}
					else{
						if(A1) sub_skips1 = count_skips(*A.children[1], tA, B, tB, taus, apply_truncation, apply_spamm);
						if(A2) sub_skips2 = count_skips(*A.children[2], tA, B, tB, taus, apply_truncation, apply_spamm);
					}
					if(A3) sub_skips3 = count_skips(*A.children[3], tA, B, tB, taus, apply_truncation, apply_spamm);

					std::vector<std::vector<unsigned long int> > all_subskips;
					all_subskips.push_back(std::move(sub_skips0));
					all_subskips.push_back(std::move(sub_skips1));
					all_subskips.push_back(std::move(sub_skips2));
					all_subskips.push_back(std::move(sub_skips3));

					return sum_skips(curr_level_skips, all_subskips);
			}

			bool A0 = false, A1 = false, A2 = false, A3 = false, B0 = false, B1 = false, B2 = false, B3 = false;

			if(A.children[0] != NULL) A0 = true;
			if(A.children[1] != NULL) A1 = true;
			if(A.children[2] != NULL) A2 = true;
			if(A.children[3] != NULL) A3 = true;

			if(B.children[0] != NULL) B0 = true;
			if(B.children[1] != NULL) B1 = true;
			if(B.children[2] != NULL) B2 = true;
			if(B.children[3] != NULL) B3 = true;

			std::vector<unsigned long int> sub_skips0(length,0),sub_skips1(length,0),sub_skips2(length,0),sub_skips3(length,0),sub_skips4(length,0),sub_skips5(length,0),sub_skips6(length,0),sub_skips7(length,0);

			if(!tA && !tB){
					if(A0 && B0) sub_skips0 = count_skips(*A.children[0], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B1) sub_skips1 = count_skips(*A.children[2], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B0) sub_skips2 = count_skips(*A.children[1], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B1) sub_skips3 = count_skips(*A.children[3], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A0 && B2) sub_skips4 = count_skips(*A.children[0], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B3) sub_skips5 = count_skips(*A.children[2], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B2) sub_skips6 = count_skips(*A.children[1], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B3) sub_skips7 = count_skips(*A.children[3], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);
 			}

			if(!tA && tB){
					if(A0 && B0) sub_skips0 = count_skips(*A.children[0], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B2) sub_skips1 = count_skips(*A.children[2], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B0) sub_skips2 = count_skips(*A.children[1], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B2) sub_skips3 = count_skips(*A.children[3], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);

					if(A0 && B1) sub_skips4 = count_skips(*A.children[0], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B3) sub_skips5 = count_skips(*A.children[2], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B1) sub_skips6 = count_skips(*A.children[1], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B3) sub_skips7 = count_skips(*A.children[3], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);
			}

			if(tA && !tB){
					if(A0 && B0) sub_skips0 = count_skips(*A.children[0], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B1) sub_skips1 = count_skips(*A.children[1], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B0) sub_skips2 = count_skips(*A.children[2], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B1) sub_skips3 = count_skips(*A.children[3], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A0 && B2) sub_skips4 = count_skips(*A.children[0], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B3) sub_skips5 = count_skips(*A.children[1], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B2) sub_skips6 = count_skips(*A.children[2], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B3) sub_skips7 = count_skips(*A.children[3], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);
			}

			if(tA && tB){
					if(A0 && B0) sub_skips0 = count_skips(*A.children[0], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B2) sub_skips1 = count_skips(*A.children[1], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B0) sub_skips2 = count_skips(*A.children[2], tA, *B.children[0], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B2) sub_skips3 = count_skips(*A.children[3], tA, *B.children[2], tB, taus, apply_truncation, apply_spamm);;

					if(A0 && B1) sub_skips4 = count_skips(*A.children[0], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A1 && B3) sub_skips5 = count_skips(*A.children[1], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);

					if(A2 && B1) sub_skips6 = count_skips(*A.children[2], tA, *B.children[1], tB, taus, apply_truncation, apply_spamm);

					if(A3 && B3) sub_skips7 = count_skips(*A.children[3], tA, *B.children[3], tB, taus, apply_truncation, apply_spamm);
			}



			std::vector<std::vector<unsigned long int> > all_subskips;
			all_subskips.push_back(std::move(sub_skips0));
			all_subskips.push_back(std::move(sub_skips1));
			all_subskips.push_back(std::move(sub_skips2));
			all_subskips.push_back(std::move(sub_skips3));
			all_subskips.push_back(std::move(sub_skips4));
			all_subskips.push_back(std::move(sub_skips5));
			all_subskips.push_back(std::move(sub_skips6));
			all_subskips.push_back(std::move(sub_skips7));

			return sum_skips(curr_level_skips, all_subskips);



	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %r9, %r12
movl %r8d, 0x60(%rsp)
movq %rcx, %r15
movl %edx, 0x90(%rsp)
movq %rsi, %rbp
movq %rdi, %r14
xorpd %xmm0, %xmm0
leaq 0x120(%rsp), %rdi
movapd %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
movq 0x8(%r9), %rbx
subq (%r9), %rbx
shrq $0x3, %rbx
movslq %ebx, %r13
movq %r13, %rsi
callq 0x1a02c
movsd 0x18(%rbp), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x1194b
sqrtsd %xmm0, %xmm5
jmp 0x11958
callq 0x2160
xorpd %xmm1, %xmm1
movapd %xmm0, %xmm5
movsd 0x18(%r15), %xmm0
ucomisd %xmm1, %xmm0
jb 0x1196a
sqrtsd %xmm0, %xmm0
jmp 0x1197b
movapd %xmm5, 0x20(%rsp)
callq 0x2160
movapd 0x20(%rsp), %xmm5
movapd %xmm5, %xmm1
mulsd %xmm0, %xmm1
movq 0x1a0(%rsp), %rax
movb (%rax), %al
movq 0x1a8(%rsp), %rcx
movb (%rcx), %cl
movq (%r12), %rdx
movq 0x120(%rsp), %rsi
xorl %edi, %edi
testl %ebx, %ebx
cmovlel %edi, %ebx
cmpq %rdi, %rbx
je 0x11a0f
testb $0x1, %al
je 0x119eb
movsd (%rdx,%rdi,8), %xmm2
movapd %xmm0, %xmm3
cmpltpd %xmm2, %xmm3
movapd %xmm5, %xmm4
cmpltpd %xmm2, %xmm4
orpd %xmm3, %xmm4
movd %xmm4, %r8d
testb $0x1, %cl
je 0x119e3
ucomisd %xmm1, %xmm2
seta %r9b
orb %r9b, %r8b
testb $0x1, %r8b
jne 0x119fb
jmp 0x11a05
testb $0x1, %cl
je 0x11a05
movsd (%rdx,%rdi,8), %xmm2
ucomisd %xmm1, %xmm2
jbe 0x11a05
movq $0x1, (%rsi,%rdi,8)
jmp 0x11a0a
andq $0x0, (%rsi,%rdi,8)
incq %rdi
jmp 0x119aa
movq %rbp, %rdi
callq 0x14f94
testb %al, %al
je 0x11a5c
movq %r15, %rdi
callq 0x14f94
testb %al, %al
je 0x11a5c
movapd 0x120(%rsp), %xmm0
movupd %xmm0, (%r14)
movq 0x130(%rsp), %rax
movq %rax, 0x10(%r14)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x120(%rsp)
andq $0x0, 0x130(%rsp)
jmp 0x12f46
movq %rbp, %rdi
callq 0xbda2
movl %eax, %ebx
movq %r15, %rdi
callq 0xbda2
movzbl 0x90(%rsp), %ecx
movl %ecx, 0x20(%rsp)
movzbl 0x60(%rsp), %ecx
movl %ecx, 0x38(%rsp)
cmpl %eax, %ebx
jge 0x11c24
movq %r14, 0x90(%rsp)
movq 0x28(%r15), %rbx
movq 0x38(%r15), %rcx
movq %rcx, 0x58(%rsp)
movq 0x48(%r15), %r14
movq 0x58(%r15), %rax
movq %rax, 0x68(%rsp)
leaq 0xd0(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xe8(%rsp), %rdi
leaq 0x98(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0x98(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0xb0(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x98(%rsp), %rdi
leaq 0x40(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0x40(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xb0(%rsp), %rdi
leaq 0x108(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
testq %rbx, %rbx
je 0x11b86
movq 0x28(%r15), %rcx
leaq 0x40(%rsp), %rdi
movq %rbp, %rsi
movl 0x20(%rsp), %edx
movl 0x38(%rsp), %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xe8(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpb $0x0, 0x60(%rsp)
je 0x12c40
testq %r14, %r14
je 0x11bdf
movq 0x48(%r15), %rcx
leaq 0x40(%rsp), %rdi
pushq $0x1
popq %r8
movq %rbp, %rsi
movl 0x20(%rsp), %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x58(%rsp)
movq 0x90(%rsp), %r14
je 0x12ce8
movq 0x38(%r15), %rcx
leaq 0x40(%rsp), %rdi
pushq $0x1
popq %r8
movq %rbp, %rsi
movl 0x20(%rsp), %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
jmp 0x12ccb
movq %rbp, %rdi
callq 0xbda2
movl %eax, %ebx
movq %r15, %rdi
callq 0xbda2
cmpl %eax, %ebx
jle 0x11dd2
leaq 0xd0(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xe8(%rsp), %rdi
leaq 0x98(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
movq %r15, 0x60(%rsp)
leaq 0x98(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
movq %r12, %r15
leaq 0xb0(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x98(%rsp), %rdi
leaq 0x40(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
movq %r14, %r12
leaq 0x40(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xb0(%rsp), %rdi
leaq 0x108(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
movq 0x28(%rbp), %rsi
movq 0x38(%rbp), %r14
movq 0x48(%rbp), %r13
movq 0x58(%rbp), %rax
movq %rax, 0x58(%rsp)
testq %rsi, %rsi
je 0x11d35
leaq 0x40(%rsp), %rdi
movl 0x20(%rsp), %edx
movq 0x60(%rsp), %rcx
movl 0x38(%rsp), %r8d
movq %r15, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xe8(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpb $0x0, 0x90(%rsp)
je 0x12da9
testq %r13, %r13
je 0x11d93
movq 0x48(%rbp), %rsi
leaq 0x40(%rsp), %rdi
pushq $0x1
popq %rdx
movq 0x60(%rsp), %rcx
movl 0x38(%rsp), %r8d
movq %r15, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
testq %r14, %r14
movq %r12, %r14
je 0x12e4a
movq 0x38(%rbp), %rsi
leaq 0x40(%rsp), %rdi
pushq $0x1
popq %rdx
movq 0x60(%rsp), %rcx
movl 0x38(%rsp), %r8d
movq %r15, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
jmp 0x12e2d
movq 0x28(%rbp), %rax
movq %rax, 0x58(%rsp)
movq 0x38(%rbp), %rax
movq %rax, 0x88(%rsp)
movq 0x48(%rbp), %rax
movq %rax, 0x68(%rsp)
movq %rbp, 0x20(%rsp)
movq 0x58(%rbp), %rbp
movq 0x28(%r15), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%r15), %rax
movq %rax, 0x78(%rsp)
movq 0x48(%r15), %rax
movq %rax, 0x80(%rsp)
movq 0x58(%r15), %rax
movq %rax, 0x70(%rsp)
leaq 0xd0(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xe8(%rsp), %rdi
leaq 0x98(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0x98(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0xb0(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x98(%rsp), %rdi
leaq 0x40(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0x40(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xb0(%rsp), %rdi
leaq 0x108(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0x108(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x40(%rsp), %rdi
leaq 0x150(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0x150(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x108(%rsp), %rdi
leaq 0x138(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
leaq 0x138(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x150(%rsp), %rdi
movq %rsp, %rcx
movq %r13, %rsi
callq 0x1a05e
movq %rsp, %rdx
andq $0x0, (%rdx)
leaq 0x138(%rsp), %rdi
leaq 0xcf(%rsp), %rcx
movq %r13, %rsi
callq 0x1a05e
movl 0x90(%rsp), %eax
orb 0x60(%rsp), %al
jne 0x12231
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
jne 0x11f9c
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xe8(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
jne 0x11ffa
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x1205b
movq 0x20(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x98(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
testq %rbp, %rbp
sete %cl
orb %al, %cl
jne 0x120b6
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xb0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
jne 0x12114
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x40(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
jne 0x12172
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x108(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x121d6
movq 0x20(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x150(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
testq %rbp, %rbp
sete %cl
orb %al, %cl
jne 0x12231
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
xorl %edx, %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x138(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
movl 0x60(%rsp), %eax
movl %eax, %r13d
xorb $0x1, %r13b
movl %r13d, %eax
orb 0x90(%rsp), %al
jne 0x12547
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
jne 0x122ab
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xe8(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
jne 0x1230d
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x1236f
movq 0x20(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x98(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
testq %rbp, %rbp
sete %cl
orb %al, %cl
jne 0x123ce
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xb0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
jne 0x1242a
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x40(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
jne 0x12489
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x108(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x124eb
movq 0x20(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x150(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
testq %rbp, %rbp
sete %cl
orb %al, %cl
jne 0x12547
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %r8
xorl %edx, %edx
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x138(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
movq %rbp, 0x100(%rsp)
movl 0x90(%rsp), %eax
xorb $0x1, %al
movl %eax, %ebp
movl 0x60(%rsp), %ecx
orb %al, %cl
jne 0x1286d
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
jne 0x125c5
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xe8(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x12627
movq 0x20(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
jne 0x12686
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x98(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
cmpq $0x0, 0x100(%rsp)
sete %cl
orb %al, %cl
jne 0x126e8
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xb0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
jne 0x12747
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x40(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x127a9
movq 0x20(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x108(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
jne 0x1280b
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x150(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
cmpq $0x0, 0x100(%rsp)
sete %cl
orb %al, %cl
jne 0x1286d
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x138(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
orb %r13b, %bpl
jne 0x12b65
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
movq 0x100(%rsp), %rbp
jne 0x128dd
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xe8(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x12942
movq 0x20(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x38(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
movq 0x20(%rsp), %r13
jne 0x129a1
movq 0x48(%r13), %rsi
movq 0x28(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x98(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x80(%rsp)
sete %al
testq %rbp, %rbp
sete %cl
orb %al, %cl
jne 0x129fb
movq 0x58(%r13), %rsi
movq 0x48(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xb0(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
cmpq $0x0, 0x58(%rsp)
sete %cl
orb %al, %cl
jne 0x12a52
movq 0x28(%r13), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x40(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
cmpq $0x0, 0x88(%rsp)
sete %cl
orb %al, %cl
jne 0x12aaf
movq 0x38(%r13), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x108(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x78(%rsp)
sete %al
cmpq $0x0, 0x68(%rsp)
sete %cl
orb %al, %cl
jne 0x12b09
movq 0x48(%r13), %rsi
movq 0x38(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x150(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x70(%rsp)
sete %al
testq %rbp, %rbp
sete %cl
orb %al, %cl
jne 0x12b65
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rsi
movq 0x58(%r15), %rcx
movq %rsp, %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x138(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
xorpd %xmm0, %xmm0
movq %rsp, %rdi
movapd %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0xe8(%rsp), %rsi
callq 0x1a40e
movq %rsp, %rdi
leaq 0xd0(%rsp), %rsi
callq 0x1a40e
movq %rsp, %rdi
leaq 0x98(%rsp), %rsi
callq 0x1a40e
movq %rsp, %rdi
leaq 0xb0(%rsp), %rsi
callq 0x1a40e
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
callq 0x1a40e
movq %rsp, %rdi
leaq 0x108(%rsp), %rsi
callq 0x1a40e
movq %rsp, %rdi
leaq 0x150(%rsp), %rsi
callq 0x1a40e
movq %rsp, %rdi
leaq 0x138(%rsp), %rsi
callq 0x1a40e
leaq 0x120(%rsp), %rsi
movq %rsp, %rdx
movq %r14, %rdi
callq 0x1a0b4
movq %rsp, %rdi
callq 0x1a15a
leaq 0x138(%rsp), %rdi
callq 0x1a378
leaq 0x150(%rsp), %rdi
callq 0x1a378
leaq 0x108(%rsp), %rdi
callq 0x1a378
leaq 0x40(%rsp), %rdi
callq 0x1a378
jmp 0x12f12
cmpq $0x0, 0x58(%rsp)
movq 0x90(%rsp), %r13
je 0x12c98
movq 0x38(%r15), %rcx
leaq 0x40(%rsp), %rdi
movq %rbp, %rsi
movl 0x20(%rsp), %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
testq %r14, %r14
movq %r13, %r14
je 0x12ce8
movq 0x48(%r15), %rcx
leaq 0x40(%rsp), %rdi
movq %rbp, %rsi
movl 0x20(%rsp), %edx
xorl %r8d, %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x98(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x68(%rsp)
je 0x12d3a
movq 0x58(%r15), %rcx
leaq 0x40(%rsp), %rdi
movq %rbp, %rsi
movl 0x20(%rsp), %edx
movl 0x38(%rsp), %r8d
movq %r12, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xb0(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
xorpd %xmm0, %xmm0
leaq 0x40(%rsp), %rdi
movapd %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0xe8(%rsp), %rsi
callq 0x1a40e
leaq 0x40(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x1a40e
leaq 0x40(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x1a40e
leaq 0x40(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x1a40e
leaq 0x120(%rsp), %rsi
leaq 0x40(%rsp), %rdx
movq %r14, %rdi
callq 0x1a0b4
jmp 0x12f08
testq %r14, %r14
movq %r12, %r14
je 0x12dfb
movq 0x38(%rbp), %rsi
leaq 0x40(%rsp), %rdi
xorl %edx, %edx
movq 0x60(%rsp), %rcx
movl 0x38(%rsp), %r8d
movq %r15, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xd0(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
testq %r13, %r13
je 0x12e4a
movq 0x48(%rbp), %rsi
leaq 0x40(%rsp), %rdi
xorl %edx, %edx
movq 0x60(%rsp), %rcx
movl 0x38(%rsp), %r8d
movq %r15, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0x98(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
cmpq $0x0, 0x58(%rsp)
je 0x12e9e
movq 0x58(%rbp), %rsi
leaq 0x40(%rsp), %rdi
movl 0x20(%rsp), %edx
movq 0x60(%rsp), %rcx
movl 0x38(%rsp), %r8d
movq %r15, %r9
pushq 0x1a8(%rsp)
pushq 0x1a8(%rsp)
callq 0x118e2
popq %rax
popq %rcx
leaq 0xb0(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x1a3bc
movq %rbx, %rdi
callq 0x1a378
xorpd %xmm0, %xmm0
leaq 0x40(%rsp), %rdi
movapd %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0xe8(%rsp), %rsi
callq 0x1a40e
leaq 0x40(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x1a40e
leaq 0x40(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x1a40e
leaq 0x40(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x1a40e
leaq 0x120(%rsp), %rsi
leaq 0x40(%rsp), %rdx
movq %r14, %rdi
callq 0x1a0b4
leaq 0x40(%rsp), %rdi
callq 0x1a15a
leaq 0xb0(%rsp), %rdi
callq 0x1a378
leaq 0x98(%rsp), %rdi
callq 0x1a378
leaq 0xd0(%rsp), %rdi
callq 0x1a378
leaq 0xe8(%rsp), %rdi
callq 0x1a378
leaq 0x120(%rsp), %rdi
callq 0x1a378
movq %r14, %rax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
jmp 0x12fa6
movq %rax, %rbx
jmp 0x13076
jmp 0x12fb8
jmp 0x12fb8
jmp 0x12fb8
jmp 0x12fb8
jmp 0x12fb8
movq %rax, %rbx
jmp 0x1304a
jmp 0x13018
jmp 0x13018
jmp 0x13018
jmp 0x13018
movq %rax, %rbx
jmp 0x13083
movq %rax, %rbx
jmp 0x13090
movq %rax, %rbx
jmp 0x1309d
movq %rax, %rbx
jmp 0x130a7
movq %rax, %rbx
jmp 0x130b4
movq %rax, %rbx
jmp 0x13057
movq %rax, %rbx
jmp 0x130c1
movq %rax, %rbx
jmp 0x13064
jmp 0x13004
movq %rax, %rbx
jmp 0x13104
jmp 0x13113
jmp 0x13113
jmp 0x13018
movq %rax, %rbx
jmp 0x130dd
movq %rax, %rbx
jmp 0x130ea
movq %rax, %rbx
jmp 0x130f7
movq %rax, %rbx
jmp 0x13104
jmp 0x13113
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x1a15a
leaq 0xb0(%rsp), %rdi
callq 0x1a378
leaq 0x98(%rsp), %rdi
callq 0x1a378
jmp 0x130c1
jmp 0x13113
movq %rax, %rbx
movq %rsp, %rdi
callq 0x1a15a
leaq 0x138(%rsp), %rdi
callq 0x1a378
leaq 0x150(%rsp), %rdi
callq 0x1a378
leaq 0x108(%rsp), %rdi
callq 0x1a378
leaq 0x40(%rsp), %rdi
callq 0x1a378
leaq 0xb0(%rsp), %rdi
callq 0x1a378
leaq 0x98(%rsp), %rdi
callq 0x1a378
leaq 0xd0(%rsp), %rdi
callq 0x1a378
jmp 0x13104
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x1a15a
leaq 0xb0(%rsp), %rdi
callq 0x1a378
leaq 0x98(%rsp), %rdi
callq 0x1a378
leaq 0xd0(%rsp), %rdi
callq 0x1a378
leaq 0xe8(%rsp), %rdi
callq 0x1a378
jmp 0x13116
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0x1a378
movq %rbx, %rdi
callq 0x2290
nop