// File: /workspace/github_cpp_makefile_star2_O3/gvaumour[P]cache-simulator/src/main.cc
// Function: main
int main(int argc , char* argv[]){
	
	vector<string> args; 

	bool mergingResults = MERGING_RESULTS;
	init_default_parameters();
	
	for(int i = 1; i < argc ; i++)
	{
		if(string(argv[i]) == "-p")
		{	i++;
			simu_parameters.policy = string(argv[i]);		
		}
		else if(string(argv[i]) == "--debug-flags")
		{	i++;
			vector<string> debugflags = split(string(argv[i]) , ',');		
			for(auto debugflag : debugflags)
			{
				if(simulation_debugflags.count(debugflag) != 0)
					simu_parameters.enable_debugflags.insert(debugflag);
				else
				{
					cout << "Error: Debug flag not recognized : " << debugflag << endl;
					return 0;					
				}
			}
		}
		else if(string(argv[i]) == "-n")
		{	i++;
			simu_parameters.nbCores = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--rap-assoc")
		{	i++;
			simu_parameters.rap_assoc = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--rap-sets")
		{	i++;
			simu_parameters.rap_sets = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--window_size")
		{	i++;
			simu_parameters.window_size = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--SRAM-assoc")
		{	i++;
			simu_parameters.sram_assoc = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--NVM-assoc")
		{	i++;
			simu_parameters.nvm_assoc = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--ratio-RWcost")
		{	i++;
			simu_parameters.ratio_RWcost = atof(argv[i]);
		}
		else if(string(argv[i]) == "--SRAM-MTsize")
		{	i++;
			simu_parameters.size_MT_SRAMtags = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--NVM-MTsize")
		{	i++;
			simu_parameters.size_MT_NVMtags = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--InstructionTh")
		{	i++;
			simu_parameters.cost_threshold = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--SaturationTh")
		{	i++;
			simu_parameters.saturation_threshold = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--LLC-sets")
		{	i++;
			simu_parameters.nb_sets = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--deadCounter")
		{	i++;
			simu_parameters.deadSaturationCouter = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--sampled-sets")
		{	i++;
			simu_parameters.nb_sampled_sets = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--prefetchDegree")
		{	i++;
			simu_parameters.prefetchDegree = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--prefetchStreams")
		{	i++;
			simu_parameters.prefetchStreams = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--enablePrefetch")
			simu_parameters.enablePrefetch = true;
		else if(string(argv[i]) == "--traceLLC")
			simu_parameters.traceLLC = true;
		else if(string(argv[i]) == "--enablePCHistoryTracking")
			simu_parameters.enablePCHistoryTracking = true;
		else if(string(argv[i]) == "--enableBP")
			simu_parameters.enableBP = true;
		else if(string(argv[i]) == "--enable-DYN")
			simu_parameters.enableMigration = true;
		else if(string(argv[i]) == "--simulate-MissConflicts")
			simu_parameters.simulate_conflicts = true;
		else if(string(argv[i]) == "--enableReuseError")
			simu_parameters.enableReuseErrorComputation = true;
		else if(string(argv[i]) == "--Predictor-optTarget")
		{	i++;
			string m_optTarget = string(argv[i]);
			assert((m_optTarget == "energy" || m_optTarget == "perf") && "Wrong optimization parameter for the function cost" );
			if(m_optTarget == "energy")
				simu_parameters.optTarget = EnergyParameters();
			else if(m_optTarget == "perf")
				simu_parameters.optTarget = PerfParameters();
		}
		else if(string(argv[i]) == "--DBAMB-signature")
		{	i++;
			simu_parameters.DBAMB_signature = string(argv[i]);		
		}
		else if(string(argv[i]) == "--MT-counter-th")
		{	i++;
			simu_parameters.MT_counter_th = atoi(argv[i]);		
		}
		else if(string(argv[i]) == "--MT-timeframe")
		{	i++;
			simu_parameters.MT_timeframe = atoi(argv[i]);		
		}		
		else if(string(argv[i]) == "--MT-sampling")
		{	i++;
			simu_parameters.nb_MTcouters_sampling = atoi(argv[i]);		
		}		
		else if(string(argv[i]) == "--Perceptron-BP-Features")
		{	i++;
			simu_parameters.perceptron_BP_features.clear();
			simu_parameters.perceptron_BP_features = split(string(argv[i]) , ',');
		}
		else if(string(argv[i]) == "--Perceptron-counterSize")
		{	i++;
			simu_parameters.perceptron_counter_size = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--PHC-costTh")
		{	i++;
			simu_parameters.PHC_cost_threshold = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--PHC-costMediumWrite")
		{	i++;
			simu_parameters.PHC_cost_mediumWrite = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--PHC-costShortWrite")
		{	i++;
			simu_parameters.PHC_cost_shortWrite = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--PHC-costShortRead")
		{	i++;
			simu_parameters.PHC_cost_shortRead = atoi(argv[i]);
		}		
		else if(string(argv[i]) == "--MediumRD-def")
		{	i++;
			simu_parameters.mediumrd_def = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--PHC-costMediumRead")
		{	i++;
			simu_parameters.PHC_cost_mediumRead = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--PHC-Features")
		{	i++;
			simu_parameters.PHC_features.clear();
			simu_parameters.PHC_features = split(string(argv[i]) , ',');
		}
		else if(string(argv[i]) == "--Cerebron-decrementValue")
		{	i++;
			simu_parameters.Cerebron_decrement_value = atoi(argv[i]);
		}
		else if(string(argv[i]) == "--Cerebron-function")
		{	i++;
			simu_parameters.Cerebron_activation_function = string(argv[i]);
		}
		else if(string(argv[i]) == "--Cerebron-independantLearning")
			simu_parameters.Cerebron_independantLearning = true;
		else if(string(argv[i]) == "--Cerebron-fastLearning")
			simu_parameters.Cerebron_fastlearning = true;
		else if(string(argv[i]) == "--Cerebron-lowConfidence")
			simu_parameters.Cerebron_lowConfidence = true;
		else if(string(argv[i]) == "--Cerebron-RDmodel")
			simu_parameters.Cerebron_RDmodel = true;
		else if(string(argv[i]) == "--Cerebron-resetEnergyValues")
			simu_parameters.Cerebron_resetEnergyValues = true;
		else if(string(argv[i]) == "--Cerebron-enableMigration")
			simu_parameters.Cerebron_enableMigration = true;
		else if(string(argv[i]) == "--Cerebron-separateLearning")
			simu_parameters.Cerebron_separateLearning = true;
		else if(string(argv[i]) == "--Perceptron-Alloc-Features")
		{	i++;
			simu_parameters.perceptron_Allocation_features.clear();
			simu_parameters.perceptron_Allocation_features = split(string(argv[i]) , ',');
		}
		else if(string(argv[i]) == "--Perceptron-drawFeatureMaps")
			simu_parameters.perceptron_drawFeatureMaps = true;		
		else if(string(argv[i]) == "--Perceptron-enableBP")
			simu_parameters.perceptron_enableBypass = true;		
		else if(string(argv[i]) == "--enableDatasetSpilling")
			simu_parameters.enableDatasetSpilling = true;		
		else if(string(argv[i]) == "--Perceptron-BPThreshold")
		{	i++;
			simu_parameters.perceptron_bypass_threshold = atoi(argv[i]);		
		}
		else if(string(argv[i]) == "--SimplePerceptron-learningTH")
			simu_parameters.simple_perceptron_learningTreshold = atoi(argv[i++]);
		else if(string(argv[i]) == "--SimplePerceptron-Features")
		{
			i++;
			simu_parameters.simple_perceptron_features.clear();		
			simu_parameters.simple_perceptron_features = split(string(argv[i]) , ',');
		}
		else if(string(argv[i]) == "--SimplePerceptron-independantLearning")
			simu_parameters.simple_perceptron_independantLearning = true;
		else if(string(argv[i]) == "--SimplePerceptron-fastLearning")
			simu_parameters.simple_perceptron_fastLearning = true;
		else if(string(argv[i]) == "--SimplePerceptron-enableMigration")
			simu_parameters.simple_perceptron_enableMigration = true;
		else if(string(argv[i]) == "--Perceptron-BPLearning")
		{	i++;
			simu_parameters.perceptron_bypass_learning = atoi(argv[i]);		
		}
		else if(string(argv[i]) == "--Perceptron-AllocThreshold")
		{	i++;
			simu_parameters.perceptron_allocation_threshold = atoi(argv[i]);		
		}
		else if(string(argv[i]) == "--Perceptron-AllocLearning")
		{	i++;
			simu_parameters.perceptron_allocation_learning = atoi(argv[i]);		
		}
		else if(string(argv[i]) == "--Perceptron-dumpVariance")
			simu_parameters.perceptron_compute_variance = true;		
		else if(string(argv[i]) == "--DBAMB-addr-beginBits")
		{	i++;
			simu_parameters.DBAMB_begin_bit = atoi(argv[i]);		
		}
		else if(string(argv[i]) == "--DBAMB-addr-endBits")
		{	i++;
			simu_parameters.DBAMB_end_bit = atoi(argv[i]);		
		}
		else if(string(argv[i]) == "--flagTest")
		{
			simu_parameters.flagTest = true;
			cout << "Flag Test Enable" << endl;		
		}
		else if(string(argv[i]) == "--readDatasetFile")
		{
			i++;
			simu_parameters.readDatasetFile = true;
			simu_parameters.datasetFile = string(argv[i]);		
		}
		else if(string(argv[i]) == "--writeDatasetFile")
			simu_parameters.writeDatasetFile = true;
		else if(string(argv[i]) == "--enableDebug")
		{
			cout << "Debug enable "<< endl;		
			simu_parameters.printDebug = true;
		}
		else if(argv[i][0] == '-' && argv[i][1] == '-')
		{
			cout << "Flag not recognized: " << argv[i] << endl;
			cout << "Exiting ... "<< endl;
			return 1;
		}
		else
			args.push_back(string(argv[i]));
	}
	
	if(simu_parameters.policy == "DBA")
	{
		simu_parameters.enableBP = false;
		simu_parameters.enableMigration = false;
	}
	else if(simu_parameters.policy == "DBAMB")
	{
		simu_parameters.enableBP = true;
		simu_parameters.enableMigration = true;
	}
	else if(simu_parameters.policy == "DBAMBS")
	{
		simu_parameters.enableBP = true;
		simu_parameters.enableMigration = true;
		simu_parameters.enableDatasetSpilling = true;
	}
	else if(simu_parameters.policy == "DBAM")
	{
		simu_parameters.enableBP = false;
		simu_parameters.enableMigration = true;
	}
	

	if( (simu_parameters.nvm_assoc == 0 || simu_parameters.sram_assoc == 0) && \
		(simu_parameters.policy != "Perceptron" && simu_parameters.policy != "Monitor" ) )
	 {
	 	simu_parameters.policy = "LRU";
	 }
		
	for(unsigned i = 0 ; i < args.size() ; i++)
		simu_parameters.memory_traces.push_back(args[i]);		
	
	if(argc == 1)
		simu_parameters.memory_traces.push_back(DEFAULT_TRACE);
	
	
	
	/* The Control C signal handler setup */
	struct sigaction sigIntHandler;
	sigIntHandler.sa_handler = my_handler;
	sigemptyset(&sigIntHandler.sa_mask);
	sigIntHandler.sa_flags = 0;
	sigaction(SIGINT, &sigIntHandler, NULL);
	/***********************************/	

	cout << "Launching simulation with " << simu_parameters.memory_traces.size() << " file(s), the " << simu_parameters.policy \
	 << " policy and with " << simu_parameters.nbCores << " core(s)" << endl;	

	my_system = new Hierarchy(simu_parameters.policy , simu_parameters.nbCores);


	cout << "Traces considered:" << endl;
	for(auto memory_trace : simu_parameters.memory_traces)
		cout << "\t - " << memory_trace << endl;
	
	int id_trace = 0;
	string loading_bar = "";
	uint64_t step = NB_ACCESS/30;

	for(auto memory_trace : simu_parameters.memory_traces)
	{
		cout << "\tRunning Trace: " << memory_trace << " ... " <<  endl;
	
		MemoryTrace* traceWrapper = initTrace(memory_trace);
		assert(traceWrapper != NULL);
		
		Access element;
		uint64_t cpt_access = 0;
		my_system->startWarmup();
		my_system->stopWarmup();
		
		while(traceWrapper->readNext(element)){

			cpt_time++;
			cpt_access++;

			if( ((cpt_time-1) % step == 0) || cpt_time == NB_ACCESS)
			{
				cout << "\tSimulation Progress [" << std::left << setw(30) << setfill(' ') \
					<< loading_bar << "] " << setw(2) << loading_bar.size()*100/30 << "%\r";
				fflush(stdout);
				loading_bar += "#";				
			}


			my_system->handleAccess(element);
			DPRINTF(DebugCache, "TIME::%ld\n",cpt_access);
			
		}
		cout << endl;
		traceWrapper->close();
		free(traceWrapper);
		if(!mergingResults)
		{
			my_system->finishSimu();	
			printResults(mergingResults, id_trace);	
		
		}
		id_trace++;
	}	
	if(mergingResults)
	{
		my_system->finishSimu();	
		printResults(mergingResults , id_trace);	
	}
	
	delete(my_system);
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2b8, %rsp            # imm = 0x2B8
movq %rsi, %r14
movl %edi, %r15d
xorps %xmm0, %xmm0
movaps %xmm0, 0x140(%rsp)
movq $0x0, 0x150(%rsp)
callq 0x2f1d8
cmpl $0x2, %r15d
jl 0x3224c
movl $0xe8, %eax
addq 0x14c8f(%rip), %rax     # 0x44fa0
movq %rax, 0x178(%rsp)
movl $0x130, %eax            # imm = 0x130
addq 0x14c7b(%rip), %rax     # 0x44fa0
movq %rax, 0x1b0(%rsp)
movl $0x180, %eax            # imm = 0x180
addq 0x14c67(%rip), %rax     # 0x44fa0
movq %rax, 0x170(%rsp)
movl $0x1d0, %eax            # imm = 0x1D0
addq 0x14c53(%rip), %rax     # 0x44fa0
movq %rax, 0x168(%rsp)
movl $0x200, %eax            # imm = 0x200
addq 0x14c3f(%rip), %rax     # 0x44fa0
movq %rax, 0x1a8(%rsp)
movl $0x198, %eax            # imm = 0x198
addq 0x14c2b(%rip), %rax     # 0x44fa0
movq %rax, 0x160(%rsp)
movl $0x230, %eax            # imm = 0x230
addq 0x14c17(%rip), %rax     # 0x44fa0
movq %rax, 0x158(%rsp)
movl $0x160, %eax            # imm = 0x160
addq 0x14c03(%rip), %rax     # 0x44fa0
movq %rax, 0x1a0(%rsp)
movl $0x1, %ebp
leaq 0x40(%rsp), %r12
leaq 0x15b9a(%rip), %rax     # 0x45f50
addq $0x68, %rax
movq %rax, 0x118(%rsp)
movq %r14, 0x38(%rsp)
movl %r15d, 0x110(%rsp)
movslq %ebp, %r13
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6eba(%rip), %rsi      # 0x372aa
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3040b
callq 0x52b0
testl %ebx, %ebx
je 0x316fc
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6e7c(%rip), %rsi      # 0x372ad
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3044c
callq 0x52b0
testl %ebx, %ebx
je 0x3173c
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6e6d(%rip), %rsi      # 0x372df
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3048d
callq 0x52b0
testl %ebx, %ebx
je 0x3189a
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6e2f(%rip), %rsi      # 0x372e2
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x304ce
callq 0x52b0
testl %ebx, %ebx
je 0x318b5
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6dfa(%rip), %rsi      # 0x372ee
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3050f
callq 0x52b0
testl %ebx, %ebx
je 0x318d3
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6dc4(%rip), %rsi      # 0x372f9
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30550
callq 0x52b0
testl %ebx, %ebx
je 0x318f1
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6d91(%rip), %rsi      # 0x37307
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30591
callq 0x52b0
testl %ebx, %ebx
je 0x3190f
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6d5d(%rip), %rsi      # 0x37314
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x305d2
callq 0x52b0
testl %ebx, %ebx
je 0x3192a
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6d28(%rip), %rsi      # 0x37320
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30613
callq 0x52b0
testl %ebx, %ebx
je 0x31945
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6cf6(%rip), %rsi      # 0x3732f
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30654
callq 0x52b0
testl %ebx, %ebx
je 0x31969
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6cc3(%rip), %rsi      # 0x3733d
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30695
callq 0x52b0
testl %ebx, %ebx
je 0x31987
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6c8f(%rip), %rsi      # 0x3734a
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x306d6
callq 0x52b0
testl %ebx, %ebx
je 0x319a5
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6c5e(%rip), %rsi      # 0x3735a
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30717
callq 0x52b0
testl %ebx, %ebx
je 0x319c3
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6c2c(%rip), %rsi      # 0x37369
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30758
callq 0x52b0
testl %ebx, %ebx
je 0x319e1
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6bf6(%rip), %rsi      # 0x37374
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30799
callq 0x52b0
testl %ebx, %ebx
je 0x319fc
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6bc3(%rip), %rsi      # 0x37382
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x307da
callq 0x52b0
testl %ebx, %ebx
je 0x31a1a
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6b91(%rip), %rsi      # 0x37391
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3081b
callq 0x52b0
testl %ebx, %ebx
je 0x31a35
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6b61(%rip), %rsi      # 0x373a2
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3085c
callq 0x52b0
testl %ebx, %ebx
je 0x31a50
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6b32(%rip), %rsi      # 0x373b4
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3089d
callq 0x52b0
testl %ebx, %ebx
je 0x31a6b
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6b02(%rip), %rsi      # 0x373c5
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x308de
callq 0x52b0
testl %ebx, %ebx
je 0x31a7b
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6acc(%rip), %rsi      # 0x373d0
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3091f
callq 0x52b0
testl %ebx, %ebx
je 0x31a8b
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6aa5(%rip), %rsi      # 0x373ea
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30960
callq 0x52b0
testl %ebx, %ebx
je 0x31a9b
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6a6f(%rip), %rsi      # 0x373f5
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x309a1
callq 0x52b0
testl %ebx, %ebx
je 0x31aab
movq (%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %r12, %rdi
leaq 0x6a3b(%rip), %rsi      # 0x37402
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x309e2
callq 0x52b0
testl %ebx, %ebx
je 0x31ac9
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
leaq 0x6a09(%rip), %rsi      # 0x3741b
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30a2d
callq 0x52b0
testl %ebx, %ebx
je 0x31adc
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x69d2(%rip), %rsi      # 0x3742e
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30a77
callq 0x52b0
testl %ebx, %ebx
je 0x31aef
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6a38(%rip), %rsi      # 0x374de
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30ac1
callq 0x52b0
testl %ebx, %ebx
je 0x31b83
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6a00(%rip), %rsi      # 0x374f0
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30b0b
callq 0x52b0
testl %ebx, %ebx
je 0x31bbd
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x69c6(%rip), %rsi      # 0x37500
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30b55
callq 0x52b0
testl %ebx, %ebx
je 0x31c28
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x698b(%rip), %rsi      # 0x3750f
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30b9f
callq 0x52b0
testl %ebx, %ebx
je 0x31c4e
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x694f(%rip), %rsi      # 0x3751d
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30be9
callq 0x52b0
testl %ebx, %ebx
je 0x31c71
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x691e(%rip), %rsi      # 0x37536
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30c33
callq 0x52b0
testl %ebx, %ebx
je 0x31ce6
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x68ed(%rip), %rsi      # 0x3754f
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30c7d
callq 0x52b0
testl %ebx, %ebx
je 0x31d09
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x68b0(%rip), %rsi      # 0x3755c
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30cc7
callq 0x52b0
testl %ebx, %ebx
je 0x31d2c
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x687c(%rip), %rsi      # 0x37572
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30d11
callq 0x52b0
testl %ebx, %ebx
je 0x31d4f
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6847(%rip), %rsi      # 0x37587
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30d5b
callq 0x52b0
testl %ebx, %ebx
je 0x31d72
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6811(%rip), %rsi      # 0x3759b
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30da5
callq 0x52b0
testl %ebx, %ebx
je 0x31d95
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x67d6(%rip), %rsi      # 0x375aa
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30def
callq 0x52b0
testl %ebx, %ebx
je 0x31db8
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x67a1(%rip), %rsi      # 0x375bf
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30e39
callq 0x52b0
testl %ebx, %ebx
je 0x31ddb
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6766(%rip), %rsi      # 0x375ce
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30e83
callq 0x52b0
testl %ebx, %ebx
je 0x31e50
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6736(%rip), %rsi      # 0x375e8
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30ecd
callq 0x52b0
testl %ebx, %ebx
je 0x31e73
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6700(%rip), %rsi      # 0x375fc
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30f17
callq 0x52b0
testl %ebx, %ebx
je 0x31e9c
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x66d5(%rip), %rsi      # 0x3761b
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30f61
callq 0x52b0
testl %ebx, %ebx
je 0x31eaf
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x66a3(%rip), %rsi      # 0x37633
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30fab
callq 0x52b0
testl %ebx, %ebx
je 0x31ec2
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6672(%rip), %rsi      # 0x3764c
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x30ff5
callq 0x52b0
testl %ebx, %ebx
je 0x31ed5
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x663b(%rip), %rsi      # 0x3765f
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3103f
callq 0x52b0
testl %ebx, %ebx
je 0x31ee8
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x660e(%rip), %rsi      # 0x3767c
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31089
callq 0x52b0
testl %ebx, %ebx
je 0x31efb
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x65df(%rip), %rsi      # 0x37697
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x310d3
callq 0x52b0
testl %ebx, %ebx
je 0x31f0e
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x65b1(%rip), %rsi      # 0x376b3
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3111d
callq 0x52b0
testl %ebx, %ebx
je 0x31f21
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6583(%rip), %rsi      # 0x376cf
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31167
callq 0x52b0
testl %ebx, %ebx
je 0x31f96
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6556(%rip), %rsi      # 0x376ec
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x311b1
callq 0x52b0
testl %ebx, %ebx
je 0x31fa9
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6522(%rip), %rsi      # 0x37702
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x311fb
callq 0x52b0
testl %ebx, %ebx
je 0x31fbc
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x64f0(%rip), %rsi      # 0x3771a
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31245
callq 0x52b0
testl %ebx, %ebx
je 0x31fcf
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x64bf(%rip), %rsi      # 0x37733
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3128f
callq 0x52b0
testl %ebx, %ebx
je 0x31ff2
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6493(%rip), %rsi      # 0x37751
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x312d9
callq 0x52b0
testl %ebx, %ebx
je 0x32014
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6465(%rip), %rsi      # 0x3776d
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31323
callq 0x52b0
testl %ebx, %ebx
je 0x32089
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6442(%rip), %rsi      # 0x37794
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3136d
callq 0x52b0
testl %ebx, %ebx
je 0x3209c
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6418(%rip), %rsi      # 0x377b4
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x313b7
callq 0x52b0
testl %ebx, %ebx
je 0x320af
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x63f1(%rip), %rsi      # 0x377d7
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31401
callq 0x52b0
testl %ebx, %ebx
je 0x320c2
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x63bf(%rip), %rsi      # 0x377ef
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3144b
callq 0x52b0
testl %ebx, %ebx
je 0x320e5
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6391(%rip), %rsi      # 0x3780b
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31495
callq 0x52b0
testl %ebx, %ebx
je 0x32108
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6362(%rip), %rsi      # 0x37826
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x314df
callq 0x52b0
testl %ebx, %ebx
je 0x3212b
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6332(%rip), %rsi      # 0x37840
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31529
callq 0x52b0
testl %ebx, %ebx
je 0x3213e
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x62ff(%rip), %rsi      # 0x37857
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31573
callq 0x52b0
testl %ebx, %ebx
je 0x32161
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x62ca(%rip), %rsi      # 0x3786c
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x315bd
callq 0x52b0
testl %ebx, %ebx
je 0x32184
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x629c(%rip), %rsi      # 0x37888
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31607
callq 0x52b0
testl %ebx, %ebx
je 0x321c5
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x6264(%rip), %rsi      # 0x3789a
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31651
callq 0x52b0
testl %ebx, %ebx
je 0x321fc
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x622d(%rip), %rsi      # 0x378ad
callq 0x50f0
movl %eax, %ebx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3169b
callq 0x52b0
testl %ebx, %ebx
je 0x3220f
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
cmpb $0x2d, (%rsi)
jne 0x316bb
cmpb $0x2d, 0x1(%rsi)
je 0x32b07
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x140(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2fe46
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3188b
callq 0x52b0
jmp 0x3188b
movq 0x8(%r14,%r13,8), %rsi
movq %r12, %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq 0x118(%rsp), %rdi
movq %r12, %rsi
callq 0x53f0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31735
callq 0x52b0
incl %ebp
jmp 0x31ab9
movq 0x8(%r14,%r13,8), %rsi
leaq 0x298(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rdx
callq 0x5140
leaq 0xd8(%rsp), %rdi
movq %rbx, %rsi
movl $0x2c, %edx
callq 0x2e230
movq 0x298(%rsp), %rdi
leaq 0x2a8(%rsp), %rax
cmpq %rax, %rdi
je 0x31783
callq 0x52b0
movq 0xd8(%rsp), %r14
movq 0xe0(%rsp), %r12
cmpq %r12, %r14
je 0x31874
leaq 0x50(%rsp), %rax
movq %rax, 0x40(%rsp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0xcbd6
leaq 0x1475c(%rip), %rdi     # 0x45f20
movq %rbx, %rsi
callq 0x1800c
movq %rax, %r13
leaq 0x1474a(%rip), %rax     # 0x45f20
leaq 0x8(%rax), %r15
cmpq %r15, %r13
je 0x317f6
leaq 0x1476a(%rip), %rax     # 0x45f50
leaq 0x8(%rax), %rdi
leaq 0x40(%rsp), %rsi
callq 0x3361e
jmp 0x3184e
movl $0x23, %edx
movq 0x137ce(%rip), %rdi     # 0x44fd0
leaq 0x5ab2(%rip), %rsi      # 0x372bb
callq 0x5360
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x137b1(%rip), %rdi     # 0x44fd0
callq 0x5360
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x31862
callq 0x52b0
cmpq %r15, %r13
je 0x322b5
addq $0x20, %r14
jmp 0x31793
incl %ebp
leaq 0xd8(%rsp), %rdi
callq 0xc7c2
movl 0x110(%rsp), %r15d
movq 0x38(%rsp), %r14
leaq 0x40(%rsp), %r12
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x146a3(%rip), %rcx     # 0x45f50
movl %eax, 0x3c(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14688(%rip), %rcx     # 0x45f50
movl %eax, 0xac(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1466a(%rip), %rcx     # 0x45f50
movl %eax, 0xb0(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1464c(%rip), %rcx     # 0x45f50
movl %eax, 0xa0(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1462e(%rip), %rcx     # 0x45f50
movl %eax, 0x38(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14613(%rip), %rcx     # 0x45f50
movl %eax, 0x40(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x5400
cvtsd2ss %xmm0, %xmm0
leaq 0x145f4(%rip), %rax     # 0x45f50
movss %xmm0, 0xe0(%rax)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x145d4(%rip), %rcx     # 0x45f50
movl %eax, 0xc0(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x145b6(%rip), %rcx     # 0x45f50
movl %eax, 0xc4(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14598(%rip), %rcx     # 0x45f50
movl %eax, 0xbc(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1457a(%rip), %rcx     # 0x45f50
movl %eax, 0xb8(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1455c(%rip), %rcx     # 0x45f50
movl %eax, 0x44(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14541(%rip), %rcx     # 0x45f50
movl %eax, 0x9c(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14523(%rip), %rcx     # 0x45f50
movl %eax, 0x48(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14508(%rip), %rcx     # 0x45f50
movl %eax, 0x8c(%rcx)
jmp 0x31ab9
incl %ebp
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x144ed(%rip), %rcx     # 0x45f50
movl %eax, 0x90(%rcx)
jmp 0x31ab9
leaq 0x144de(%rip), %rax     # 0x45f50
movb $0x1, 0x8b(%rax)
jmp 0x31ab9
leaq 0x144ce(%rip), %rax     # 0x45f50
movb $0x1, 0x89(%rax)
jmp 0x31ab9
leaq 0x144be(%rip), %rax     # 0x45f50
movb $0x1, 0x95(%rax)
jmp 0x31ab9
leaq 0x144ae(%rip), %rax     # 0x45f50
movb $0x1, 0xa8(%rax)
jmp 0x31ab9
leaq 0x1449e(%rip), %rax     # 0x45f50
movb $0x1, 0xa9(%rax)
incl %ebp
cmpl %r15d, %ebp
jl 0x303cf
jmp 0x3224c
leaq 0x14480(%rip), %rax     # 0x45f50
movb $0x1, 0x88(%rax)
jmp 0x3188b
leaq 0x1446d(%rip), %rax     # 0x45f50
movb $0x1, 0x94(%rax)
jmp 0x3188b
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0xd8(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x5140
leaq 0xd8(%rsp), %rdi
leaq 0x592a(%rip), %rsi      # 0x37444
callq 0x50f0
testl %eax, %eax
je 0x31b3f
leaq 0xd8(%rsp), %rdi
leaq 0x5919(%rip), %rsi      # 0x3744b
callq 0x50f0
testl %eax, %eax
jne 0x32b6a
leaq 0xd8(%rsp), %rdi
leaq 0x58f6(%rip), %rsi      # 0x37444
callq 0x50f0
testl %eax, %eax
je 0x31be0
leaq 0xd8(%rsp), %rdi
leaq 0x58e1(%rip), %rsi      # 0x3744b
callq 0x50f0
testl %eax, %eax
jne 0x31c07
leaq 0x40(%rsp), %rdi
callq 0x3348e
jmp 0x31bea
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq 0x1b0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x53f0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
jmp 0x31c17
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1437b(%rip), %rcx     # 0x45f50
movl %eax, 0xc8(%rcx)
jmp 0x31890
leaq 0x40(%rsp), %rdi
callq 0x2f856
movq 0x178(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x333f2
movq %rbx, %rdi
callq 0xc792
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x31c21
callq 0x52b0
incl %ebp
jmp 0x3188b
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
cltq
leaq 0x1430e(%rip), %rcx     # 0x45f50
movq %rax, 0xd0(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x142ea(%rip), %rcx     # 0x45f50
movl %eax, 0xd8(%rcx)
jmp 0x31890
movq 0x170(%rsp), %rdi
callq 0x33594
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0x258(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x258(%rsp), %rsi
movl $0x2c, %edx
callq 0x2e230
movq 0x170(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x335da
movq %rbx, %rdi
callq 0xc7c2
movq 0x258(%rsp), %rdi
leaq 0x268(%rsp), %rax
jmp 0x31c17
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14252(%rip), %rcx     # 0x45f50
movl %eax, 0x1b0(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1422f(%rip), %rcx     # 0x45f50
movl %eax, 0x1e8(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x1420c(%rip), %rcx     # 0x45f50
movl %eax, 0x1f0(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x141e9(%rip), %rcx     # 0x45f50
movl %eax, 0x1f4(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x141c6(%rip), %rcx     # 0x45f50
movl %eax, 0x1f8(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x141a3(%rip), %rcx     # 0x45f50
movl %eax, 0x1fc(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x14180(%rip), %rcx     # 0x45f50
movl %eax, 0x1ec(%rcx)
jmp 0x31890
movq 0x168(%rsp), %rdi
callq 0x33594
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0x238(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x238(%rsp), %rsi
movl $0x2c, %edx
callq 0x2e230
movq 0x168(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x335da
movq %rbx, %rdi
callq 0xc7c2
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
jmp 0x31c17
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x140e8(%rip), %rcx     # 0x45f50
movl %eax, 0x228(%rcx)
jmp 0x31890
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq 0x1a8(%rsp), %rdi
jmp 0x31ba7
leaq 0x140ad(%rip), %rax     # 0x45f50
movb $0x1, 0x220(%rax)
jmp 0x3188b
leaq 0x1409a(%rip), %rax     # 0x45f50
movb $0x1, 0x225(%rax)
jmp 0x3188b
leaq 0x14087(%rip), %rax     # 0x45f50
movb $0x1, 0x221(%rax)
jmp 0x3188b
leaq 0x14074(%rip), %rax     # 0x45f50
movb $0x1, 0x226(%rax)
jmp 0x3188b
leaq 0x14061(%rip), %rax     # 0x45f50
movb $0x1, 0x222(%rax)
jmp 0x3188b
leaq 0x1404e(%rip), %rax     # 0x45f50
movb $0x1, 0x223(%rax)
jmp 0x3188b
leaq 0x1403b(%rip), %rax     # 0x45f50
movb $0x1, 0x224(%rax)
jmp 0x3188b
movq 0x160(%rsp), %rdi
callq 0x33594
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0x218(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x218(%rsp), %rsi
movl $0x2c, %edx
callq 0x2e230
movq 0x160(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x335da
movq %rbx, %rdi
callq 0xc7c2
movq 0x218(%rsp), %rdi
leaq 0x228(%rsp), %rax
jmp 0x31c17
leaq 0x13fb3(%rip), %rax     # 0x45f50
movb $0x1, 0x1cc(%rax)
jmp 0x3188b
leaq 0x13fa0(%rip), %rax     # 0x45f50
movb $0x1, 0x1ce(%rax)
jmp 0x3188b
leaq 0x13f8d(%rip), %rax     # 0x45f50
movb $0x1, 0x158(%rax)
jmp 0x3188b
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x13f69(%rip), %rcx     # 0x45f50
movl %eax, 0x1b8(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq (%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x13f47(%rip), %rcx     # 0x45f50
movl %eax, 0x248(%rcx)
jmp 0x31890
movq 0x158(%rsp), %rdi
callq 0x33594
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0x1f8(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
leaq 0x40(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
movl $0x2c, %edx
callq 0x2e230
movq 0x158(%rsp), %rdi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
callq 0x335da
movq %rbx, %rdi
callq 0xc7c2
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
jmp 0x31c17
leaq 0x13ec0(%rip), %rax     # 0x45f50
movb $0x1, 0x24d(%rax)
jmp 0x3188b
leaq 0x13ead(%rip), %rax     # 0x45f50
movb $0x1, 0x24c(%rax)
jmp 0x3188b
leaq 0x13e9a(%rip), %rax     # 0x45f50
movb $0x1, 0x24e(%rax)
jmp 0x3188b
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x13e76(%rip), %rcx     # 0x45f50
movl %eax, 0x1bc(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x13e53(%rip), %rcx     # 0x45f50
movl %eax, 0x1c0(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x13e30(%rip), %rcx     # 0x45f50
movl %eax, 0x1c4(%rcx)
jmp 0x31890
leaq 0x13e1e(%rip), %rax     # 0x45f50
movb $0x1, 0x1cd(%rax)
jmp 0x3188b
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x13dfa(%rip), %rcx     # 0x45f50
movl %eax, 0x150(%rcx)
jmp 0x31890
incl %ebp
movq 0x38(%rsp), %r14
movq 0x8(%r14,%r13,8), %rdi
callq 0x54c0
leaq 0x13dd7(%rip), %rcx     # 0x45f50
movl %eax, 0x154(%rcx)
jmp 0x31890
leaq 0x13dc5(%rip), %rax     # 0x45f50
movb $0x1, 0xb4(%rax)
movl $0x10, %edx
movq 0x12e32(%rip), %rdi     # 0x44fd0
leaq 0x56d2(%rip), %rsi      # 0x37877
callq 0x5360
movq 0x38(%rsp), %r14
leaq 0x40(%rsp), %r12
movq 0x12e15(%rip), %rdi     # 0x44fd0
callq 0x5180
jmp 0x31ab9
leaq 0x13d84(%rip), %rax     # 0x45f50
movb $0x1, 0x159(%rax)
movq 0x38(%rsp), %rax
movq 0x8(%rax,%r13,8), %rsi
leaq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x5140
movq 0x1a0(%rsp), %rdi
jmp 0x31ba7
leaq 0x13d4d(%rip), %rax     # 0x45f50
movb $0x1, 0x15a(%rax)
jmp 0x3188b
movl $0xd, %edx
movq 0x12db5(%rip), %rdi     # 0x44fd0
leaq 0x5699(%rip), %rsi      # 0x378bb
callq 0x5360
movq 0x38(%rsp), %r14
leaq 0x40(%rsp), %r12
movq 0x12d98(%rip), %rdi     # 0x44fd0
callq 0x5180
leaq 0x13d0c(%rip), %rax     # 0x45f50
movb $0x1, (%rax)
jmp 0x31ab9
leaq 0x13cfd(%rip), %rbx     # 0x45f50
leaq 0x68(%rbx), %r14
leaq 0x35d3(%rip), %rsi      # 0x35831
movq %r14, %rdi
callq 0x50f0
testl %eax, %eax
je 0x322c7
leaq 0x4ec6(%rip), %rsi      # 0x37137
movq %r14, %rdi
callq 0x50f0
testl %eax, %eax
je 0x322d2
leaq 0x35b6(%rip), %rsi      # 0x3583a
movq %r14, %rdi
callq 0x50f0
testl %eax, %eax
je 0x322e4
leaq 0x359e(%rip), %rsi      # 0x35835
movq %r14, %rdi
callq 0x50f0
testl %eax, %eax
leaq 0x13ca8(%rip), %rbx     # 0x45f50
jne 0x322fb
movw $0x100, 0xa8(%rbx)      # imm = 0x100
jmp 0x322fb
leaq 0xd8(%rsp), %rdi
callq 0xc7c2
jmp 0x32ac5
movw $0x0, 0xa8(%rbx)
jmp 0x322fb
leaq 0x13c77(%rip), %rbx     # 0x45f50
movw $0x101, 0xa8(%rbx)      # imm = 0x101
jmp 0x322fb
leaq 0x13c65(%rip), %rbx     # 0x45f50
movw $0x101, 0xa8(%rbx)      # imm = 0x101
movb $0x1, 0x158(%rbx)
cmpl $0x0, 0x40(%rbx)
je 0x3230e
leaq 0x13c48(%rip), %rax     # 0x45f50
cmpl $0x0, 0x38(%rax)
jne 0x32356
leaq 0x3511(%rip), %rsi      # 0x35826
movq %r14, %rdi
callq 0x50f0
testl %eax, %eax
je 0x32356
leaq 0x55c4(%rip), %rsi      # 0x378ec
movq %r14, %rdi
callq 0x50f0
testl %eax, %eax
je 0x32356
leaq 0x13c15(%rip), %rax     # 0x45f50
movq 0x70(%rax), %rdx
leaq 0x3028(%rip), %rcx      # 0x3536e
movl $0x3, %r8d
movq %r14, %rdi
xorl %esi, %esi
callq 0x54b0
movq 0x140(%rsp), %rax
cmpq %rax, 0x148(%rsp)
je 0x323a9
movl $0x1, %ebx
xorl %esi, %esi
leaq 0x13bda(%rip), %rcx     # 0x45f50
leaq 0x50(%rcx), %r14
shlq $0x5, %rsi
addq %rax, %rsi
movq %r14, %rdi
callq 0x2f7c4
movl %ebx, %esi
movq 0x140(%rsp), %rax
movq 0x148(%rsp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
incl %ebx
cmpq %rsi, %rcx
ja 0x3237a
cmpl $0x1, %r15d
leaq 0x13b9c(%rip), %r15     # 0x45f50
jne 0x323f4
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x552e(%rip), %rsi      # 0x378f4
leaq 0x556c(%rip), %rdx      # 0x37939
leaq 0x40(%rsp), %rdi
callq 0xcc6c
leaq 0x50(%r15), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2fe46
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x323f4
callq 0x52b0
leaq 0xabc(%rip), %rax       # 0x32eb7
leaq 0x48(%rsp), %rbx
movq %rax, -0x8(%rbx)
movq %rbx, %rdi
callq 0x5410
movl $0x0, 0x80(%rbx)
leaq 0x40(%rsp), %rsi
movl $0x2, %edi
xorl %edx, %edx
callq 0x5420
movq 0x12ba2(%rip), %rdi     # 0x44fd0
leaq 0x5505(%rip), %rsi      # 0x3793a
movl $0x1a, %edx
callq 0x5360
movq 0x58(%r15), %rsi
subq 0x50(%r15), %rsi
sarq $0x5, %rsi
movq 0x12b7e(%rip), %rdi     # 0x44fd0
callq 0x51f0
movq %rax, %rbx
leaq 0x54f4(%rip), %rsi      # 0x37955
movl $0xe, %edx
movq %rax, %rdi
callq 0x5360
movq 0x68(%r15), %rsi
movq 0x70(%r15), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %rbx
leaq 0x54dc(%rip), %rsi      # 0x37964
movl $0x11, %edx
movq %rax, %rdi
callq 0x5360
movl 0x3c(%r15), %esi
movq %rbx, %rdi
callq 0x5580
movq %rax, %rbx
leaq 0x54cb(%rip), %rsi      # 0x37976
movl $0x8, %edx
movq %rax, %rdi
callq 0x5360
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movl $0xa0, %edi
callq 0x52f0
movq %rax, %r14
movq %r15, %rbx
leaq 0x288(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x68(%rbx), %rsi
movq 0x70(%rbx), %rdx
addq %rsi, %rdx
leaq 0x278(%rsp), %rdi
callq 0xcbd6
movl 0x3c(%rbx), %edx
leaq 0x278(%rsp), %rsi
movq %r14, %rdi
callq 0x1649e
movq %r14, 0x13c8b(%rip)     # 0x461b8
movq 0x278(%rsp), %rdi
cmpq %r15, %rdi
je 0x3253f
callq 0x52b0
movq 0x12a8a(%rip), %rbx     # 0x44fd0
leaq 0x5432(%rip), %rsi      # 0x3797f
movl $0x12, %edx
movq %rbx, %rdi
callq 0x5360
leaq 0x139ef(%rip), %r14     # 0x45f50
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq 0x12a51(%rip), %rbx     # 0x44fd0
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq 0x50(%r14), %rbp
movq 0x58(%r14), %r12
cmpq %r12, %rbp
je 0x32644
leaq 0xe8(%rsp), %r14
movq 0x12a21(%rip), %r15     # 0x44fd0
movq %r14, 0xd8(%rsp)
movq (%rbp), %rsi
movq 0x8(%rbp), %rdx
addq %rsi, %rdx
leaq 0xd8(%rsp), %rdi
callq 0xcbd6
movl $0x4, %edx
movq %r15, %rdi
leaq 0x53b4(%rip), %rsi      # 0x37992
callq 0x5360
movq 0xd8(%rsp), %rsi
movq 0xe0(%rsp), %rdx
movq %r15, %rdi
callq 0x5360
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq 0xd8(%rsp), %rdi
cmpq %r14, %rdi
je 0x32637
callq 0x52b0
addq $0x20, %rbp
cmpq %r12, %rbp
jne 0x325af
leaq 0x130(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x361d(%rip), %rdx      # 0x35c74
leaq 0x120(%rsp), %rdi
movq %rdx, %rsi
callq 0xcc6c
leaq 0x138e2(%rip), %rax     # 0x45f50
movq 0x50(%rax), %r13
movq 0x58(%rax), %rcx
movq %rcx, 0x110(%rsp)
cmpq %rcx, %r13
je 0x32a70
leaq 0x1e8(%rsp), %rbp
leaq 0x1b8(%rsp), %r14
leaq 0x8(%rax), %r15
movl $0x0, 0x38(%rsp)
leaq 0x190(%rsp), %rax
movq %rax, 0x180(%rsp)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x180(%rsp), %rdi
callq 0xcbd6
movl $0x10, %edx
movq %rbx, %rdi
leaq 0x52bd(%rip), %rsi      # 0x37997
callq 0x5360
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
movl $0x5, %edx
movq %rax, %rdi
leaq 0x51dd(%rip), %rsi      # 0x378e6
callq 0x5360
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq %rbp, 0x1d8(%rsp)
movq 0x180(%rsp), %rsi
movq 0x188(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1d8(%rsp), %r12
movq %r12, %rdi
callq 0xcbd6
movq %r12, %rdi
callq 0x1f527
movq %rax, %r12
movq 0x1d8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3277e
callq 0x52b0
testq %r12, %r12
je 0x32ae8
movq %r13, 0x118(%rsp)
xorl %eax, %eax
movq %rax, 0xd8(%rsp)
movl $0x0, 0xe0(%rsp)
movq %rax, 0xe8(%rsp)
movq $0x2, 0xf4(%rsp)
movb $0x0, 0x100(%rsp)
movq 0x139f1(%rip), %rdi     # 0x461b8
callq 0x169ec
movq 0x139e5(%rip), %rdi     # 0x461b8
callq 0x16a32
movl $0x1, %ebp
movq (%r12), %rax
movq %r12, %rdi
leaq 0xd8(%rsp), %rsi
callq *(%rax)
testb %al, %al
je 0x329f5
leaq 0x1371b(%rip), %rdx     # 0x45f18
movq (%rdx), %rax
leaq 0x1(%rax), %rcx
movabsq $0x38c6be102007673d, %rsi # imm = 0x38C6BE102007673D
imulq %rsi, %rax
rorq %rax
movabsq $0x101b2b34736, %rsi    # imm = 0x101B2B34736
cmpq %rsi, %rax
seta %al
movq %rcx, (%rdx)
cmpq $0x1dcd6500, %rcx       # imm = 0x1DCD6500
setne %cl
testb %cl, %al
jne 0x3293f
movl $0x16, %edx
movq %rbx, %rdi
leaq 0x5174(%rip), %rsi      # 0x379bd
callq 0x5360
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movl 0x18(%rbx,%rcx), %edx
movl $0xffffff4f, %esi       # imm = 0xFFFFFF4F
andl %esi, %edx
orl $0x20, %edx
movl %edx, 0x18(%rbx,%rcx)
movq -0x18(%rax), %rcx
movq $0x1e, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r13
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x3289b
movq %r13, %rdi
movl $0x20, %esi
callq 0x52c0
movb $0x1, 0xe1(%r13)
movb $0x20, 0xe0(%r13)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r13
movl $0x2, %edx
movq %rax, %rdi
leaq 0x5107(%rip), %rsi      # 0x379d4
callq 0x5360
movq (%r13), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%r13,%rax)
imulq $0x64, 0x128(%rsp), %rax
movabsq $-0x7777777777777777, %rcx # imm = 0x8888888888888889
mulq %rcx
shrq $0x4, %rdx
movq %r13, %rdi
movq %rdx, %rsi
callq 0x51f0
movl $0x2, %edx
movq %rax, %rdi
leaq 0x50c0(%rip), %rsi      # 0x379d7
callq 0x5360
movq 0x12665(%rip), %rax     # 0x44f88
movq (%rax), %rdi
callq 0x5390
leaq 0x120(%rsp), %rdi
leaq 0x50a0(%rip), %rsi      # 0x379da
callq 0x55f0
movq 0x13872(%rip), %rdi     # 0x461b8
movq 0x108(%rsp), %rax
movq %rax, 0x30(%rsp)
movups 0xd8(%rsp), %xmm0
movups 0xe8(%rsp), %xmm1
movups 0xf8(%rsp), %xmm2
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
callq 0x1760a
leaq 0x1c8(%rsp), %rax
movq %rax, 0x1b8(%rsp)
movq %r14, %rdi
leaq 0x2f05(%rip), %rsi      # 0x3589d
leaq 0x2f08(%rip), %rdx      # 0x358a7
callq 0xcc6c
movq %r15, %rdi
movq %r14, %rsi
callq 0x1800c
movq %rax, %r13
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x329cc
callq 0x52b0
leaq 0x1357d(%rip), %rax     # 0x45f50
addq $0x10, %rax
cmpq %rax, %r13
je 0x329ed
leaq 0x4ff9(%rip), %rdi      # 0x379dc
movq %rbp, %rsi
xorl %eax, %eax
callq 0x5050
incq %rbp
jmp 0x327dd
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
movq %r12, %rdi
callq 0x53d0
movq 0x180(%rsp), %rdi
leaq 0x190(%rsp), %rax
cmpq %rax, %rdi
movq 0x118(%rsp), %r13
leaq 0x1e8(%rsp), %rbp
je 0x32a58
callq 0x52b0
incl 0x38(%rsp)
addq $0x20, %r13
cmpq 0x110(%rsp), %r13
jne 0x326a3
jmp 0x32a78
movl $0x0, 0x38(%rsp)
movq 0x13739(%rip), %rdi     # 0x461b8
callq 0x1738a
xorl %edi, %edi
movl 0x38(%rsp), %esi
callq 0x32ef4
movq 0x13722(%rip), %rbx     # 0x461b8
testq %rbx, %rbx
je 0x32aa3
movq %rbx, %rdi
callq 0x1696c
movq %rbx, %rdi
callq 0x52b0
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0x32ac5
callq 0x52b0
xorl %ebx, %ebx
leaq 0x140(%rsp), %rdi
callq 0xc7c2
movl %ebx, %eax
addq $0x2b8, %rsp            # imm = 0x2B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4eb9(%rip), %rdi      # 0x379a8
leaq 0x49c5(%rip), %rsi      # 0x374bb
leaq 0x49ca(%rip), %rcx      # 0x374c7
movl $0x178, %edx            # imm = 0x178
callq 0x51d0
movq 0x124c2(%rip), %rdi     # 0x44fd0
leaq 0x4db4(%rip), %rsi      # 0x378c9
movl $0x15, %edx
callq 0x5360
movq 0x38(%rsp), %rax
movq (%rax,%r13,8), %rsi
movq 0x124a1(%rip), %rdi     # 0x44fd0
callq 0x52d0
movq %rax, %rdi
callq 0x5180
movq 0x1248d(%rip), %rdi     # 0x44fd0
leaq 0x4d95(%rip), %rsi      # 0x378df
movl $0xc, %edx
callq 0x5360
movl $0x1, %ebx
movq 0x12470(%rip), %rdi     # 0x44fd0
callq 0x5180
jmp 0x32ac7
leaq 0x48df(%rip), %rdi      # 0x37450
leaq 0x4943(%rip), %rsi      # 0x374bb
leaq 0x4948(%rip), %rcx      # 0x374c7
movl $0x97, %edx
callq 0x51d0
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
movq %rax, %rbx
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
jmp 0x32e98
jmp 0x32e06
movq %rax, %rbx
movq 0x218(%rsp), %rdi
leaq 0x228(%rsp), %rax
jmp 0x32e98
jmp 0x32e06
jmp 0x32e06
movq %rax, %rbx
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
jmp 0x32e98
jmp 0x32e06
movq %rax, %rbx
movq 0x258(%rsp), %rdi
leaq 0x268(%rsp), %rax
jmp 0x32e98
jmp 0x32e06
jmp 0x32c18
jmp 0x32e06
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
jmp 0x32e98
jmp 0x32e06
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
jmp 0x32e98
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
movq %rax, %rbx
movq 0x40(%rsp), %rdi
jmp 0x32e3f
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
movq %rax, %rbx
movq 0x278(%rsp), %rdi
cmpq %r15, %rdi
je 0x32daf
callq 0x52b0
jmp 0x32daf
movq %rax, %rbx
movq %r14, %rdi
jmp 0x32e9d
jmp 0x32e06
jmp 0x32e06
movq %rax, %rbx
movq 0x298(%rsp), %rdi
leaq 0x2a8(%rsp), %rax
jmp 0x32e98
jmp 0x32e06
jmp 0x32e06
jmp 0x32de8
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
jmp 0x32e06
movq %rax, %rbx
jmp 0x32e25
movq %rax, %rbx
jmp 0x32e88
jmp 0x32e6b
movq %rax, %rbx
movq 0x1d8(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x32e62
jmp 0x32e6e
jmp 0x32e06
movq %rax, %rbx
jmp 0x32ea2
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x32e25
callq 0x52b0
leaq 0xd8(%rsp), %rdi
callq 0xc7c2
jmp 0x32ea2
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
cmpq %r14, %rdi
jne 0x32e9d
jmp 0x32ea2
jmp 0x32e6b
jmp 0x32e6b
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x32e6e
callq 0x52b0
jmp 0x32e6e
jmp 0x32e6b
movq %rax, %rbx
movq 0x180(%rsp), %rdi
leaq 0x190(%rsp), %rax
cmpq %rax, %rdi
je 0x32e88
callq 0x52b0
leaq 0x130(%rsp), %rax
movq 0x120(%rsp), %rdi
cmpq %rax, %rdi
je 0x32ea2
callq 0x52b0
leaq 0x140(%rsp), %rdi
callq 0xc7c2
movq %rbx, %rdi
callq 0x55a0