// File: /workspace/github_cpp_makefile_star2_O1/CMU-SAFARI[P]optimal-seed-solver/testTemplateClass.cc
// Function: main
int main(int argc, const char* argv[]) {
	templateClass test;
	if (argc != 2) {
		cerr << "Please also put the tree file name" << endl;
		exit(1);
	}

	test.loadTree(argv[1]);

	while (1) {
		cout << "please input DNA string: " << endl;
		string DNA;
		cin >> DNA;

		cout << "please input number of thresholds: ";
		int input;
		cin >> input;
		
		cout << "please input thresholds, one by one:" << endl;

		vector<int> thresholds(input, 1);
		for (int i = 0; i < thresholds.size(); i++)
			cin >> thresholds[i];

		test.setThresholdVec(thresholds);
		test.analyzeRead(DNA);
		test.printInfo();
	}

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x448, %rsp            # imm = 0x448
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x88(%rsp), %rdi
callq 0x3d50
cmpl $0x2, %ebp
jne 0x3908
movq 0x8(%rbx), %rsi
leaq 0x68(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x3a62
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x3e4a
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3728
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3270
leaq 0x38(%rsp), %r14
leaq 0x58(%rsp), %r13
movq 0xa89f(%rip), %r15      # 0xdfd8
leaq 0x10(%rsp), %rbx
movl $0x19, %edx
movq 0xa87e(%rip), %rdi      # 0xdfc8
leaq 0x6912(%rip), %rsi      # 0xa063
callq 0x32c0
movq 0xa86b(%rip), %rcx      # 0xdfc8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq 0xa84d(%rip), %rdi      # 0xdfc8
callq 0x3040
movq %rax, %rdi
callq 0x31c0
movq %r14, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
movb $0x0, 0x38(%rsp)
movq %r15, %rdi
leaq 0x28(%rsp), %rsi
callq 0x3320
movl $0x23, %edx
movq 0xa814(%rip), %rdi      # 0xdfc8
leaq 0x68c2(%rip), %rsi      # 0xa07d
callq 0x32c0
movq %r15, %rdi
leaq 0xc(%rsp), %rsi
callq 0x3180
movl $0x24, %edx
movq 0xa7ef(%rip), %rdi      # 0xdfc8
leaq 0x68c1(%rip), %rsi      # 0xa0a1
callq 0x32c0
movq 0xa7dc(%rip), %rcx      # 0xdfc8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq 0xa7be(%rip), %rdi      # 0xdfc8
callq 0x3040
movq %rax, %rdi
callq 0x31c0
movslq 0xc(%rsp), %rsi
movl $0x1, 0x8(%rsp)
movq %rbx, %rdi
leaq 0x8(%rsp), %rdx
leaq 0x7(%rsp), %rcx
callq 0x3aa0
movq 0x10(%rsp), %rsi
cmpq %rsi, 0x18(%rsp)
je 0x386f
xorl %ebp, %ebp
xorl %r12d, %r12d
addq %rbp, %rsi
movq %r15, %rdi
callq 0x3180
incq %r12
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rax
subq %rsi, %rax
sarq $0x2, %rax
addq $0x4, %rbp
cmpq %r12, %rax
ja 0x3847
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x3ec8
movq %r13, 0x48(%rsp)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x3c14
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x3f2c
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x38c4
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3270
leaq 0x88(%rsp), %rdi
callq 0x40d8
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x38e8
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3270
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x373e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3270
jmp 0x373e
movq 0xa6e1(%rip), %rbx      # 0xdff0
leaq 0x672a(%rip), %rsi      # 0xa040
movl $0x22, %edx
movq %rbx, %rdi
callq 0x32c0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq 0xa6af(%rip), %rdi      # 0xdff0
callq 0x3040
movq %rax, %rdi
callq 0x31c0
movl $0x1, %edi
callq 0x32e0
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x3984
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3270
jmp 0x3984
jmp 0x397c
jmp 0x397c
jmp 0x3981
jmp 0x39ce
movq %rax, %rbx
jmp 0x399b
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x399b
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3270
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x39d1
movq 0x38(%rsp), %rsi
jmp 0x39c2
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39d1
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x3270
jmp 0x39d1
jmp 0x39ce
movq %rax, %rbx
movq 0x430(%rsp), %rdi
testq %rdi, %rdi
je 0x39ee
movq 0x440(%rsp), %rsi
subq %rdi, %rsi
callq 0x3270
movq 0x418(%rsp), %rdi
testq %rdi, %rdi
je 0x3a0b
movq 0x428(%rsp), %rsi
subq %rdi, %rsi
callq 0x3270
movq 0x400(%rsp), %rdi
testq %rdi, %rdi
je 0x3a28
movq 0x410(%rsp), %rsi
subq %rdi, %rsi
callq 0x3270
leaq 0xa8(%rsp), %r14
movq %r14, %rdi
callq 0x4f44
movq -0x20(%r14), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x3a59
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x3270
movq %rbx, %rdi
callq 0x3440
nop