// File: /workspace/github_cpp_makefile_star2_O1/toxaart[P]hierarchical_block_sparse_lib/source/HierarchicalBlockSparseMatrix.h
// Function: hbsm::HierarchicalBlockSparseMatrix<double>::symm_multiply(hbsm::HierarchicalBlockSparseMatrix<double> const&, bool, hbsm::HierarchicalBlockSparseMatrix<double> const&, bool, hbsm::HierarchicalBlockSparseMatrix<double>&)
void HierarchicalBlockSparseMatrix<Treal>::symm_multiply(HierarchicalBlockSparseMatrix<Treal> const & A, bool sA,
						 HierarchicalBlockSparseMatrix<Treal> const & B, bool sB,
						 HierarchicalBlockSparseMatrix<Treal> & C){

				if(A.nRows < B.nRows){ // A is to be adjusted
					HierarchicalBlockSparseMatrix<Treal>  A_alias;
					A_alias.copy(A);
					adjust_sizes(A_alias,B.nRows, B.nCols);
					symm_multiply(A_alias, sA, B, sB, C);
					return;
				}
				if(A.nRows > B.nRows){ // B is to be adjusted
					HierarchicalBlockSparseMatrix<Treal>  B_alias;
					B_alias.copy(B);
					adjust_sizes(B_alias, A.nRows, A.nCols);
					symm_multiply(A, sA, B_alias, sB, C);
					return;
				}


				if (!sA && !sB) throw std::runtime_error("Error in hbsm::symm_multiply, Neither A nor B are symmetric, one and only one of them should be symmetric.");

		    if (sA && sB) throw std::runtime_error("Error in hbsm::symm_multiply, Both A and B are symmetric, one and only one of them should be symmetric.");

				if(!C.empty()) throw std::runtime_error("Error in HierarchicalBlockSparseMatrix::symm_multiply(): non-empty matrix to write result!");

				if(A.nCols_orig != B.nRows_orig) throw std::runtime_error("Error in HierarchicalBlockSparseMatrix::symm_multiply(): matrices have bad sizes!");

				C.set_params(A.get_params());

				C.resize(A.nRows_orig,B.nCols_orig);



				if(A.lowest_level()){

					const Treal ZERO = 0.0;
					const Treal ONE = 1.0;

					//at this point all submatrices are square and have equal sizes!
					int M     = C.nRows;
					int N     = C.nCols;

					const Treal *aptr = A.get_submatrix_ptr();
					const Treal *bptr = B.get_submatrix_ptr();
					Treal *cptr = C.get_submatrix_ptr_for_modification();

					if(sA) symm("L", "U", &M, &N, &ONE, aptr, &M, bptr, &M, &ZERO, cptr, &M);
					if(sB) symm("R", "U", &M, &N, &ONE, bptr, &N, aptr, &M, &ZERO, cptr, &M);

					return;
				}


				if(sA){

					// same as regular multiplication, except that if A0 or A3 is involved, then recursive call is made

					// C0 = A0xB0 + A2xB1
					// C1 = A1xB0 + A3xB1
					// C2 = A0xB2 + A2xB3
					// C3 = A1xB2 + A3xB3

					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A0xB0;
					if(A.children[0] != NULL && B.children[0] != NULL){
						A0xB0 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[0], sA, *B.children[0], sB, *A0xB0);
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A2xB1;
					if(A.children[2] != NULL && B.children[1] != NULL){
						A2xB1 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[2], false, *B.children[1], false, *A2xB1);
					}


					if(A0xB0 != NULL && A2xB1 == NULL){C.children[0] = A0xB0;C.children[0]->parent = &C;}
					if(A0xB0 == NULL && A2xB1 != NULL){C.children[0] = A2xB1;C.children[0]->parent = &C;}
					if(A0xB0 != NULL && A2xB1 != NULL){
						add_to_first(*A0xB0, *A2xB1);
						C.children[0] = A0xB0;
						C.children[0]->parent = &C;
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A2TxB0;
					if(A.children[2] != NULL && B.children[0] != NULL){
						A2TxB0 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[2], true, *B.children[0], false, *A2TxB0);
					}



					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A3xB1;
					if(A.children[3] != NULL && B.children[1] != NULL){
						A3xB1 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[3], sA, *B.children[1], sB,* A3xB1);
					}



					if(A2TxB0 != NULL && A3xB1 == NULL){C.children[1] = A2TxB0;C.children[1]->parent = &C;}
					if(A2TxB0 == NULL && A3xB1 != NULL){C.children[1] = A3xB1; C.children[1]->parent = &C;}
					if(A2TxB0 != NULL && A3xB1 != NULL){
						add_to_first(*A2TxB0, *A3xB1);
						C.children[1] = A2TxB0;
						C.children[1]->parent = &C;
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A0xB2;
					if(A.children[0] != NULL && B.children[2] != NULL){
						A0xB2 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[0], sA, *B.children[2], sB, *A0xB2);
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A2xB3;
					if(A.children[2] != NULL && B.children[3] != NULL){
						A2xB3 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[2], false, *B.children[3], false, *A2xB3);
					}


					if(A0xB2 != NULL && A2xB3 == NULL){C.children[2] = A0xB2;C.children[2]->parent = &C;}
					if(A0xB2 == NULL && A2xB3 != NULL){C.children[2] = A2xB3;C.children[2]->parent = &C;}
					if(A0xB2 != NULL && A2xB3 != NULL){
						add_to_first(*A0xB2, *A2xB3);
						C.children[2] = A0xB2;
						C.children[2]->parent = &C;
					}

					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A2TxB2;
					if(A.children[2] != NULL && B.children[2] != NULL){
						A2TxB2 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[2], true, *B.children[2], false, *A2TxB2);
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A3xB3;
					if(A.children[3] != NULL && B.children[3] != NULL){
						A3xB3 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[3], sA, *B.children[3], sB, *A3xB3);
					}


				    if(A2TxB2 != NULL && A3xB3 == NULL){C.children[3] = A2TxB2;C.children[3]->parent = &C;}
					if(A2TxB2 == NULL && A3xB3 != NULL){C.children[3] = A3xB3;C.children[3]->parent = &C;}
					if(A2TxB2 != NULL && A3xB3 != NULL){
						add_to_first(*A2TxB2, *A3xB3);
						C.children[3] = A2TxB2;
						C.children[3]->parent = &C;
					}

					return;


				}

				if(sB){

					// same as regular multiplication, except that if B0 or B3 is involved, then recursive call is made
					// C0 = A0xB0 + A2xB1
					// C1 = A1xB0 + A3xB1
					// C2 = A0xB2 + A2xB3
					// C3 = A1xB2 + A3xB3


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A0xB0;
					if(A.children[0] != NULL && B.children[0] != NULL){
						A0xB0 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[0], sA, *B.children[0], sB, *A0xB0);
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A2xB2T;
					if(A.children[2] != NULL && B.children[2] != NULL){
						A2xB2T = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[2], false, *B.children[2], true, *A2xB2T);
					}


					if(A0xB0 != NULL && A2xB2T == NULL){C.children[0] = A0xB0;C.children[0]->parent = &C;}
					if(A0xB0 == NULL && A2xB2T != NULL){C.children[0] = A2xB2T;C.children[0]->parent = &C;}
					if(A0xB0 != NULL && A2xB2T != NULL){
						add_to_first(*A0xB0, *A2xB2T);
						C.children[0] = A0xB0;
						C.children[0]->parent = &C;
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A1xB0;
					if(A.children[1] != NULL && B.children[0] != NULL){
						A1xB0 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[1], sA, *B.children[0], sB, *A1xB0);
					}



					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A3xB2T;
					if(A.children[3] != NULL && B.children[2] != NULL){
						A3xB2T = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[3], false, *B.children[2], true, *A3xB2T);
					}


					if(A1xB0 != NULL && A3xB2T == NULL){C.children[1] = A1xB0;C.children[1]->parent = &C;}
					if(A1xB0 == NULL && A3xB2T != NULL){C.children[1] = A3xB2T;C.children[1]->parent = &C;}
					if(A1xB0 != NULL && A3xB2T != NULL){
						add_to_first(*A1xB0, *A3xB2T);
						C.children[1] = A1xB0;
						C.children[1]->parent = &C;
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A0xB2;
					if(A.children[0] != NULL && B.children[2] != NULL){
						A0xB2 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[0], false, *B.children[2], false, *A0xB2);
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A2xB3;
					if(A.children[2] != NULL && B.children[3] != NULL){
						A2xB3 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[2], sA, *B.children[3], sB, *A2xB3);
					}


					if(A0xB2 != NULL && A2xB3 == NULL){C.children[2] = A0xB2;C.children[2]->parent = &C;}
					if(A0xB2 == NULL && A2xB3 != NULL){C.children[2] = A2xB3;C.children[2]->parent = &C;}
					if(A0xB2 != NULL && A2xB3 != NULL){
						add_to_first(*A0xB2, *A2xB3);
						C.children[2] = A0xB2;
						C.children[2]->parent = &C;
					}

					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A1xB2;
					if(A.children[1] != NULL && B.children[2] != NULL){
						A1xB2 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						multiply(*A.children[1], false, *B.children[2], false, *A1xB2);
					}


					std::shared_ptr<HierarchicalBlockSparseMatrix<Treal> > A3xB3;
					if(A.children[3] != NULL && B.children[3] != NULL){
						A3xB3 = std::make_shared<HierarchicalBlockSparseMatrix<Treal> >();
						symm_multiply(*A.children[3], sA, *B.children[3], sB, *A3xB3);
					}



					if(A1xB2 != NULL && A3xB3 == NULL){C.children[3] = A1xB2;C.children[3]->parent = &C;}
					if(A1xB2 == NULL && A3xB3 != NULL){C.children[3] = A3xB3;C.children[3]->parent = &C;}
					if(A1xB2 != NULL && A3xB3 != NULL){
						add_to_first(*A1xB2,*A3xB3);
						C.children[3] = A1xB2;
						C.children[3]->parent = &C;
					}

					return;

				}

				return;

		 }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %r8, %rbx
movl %ecx, %ebp
movq %rdx, %r14
movl %esi, %r12d
movq %rdi, %r15
movl (%rdx), %eax
cmpl %eax, (%rdi)
jge 0x1d785
xorps %xmm0, %xmm0
leaq 0x80(%rsp), %rdi
movaps %xmm0, (%rdi)
movl $0xffffffff, 0x10(%rdi) # imm = 0xFFFFFFFF
movups %xmm0, 0x18(%rdi)
movups %xmm0, 0x28(%rdi)
movups %xmm0, 0x38(%rdi)
movups %xmm0, 0x48(%rdi)
movups %xmm0, 0x58(%rdi)
movups %xmm0, 0x68(%rdi)
movups %xmm0, 0x78(%rdi)
movq %r15, %rsi
xorl %edx, %edx
callq 0x1ec3c
movl (%r14), %esi
movl 0x4(%r14), %edx
leaq 0x80(%rsp), %rdi
callq 0x1edf8
movzbl %r12b, %esi
movzbl %bpl, %ecx
leaq 0x80(%rsp), %rdi
movq %r14, %rdx
movq %rbx, %r8
callq 0x1d6f4
jmp 0x1d7f5
jle 0x1d814
xorps %xmm0, %xmm0
leaq 0x80(%rsp), %rdi
movaps %xmm0, (%rdi)
movl $0xffffffff, 0x10(%rdi) # imm = 0xFFFFFFFF
movups %xmm0, 0x18(%rdi)
movups %xmm0, 0x28(%rdi)
movups %xmm0, 0x38(%rdi)
movups %xmm0, 0x48(%rdi)
movups %xmm0, 0x58(%rdi)
movups %xmm0, 0x68(%rdi)
movups %xmm0, 0x78(%rdi)
movq %r14, %rsi
xorl %edx, %edx
callq 0x1ec3c
movl (%r15), %esi
movl 0x4(%r15), %edx
leaq 0x80(%rsp), %rdi
callq 0x1edf8
movzbl %r12b, %esi
movzbl %bpl, %ecx
leaq 0x80(%rsp), %rdx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1d6f4
leaq 0x80(%rsp), %rdi
callq 0xebb2
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %r12d, %eax
orb %bpl, %al
je 0x1ea02
movl %r12d, %eax
andb %bpl, %al
cmpb $0x1, %al
je 0x1ea20
movq %rbx, %rdi
callq 0x1ad92
testb %al, %al
je 0x1ea3e
movl 0xc(%r15), %eax
cmpl 0x8(%r14), %eax
jne 0x1ea5c
movl 0x10(%r15), %eax
leaq 0x80(%rsp), %r13
movl %eax, (%r13)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x9974
movl 0x8(%r15), %esi
movl 0xc(%r14), %edx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x99da
movq %r15, %rdi
callq 0x1aed4
testb %al, %al
je 0x1d971
movl %ebp, 0x7c(%rsp)
xorl %ebp, %ebp
movq %rbp, 0x80(%rsp)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x20(%rsp)
movl (%rbx), %eax
movl %eax, (%rsp)
movl 0x4(%rbx), %eax
movl %eax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1aed4
movl $0x0, %ecx
movq %rcx, 0x70(%rsp)
testb %al, %al
je 0x1d8d1
movq 0x70(%r15), %rax
movq %rax, 0x70(%rsp)
movq %r14, %rdi
callq 0x1aed4
movl $0x0, %r15d
testb %al, %al
je 0x1d8e7
movq 0x70(%r14), %r15
movq %rbx, %rdi
callq 0x1aed4
testb %al, %al
je 0x1d8f7
movq 0x70(%rbx), %rbp
testb %r12b, %r12b
je 0x1d92d
movq %rsp, %rdx
leaq 0x6c5c(%rip), %rdi      # 0x24562
leaq 0x6f38(%rip), %rsi      # 0x24845
leaq 0x10(%rsp), %rcx
leaq 0x20(%rsp), %r8
movq 0x70(%rsp), %r9
pushq %rdx
pushq %rbp
pushq %r13
pushq %rdx
pushq %r15
pushq %rdx
callq 0x2050
addq $0x30, %rsp
cmpb $0x0, 0x7c(%rsp)
je 0x1d802
movq %rsp, %rdx
leaq 0x10(%rsp), %rcx
leaq 0x6f00(%rip), %rdi      # 0x24847
leaq 0x6ef7(%rip), %rsi      # 0x24845
leaq 0x20(%rsp), %r8
movq %r15, %r9
pushq %rdx
pushq %rbp
pushq %r13
pushq %rdx
pushq 0x90(%rsp)
pushq %rcx
callq 0x2050
addq $0x30, %rsp
jmp 0x1d802
testb %r12b, %r12b
je 0x1e1bb
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
cmpq $0x0, 0x28(%r15)
je 0x1da31
cmpq $0x0, 0x28(%r14)
je 0x1da31
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xd326(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x80(%rsp)
movq 0x88(%rsp), %rdi
movq %rax, 0x88(%rsp)
testq %rdi, %rdi
je 0x1da13
callq 0x1af0e
movq 0x28(%r15), %rdi
movq 0x28(%r14), %rdx
movq 0x80(%rsp), %r8
movzbl %bpl, %ecx
movl $0x1, %esi
callq 0x1d6f4
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
cmpq $0x0, 0x48(%r15)
je 0x1dae1
cmpq $0x0, 0x38(%r14)
je 0x1dae1
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xd272(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movq %rax, 0x28(%rsp)
testq %rdi, %rdi
je 0x1dabe
callq 0x1af0e
movq 0x48(%r15), %rdi
movq 0x38(%r14), %rdx
movq 0x20(%rsp), %r8
subq $0x8, %rsp
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
movq 0x80(%rsp), %rax
testq %rax, %rax
je 0x1db13
cmpq $0x0, 0x20(%rsp)
jne 0x1db13
movq %rax, 0x28(%rbx)
leaq 0x30(%rbx), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1c38c
movq 0x28(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, 0x80(%rsp)
jne 0x1db42
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x1db42
movq %rax, 0x28(%rbx)
leaq 0x30(%rbx), %rdi
leaq 0x28(%rsp), %rsi
callq 0x1c38c
movq 0x28(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x1db81
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x1db81
xorl %edx, %edx
callq 0x1c3d2
leaq 0x88(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x28(%rbx)
leaq 0x30(%rbx), %rdi
callq 0x1c38c
movq 0x28(%rbx), %rax
movq %rbx, 0x68(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
cmpq $0x0, 0x48(%r15)
je 0x1dc31
cmpq $0x0, 0x28(%r14)
je 0x1dc31
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xd123(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, (%rsp)
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x1dc0c
callq 0x1af0e
movq 0x48(%r15), %rdi
movq 0x28(%r14), %rdx
movq (%rsp), %r8
subq $0x8, %rsp
movl $0x1, %esi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
cmpq $0x0, 0x58(%r15)
je 0x1dcd9
cmpq $0x0, 0x38(%r14)
je 0x1dcd9
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xd072(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq %rax, 0x18(%rsp)
testq %rdi, %rdi
je 0x1dcbe
callq 0x1af0e
movq 0x58(%r15), %rdi
movq 0x38(%r14), %rdx
movq 0x10(%rsp), %r8
movzbl %bpl, %ecx
movl $0x1, %esi
callq 0x1d6f4
movq (%rsp), %rax
testq %rax, %rax
je 0x1dd04
cmpq $0x0, 0x10(%rsp)
jne 0x1dd04
movq %rax, 0x38(%rbx)
leaq 0x40(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1c38c
movq 0x38(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, (%rsp)
jne 0x1dd2f
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x1dd2f
movq %rax, 0x38(%rbx)
leaq 0x40(%rbx), %rdi
leaq 0x18(%rsp), %rsi
callq 0x1c38c
movq 0x38(%rbx), %rax
movq %rbx, 0x68(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1dd67
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x1dd67
xorl %edx, %edx
callq 0x1c3d2
leaq 0x8(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x38(%rbx)
leaq 0x40(%rbx), %rdi
callq 0x1c38c
movq 0x38(%rbx), %rax
movq %rbx, 0x68(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
cmpq $0x0, 0x28(%r15)
je 0x1de0f
cmpq $0x0, 0x48(%r14)
je 0x1de0f
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xcf3c(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x40(%rsp)
movq 0x48(%rsp), %rdi
movq %rax, 0x48(%rsp)
testq %rdi, %rdi
je 0x1ddf4
callq 0x1af0e
movq 0x28(%r15), %rdi
movq 0x48(%r14), %rdx
movq 0x40(%rsp), %r8
movzbl %bpl, %ecx
movl $0x1, %esi
callq 0x1d6f4
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
cmpq $0x0, 0x48(%r15)
je 0x1debf
cmpq $0x0, 0x58(%r14)
je 0x1debf
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xce94(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x60(%rsp)
movq 0x68(%rsp), %rdi
movq %rax, 0x68(%rsp)
testq %rdi, %rdi
je 0x1de9c
callq 0x1af0e
movq 0x48(%r15), %rdi
movq 0x58(%r14), %rdx
movq 0x60(%rsp), %r8
subq $0x8, %rsp
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0x1deeb
cmpq $0x0, 0x60(%rsp)
jne 0x1deeb
movq %rax, 0x48(%rbx)
leaq 0x50(%rbx), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1c38c
movq 0x48(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, 0x40(%rsp)
jne 0x1df17
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1df17
movq %rax, 0x48(%rbx)
leaq 0x50(%rbx), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1c38c
movq 0x48(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x1df50
movq 0x60(%rsp), %rsi
testq %rsi, %rsi
je 0x1df50
xorl %edx, %edx
callq 0x1c3d2
leaq 0x48(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x48(%rbx)
leaq 0x50(%rbx), %rdi
callq 0x1c38c
movq 0x48(%rbx), %rax
movq %rbx, 0x68(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
cmpq $0x0, 0x48(%r15)
je 0x1e003
cmpq $0x0, 0x48(%r14)
je 0x1e003
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xcd53(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x30(%rsp)
movq 0x38(%rsp), %rdi
movq %rax, 0x38(%rsp)
testq %rdi, %rdi
je 0x1dfdd
callq 0x1af0e
movq 0x48(%r15), %rdi
movq 0x48(%r14), %rdx
movq 0x30(%rsp), %r8
subq $0x8, %rsp
movl $0x1, %esi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
cmpq $0x0, 0x58(%r15)
je 0x1e0ab
cmpq $0x0, 0x58(%r14)
je 0x1e0ab
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xcca0(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x50(%rsp)
movq 0x58(%rsp), %rdi
movq %rax, 0x58(%rsp)
testq %rdi, %rdi
je 0x1e090
callq 0x1af0e
movq 0x58(%r15), %rdi
movq 0x58(%r14), %rdx
movq 0x50(%rsp), %r8
movzbl %bpl, %ecx
movl $0x1, %esi
callq 0x1d6f4
movq 0x30(%rsp), %rax
testq %rax, %rax
je 0x1e0d7
cmpq $0x0, 0x50(%rsp)
jne 0x1e0d7
movq %rax, 0x58(%rbx)
leaq 0x60(%rbx), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1c38c
movq 0x58(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, 0x30(%rsp)
jne 0x1e103
movq 0x50(%rsp), %rax
testq %rax, %rax
je 0x1e103
movq %rax, 0x58(%rbx)
leaq 0x60(%rbx), %rdi
leaq 0x58(%rsp), %rsi
callq 0x1c38c
movq 0x58(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x1e13c
movq 0x50(%rsp), %rsi
testq %rsi, %rsi
je 0x1e13c
xorl %edx, %edx
callq 0x1c3d2
leaq 0x38(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x58(%rbx)
leaq 0x60(%rbx), %rdi
callq 0x1c38c
movq 0x58(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x1e14b
callq 0x1af0e
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x1e15a
callq 0x1af0e
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x1e169
callq 0x1af0e
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x1e178
callq 0x1af0e
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x1e187
callq 0x1af0e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1e196
callq 0x1af0e
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x1e1a5
callq 0x1af0e
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x1d802
jmp 0x1e9f8
testb %bpl, %bpl
je 0x1d802
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
cmpq $0x0, 0x28(%r15)
je 0x1e279
cmpq $0x0, 0x28(%r14)
je 0x1e279
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xcadc(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x80(%rsp)
movq 0x88(%rsp), %rdi
movq %rax, 0x88(%rsp)
testq %rdi, %rdi
je 0x1e25d
callq 0x1af0e
movq 0x28(%r15), %rdi
movq 0x28(%r14), %rdx
movq 0x80(%rsp), %r8
xorl %esi, %esi
movl $0x1, %ecx
callq 0x1d6f4
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
cmpq $0x0, 0x48(%r15)
je 0x1e32c
cmpq $0x0, 0x48(%r14)
je 0x1e32c
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xca2a(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movq %rax, 0x28(%rsp)
testq %rdi, %rdi
je 0x1e306
callq 0x1af0e
movq 0x48(%r15), %rdi
movq 0x48(%r14), %rdx
movq 0x20(%rsp), %r8
subq $0x8, %rsp
xorl %esi, %esi
movl $0x1, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
movq 0x80(%rsp), %rax
testq %rax, %rax
je 0x1e35e
cmpq $0x0, 0x20(%rsp)
jne 0x1e35e
movq %rax, 0x28(%rbx)
leaq 0x30(%rbx), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1c38c
movq 0x28(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, 0x80(%rsp)
jne 0x1e38d
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x1e38d
movq %rax, 0x28(%rbx)
leaq 0x30(%rbx), %rdi
leaq 0x28(%rsp), %rsi
callq 0x1c38c
movq 0x28(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x1e3cc
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x1e3cc
xorl %edx, %edx
callq 0x1c3d2
leaq 0x88(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x28(%rbx)
leaq 0x30(%rbx), %rdi
callq 0x1c38c
movq 0x28(%rbx), %rax
movq %rbx, 0x68(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
cmpq $0x0, 0x38(%r15)
je 0x1e46f
cmpq $0x0, 0x28(%r14)
je 0x1e46f
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xc8d8(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, (%rsp)
movq 0x8(%rsp), %rdi
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x1e457
callq 0x1af0e
movq 0x38(%r15), %rdi
movq 0x28(%r14), %rdx
movq (%rsp), %r8
xorl %esi, %esi
movl $0x1, %ecx
callq 0x1d6f4
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
cmpq $0x0, 0x58(%r15)
je 0x1e522
cmpq $0x0, 0x48(%r14)
je 0x1e522
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xc834(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq %rax, 0x18(%rsp)
testq %rdi, %rdi
je 0x1e4fc
callq 0x1af0e
movq 0x58(%r15), %rdi
movq 0x48(%r14), %rdx
movq 0x10(%rsp), %r8
subq $0x8, %rsp
xorl %esi, %esi
movl $0x1, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
movq (%rsp), %rax
testq %rax, %rax
je 0x1e54d
cmpq $0x0, 0x10(%rsp)
jne 0x1e54d
movq %rax, 0x38(%rbx)
leaq 0x40(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1c38c
movq 0x38(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, (%rsp)
jne 0x1e578
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x1e578
movq %rax, 0x38(%rbx)
leaq 0x40(%rbx), %rdi
leaq 0x18(%rsp), %rsi
callq 0x1c38c
movq 0x38(%rbx), %rax
movq %rbx, 0x68(%rax)
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1e5b0
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x1e5b0
xorl %edx, %edx
callq 0x1c3d2
leaq 0x8(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x38(%rbx)
leaq 0x40(%rbx), %rdi
callq 0x1c38c
movq 0x38(%rbx), %rax
movq %rbx, 0x68(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
cmpq $0x0, 0x28(%r15)
je 0x1e660
cmpq $0x0, 0x48(%r14)
je 0x1e660
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xc6f3(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x40(%rsp)
movq 0x48(%rsp), %rdi
movq %rax, 0x48(%rsp)
testq %rdi, %rdi
je 0x1e63d
callq 0x1af0e
movq 0x28(%r15), %rdi
movq 0x48(%r14), %rdx
movq 0x40(%rsp), %r8
subq $0x8, %rsp
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
cmpq $0x0, 0x48(%r15)
je 0x1e706
cmpq $0x0, 0x58(%r14)
je 0x1e706
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xc643(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x60(%rsp)
movq 0x68(%rsp), %rdi
movq %rax, 0x68(%rsp)
testq %rdi, %rdi
je 0x1e6ed
callq 0x1af0e
movq 0x48(%r15), %rdi
movq 0x58(%r14), %rdx
movq 0x60(%rsp), %r8
xorl %esi, %esi
movl $0x1, %ecx
callq 0x1d6f4
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0x1e732
cmpq $0x0, 0x60(%rsp)
jne 0x1e732
movq %rax, 0x48(%rbx)
leaq 0x50(%rbx), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1c38c
movq 0x48(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, 0x40(%rsp)
jne 0x1e75e
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1e75e
movq %rax, 0x48(%rbx)
leaq 0x50(%rbx), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1c38c
movq 0x48(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x1e797
movq 0x60(%rsp), %rsi
testq %rsi, %rsi
je 0x1e797
xorl %edx, %edx
callq 0x1c3d2
leaq 0x48(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x48(%rbx)
leaq 0x50(%rbx), %rdi
callq 0x1c38c
movq 0x48(%rbx), %rax
movq %rbx, 0x68(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
cmpq $0x0, 0x38(%r15)
je 0x1e847
cmpq $0x0, 0x48(%r14)
je 0x1e847
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xc50c(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x30(%rsp)
movq 0x38(%rsp), %rdi
movq %rax, 0x38(%rsp)
testq %rdi, %rdi
je 0x1e824
callq 0x1af0e
movq 0x38(%r15), %rdi
movq 0x48(%r14), %rdx
movq 0x30(%rsp), %r8
subq $0x8, %rsp
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x0
callq 0xa504
addq $0x10, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
cmpq $0x0, 0x58(%r15)
je 0x1e8ed
cmpq $0x0, 0x58(%r14)
je 0x1e8ed
movl $0x98, %edi
callq 0x21c0
movabsq $0x100000001, %rcx      # imm = 0x100000001
movq %rcx, 0x8(%rax)
leaq 0xc45c(%rip), %rcx      # 0x2ace0
movq %rcx, (%rax)
movq %rax, %rcx
addq $0x10, %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movl $0xffffffff, 0x20(%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movups %xmm0, 0x68(%rax)
movups %xmm0, 0x78(%rax)
movups %xmm0, 0x88(%rax)
movq %rcx, 0x50(%rsp)
movq 0x58(%rsp), %rdi
movq %rax, 0x58(%rsp)
testq %rdi, %rdi
je 0x1e8d4
callq 0x1af0e
movq 0x58(%r15), %rdi
movq 0x58(%r14), %rdx
movq 0x50(%rsp), %r8
xorl %esi, %esi
movl $0x1, %ecx
callq 0x1d6f4
movq 0x30(%rsp), %rax
testq %rax, %rax
je 0x1e919
cmpq $0x0, 0x50(%rsp)
jne 0x1e919
movq %rax, 0x58(%rbx)
leaq 0x60(%rbx), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1c38c
movq 0x58(%rbx), %rax
movq %rbx, 0x68(%rax)
cmpq $0x0, 0x30(%rsp)
jne 0x1e945
movq 0x50(%rsp), %rax
testq %rax, %rax
je 0x1e945
movq %rax, 0x58(%rbx)
leaq 0x60(%rbx), %rdi
leaq 0x58(%rsp), %rsi
callq 0x1c38c
movq 0x58(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x1e97e
movq 0x50(%rsp), %rsi
testq %rsi, %rsi
je 0x1e97e
xorl %edx, %edx
callq 0x1c3d2
leaq 0x38(%rsp), %rsi
movq -0x8(%rsi), %rax
movq %rax, 0x58(%rbx)
leaq 0x60(%rbx), %rdi
callq 0x1c38c
movq 0x58(%rbx), %rax
movq %rbx, 0x68(%rax)
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x1e98d
callq 0x1af0e
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x1e99c
callq 0x1af0e
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x1e9ab
callq 0x1af0e
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x1e9ba
callq 0x1af0e
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x1e9c9
callq 0x1af0e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1e9d8
callq 0x1af0e
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x1e9e7
callq 0x1af0e
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x1d802
callq 0x1af0e
jmp 0x1d802
movl $0x10, %edi
callq 0x20c0
movq %rax, %r14
leaq 0x5caf(%rip), %rsi      # 0x246c5
movq %rax, %rdi
callq 0x20a0
jmp 0x1ea78
movl $0x10, %edi
callq 0x20c0
movq %rax, %r14
leaq 0x5cfc(%rip), %rsi      # 0x24730
movq %rax, %rdi
callq 0x20a0
jmp 0x1ea78
movl $0x10, %edi
callq 0x20c0
movq %rax, %r14
leaq 0x5d46(%rip), %rsi      # 0x24798
movq %rax, %rdi
callq 0x20a0
jmp 0x1ea78
movl $0x10, %edi
callq 0x20c0
movq %rax, %r14
leaq 0x5d83(%rip), %rsi      # 0x247f3
movq %rax, %rdi
callq 0x20a0
movq 0xc571(%rip), %rsi      # 0x2aff0
movq 0xc53a(%rip), %rdx      # 0x2afc0
movq %r14, %rdi
callq 0x2290
jmp 0x1ea92
jmp 0x1eabb
movq %rax, %rbx
jmp 0x1eacd
jmp 0x1ea9b
jmp 0x1eaed
movq %rax, %rbx
jmp 0x1eaff
jmp 0x1eaa4
jmp 0x1eb1f
movq %rax, %rbx
jmp 0x1eb31
jmp 0x1eab3
jmp 0x1eb4e
movq %rax, %rbx
jmp 0x1eb60
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x1eacd
callq 0x1af0e
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x1eaf0
callq 0x1af0e
jmp 0x1eaf0
jmp 0x1eae5
jmp 0x1eb7f
movq %rax, %rbx
jmp 0x1eb91
movq %rax, %rbx
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x1eaff
callq 0x1af0e
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x1eb22
callq 0x1af0e
jmp 0x1eb22
jmp 0x1eb17
jmp 0x1eba2
movq %rax, %rbx
jmp 0x1ebb4
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x1eb31
callq 0x1af0e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1eb51
callq 0x1af0e
jmp 0x1eb51
jmp 0x1eb46
jmp 0x1ebc5
movq %rax, %rbx
jmp 0x1ebd7
movq %rax, %rbx
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x1eb60
callq 0x1af0e
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x1ec33
jmp 0x1ec07
jmp 0x1eb7a
jmp 0x1ebe8
movq %rax, %rbx
jmp 0x1ebfa
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x1eb91
callq 0x1af0e
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x1eba5
callq 0x1af0e
jmp 0x1eba5
movq %rax, %rbx
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x1ebb4
callq 0x1af0e
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x1ebc8
callq 0x1af0e
jmp 0x1ebc8
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x1ebd7
callq 0x1af0e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ebeb
callq 0x1af0e
jmp 0x1ebeb
movq %rax, %rbx
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x1ebfa
callq 0x1af0e
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x1ec33
callq 0x1af0e
jmp 0x1ec33
jmp 0x1ec14
jmp 0x1ec14
jmp 0x1ec14
movq %rax, %rbx
movq %r14, %rdi
callq 0x2140
jmp 0x1ec33
jmp 0x1ec23
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xebb2
movq %rbx, %rdi
callq 0x22b0
nop