// File: /workspace/github_cpp_makefile_star2_O3/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 $0xe8, %rsp
movq %r9, %rbx
movq %r8, 0x28(%rsp)
movq %rcx, 0x58(%rsp)
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %r15
leaq 0x30f4(%rip), %rsi      # 0x17850
callq 0x146b6
testq %rax, %rax
je 0x14798
movq %rax, %r12
leaq 0x30e5(%rip), %rsi      # 0x17855
movq %rax, %rdi
callq 0x3460
movq 0x8(%r14), %rbp
testl %eax, %eax
je 0x147b0
movq %r12, %rdi
callq 0x3160
movq %r14, %rdi
xorl %esi, %esi
movq %rbp, %rdx
movq %r12, %rcx
movq %rax, %r8
jmp 0x147c5
movq 0x8(%r14), %rdx
leaq 0x2948(%rip), %rcx      # 0x170eb
movl $0x2, %r8d
movq %r14, %rdi
xorl %esi, %esi
jmp 0x147c5
leaq 0x30a2(%rip), %rcx      # 0x17859
movl $0x8, %r8d
movq %r14, %rdi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x34e0
leaq 0x3091(%rip), %rsi      # 0x17862
movq %r15, %rdi
callq 0x146b6
movq %rax, %r12
leaq 0x3083(%rip), %rsi      # 0x17866
movq %r15, %rdi
callq 0x146b6
leaq 0x3078(%rip), %rsi      # 0x1786a
movq %r15, %rdi
callq 0x146b6
movq %rax, 0x20(%rsp)
leaq 0x306b(%rip), %rsi      # 0x17871
movq %r15, %rdi
callq 0x146b6
movq %rax, %r14
leaq 0x48(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3055(%rip), %rsi      # 0x17876
leaq 0x3055(%rip), %rdx      # 0x1787d
leaq 0x38(%rsp), %rdi
callq 0xb1f2
testq %r12, %r12
movq %r12, 0x60(%rsp)
je 0x14886
leaq 0x303b(%rip), %rsi      # 0x1787e
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x14886
movzbl (%r12), %ebp
cmpl $0x67, %ebp
je 0x14862
cmpl $0x47, %ebp
jne 0x14a32
cmpb $0x0, 0x1(%r12)
je 0x14886
leaq 0x30e8(%rip), %rsi      # 0x17959
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x14a63
jmp 0x15368
leaq 0x2ff9(%rip), %rsi      # 0x17886
leaq 0x38(%rsp), %rdi
callq 0x3650
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rbp
leaq 0x2ff0(%rip), %rbx      # 0x17898
testq %r12, %r12
je 0x1491a
leaq 0x2fdb(%rip), %rsi      # 0x1788f
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1491a
leaq 0x2fdb(%rip), %rsi      # 0x178a2
movq %r12, %rdi
callq 0x3460
leaq 0x2fe2(%rip), %rbx      # 0x178b8
testl %eax, %eax
je 0x1491a
leaq 0x2fc8(%rip), %rsi      # 0x178a9
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1491a
leaq 0x2fbc(%rip), %rsi      # 0x178b0
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1491a
leaq 0x2fb9(%rip), %rsi      # 0x178c0
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x14927
leaq 0x2fab(%rip), %rbx      # 0x178c5
leaq 0x38(%rsp), %rdi
movq %rbx, %rsi
callq 0x3650
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xb15c
leaq 0x2f7e(%rip), %rsi      # 0x178cb
movq %rsp, %rdi
callq 0x3650
movq %rsp, %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x14970
callq 0x3340
movq %rsp, %rdi
movq %r12, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0xb15c
leaq 0x2f48(%rip), %rsi      # 0x178d7
movq %rsp, %rdi
callq 0x3650
movq %rsp, %rbx
movq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x149b4
callq 0x3340
movq 0x8(%rbp), %rdx
leaq 0x2f34(%rip), %rcx      # 0x178f3
movl $0x2b, %r8d
movq %rbp, %rdi
xorl %esi, %esi
callq 0x34e0
movl $0x3, %ebx
leaq 0x284f(%rip), %r13      # 0x1722a
testq %r14, %r14
je 0x14ac5
cmpb $0x54, (%r14)
leaq 0x2f3a(%rip), %rbp      # 0x17929
jne 0x149fc
cmpb $0x0, 0x1(%r14)
je 0x14a9d
leaq 0x2f1c(%rip), %rsi      # 0x1791f
movq %r14, %rdi
callq 0x3460
movl $0x2f, %r12d
testl %eax, %eax
je 0x14aa3
leaq 0x2f04(%rip), %rsi      # 0x17924
movq %r14, %rdi
callq 0x3460
testl %eax, %eax
jne 0x14ac5
jmp 0x14aa3
leaq 0x2f20(%rip), %rsi      # 0x17959
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15368
cmpl $0x66, %ebp
je 0x152a8
cmpl $0x46, %ebp
jne 0x14a63
cmpb $0x0, 0x1(%r12)
je 0x15368
leaq 0x2fb2(%rip), %rsi      # 0x17a1c
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15548
cmpl $0x78, %ebp
je 0x15284
cmpl $0x58, %ebp
jne 0x152cb
cmpb $0x0, 0x1(%r12)
jne 0x152cb
jmp 0x15548
movl $0x2f, %r12d
movq 0x28(%rsp), %rdi
movq 0x8(%rdi), %rdx
xorl %esi, %esi
movq %rbp, %rcx
movq %r12, %r8
callq 0x34e0
movl $0x3, %ebx
leaq 0x2765(%rip), %r13      # 0x1722a
movq 0x120(%rsp), %rbp
movq 0x8(%rbp), %rdx
movq %rbp, %rdi
xorl %esi, %esi
movq %r13, %rcx
movq %rbx, %r8
callq 0x34e0
leaq 0x3086(%rip), %rsi      # 0x17b6e
movq %r15, %rdi
callq 0x146b6
movq %rax, %rbx
movq 0x128(%rsp), %rbp
testq %rax, %rax
je 0x14b69
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rbx, %rdi
callq 0x3160
movq %rbx, %rdx
addq %rax, %rdx
movq %rsp, %rdi
movq %rbx, %rsi
callq 0xb1f2
movq (%rsp), %rbx
callq 0x3060
movq %rax, %r14
movl (%rax), %r13d
movl $0x0, (%rax)
leaq 0x68(%rsp), %r12
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3420
cmpq %rbx, (%r12)
je 0x15bea
movl (%r14), %eax
testl %eax, %eax
je 0x14b72
cmpl $0x22, %eax
jne 0x14b75
leaq 0x30d6(%rip), %rdi      # 0x17c3a
callq 0x3480
movl $0x3dcccccd, (%rbp)     # imm = 0x3DCCCCCD
jmp 0x14b8d
movl %r13d, (%r14)
movss %xmm0, (%rbp)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x14b8d
callq 0x3340
leaq 0x2fdd(%rip), %rsi      # 0x17b71
movq %r15, %rdi
callq 0x146b6
movq 0x130(%rsp), %rbx
testq %rax, %rax
je 0x14bb7
movq %rax, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x14bbf
movss 0x2c71(%rip), %xmm0     # 0x17830
movss %xmm0, (%rbx)
leaq 0x2faa(%rip), %rsi      # 0x17b74
movq %r15, %rdi
callq 0x146b6
movq 0x138(%rsp), %rbx
testq %rax, %rax
je 0x14be9
movq %rax, %rdi
callq 0x34f0
jmp 0x14bee
movl $0xa, %eax
movl %eax, (%rbx)
leaq 0x2f80(%rip), %rsi      # 0x17b77
movq %r15, %rdi
callq 0x146b6
movq 0x140(%rsp), %rbx
testq %rax, %rax
je 0x14c16
movq %rax, %rdi
callq 0x34f0
jmp 0x14c1b
movl $0x10, %eax
movl %eax, (%rbx)
leaq 0x2f56(%rip), %rsi      # 0x17b7a
movq %r15, %rdi
callq 0x146b6
movq 0x148(%rsp), %rbx
testq %rax, %rax
je 0x14c43
movq %rax, %rdi
callq 0x34f0
jmp 0x14c48
movl $0x64, %eax
movl %eax, (%rbx)
leaq 0x2f2e(%rip), %rsi      # 0x17b7f
movq %r15, %rdi
callq 0x146b6
movq 0x150(%rsp), %rbx
testq %rax, %rax
je 0x14c70
movq %rax, %rdi
callq 0x34f0
jmp 0x14c75
movl $0x64, %eax
movl %eax, (%rbx)
leaq 0x2f06(%rip), %rsi      # 0x17b84
movq %r15, %rdi
callq 0x146b6
movq 0x158(%rsp), %rbx
testq %rax, %rax
je 0x14c9d
movq %rax, %rdi
callq 0x34f0
jmp 0x14ca2
movl $0x1, %eax
movl %eax, (%rbx)
leaq 0x2edc(%rip), %rsi      # 0x17b87
movq %r15, %rdi
callq 0x146b6
movq 0x160(%rsp), %rbx
testq %rax, %rax
je 0x14cce
movq %rax, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x14cd6
movss 0x2b5e(%rip), %xmm0     # 0x17834
movss %xmm0, (%rbx)
leaq 0x2ea9(%rip), %rsi      # 0x17b8a
movq %r15, %rdi
callq 0x146b6
movq %rax, %r13
movq 0x170(%rsp), %rdx
movq 0x8(%rdx), %rbx
testq %rax, %rax
je 0x14d13
movq %r13, %rdi
movq %rdx, %r14
callq 0x3160
movq %r14, %rdx
movq %rax, %r8
movq %r13, %rcx
jmp 0x14d1d
xorl %r8d, %r8d
leaq 0x23d6(%rip), %rcx      # 0x170f3
movq %rdx, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x34e0
leaq 0x2e5c(%rip), %rsi      # 0x17b8d
movq %r15, %rdi
callq 0x146b6
testq %rax, %rax
je 0x14d82
movq %rax, %rdi
callq 0x34f0
movl %eax, %ebx
movq 0x168(%rsp), %rax
movl %ebx, (%rax)
leaq 0x2e37(%rip), %rsi      # 0x17b90
movq %r15, %rdi
callq 0x146b6
movq %rax, %rbx
movq 0x178(%rsp), %rbp
movq 0x8(%rbp), %r14
testq %rax, %rax
je 0x14dd1
movq %rbx, %rdi
callq 0x3160
movq %rax, %r8
jmp 0x14dde
leaq 0x236a(%rip), %rsi      # 0x170f3
movq 0x170(%rsp), %r14
movq %r14, %rdi
callq 0x3100
testl %eax, %eax
je 0x15218
leaq 0x2dd0(%rip), %rsi      # 0x17b78
movq %r14, %rdi
callq 0x3100
movl $0x5, %ebx
testl %eax, %eax
je 0x14d48
leaq 0x2db5(%rip), %rsi      # 0x17b75
movq %r14, %rdi
callq 0x3100
testl %eax, %eax
jne 0x14d52
jmp 0x14d48
movl $0x6, %r8d
leaq 0x2505(%rip), %rbx      # 0x172e3
movq %rbp, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x34e0
leaq 0x2da0(%rip), %rsi      # 0x17b95
movq %r15, %rdi
callq 0x146b6
movq 0x180(%rsp), %rbx
testq %rax, %rax
je 0x14e14
movq %rax, %rdi
callq 0x34f0
jmp 0x14e19
movl $0x1, %eax
movl %eax, (%rbx)
leaq 0x2d78(%rip), %rsi      # 0x17b9a
movq %r15, %rdi
callq 0x146b6
testq %rax, %rax
je 0x14e41
movq %rax, %rdi
callq 0x34f0
xorl %ecx, %ecx
cmpl $0x1, %eax
sete %cl
jmp 0x14e46
movl $0x1, %ecx
movq 0x188(%rsp), %rax
movl %ecx, (%rax)
leaq 0x2d46(%rip), %rsi      # 0x17b9d
movq %r15, %rdi
callq 0x146b6
movb $0x1, %cl
testq %rax, %rax
je 0x14e87
movzbl (%rax), %edx
addl $-0x31, %edx
cmpl $0x4, %edx
ja 0x14ec4
leaq 0x29c4(%rip), %rsi      # 0x1783c
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
cmpb $0x0, 0x1(%rax)
jne 0x14ec4
xorl %eax, %eax
xorl %edx, %edx
xorl %esi, %esi
xorl %edi, %edi
movq 0x190(%rsp), %r8
movb %cl, (%r8)
movq 0x198(%rsp), %rcx
movb %al, (%rcx)
movq 0x1a0(%rsp), %rax
movb %dl, (%rax)
movq 0x1a8(%rsp), %rax
movb %sil, (%rax)
movq 0x1b0(%rsp), %rax
movb %dil, (%rax)
leaq 0x2cd7(%rip), %rsi      # 0x17ba2
movq %r15, %rdi
callq 0x146b6
movq %rax, %rbx
movq 0x1c0(%rsp), %rbp
movq 0x8(%rbp), %r14
testq %rax, %rax
je 0x14ef4
movq %rbx, %rdi
callq 0x3160
movq %rax, %r8
jmp 0x14f01
movl $0x4, %r8d
leaq 0x23a7(%rip), %rbx      # 0x172a8
movq %rbp, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x34e0
leaq 0x2c93(%rip), %rsi      # 0x17bab
movq %r15, %rdi
callq 0x146b6
movq %rax, %rbx
movb $0x1, %bpl
testq %rax, %rax
je 0x14f8f
movb (%rbx), %r14b
cmpb $0x6e, %r14b
jne 0x14f46
cmpb $0x6f, 0x1(%rbx)
jne 0x14f40
cmpb $0x0, 0x2(%rbx)
je 0x14f8d
cmpb $0x0, 0x1(%rbx)
je 0x14f8d
leaq 0x2c63(%rip), %rsi      # 0x17bb0
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x14f8d
leaq 0x2c57(%rip), %rsi      # 0x17bb7
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x14f8f
cmpb $0x79, %r14b
jne 0x14f78
cmpb $0x0, 0x1(%rbx)
je 0x14f8f
leaq 0x2c3c(%rip), %rsi      # 0x17bbb
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
jne 0x14f9a
jmp 0x14f8f
xorl %ebp, %ebp
movq 0x1c8(%rsp), %rax
movb %bpl, (%rax)
leaq 0x2c22(%rip), %rsi      # 0x17bc3
movq %r15, %rdi
callq 0x146b6
movq %rax, %rbx
testq %rax, %rax
je 0x15016
movzbl (%rbx), %ebp
cmpl $0x54, %ebp
je 0x14fbe
cmpl $0x74, %ebp
jne 0x14fdc
movb $0x1, %bpl
cmpb $0x0, 0x1(%rbx)
je 0x15018
leaq 0x2956(%rip), %rsi      # 0x17924
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
jne 0x15003
jmp 0x15018
leaq 0x2941(%rip), %rsi      # 0x17924
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
je 0x1527c
cmpl $0x46, %ebp
je 0x14ffd
cmpl $0x66, %ebp
jne 0x15003
cmpb $0x0, 0x1(%rbx)
je 0x15016
leaq 0x2bc5(%rip), %rsi      # 0x17bcf
movq %rbx, %rdi
callq 0x3460
testl %eax, %eax
jne 0x15023
xorl %ebp, %ebp
movq 0x1d0(%rsp), %rax
movb %bpl, (%rax)
leaq 0x2bab(%rip), %rsi      # 0x17bd5
movq %r15, %rdi
callq 0x146b6
movq %rax, %r14
movq 0x1d8(%rsp), %rbx
testq %rax, %rax
je 0x15050
movq %r14, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x15058
movss 0x27e0(%rip), %xmm0     # 0x17838
movss %xmm0, (%rbx)
leaq 0x2b76(%rip), %rsi      # 0x17bd9
movq %r15, %rdi
callq 0x146b6
movq %rax, %rbx
movq 0x1e0(%rsp), %r12
testq %rax, %rax
je 0x15089
movq %rbx, %rdi
callq 0x33f0
cvtsd2ss %xmm0, %xmm0
jmp 0x15091
movss 0x27a7(%rip), %xmm0     # 0x17838
movss %xmm0, (%r12)
leaq 0x2128(%rip), %rsi      # 0x171c6
movq %r15, %rdi
callq 0x146b6
movq 0x60(%rsp), %r12
movq %rax, %rbp
testq %rax, %rax
je 0x15ba3
movq 0x1b8(%rsp), %r15
leaq 0x2b1a(%rip), %rsi      # 0x17be0
movq %rbp, %rdi
callq 0x3460
testl %eax, %eax
je 0x15118
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
movq %rbp, %rdi
callq 0x3160
movq %rbp, %rdx
addq %rax, %rdx
movq %rsp, %rdi
movq %rbp, %rsi
callq 0xb1f2
movq %rsp, %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x15ba3
callq 0x3340
jmp 0x15ba3
leaq 0x2ac5(%rip), %rsi      # 0x17be4
movq %r15, %rdi
callq 0x3650
leaq 0x276a(%rip), %rbp      # 0x17898
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x157a4
leaq 0x274c(%rip), %rsi      # 0x1788f
callq 0x3460
testl %eax, %eax
je 0x157a4
leaq 0x274b(%rip), %rsi      # 0x178a2
movq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x3460
leaq 0x274d(%rip), %rbp      # 0x178b8
testl %eax, %eax
je 0x1579c
leaq 0x272f(%rip), %rsi      # 0x178a9
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x1579c
leaq 0x271f(%rip), %rsi      # 0x178b0
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
movq 0x1b8(%rsp), %r15
je 0x157a4
leaq 0x2710(%rip), %rsi      # 0x178c0
movq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x3460
testl %eax, %eax
je 0x15795
leaq 0x27a9(%rip), %rsi      # 0x17975
movq %r15, %rdi
callq 0x3460
leaq 0x27a7(%rip), %rbp      # 0x17982
testl %eax, %eax
je 0x1579c
cmpb $0x66, (%r15)
movq 0x1b8(%rsp), %r15
jne 0x157af
movq 0x20(%rsp), %rax
cmpb $0x66, 0x1(%rax)
jne 0x157af
movq 0x20(%rsp), %rax
cmpb $0x0, 0x2(%rax)
jne 0x157af
jmp 0x157a4
movl $0x1, %ebx
jmp 0x14d48
cmpb $0x0, 0x1(%rax)
jne 0x14ec4
movb $0x1, %dil
xorl %ecx, %ecx
xorl %eax, %eax
xorl %edx, %edx
xorl %esi, %esi
jmp 0x14e8f
cmpb $0x0, 0x1(%rax)
jne 0x14ec4
movb $0x1, %dl
xorl %ecx, %ecx
xorl %eax, %eax
jmp 0x14e8b
cmpb $0x0, 0x1(%rax)
jne 0x14ec4
movb $0x1, %sil
xorl %ecx, %ecx
xorl %eax, %eax
xorl %edx, %edx
jmp 0x14e8d
cmpb $0x0, 0x1(%rax)
jne 0x14ec4
movb $0x1, %al
xorl %ecx, %ecx
jmp 0x14e89
movb $0x1, %bpl
jmp 0x15018
cmpb $0x0, 0x1(%r12)
je 0x15548
leaq 0x27bf(%rip), %rsi      # 0x17a56
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x152f8
jmp 0x15658
cmpb $0x0, 0x1(%r12)
je 0x15368
leaq 0x2761(%rip), %rsi      # 0x17a1c
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15548
leaq 0x2784(%rip), %rsi      # 0x17a56
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15658
cmpl $0x6c, %ebp
je 0x152ec
cmpl $0x4c, %ebp
jne 0x152f8
cmpb $0x0, 0x1(%r12)
je 0x15658
leaq 0x2789(%rip), %rsi      # 0x17a88
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x15731
leaq 0x27ed(%rip), %rsi      # 0x17b03
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
movq 0x28(%rsp), %rbx
jne 0x14ae1
leaq 0x27d6(%rip), %rsi      # 0x17b08
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x27cb(%rip), %rsi      # 0x17b0e
movq %r13, %rdi
callq 0x3440
leaq 0x27d1(%rip), %rsi      # 0x17b23
movq 0x58(%rsp), %rdi
callq 0x3440
leaq 0x27e5(%rip), %rsi      # 0x17b48
jmp 0x1576e
leaq 0x25f5(%rip), %rsi      # 0x17964
leaq 0x38(%rsp), %rdi
callq 0x3650
movq 0x20(%rsp), %r12
movq 0x28(%rsp), %rbp
leaq 0x250e(%rip), %rbx      # 0x17898
testq %r12, %r12
je 0x1544c
leaq 0x24f5(%rip), %rsi      # 0x1788f
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1544c
leaq 0x24f1(%rip), %rsi      # 0x178a2
movq %r12, %rdi
callq 0x3460
leaq 0x24f8(%rip), %rbx      # 0x178b8
testl %eax, %eax
je 0x1544c
leaq 0x24da(%rip), %rsi      # 0x178a9
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1544c
leaq 0x24ce(%rip), %rsi      # 0x178b0
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1544c
leaq 0x24cb(%rip), %rsi      # 0x178c0
movq %r12, %rdi
callq 0x3460
leaq 0x24c1(%rip), %rbx      # 0x178c5
testl %eax, %eax
je 0x1544c
leaq 0x2561(%rip), %rsi      # 0x17970
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1544c
leaq 0x2553(%rip), %rsi      # 0x17975
movq %r12, %rdi
callq 0x3460
leaq 0x2551(%rip), %rbx      # 0x17982
testl %eax, %eax
je 0x1544c
cmpb $0x66, (%r12)
jne 0x15459
cmpb $0x66, 0x1(%r12)
jne 0x15459
cmpb $0x0, 0x2(%r12)
jne 0x15459
leaq 0x38(%rsp), %rdi
movq %rbx, %rsi
callq 0x3650
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xb15c
leaq 0x2507(%rip), %rsi      # 0x17986
movq %rsp, %rdi
callq 0x3650
movq %rsp, %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x154a2
callq 0x3340
movq %rsp, %rdi
movq %r12, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0xb15c
leaq 0x24d4(%rip), %rsi      # 0x17995
movq %rsp, %rdi
callq 0x3650
movq %rsp, %rbx
movq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x33e0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x154e6
callq 0x3340
movq 0x8(%rbp), %rdx
leaq 0x24c3(%rip), %rcx      # 0x179b4
movl $0x31, %r8d
movq %rbp, %rdi
xorl %esi, %esi
callq 0x34e0
movl $0x3, %ebx
leaq 0x1d1d(%rip), %r13      # 0x1722a
testq %r14, %r14
je 0x14ac5
cmpb $0x54, (%r14)
leaq 0x24c5(%rip), %rbp      # 0x179e6
jne 0x1552e
cmpb $0x0, 0x1(%r14)
je 0x15726
leaq 0x23ea(%rip), %rsi      # 0x1791f
movq %r14, %rdi
callq 0x3460
movl $0x35, %r12d
jmp 0x14a11
leaq 0x24d6(%rip), %rsi      # 0x17a25
leaq 0x38(%rsp), %rdi
callq 0x3650
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rbp
testq %rdi, %rdi
je 0x15578
leaq 0x2320(%rip), %rsi      # 0x1788f
callq 0x3460
testl %eax, %eax
jne 0x15589
leaq 0x2319(%rip), %rsi      # 0x17898
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xb15c
leaq 0x2480(%rip), %rsi      # 0x17a2f
movq %rsp, %rdi
callq 0x3650
movq %rsp, %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x33e0
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x155d2
callq 0x3340
movq %rsp, %rdi
movq %r12, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0xb15c
leaq 0x244b(%rip), %rsi      # 0x17a3c
movq %rsp, %rdi
callq 0x3650
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x33e0
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x15614
callq 0x3340
movq 0x120(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x1c18(%rip), %rcx      # 0x1723f
movl $0x6, %r8d
xorl %esi, %esi
callq 0x34e0
movq 0x58(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x1aaf(%rip), %r13      # 0x170f3
xorl %ebx, %ebx
xorl %esi, %esi
movq %r13, %rcx
xorl %r8d, %r8d
callq 0x34e0
jmp 0x14acd
leaq 0x23fe(%rip), %rsi      # 0x17a5d
leaq 0x38(%rsp), %rdi
callq 0x3650
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rbp
testq %rdi, %rdi
je 0x15688
leaq 0x2210(%rip), %rsi      # 0x1788f
callq 0x3460
testl %eax, %eax
jne 0x15699
leaq 0x2209(%rip), %rsi      # 0x17898
leaq 0x38(%rsp), %rdi
callq 0x3650
leaq 0x23c5(%rip), %rdx      # 0x17a65
movq %rsp, %rdi
leaq 0x38(%rsp), %rsi
callq 0x15d19
movq %rsp, %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x33e0
movq (%r14), %rdi
leaq 0x10(%rsp), %r12
cmpq %r12, %rdi
je 0x156cd
callq 0x3340
leaq 0x239c(%rip), %rdx      # 0x17a70
movq %rsp, %rdi
leaq 0x38(%rsp), %rsi
callq 0x15d19
movq %rsp, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x33e0
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x156fc
callq 0x3340
leaq 0x1b3c(%rip), %rsi      # 0x1723f
movq 0x120(%rsp), %rdi
callq 0x3440
leaq 0x19dc(%rip), %rbx      # 0x170f3
movq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x3440
jmp 0x15785
movl $0x35, %r12d
jmp 0x14aa3
leaq 0x2357(%rip), %rsi      # 0x17a8f
leaq 0x38(%rsp), %rdi
callq 0x3650
movq 0x28(%rsp), %rbx
leaq 0x2349(%rip), %rsi      # 0x17a97
movq %r13, %rdi
callq 0x3440
leaq 0x2353(%rip), %rsi      # 0x17ab0
movq 0x58(%rsp), %rdi
callq 0x3440
leaq 0x236b(%rip), %rsi      # 0x17ad9
movq %rbx, %rdi
callq 0x3440
leaq 0x1aad(%rip), %rbx      # 0x1722a
movq 0x120(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x3440
jmp 0x14ae1
leaq 0x2129(%rip), %rbp      # 0x178c5
movq 0x1b8(%rsp), %r15
movq %r15, %rdi
movq %rbp, %rsi
callq 0x3650
leaq 0x209d(%rip), %rbp      # 0x17853
testq %r12, %r12
je 0x1584b
leaq 0x20b8(%rip), %rsi      # 0x1787e
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
je 0x1584b
movzbl (%r12), %r12d
cmpl $0x67, %r12d
je 0x157e3
cmpl $0x47, %r12d
jne 0x1580c
movq 0x60(%rsp), %r12
cmpb $0x0, 0x1(%r12)
je 0x1584b
leaq 0x2162(%rip), %rsi      # 0x17959
movq %r12, %rdi
callq 0x3460
testl %eax, %eax
jne 0x15848
leaq 0x23d8(%rip), %rbp      # 0x17be2
jmp 0x1584b
leaq 0x2146(%rip), %rsi      # 0x17959
movq 0x60(%rsp), %rdi
callq 0x3460
leaq 0x23be(%rip), %rbp      # 0x17be2
testl %eax, %eax
je 0x1584b
cmpl $0x66, %r12d
je 0x1583b
cmpl $0x46, %r12d
movq 0x60(%rsp), %r12
je 0x15840
jmp 0x15848
movq 0x60(%rsp), %r12
cmpb $0x0, 0x1(%r12)
je 0x1584b
movq %r12, %rbp
movq %r15, %rdi
movq %rbp, %rsi
callq 0x3650
movq 0x188(%rsp), %rax
cmpl $0x1, (%rax)
leaq 0x2385(%rip), %rax      # 0x17bed
leaq 0x2382(%rip), %rsi      # 0x17bf1
cmoveq %rax, %rsi
movq %r15, %rdi
callq 0x3650
leaq 0x2373(%rip), %rax      # 0x17bf5
leaq 0x2372(%rip), %rsi      # 0x17bfb
movq 0x1c8(%rsp), %rcx
cmpb $0x0, (%rcx)
cmovneq %rax, %rsi
movq %r15, %rdi
callq 0x3650
movq 0x1d0(%rsp), %rax
cmpb $0x1, (%rax)
jne 0x15ac8
leaq 0xc8(%rsp), %rdi
leaq 0x37(%rsp), %rdx
movq %r14, %rsi
callq 0x3140
leaq 0x2334(%rip), %rcx      # 0x17c01
leaq 0xc8(%rsp), %rdi
movl $0x6, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x33a0
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x15914
movq %rdx, 0xa8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xb8(%rsp)
jmp 0x1591b
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0xa8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x22c5(%rip), %rsi      # 0x17c06
callq 0x3650
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1596e
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x15976
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x88(%rsp), %rdi
leaq 0x36(%rsp), %rdx
movq %rbx, %rsi
callq 0x3140
movq 0x68(%rsp), %rcx
movq 0x70(%rsp), %r8
movq 0x90(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r12, %rcx
je 0x159c8
movq 0x78(%rsp), %rdi
movq 0x88(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x159f4
leaq 0x98(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x159ef
movq 0x98(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x15a00
leaq 0x68(%rsp), %rdi
callq 0x3110
jmp 0x15a11
leaq 0x88(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x33a0
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x15a34
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x15a3a
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x3110
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15a7b
callq 0x3340
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15a91
callq 0x3340
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x15aa0
callq 0x3340
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x15ab2
callq 0x3340
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15ac8
callq 0x3340
testq %r13, %r13
je 0x15b08
leaq 0x2132(%rip), %rsi      # 0x17c06
movq %rsp, %rdi
movq 0x170(%rsp), %rdx
callq 0x15d69
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x3110
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15b08
callq 0x3340
movq 0x190(%rsp), %rax
cmpb $0x0, (%rax)
je 0x15b1e
leaq 0x2119(%rip), %rsi      # 0x17c35
jmp 0x15b5e
movq 0x198(%rsp), %rax
cmpb $0x0, (%rax)
je 0x15b34
leaq 0x20e8(%rip), %rsi      # 0x17c1a
jmp 0x15b5e
movq 0x1a0(%rsp), %rax
cmpb $0x0, (%rax)
je 0x15b4a
leaq 0x20c0(%rip), %rsi      # 0x17c08
jmp 0x15b5e
movq 0x1a8(%rsp), %rax
cmpb $0x1, (%rax)
jne 0x15bc9
leaq 0x20b7(%rip), %rsi      # 0x17c15
movq %r15, %rdi
callq 0x3650
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x845c(%rip), %rdi      # 0x1dfd0
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 0x15bb7
callq 0x3340
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x1b0(%rsp), %rax
cmpb $0x1, (%rax)
jne 0x15b66
leaq 0x2049(%rip), %rsi      # 0x17c26
movq %r15, %rdi
callq 0x3440
jmp 0x15b66
leaq 0x2049(%rip), %rdi      # 0x17c3a
callq 0x31d0
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15ca1
jmp 0x15cfa
jmp 0x15ca1
jmp 0x15cfa
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15c2f
callq 0x3340
jmp 0x15c2f
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15c4a
callq 0x3340
jmp 0x15c4a
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x15c5e
callq 0x3340
jmp 0x15c5e
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x15c75
callq 0x3340
jmp 0x15c75
movq %rax, %rbx
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x15cc6
jmp 0x15cfa
jmp 0x15ca1
jmp 0x15cfa
jmp 0x15ca1
jmp 0x15cfa
movq %rax, %rbx
leaq 0x10(%rsp), %rax
jmp 0x15c7d
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15ca1
jmp 0x15cfa
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
jne 0x15ccb
jmp 0x15cfd
jmp 0x15cfa
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x15cbd
movl %r13d, (%r14)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x15cfd
callq 0x3340
jmp 0x15cfd
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
jmp 0x15cfa
movq %rax, %rbx
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x15d11
callq 0x3340
movq %rbx, %rdi
callq 0x35c0