// File: 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:
subq $0x498, %rsp            # imm = 0x498
movq 0x560(%rsp), %rax
movq 0x558(%rsp), %rax
movq 0x550(%rsp), %rax
movq 0x548(%rsp), %rax
movq 0x540(%rsp), %rax
movq 0x538(%rsp), %rax
movq 0x530(%rsp), %rax
movq 0x528(%rsp), %rax
movq 0x520(%rsp), %rax
movq 0x518(%rsp), %rax
movq 0x510(%rsp), %rax
movq 0x508(%rsp), %rax
movq 0x500(%rsp), %rax
movq 0x4f8(%rsp), %rax
movq 0x4f0(%rsp), %rax
movq 0x4e8(%rsp), %rax
movq 0x4e0(%rsp), %rax
movq 0x4d8(%rsp), %rax
movq 0x4d0(%rsp), %rax
movq 0x4c8(%rsp), %rax
movq 0x4c0(%rsp), %rax
movq 0x4b8(%rsp), %rax
movq 0x4b0(%rsp), %rax
movq 0x4a8(%rsp), %rax
movq 0x4a0(%rsp), %rax
movq %rdi, 0x490(%rsp)
movq %rsi, 0x488(%rsp)
movq %rdx, 0x480(%rsp)
movq %rcx, 0x478(%rsp)
movq %r8, 0x470(%rsp)
movq %r9, 0x468(%rsp)
movq 0x490(%rsp), %rdi
movq %rdi, 0x140(%rsp)
leaq 0x5136(%rip), %rsi      # 0x3275c
callq 0x2d3d0
movq %rax, 0x460(%rsp)
cmpq $0x0, 0x460(%rsp)
jne 0x2d654
movq 0x488(%rsp), %rdi
leaq 0x4a32(%rip), %rsi      # 0x3207f
callq 0x44f0
jmp 0x2d69a
movq 0x460(%rsp), %rdi
leaq 0x50fe(%rip), %rsi      # 0x32761
callq 0x4530
cmpl $0x0, %eax
jne 0x2d683
movq 0x488(%rsp), %rdi
leaq 0x50e9(%rip), %rsi      # 0x32765
callq 0x44f0
jmp 0x2d698
movq 0x460(%rsp), %rsi
movq 0x488(%rsp), %rdi
callq 0x44f0
jmp 0x2d69a
movq 0x140(%rsp), %rdi
leaq 0x50c5(%rip), %rsi      # 0x3276e
callq 0x2d3d0
movq 0x140(%rsp), %rdi
movq %rax, 0x458(%rsp)
leaq 0x50ad(%rip), %rsi      # 0x32772
callq 0x2d3d0
movq 0x140(%rsp), %rdi
movq %rax, 0x450(%rsp)
leaq 0x5095(%rip), %rsi      # 0x32776
callq 0x2d3d0
movq 0x140(%rsp), %rdi
movq %rax, 0x448(%rsp)
leaq 0x5080(%rip), %rsi      # 0x3277d
callq 0x2d3d0
movq %rax, 0x440(%rsp)
leaq 0x41f(%rsp), %rdi
movq %rdi, 0x138(%rsp)
callq 0x46a0
movq 0x138(%rsp), %rdx
leaq 0x5054(%rip), %rsi      # 0x32782
leaq 0x420(%rsp), %rdi
callq 0x4500
jmp 0x2d73d
leaq 0x41f(%rsp), %rdi
callq 0x4440
cmpq $0x0, 0x458(%rsp)
je 0x2d7a4
movq 0x458(%rsp), %rdi
leaq 0x5026(%rip), %rsi      # 0x3278a
callq 0x4530
cmpl $0x0, %eax
je 0x2d7a4
movq 0x458(%rsp), %rdi
leaq 0x4ee1(%rip), %rsi      # 0x3265e
callq 0x4530
cmpl $0x0, %eax
je 0x2d7a4
movq 0x458(%rsp), %rdi
leaq 0x4fc9(%rip), %rsi      # 0x3275f
callq 0x4530
cmpl $0x0, %eax
jne 0x2da18
leaq 0x4fe7(%rip), %rsi      # 0x32792
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2d7ba
cmpq $0x0, 0x448(%rsp)
je 0x2d7de
movq 0x448(%rsp), %rdi
leaq 0x4fc7(%rip), %rsi      # 0x3279b
callq 0x4530
cmpl $0x0, %eax
jne 0x2d838
leaq 0x4fbf(%rip), %rsi      # 0x327a4
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2d7f4
jmp 0x2d8e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
leaq 0x41f(%rsp), %rdi
callq 0x4440
jmp 0x2f440
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
jmp 0x2f433
movq 0x448(%rsp), %rdi
leaq 0x4f67(%rip), %rsi      # 0x327ae
callq 0x4530
cmpl $0x0, %eax
je 0x2d883
movq 0x448(%rsp), %rdi
leaq 0x4f55(%rip), %rsi      # 0x327b5
callq 0x4530
cmpl $0x0, %eax
je 0x2d883
movq 0x448(%rsp), %rdi
leaq 0x4f43(%rip), %rsi      # 0x327bc
callq 0x4530
cmpl $0x0, %eax
jne 0x2d89b
leaq 0x4f3a(%rip), %rsi      # 0x327c4
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2d899
jmp 0x2d8e7
movq 0x448(%rsp), %rdi
leaq 0x4f22(%rip), %rsi      # 0x327cc
callq 0x4530
cmpl $0x0, %eax
je 0x2d8cd
movq 0x448(%rsp), %rdi
leaq 0x4f09(%rip), %rsi      # 0x327cc
callq 0x4530
cmpl $0x0, %eax
jne 0x2d8e5
leaq 0x4efd(%rip), %rsi      # 0x327d1
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2d8e3
jmp 0x2d8e5
jmp 0x2d8e7
jmp 0x2d8e9
leaq 0x4ee7(%rip), %rdx      # 0x327d7
leaq 0x3e8(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2d907
movq 0x480(%rsp), %rdi
leaq 0x3e8(%rsp), %rsi
movq %rsi, 0x130(%rsp)
callq 0x4470
movq 0x130(%rsp), %rdi
callq 0x4260
leaq 0x4eab(%rip), %rdx      # 0x327e3
leaq 0x3c8(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2d94f
movq 0x478(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
movq %rsi, 0x128(%rsp)
callq 0x4470
movq 0x128(%rsp), %rdi
callq 0x4260
movq 0x470(%rsp), %rdi
leaq 0x4e77(%rip), %rsi      # 0x327ff
callq 0x44f0
jmp 0x2d98f
cmpq $0x0, 0x440(%rsp)
je 0x2d9fd
movq 0x440(%rsp), %rdi
leaq 0x4e82(%rip), %rsi      # 0x3282b
callq 0x4530
cmpl $0x0, %eax
je 0x2d9e5
movq 0x440(%rsp), %rdi
leaq 0x4e6b(%rip), %rsi      # 0x3282d
callq 0x4530
cmpl $0x0, %eax
je 0x2d9e5
movq 0x440(%rsp), %rdi
leaq 0x4e57(%rip), %rsi      # 0x32832
callq 0x4530
cmpl $0x0, %eax
jne 0x2d9fd
movq 0x470(%rsp), %rdi
leaq 0x4e43(%rip), %rsi      # 0x32837
callq 0x44f0
jmp 0x2d9fb
jmp 0x2d9fd
movq 0x4a0(%rsp), %rdi
leaq 0x47fa(%rip), %rsi      # 0x32206
callq 0x44f0
jmp 0x2da13
jmp 0x2e110
movq 0x458(%rsp), %rdi
leaq 0x4e40(%rip), %rsi      # 0x32867
callq 0x4530
cmpl $0x0, %eax
je 0x2da67
movq 0x458(%rsp), %rdi
leaq 0x4e32(%rip), %rsi      # 0x32872
callq 0x4530
cmpl $0x0, %eax
je 0x2da67
movq 0x458(%rsp), %rdi
leaq 0x50a3(%rip), %rsi      # 0x32afc
callq 0x4530
cmpl $0x0, %eax
jne 0x2dceb
leaq 0x4e06(%rip), %rsi      # 0x32874
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2da7d
cmpq $0x0, 0x448(%rsp)
je 0x2daa1
movq 0x448(%rsp), %rdi
leaq 0x4d04(%rip), %rsi      # 0x3279b
callq 0x4530
cmpl $0x0, %eax
jne 0x2dabc
leaq 0x4cfc(%rip), %rsi      # 0x327a4
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2dab7
jmp 0x2dbbc
movq 0x448(%rsp), %rdi
leaq 0x4ce3(%rip), %rsi      # 0x327ae
callq 0x4530
cmpl $0x0, %eax
je 0x2db07
movq 0x448(%rsp), %rdi
leaq 0x4cd1(%rip), %rsi      # 0x327b5
callq 0x4530
cmpl $0x0, %eax
je 0x2db07
movq 0x448(%rsp), %rdi
leaq 0x4cbf(%rip), %rsi      # 0x327bc
callq 0x4530
cmpl $0x0, %eax
jne 0x2db22
leaq 0x4cb6(%rip), %rsi      # 0x327c4
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2db1d
jmp 0x2dbba
movq 0x448(%rsp), %rdi
leaq 0x4c9b(%rip), %rsi      # 0x327cc
callq 0x4530
cmpl $0x0, %eax
je 0x2db54
movq 0x448(%rsp), %rdi
leaq 0x4d36(%rip), %rsi      # 0x32880
callq 0x4530
cmpl $0x0, %eax
jne 0x2db6c
leaq 0x4c76(%rip), %rsi      # 0x327d1
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2db6a
jmp 0x2dbb8
movq 0x448(%rsp), %rdi
leaq 0x4d0a(%rip), %rsi      # 0x32885
callq 0x4530
cmpl $0x0, %eax
je 0x2db9e
movq 0x448(%rsp), %rdi
leaq 0x4cfe(%rip), %rsi      # 0x32892
callq 0x4530
cmpl $0x0, %eax
jne 0x2dbb6
leaq 0x4cf0(%rip), %rsi      # 0x32895
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2dbb4
jmp 0x2dbb6
jmp 0x2dbb8
jmp 0x2dbba
jmp 0x2dbbc
leaq 0x4cd6(%rip), %rdx      # 0x32899
leaq 0x3a8(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2dbda
movq 0x480(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
movq %rsi, 0x120(%rsp)
callq 0x4470
movq 0x120(%rsp), %rdi
callq 0x4260
leaq 0x4c9d(%rip), %rdx      # 0x328a8
leaq 0x388(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2dc22
movq 0x478(%rsp), %rdi
leaq 0x388(%rsp), %rsi
movq %rsi, 0x118(%rsp)
callq 0x4470
movq 0x118(%rsp), %rdi
callq 0x4260
movq 0x470(%rsp), %rdi
leaq 0x4c6c(%rip), %rsi      # 0x328c7
callq 0x44f0
jmp 0x2dc62
cmpq $0x0, 0x440(%rsp)
je 0x2dcd0
movq 0x440(%rsp), %rdi
leaq 0x4baf(%rip), %rsi      # 0x3282b
callq 0x4530
cmpl $0x0, %eax
je 0x2dcb8
movq 0x440(%rsp), %rdi
leaq 0x4b98(%rip), %rsi      # 0x3282d
callq 0x4530
cmpl $0x0, %eax
je 0x2dcb8
movq 0x440(%rsp), %rdi
leaq 0x4b84(%rip), %rsi      # 0x32832
callq 0x4530
cmpl $0x0, %eax
jne 0x2dcd0
movq 0x470(%rsp), %rdi
leaq 0x4c32(%rip), %rsi      # 0x328f9
callq 0x44f0
jmp 0x2dcce
jmp 0x2dcd0
movq 0x4a0(%rsp), %rdi
leaq 0x4527(%rip), %rsi      # 0x32206
callq 0x44f0
jmp 0x2dce6
jmp 0x2e10e
cmpq $0x0, 0x458(%rsp)
je 0x2dd45
movq 0x458(%rsp), %rdi
leaq 0x4c2a(%rip), %rsi      # 0x3292f
callq 0x4530
cmpl $0x0, %eax
je 0x2dd45
movq 0x458(%rsp), %rdi
leaq 0x4c1a(%rip), %rsi      # 0x32938
callq 0x4530
cmpl $0x0, %eax
je 0x2dd45
movq 0x458(%rsp), %rdi
leaq 0x4a49(%rip), %rsi      # 0x32780
callq 0x4530
cmpl $0x0, %eax
jne 0x2de6e
leaq 0x4bee(%rip), %rsi      # 0x3293a
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2dd5b
cmpq $0x0, 0x448(%rsp)
je 0x2dd7f
movq 0x448(%rsp), %rdi
leaq 0x4a26(%rip), %rsi      # 0x3279b
callq 0x4530
cmpl $0x0, %eax
jne 0x2dd97
leaq 0x4a1e(%rip), %rsi      # 0x327a4
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2dd95
jmp 0x2dd97
leaq 0x4ba6(%rip), %rdx      # 0x32944
leaq 0x368(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2ddb5
movq 0x480(%rsp), %rdi
leaq 0x368(%rsp), %rsi
movq %rsi, 0x110(%rsp)
callq 0x4470
movq 0x110(%rsp), %rdi
callq 0x4260
leaq 0x4b6b(%rip), %rdx      # 0x32951
leaq 0x348(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2ddfd
movq 0x468(%rsp), %rdi
leaq 0x348(%rsp), %rsi
movq %rsi, 0x108(%rsp)
callq 0x4470
movq 0x108(%rsp), %rdi
callq 0x4260
movq 0x4a0(%rsp), %rdi
leaq 0x43e5(%rip), %rsi      # 0x3221b
callq 0x44f0
jmp 0x2de3d
movq 0x478(%rsp), %rdi
leaq 0x423b(%rip), %rsi      # 0x32087
callq 0x44f0
jmp 0x2de53
movq 0x470(%rsp), %rdi
leaq 0x4225(%rip), %rsi      # 0x32087
callq 0x44f0
jmp 0x2de69
jmp 0x2e10c
cmpq $0x0, 0x458(%rsp)
je 0x2dec8
movq 0x458(%rsp), %rdi
leaq 0x4ae3(%rip), %rsi      # 0x3296b
callq 0x4530
cmpl $0x0, %eax
je 0x2dec8
movq 0x458(%rsp), %rdi
leaq 0x4ad1(%rip), %rsi      # 0x32972
callq 0x4530
cmpl $0x0, %eax
je 0x2dec8
movq 0x458(%rsp), %rdi
leaq 0x4366(%rip), %rsi      # 0x32220
callq 0x4530
cmpl $0x0, %eax
jne 0x2dff1
leaq 0x4aa5(%rip), %rsi      # 0x32974
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2dede
cmpq $0x0, 0x448(%rsp)
je 0x2df02
movq 0x448(%rsp), %rdi
leaq 0x48a3(%rip), %rsi      # 0x3279b
callq 0x4530
cmpl $0x0, %eax
jne 0x2df1a
leaq 0x489b(%rip), %rsi      # 0x327a4
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2df18
jmp 0x2df1a
leaq 0x4a5b(%rip), %rdx      # 0x3297c
leaq 0x328(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2df38
movq 0x480(%rsp), %rdi
leaq 0x328(%rsp), %rsi
movq %rsi, 0x100(%rsp)
callq 0x4470
movq 0x100(%rsp), %rdi
callq 0x4260
leaq 0x4a1e(%rip), %rdx      # 0x32987
leaq 0x308(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xf790
jmp 0x2df80
movq 0x468(%rsp), %rdi
leaq 0x308(%rsp), %rsi
movq %rsi, 0xf8(%rsp)
callq 0x4470
movq 0xf8(%rsp), %rdi
callq 0x4260
movq 0x4a0(%rsp), %rdi
leaq 0x4262(%rip), %rsi      # 0x3221b
callq 0x44f0
jmp 0x2dfc0
movq 0x478(%rsp), %rdi
leaq 0x40b8(%rip), %rsi      # 0x32087
callq 0x44f0
jmp 0x2dfd6
movq 0x470(%rsp), %rdi
leaq 0x40a2(%rip), %rsi      # 0x32087
callq 0x44f0
jmp 0x2dfec
jmp 0x2e10a
movq 0x458(%rsp), %rdi
leaq 0x499f(%rip), %rsi      # 0x3299f
callq 0x4530
cmpl $0x0, %eax
jne 0x2e07d
leaq 0x4995(%rip), %rsi      # 0x329a6
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2e020
movq 0x480(%rsp), %rdi
leaq 0x497f(%rip), %rsi      # 0x329ae
callq 0x44f0
jmp 0x2e036
movq 0x478(%rsp), %rdi
leaq 0x4982(%rip), %rsi      # 0x329c7
callq 0x44f0
jmp 0x2e04c
movq 0x470(%rsp), %rdi
leaq 0x4995(%rip), %rsi      # 0x329f0
callq 0x44f0
jmp 0x2e062
movq 0x4a0(%rsp), %rdi
leaq 0x4195(%rip), %rsi      # 0x32206
callq 0x44f0
jmp 0x2e078
jmp 0x2e108
movq 0x458(%rsp), %rdi
leaq 0x498e(%rip), %rsi      # 0x32a1a
callq 0x4530
cmpl $0x0, %eax
jne 0x2e106
leaq 0x4982(%rip), %rsi      # 0x32a1f
leaq 0x420(%rsp), %rdi
callq 0x43d0
jmp 0x2e0ac
movq 0x480(%rsp), %rdi
leaq 0x496a(%rip), %rsi      # 0x32a25
callq 0x44f0
jmp 0x2e0c2
movq 0x478(%rsp), %rdi
leaq 0x4969(%rip), %rsi      # 0x32a3a
callq 0x44f0
jmp 0x2e0d8
movq 0x470(%rsp), %rdi
leaq 0x4978(%rip), %rsi      # 0x32a5f
callq 0x44f0
jmp 0x2e0ee
movq 0x4a0(%rsp), %rdi
leaq 0x4109(%rip), %rsi      # 0x32206
callq 0x44f0
jmp 0x2e104
jmp 0x2e106
jmp 0x2e108
jmp 0x2e10a
jmp 0x2e10c
jmp 0x2e10e
jmp 0x2e110
movq 0x140(%rsp), %rdi
leaq 0x4966(%rip), %rsi      # 0x32a85
callq 0x2d3d0
movq %rax, 0xf0(%rsp)
jmp 0x2e12e
movq 0xf0(%rsp), %rax
movq %rax, 0x300(%rsp)
cmpq $0x0, 0x300(%rsp)
jne 0x2e162
movq 0x4a8(%rsp), %rax
movss 0x45f7(%rip), %xmm0     # 0x32750
movss %xmm0, (%rax)
jmp 0x2e23c
movq 0x300(%rsp), %rax
movq %rax, 0xe0(%rsp)
leaq 0x2df(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0x46a0
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
leaq 0x2e0(%rsp), %rdi
callq 0x4500
jmp 0x2e1a6
xorl %eax, %eax
movl %eax, %esi
leaq 0x2e0(%rsp), %rdi
callq 0x2f5a0
movss %xmm0, 0xdc(%rsp)
jmp 0x2e1c2
movss 0xdc(%rsp), %xmm0
movq 0x4a8(%rsp), %rax
movss %xmm0, (%rax)
leaq 0x2e0(%rsp), %rdi
callq 0x4260
leaq 0x2df(%rsp), %rdi
callq 0x4440
jmp 0x2e23c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
jmp 0x2e22a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
leaq 0x2e0(%rsp), %rdi
callq 0x4260
leaq 0x2df(%rsp), %rdi
callq 0x4440
jmp 0x2f433
movq 0x140(%rsp), %rdi
leaq 0x483d(%rip), %rsi      # 0x32a88
callq 0x2d3d0
movq %rax, 0xd0(%rsp)
jmp 0x2e25a
movq 0xd0(%rsp), %rax
movq %rax, 0x2d0(%rsp)
cmpq $0x0, 0x2d0(%rsp)
jne 0x2e28b
movq 0x4b0(%rsp), %rax
movss 0x44cf(%rip), %xmm0     # 0x32754
movss %xmm0, (%rax)
jmp 0x2e2a8
movq 0x2d0(%rsp), %rdi
callq 0x4480
cvtsd2ss %xmm0, %xmm0
movq 0x4b0(%rsp), %rax
movss %xmm0, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x47d4(%rip), %rsi      # 0x32a8b
callq 0x2d3d0
movq %rax, 0xc8(%rsp)
jmp 0x2e2c6
movq 0xc8(%rsp), %rax
movq %rax, 0x2c8(%rsp)
cmpq $0x0, 0x2c8(%rsp)
jne 0x2e2f1
movq 0x4b8(%rsp), %rax
movl $0xa, (%rax)
jmp 0x2e30a
movq 0x2c8(%rsp), %rdi
callq 0x4580
movl %eax, %ecx
movq 0x4b8(%rsp), %rax
movl %ecx, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x4775(%rip), %rsi      # 0x32a8e
callq 0x2d3d0
movq %rax, 0xc0(%rsp)
jmp 0x2e328
movq 0xc0(%rsp), %rax
movq %rax, 0x2c0(%rsp)
cmpq $0x0, 0x2c0(%rsp)
jne 0x2e353
movq 0x4c0(%rsp), %rax
movl $0x10, (%rax)
jmp 0x2e36c
movq 0x2c0(%rsp), %rdi
callq 0x4580
movl %eax, %ecx
movq 0x4c0(%rsp), %rax
movl %ecx, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x4716(%rip), %rsi      # 0x32a91
callq 0x2d3d0
movq %rax, 0xb8(%rsp)
jmp 0x2e38a
movq 0xb8(%rsp), %rax
movq %rax, 0x2b8(%rsp)
cmpq $0x0, 0x2b8(%rsp)
jne 0x2e3b5
movq 0x4c8(%rsp), %rax
movl $0x64, (%rax)
jmp 0x2e3ce
movq 0x2b8(%rsp), %rdi
callq 0x4580
movl %eax, %ecx
movq 0x4c8(%rsp), %rax
movl %ecx, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x46b9(%rip), %rsi      # 0x32a96
callq 0x2d3d0
movq %rax, 0xb0(%rsp)
jmp 0x2e3ec
movq 0xb0(%rsp), %rax
movq %rax, 0x2b0(%rsp)
cmpq $0x0, 0x2b0(%rsp)
jne 0x2e417
movq 0x4d0(%rsp), %rax
movl $0x64, (%rax)
jmp 0x2e430
movq 0x2b0(%rsp), %rdi
callq 0x4580
movl %eax, %ecx
movq 0x4d0(%rsp), %rax
movl %ecx, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x465c(%rip), %rsi      # 0x32a9b
callq 0x2d3d0
movq %rax, 0xa8(%rsp)
jmp 0x2e44e
movq 0xa8(%rsp), %rax
movq %rax, 0x2a8(%rsp)
cmpq $0x0, 0x2a8(%rsp)
jne 0x2e479
movq 0x4d8(%rsp), %rax
movl $0x1, (%rax)
jmp 0x2e492
movq 0x2a8(%rsp), %rdi
callq 0x4580
movl %eax, %ecx
movq 0x4d8(%rsp), %rax
movl %ecx, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x45fd(%rip), %rsi      # 0x32a9e
callq 0x2d3d0
movq %rax, 0xa0(%rsp)
jmp 0x2e4b0
movq 0xa0(%rsp), %rax
movq %rax, 0x2a0(%rsp)
cmpq $0x0, 0x2a0(%rsp)
jne 0x2e4e1
movq 0x4e0(%rsp), %rax
movss 0x427d(%rip), %xmm0     # 0x32758
movss %xmm0, (%rax)
jmp 0x2e4fe
movq 0x2a0(%rsp), %rdi
callq 0x4480
cvtsd2ss %xmm0, %xmm0
movq 0x4e0(%rsp), %rax
movss %xmm0, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x4594(%rip), %rsi      # 0x32aa1
callq 0x2d3d0
movq %rax, 0x98(%rsp)
jmp 0x2e51c
movq 0x98(%rsp), %rax
movq %rax, 0x298(%rsp)
cmpq $0x0, 0x298(%rsp)
jne 0x2e54f
movq 0x4f0(%rsp), %rdi
leaq 0x3b41(%rip), %rsi      # 0x32087
callq 0x44f0
jmp 0x2e54d
jmp 0x2e568
movq 0x298(%rsp), %rsi
movq 0x4f0(%rsp), %rdi
callq 0x44f0
jmp 0x2e566
jmp 0x2e568
movq 0x140(%rsp), %rdi
leaq 0x452d(%rip), %rsi      # 0x32aa4
callq 0x2d3d0
movq %rax, 0x90(%rsp)
jmp 0x2e586
movq 0x90(%rsp), %rax
movq %rax, 0x290(%rsp)
cmpq $0x0, 0x290(%rsp)
jne 0x2e657
movq 0x4f0(%rsp), %rdi
leaq 0x3ad3(%rip), %rsi      # 0x32087
callq 0xf390
movb %al, 0x8f(%rsp)
jmp 0x2e5c2
movb 0x8f(%rsp), %al
testb $0x1, %al
jne 0x2e5cf
jmp 0x2e5df
movq 0x4e8(%rsp), %rax
movl $0x1, (%rax)
jmp 0x2e655
movq 0x4f0(%rsp), %rdi
leaq 0x44a1(%rip), %rsi      # 0x32a8f
callq 0xf390
movb %al, 0x8e(%rsp)
jmp 0x2e5fc
movb 0x8e(%rsp), %al
testb $0x1, %al
jne 0x2e609
jmp 0x2e619
movq 0x4e8(%rsp), %rax
movl $0x5, (%rax)
jmp 0x2e653
movq 0x4f0(%rsp), %rdi
leaq 0x4464(%rip), %rsi      # 0x32a8c
callq 0xf390
movb %al, 0x8d(%rsp)
jmp 0x2e636
movb 0x8d(%rsp), %al
testb $0x1, %al
jne 0x2e643
jmp 0x2e651
movq 0x4e8(%rsp), %rax
movl $0x5, (%rax)
jmp 0x2e653
jmp 0x2e655
jmp 0x2e670
movq 0x290(%rsp), %rdi
callq 0x4580
movl %eax, %ecx
movq 0x4e8(%rsp), %rax
movl %ecx, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x4428(%rip), %rsi      # 0x32aa7
callq 0x2d3d0
movq %rax, 0x80(%rsp)
jmp 0x2e68e
movq 0x80(%rsp), %rax
movq %rax, 0x288(%rsp)
cmpq $0x0, 0x288(%rsp)
jne 0x2e6c1
movq 0x4f8(%rsp), %rdi
leaq 0x3c07(%rip), %rsi      # 0x322bf
callq 0x44f0
jmp 0x2e6bf
jmp 0x2e6da
movq 0x288(%rsp), %rsi
movq 0x4f8(%rsp), %rdi
callq 0x44f0
jmp 0x2e6d8
jmp 0x2e6da
movq 0x140(%rsp), %rdi
leaq 0x43c3(%rip), %rsi      # 0x32aac
callq 0x2d3d0
movq %rax, 0x78(%rsp)
jmp 0x2e6f5
movq 0x78(%rsp), %rax
movq %rax, 0x280(%rsp)
cmpq $0x0, 0x280(%rsp)
jne 0x2e71d
movq 0x500(%rsp), %rax
movl $0x1, (%rax)
jmp 0x2e736
movq 0x280(%rsp), %rdi
callq 0x4580
movl %eax, %ecx
movq 0x500(%rsp), %rax
movl %ecx, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x436c(%rip), %rsi      # 0x32ab1
callq 0x2d3d0
movq %rax, 0x70(%rsp)
jmp 0x2e751
movq 0x70(%rsp), %rax
movq %rax, 0x278(%rsp)
cmpq $0x0, 0x278(%rsp)
je 0x2e77b
movq 0x278(%rsp), %rdi
callq 0x4580
cmpl $0x1, %eax
jne 0x2e78b
movq 0x508(%rsp), %rax
movl $0x1, (%rax)
jmp 0x2e799
movq 0x508(%rsp), %rax
movl $0x0, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x430c(%rip), %rsi      # 0x32ab4
callq 0x2d3d0
movq %rax, 0x68(%rsp)
jmp 0x2e7b4
movq 0x68(%rsp), %rax
movq %rax, 0x270(%rsp)
cmpq $0x0, 0x270(%rsp)
jne 0x2e808
movq 0x510(%rsp), %rax
movb $0x1, (%rax)
movq 0x518(%rsp), %rax
movb $0x0, (%rax)
movq 0x520(%rsp), %rax
movb $0x0, (%rax)
movq 0x528(%rsp), %rax
movb $0x0, (%rax)
movq 0x530(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2e9b3
movq 0x270(%rsp), %rdi
leaq 0x38db(%rip), %rsi      # 0x320f2
callq 0x4530
cmpl $0x0, %eax
jne 0x2e85d
movq 0x510(%rsp), %rax
movb $0x1, (%rax)
movq 0x518(%rsp), %rax
movb $0x0, (%rax)
movq 0x520(%rsp), %rax
movb $0x0, (%rax)
movq 0x528(%rsp), %rax
movb $0x0, (%rax)
movq 0x530(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2e9b1
movq 0x270(%rsp), %rdi
leaq 0x3897(%rip), %rsi      # 0x32103
callq 0x4530
cmpl $0x0, %eax
jne 0x2e8b2
movq 0x510(%rsp), %rax
movb $0x0, (%rax)
movq 0x518(%rsp), %rax
movb $0x1, (%rax)
movq 0x520(%rsp), %rax
movb $0x0, (%rax)
movq 0x528(%rsp), %rax
movb $0x0, (%rax)
movq 0x530(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2e9af
movq 0x270(%rsp), %rdi
leaq 0x3853(%rip), %rsi      # 0x32114
callq 0x4530
cmpl $0x0, %eax
jne 0x2e907
movq 0x510(%rsp), %rax
movb $0x0, (%rax)
movq 0x518(%rsp), %rax
movb $0x0, (%rax)
movq 0x520(%rsp), %rax
movb $0x1, (%rax)
movq 0x528(%rsp), %rax
movb $0x0, (%rax)
movq 0x530(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2e9ad
movq 0x270(%rsp), %rdi
leaq 0x380f(%rip), %rsi      # 0x32125
callq 0x4530
cmpl $0x0, %eax
jne 0x2e959
movq 0x510(%rsp), %rax
movb $0x0, (%rax)
movq 0x518(%rsp), %rax
movb $0x0, (%rax)
movq 0x520(%rsp), %rax
movb $0x0, (%rax)
movq 0x528(%rsp), %rax
movb $0x1, (%rax)
movq 0x530(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2e9ab
movq 0x270(%rsp), %rdi
leaq 0x37ce(%rip), %rsi      # 0x32136
callq 0x4530
cmpl $0x0, %eax
jne 0x2e9a9
movq 0x510(%rsp), %rax
movb $0x0, (%rax)
movq 0x518(%rsp), %rax
movb $0x0, (%rax)
movq 0x520(%rsp), %rax
movb $0x0, (%rax)
movq 0x528(%rsp), %rax
movb $0x0, (%rax)
movq 0x530(%rsp), %rax
movb $0x1, (%rax)
jmp 0x2e9ab
jmp 0x2e9ad
jmp 0x2e9af
jmp 0x2e9b1
jmp 0x2e9b3
movq 0x140(%rsp), %rdi
leaq 0x40f7(%rip), %rsi      # 0x32ab9
callq 0x2d3d0
movq %rax, 0x60(%rsp)
jmp 0x2e9ce
movq 0x60(%rsp), %rax
movq %rax, 0x268(%rsp)
cmpq $0x0, 0x268(%rsp)
jne 0x2e9fe
movq 0x540(%rsp), %rdi
leaq 0x388f(%rip), %rsi      # 0x32284
callq 0x44f0
jmp 0x2e9fc
jmp 0x2ea17
movq 0x268(%rsp), %rsi
movq 0x540(%rsp), %rdi
callq 0x44f0
jmp 0x2ea15
jmp 0x2ea17
movq 0x140(%rsp), %rdi
leaq 0x409c(%rip), %rsi      # 0x32ac2
callq 0x2d3d0
movq %rax, 0x58(%rsp)
jmp 0x2ea32
movq 0x58(%rsp), %rax
movq %rax, 0x260(%rsp)
cmpq $0x0, 0x260(%rsp)
jne 0x2ea5a
movq 0x548(%rsp), %rax
movb $0x1, (%rax)
jmp 0x2eb0c
movq 0x260(%rsp), %rdi
leaq 0x405e(%rip), %rsi      # 0x32ac7
callq 0x4530
cmpl $0x0, %eax
je 0x2eaa5
movq 0x260(%rsp), %rdi
leaq 0x3d5f(%rip), %rsi      # 0x327e1
callq 0x4530
cmpl $0x0, %eax
je 0x2eaa5
movq 0x260(%rsp), %rdi
leaq 0x402f(%rip), %rsi      # 0x32aca
callq 0x4530
cmpl $0x0, %eax
jne 0x2eab2
movq 0x548(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2eb0a
movq 0x260(%rsp), %rdi
leaq 0x4010(%rip), %rsi      # 0x32ad1
callq 0x4530
cmpl $0x0, %eax
je 0x2eafd
movq 0x260(%rsp), %rdi
leaq 0x35a1(%rip), %rsi      # 0x3207b
callq 0x4530
cmpl $0x0, %eax
je 0x2eafd
movq 0x260(%rsp), %rdi
leaq 0x3fe2(%rip), %rsi      # 0x32ad5
callq 0x4530
cmpl $0x0, %eax
jne 0x2eb08
movq 0x548(%rsp), %rax
movb $0x1, (%rax)
jmp 0x2eb0a
jmp 0x2eb0c
movq 0x140(%rsp), %rdi
leaq 0x3fc2(%rip), %rsi      # 0x32add
callq 0x2d3d0
movq %rax, 0x50(%rsp)
jmp 0x2eb27
movq 0x50(%rsp), %rax
movq %rax, 0x258(%rsp)
cmpq $0x0, 0x258(%rsp)
jne 0x2eb4f
movq 0x550(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2ec01
movq 0x258(%rsp), %rdi
leaq 0x3f3e(%rip), %rsi      # 0x32a9c
callq 0x4530
cmpl $0x0, %eax
je 0x2eb9a
movq 0x258(%rsp), %rdi
leaq 0x3cb4(%rip), %rsi      # 0x3282b
callq 0x4530
cmpl $0x0, %eax
je 0x2eb9a
movq 0x258(%rsp), %rdi
leaq 0x3ca2(%rip), %rsi      # 0x32832
callq 0x4530
cmpl $0x0, %eax
jne 0x2eba7
movq 0x550(%rsp), %rax
movb $0x1, (%rax)
jmp 0x2ebff
movq 0x258(%rsp), %rdi
leaq 0x3f46(%rip), %rsi      # 0x32afc
callq 0x4530
cmpl $0x0, %eax
je 0x2ebf2
movq 0x258(%rsp), %rdi
leaq 0x3ca3(%rip), %rsi      # 0x32872
callq 0x4530
cmpl $0x0, %eax
je 0x2ebf2
movq 0x258(%rsp), %rdi
leaq 0x3f01(%rip), %rsi      # 0x32ae9
callq 0x4530
cmpl $0x0, %eax
jne 0x2ebfd
movq 0x550(%rsp), %rax
movb $0x0, (%rax)
jmp 0x2ebff
jmp 0x2ec01
movq 0x140(%rsp), %rdi
leaq 0x3edf(%rip), %rsi      # 0x32aef
callq 0x2d3d0
movq %rax, 0x48(%rsp)
jmp 0x2ec1c
movq 0x48(%rsp), %rax
movq %rax, 0x250(%rsp)
cmpq $0x0, 0x250(%rsp)
jne 0x2ec4a
movq 0x558(%rsp), %rax
movss 0x3b0c(%rip), %xmm0     # 0x32750
movss %xmm0, (%rax)
jmp 0x2ec67
movq 0x250(%rsp), %rdi
callq 0x4480
cvtsd2ss %xmm0, %xmm0
movq 0x558(%rsp), %rax
movss %xmm0, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x3e7d(%rip), %rsi      # 0x32af3
callq 0x2d3d0
movq %rax, 0x40(%rsp)
jmp 0x2ec82
movq 0x40(%rsp), %rax
movq %rax, 0x248(%rsp)
cmpq $0x0, 0x248(%rsp)
jne 0x2ecb0
movq 0x560(%rsp), %rax
movss 0x3aa6(%rip), %xmm0     # 0x32750
movss %xmm0, (%rax)
jmp 0x2eccd
movq 0x248(%rsp), %rdi
callq 0x4480
cvtsd2ss %xmm0, %xmm0
movq 0x560(%rsp), %rax
movss %xmm0, (%rax)
movq 0x140(%rsp), %rdi
leaq 0x34c6(%rip), %rsi      # 0x321a2
callq 0x2d3d0
movq %rax, 0x38(%rsp)
jmp 0x2ece8
movq 0x38(%rsp), %rax
movq %rax, 0x240(%rsp)
cmpq $0x0, 0x240(%rsp)
je 0x2f383
movq 0x240(%rsp), %rdi
leaq 0x3de7(%rip), %rsi      # 0x32afa
callq 0x4530
cmpl $0x0, %eax
jne 0x2f383
movq 0x538(%rsp), %rdi
leaq 0x3dce(%rip), %rsi      # 0x32afe
callq 0x43d0
jmp 0x2ed37
cmpq $0x0, 0x448(%rsp)
je 0x2ed5b
movq 0x448(%rsp), %rdi
leaq 0x3a4a(%rip), %rsi      # 0x3279b
callq 0x4530
cmpl $0x0, %eax
jne 0x2ed76
movq 0x538(%rsp), %rdi
leaq 0x3a3a(%rip), %rsi      # 0x327a4
callq 0x43d0
jmp 0x2ed71
jmp 0x2ee76
movq 0x448(%rsp), %rdi
leaq 0x3a29(%rip), %rsi      # 0x327ae
callq 0x4530
cmpl $0x0, %eax
je 0x2edc1
movq 0x448(%rsp), %rdi
leaq 0x3a17(%rip), %rsi      # 0x327b5
callq 0x4530
cmpl $0x0, %eax
je 0x2edc1
movq 0x448(%rsp), %rdi
leaq 0x3a05(%rip), %rsi      # 0x327bc
callq 0x4530
cmpl $0x0, %eax
jne 0x2eddc
movq 0x538(%rsp), %rdi
leaq 0x39f4(%rip), %rsi      # 0x327c4
callq 0x43d0
jmp 0x2edd7
jmp 0x2ee74
movq 0x448(%rsp), %rdi
leaq 0x39e1(%rip), %rsi      # 0x327cc
callq 0x4530
cmpl $0x0, %eax
je 0x2ee0e
movq 0x448(%rsp), %rdi
leaq 0x39c8(%rip), %rsi      # 0x327cc
callq 0x4530
cmpl $0x0, %eax
jne 0x2ee26
movq 0x538(%rsp), %rdi
leaq 0x39b4(%rip), %rsi      # 0x327d1
callq 0x43d0
jmp 0x2ee24
jmp 0x2ee72
movq 0x448(%rsp), %rdi
leaq 0x3a50(%rip), %rsi      # 0x32885
callq 0x4530
cmpl $0x0, %eax
je 0x2ee58
movq 0x448(%rsp), %rdi
leaq 0x3a44(%rip), %rsi      # 0x32892
callq 0x4530
cmpl $0x0, %eax
jne 0x2ee70
movq 0x538(%rsp), %rdi
leaq 0x3a2e(%rip), %rsi      # 0x32895
callq 0x43d0
jmp 0x2ee6e
jmp 0x2ee70
jmp 0x2ee72
jmp 0x2ee74
jmp 0x2ee76
cmpq $0x0, 0x458(%rsp)
je 0x2eecc
movq 0x458(%rsp), %rdi
leaq 0x38fa(%rip), %rsi      # 0x3278a
callq 0x4530
cmpl $0x0, %eax
je 0x2eecc
movq 0x458(%rsp), %rdi
leaq 0x37b5(%rip), %rsi      # 0x3265e
callq 0x4530
cmpl $0x0, %eax
je 0x2eecc
movq 0x458(%rsp), %rdi
leaq 0x389d(%rip), %rsi      # 0x3275f
callq 0x4530
cmpl $0x0, %eax
jne 0x2eee4
movq 0x538(%rsp), %rdi
leaq 0x3884(%rip), %rsi      # 0x3275f
callq 0x43d0
jmp 0x2eee2
jmp 0x2ef62
movq 0x458(%rsp), %rdi
leaq 0x3974(%rip), %rsi      # 0x32867
callq 0x4530
cmpl $0x0, %eax
je 0x2ef2f
movq 0x458(%rsp), %rdi
leaq 0x3966(%rip), %rsi      # 0x32872
callq 0x4530
cmpl $0x0, %eax
je 0x2ef2f
movq 0x458(%rsp), %rdi
leaq 0x3bd7(%rip), %rsi      # 0x32afc
callq 0x4530
cmpl $0x0, %eax
jne 0x2ef47
movq 0x538(%rsp), %rdi
leaq 0x3bbe(%rip), %rsi      # 0x32afc
callq 0x43d0
jmp 0x2ef45
jmp 0x2ef60
movq 0x458(%rsp), %rsi
movq 0x538(%rsp), %rdi
callq 0x43d0
jmp 0x2ef5e
jmp 0x2ef60
jmp 0x2ef62
movq 0x508(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x2ef87
movq 0x538(%rsp), %rdi
leaq 0x3b89(%rip), %rsi      # 0x32b07
callq 0x43d0
jmp 0x2ef85
jmp 0x2ef9f
movq 0x538(%rsp), %rdi
leaq 0x3b75(%rip), %rsi      # 0x32b0b
callq 0x43d0
jmp 0x2ef9d
jmp 0x2ef9f
movq 0x548(%rsp), %rax
testb $0x1, (%rax)
je 0x2efc4
movq 0x538(%rsp), %rdi
leaq 0x3b54(%rip), %rsi      # 0x32b0f
callq 0x43d0
jmp 0x2efc2
jmp 0x2efdc
movq 0x538(%rsp), %rdi
leaq 0x3b42(%rip), %rsi      # 0x32b15
callq 0x43d0
jmp 0x2efda
jmp 0x2efdc
movq 0x550(%rsp), %rax
testb $0x1, (%rax)
je 0x2f217
movq 0x250(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x1bf(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x46a0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
leaq 0x1c0(%rsp), %rdi
callq 0x4500
jmp 0x2f025
leaq 0x3aef(%rip), %rsi      # 0x32b1b
leaq 0x1e0(%rsp), %rdi
leaq 0x1c0(%rsp), %rdx
callq 0xf4c0
jmp 0x2f043
leaq 0x3ad6(%rip), %rdx      # 0x32b20
leaq 0x200(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x25160
jmp 0x2f061
movq 0x248(%rsp), %rax
movq %rax, 0x18(%rsp)
leaq 0x197(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x46a0
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
leaq 0x198(%rsp), %rdi
callq 0x4500
jmp 0x2f099
leaq 0x220(%rsp), %rdi
leaq 0x200(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0xf6a0
jmp 0x2f0b8
movq 0x538(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x44b0
jmp 0x2f0cf
leaq 0x220(%rsp), %rdi
callq 0x4260
leaq 0x198(%rsp), %rdi
callq 0x4260
leaq 0x197(%rsp), %rdi
callq 0x4440
leaq 0x200(%rsp), %rdi
callq 0x4260
leaq 0x1e0(%rsp), %rdi
callq 0x4260
leaq 0x1c0(%rsp), %rdi
callq 0x4260
leaq 0x1bf(%rsp), %rdi
callq 0x4440
jmp 0x2f217
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
jmp 0x2f205
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
jmp 0x2f1f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
jmp 0x2f1eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
jmp 0x2f1d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
jmp 0x2f1c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
leaq 0x220(%rsp), %rdi
callq 0x4260
leaq 0x198(%rsp), %rdi
callq 0x4260
leaq 0x197(%rsp), %rdi
callq 0x4440
leaq 0x200(%rsp), %rdi
callq 0x4260
leaq 0x1e0(%rsp), %rdi
callq 0x4260
leaq 0x1c0(%rsp), %rdi
callq 0x4260
leaq 0x1bf(%rsp), %rdi
callq 0x4440
jmp 0x2f433
cmpq $0x0, 0x298(%rsp)
je 0x2f28c
movq 0x4f0(%rsp), %rdx
leaq 0x38ef(%rip), %rsi      # 0x32b20
leaq 0x170(%rsp), %rdi
callq 0x2f5e0
jmp 0x2f240
movq 0x538(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x44b0
jmp 0x2f257
leaq 0x170(%rsp), %rdi
callq 0x4260
jmp 0x2f28c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
leaq 0x170(%rsp), %rdi
callq 0x4260
jmp 0x2f433
movq 0x510(%rsp), %rax
testb $0x1, (%rax)
je 0x2f2b4
movq 0x538(%rsp), %rdi
leaq 0x38a7(%rip), %rsi      # 0x32b4f
callq 0x43d0
jmp 0x2f2af
jmp 0x2f350
movq 0x518(%rsp), %rax
testb $0x1, (%rax)
je 0x2f2d9
movq 0x538(%rsp), %rdi
leaq 0x3864(%rip), %rsi      # 0x32b34
callq 0x43d0
jmp 0x2f2d7
jmp 0x2f34e
movq 0x520(%rsp), %rax
testb $0x1, (%rax)
je 0x2f2fe
movq 0x538(%rsp), %rdi
leaq 0x382d(%rip), %rsi      # 0x32b22
callq 0x43d0
jmp 0x2f2fc
jmp 0x2f34c
movq 0x528(%rsp), %rax
testb $0x1, (%rax)
je 0x2f323
movq 0x538(%rsp), %rdi
leaq 0x3815(%rip), %rsi      # 0x32b2f
callq 0x43d0
jmp 0x2f321
jmp 0x2f34a
movq 0x530(%rsp), %rax
testb $0x1, (%rax)
je 0x2f348
movq 0x538(%rsp), %rdi
leaq 0x3801(%rip), %rsi      # 0x32b40
callq 0x44f0
jmp 0x2f346
jmp 0x2f348
jmp 0x2f34a
jmp 0x2f34c
jmp 0x2f34e
jmp 0x2f350
movq 0x538(%rsp), %rsi
movq 0x11c61(%rip), %rdi     # 0x40fc0
callq 0x4390
movq %rax, 0x10(%rsp)
jmp 0x2f36b
movq 0x10(%rsp), %rdi
movq 0x11c39(%rip), %rsi     # 0x40fb0
callq 0x4430
jmp 0x2f37e
jmp 0x2f41e
cmpq $0x0, 0x240(%rsp)
je 0x2f41c
movq 0x240(%rsp), %rax
movq %rax, (%rsp)
leaq 0x14f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x46a0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x150(%rsp), %rdi
callq 0x4500
jmp 0x2f3c8
movq 0x538(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x4470
leaq 0x150(%rsp), %rdi
callq 0x4260
leaq 0x14f(%rsp), %rdi
callq 0x4440
jmp 0x2f41c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x410(%rsp)
movl %eax, 0x40c(%rsp)
leaq 0x14f(%rsp), %rdi
callq 0x4440
jmp 0x2f433
jmp 0x2f41e
leaq 0x420(%rsp), %rdi
callq 0x4260
addq $0x498, %rsp            # imm = 0x498
retq
leaq 0x420(%rsp), %rdi
callq 0x4260
movq 0x410(%rsp), %rdi
callq 0x4690
nopl (%rax)