// File: ridgelab[P]Kmer-SSR/test/src/findSSRs.cpp
// Function: test4()
bool test4()
{
	bool ret_val = true;

	Arguments* args;

	try
	{
		int argc = 12;
		char* argv[] = {
			(char*)("test4"),
			(char*)("-d"),
			(char*)("-i"),
			(char*)("test/input/4.fasta"),
			(char*)("-o"),
			(char*)("test/output/actual/4.tsv"),
			(char*)("-n"),
			(char*)("2"),
			(char*)("-l"),
			(char*)("2"),
			(char*)("-p"),
			(char*)("1,2,3,4,5,6,7")
		};

		args = new Arguments(argc, argv);

		if (!args->helpOrVersionDisplayed())
		{
			FindSSRs* find_ssrs = new FindSSRs(args);
			ret_val = find_ssrs->run() == 0 ? true : false;
			delete find_ssrs;

			if (ret_val)
			{
				ret_val = actualOutputMatchedExpected("test/output/actual/4.tsv", "test/output/expected/4.tsv");
			}
		}
	}
	catch(string error)
	{
		cerr << error << endl;
		ret_val = false;
	}
	catch(const char* error)
	{
		cerr << error << endl;
		ret_val = false;
	}
	
	delete args;

	return ret_val;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movb $0x1, -0x1(%rbp)
movl $0xc, -0x14(%rbp)
movaps 0x33e23(%rip), %xmm0    # 0x3aa50
movaps %xmm0, -0x30(%rbp)
movaps 0x33e08(%rip), %xmm0    # 0x3aa40
movaps %xmm0, -0x40(%rbp)
movaps 0x33ded(%rip), %xmm0    # 0x3aa30
movaps %xmm0, -0x50(%rbp)
movaps 0x33dd2(%rip), %xmm0    # 0x3aa20
movaps %xmm0, -0x60(%rbp)
movaps 0x33db7(%rip), %xmm0    # 0x3aa10
movaps %xmm0, -0x70(%rbp)
movaps 0x33d9c(%rip), %xmm0    # 0x3aa00
movaps %xmm0, -0x80(%rbp)
movl $0xf0, %edi
callq 0x53c0
movq %rax, -0x118(%rbp)
jmp 0x6c7b
movq -0x118(%rbp), %rdi
movl -0x14(%rbp), %esi
leaq -0x80(%rbp), %rdx
callq 0x11040
jmp 0x6c90
movq -0x118(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x12530
movb %al, -0x119(%rbp)
jmp 0x6cac
movb -0x119(%rbp), %al
testb $0x1, %al
jne 0x7009
jmp 0x6cbc
movl $0x40, %edi
callq 0x53c0
movq %rax, -0x128(%rbp)
jmp 0x6ccf
movq -0x128(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xb3c0
jmp 0x6ce1
movq -0x128(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rdi
callq 0xb690
movl %eax, -0x12c(%rbp)
jmp 0x6d03
movl -0x12c(%rbp), %ecx
xorl %eax, %eax
subl $0x1, %ecx
sbbl %eax, %eax
andb $0x1, %al
movb %al, -0x1(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x138(%rbp)
cmpq $0x0, %rax
je 0x6d46
movq -0x138(%rbp), %rdi
callq 0xb5c0
movq -0x138(%rbp), %rdi
movl $0x40, %esi
callq 0x53d0
testb $0x1, -0x1(%rbp)
je 0x7007
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x5720
movq -0x140(%rbp), %rdx
leaq 0x203f6(%rip), %rsi     # 0x27167
leaq -0xb8(%rbp), %rdi
callq 0x97a0
jmp 0x6d7f
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x5720
movq -0x148(%rbp), %rdx
leaq 0x203ee(%rip), %rsi     # 0x2718e
leaq -0xe0(%rbp), %rdi
callq 0x97a0
jmp 0x6dae
leaq -0xb8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x94e0
movb %al, -0x149(%rbp)
jmp 0x6dc9
movb -0x149(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x57a8
leaq -0xe1(%rbp), %rdi
callq 0x5430
leaq -0xb8(%rbp), %rdi
callq 0x57a8
leaq -0xb9(%rbp), %rdi
callq 0x5430
jmp 0x7007
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6ed7
movq -0x118(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0xf0, %esi
callq 0x53d0
jmp 0x6ed7
movq -0x128(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movl $0x40, %esi
callq 0x53d0
jmp 0x6ed7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6ecb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6eb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x57a8
leaq -0xe1(%rbp), %rdi
callq 0x5430
leaq -0xb8(%rbp), %rdi
callq 0x57a8
leaq -0xb9(%rbp), %rdi
callq 0x5430
movl -0x8c(%rbp), %eax
movl %eax, -0x150(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x6fa2
movq -0x88(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x54f0
movq %rax, %rsi
leaq -0x110(%rbp), %rdi
callq 0x5190
jmp 0x6f14
movq -0x158(%rbp), %rdi
callq 0x5170
movq 0x340c1(%rip), %rdi     # 0x3afe8
leaq -0x110(%rbp), %rsi
callq 0x5360
movq %rax, -0x160(%rbp)
jmp 0x6f3c
movq -0x160(%rbp), %rdi
movq 0x3403e(%rip), %rsi     # 0x3af88
callq 0x5400
jmp 0x6f51
movb $0x0, -0x1(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x57a8
callq 0x5660
movq -0x10(%rbp), %rax
movq %rax, -0x168(%rbp)
cmpq $0x0, %rax
je 0x6f94
movq -0x168(%rbp), %rdi
callq 0x12420
movq -0x168(%rbp), %rdi
movl $0xf0, %esi
callq 0x53d0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movl -0x150(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x704e
movq -0x88(%rbp), %rdi
callq 0x5170
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rsi
movq 0x34012(%rip), %rdi     # 0x3afe8
callq 0x53b0
movq %rax, -0x170(%rbp)
jmp 0x6fe4
movq -0x170(%rbp), %rdi
movq 0x33f96(%rip), %rsi     # 0x3af88
callq 0x5400
jmp 0x6ff9
movb $0x0, -0x1(%rbp)
callq 0x5660
jmp 0x6f66
jmp 0x7009
jmp 0x6f66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
callq 0x5660
jmp 0x704e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x57a8
callq 0x5660
jmp 0x704c
jmp 0x704e
movq -0x88(%rbp), %rdi
callq 0x5700
movq %rax, %rdi
callq 0x9a70
nopw %cs:(%rax,%rax)