// File: /workspace/github_cpp_makefile_star2_O1/dtsaras[P]GCW/option.cpp
// Function: OptionParser::setPara(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, float&, float&, int&, int&, int&, int&, int&, float&, int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int&, int&, bool&, bool&, bool&, bool&, bool&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, bool&, bool&, float&, float&)
void OptionParser::setPara(std::string &algorithms, std::string &dataset, std::string &usersLocationsFile, std::string &eventsLocationsFile, std::string &similarities_file, std::string &dt_type, float &epsilon, float &delta, int &budget, int &P, int &num_of_monte_carlo_iterations, int &monte_carlo_iterations_tsim, int &t, float &percent, int &reps, std::string &variable, std::string &cond, int &rounds, int &m, bool &exp1, bool &exp2, bool &exp3, bool &exp4, bool &exp5, std::string &fileName, std::string &ris_alg, bool &sim, bool &rand_edges, float &mu, float &sigma){
	// Algorith (EG, CG, RG, NN, RD)
	char *  algorithm = getPara("-alg");
	if (algorithm == NULL){
		algorithms = "EG";
	}
	else if (strcmp(algorithm, "all") == 0){
		algorithms = "EGNANNRD";
	}
	else {
		algorithms = algorithm;
	}

	
	// Dataset // 0: Foursquare, 1: Gowalla
	char *  dt = getPara("-dt");
	char * prob = getPara("-pr");
	char * com = getPara("-clust");
	char * box = getPara("-box");
	std::string path = "./data/";
	if (dt == NULL || strcmp(dt, "Gowalla") == 0 || strcmp(dt, "G") == 0 || strcmp(dt, "g") == 0){
		path += "Gowalla/";
		if (com == NULL || strcmp(com, "original") == 0){
			path += "original/";
		}
		else if(strcmp(com, "kmeans") == 0 || strcmp(com, "Kmeans") == 0 || strcmp(com, "k-means") == 0){
			path += "kmeans/";
		}
		else if(strcmp(com, "dgcd") == 0 || strcmp(com, "dgcd") == 0){
			path += "dgcd/";
		}
		dataset = path + "gowalla.bin";
		usersLocationsFile = path + "users_locations_gowalla.txt";
		eventsLocationsFile = "./data/Gowalla/events_locations_gowalla.txt";
		if (box != NULL && (strcmp(box, "T") == 0 || strcmp(box, "True") == 0 || strcmp(box, "true") == 0)){
			eventsLocationsFile = "./data/Gowalla/box_events_locations_gowalla.txt";
		}
		dt_type = "gsn";
	}
	else if (strcmp(dt, "Foursquare") == 0 || strcmp(dt, "F") == 0 || strcmp(dt, "f") == 0){
		path += "Foursquare/";
		if (com == NULL || strcmp(com, "original") == 0){
			path += "original/";
		}
		else if(strcmp(com, "kmeans") == 0 || strcmp(com, "Kmeans") == 0 || strcmp(com, "k-means") == 0){
			path += "kmeans/";
		}
		else if(strcmp(com, "dgcd") == 0 || strcmp(com, "DGCD") == 0){
			path += "dgcd/";
		}
		else if(strcmp(com, "forrest_fire") == 0 || strcmp(com, "ff") == 0){
			path += "ff/";
		}
		dataset = path + "foursquare.bin";
		usersLocationsFile = path + "users_locations_foursquare.txt";
		eventsLocationsFile = "./data/Foursquare/events_locations_foursquare.txt";

		if (box != NULL && (strcmp(box, "T") == 0 || strcmp(box, "True") == 0 || strcmp(box, "true") == 0)){
            eventsLocationsFile = "./data/Foursquare/box_events_locations_foursquare.txt";
        }
        dt_type = "gsn";
	}
	else if (dt == NULL || strcmp(dt, "Flixster") == 0 || strcmp(dt, "X") == 0 || strcmp(dt, "x") == 0){
		path += "Flixster/";
		if (com == NULL || strcmp(com, "original") == 0){
			path += "original/";
		}
		dataset = path + "flixster.bin";
		similarities_file = path + "flixster_similarities.txt";
		dt_type = "social";
		usersLocationsFile = "";
		eventsLocationsFile = "";
	}
	else if (dt == NULL || strcmp(dt, "Lastfm") == 0 || strcmp(dt, "L") == 0 || strcmp(dt, "l") == 0){
		path += "Lastfm/";
		if (com == NULL || strcmp(com, "original") == 0){
			path += "original/";
		}
		dataset = path + "lastfm.bin";
		similarities_file = path + "lastfm_similarities.txt";
		dt_type = "social";
		usersLocationsFile = "";
		eventsLocationsFile = "";
	}
	else if (strcmp(dt, "Dallas") == 0){
		path += "Dallas/";
		dataset = "./data/Dallas/dallas.bin";
		usersLocationsFile = "./data/Dallas/dallas_users_locations.txt";
		eventsLocationsFile = "./data/Dallas/dallas_events_locations.txt";
		dt_type = "gsn";
	}
	else if (strcmp(dt, "test") == 0){
		path += "Test/";
		dataset = "./data/Test/test.bin";
		usersLocationsFile = "./data/Test/test_users_locations.txt";
		eventsLocationsFile = "./data/Test/test_events_locations.txt";
		dt_type = "gsn";
	}

	// Epsilon
	char *  eps = getPara("-e");
	if (eps == NULL){
		epsilon = 0.1;
	}
	else{
		epsilon = std::stof(eps);
	}

	// Delta
	char *  del = getPara("-d");
	if (del == NULL){
		delta = 0.01;
	}
	else{
		delta = atof(del);
	}

	// Budget
	char *  bud = getPara("-k");
	if (bud == NULL){
		budget = 10;
	}
	else{
		budget = atoi(bud);
	}

	// Number of Events
	char *  ev = getPara("-c");
	if (ev == NULL){
		P = 16;
	}
	else{
		P = atoi(ev);
	}

	// Monte Carlo iterations for updating AP tables
	char *  MC_its = getPara("-mc1");
	if (MC_its == NULL){
		num_of_monte_carlo_iterations = 100;
	}
	else{
		num_of_monte_carlo_iterations = atoi(MC_its);
	}

	// Monte Carlo iterations for calculating total similarity
	char * MC_its_tsim = getPara("-mc2");
	if (MC_its_tsim == NULL){
		monte_carlo_iterations_tsim = 100;
	}
	else{
		monte_carlo_iterations_tsim = atoi(MC_its_tsim);
	}

	// Number of threads
	char * num_threads = getPara("-t");
	if (num_threads == NULL){
		t = 1;
	}
	else{
		t = atoi(num_threads);
	}

	// Quality Percent
	char * perc = getPara("-p");
	if (perc == NULL){
		percent = 0.03;
	}
	else{
		percent = atof(perc);
	}

	// Variable in the experiments
	char * var = getPara("-v");
	if (var == NULL){
		variable = "";
	}
	else{
		variable = var;
	}

	// Repetitions (number of different experments)
	char * repetitions = getPara("-r");
	if (repetitions == NULL){
		if (variable == "")
			reps = 1;
		else if (variable == "c")
			reps = 5;
		else if (variable == "k")
			reps = 5;
	}
	else{
		reps = atoi(repetitions);
	}

	// Which condition to stop the reps
	char * c = getPara("-cnd");
	if (c == NULL){
		cond = "rounds";
	}
	else{
		cond = c;
	}

	// If the condition is rounds, how many till it stops
	char * rnd = getPara("-rnd");
	if (rnd == NULL){
		rounds = 1;
	}
	else{
		rounds = atoi(rnd);
	}

	// Select model (IC or LT)
	char * mod = getPara("-m");
	if (mod == NULL || atoi(mod) == 1){
		m = 1;
	}
	else{
		m = 0;
	}

	// Select what experiment to run (exp1: quality (similarity, time, memory), exp2: similarity in each round, exp3: basic utility)
	char * exper = getPara("-exp");
	if (exper == NULL){
		exp1 = true;
		exp2 = false;
		exp3 = false;
		exp4 = false;
		exp5 = false;
	}
	else if (strcmp(exper, "1") == 0){
		exp1 = true;
		exp2 = false;
		exp3 = false;
		exp4 = false;
		exp5 = false;
	}
	else if (strcmp(exper, "2") == 0){
		exp1 = false;
		exp2 = true;
		exp3 = false;
		exp4 = false;
		exp5 = false;
	}
	else if (strcmp(exper, "3") == 0){
		exp1 = false;
		exp2 = false;
		exp3 = true;
		exp4 = false;
		exp5 = false;
	}
	else if (strcmp(exper, "4") == 0){
		exp1 = false;
		exp2 = false;
		exp3 = false;
		exp4 = true;
		exp5 = false;
	}
	else if (strcmp(exper, "5") == 0){
		exp1 = false;
		exp2 = false;
		exp3 = false;
		exp4 = false;
		exp5 = true;
	}


	
	// else{
	// 	pr = atof(prob);
	// }


	char *  ris_algorithm = getPara("-ris_alg");
	if (ris_algorithm == NULL){
		ris_alg = "DSSA";
	}
	else {
		ris_alg = ris_algorithm;
	}

	char * similarity = getPara("-sim");
	if (similarity == NULL){
		sim = true;
	}
	else if (strcmp(similarity, "no") == 0 || strcmp(similarity, "n") == 0 || strcmp(similarity, "no_sim") == 0){
		sim = false;
	}
	else if (strcmp(similarity, "yes") == 0 || strcmp(similarity, "y") == 0 || strcmp(similarity, "yes_sim") == 0){
		sim = true;
	}

	char * re = getPara("-rand_edges");
	if (re == NULL){
		rand_edges = false;
	}
	else if (strcmp(re, "t") == 0 || strcmp(re, "T") == 0 || strcmp(re, "true") == 0){
		rand_edges = true;
	}
	else if (strcmp(re, "f") == 0 || strcmp(re, "F") == 0 || strcmp(re, "false") == 0){
		rand_edges = false;
	}

	char * mean = getPara("-mu");
	if (mean == NULL){
		mu = 0.1;
	}
	else{
		mu = atof(mean);
	}

	char * sig = getPara("-sigma");
	if (sig == NULL){
		sigma = 0.1;
	}
	else{
		sigma = atof(sig);
	}

	// Defaults the name of the file
	char * outFile = getPara("-o");
	if (outFile != NULL && strcmp(outFile, "def") == 0){
		fileName += "results/";
		if (com == NULL || strcmp(com, "original") == 0){
			fileName += "original/";
		}
		else if(strcmp(com, "kmeans") == 0 || strcmp(com, "Kmeans") == 0 || strcmp(com, "k-means") == 0){
			fileName += "kmeans/";
		}
		else if(strcmp(com, "dgcd") == 0 || strcmp(com, "dgcd") == 0){
			fileName += "dgcd/";
		}
		else if(strcmp(com, "forrest_fire") == 0 || strcmp(com, "ff") == 0){
			fileName += "ff/";
		}
		if (dt == NULL || strcmp(dt, "Gowalla") == 0 || strcmp(dt, "G") == 0 || strcmp(dt, "g") == 0)
			fileName += "g";
		else if (strcmp(dt, "Foursquare") == 0 || strcmp(dt, "F") == 0 || strcmp(dt, "f") == 0)
			fileName += "f";
		else
			fileName += dt;
		if (m == 1)
			fileName += "_ic";
		else
			fileName += "_lt";
		if (sim)
			fileName += "_ysim";
		else
			fileName += "_nsim";
		if (rand_edges)
			fileName += "_rand_" + (std::string) mean + "_" + (std::string) sig;
		if (var != NULL)
			fileName += "_" + variable;
		if (exp1)
			fileName += ".dat";
		else if (exp2)
			fileName += "_rounds.dat";
		else if (exp3)
			fileName += "_utility.dat";
		else if (exp4)
			fileName += "_mult_rounds.dat";
		else if (exp5)
			fileName = "tmp_clust_exper.dat";
		std::cout << fileName << std::endl;
	}
	else if (outFile != NULL){
		fileName = std::string(outFile);
	}

	// // Output file
	// std::ofstream file;
	// char * outFile = getPara("-o");
	// if (outFile == NULL){
	// 	output = &std::cout;
	// }
	// else{
	// 	file.open(outFile);
	// 	output = &file;
	// }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %r9, 0x60(%rsp)
movq %r8, 0x28(%rsp)
movq %rcx, 0x58(%rsp)
movq %rdx, %r13
movq %rsi, %rbx
movq %rdi, %r15
leaq 0x3ea2(%rip), %rsi      # 0x1883c
callq 0x148f2
testq %rax, %rax
je 0x149d6
movq %rax, %rbp
leaq 0x3e93(%rip), %rsi      # 0x18841
movq %rax, %rdi
callq 0x3460
movq 0x8(%rbx), %r14
testl %eax, %eax
je 0x149ee
movq %rbp, %rdi
callq 0x3160
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbp, %rcx
movq %rax, %r8
jmp 0x14a03
movq 0x8(%rbx), %rdx
leaq 0x370a(%rip), %rcx      # 0x180eb
movl $0x2, %r8d
movq %rbx, %rdi
xorl %esi, %esi
jmp 0x14a03
leaq 0x3e50(%rip), %rcx      # 0x18845
movl $0x8, %r8d
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x34e0
leaq 0x3e3f(%rip), %rsi      # 0x1884e
movq %r15, %rdi
callq 0x148f2
movq %rax, %r14
leaq 0x3e31(%rip), %rsi      # 0x18852
movq %r15, %rdi
callq 0x148f2
leaq 0x3e26(%rip), %rsi      # 0x18856
movq %r15, %rdi
callq 0x148f2
movq %rax, %r12
leaq 0x3e1b(%rip), %rsi      # 0x1885d
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbp
leaq 0x48(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3e05(%rip), %rsi      # 0x18862
leaq 0x3e05(%rip), %rdx      # 0x18869
leaq 0x38(%rsp), %rdi
callq 0xb376
testq %r14, %r14
movq %r12, 0x68(%rsp)
movq %r14, 0x90(%rsp)
je 0x14c03
leaq 0x3ddf(%rip), %rsi      # 0x1886a
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x14c03
leaq 0x3c9c(%rip), %rsi      # 0x1873e
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x14c03
leaq 0x3d86(%rip), %rsi      # 0x1883f
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x14c03
leaq 0x3e77(%rip), %rsi      # 0x18947
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15588
leaq 0x3e6b(%rip), %rsi      # 0x18952
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15588
leaq 0x40de(%rip), %rsi      # 0x18bdc
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15588
leaq 0x3efa(%rip), %rsi      # 0x18a0f
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15778
leaq 0x3eec(%rip), %rsi      # 0x18a18
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15778
leaq 0x3d1d(%rip), %rsi      # 0x18860
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15778
leaq 0x3ef1(%rip), %rsi      # 0x18a4b
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15d30
leaq 0x3ee1(%rip), %rsi      # 0x18a52
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15d30
leaq 0x36bc(%rip), %rsi      # 0x18244
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15d30
leaq 0x3ee0(%rip), %rsi      # 0x18a7f
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
je 0x15e11
leaq 0x3f44(%rip), %rsi      # 0x18afa
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
jne 0x14def
leaq 0x3f32(%rip), %rsi      # 0x18aff
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x3f27(%rip), %rsi      # 0x18b05
movq %r13, %rdi
callq 0x3440
leaq 0x3f2d(%rip), %rsi      # 0x18b1a
movq 0x58(%rsp), %rdi
callq 0x3440
leaq 0x3f41(%rip), %rsi      # 0x18b3f
jmp 0x15e49
leaq 0x3c68(%rip), %rsi      # 0x18872
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x3c69(%rip), %rbx      # 0x18884
testq %r12, %r12
je 0x14c8d
leaq 0x3c54(%rip), %rsi      # 0x1887b
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x14c8d
leaq 0x3c54(%rip), %rsi      # 0x1888e
movq %r12, %rdi
callq 0x3460
leaq 0x3c5b(%rip), %rbx      # 0x188a4
testl %eax, %eax
je 0x14c8d
leaq 0x3c41(%rip), %rsi      # 0x18895
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x14c8d
leaq 0x3c35(%rip), %rsi      # 0x1889c
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x14c8d
leaq 0x3c32(%rip), %rsi      # 0x188ac
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x14c9a
leaq 0x3c24(%rip), %rbx      # 0x188b1
leaq 0x38(%rsp), %rdi
movq %rbx, %rsi
callq 0x3650
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0xb2e6
leaq 0x3bf6(%rip), %rsi      # 0x188b7
leaq 0x8(%rsp), %rdi
callq 0x3650
leaq 0x8(%rsp), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x14ce8
callq 0x3340
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0xb2e6
leaq 0x3bba(%rip), %rsi      # 0x188c3
leaq 0x8(%rsp), %rdi
callq 0x3650
leaq 0x8(%rsp), %rbx
movq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x14d32
callq 0x3340
movq 0x28(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x3b9d(%rip), %rcx      # 0x188df
movl $0x2b, %r8d
xorl %esi, %esi
callq 0x34e0
movl $0x3, %r14d
leaq 0x34ce(%rip), %r13      # 0x1822a
testq %rbp, %rbp
je 0x14dcc
movq %rbp, %r12
leaq 0x3ba0(%rip), %rsi      # 0x1890b
movq %rbp, %rdi
callq 0x3460
movl $0x2f, %ebp
leaq 0x3b98(%rip), %rbx      # 0x18917
testl %eax, %eax
je 0x14da9
leaq 0x3b83(%rip), %rsi      # 0x1890d
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x14da9
leaq 0x3b75(%rip), %rsi      # 0x18912
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x14dcc
movq 0x28(%rsp), %rdi
movq 0x8(%rdi), %rdx
xorl %esi, %esi
movq %rbx, %rcx
movq %rbp, %r8
callq 0x34e0
movl $0x3, %r14d
leaq 0x345e(%rip), %r13      # 0x1822a
movq 0x130(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movq 0x8(%rdi), %rdx
xorl %esi, %esi
movq %r13, %rcx
movq %r14, %r8
callq 0x34e0
leaq 0x3d6f(%rip), %rsi      # 0x18b65
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbx
movq 0x138(%rsp), %rbp
testq %rax, %rax
je 0x14e7a
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rbx, %rdi
callq 0x3160
movq %rbx, %rdx
addq %rax, %rdx
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0xb376
movq 0x8(%rsp), %rbx
callq 0x3060
movq %rax, %r14
movl (%rax), %r13d
movl $0x0, (%rax)
leaq 0x70(%rsp), %r12
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3420
cmpq %rbx, (%r12)
je 0x15e69
movl (%r14), %eax
testl %eax, %eax
je 0x14e83
cmpl $0x22, %eax
jne 0x14e86
leaq 0x3dbf(%rip), %rdi      # 0x18c34
callq 0x3480
movl $0x3dcccccd, (%rbp)     # imm = 0x3DCCCCCD
jmp 0x14e9f
movl %r13d, (%r14)
movss %xmm0, (%rbp)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x14e9f
callq 0x3340
leaq 0x3cc2(%rip), %rsi      # 0x18b68
movq %r15, %rdi
callq 0x148f2
movq 0x140(%rsp), %rbx
testq %rax, %rax
je 0x14ec9
movq %rax, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x14ed1
movss 0x395f(%rip), %xmm0     # 0x18830
movss %xmm0, (%rbx)
leaq 0x3c8f(%rip), %rsi      # 0x18b6b
movq %r15, %rdi
callq 0x148f2
movq 0x148(%rsp), %rbx
testq %rax, %rax
je 0x14efb
movq %rax, %rdi
callq 0x34f0
jmp 0x14f00
movl $0xa, %eax
movl %eax, (%rbx)
leaq 0x3c65(%rip), %rsi      # 0x18b6e
movq %r15, %rdi
callq 0x148f2
movq 0x150(%rsp), %rbx
testq %rax, %rax
je 0x14f28
movq %rax, %rdi
callq 0x34f0
jmp 0x14f2d
movl $0x10, %eax
movl %eax, (%rbx)
leaq 0x3c3b(%rip), %rsi      # 0x18b71
movq %r15, %rdi
callq 0x148f2
movq 0x158(%rsp), %rbx
testq %rax, %rax
je 0x14f55
movq %rax, %rdi
callq 0x34f0
jmp 0x14f5a
movl $0x64, %eax
movl %eax, (%rbx)
leaq 0x3c13(%rip), %rsi      # 0x18b76
movq %r15, %rdi
callq 0x148f2
movq 0x160(%rsp), %rbx
testq %rax, %rax
je 0x14f82
movq %rax, %rdi
callq 0x34f0
jmp 0x14f87
movl $0x64, %eax
movl %eax, (%rbx)
leaq 0x3beb(%rip), %rsi      # 0x18b7b
movq %r15, %rdi
callq 0x148f2
movq 0x168(%rsp), %rbx
testq %rax, %rax
je 0x14faf
movq %rax, %rdi
callq 0x34f0
jmp 0x14fb4
movl $0x1, %eax
movl %eax, (%rbx)
leaq 0x3bc1(%rip), %rsi      # 0x18b7e
movq %r15, %rdi
callq 0x148f2
movq 0x170(%rsp), %rbx
testq %rax, %rax
je 0x14fe0
movq %rax, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x14fe8
movss 0x384c(%rip), %xmm0     # 0x18834
movss %xmm0, (%rbx)
leaq 0x3b8e(%rip), %rsi      # 0x18b81
movq %r15, %rdi
callq 0x148f2
movq %rax, %r13
movq 0x180(%rsp), %r14
movq 0x8(%r14), %rbx
testq %rax, %rax
je 0x1501f
movq %r13, %rdi
callq 0x3160
movq %rax, %r8
movq %r13, %rcx
jmp 0x15029
xorl %r8d, %r8d
leaq 0x30ca(%rip), %rcx      # 0x180f3
movq %r14, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x34e0
leaq 0x3b47(%rip), %rsi      # 0x18b84
movq %r15, %rdi
callq 0x148f2
testq %rax, %rax
je 0x1508e
movq %rax, %rdi
callq 0x34f0
movl %eax, %ebx
movq 0x178(%rsp), %rax
movl %ebx, (%rax)
leaq 0x3b22(%rip), %rsi      # 0x18b87
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbx
movq 0x188(%rsp), %rbp
movq 0x8(%rbp), %r14
testq %rax, %rax
je 0x150d2
movq %rbx, %rdi
callq 0x3160
movq %rax, %r8
jmp 0x150df
leaq 0x305e(%rip), %rsi      # 0x180f3
movq %r14, %rdi
callq 0x3100
testl %eax, %eax
je 0x1557e
leaq 0x3ac3(%rip), %rsi      # 0x18b6f
movq %r14, %rdi
callq 0x3100
movl $0x5, %ebx
testl %eax, %eax
je 0x15054
leaq 0x3aa8(%rip), %rsi      # 0x18b6c
movq %r14, %rdi
callq 0x3100
testl %eax, %eax
jne 0x1505e
jmp 0x15054
movl $0x6, %r8d
leaq 0x3204(%rip), %rbx      # 0x182e3
movq %rbp, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x34e0
leaq 0x3a96(%rip), %rsi      # 0x18b8c
movq %r15, %rdi
callq 0x148f2
movq 0x190(%rsp), %rbx
testq %rax, %rax
je 0x15115
movq %rax, %rdi
callq 0x34f0
jmp 0x1511a
movl $0x1, %eax
movl %eax, (%rbx)
leaq 0x3a6e(%rip), %rsi      # 0x18b91
movq %r15, %rdi
callq 0x148f2
movq 0x198(%rsp), %rbx
testq %rax, %rax
je 0x1514a
movq %rax, %rdi
callq 0x34f0
xorl %ecx, %ecx
cmpl $0x1, %eax
sete %cl
jmp 0x1514f
movl $0x1, %ecx
movl %ecx, (%rbx)
leaq 0x3a3c(%rip), %rsi      # 0x18b94
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbx
movq 0x1c0(%rsp), %r14
movq 0x1b8(%rsp), %r12
movb $0x1, %bpl
testq %rax, %rax
je 0x151f3
leaq 0x2fdc(%rip), %rsi      # 0x1815e
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x151f3
leaq 0x2fda(%rip), %rsi      # 0x1816f
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x15575
leaq 0x2fd4(%rip), %rsi      # 0x18180
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x15760
leaq 0x2fce(%rip), %rsi      # 0x18191
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x1576b
leaq 0x2fc8(%rip), %rsi      # 0x181a2
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
jne 0x15221
movb $0x1, %sil
xorl %ebp, %ebp
xorl %eax, %eax
xorl %ecx, %ecx
xorl %edx, %edx
jmp 0x151fb
xorl %eax, %eax
xorl %ecx, %ecx
xorl %edx, %edx
xorl %esi, %esi
movq 0x1a0(%rsp), %rdi
movb %bpl, (%rdi)
movq 0x1a8(%rsp), %rdi
movb %al, (%rdi)
movq 0x1b0(%rsp), %rax
movb %cl, (%rax)
movb %dl, (%r12)
movb %sil, (%r14)
leaq 0x3971(%rip), %rsi      # 0x18b99
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbx
movq 0x1d0(%rsp), %rbp
movq 0x8(%rbp), %r14
testq %rax, %rax
je 0x15251
movq %rbx, %rdi
callq 0x3160
movq %rax, %r8
jmp 0x1525e
movl $0x4, %r8d
leaq 0x304a(%rip), %rbx      # 0x182a8
movq %rbp, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x34e0
leaq 0x392d(%rip), %rsi      # 0x18ba2
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbx
movq 0x1d8(%rsp), %r14
movb $0x1, %bpl
testq %rax, %rax
je 0x15306
leaq 0x3910(%rip), %rsi      # 0x18ba7
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x15304
leaq 0x3617(%rip), %rsi      # 0x188c1
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x15304
leaq 0x38ed(%rip), %rsi      # 0x18baa
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x15304
leaq 0x38e1(%rip), %rsi      # 0x18bb1
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x15306
leaq 0x2e04(%rip), %rsi      # 0x180e7
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x15306
leaq 0x38bf(%rip), %rsi      # 0x18bb5
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
jne 0x15309
jmp 0x15306
xorl %ebp, %ebp
movb %bpl, (%r14)
leaq 0x38ad(%rip), %rsi      # 0x18bbd
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbx
movq 0x1e0(%rsp), %r12
testq %rax, %rax
je 0x1539d
leaq 0x384d(%rip), %rsi      # 0x18b7c
movq %rbx, %rdi
callq 0x3460
movb $0x1, %bpl
testl %eax, %eax
je 0x1539f
leaq 0x35c6(%rip), %rsi      # 0x1890b
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x1539f
leaq 0x35ba(%rip), %rsi      # 0x18912
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x1539f
leaq 0x3871(%rip), %rsi      # 0x18bdc
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x1539d
leaq 0x35d4(%rip), %rsi      # 0x18952
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x1539d
leaq 0x3838(%rip), %rsi      # 0x18bc9
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
jne 0x153a3
xorl %ebp, %ebp
movb %bpl, (%r12)
leaq 0x3825(%rip), %rsi      # 0x18bcf
movq %r15, %rdi
callq 0x148f2
movq %rax, %r14
movq 0x1e8(%rsp), %rbx
testq %rax, %rax
je 0x153d0
movq %r14, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x153d8
movss 0x3460(%rip), %xmm0     # 0x18838
movss %xmm0, (%rbx)
leaq 0x37f0(%rip), %rsi      # 0x18bd3
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbx
movq 0x1f0(%rsp), %rbp
testq %rax, %rax
je 0x15409
movq %rbx, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x15411
movss 0x3427(%rip), %xmm0     # 0x18838
movss %xmm0, (%rbp)
leaq 0x2da9(%rip), %rsi      # 0x181c6
movq %r15, %rdi
callq 0x148f2
movq %rax, %rbp
testq %rax, %rax
je 0x15cea
movq 0x1c8(%rsp), %r15
leaq 0x379a(%rip), %rsi      # 0x18bda
movq %rbp, %rdi
callq 0x3460
testl %eax, %eax
je 0x15496
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq %rbp, %rdi
callq 0x3160
movq %rbp, %rdx
addq %rax, %rdx
leaq 0x8(%rsp), %rdi
movq %rbp, %rsi
callq 0xb376
leaq 0x8(%rsp), %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x15cea
callq 0x3340
jmp 0x15cea
leaq 0x3741(%rip), %rsi      # 0x18bde
movq %r15, %rdi
callq 0x3650
leaq 0x33d8(%rip), %rbp      # 0x18884
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x15896
leaq 0x33ba(%rip), %rsi      # 0x1887b
callq 0x3460
testl %eax, %eax
je 0x15896
leaq 0x33b9(%rip), %rsi      # 0x1888e
movq 0x68(%rsp), %r15
movq %r15, %rdi
callq 0x3460
leaq 0x33bb(%rip), %rbp      # 0x188a4
testl %eax, %eax
je 0x15896
leaq 0x339d(%rip), %rsi      # 0x18895
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x15896
leaq 0x338d(%rip), %rsi      # 0x1889c
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x15896
leaq 0x3386(%rip), %rsi      # 0x188ac
movq 0x68(%rsp), %r15
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x1588f
leaq 0x3423(%rip), %rsi      # 0x18965
movq %r15, %rdi
callq 0x3460
leaq 0x3424(%rip), %rbp      # 0x18975
testl %eax, %eax
je 0x15896
leaq 0x3412(%rip), %rsi      # 0x18972
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
jne 0x158a6
jmp 0x15896
movb $0x1, %al
xorl %ebp, %ebp
jmp 0x151f5
movl $0x1, %ebx
jmp 0x15054
movq %rbp, 0x60(%rsp)
leaq 0x33c0(%rip), %rsi      # 0x18954
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x32df(%rip), %r14      # 0x18884
testq %r12, %r12
je 0x15663
leaq 0x32c6(%rip), %rsi      # 0x1887b
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15663
leaq 0x32c2(%rip), %rsi      # 0x1888e
movq %r12, %rdi
callq 0x3460
leaq 0x32c9(%rip), %r14      # 0x188a4
testl %eax, %eax
je 0x15663
leaq 0x32ab(%rip), %rsi      # 0x18895
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15663
leaq 0x329f(%rip), %rsi      # 0x1889c
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15663
leaq 0x329c(%rip), %rsi      # 0x188ac
movq %r12, %rdi
callq 0x3460
leaq 0x3292(%rip), %r14      # 0x188b1
testl %eax, %eax
je 0x15663
leaq 0x3336(%rip), %rsi      # 0x18960
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15663
leaq 0x3328(%rip), %rsi      # 0x18965
movq %r12, %rdi
callq 0x3460
leaq 0x3329(%rip), %r14      # 0x18975
testl %eax, %eax
je 0x15663
leaq 0x331b(%rip), %rsi      # 0x18972
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x15670
leaq 0x38(%rsp), %rdi
movq %r14, %rsi
callq 0x3650
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0xb2e6
leaq 0x32e2(%rip), %rsi      # 0x18979
leaq 0x8(%rsp), %rdi
callq 0x3650
leaq 0x8(%rsp), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x156be
callq 0x3340
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0xb2e6
leaq 0x32a9(%rip), %rsi      # 0x18988
leaq 0x8(%rsp), %rdi
callq 0x3650
leaq 0x8(%rsp), %rbx
movq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x15708
callq 0x3340
movq 0x28(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x328f(%rip), %rcx      # 0x189a7
movl $0x31, %r8d
xorl %esi, %esi
callq 0x34e0
movl $0x3, %r14d
leaq 0x2af8(%rip), %r13      # 0x1822a
movq 0x60(%rsp), %r12
testq %r12, %r12
je 0x14dcc
leaq 0x31c4(%rip), %rsi      # 0x1890b
movq %r12, %rdi
callq 0x3460
movl $0x35, %ebp
leaq 0x327e(%rip), %rbx      # 0x189d9
jmp 0x14d7f
movb $0x1, %cl
xorl %ebp, %ebp
xorl %eax, %eax
jmp 0x151f7
movb $0x1, %dl
xorl %ebp, %ebp
xorl %eax, %eax
xorl %ecx, %ecx
jmp 0x151f9
leaq 0x329b(%rip), %rsi      # 0x18a1a
leaq 0x38(%rsp), %rdi
callq 0x3650
testq %r12, %r12
je 0x157a1
leaq 0x30e6(%rip), %rsi      # 0x1887b
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x157b2
leaq 0x30dc(%rip), %rsi      # 0x18884
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0xb2e6
leaq 0x324b(%rip), %rsi      # 0x18a24
leaq 0x8(%rsp), %rdi
callq 0x3650
leaq 0x8(%rsp), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x15800
callq 0x3340
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0xb2e6
leaq 0x3210(%rip), %rsi      # 0x18a31
leaq 0x8(%rsp), %rdi
callq 0x3650
leaq 0x8(%rsp), %rbx
movq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x1584a
callq 0x3340
movq 0x130(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x29e2(%rip), %rcx      # 0x1823f
movl $0x6, %r8d
xorl %esi, %esi
callq 0x34e0
movq 0x58(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x2879(%rip), %r13      # 0x180f3
xorl %r14d, %r14d
xorl %esi, %esi
movq %r13, %rcx
xorl %r8d, %r8d
callq 0x34e0
jmp 0x14dd9
leaq 0x301b(%rip), %rbp      # 0x188b1
movq 0x1c8(%rsp), %rdi
movq %rbp, %rsi
callq 0x3650
leaq 0x2f92(%rip), %rbp      # 0x1883f
movq 0x90(%rsp), %r15
testq %r15, %r15
je 0x1594f
leaq 0x2fa5(%rip), %rsi      # 0x1886a
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x1594f
leaq 0x2e66(%rip), %rsi      # 0x1873e
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x1594f
leaq 0x2f54(%rip), %rbp      # 0x1883f
movq %r15, %rdi
movq %rbp, %rsi
callq 0x3460
testl %eax, %eax
je 0x1594f
leaq 0x3046(%rip), %rsi      # 0x18947
movq %r15, %rdi
callq 0x3460
leaq 0x32cc(%rip), %rbp      # 0x18bdc
testl %eax, %eax
je 0x1594f
leaq 0x3037(%rip), %rsi      # 0x18952
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x1594f
leaq 0x32ae(%rip), %rbp      # 0x18bdc
movq %r15, %rdi
movq %rbp, %rsi
callq 0x3460
testl %eax, %eax
je 0x1594f
movq 0x1c8(%rsp), %rdi
movq %r15, %rsi
callq 0x3650
jmp 0x1595f
movq 0x1c8(%rsp), %rdi
movq %rbp, %rsi
callq 0x3650
movq 0x198(%rsp), %rax
cmpl $0x1, (%rax)
leaq 0x3276(%rip), %rax      # 0x18be7
leaq 0x3273(%rip), %rsi      # 0x18beb
cmoveq %rax, %rsi
movq 0x1c8(%rsp), %rdi
callq 0x3650
leaq 0x325f(%rip), %rax      # 0x18bef
leaq 0x325e(%rip), %rsi      # 0x18bf5
movq 0x1d8(%rsp), %rcx
cmpb $0x0, (%rcx)
cmovneq %rax, %rsi
movq 0x1c8(%rsp), %rdi
callq 0x3650
cmpb $0x1, (%r12)
movq 0x180(%rsp), %r15
movq 0x1c0(%rsp), %r12
movq 0x1c8(%rsp), %rbp
jne 0x15c09
leaq 0xd8(%rsp), %rdi
leaq 0x37(%rsp), %rdx
movq %r14, %rsi
callq 0x3140
leaq 0x3209(%rip), %rcx      # 0x18bfb
leaq 0xd8(%rsp), %rdi
movl $0x6, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x33a0
leaq 0xc8(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x15a39
movq %rdx, 0xb8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc8(%rsp)
jmp 0x15a40
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0xb8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x319a(%rip), %rsi      # 0x18c00
callq 0x3650
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x15a99
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x15aa1
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x98(%rsp), %rdi
leaq 0x36(%rsp), %rdx
movq %rbx, %rsi
callq 0x3140
movq 0x70(%rsp), %rcx
movq 0x78(%rsp), %r8
movq 0xa0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x15af6
movq 0x80(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x15b1b
leaq 0xa8(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x15b16
movq 0xa8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x15b2f
movq 0x98(%rsp), %rsi
leaq 0x70(%rsp), %rdi
callq 0x3110
jmp 0x15b40
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x33a0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x15b64
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x15b6a
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbp, %rdi
callq 0x3110
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15bac
callq 0x3340
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15bc2
callq 0x3340
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x15bd1
callq 0x3340
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
movq 0x180(%rsp), %r15
movq 0x1c0(%rsp), %r12
je 0x15bf3
callq 0x3340
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15c09
callq 0x3340
testq %r13, %r13
je 0x15c47
leaq 0x2feb(%rip), %rsi      # 0x18c00
leaq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x15ff6
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbp, %rdi
callq 0x3110
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15c47
callq 0x3340
movq 0x1a0(%rsp), %rax
cmpb $0x0, (%rax)
je 0x15c5d
leaq 0x2fd4(%rip), %rsi      # 0x18c2f
jmp 0x15c9d
movq 0x1a8(%rsp), %rax
cmpb $0x0, (%rax)
je 0x15c73
leaq 0x2fa3(%rip), %rsi      # 0x18c14
jmp 0x15c9d
movq 0x1b0(%rsp), %rax
cmpb $0x0, (%rax)
je 0x15c89
leaq 0x2f7b(%rip), %rsi      # 0x18c02
jmp 0x15c9d
movq 0x1b8(%rsp), %rax
cmpb $0x1, (%rax)
jne 0x15d10
leaq 0x2f72(%rip), %rsi      # 0x18c0f
movq %rbp, %rdi
callq 0x3650
movq 0x1c8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq 0x9315(%rip), %rdi      # 0x1efd0
callq 0x33b0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3360
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3240
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x15cfe
callq 0x3340
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x1, (%r12)
jne 0x15ca5
leaq 0x2f02(%rip), %rsi      # 0x18c20
movq 0x1c8(%rsp), %rdi
callq 0x3440
jmp 0x15ca5
leaq 0x2d1d(%rip), %rsi      # 0x18a54
leaq 0x38(%rsp), %rdi
callq 0x3650
testq %r12, %r12
je 0x15d59
leaq 0x2b2e(%rip), %rsi      # 0x1887b
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x15d6a
leaq 0x2b24(%rip), %rsi      # 0x18884
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x2ceb(%rip), %rdx      # 0x18a5c
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x15fa6
leaq 0x8(%rsp), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
leaq 0x18(%rsp), %r14
cmpq %r14, %rdi
je 0x15da2
callq 0x3340
leaq 0x2cbe(%rip), %rdx      # 0x18a67
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x15fa6
leaq 0x8(%rsp), %rbx
movq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x15dd7
callq 0x3340
leaq 0x2461(%rip), %rsi      # 0x1823f
movq 0x130(%rsp), %rdi
callq 0x3440
leaq 0x2301(%rip), %rbx      # 0x180f3
movq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x3440
movq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x3440
jmp 0x14def
leaq 0x2c6e(%rip), %rsi      # 0x18a86
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x2c65(%rip), %rsi      # 0x18a8e
movq %r13, %rdi
callq 0x3440
leaq 0x2c6f(%rip), %rsi      # 0x18aa7
movq 0x58(%rsp), %rdi
callq 0x3440
leaq 0x2c87(%rip), %rsi      # 0x18ad0
movq 0x28(%rsp), %rdi
callq 0x3440
leaq 0x23d0(%rip), %rbx      # 0x1822a
movq 0x130(%rsp), %rax
movq %rax, 0x28(%rsp)
jmp 0x15dff
leaq 0x2dc4(%rip), %rdi      # 0x18c34
callq 0x31d0
jmp 0x15f87
jmp 0x15f87
jmp 0x15f2c
jmp 0x15f87
jmp 0x15f2c
jmp 0x15f87
jmp 0x15f2c
jmp 0x15f87
jmp 0x15f2c
jmp 0x15f87
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15ec2
callq 0x3340
jmp 0x15ec2
movq %rax, %rbx
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15edd
callq 0x3340
jmp 0x15edd
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x15ef1
callq 0x3340
jmp 0x15ef1
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x15f08
callq 0x3340
jmp 0x15f08
movq %rax, %rbx
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x15f53
jmp 0x15f87
movq %rax, %rbx
leaq 0x18(%rsp), %rax
jmp 0x15f10
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f2c
jmp 0x15f87
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
jne 0x15f58
jmp 0x15f8a
jmp 0x15f87
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x15f49
movl %r13d, (%r14)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x15f8a
callq 0x3340
jmp 0x15f8a
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
jmp 0x15f87
movq %rax, %rbx
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x15f9e
callq 0x3340
movq %rbx, %rdi
callq 0x35c0