// File: ChnMasterOG[P]KmerGO2/kmergo/kmer_assembly.cpp
// Function: kmer_assembly(KmerGO_parameters&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
short kmer_assembly(KmerGO_parameters& p, std::string& loginfo)
{
	std::string onput_file_name_A = joinPath(p.results_path, "Afeatures.fa");
	std::string onput_file_name_B = joinPath(p.results_path, "Bfeatures.fa");
	std::ofstream output_file_A(onput_file_name_A);
	std::ofstream output_file_B(onput_file_name_B);
	std::vector<std::string> files_vec;
	std::string line;
	std::string NameA, NameB;
	uint64 countA = 0, countB = 0;

	getFiles(p.features_path, files_vec, false);

	for (auto f : files_vec)
	{
		if (f.compare(0, 11, "categorical") == 0)
		{
			if (p.mode != 0)
			{
				loginfo = "Mode Error!";
				return 1;
			}
		}
		else if (f.compare(0, 10, "continuous") == 0)
		{
			if (p.mode != 1)
			{
				loginfo = "Mode Error!";
				return 1;
			}
		}
		else
		{
			loginfo = "Unrecognized Files!";
			return 1;
		}
		std::ifstream input_file(joinPath(p.features_path, f));
		std::getline(input_file, line);	// skip headtext
		while (std::getline(input_file, line))
		{
			if (line[line.size() - 1] == '\r')
			{
				line = line.substr(0, line.size() - 1);
			}
			std::string label;
			if (p.mode == 0)
			{
				label = line.substr(line.rfind('\t') + 1);
			}
			else
			{
				label = "Result";
			}
			if (NameA.empty())
			{
				NameA = label;
			}
			else if (NameB.empty() && NameA.compare(label) != 0)
			{
				NameB = label;
			}
			if (NameA.compare(label) == 0)
			{
				countA++;
				output_file_A << '>' << std::to_string(countA) << '\n' << line.substr(0, line.find('\t')) << '\n';
			}
			else if (NameB.compare(label) == 0)
			{
				countB++;
				output_file_B << '>' << std::to_string(countB) << '\n' << line.substr(0, line.find('\t')) << '\n';
			}
		}
	}

	uint32 r, r1 = 0, r2 = 0;
	std::string cmd, current_path;
	current_path = getCWD();

	if (!NameA.empty())
	{
		cmd = "mv " + onput_file_name_A + " " + joinPath(p.results_path, NameA + "_specific.fa");
		r = system(cmd.c_str());
		if (r)
		{
			loginfo = "mv Command Error!";
			return 3;
		}
	}
	else
	{
		cmd = "rm " + joinPath(p.results_path, "Afeatures.fa");
		r = system(cmd.c_str());
	}
	if (!NameB.empty())
	{
		cmd = "mv " + onput_file_name_B + " " + joinPath(p.results_path, NameB + "_specific.fa");
		r = system(cmd.c_str());
		if (r)
		{
			loginfo = "mv Command Error!";
			return 3;
		}
	}
	else
	{
		cmd = "rm " + joinPath(p.results_path, "Bfeatures.fa");
		r = system(cmd.c_str());
	}

	if (!NameA.empty())
	{
		cmd = joinPath(current_path, "bin/cap3 ") + joinPath(p.results_path, NameA + "_specific.fa") + " -i 30  -j 31  -o 18  -s 300";
		r = system(cmd.c_str());
		if (r)
		{
			loginfo = "CAP3 Software Error!";
			return 2;
		}
		cmd = "mv " + joinPath(p.results_path, NameA + "_specific.fa") + " " + joinPath(p.results_path, NameA + "_specific_kmer.fa");
		r = system(cmd.c_str());
		if (r)
		{
			loginfo = "mv Command Error!";
			return 3;
		}
	}
	else
	{
		r1 = 1;
	}
	
	if (!NameB.empty())
	{
		cmd = joinPath(current_path, "bin/cap3 ") + joinPath(p.results_path, NameB + "_specific.fa") + " -i 30  -j 31  -o 18  -s 300";
		r = system(cmd.c_str());
		if (r)
		{
			loginfo = "CAP3 Software Error!";
			return 2;
		}
		cmd = "mv " + joinPath(p.results_path, NameB + "_specific.fa") + " " + joinPath(p.results_path, NameB + "_specific_kmer.fa");
		r = system(cmd.c_str());
		if (r)
		{
			loginfo = "mv Command Error!";
			return 3;
		}
	}
	else
	{
		r2 = 1;
	}
	
	if (r1 && r2)
	{
		loginfo = "No specific k-mer!";
		return 5;
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1220, %rsp           # imm = 0x1220
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0x58(%rbp), %rdi
callq 0x4a15e0
leaq -0x79(%rbp), %rdi
movq %rdi, -0x1080(%rbp)
callq 0x42ffd0
movq -0x1080(%rbp), %rdx
leaq 0x199cd5(%rip), %rsi    # 0x5b661a
leaq -0x78(%rbp), %rdi
callq 0x406db0
jmp 0x41c950
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x407470
jmp 0x41c963
leaq -0x78(%rbp), %rdi
callq 0x49efd0
leaq -0x79(%rbp), %rdi
callq 0x42fff0
leaq -0x58(%rbp), %rdi
callq 0x49efd0
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xd0(%rbp), %rdi
callq 0x4a15e0
jmp 0x41c997
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x1088(%rbp)
callq 0x42ffd0
movq -0x1088(%rbp), %rdx
leaq 0x199c6f(%rip), %rsi    # 0x5b6627
leaq -0xf0(%rbp), %rdi
callq 0x406db0
jmp 0x41c9c6
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xf0(%rbp), %rdx
callq 0x407470
jmp 0x41c9e2
leaq -0xf0(%rbp), %rdi
callq 0x49efd0
leaq -0xf1(%rbp), %rdi
callq 0x42fff0
leaq -0xd0(%rbp), %rdi
callq 0x49efd0
leaq -0x2f8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x10, %edx
callq 0x475230
jmp 0x41ca1d
leaq -0x4f8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
movl $0x10, %edx
callq 0x475230
jmp 0x41ca37
leaq -0x510(%rbp), %rdi
callq 0x406f20
leaq -0x530(%rbp), %rdi
callq 0x49eec0
leaq -0x550(%rbp), %rdi
callq 0x49eec0
leaq -0x570(%rbp), %rdi
callq 0x49eec0
movq $0x0, -0x578(%rbp)
movq $0x0, -0x580(%rbp)
movq -0x10(%rbp), %rsi
subq $-0x80, %rsi
leaq -0x5a0(%rbp), %rdi
callq 0x4a15e0
jmp 0x41ca93
leaq -0x5a0(%rbp), %rdi
leaq -0x510(%rbp), %rsi
xorl %edx, %edx
callq 0x406fc0
jmp 0x41caaa
leaq -0x5a0(%rbp), %rdi
callq 0x49efd0
leaq -0x510(%rbp), %rax
movq %rax, -0x5a8(%rbp)
movq -0x5a8(%rbp), %rdi
callq 0x407e90
movq %rax, -0x5b0(%rbp)
movq -0x5a8(%rbp), %rdi
callq 0x407cd0
movq %rax, -0x5b8(%rbp)
leaq -0x5b0(%rbp), %rdi
leaq -0x5b8(%rbp), %rsi
callq 0x40d3f0
testb $0x1, %al
jne 0x41cb06
jmp 0x41d3cc
leaq -0x5b0(%rbp), %rdi
callq 0x408400
movq %rax, %rsi
leaq -0x5d8(%rbp), %rdi
callq 0x4a15e0
jmp 0x41cb23
leaq 0x199b0a(%rip), %rcx    # 0x5b6634
xorl %eax, %eax
movl %eax, %esi
leaq -0x5d8(%rbp), %rdi
movl $0xb, %edx
callq 0x4a1250
movl %eax, -0x108c(%rbp)
jmp 0x41cb47
movl -0x108c(%rbp), %eax
cmpl $0x0, %eax
jne 0x41ccbe
movq -0x10(%rbp), %rax
movzbl 0xe(%rax), %eax
cmpl $0x0, %eax
je 0x41ccb9
movq -0x18(%rbp), %rdi
leaq 0x199ace(%rip), %rsi    # 0x5b6640
callq 0x4a0020
jmp 0x41cb79
movw $0x1, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41d380
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41cbbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x49efd0
leaq -0x79(%rbp), %rdi
callq 0x42fff0
leaq -0x58(%rbp), %rdi
callq 0x49efd0
jmp 0x41e853
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e84a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41cc1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x49efd0
leaq -0xf1(%rbp), %rdi
callq 0x42fff0
leaq -0xd0(%rbp), %rdi
callq 0x49efd0
jmp 0x41e84a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e83e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e832
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e7f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x5a0(%rbp), %rdi
callq 0x49efd0
jmp 0x41e7f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d3bb
jmp 0x41cd4c
leaq 0x199987(%rip), %rcx    # 0x5b664c
xorl %eax, %eax
movl %eax, %esi
leaq -0x5d8(%rbp), %rdi
movl $0xa, %edx
callq 0x4a1250
movl %eax, -0x1090(%rbp)
jmp 0x41cce2
movl -0x1090(%rbp), %eax
cmpl $0x0, %eax
jne 0x41cd23
movq -0x10(%rbp), %rax
movzbl 0xe(%rax), %eax
cmpl $0x1, %eax
je 0x41cd21
movq -0x18(%rbp), %rdi
leaq 0x19993b(%rip), %rsi    # 0x5b6640
callq 0x4a0020
jmp 0x41cd0c
movw $0x1, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41d380
jmp 0x41cd4a
movq -0x18(%rbp), %rdi
leaq 0x199929(%rip), %rsi    # 0x5b6657
callq 0x4a0020
jmp 0x41cd35
movw $0x1, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41d380
jmp 0x41cd4c
movq -0x10(%rbp), %rsi
subq $-0x80, %rsi
leaq -0x828(%rbp), %rdi
callq 0x4a15e0
jmp 0x41cd62
leaq -0x848(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
callq 0x4a15e0
jmp 0x41cd77
leaq -0x808(%rbp), %rdi
leaq -0x828(%rbp), %rsi
leaq -0x848(%rbp), %rdx
callq 0x407470
jmp 0x41cd93
leaq -0x7e8(%rbp), %rdi
leaq -0x808(%rbp), %rsi
movl $0x8, %edx
callq 0x4750c0
jmp 0x41cdad
leaq -0x808(%rbp), %rdi
callq 0x49efd0
leaq -0x848(%rbp), %rdi
callq 0x49efd0
leaq -0x828(%rbp), %rdi
callq 0x49efd0
leaq -0x7e8(%rbp), %rdi
leaq -0x530(%rbp), %rsi
callq 0x4a1890
jmp 0x41cde6
jmp 0x41cde8
leaq -0x7e8(%rbp), %rdi
leaq -0x530(%rbp), %rsi
callq 0x4a1890
movq %rax, -0x1098(%rbp)
jmp 0x41ce04
movq -0x1098(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x479520
movb %al, -0x1099(%rbp)
jmp 0x41ce22
movb -0x1099(%rbp), %al
testb $0x1, %al
jne 0x41ce31
jmp 0x41d36a
leaq -0x530(%rbp), %rdi
movq %rdi, -0x10b0(%rbp)
callq 0x49f1f0
movq -0x10b0(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x49f510
movq %rax, -0x10a8(%rbp)
jmp 0x41ce5f
movq -0x10a8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xd, %eax
jne 0x41cf3f
leaq -0x530(%rbp), %rdi
movq %rdi, -0x10b8(%rbp)
callq 0x49f1f0
movq -0x10b8(%rbp), %rsi
movq %rax, %rcx
decq %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x868(%rbp), %rdi
callq 0x4a1800
jmp 0x41cea4
leaq -0x530(%rbp), %rdi
leaq -0x868(%rbp), %rsi
callq 0x49f020
leaq -0x868(%rbp), %rdi
callq 0x49efd0
jmp 0x41cf3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41cf17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41cf0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x808(%rbp), %rdi
callq 0x49efd0
leaq -0x848(%rbp), %rdi
callq 0x49efd0
leaq -0x828(%rbp), %rdi
callq 0x49efd0
jmp 0x41d3bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d3af
leaq -0x888(%rbp), %rdi
callq 0x49eec0
movq -0x10(%rbp), %rax
movzbl 0xe(%rax), %eax
cmpl $0x0, %eax
jne 0x41cfdc
leaq -0x530(%rbp), %rdi
movq %rdi, -0x10c8(%rbp)
movl $0x9, %esi
movq $-0x1, %rdx
movq %rdx, -0x10c0(%rbp)
callq 0x4a0c70
movq -0x10c8(%rbp), %rsi
movq -0x10c0(%rbp), %rcx
movq %rax, %rdx
incq %rdx
leaq -0x8a8(%rbp), %rdi
callq 0x4a1800
jmp 0x41cfa4
leaq -0x888(%rbp), %rdi
leaq -0x8a8(%rbp), %rsi
callq 0x49f020
leaq -0x8a8(%rbp), %rdi
callq 0x49efd0
jmp 0x41cff3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d35c
leaq 0x199688(%rip), %rsi    # 0x5b666b
leaq -0x888(%rbp), %rdi
callq 0x4a0020
jmp 0x41cff1
jmp 0x41cff3
leaq -0x550(%rbp), %rdi
callq 0x49f4f0
testb $0x1, %al
jne 0x41d005
jmp 0x41d01c
leaq -0x550(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x49f000
jmp 0x41d01a
jmp 0x41d06d
leaq -0x570(%rbp), %rdi
callq 0x49f4f0
testb $0x1, %al
jne 0x41d02e
jmp 0x41d06b
leaq -0x550(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x4a1030
movl %eax, -0x10cc(%rbp)
jmp 0x41d049
movl -0x10cc(%rbp), %eax
cmpl $0x0, %eax
je 0x41d06b
leaq -0x570(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x49f000
jmp 0x41d069
jmp 0x41d06b
jmp 0x41d06d
leaq -0x550(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x4a1030
movl %eax, -0x10d0(%rbp)
jmp 0x41d088
movl -0x10d0(%rbp), %eax
cmpl $0x0, %eax
jne 0x41d1de
movq -0x578(%rbp), %rax
incq %rax
movq %rax, -0x578(%rbp)
leaq -0x2f8(%rbp), %rdi
movl $0x3e, %esi
callq 0x498b30
movq %rax, -0x10d8(%rbp)
jmp 0x41d0c2
movq -0x578(%rbp), %rsi
leaq -0x8c8(%rbp), %rdi
callq 0x41e860
jmp 0x41d0d7
movq -0x10d8(%rbp), %rdi
leaq -0x8c8(%rbp), %rsi
callq 0x4a1880
movq %rax, -0x10e0(%rbp)
jmp 0x41d0f3
movq -0x10e0(%rbp), %rdi
movl $0xa, %esi
callq 0x498b30
movq %rax, -0x10e8(%rbp)
jmp 0x41d10d
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x10f0(%rbp)
leaq -0x530(%rbp), %rdi
movq %rdi, -0x10f8(%rbp)
movl $0x9, %esi
callq 0x4a0b60
movq -0x10f8(%rbp), %rsi
movq -0x10f0(%rbp), %rdx
movq %rax, %rcx
leaq -0x8e8(%rbp), %rdi
callq 0x4a1800
jmp 0x41d14f
movq -0x10e8(%rbp), %rdi
leaq -0x8e8(%rbp), %rsi
callq 0x4a1880
movq %rax, -0x1100(%rbp)
jmp 0x41d16b
movq -0x1100(%rbp), %rdi
movl $0xa, %esi
callq 0x498b30
jmp 0x41d17e
leaq -0x8e8(%rbp), %rdi
callq 0x49efd0
leaq -0x8c8(%rbp), %rdi
callq 0x49efd0
jmp 0x41d34b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d1cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x8e8(%rbp), %rdi
callq 0x49efd0
leaq -0x8c8(%rbp), %rdi
callq 0x49efd0
jmp 0x41d35c
leaq -0x570(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x4a1030
movl %eax, -0x1104(%rbp)
jmp 0x41d1f9
movl -0x1104(%rbp), %eax
cmpl $0x0, %eax
jne 0x41d349
movq -0x580(%rbp), %rax
incq %rax
movq %rax, -0x580(%rbp)
leaq -0x4f8(%rbp), %rdi
movl $0x3e, %esi
callq 0x498b30
movq %rax, -0x1110(%rbp)
jmp 0x41d233
movq -0x580(%rbp), %rsi
leaq -0x908(%rbp), %rdi
callq 0x41e860
jmp 0x41d248
movq -0x1110(%rbp), %rdi
leaq -0x908(%rbp), %rsi
callq 0x4a1880
movq %rax, -0x1118(%rbp)
jmp 0x41d264
movq -0x1118(%rbp), %rdi
movl $0xa, %esi
callq 0x498b30
movq %rax, -0x1120(%rbp)
jmp 0x41d27e
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x1128(%rbp)
leaq -0x530(%rbp), %rdi
movq %rdi, -0x1130(%rbp)
movl $0x9, %esi
callq 0x4a0b60
movq -0x1130(%rbp), %rsi
movq -0x1128(%rbp), %rdx
movq %rax, %rcx
leaq -0x928(%rbp), %rdi
callq 0x4a1800
jmp 0x41d2c0
movq -0x1120(%rbp), %rdi
leaq -0x928(%rbp), %rsi
callq 0x4a1880
movq %rax, -0x1138(%rbp)
jmp 0x41d2dc
movq -0x1138(%rbp), %rdi
movl $0xa, %esi
callq 0x498b30
jmp 0x41d2ef
leaq -0x928(%rbp), %rdi
callq 0x49efd0
leaq -0x908(%rbp), %rdi
callq 0x49efd0
jmp 0x41d349
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d33b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x928(%rbp), %rdi
callq 0x49efd0
leaq -0x908(%rbp), %rdi
callq 0x49efd0
jmp 0x41d35c
jmp 0x41d34b
leaq -0x888(%rbp), %rdi
callq 0x49efd0
jmp 0x41cde8
leaq -0x888(%rbp), %rdi
callq 0x49efd0
jmp 0x41d3af
leaq -0x7e8(%rbp), %rdi
callq 0x475df0
movl $0x0, -0x5dc(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x49efd0
movl -0x5dc(%rbp), %eax
testl %eax, %eax
jne 0x41e78c
jmp 0x41d39c
jmp 0x41d39e
leaq -0x5b0(%rbp), %rdi
callq 0x40d430
jmp 0x41caea
leaq -0x7e8(%rbp), %rdi
callq 0x475df0
leaq -0x5d8(%rbp), %rdi
callq 0x49efd0
jmp 0x41e7f6
movl $0x0, -0x930(%rbp)
movl $0x0, -0x934(%rbp)
leaq -0x958(%rbp), %rdi
callq 0x49eec0
leaq -0x978(%rbp), %rdi
callq 0x49eec0
leaq -0x998(%rbp), %rdi
callq 0x406f40
jmp 0x41d406
leaq -0x978(%rbp), %rdi
leaq -0x998(%rbp), %rsi
callq 0x49f020
leaq -0x998(%rbp), %rdi
callq 0x49efd0
leaq -0x550(%rbp), %rdi
callq 0x49f4f0
testb $0x1, %al
jne 0x41d65f
leaq 0x198c76(%rip), %rsi    # 0x5b60b6
leaq -0x9f8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x40bd30
jmp 0x41d452
leaq 0x198f57(%rip), %rdx    # 0x5b63b0
leaq -0x9d8(%rbp), %rdi
leaq -0x9f8(%rbp), %rsi
callq 0x407350
jmp 0x41d46e
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xa38(%rbp), %rdi
callq 0x4a15e0
jmp 0x41d487
leaq 0x1991e4(%rip), %rdx    # 0x5b6672
leaq -0xa58(%rbp), %rdi
leaq -0x550(%rbp), %rsi
callq 0x41e940
jmp 0x41d4a3
leaq -0xa18(%rbp), %rdi
leaq -0xa38(%rbp), %rsi
leaq -0xa58(%rbp), %rdx
callq 0x407470
jmp 0x41d4bf
leaq -0x9b8(%rbp), %rdi
leaq -0x9d8(%rbp), %rsi
leaq -0xa18(%rbp), %rdx
callq 0x4073a0
jmp 0x41d4db
leaq -0x958(%rbp), %rdi
movq %rdi, -0x1148(%rbp)
leaq -0x9b8(%rbp), %rsi
movq %rsi, -0x1150(%rbp)
callq 0x49f020
movq -0x1150(%rbp), %rdi
callq 0x49efd0
leaq -0xa18(%rbp), %rdi
callq 0x49efd0
leaq -0xa58(%rbp), %rdi
callq 0x49efd0
leaq -0xa38(%rbp), %rdi
callq 0x49efd0
leaq -0x9d8(%rbp), %rdi
callq 0x49efd0
leaq -0x9f8(%rbp), %rdi
callq 0x49efd0
movq -0x1148(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x113c(%rbp)
jmp 0x41d560
movl -0x113c(%rbp), %eax
movl %eax, -0x92c(%rbp)
cmpl $0x0, -0x92c(%rbp)
je 0x41d65a
movq -0x18(%rbp), %rdi
leaq 0x1990fb(%rip), %rsi    # 0x5b667f
callq 0x4a0020
jmp 0x41d58b
movw $0x3, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41e758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e772
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d649
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d63d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d631
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d625
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xa18(%rbp), %rdi
callq 0x49efd0
leaq -0xa58(%rbp), %rdi
callq 0x49efd0
leaq -0xa38(%rbp), %rdi
callq 0x49efd0
leaq -0x9d8(%rbp), %rdi
callq 0x49efd0
leaq -0x9f8(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
jmp 0x41d7d5
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xab8(%rbp), %rdi
callq 0x4a15e0
jmp 0x41d678
leaq -0xad9(%rbp), %rdi
movq %rdi, -0x1158(%rbp)
callq 0x42ffd0
movq -0x1158(%rbp), %rdx
leaq 0x198f81(%rip), %rsi    # 0x5b661a
leaq -0xad8(%rbp), %rdi
callq 0x406db0
jmp 0x41d6a7
leaq -0xa98(%rbp), %rdi
leaq -0xab8(%rbp), %rsi
leaq -0xad8(%rbp), %rdx
callq 0x407470
jmp 0x41d6c3
leaq 0x1989c2(%rip), %rsi    # 0x5b608c
leaq -0xa78(%rbp), %rdi
leaq -0xa98(%rbp), %rdx
callq 0x4077b0
jmp 0x41d6df
leaq -0x958(%rbp), %rdi
movq %rdi, -0x1168(%rbp)
leaq -0xa78(%rbp), %rsi
movq %rsi, -0x1170(%rbp)
callq 0x49f020
movq -0x1170(%rbp), %rdi
callq 0x49efd0
leaq -0xa98(%rbp), %rdi
callq 0x49efd0
leaq -0xad8(%rbp), %rdi
callq 0x49efd0
leaq -0xad9(%rbp), %rdi
callq 0x42fff0
leaq -0xab8(%rbp), %rdi
callq 0x49efd0
movq -0x1168(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x115c(%rbp)
jmp 0x41d758
movl -0x115c(%rbp), %eax
movl %eax, -0x92c(%rbp)
jmp 0x41d7d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d7b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d7ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xa98(%rbp), %rdi
callq 0x49efd0
leaq -0xad8(%rbp), %rdi
callq 0x49efd0
leaq -0xad9(%rbp), %rdi
callq 0x42fff0
leaq -0xab8(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
leaq -0x570(%rbp), %rdi
callq 0x49f4f0
testb $0x1, %al
jne 0x41d9fb
leaq 0x1988c6(%rip), %rsi    # 0x5b60b6
leaq -0xb40(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0x40bd30
jmp 0x41d805
leaq 0x198ba4(%rip), %rdx    # 0x5b63b0
leaq -0xb20(%rbp), %rdi
leaq -0xb40(%rbp), %rsi
callq 0x407350
jmp 0x41d821
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xb80(%rbp), %rdi
callq 0x4a15e0
jmp 0x41d83a
leaq 0x198e31(%rip), %rdx    # 0x5b6672
leaq -0xba0(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x41e940
jmp 0x41d856
leaq -0xb60(%rbp), %rdi
leaq -0xb80(%rbp), %rsi
leaq -0xba0(%rbp), %rdx
callq 0x407470
jmp 0x41d872
leaq -0xb00(%rbp), %rdi
leaq -0xb20(%rbp), %rsi
leaq -0xb60(%rbp), %rdx
callq 0x4073a0
jmp 0x41d88e
leaq -0x958(%rbp), %rdi
movq %rdi, -0x1180(%rbp)
leaq -0xb00(%rbp), %rsi
movq %rsi, -0x1188(%rbp)
callq 0x49f020
movq -0x1188(%rbp), %rdi
callq 0x49efd0
leaq -0xb60(%rbp), %rdi
callq 0x49efd0
leaq -0xba0(%rbp), %rdi
callq 0x49efd0
leaq -0xb80(%rbp), %rdi
callq 0x49efd0
leaq -0xb20(%rbp), %rdi
callq 0x49efd0
leaq -0xb40(%rbp), %rdi
callq 0x49efd0
movq -0x1180(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x1174(%rbp)
jmp 0x41d913
movl -0x1174(%rbp), %eax
movl %eax, -0x92c(%rbp)
cmpl $0x0, -0x92c(%rbp)
je 0x41d9f6
movq -0x18(%rbp), %rdi
leaq 0x198d48(%rip), %rsi    # 0x5b667f
callq 0x4a0020
jmp 0x41d93e
movw $0x3, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41e758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d9e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d9d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d9cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41d9c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xb60(%rbp), %rdi
callq 0x49efd0
leaq -0xba0(%rbp), %rdi
callq 0x49efd0
leaq -0xb80(%rbp), %rdi
callq 0x49efd0
leaq -0xb20(%rbp), %rdi
callq 0x49efd0
leaq -0xb40(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
jmp 0x41db71
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xc00(%rbp), %rdi
callq 0x4a15e0
jmp 0x41da14
leaq -0xc21(%rbp), %rdi
movq %rdi, -0x1190(%rbp)
callq 0x42ffd0
movq -0x1190(%rbp), %rdx
leaq 0x198bf2(%rip), %rsi    # 0x5b6627
leaq -0xc20(%rbp), %rdi
callq 0x406db0
jmp 0x41da43
leaq -0xbe0(%rbp), %rdi
leaq -0xc00(%rbp), %rsi
leaq -0xc20(%rbp), %rdx
callq 0x407470
jmp 0x41da5f
leaq 0x198626(%rip), %rsi    # 0x5b608c
leaq -0xbc0(%rbp), %rdi
leaq -0xbe0(%rbp), %rdx
callq 0x4077b0
jmp 0x41da7b
leaq -0x958(%rbp), %rdi
movq %rdi, -0x11a0(%rbp)
leaq -0xbc0(%rbp), %rsi
movq %rsi, -0x11a8(%rbp)
callq 0x49f020
movq -0x11a8(%rbp), %rdi
callq 0x49efd0
leaq -0xbe0(%rbp), %rdi
callq 0x49efd0
leaq -0xc20(%rbp), %rdi
callq 0x49efd0
leaq -0xc21(%rbp), %rdi
callq 0x42fff0
leaq -0xc00(%rbp), %rdi
callq 0x49efd0
movq -0x11a0(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x1194(%rbp)
jmp 0x41daf4
movl -0x1194(%rbp), %eax
movl %eax, -0x92c(%rbp)
jmp 0x41db71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41db54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41db48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xbe0(%rbp), %rdi
callq 0x49efd0
leaq -0xc20(%rbp), %rdi
callq 0x49efd0
leaq -0xc21(%rbp), %rdi
callq 0x42fff0
leaq -0xc00(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
leaq -0x550(%rbp), %rdi
callq 0x49f4f0
testb $0x1, %al
jne 0x41e139
leaq -0xca8(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x4a15e0
jmp 0x41db9a
leaq -0xcc9(%rbp), %rdi
movq %rdi, -0x11b0(%rbp)
callq 0x42ffd0
movq -0x11b0(%rbp), %rdx
leaq 0x198ad6(%rip), %rsi    # 0x5b6691
leaq -0xcc8(%rbp), %rdi
callq 0x406db0
jmp 0x41dbc9
leaq -0xc88(%rbp), %rdi
leaq -0xca8(%rbp), %rsi
leaq -0xcc8(%rbp), %rdx
callq 0x407470
jmp 0x41dbe5
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xd10(%rbp), %rdi
callq 0x4a15e0
jmp 0x41dbfe
leaq 0x198a6d(%rip), %rdx    # 0x5b6672
leaq -0xd30(%rbp), %rdi
leaq -0x550(%rbp), %rsi
callq 0x41e940
jmp 0x41dc1a
leaq -0xcf0(%rbp), %rdi
leaq -0xd10(%rbp), %rsi
leaq -0xd30(%rbp), %rdx
callq 0x407470
jmp 0x41dc36
leaq -0xc68(%rbp), %rdi
leaq -0xc88(%rbp), %rsi
leaq -0xcf0(%rbp), %rdx
callq 0x4073a0
jmp 0x41dc52
leaq 0x198a42(%rip), %rdx    # 0x5b669b
leaq -0xc48(%rbp), %rdi
leaq -0xc68(%rbp), %rsi
callq 0x407350
jmp 0x41dc6e
leaq -0x958(%rbp), %rdi
movq %rdi, -0x11c0(%rbp)
leaq -0xc48(%rbp), %rsi
movq %rsi, -0x11c8(%rbp)
callq 0x49f020
movq -0x11c8(%rbp), %rdi
callq 0x49efd0
leaq -0xc68(%rbp), %rdi
callq 0x49efd0
leaq -0xcf0(%rbp), %rdi
callq 0x49efd0
leaq -0xd30(%rbp), %rdi
callq 0x49efd0
leaq -0xd10(%rbp), %rdi
callq 0x49efd0
leaq -0xc88(%rbp), %rdi
callq 0x49efd0
leaq -0xcc8(%rbp), %rdi
callq 0x49efd0
leaq -0xcc9(%rbp), %rdi
callq 0x42fff0
leaq -0xca8(%rbp), %rdi
callq 0x49efd0
movq -0x11c0(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x11b4(%rbp)
jmp 0x41dd17
movl -0x11b4(%rbp), %eax
movl %eax, -0x92c(%rbp)
cmpl $0x0, -0x92c(%rbp)
je 0x41de4c
movq -0x18(%rbp), %rdi
leaq 0x19897d(%rip), %rsi    # 0x5b66b8
callq 0x4a0020
jmp 0x41dd42
movw $0x2, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41e758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41de2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41de23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41de17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41de0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41ddff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41ddf3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xc68(%rbp), %rdi
callq 0x49efd0
leaq -0xcf0(%rbp), %rdi
callq 0x49efd0
leaq -0xd30(%rbp), %rdi
callq 0x49efd0
leaq -0xd10(%rbp), %rdi
callq 0x49efd0
leaq -0xc88(%rbp), %rdi
callq 0x49efd0
leaq -0xcc8(%rbp), %rdi
callq 0x49efd0
leaq -0xcc9(%rbp), %rdi
callq 0x42fff0
leaq -0xca8(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xdd0(%rbp), %rdi
callq 0x4a15e0
jmp 0x41de65
leaq 0x198806(%rip), %rdx    # 0x5b6672
leaq -0xdf0(%rbp), %rdi
leaq -0x550(%rbp), %rsi
callq 0x41e940
jmp 0x41de81
leaq -0xdb0(%rbp), %rdi
leaq -0xdd0(%rbp), %rsi
leaq -0xdf0(%rbp), %rdx
callq 0x407470
jmp 0x41de9d
leaq 0x198212(%rip), %rsi    # 0x5b60b6
leaq -0xd90(%rbp), %rdi
leaq -0xdb0(%rbp), %rdx
callq 0x4077b0
jmp 0x41deb9
leaq 0x1984f0(%rip), %rdx    # 0x5b63b0
leaq -0xd70(%rbp), %rdi
leaq -0xd90(%rbp), %rsi
callq 0x407350
jmp 0x41ded5
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xe30(%rbp), %rdi
callq 0x4a15e0
jmp 0x41deee
leaq 0x1987d8(%rip), %rdx    # 0x5b66cd
leaq -0xe50(%rbp), %rdi
leaq -0x550(%rbp), %rsi
callq 0x41e940
jmp 0x41df0a
leaq -0xe10(%rbp), %rdi
leaq -0xe30(%rbp), %rsi
leaq -0xe50(%rbp), %rdx
callq 0x407470
jmp 0x41df26
leaq -0xd50(%rbp), %rdi
leaq -0xd70(%rbp), %rsi
leaq -0xe10(%rbp), %rdx
callq 0x4073a0
jmp 0x41df42
leaq -0x958(%rbp), %rdi
movq %rdi, -0x11d8(%rbp)
leaq -0xd50(%rbp), %rsi
movq %rsi, -0x11e0(%rbp)
callq 0x49f020
movq -0x11e0(%rbp), %rdi
callq 0x49efd0
leaq -0xe10(%rbp), %rdi
callq 0x49efd0
leaq -0xe50(%rbp), %rdi
callq 0x49efd0
leaq -0xe30(%rbp), %rdi
callq 0x49efd0
leaq -0xd70(%rbp), %rdi
callq 0x49efd0
leaq -0xd90(%rbp), %rdi
callq 0x49efd0
leaq -0xdb0(%rbp), %rdi
callq 0x49efd0
leaq -0xdf0(%rbp), %rdi
callq 0x49efd0
leaq -0xdd0(%rbp), %rdi
callq 0x49efd0
movq -0x11d8(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x11cc(%rbp)
jmp 0x41dfeb
movl -0x11cc(%rbp), %eax
movl %eax, -0x92c(%rbp)
cmpl $0x0, -0x92c(%rbp)
je 0x41e137
movq -0x18(%rbp), %rdi
leaq 0x198670(%rip), %rsi    # 0x5b667f
callq 0x4a0020
jmp 0x41e016
movw $0x3, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41e758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e126
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e11a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e10e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e102
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e0f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e0ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e0de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xe10(%rbp), %rdi
callq 0x49efd0
leaq -0xe50(%rbp), %rdi
callq 0x49efd0
leaq -0xe30(%rbp), %rdi
callq 0x49efd0
leaq -0xd70(%rbp), %rdi
callq 0x49efd0
leaq -0xd90(%rbp), %rdi
callq 0x49efd0
leaq -0xdb0(%rbp), %rdi
callq 0x49efd0
leaq -0xdf0(%rbp), %rdi
callq 0x49efd0
leaq -0xdd0(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
jmp 0x41e143
movl $0x1, -0x930(%rbp)
leaq -0x570(%rbp), %rdi
callq 0x49f4f0
testb $0x1, %al
jne 0x41e708
leaq -0xed0(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x4a15e0
jmp 0x41e16c
leaq -0xef1(%rbp), %rdi
movq %rdi, -0x11e8(%rbp)
callq 0x42ffd0
movq -0x11e8(%rbp), %rdx
leaq 0x198504(%rip), %rsi    # 0x5b6691
leaq -0xef0(%rbp), %rdi
callq 0x406db0
jmp 0x41e19b
leaq -0xeb0(%rbp), %rdi
leaq -0xed0(%rbp), %rsi
leaq -0xef0(%rbp), %rdx
callq 0x407470
jmp 0x41e1b7
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xf38(%rbp), %rdi
callq 0x4a15e0
jmp 0x41e1d0
leaq 0x19849b(%rip), %rdx    # 0x5b6672
leaq -0xf58(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x41e940
jmp 0x41e1ec
leaq -0xf18(%rbp), %rdi
leaq -0xf38(%rbp), %rsi
leaq -0xf58(%rbp), %rdx
callq 0x407470
jmp 0x41e208
leaq -0xe90(%rbp), %rdi
leaq -0xeb0(%rbp), %rsi
leaq -0xf18(%rbp), %rdx
callq 0x4073a0
jmp 0x41e224
leaq 0x198470(%rip), %rdx    # 0x5b669b
leaq -0xe70(%rbp), %rdi
leaq -0xe90(%rbp), %rsi
callq 0x407350
jmp 0x41e240
leaq -0x958(%rbp), %rdi
movq %rdi, -0x11f8(%rbp)
leaq -0xe70(%rbp), %rsi
movq %rsi, -0x1200(%rbp)
callq 0x49f020
movq -0x1200(%rbp), %rdi
callq 0x49efd0
leaq -0xe90(%rbp), %rdi
callq 0x49efd0
leaq -0xf18(%rbp), %rdi
callq 0x49efd0
leaq -0xf58(%rbp), %rdi
callq 0x49efd0
leaq -0xf38(%rbp), %rdi
callq 0x49efd0
leaq -0xeb0(%rbp), %rdi
callq 0x49efd0
leaq -0xef0(%rbp), %rdi
callq 0x49efd0
leaq -0xef1(%rbp), %rdi
callq 0x42fff0
leaq -0xed0(%rbp), %rdi
callq 0x49efd0
movq -0x11f8(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x11ec(%rbp)
jmp 0x41e2e9
movl -0x11ec(%rbp), %eax
movl %eax, -0x92c(%rbp)
cmpl $0x0, -0x92c(%rbp)
je 0x41e41e
movq -0x18(%rbp), %rdi
leaq 0x1983ab(%rip), %rsi    # 0x5b66b8
callq 0x4a0020
jmp 0x41e314
movw $0x2, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41e758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e401
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e3f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e3e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e3dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e3d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e3c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xe90(%rbp), %rdi
callq 0x49efd0
leaq -0xf18(%rbp), %rdi
callq 0x49efd0
leaq -0xf58(%rbp), %rdi
callq 0x49efd0
leaq -0xf38(%rbp), %rdi
callq 0x49efd0
leaq -0xeb0(%rbp), %rdi
callq 0x49efd0
leaq -0xef0(%rbp), %rdi
callq 0x49efd0
leaq -0xef1(%rbp), %rdi
callq 0x42fff0
leaq -0xed0(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0xff8(%rbp), %rdi
callq 0x4a15e0
jmp 0x41e437
leaq 0x198234(%rip), %rdx    # 0x5b6672
leaq -0x1018(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x41e940
jmp 0x41e453
leaq -0xfd8(%rbp), %rdi
leaq -0xff8(%rbp), %rsi
leaq -0x1018(%rbp), %rdx
callq 0x407470
jmp 0x41e46f
leaq 0x197c40(%rip), %rsi    # 0x5b60b6
leaq -0xfb8(%rbp), %rdi
leaq -0xfd8(%rbp), %rdx
callq 0x4077b0
jmp 0x41e48b
leaq 0x197f1e(%rip), %rdx    # 0x5b63b0
leaq -0xf98(%rbp), %rdi
leaq -0xfb8(%rbp), %rsi
callq 0x407350
jmp 0x41e4a7
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq -0x1058(%rbp), %rdi
callq 0x4a15e0
jmp 0x41e4c0
leaq 0x198206(%rip), %rdx    # 0x5b66cd
leaq -0x1078(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x41e940
jmp 0x41e4dc
leaq -0x1038(%rbp), %rdi
leaq -0x1058(%rbp), %rsi
leaq -0x1078(%rbp), %rdx
callq 0x407470
jmp 0x41e4f8
leaq -0xf78(%rbp), %rdi
leaq -0xf98(%rbp), %rsi
leaq -0x1038(%rbp), %rdx
callq 0x4073a0
jmp 0x41e514
leaq -0x958(%rbp), %rdi
movq %rdi, -0x1210(%rbp)
leaq -0xf78(%rbp), %rsi
movq %rsi, -0x1218(%rbp)
callq 0x49f020
movq -0x1218(%rbp), %rdi
callq 0x49efd0
leaq -0x1038(%rbp), %rdi
callq 0x49efd0
leaq -0x1078(%rbp), %rdi
callq 0x49efd0
leaq -0x1058(%rbp), %rdi
callq 0x49efd0
leaq -0xf98(%rbp), %rdi
callq 0x49efd0
leaq -0xfb8(%rbp), %rdi
callq 0x49efd0
leaq -0xfd8(%rbp), %rdi
callq 0x49efd0
leaq -0x1018(%rbp), %rdi
callq 0x49efd0
leaq -0xff8(%rbp), %rdi
callq 0x49efd0
movq -0x1210(%rbp), %rdi
callq 0x4a0a10
movq %rax, %rdi
callq 0x4f9050
movl %eax, -0x1204(%rbp)
jmp 0x41e5bd
movl -0x1204(%rbp), %eax
movl %eax, -0x92c(%rbp)
cmpl $0x0, -0x92c(%rbp)
je 0x41e706
movq -0x18(%rbp), %rdi
leaq 0x19809e(%rip), %rsi    # 0x5b667f
callq 0x4a0020
jmp 0x41e5e8
movw $0x3, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41e758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e6f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e6ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e6e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e6d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e6c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e6bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x41e6b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1038(%rbp), %rdi
callq 0x49efd0
leaq -0x1078(%rbp), %rdi
callq 0x49efd0
leaq -0x1058(%rbp), %rdi
callq 0x49efd0
leaq -0xf98(%rbp), %rdi
callq 0x49efd0
leaq -0xfb8(%rbp), %rdi
callq 0x49efd0
leaq -0xfd8(%rbp), %rdi
callq 0x49efd0
leaq -0x1018(%rbp), %rdi
callq 0x49efd0
leaq -0xff8(%rbp), %rdi
callq 0x49efd0
jmp 0x41e772
jmp 0x41e712
movl $0x1, -0x934(%rbp)
cmpl $0x0, -0x930(%rbp)
je 0x41e748
cmpl $0x0, -0x934(%rbp)
je 0x41e748
movq -0x18(%rbp), %rdi
leaq 0x197fb0(%rip), %rsi    # 0x5b66df
callq 0x4a0020
jmp 0x41e736
movw $0x5, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
jmp 0x41e758
movw $0x0, -0x2(%rbp)
movl $0x1, -0x5dc(%rbp)
leaq -0x978(%rbp), %rdi
callq 0x49efd0
leaq -0x958(%rbp), %rdi
callq 0x49efd0
jmp 0x41e78c
leaq -0x978(%rbp), %rdi
callq 0x49efd0
leaq -0x958(%rbp), %rdi
callq 0x49efd0
jmp 0x41e7f6
leaq -0x570(%rbp), %rdi
callq 0x49efd0
leaq -0x550(%rbp), %rdi
callq 0x49efd0
leaq -0x530(%rbp), %rdi
callq 0x49efd0
leaq -0x510(%rbp), %rdi
callq 0x407800
leaq -0x4f8(%rbp), %rdi
callq 0x475cb0
leaq -0x2f8(%rbp), %rdi
callq 0x475cb0
leaq -0xb0(%rbp), %rdi
callq 0x49efd0
leaq -0x38(%rbp), %rdi
callq 0x49efd0
movw -0x2(%rbp), %ax
addq $0x1220, %rsp           # imm = 0x1220
popq %rbp
retq
leaq -0x570(%rbp), %rdi
callq 0x49efd0
leaq -0x550(%rbp), %rdi
callq 0x49efd0
leaq -0x530(%rbp), %rdi
callq 0x49efd0
leaq -0x510(%rbp), %rdi
callq 0x407800
leaq -0x4f8(%rbp), %rdi
callq 0x475cb0
leaq -0x2f8(%rbp), %rdi
callq 0x475cb0
leaq -0xb0(%rbp), %rdi
callq 0x49efd0
leaq -0x38(%rbp), %rdi
callq 0x49efd0
movq -0x88(%rbp), %rdi
callq 0x4d3c10
nop