// File: /workspace/github_cpp_makefile_star2_O3/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 0x2a58a(%rip), %rsi     # 0x30022
leaq 0x2a586(%rip), %rdx     # 0x30025
leaq 0xf0(%rsp), %rdi
callq 0xc3da
leaq 0xe0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a567(%rip), %rsi     # 0x30026
leaq 0x2a5a7(%rip), %rdx     # 0x3006d
leaq 0xd0(%rsp), %rdi
callq 0xc3da
movl %ebp, 0xc(%rsp)
leaq 0xad8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0xf0(%rsp), %rcx
movl $0x20, %edx
movl $0x1, %r8d
callq 0x9e3e
leaq 0x9d8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2a619(%rip), %rsi     # 0x3012b
leaq 0x2a613(%rip), %rdx     # 0x3012c
leaq 0x9c8(%rsp), %rdi
callq 0xc3da
leaq 0x7d8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a535(%rip), %rsi     # 0x3006e
leaq 0x2a53d(%rip), %rdx     # 0x3007d
leaq 0x7c8(%rsp), %rdi
callq 0xc3da
leaq 0x6c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a51e(%rip), %rsi     # 0x3007e
leaq 0x2a531(%rip), %rdx     # 0x30098
leaq 0x6b8(%rsp), %rdi
callq 0xc3da
movq %rbx, (%rsp)
movq %r15, 0x110(%rsp)
leaq 0x3a8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2ba5e(%rip), %rdx     # 0x315f2
leaq 0x398(%rsp), %rdi
movq %rdx, %rsi
callq 0xc3da
leaq 0x8e8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2a4dd(%rip), %rsi     # 0x30094
leaq 0x2a4da(%rip), %rdx     # 0x30098
leaq 0x8d8(%rsp), %r15
movq %r15, %rdi
leaq 0x7d8(%rsp), %rbx
callq 0xc3da
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 0xa058
addq $0x10, %rsp
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5c2e
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x398(%rsp), %rdi
cmpq %r12, %rdi
je 0x5c4b
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5c68
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x7c8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5c85
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x9c8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5ca2
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x7c8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a3e5(%rip), %rsi     # 0x30099
leaq 0x2a3df(%rip), %rdx     # 0x3009a
callq 0xc3da
leaq 0x6b8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2a3c9(%rip), %rsi     # 0x3009b
leaq 0x2a3ca(%rip), %rdx     # 0x300a3
callq 0xc3da
leaq 0x8d8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a3b4(%rip), %rsi     # 0x300a4
leaq 0x2a3c6(%rip), %rdx     # 0x300bd
callq 0xc3da
leaq 0x388(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2b8e2(%rip), %rdx     # 0x315f2
leaq 0x378(%rsp), %rdi
movq %rdx, %rsi
callq 0xc3da
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a361(%rip), %rsi     # 0x30094
leaq 0x2a35e(%rip), %rdx     # 0x30098
leaq 0x148(%rsp), %r15
movq %r15, %rdi
callq 0xc3da
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 0xa058
addq $0x10, %rsp
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x5daa
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x378(%rsp), %rdi
cmpq %r12, %rdi
je 0x5dc7
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5de4
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
leaq 0x158(%rsp), %r13
je 0x5e09
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x7c8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5e26
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x7c8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a286(%rip), %rsi     # 0x300be
leaq 0x2a280(%rip), %rdx     # 0x300bf
callq 0xc3da
leaq 0x6b8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2a26a(%rip), %rsi     # 0x300c0
leaq 0x2a268(%rip), %rdx     # 0x300c5
callq 0xc3da
leaq 0x148(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a252(%rip), %rsi     # 0x300c6
leaq 0x2a266(%rip), %rdx     # 0x300e1
callq 0xc3da
leaq 0x3c8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2a245(%rip), %rsi     # 0x300d8
leaq 0x2a247(%rip), %rdx     # 0x300e1
leaq 0x3b8(%rsp), %rdi
callq 0xc3da
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 0xa15e
addq $0x10, %rsp
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5f01
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x5f1e
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5f3b
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x5f60
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x6b8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2a170(%rip), %rsi     # 0x300e2
leaq 0x2a16a(%rip), %rdx     # 0x300e3
callq 0xc3da
leaq 0x148(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a154(%rip), %rsi     # 0x300e4
leaq 0x2a157(%rip), %rdx     # 0x300ee
callq 0xc3da
leaq 0x3b8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a141(%rip), %rsi     # 0x300ef
leaq 0x2a170(%rip), %rdx     # 0x30125
callq 0xc3da
leaq 0x368(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2bab8(%rip), %rsi     # 0x31a86
leaq 0x2bab2(%rip), %rdx     # 0x31a87
leaq 0x358(%rsp), %rdi
callq 0xc3da
leaq 0x230(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a131(%rip), %rsi     # 0x30126
leaq 0x2a130(%rip), %rdx     # 0x3012c
leaq 0x220(%rsp), %r15
movq %r15, %rdi
callq 0xc3da
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 0xa058
addq $0x10, %rsp
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x6069
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x358(%rsp), %rdi
cmpq %r12, %rdi
je 0x6086
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x60a3
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x60c0
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x60dd
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x148(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2adb1(%rip), %rsi     # 0x30ea0
leaq 0x2adab(%rip), %rdx     # 0x30ea1
callq 0xc3da
leaq 0x3b8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2a020(%rip), %rsi     # 0x3012d
leaq 0x2a024(%rip), %rdx     # 0x30138
callq 0xc3da
leaq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
movq %rax, (%rdi)
leaq 0x2a006(%rip), %rsi     # 0x30139
leaq 0x2a027(%rip), %rdx     # 0x30161
callq 0xc3da
leaq 0x348(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2a010(%rip), %rsi     # 0x30162
leaq 0x2a00c(%rip), %rdx     # 0x30165
leaq 0x338(%rsp), %rdi
callq 0xc3da
leaq 0x4a0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x29fad(%rip), %rsi     # 0x30126
leaq 0x29fac(%rip), %rdx     # 0x3012c
leaq 0x490(%rsp), %r15
movq %r15, %rdi
callq 0xc3da
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 0xa058
addq $0x10, %rsp
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x61e5
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x6202
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x6227
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6244
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x6261
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 0x62d0
movl $0x4, %r13d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r15d, %ecx
cmpl $0x63, %ecx
jbe 0x62c7
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x62cd
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x62d0
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r13d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x6294
addl $-0x3, %r13d
jmp 0x62d0
addl $-0x2, %r13d
jmp 0x62d0
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 0xe33a
leaq 0x29e61(%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 0x634b
movq %rdx, 0x148(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x158(%rsp)
jmp 0x6352
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 0x29e3e(%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 0x63a4
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x63aa
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 0x63df
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x63fc
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3b8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x2b4ed(%rip), %rsi     # 0x318fb
leaq 0x2b4e7(%rip), %rdx     # 0x318fc
callq 0xc3da
leaq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
movq %rax, (%rdi)
leaq 0x29de1(%rip), %rsi     # 0x30215
leaq 0x29de4(%rip), %rdx     # 0x3021f
callq 0xc3da
leaq 0x490(%rsp), %r13
movq %rbp, (%r13)
leaq 0x29dcd(%rip), %rsi     # 0x30220
leaq 0x29dc9(%rip), %rdx     # 0x30223
movq %r13, %rdi
callq 0xc3da
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 0xa20a
addq $0x10, %rsp
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x64af
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x64d4
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x64f1
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 0xa292
leaq 0xbf8(%rsp), %r12
leaq 0x130(%rsp), %rsi
movq %r12, %rdi
callq 0xa2d8
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29cd7(%rip), %rsi     # 0x30224
leaq 0x29db5(%rip), %rdx     # 0x30309
leaq 0xb0(%rsp), %rdi
callq 0xc3da
leaq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
movq %rax, (%rdi)
leaq 0x29d8f(%rip), %rsi     # 0x3030a
leaq 0x29d89(%rip), %rdx     # 0x3030b
callq 0xc3da
leaq 0x490(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x29d73(%rip), %rsi     # 0x3030c
leaq 0x29d76(%rip), %rdx     # 0x30316
callq 0xc3da
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 0xa484
addq $0x10, %rsp
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x65f8
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x661d
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xa0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29ce7(%rip), %rsi     # 0x30317
leaq 0x29e88(%rip), %rdx     # 0x304bf
leaq 0x90(%rsp), %rdi
callq 0xc3da
leaq 0x490(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x29bc8(%rip), %rsi     # 0x3021e
leaq 0x29bc2(%rip), %rdx     # 0x3021f
callq 0xc3da
leaq 0x578(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x29e4b(%rip), %rsi     # 0x304c0
leaq 0x29e4e(%rip), %rdx     # 0x304ca
leaq 0x568(%rsp), %rdi
callq 0xc3da
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 0xa484
addq $0x10, %rsp
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x66dc
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x66f9
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29dbf(%rip), %rsi     # 0x304cb
leaq 0x2a07e(%rip), %rdx     # 0x30791
leaq 0x70(%rsp), %rdi
callq 0xc3da
movups 0x2a820(%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 0xa292
leaq 0xbb8(%rsp), %r12
leaq 0x118(%rsp), %rsi
movq %r12, %rdi
callq 0xa2d8
leaq 0x568(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a118(%rip), %rsi     # 0x30892
leaq 0x2a112(%rip), %rdx     # 0x30893
callq 0xc3da
leaq 0x620(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29ff9(%rip), %rsi     # 0x30792
leaq 0x29ffe(%rip), %rdx     # 0x3079e
leaq 0x610(%rsp), %rdi
callq 0xc3da
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 0xa484
addq $0x10, %rsp
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x67fd
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x681a
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x60(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x29f75(%rip), %rsi     # 0x3079f
leaq 0x2a01f(%rip), %rdx     # 0x30850
leaq 0x50(%rsp), %rdi
callq 0xc3da
leaq 0x610(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x2adf2(%rip), %rsi     # 0x3163f
leaq 0x2adec(%rip), %rdx     # 0x31640
callq 0xc3da
leaq 0x20(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x29fe8(%rip), %rsi     # 0x30851
leaq 0x29fef(%rip), %rdx     # 0x3085f
leaq 0x10(%rsp), %rdi
callq 0xc3da
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 0xd47a
addq $0x10, %rsp
leaq 0x35f00(%rip), %r13     # 0x3c7b0
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 0x68e9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x6906
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x10(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x29f4b(%rip), %rsi     # 0x30860
leaq 0x29f66(%rip), %rdx     # 0x30882
callq 0xc3da
leaq 0x328(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x29f4f(%rip), %rsi     # 0x30883
leaq 0x29f49(%rip), %rdx     # 0x30884
leaq 0x318(%rsp), %rdi
callq 0xc3da
leaq 0x308(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x29f29(%rip), %rsi     # 0x30885
leaq 0x29f30(%rip), %rdx     # 0x30893
leaq 0x2f8(%rsp), %rdi
callq 0xc3da
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 0xd47a
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 0x69e5
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x6a02
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 0xa4fe
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 0xa5da
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 0x35ac8(%rip), %rbx     # 0x3c658
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6bad
movq 0x690(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x668(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6bce
movq 0x668(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x648(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6bef
movq 0x648(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x628(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c10
movq 0x628(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6c27
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 0x6c5c
movq 0x5e8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x5c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c7d
movq 0x5c0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x5a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c9e
movq 0x5a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x580(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6cbf
movq 0x580(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x6cdb
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x35d5e(%rip), %r15     # 0x3ca40
leaq 0x550(%rsp), %rax
movq %r15, -0xc0(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d0a
movq 0x550(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x510(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d2f
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x4e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d50
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x4c8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d71
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x4a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d92
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xbb8(%rsp), %rdi
callq 0xa80c
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0x6dbc
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x5340
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x6dd6
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x2e0(%rsp), %rax
movq %r15, -0xc0(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6dfe
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x2a0(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e23
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x278(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e44
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x258(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e65
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x238(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e86
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x6eab
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x478(%rsp), %rax
movq %r15, -0xc0(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6ed3
movq 0x478(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x438(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6ef8
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x410(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f19
movq 0x410(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f3a
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f5b
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x6f80
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xbf8(%rsp), %rdi
callq 0xa80c
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0x6faa
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 0x6fd2
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x1c8(%rsp), %rax
movq %rbx, -0x80(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6ff7
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7018
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7039
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x705a
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x7076
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x6b8(%rsp), %rdi
callq 0xa854
leaq 0x7c8(%rsp), %rdi
callq 0xa854
leaq 0x8d8(%rsp), %rdi
callq 0xa92c
leaq 0x9c8(%rsp), %rdi
callq 0xa854
leaq 0xc38(%rsp), %rdi
callq 0xa854
leaq 0xad8(%rsp), %rdi
callq 0x9d20
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x70e9
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5340
movq 0xf0(%rsp), %rdi
cmpq %r14, %rdi
je 0x7106
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 0xbbdc
jmp 0x7137
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x2f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x715d
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x715d
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x78df
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x78df
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x78df
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x78f6
movq %rdx, %r15
movq %rax, (%rsp)
leaq 0x568(%rsp), %rdi
callq 0xbbdc
jmp 0x71b8
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x71d8
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x71d8
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x7903
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7903
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7903
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x791f
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x610(%rsp), %rdi
cmpq %r14, %rdi
je 0x7243
movq 0x620(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7243
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x792c
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x792c
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x792c
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7939
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7956
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7978
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x568(%rsp), %rdi
cmpq %r13, %rdi
je 0x72c6
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x72c6
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7985
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7985
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7985
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79aa
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7331
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7331
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x79b7
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x79b7
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79b7
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79dc
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x79e9
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a06
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x73bc
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x73bc
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x73ea
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x73ea
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7a13
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7a13
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a13
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x7449
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7449
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7a2f
movq 0x3c8(%rsp), %rsi
jmp 0x7a27
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a2f
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x74a0
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x74a0
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x338(%rsp), %rdi
cmpq %r14, %rdi
je 0x74c6
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x74c6
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x74f4
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x74f4
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x751a
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x751a
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7a3c
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7a3c
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a3c
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x220(%rsp), %rdi
leaq 0x230(%rsp), %rax
cmpq %rax, %rdi
je 0x7589
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7589
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x358(%rsp), %rdi
cmpq %r12, %rdi
je 0x75af
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x75af
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x75d5
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x75d5
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7603
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7603
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x7a49
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7a49
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a49
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7662
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7662
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7690
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7690
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x76b6
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x76b6
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x7a56
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7a56
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a56
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7725
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7725
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x378(%rsp), %rdi
cmpq %r12, %rdi
je 0x774b
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x774b
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x7771
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7771
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x7797
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7797
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x7a63
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7a63
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a63
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x8d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x77fe
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x77fe
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x398(%rsp), %rdi
cmpq %r12, %rdi
je 0x7824
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7824
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x6b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x784a
movq 0x6c8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x784a
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x7c8(%rsp), %rdi
leaq 0x7d8(%rsp), %rax
cmpq %rax, %rdi
je 0x7878
movq 0x7d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7878
movq %rdx, %r15
movq %rax, (%rsp)
movq 0x9c8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7a70
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7a70
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a70
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7a7d
movq %rdx, %r15
movq %rax, (%rsp)
jmp 0x7aa2
movq %rax, (%rsp)
jmp 0x7bf9
movq %rdx, %r15
movq %rax, (%rsp)
leaq 0x610(%rsp), %rdi
callq 0xbbdc
movq 0x10(%rsp), %rdi
cmpq %rbp, %rdi
je 0x78f6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x568(%rsp), %rdi
callq 0xbbdc
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x791f
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x490(%rsp), %rdi
callq 0xa770
leaq 0xbb8(%rsp), %rdi
callq 0xa80c
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0x7956
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x5340
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x7978
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x220(%rsp), %rdi
callq 0xa770
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x79aa
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x3b8(%rsp), %rdi
callq 0xa770
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x79dc
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0xbf8(%rsp), %rdi
callq 0xa80c
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0x7a06
movq 0x140(%rsp), %rsi
subq %rdi, %rsi
callq 0x5340
leaq 0x148(%rsp), %rdi
callq 0xa770
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x7a2f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5340
leaq 0x6b8(%rsp), %rdi
callq 0xa854
leaq 0x7c8(%rsp), %rdi
callq 0xa854
leaq 0x8d8(%rsp), %rdi
callq 0xa92c
leaq 0x9c8(%rsp), %rdi
callq 0xa854
leaq 0xc38(%rsp), %rdi
callq 0xa854
leaq 0xad8(%rsp), %rdi
callq 0x9d20
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x7aa2
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x5340
cmpl $0x1, %r15d
jne 0x7bd4
movq (%rsp), %rdi
callq 0x5130
movq %rax, %rbx
movq 0x35531(%rip), %rdi     # 0x3cff0
leaq 0x28dce(%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 0x1123c
movq 0xc38(%rsp), %rsi
movq 0xc40(%rsp), %rdx
movq 0x354e5(%rip), %rdi     # 0x3cff0
callq 0x53a0
movq %rax, %r14
leaq 0x28d82(%rip), %rsi     # 0x3089c
movl $0x9, %edx
movq %rax, %rdi
callq 0x53a0
leaq 0x9c8(%rsp), %rdi
movq %rbx, %rsi
callq 0xa9d4
movq 0x9c8(%rsp), %rsi
movq 0x9d0(%rsp), %rdx
movq %r14, %rdi
callq 0x53a0
leaq 0x28516(%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 0x7baa
movq 0x9d8(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7baa
jmp 0x7ba6
movq %rax, (%rsp)
movq 0xc38(%rsp), %rdi
cmpq %r15, %rdi
je 0x7bcf
movq 0xc48(%rsp), %rsi
incq %rsi
callq 0x5340
jmp 0x7bcf
jmp 0x7bcb
movq %rax, (%rsp)
callq 0x5530
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x7bf9
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5340
movq (%rsp), %rdi
callq 0x55c0
movq %rax, %rdi
callq 0x9cc8