// File: /workspace/github_cpp_makefile_star2_O1/medvedevgroup[P]varmatch/src/vm.cpp
// Function: TclapParser(Args&, int, char**)
bool TclapParser(Args & args, int argc, char** argv){
	string version = "0.9";

	try {
		std::string desc = "Please cite our paper if you are using this program in your research. \n";
		TCLAP::CmdLine cmd(desc, ' ', version);
		//TCLAP::ValueArg<std::string> arg_input_vcf_file("i", "i", "input VCF file", true, "", "file", cmd);
		TCLAP::ValueArg<std::string> arg_genome_seq_filename("g", "genome_sequence", "genome sequence FASTA file", true, "", "file");
		TCLAP::ValueArg<std::string> arg_baseline_vcf_filename("b", "baseline", "baseline variant VCF file", true, "", "file");
		TCLAP::MultiArg<std::string> arg_query_vcf_filename("q", "query", "query variant VCF file list", true, "file list");
		TCLAP::ValueArg<std::string> arg_output_dir("o", "output_dir", "output directory, default is current working directory", false, ".", "string");
		TCLAP::ValueArg<std::string> arg_output_prefix("p", "file_prefix", "output filename prefix, default is \"out\"", false, "out", "string");
        int thread_num = (int)thread::hardware_concurrency();


		int max_cores = (int)thread::hardware_concurrency();
		if(max_cores <= 0) max_cores = 1;

		string thread_string = "number of threads, default is the number of available cores (For this machine: " + to_string(max_cores) + ").\n"
                            "If larger than number of available cores or less than 1, automatically set to default value";
		TCLAP::ValueArg<int> arg_thread_num("t", "thread_num", thread_string, false, thread_num, "int");
		vector<int> allowed_two = {-1, 0,1};
		TCLAP::ValuesConstraint<int> allowedVals(allowed_two);

        string score_unit_string = "scoring function/score unit: (Default: -1)\n"
        "-1 : iterate both 0 and 1.\n"
        "0 : the score that a VCF entry contributes is 1.\n"
        "1 : the score that a VCF entry contributes is the edit distance between the new allele and the reference one.\n";

        TCLAP::ValueArg<int> arg_score_unit("u", "score_unit", score_unit_string, false, -1, &allowedVals);


        string match_mode_string = "matching mode: (Default: -1)\n"
        "-1 : iterate both 0 and 1.\n"
        "0 : a set of query entries match a set of baseline entries if, "
        "for each entry, we can select one of the alleles such that the inferred sequences are identical\n"
        "1 : a set of query entries match a set of baseline entries if there exist a phasing of each set such that "
        "the two inferred haplotypes from the query are equal to the two inferred haplotypes from the baseline.\n";

        TCLAP::ValueArg<int> arg_match_mode("m", "match_mode", match_mode_string, false, -1, &allowedVals);


        string score_scheme_string = "scoring scheme: (Default: -1)\n"
        "-1 : iterate 0, 1, and 2 (not including 3)\n"
        "0 : find two subsets of non-overlapping equivalent variants such that "
        "the score of the matched variants is maximized (Default)\n"
        "1 : find two subsets of non-overlapping equivalent variants such that"
        " the score of the chosen baseline variants is maximized\n"
        "2 : find a maximum scoring set of variants in the query such that"
        " each variant can be matched by a subset of the baseline variants\n"
        "3 : (1 to 1 direct match) find a maximum scoring set of entry pairs such that each entry pair contains"
        " one query and one baseline variant that result in the same sequence. In this scheme, different scoring functions and "
        "matching mode have no difference.\n";
        vector<int> allowed_four = {-1,0,1,2,3};
        TCLAP::ValuesConstraint<int> allowedFour(allowed_four);
        TCLAP::ValueArg<int> arg_score_scheme("s", "score_scheme", score_scheme_string, false, -1, &allowedFour);

        //string direct_match_string = "Direct Match. \n";
        //TCLAP::SwitchArg arg_direct_match("d", "direct_match", direct_match_string, cmd, false);

        string detail_results_string = "output detail matching results, by default do not output.\n"
        "filename in format PREFIX.PARAMETER.match\n"
        "The results present which variants in baseline match which variants in query.";

        TCLAP::SwitchArg arg_detail_results("e","detail_results", detail_results_string, cmd, false);

        string precision_recall_string = "Disable Precision-Recall curves. \n";
        TCLAP::SwitchArg arg_disable_curves("C", "disable_curves", precision_recall_string, cmd, false);

        cmd.add(arg_score_scheme);
        cmd.add(arg_match_mode);
        cmd.add(arg_score_unit);
        cmd.add(arg_thread_num);
        //cmd.add(arg_output_prefix);
        cmd.add(arg_output_dir);
        cmd.add(arg_query_vcf_filename);
        cmd.add(arg_baseline_vcf_filename);
        cmd.add(arg_genome_seq_filename);

		cmd.parse(argc, argv);

		args.genome_seq_filename = arg_genome_seq_filename.getValue();
		args.ref_vcf_filename = arg_baseline_vcf_filename.getValue();
		args.query_file_list = arg_query_vcf_filename.getValue();
        //args.que_vcf_filename = arg_query_vcf_filename.getValue();
        args.output_dir = arg_output_dir.getValue();
		args.output_prefix = arg_output_prefix.getValue();
		args.thread_num = arg_thread_num.getValue();
		if(args.thread_num <= 0 || args.thread_num > max_cores) args.thread_num = max_cores;
		args.score_unit = arg_score_unit.getValue();
		args.match_mode = arg_match_mode.getValue();
		args.score_scheme = arg_score_scheme.getValue();
        args.detail_results = arg_detail_results.getValue();
        args.pr_curves = ! arg_disable_curves.getValue();
        //args.direct_match = arg_direct_match.getValue();
	}
	catch (TCLAP::ArgException &e)
	{
		std::cerr << "error: " << e.error() << " for arg " << e.argId() << "\n";
		abort();
	}
	return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd48, %rsp            # imm = 0xD48
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x100(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a5fa(%rip), %rsi     # 0x30022
leaq 0x2a5f6(%rip), %rdx     # 0x30025
leaq 0xf0(%rsp), %rdi
callq 0xc45c
leaq 0xe0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a5d7(%rip), %rsi     # 0x30026
leaq 0x2a617(%rip), %rdx     # 0x3006d
leaq 0xd0(%rsp), %rdi
callq 0xc45c
movl %ebp, 0xc(%rsp)
leaq 0xad8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0xf0(%rsp), %rcx
movl $0x20, %edx
movl $0x1, %r8d
callq 0x9ec8
leaq 0x9d8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2a689(%rip), %rsi     # 0x3012b
leaq 0x2a683(%rip), %rdx     # 0x3012c
leaq 0x9c8(%rsp), %rdi
callq 0xc45c
leaq 0x7d8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a5a5(%rip), %rsi     # 0x3006e
leaq 0x2a5ad(%rip), %rdx     # 0x3007d
leaq 0x7c8(%rsp), %rdi
callq 0xc45c
leaq 0x6c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a58e(%rip), %rsi     # 0x3007e
leaq 0x2a5a1(%rip), %rdx     # 0x30098
leaq 0x6b8(%rsp), %rdi
callq 0xc45c
movq %rbx, (%rsp)
movq %r15, 0x110(%rsp)
leaq 0x3a8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2ba9e(%rip), %rdx     # 0x315c2
leaq 0x398(%rsp), %rdi
movq %rdx, %rsi
callq 0xc45c
leaq 0x8e8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2a54d(%rip), %rsi     # 0x30094
leaq 0x2a54a(%rip), %rdx     # 0x30098
leaq 0x8d8(%rsp), %r15
movq %r15, %rdi
leaq 0x7d8(%rsp), %rbx
callq 0xc45c
leaq 0xc38(%rsp), %rdi
leaq 0x9c8(%rsp), %rsi
leaq 0x7c8(%rsp), %rdx
leaq 0x6b8(%rsp), %rcx
leaq 0x398(%rsp), %r9
movl $0x1, %r8d
pushq $0x0
pushq %r15
callq 0xa0f8
addq $0x10, %rsp
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5bbe
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x398(%rsp), %rdi
cmpq %r12, %rdi
je 0x5bdb
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5bf8
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x7c8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5c15
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x9c8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5c32
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x7c8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a455(%rip), %rsi     # 0x30099
leaq 0x2a44f(%rip), %rdx     # 0x3009a
callq 0xc45c
leaq 0x6b8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2a439(%rip), %rsi     # 0x3009b
leaq 0x2a43a(%rip), %rdx     # 0x300a3
callq 0xc45c
leaq 0x8d8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a424(%rip), %rsi     # 0x300a4
leaq 0x2a436(%rip), %rdx     # 0x300bd
callq 0xc45c
leaq 0x388(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2b922(%rip), %rdx     # 0x315c2
leaq 0x378(%rsp), %rdi
movq %rdx, %rsi
callq 0xc45c
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a3d1(%rip), %rsi     # 0x30094
leaq 0x2a3ce(%rip), %rdx     # 0x30098
leaq 0x148(%rsp), %r15
movq %r15, %rdi
callq 0xc45c
leaq 0x9c8(%rsp), %rdi
leaq 0x7c8(%rsp), %rsi
leaq 0x6b8(%rsp), %rdx
leaq 0x8d8(%rsp), %rcx
leaq 0x378(%rsp), %r9
movl $0x1, %r8d
pushq $0x0
pushq %r15
callq 0xa0f8
addq $0x10, %rsp
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x5d3a
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x378(%rsp), %rdi
cmpq %r12, %rdi
je 0x5d57
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5d74
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
leaq 0x158(%rsp), %r13
je 0x5d99
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x7c8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5db6
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x7c8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a2f6(%rip), %rsi     # 0x300be
leaq 0x2a2f0(%rip), %rdx     # 0x300bf
callq 0xc45c
leaq 0x6b8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2a2da(%rip), %rsi     # 0x300c0
leaq 0x2a2d8(%rip), %rdx     # 0x300c5
callq 0xc45c
leaq 0x148(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a2c2(%rip), %rsi     # 0x300c6
leaq 0x2a2d6(%rip), %rdx     # 0x300e1
callq 0xc45c
leaq 0x3c8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2a2b5(%rip), %rsi     # 0x300d8
leaq 0x2a2b7(%rip), %rdx     # 0x300e1
leaq 0x3b8(%rsp), %rdi
callq 0xc45c
subq $0x8, %rsp
leaq 0x8e0(%rsp), %rdi
leaq 0x7d0(%rsp), %rsi
leaq 0x6c0(%rsp), %rdx
leaq 0x150(%rsp), %rcx
leaq 0x3c0(%rsp), %r9
movl $0x1, %r8d
pushq $0x0
callq 0xa1fe
addq $0x10, %rsp
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5e91
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x5eae
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5ecb
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x5ef0
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x6b8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2a1e0(%rip), %rsi     # 0x300e2
leaq 0x2a1da(%rip), %rdx     # 0x300e3
callq 0xc45c
leaq 0x148(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a1c4(%rip), %rsi     # 0x300e4
leaq 0x2a1c7(%rip), %rdx     # 0x300ee
callq 0xc45c
leaq 0x3b8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a1b1(%rip), %rsi     # 0x300ef
leaq 0x2a1e0(%rip), %rdx     # 0x30125
callq 0xc45c
leaq 0x368(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2baf8(%rip), %rsi     # 0x31a56
leaq 0x2baf2(%rip), %rdx     # 0x31a57
leaq 0x358(%rsp), %rdi
callq 0xc45c
leaq 0x230(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a1a1(%rip), %rsi     # 0x30126
leaq 0x2a1a0(%rip), %rdx     # 0x3012c
leaq 0x220(%rsp), %r15
movq %r15, %rdi
callq 0xc45c
leaq 0x7c8(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
leaq 0x148(%rsp), %rdx
leaq 0x3b8(%rsp), %rcx
leaq 0x358(%rsp), %r9
xorl %r8d, %r8d
pushq $0x0
pushq %r15
callq 0xa0f8
addq $0x10, %rsp
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x5ff9
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x358(%rsp), %rdi
cmpq %r12, %rdi
je 0x6016
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6033
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x6050
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x606d
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x148(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2ae21(%rip), %rsi     # 0x30ea0
leaq 0x2ae1b(%rip), %rdx     # 0x30ea1
callq 0xc45c
leaq 0x3b8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a090(%rip), %rsi     # 0x3012d
leaq 0x2a094(%rip), %rdx     # 0x30138
callq 0xc45c
leaq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
movq %rax, (%rdi)
leaq 0x2a076(%rip), %rsi     # 0x30139
leaq 0x2a097(%rip), %rdx     # 0x30161
callq 0xc45c
leaq 0x348(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a080(%rip), %rsi     # 0x30162
leaq 0x2a07c(%rip), %rdx     # 0x30165
leaq 0x338(%rsp), %rdi
callq 0xc45c
leaq 0x4a0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2a01d(%rip), %rsi     # 0x30126
leaq 0x2a01c(%rip), %rdx     # 0x3012c
leaq 0x490(%rsp), %r15
movq %r15, %rdi
callq 0xc45c
leaq 0x6b8(%rsp), %rdi
leaq 0x148(%rsp), %rsi
leaq 0x3b8(%rsp), %rdx
leaq 0x220(%rsp), %rcx
leaq 0x338(%rsp), %r9
xorl %r8d, %r8d
pushq $0x0
pushq %r15
callq 0xa0f8
addq $0x10, %rsp
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6175
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x6192
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x61b7
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x61d4
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x61f1
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
callq 0x5420
movl %eax, %r12d
callq 0x5420
cmpl $0x2, %eax
movl $0x1, %r13d
movl $0x1, %r15d
cmovgel %eax, %r15d
cmpl $0xa, %eax
jl 0x6260
movl $0x4, %r13d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r15d, %ecx
cmpl $0x63, %ecx
jbe 0x6257
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x625d
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x6260
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r13d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x6224
addl $-0x3, %r13d
jmp 0x6260
addl $-0x2, %r13d
jmp 0x6260
decl %r13d
movl %r13d, %esi
leaq 0x3b8(%rsp), %rdi
movq %rbx, (%rdi)
movl $0x2d, %edx
callq 0x53b0
leaq 0x3b8(%rsp), %r14
movq (%r14), %rdi
movl %r13d, %esi
movl %r15d, %edx
callq 0xe3b6
leaq 0x29ed1(%rip), %rcx     # 0x30166
movl $0x4f, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x158(%rsp), %r14
movq %r14, 0x148(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x62db
movq %rdx, 0x148(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x158(%rsp)
jmp 0x62e2
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x148(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x29eae(%rip), %rsi     # 0x301b6
callq 0x5630
leaq 0x40(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6334
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x633a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x636f
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x638c
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3b8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2b52d(%rip), %rsi     # 0x318cb
leaq 0x2b527(%rip), %rdx     # 0x318cc
callq 0xc45c
leaq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
movq %rax, (%rdi)
leaq 0x29e51(%rip), %rsi     # 0x30215
leaq 0x29e54(%rip), %rdx     # 0x3021f
callq 0xc45c
leaq 0x490(%rsp), %r13
movq %rbp, (%r13)
leaq 0x29e3d(%rip), %rsi     # 0x30220
leaq 0x29e39(%rip), %rdx     # 0x30223
movq %r13, %rdi
callq 0xc45c
leaq 0x148(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
leaq 0x220(%rsp), %rdx
leaq 0x30(%rsp), %rcx
xorl %r8d, %r8d
movl %r12d, %r9d
pushq $0x0
pushq %r13
callq 0xa2aa
addq $0x10, %rsp
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x643f
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x6464
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6481
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
leaq 0x3b8(%rsp), %rsi
movq %rax, (%rsi)
movl $0x1, 0x8(%rsi)
leaq 0x130(%rsp), %rdi
leaq 0x220(%rsp), %rcx
movl $0x3, %edx
callq 0xa332
leaq 0xbf8(%rsp), %r12
leaq 0x130(%rsp), %rsi
movq %r12, %rdi
callq 0xa378
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29d47(%rip), %rsi     # 0x30224
leaq 0x29e25(%rip), %rdx     # 0x30309
leaq 0xb0(%rsp), %rdi
callq 0xc45c
leaq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
movq %rax, (%rdi)
leaq 0x29dff(%rip), %rsi     # 0x3030a
leaq 0x29df9(%rip), %rdx     # 0x3030b
callq 0xc45c
leaq 0x490(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x29de3(%rip), %rsi     # 0x3030c
leaq 0x29de6(%rip), %rdx     # 0x30316
callq 0xc45c
leaq 0x3b8(%rsp), %rdi
leaq 0x220(%rsp), %rsi
leaq 0x490(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
xorl %r8d, %r8d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
pushq $0x0
pushq %r12
callq 0xa524
addq $0x10, %rsp
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6588
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x65ad
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xa0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29d57(%rip), %rsi     # 0x30317
leaq 0x29ef8(%rip), %rdx     # 0x304bf
leaq 0x90(%rsp), %rdi
callq 0xc45c
leaq 0x490(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x29c38(%rip), %rsi     # 0x3021e
leaq 0x29c32(%rip), %rdx     # 0x3021f
callq 0xc45c
leaq 0x578(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x29ebb(%rip), %rsi     # 0x304c0
leaq 0x29ebe(%rip), %rdx     # 0x304ca
leaq 0x568(%rsp), %rdi
callq 0xc45c
leaq 0x220(%rsp), %rdi
leaq 0x490(%rsp), %rsi
leaq 0x568(%rsp), %rdx
leaq 0x90(%rsp), %rcx
xorl %r8d, %r8d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
pushq $0x0
pushq %r12
callq 0xa524
addq $0x10, %rsp
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x666c
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6689
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29e2f(%rip), %rsi     # 0x304cb
leaq 0x2a0ee(%rip), %rdx     # 0x30791
leaq 0x70(%rsp), %rdi
callq 0xc45c
movups 0x2a890(%rip), %xmm0    # 0x30f44
leaq 0x490(%rsp), %rsi
movaps %xmm0, (%rsi)
movl $0x3, 0x10(%rsi)
leaq 0x118(%rsp), %rdi
leaq 0x568(%rsp), %rcx
movl $0x5, %edx
callq 0xa332
leaq 0xbb8(%rsp), %r12
leaq 0x118(%rsp), %rsi
movq %r12, %rdi
callq 0xa378
leaq 0x568(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a188(%rip), %rsi     # 0x30892
leaq 0x2a182(%rip), %rdx     # 0x30893
callq 0xc45c
leaq 0x620(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a069(%rip), %rsi     # 0x30792
leaq 0x2a06e(%rip), %rdx     # 0x3079e
leaq 0x610(%rsp), %rdi
callq 0xc45c
leaq 0x490(%rsp), %rdi
leaq 0x568(%rsp), %rsi
leaq 0x610(%rsp), %rdx
leaq 0x70(%rsp), %rcx
xorl %r8d, %r8d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
pushq $0x0
pushq %r12
callq 0xa524
addq $0x10, %rsp
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x678d
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x67aa
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x60(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29fe5(%rip), %rsi     # 0x3079f
leaq 0x2a08f(%rip), %rdx     # 0x30850
leaq 0x50(%rsp), %rdi
callq 0xc45c
leaq 0x610(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2ae32(%rip), %rsi     # 0x3160f
leaq 0x2ae2c(%rip), %rdx     # 0x31610
callq 0xc45c
leaq 0x20(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2a058(%rip), %rsi     # 0x30851
leaq 0x2a05f(%rip), %rdx     # 0x3085f
leaq 0x10(%rsp), %rdi
callq 0xc45c
subq $0x8, %rsp
leaq 0x570(%rsp), %rdi
leaq 0x618(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x58(%rsp), %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x0
callq 0xd4f0
addq $0x10, %rsp
leaq 0x34f70(%rip), %r13     # 0x3b7b0
leaq 0x568(%rsp), %rsi
movq %r13, (%rsi)
movw $0x0, 0xa3(%rsi)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6879
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x6896
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x10(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x29fbb(%rip), %rsi     # 0x30860
leaq 0x29fd6(%rip), %rdx     # 0x30882
callq 0xc45c
leaq 0x328(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29fbf(%rip), %rsi     # 0x30883
leaq 0x29fb9(%rip), %rdx     # 0x30884
leaq 0x318(%rsp), %rdi
callq 0xc45c
leaq 0x308(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x29f99(%rip), %rsi     # 0x30885
leaq 0x29fa0(%rip), %rdx     # 0x30893
leaq 0x2f8(%rsp), %rdi
callq 0xc45c
subq $0x8, %rsp
leaq 0x618(%rsp), %rdi
leaq 0x320(%rsp), %rsi
leaq 0x300(%rsp), %rdx
leaq 0x18(%rsp), %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x0
callq 0xd4f0
addq $0x10, %rsp
leaq 0x610(%rsp), %rsi
movq %r13, (%rsi)
movw $0x0, 0xa3(%rsi)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movq 0x2f8(%rsp), %rdi
cmpq %r12, %rdi
movq (%rsp), %rbx
je 0x6975
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x6992
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x490(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x220(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x3b8(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x148(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x7c8(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x8d8(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x9c8(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movq (%rdi), %rax
leaq 0xc38(%rsp), %rsi
callq *0x18(%rax)
leaq 0xad8(%rsp), %rdi
movl 0xc(%rsp), %esi
movq 0x110(%rsp), %rdx
callq 0xa59e
leaq 0xce0(%rsp), %rsi
leaq 0x40(%rbx), %rdi
callq 0x51c0
leaq 0xa70(%rsp), %rsi
movq %rbx, %rdi
callq 0x51c0
leaq 0x980(%rsp), %rsi
leaq 0xb8(%rbx), %rdi
callq 0xa67a
leaq 0x870(%rsp), %rsi
leaq 0x60(%rbx), %rdi
callq 0x51c0
leaq 0x760(%rsp), %rsi
leaq 0x80(%rbx), %rdi
callq 0x51c0
movl 0x1ec(%rsp), %eax
cmpl %r15d, %eax
movl %r15d, %ecx
cmovll %eax, %ecx
testl %eax, %eax
cmovlel %r15d, %ecx
movl %ecx, 0xa0(%rbx)
movl 0x45c(%rsp), %eax
movl %eax, 0xa4(%rbx)
movl 0x2c4(%rsp), %eax
movl %eax, 0xa8(%rbx)
movl 0x534(%rsp), %eax
movl %eax, 0xac(%rbx)
movb 0x60b(%rsp), %al
movb %al, 0xb0(%rbx)
leaq 0x690(%rsp), %rax
movb 0x23(%rax), %cl
xorb $0x1, %cl
movb %cl, 0xd0(%rbx)
leaq 0x34b38(%rip), %rbx     # 0x3b658
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b3d
movq 0x690(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x668(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b5e
movq 0x668(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x648(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b7f
movq 0x648(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x628(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6ba0
movq 0x628(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6bb7
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x5e8(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0x100(%rsp), %r14
leaq 0x80(%rsp), %r12
je 0x6bec
movq 0x5e8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x5c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c0d
movq 0x5c0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x5a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c2e
movq 0x5a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x580(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c4f
movq 0x580(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x6c6b
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x34dce(%rip), %r15     # 0x3ba40
leaq 0x550(%rsp), %rax
movq %r15, -0xc0(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c9a
movq 0x550(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x510(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6cbf
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x4e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6ce0
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x4c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d01
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x4a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d22
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xbb8(%rsp), %rdi
callq 0xa890
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0x6d4c
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x5340
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x6d66
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x2e0(%rsp), %rax
movq %r15, -0xc0(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d8e
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x2a0(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6db3
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x278(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6dd4
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x258(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6df5
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x238(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e16
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x6e3b
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x478(%rsp), %rax
movq %r15, -0xc0(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e63
movq 0x478(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x438(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e88
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x410(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6ea9
movq 0x410(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6eca
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6eeb
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x6f10
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xbf8(%rsp), %rdi
callq 0xa890
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0x6f3a
movq 0x140(%rsp), %rsi
subq %rdi, %rsi
callq 0x5340
leaq 0x208(%rsp), %rax
movq %r15, -0xc0(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f62
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x1c8(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f87
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fa8
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fc9
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6fea
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x7006
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x6b8(%rsp), %rdi
callq 0xa8d8
leaq 0x7c8(%rsp), %rdi
callq 0xa8d8
leaq 0x8d8(%rsp), %rdi
callq 0xa9b0
leaq 0x9c8(%rsp), %rdi
callq 0xa8d8
leaq 0xc38(%rsp), %rdi
callq 0xa8d8
leaq 0xad8(%rsp), %rdi
callq 0x9daa
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x7079
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0xf0(%rsp), %rdi
cmpq %r14, %rdi
je 0x7096
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5340
movb $0x1, %al
addq $0xd48, %rsp            # imm = 0xD48
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdx, %r15
movq %rax, (%rsp)
leaq 0x610(%rsp), %rdi
callq 0xbc6e
jmp 0x70c7
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x2f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x70ed
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x70ed
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x786f
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x786f
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x786f
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7886
movq %rdx, %r15
movq %rax, (%rsp)
leaq 0x568(%rsp), %rdi
callq 0xbc6e
jmp 0x7148
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7168
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7168
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x7893
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7893
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7893
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x78af
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x71d3
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x71d3
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x78bc
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x78bc
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x78bc
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x78c9
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x78e6
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7908
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x7256
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7256
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7915
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7915
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7915
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x793a
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x72c1
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x72c1
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x7947
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7947
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7947
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x796c
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7979
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7996
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x734c
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x734c
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x737a
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x737a
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x79a3
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x79a3
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79a3
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x73d9
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x73d9
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x79bf
movq 0x3c8(%rsp), %rsi
jmp 0x79b7
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79bf
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7430
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7430
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x7456
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7456
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x7484
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7484
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x74aa
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x74aa
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x79cc
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x79cc
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79cc
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x7519
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7519
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x358(%rsp), %rdi
cmpq %r12, %rdi
je 0x753f
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x753f
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7565
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7565
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7593
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7593
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x79d9
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x79d9
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79d9
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x75f2
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x75f2
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7620
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7620
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x7646
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7646
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x79e6
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x79e6
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79e6
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x76b5
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x76b5
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x378(%rsp), %rdi
cmpq %r12, %rdi
je 0x76db
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x76db
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x7701
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7701
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x7727
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7727
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x79f3
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x79f3
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79f3
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x778e
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x778e
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x398(%rsp), %rdi
cmpq %r12, %rdi
je 0x77b4
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x77b4
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x77da
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x77da
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x7808
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7808
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x9c8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7a00
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7a00
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a00
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a0d
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a32
movq %rax, (%rsp)
jmp 0x7b89
movq %rdx, %r15
movq %rax, (%rsp)
leaq 0x610(%rsp), %rdi
callq 0xbc6e
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7886
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x568(%rsp), %rdi
callq 0xbc6e
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x78af
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x490(%rsp), %rdi
callq 0xa7f4
leaq 0xbb8(%rsp), %rdi
callq 0xa890
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0x78e6
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x5340
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x7908
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x220(%rsp), %rdi
callq 0xa7f4
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x793a
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3b8(%rsp), %rdi
callq 0xa7f4
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x796c
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xbf8(%rsp), %rdi
callq 0xa890
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0x7996
movq 0x140(%rsp), %rsi
subq %rdi, %rsi
callq 0x5340
leaq 0x148(%rsp), %rdi
callq 0xa7f4
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x79bf
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x6b8(%rsp), %rdi
callq 0xa8d8
leaq 0x7c8(%rsp), %rdi
callq 0xa8d8
leaq 0x8d8(%rsp), %rdi
callq 0xa9b0
leaq 0x9c8(%rsp), %rdi
callq 0xa8d8
leaq 0xc38(%rsp), %rdi
callq 0xa8d8
leaq 0xad8(%rsp), %rdi
callq 0x9daa
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x7a32
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5340
cmpl $0x1, %r15d
jne 0x7b64
movq (%rsp), %rdi
callq 0x5130
movq %rax, %rbx
movq 0x345a1(%rip), %rdi     # 0x3bff0
leaq 0x28e3e(%rip), %rsi     # 0x30894
movl $0x7, %edx
callq 0x53a0
leaq 0xc48(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
addq %rsi, %rdx
leaq 0xc38(%rsp), %rdi
callq 0x112ce
movq 0xc38(%rsp), %rsi
movq 0xc40(%rsp), %rdx
movq 0x34555(%rip), %rdi     # 0x3bff0
callq 0x53a0
movq %rax, %r14
leaq 0x28df2(%rip), %rsi     # 0x3089c
movl $0x9, %edx
movq %rax, %rdi
callq 0x53a0
leaq 0x9c8(%rsp), %rdi
movq %rbx, %rsi
callq 0xaa58
movq 0x9c8(%rsp), %rsi
movq 0x9d0(%rsp), %rdx
movq %r14, %rdi
callq 0x53a0
leaq 0x28586(%rip), %rsi     # 0x3006c
movq %rax, %rdi
callq 0x5320
leaq 0x9c8(%rsp), %rdi
callq 0x5648
leaq 0xc38(%rsp), %rdi
callq 0x5648
callq 0x51e0
movq %rax, (%rsp)
leaq 0x9d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7b3a
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7b3a
jmp 0x7b36
movq %rax, (%rsp)
movq 0xc38(%rsp), %rdi
cmpq %r15, %rdi
je 0x7b5f
movq 0xc48(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7b5f
jmp 0x7b5b
movq %rax, (%rsp)
callq 0x5530
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x7b89
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5340
movq (%rsp), %rdi
callq 0x55c0
movq %rax, %rdi
callq 0x9d52