// File: estwings57[P]CasHMC/sources/CasHMCWrapper.cpp
// Function: CasHMC::CasHMCWrapper::CasHMCWrapper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
CasHMCWrapper::CasHMCWrapper(string simCfg, string dramCfg)
{
	//Loading configure parameters
	ReadIniFile(simCfg);
	ReadIniFile(dramCfg);
	PushStatisPerLink();
	
	//
	//Class variable initialization
	//
	currentClockCycle = 0;
	dramTuner = 1;
	downLinkTuner = 1;
	downLinkClock = 1;
	upLinkTuner = 1;
	upLinkClock = 1;
	linkPeriod = (1/LINK_SPEED);
	
	//Make class objects
	downstreamLinks.reserve(NUM_LINKS);
	upstreamLinks.reserve(NUM_LINKS);
	for(int l=0; l<NUM_LINKS; l++) {
		downstreamLinks.push_back(new Link(debugOut, stateOut, l, true, this));
		upstreamLinks.push_back(new Link(debugOut, stateOut, l, false, this));
	}
	hmcCont = new HMCController(debugOut, stateOut);
	hmc = new HMC(debugOut, stateOut);
	
	//Link master, Link, and Link slave are linked each other by respective lanes
	for(int l=0; l<NUM_LINKS; l++) {
		//Downstream
		hmcCont->downLinkMasters[l]->linkP = downstreamLinks[l];
		hmcCont->downLinkMasters[l]->localLinkSlave = hmcCont->upLinkSlaves[l];
		downstreamLinks[l]->linkMasterP = hmcCont->downLinkMasters[l];
		downstreamLinks[l]->linkSlaveP = hmc->downLinkSlaves[l];
		hmc->downLinkSlaves[l]->downBufferDest = hmc->crossbarSwitch;
		hmc->downLinkSlaves[l]->localLinkMaster = hmc->upLinkMasters[l];
		//Upstream
		hmc->crossbarSwitch->upBufferDest[l] = hmc->upLinkMasters[l];
		hmc->upLinkMasters[l]->linkP = upstreamLinks[l];
		hmc->upLinkMasters[l]->localLinkSlave = hmc->downLinkSlaves[l];
		upstreamLinks[l]->linkMasterP = hmc->upLinkMasters[l];
		upstreamLinks[l]->linkSlaveP = hmcCont->upLinkSlaves[l];
		hmcCont->upLinkSlaves[l]->upBufferDest = hmcCont;
		hmcCont->upLinkSlaves[l]->localLinkMaster = hmcCont->downLinkMasters[l];
	}

	//Check CPU clock cycle and link speed
	if(CPU_CLK_PERIOD < linkPeriod) {	//Check CPU clock cycle and link speed
		ERROR(" == Error - WRONG CPU clock cycle or link speed (CPU_CLK_PERIOD should be bigger than (1/LINK_SPEED))");
		ERROR(" == Error - CPU_CLK_PERIOD : "<<CPU_CLK_PERIOD<<"  1/LINK_SPEED : "<<linkPeriod);
		exit(0);
	}
	
	//
	// Log files generation
	//
	int status_rst = 1;
	int status_grp = 1;
	status_rst = mkdir("result", S_IRWXU | S_IRWXG | S_IROTH | S_IWOTH | S_IXOTH);
	status_grp = mkdir("graph", S_IRWXU | S_IRWXG | S_IROTH | S_IWOTH | S_IXOTH);
	
	time_t now;
    struct tm t;
    time(&now);
    t = *localtime(&now);
	
	cout<<endl<<"****************************************************************"<<endl;
	cout<<"*                      CasHMC version 1.3                      *"<<endl;
	cout<<"*            Date : "<<t.tm_year + 1900<<"/"<<setw(2)<<setfill('0')<<t.tm_mon+1<<"/"<<setw(2)<<setfill('0')<<t.tm_mday
			<<"      Time : "<<setw(2)<<setfill('0')<<t.tm_hour<<":"<<setw(2)<<setfill('0')<<t.tm_min<<":"<<setw(2)<<setfill('0')<<t.tm_sec
			<<"            *"<<endl;
#ifndef DEBUG_LOG		
	cout<<"*                                                              *"<<endl;
	cout<<"*  Module abbreviation info.                                   *"<<endl;
	cout<<"*  [HC]   : HMC Controller                                     *"<<endl;
	cout<<"*  [LM_U/Di] : ith Up/Downstream Link Master                   *"<<endl;
	cout<<"*  [LK_U/Di] : ith Up/Downstream Link                          *"<<endl;
	cout<<"*  [LS_U/Di] : ith Up/Downstream Link Slave                    *"<<endl;
	cout<<"*  [CS]   : Crossbar Switch                                    *"<<endl;
	cout<<"*  [VC_j] : jth Vault Controller                               *"<<endl;
	cout<<"*  [CQ_k] : k-bank Command Queue                               *"<<endl;
	cout<<"*  [DR_j] : jth DRAM                                           *"<<endl;
#endif		
	cout<<"****************************************************************"<<endl<<endl;
	cout.setf(ios::left); 
	cout<<" = Log folder generating information"<<endl;
	if(status_rst == 0) {
		cout<<"   Making result folder success (./result/)"<<endl;
	}
	else {
		if(errno == EEXIST) {
			cout<<"   Result folder already exists (./result/)"<<endl;
			status_rst = 0;
		}
		else {
			cout<<"   Making result folder fail"<<endl;
			cout<<"   Debug and result files will be generated in CasHMC folder (./)"<<endl<<endl;
		}
	}
	if(status_grp == 0) {
		cout<<"   Making graph folder success (./graph/)"<<endl;
	}
	else {
		if(errno == EEXIST) {
			cout<<"   Graph folder already exists (./graph/)"<<endl;
			status_grp = 0;
		}
		else {
			cout<<"   Making graph folder fail"<<endl;
			cout<<"   graph files will be generated in CasHMC folder (./)"<<endl<<endl;
		}
	}
	
	if(status_rst == 0)
		logName = "result/CasHMC";
	else
		logName = "CasHMC";
	
	string plotName;
	if(status_grp == 0)
		plotName = "graph/CasHMC_plot_no";
	else
		plotName = "CasHMC_plot_no";

	unsigned int ver_num = 0;
	stringstream temp_vn;
	while(1) { 
		logName += "_no";
		temp_vn << ver_num;
		logName += temp_vn.str();
		logName += "_setting.log";
		
		if(access(logName.c_str(), 0) == -1)	break;
		else {
			logName.erase(logName.find("_no"));
			temp_vn.str( string() );
			temp_vn.clear();
			ver_num++;
		}
	}
	cout.setf(ios::left);
	cout<<endl<<"   === Simulation start === "<<endl;
	
	if(BANDWIDTH_PLOT) {
		hmcTransmitSizeTemp = 0;
		downLinkDataSizeTemp = vector<uint64_t>(NUM_LINKS, 0);
		upLinkDataSizeTemp = vector<uint64_t>(NUM_LINKS, 0);
		
		//Plot data file initialization
		plotName += temp_vn.str();
		plotName += ".dat";
		plotDataOut.open(plotName.c_str());
		plotDataOut.setf(ios::left);
		cout<<"  [ "<<plotName<<" ] is generated"<<endl;
		
		plotDataOut<<setw(8)<<setfill(' ')<<"#Epoch";
		for(int i=0; i<NUM_LINKS; i++) {
			stringstream linkNum;
			linkNum << i;
			string plotLink = "Link[" + linkNum.str() + ']';
			plotDataOut<<setw(10)<<setfill(' ')<<plotLink;
		}
		plotDataOut<<setw(10)<<setfill(' ')<<"HMC bandwidth"<<endl;
		
		//Plot script file initialization
		plotName.erase(plotName.find(".dat"));
		plotName += ".gnuplot";
		plotScriptOut.open(plotName.c_str());
		cout<<"  [ "<<plotName<<" ] is generated"<<endl;
		
		plotName = "CasHMC_plot_no";
		plotName += temp_vn.str();
		plotName += ".png";
		
		plotScriptOut<<"set term png size 800, 500 font \"Times-Roman,\""<<endl;
		plotScriptOut<<"set output '"<<plotName<<"'"<<endl;
		plotScriptOut<<"set title \"CasHMC bandwidth graph\" font \",18\""<<endl;
		plotScriptOut<<"set autoscale"<<endl;
		plotScriptOut<<"set grid"<<endl;
		plotScriptOut<<"set xlabel \"Simulation plot epoch\""<<endl;
		plotScriptOut<<"set ylabel \"Bandwidth [GB/s]\""<<endl;
		plotScriptOut<<"set key left box"<<endl;
		plotScriptOut<<"plot  \"CasHMC_plot_no"<<ver_num<<".dat\" using 1:"<<NUM_LINKS+2<<" title 'HMC' with lines lw 2 , \\"<<endl;
		for(int i=0; i<NUM_LINKS; i++) {
			plotScriptOut<<"      \"CasHMC_plot_no"<<ver_num<<".dat\" using 1:"<<i+2<<" title 'Link["<<i<<"]' with lines lw 1 , \\"<<endl;
		}
	}
	
	settingOut.open(logName.c_str());
	PrintSetting(t);
	cout<<"  [ "<<logName<<" ] is generated"<<endl;
	
	logName.erase(logName.find("_s"));
	logNum = 0;
	PrintEpochHeader();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb50, %rsp            # imm = 0xB50
movq %rsi, -0x608(%rbp)
movq %rdx, -0x600(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x16050
movq -0x5d0(%rbp), %rdi
leaq 0x5e44d(%rip), %rax     # 0x65910
movq %rax, (%rdi)
addq $0x338, %rdi            # imm = 0x338
movq %rdi, -0x5f8(%rbp)
callq 0x172a0
movq -0x5d0(%rbp), %rdi
addq $0x350, %rdi            # imm = 0x350
movq %rdi, -0x5f0(%rbp)
callq 0x172a0
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
movq %rdi, -0x5e8(%rbp)
callq 0x44f0
movq -0x5d0(%rbp), %rdi
addq $0x3e8, %rdi            # imm = 0x3E8
movq %rdi, -0x5e0(%rbp)
callq 0x172c0
movq -0x5d0(%rbp), %rdi
addq $0x400, %rdi            # imm = 0x400
movq %rdi, -0x5d8(%rbp)
callq 0x172c0
movq -0x5d0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
movq %rdi, -0x5c8(%rbp)
callq 0x4600
jmp 0x755d
movq -0x5d0(%rbp), %rdi
addq $0x618, %rdi            # imm = 0x618
movq %rdi, -0x610(%rbp)
callq 0x4600
jmp 0x7579
movq -0x5d0(%rbp), %rdi
addq $0x818, %rdi            # imm = 0x818
movq %rdi, -0x618(%rbp)
callq 0x4600
jmp 0x7595
movq -0x5d0(%rbp), %rdi
addq $0xa18, %rdi            # imm = 0xA18
movq %rdi, -0x620(%rbp)
callq 0x4600
jmp 0x75b1
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
movq %rdi, -0x628(%rbp)
callq 0x4600
jmp 0x75cd
movq -0x5d0(%rbp), %rdi
addq $0xe18, %rdi            # imm = 0xE18
movq %rdi, -0x630(%rbp)
callq 0x4600
jmp 0x75e9
movq -0x608(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x4190
jmp 0x75fb
leaq -0x48(%rbp), %rdi
callq 0x26220
jmp 0x7606
leaq -0x48(%rbp), %rdi
callq 0x46e8
movq -0x600(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x4190
jmp 0x7621
leaq -0x68(%rbp), %rdi
callq 0x26220
jmp 0x762c
leaq -0x68(%rbp), %rdi
callq 0x46e8
movq -0x5d0(%rbp), %rdi
callq 0x172e0
jmp 0x7643
movq -0x5d0(%rbp), %rdi
movq $0x0, 0x370(%rdi)
movq $0x1, 0x378(%rdi)
movq $0x1, 0x380(%rdi)
movq $0x1, 0x388(%rdi)
movq $0x1, 0x390(%rdi)
movq $0x1, 0x398(%rdi)
leaq 0x5eebd(%rip), %rax     # 0x66550
movsd (%rax), %xmm1
movsd 0x49a11(%rip), %xmm0    # 0x510b0
divsd %xmm1, %xmm0
movsd %xmm0, 0x3a0(%rdi)
addq $0x338, %rdi            # imm = 0x338
leaq 0x5ee8f(%rip), %rax     # 0x66548
movslq (%rax), %rsi
callq 0x17620
jmp 0x76c3
movq -0x5d0(%rbp), %rdi
addq $0x350, %rdi            # imm = 0x350
leaq 0x5ee70(%rip), %rax     # 0x66548
movslq (%rax), %rsi
callq 0x17620
jmp 0x76e2
movl $0x0, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
leaq 0x5ee55(%rip), %rcx     # 0x66548
cmpl (%rcx), %eax
jge 0x78e3
movq -0x5d0(%rbp), %rax
addq $0x338, %rax            # imm = 0x338
movq %rax, -0x640(%rbp)
movl $0x200, %edi            # imm = 0x200
callq 0x4390
movq %rax, -0x638(%rbp)
jmp 0x7722
movq -0x5d0(%rbp), %r9
movq -0x638(%rbp), %rdi
movq %r9, %rsi
addq $0x618, %rsi            # imm = 0x618
movq %r9, %rdx
addq $0x818, %rdx            # imm = 0x818
movl -0x6c(%rbp), %ecx
movl $0x1, %r8d
callq 0x3b190
jmp 0x7754
movq -0x640(%rbp), %rdi
movq -0x638(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq -0x78(%rbp), %rsi
callq 0x17720
jmp 0x7771
movq -0x5d0(%rbp), %rax
addq $0x350, %rax            # imm = 0x350
movq %rax, -0x650(%rbp)
movl $0x200, %edi            # imm = 0x200
callq 0x4390
movq %rax, -0x648(%rbp)
jmp 0x7798
movq -0x5d0(%rbp), %r9
movq -0x648(%rbp), %rdi
movq %r9, %rsi
addq $0x618, %rsi            # imm = 0x618
movq %r9, %rdx
addq $0x818, %rdx            # imm = 0x818
movl -0x6c(%rbp), %ecx
xorl %r8d, %r8d
callq 0x3b190
jmp 0x77c7
movq -0x650(%rbp), %rdi
movq -0x648(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq -0x80(%rbp), %rsi
callq 0x17720
jmp 0x77e4
jmp 0x77e6
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0x76e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x9993
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x9987
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x997b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x996f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x9963
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x9957
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x994b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x46e8
jmp 0x994b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x46e8
jmp 0x994b
movq -0x638(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0x43a0
jmp 0x994b
movq -0x648(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0x43a0
jmp 0x994b
movl $0x360, %edi            # imm = 0x360
callq 0x4390
movq %rax, -0x658(%rbp)
jmp 0x78f6
movq -0x658(%rbp), %rdi
movq -0x5d0(%rbp), %rdx
movq %rdx, %rsi
addq $0x618, %rsi            # imm = 0x618
addq $0x818, %rdx            # imm = 0x818
callq 0x35260
jmp 0x791c
movq -0x5d0(%rbp), %rax
movq -0x658(%rbp), %rcx
movq %rcx, 0x330(%rax)
movl $0x238, %edi            # imm = 0x238
callq 0x4390
movq %rax, -0x660(%rbp)
jmp 0x7944
movq -0x660(%rbp), %rdi
movq -0x5d0(%rbp), %rdx
movq %rdx, %rsi
addq $0x618, %rsi            # imm = 0x618
addq $0x818, %rdx            # imm = 0x818
callq 0x31a90
jmp 0x796a
movq -0x5d0(%rbp), %rax
movq -0x660(%rbp), %rcx
movq %rcx, 0x368(%rax)
movl $0x0, -0x84(%rbp)
movl -0x84(%rbp), %eax
leaq 0x5ebb2(%rip), %rcx     # 0x66548
cmpl (%rcx), %eax
jge 0x7e88
movq -0x5d0(%rbp), %rdi
addq $0x338, %rdi            # imm = 0x338
movslq -0x84(%rbp), %rsi
callq 0x17750
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x6c8(%rbp)
movq 0x330(%rax), %rdi
addq $0x208, %rdi            # imm = 0x208
movslq -0x84(%rbp), %rsi
callq 0x17770
movq -0x6c8(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x210(%rcx)
movq 0x330(%rax), %rdi
addq $0x220, %rdi            # imm = 0x220
movslq -0x84(%rbp), %rsi
callq 0x17790
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x6c0(%rbp)
movq 0x330(%rax), %rdi
addq $0x208, %rdi            # imm = 0x208
movslq -0x84(%rbp), %rsi
callq 0x17770
movq -0x6c0(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x218(%rcx)
movq 0x330(%rax), %rdi
addq $0x208, %rdi            # imm = 0x208
movslq -0x84(%rbp), %rsi
callq 0x17770
movq -0x5d0(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x6b8(%rbp)
addq $0x338, %rdi            # imm = 0x338
movslq -0x84(%rbp), %rsi
callq 0x17750
movq -0x6b8(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x1d8(%rcx)
movq 0x368(%rax), %rdi
addq $0x1d0, %rdi            # imm = 0x1D0
movslq -0x84(%rbp), %rsi
callq 0x17790
movq -0x5d0(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x6b0(%rbp)
addq $0x338, %rdi            # imm = 0x338
movslq -0x84(%rbp), %rsi
callq 0x17750
movq -0x6b0(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x1e8(%rcx)
movq 0x368(%rax), %rcx
movq 0x200(%rcx), %rcx
movq %rcx, -0x6a8(%rbp)
movq 0x368(%rax), %rdi
addq $0x1d0, %rdi            # imm = 0x1D0
movslq -0x84(%rbp), %rsi
callq 0x17790
movq -0x6a8(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x208(%rcx)
movq 0x368(%rax), %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
movslq -0x84(%rbp), %rsi
callq 0x17770
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x6a0(%rbp)
movq 0x368(%rax), %rdi
addq $0x1d0, %rdi            # imm = 0x1D0
movslq -0x84(%rbp), %rsi
callq 0x17790
movq -0x6a0(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x218(%rcx)
movq 0x368(%rax), %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
movslq -0x84(%rbp), %rsi
callq 0x17770
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x698(%rbp)
movq 0x368(%rax), %rax
movq 0x200(%rax), %rdi
addq $0x220, %rdi            # imm = 0x220
movslq -0x84(%rbp), %rsi
callq 0x17770
movq -0x698(%rbp), %rcx
movq -0x5d0(%rbp), %rdi
movq %rcx, (%rax)
addq $0x350, %rdi            # imm = 0x350
movslq -0x84(%rbp), %rsi
callq 0x17750
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x690(%rbp)
movq 0x368(%rax), %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
movslq -0x84(%rbp), %rsi
callq 0x17770
movq -0x690(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x210(%rcx)
movq 0x368(%rax), %rdi
addq $0x1d0, %rdi            # imm = 0x1D0
movslq -0x84(%rbp), %rsi
callq 0x17790
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x688(%rbp)
movq 0x368(%rax), %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
movslq -0x84(%rbp), %rsi
callq 0x17770
movq -0x688(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x218(%rcx)
movq 0x368(%rax), %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
movslq -0x84(%rbp), %rsi
callq 0x17770
movq -0x5d0(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x680(%rbp)
addq $0x350, %rdi            # imm = 0x350
movslq -0x84(%rbp), %rsi
callq 0x17750
movq -0x680(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x1d8(%rcx)
movq 0x330(%rax), %rdi
addq $0x220, %rdi            # imm = 0x220
movslq -0x84(%rbp), %rsi
callq 0x17790
movq -0x5d0(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x678(%rbp)
addq $0x350, %rdi            # imm = 0x350
movslq -0x84(%rbp), %rsi
callq 0x17750
movq -0x678(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x1e8(%rcx)
movq 0x330(%rax), %rcx
movq %rcx, -0x670(%rbp)
movq 0x330(%rax), %rdi
addq $0x220, %rdi            # imm = 0x220
movslq -0x84(%rbp), %rsi
callq 0x17790
movq -0x670(%rbp), %rdx
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rdx, 0x210(%rcx)
movq 0x330(%rax), %rdi
addq $0x208, %rdi            # imm = 0x208
movslq -0x84(%rbp), %rsi
callq 0x17770
movq %rax, %rcx
movq -0x5d0(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x668(%rbp)
movq 0x330(%rax), %rdi
addq $0x220, %rdi            # imm = 0x220
movslq -0x84(%rbp), %rsi
callq 0x17790
movq -0x668(%rbp), %rcx
movq (%rax), %rax
movq %rcx, 0x218(%rax)
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x84(%rbp)
jmp 0x7989
movq -0x658(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x360, %esi            # imm = 0x360
callq 0x43a0
jmp 0x994b
movq -0x660(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x238, %esi            # imm = 0x238
callq 0x43a0
jmp 0x994b
movq -0x5d0(%rbp), %rax
leaq 0x5e6a2(%rip), %rcx     # 0x66538
movsd (%rcx), %xmm1
movsd 0x3a0(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8089
movq 0x5e13d(%rip), %rdi     # 0x65ff0
leaq 0x49180(%rip), %rsi     # 0x5103a
callq 0x4380
movq %rax, -0x6d0(%rbp)
jmp 0x7ec8
movq -0x6d0(%rbp), %rdi
leaq 0x4926e(%rip), %rsi     # 0x51144
callq 0x4380
movq %rax, -0x6d8(%rbp)
jmp 0x7ee4
movq -0x6d8(%rbp), %rdi
leaq 0x49943(%rip), %rsi     # 0x51835
callq 0x4380
movq %rax, -0x6e0(%rbp)
jmp 0x7f00
movq -0x6e0(%rbp), %rdi
movl $0x4a, %esi
callq 0x4610
movq %rax, -0x6e8(%rbp)
jmp 0x7f1a
movq -0x6e8(%rbp), %rdi
leaq 0x49131(%rip), %rsi     # 0x51059
callq 0x4380
movq %rax, -0x6f0(%rbp)
jmp 0x7f36
movq -0x6f0(%rbp), %rdi
leaq 0x4921a(%rip), %rsi     # 0x5115e
callq 0x4380
movq %rax, -0x6f8(%rbp)
jmp 0x7f52
movq -0x6f8(%rbp), %rdi
movq 0x5e050(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x7f67
movq 0x5e082(%rip), %rdi     # 0x65ff0
leaq 0x490c5(%rip), %rsi     # 0x5103a
callq 0x4380
movq %rax, -0x700(%rbp)
jmp 0x7f83
movq -0x700(%rbp), %rdi
leaq 0x491b3(%rip), %rsi     # 0x51144
callq 0x4380
movq %rax, -0x708(%rbp)
jmp 0x7f9f
movq -0x708(%rbp), %rdi
leaq 0x49888(%rip), %rsi     # 0x51835
callq 0x4380
movq %rax, -0x710(%rbp)
jmp 0x7fbb
movq -0x710(%rbp), %rdi
movl $0x4b, %esi
callq 0x4610
movq %rax, -0x718(%rbp)
jmp 0x7fd5
movq -0x718(%rbp), %rdi
leaq 0x49076(%rip), %rsi     # 0x51059
callq 0x4380
movq %rax, -0x720(%rbp)
jmp 0x7ff1
movq -0x720(%rbp), %rdi
leaq 0x491c5(%rip), %rsi     # 0x511c4
callq 0x4380
movq %rax, -0x728(%rbp)
jmp 0x800d
movq -0x728(%rbp), %rdi
leaq 0x5e51d(%rip), %rax     # 0x66538
movsd (%rax), %xmm0
callq 0x4690
movq %rax, -0x730(%rbp)
jmp 0x802d
movq -0x730(%rbp), %rdi
leaq 0x491a7(%rip), %rsi     # 0x511e2
callq 0x4380
movq %rax, -0x738(%rbp)
jmp 0x8049
movq -0x738(%rbp), %rdi
movq -0x5d0(%rbp), %rax
movsd 0x3a0(%rax), %xmm0
callq 0x4690
movq %rax, -0x740(%rbp)
jmp 0x806d
movq -0x740(%rbp), %rdi
movq 0x5df35(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8082
xorl %edi, %edi
callq 0x4460
movl $0x1, -0x88(%rbp)
movl $0x1, -0x8c(%rbp)
leaq 0x49150(%rip), %rdi     # 0x511f4
movl $0x1ff, %esi            # imm = 0x1FF
movl %esi, -0x754(%rbp)
callq 0x41b0
movl -0x754(%rbp), %esi
movl %eax, -0x88(%rbp)
leaq 0x49134(%rip), %rdi     # 0x511fb
callq 0x41b0
movl %eax, -0x8c(%rbp)
leaq -0x98(%rbp), %rdi
movq %rdi, -0x750(%rbp)
callq 0x4330
movq -0x750(%rbp), %rdi
callq 0x4290
movq 0x30(%rax), %rcx
movq %rcx, -0xa0(%rbp)
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups 0x20(%rax), %xmm2
movaps %xmm2, -0xb0(%rbp)
movaps %xmm1, -0xc0(%rbp)
movaps %xmm0, -0xd0(%rbp)
movq 0x5dead(%rip), %rdi     # 0x65fd0
movq 0x5de86(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, -0x748(%rbp)
jmp 0x8138
movq -0x748(%rbp), %rdi
leaq 0x490bb(%rip), %rsi     # 0x51201
callq 0x4380
movq %rax, -0x760(%rbp)
jmp 0x8154
movq -0x760(%rbp), %rdi
movq 0x5de4e(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8169
movq 0x5de60(%rip), %rdi     # 0x65fd0
leaq 0x490cb(%rip), %rsi     # 0x51242
callq 0x4380
movq %rax, -0x768(%rbp)
jmp 0x8185
movq -0x768(%rbp), %rdi
movq 0x5de1d(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x819a
movq 0x5de2f(%rip), %rdi     # 0x65fd0
leaq 0x490db(%rip), %rsi     # 0x51283
callq 0x4380
movq %rax, -0x770(%rbp)
jmp 0x81b6
movq -0x770(%rbp), %rdi
movl -0xbc(%rbp), %esi
addl $0x76c, %esi            # imm = 0x76C
callq 0x4610
movq %rax, -0x778(%rbp)
jmp 0x81d7
movq -0x778(%rbp), %rdi
leaq 0x490b3(%rip), %rsi     # 0x51298
callq 0x4380
movq %rax, -0x780(%rbp)
jmp 0x81f3
movl $0x2, %edi
callq 0x177b0
movl %eax, -0x784(%rbp)
jmp 0x8205
movq -0x780(%rbp), %rdi
movl -0x784(%rbp), %eax
movl %eax, -0xd4(%rbp)
movl -0xd4(%rbp), %esi
callq 0x4440
movq %rax, -0x790(%rbp)
jmp 0x822c
movl $0x30, %edi
callq 0x177d0
movb %al, -0x791(%rbp)
jmp 0x823e
movq -0x790(%rbp), %rdi
movb -0x791(%rbp), %al
movb %al, -0xd5(%rbp)
movzbl -0xd5(%rbp), %esi
callq 0x4550
movq %rax, -0x7a0(%rbp)
jmp 0x8266
movq -0x7a0(%rbp), %rdi
movl -0xc0(%rbp), %esi
incl %esi
callq 0x4610
movq %rax, -0x7a8(%rbp)
jmp 0x8283
movq -0x7a8(%rbp), %rdi
leaq 0x49007(%rip), %rsi     # 0x51298
callq 0x4380
movq %rax, -0x7b0(%rbp)
jmp 0x829f
movl $0x2, %edi
callq 0x177b0
movl %eax, -0x7b4(%rbp)
jmp 0x82b1
movq -0x7b0(%rbp), %rdi
movl -0x7b4(%rbp), %eax
movl %eax, -0xdc(%rbp)
movl -0xdc(%rbp), %esi
callq 0x4440
movq %rax, -0x7c0(%rbp)
jmp 0x82d8
movl $0x30, %edi
callq 0x177d0
movb %al, -0x7c1(%rbp)
jmp 0x82ea
movq -0x7c0(%rbp), %rdi
movb -0x7c1(%rbp), %al
movb %al, -0xdd(%rbp)
movzbl -0xdd(%rbp), %esi
callq 0x4550
movq %rax, -0x7d0(%rbp)
jmp 0x8312
movq -0x7d0(%rbp), %rdi
movl -0xc4(%rbp), %esi
callq 0x4610
movq %rax, -0x7d8(%rbp)
jmp 0x832d
movq -0x7d8(%rbp), %rdi
leaq 0x48f5f(%rip), %rsi     # 0x5129a
callq 0x4380
movq %rax, -0x7e0(%rbp)
jmp 0x8349
movl $0x2, %edi
callq 0x177b0
movl %eax, -0x7e4(%rbp)
jmp 0x835b
movq -0x7e0(%rbp), %rdi
movl -0x7e4(%rbp), %eax
movl %eax, -0xe4(%rbp)
movl -0xe4(%rbp), %esi
callq 0x4440
movq %rax, -0x7f0(%rbp)
jmp 0x8382
movl $0x30, %edi
callq 0x177d0
movb %al, -0x7f1(%rbp)
jmp 0x8394
movq -0x7f0(%rbp), %rdi
movb -0x7f1(%rbp), %al
movb %al, -0xe5(%rbp)
movzbl -0xe5(%rbp), %esi
callq 0x4550
movq %rax, -0x800(%rbp)
jmp 0x83bc
movq -0x800(%rbp), %rdi
movl -0xc8(%rbp), %esi
callq 0x4610
movq %rax, -0x808(%rbp)
jmp 0x83d7
movq -0x808(%rbp), %rdi
leaq 0x49450(%rip), %rsi     # 0x51835
callq 0x4380
movq %rax, -0x810(%rbp)
jmp 0x83f3
movl $0x2, %edi
callq 0x177b0
movl %eax, -0x814(%rbp)
jmp 0x8405
movq -0x810(%rbp), %rdi
movl -0x814(%rbp), %eax
movl %eax, -0xec(%rbp)
movl -0xec(%rbp), %esi
callq 0x4440
movq %rax, -0x820(%rbp)
jmp 0x842c
movl $0x30, %edi
callq 0x177d0
movb %al, -0x821(%rbp)
jmp 0x843e
movq -0x820(%rbp), %rdi
movb -0x821(%rbp), %al
movb %al, -0xed(%rbp)
movzbl -0xed(%rbp), %esi
callq 0x4550
movq %rax, -0x830(%rbp)
jmp 0x8466
movq -0x830(%rbp), %rdi
movl -0xcc(%rbp), %esi
callq 0x4610
movq %rax, -0x838(%rbp)
jmp 0x8481
movq -0x838(%rbp), %rdi
leaq 0x493a6(%rip), %rsi     # 0x51835
callq 0x4380
movq %rax, -0x840(%rbp)
jmp 0x849d
movl $0x2, %edi
callq 0x177b0
movl %eax, -0x844(%rbp)
jmp 0x84af
movq -0x840(%rbp), %rdi
movl -0x844(%rbp), %eax
movl %eax, -0xf4(%rbp)
movl -0xf4(%rbp), %esi
callq 0x4440
movq %rax, -0x850(%rbp)
jmp 0x84d6
movl $0x30, %edi
callq 0x177d0
movb %al, -0x851(%rbp)
jmp 0x84e8
movq -0x850(%rbp), %rdi
movb -0x851(%rbp), %al
movb %al, -0xf5(%rbp)
movzbl -0xf5(%rbp), %esi
callq 0x4550
movq %rax, -0x860(%rbp)
jmp 0x8510
movq -0x860(%rbp), %rdi
movl -0xd0(%rbp), %esi
callq 0x4610
movq %rax, -0x868(%rbp)
jmp 0x852b
movq -0x868(%rbp), %rdi
leaq 0x48da2(%rip), %rsi     # 0x512db
callq 0x4380
movq %rax, -0x870(%rbp)
jmp 0x8547
movq -0x870(%rbp), %rdi
movq 0x5da5b(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x855c
movq 0x5da6d(%rip), %rdi     # 0x65fd0
leaq 0x48d3e(%rip), %rsi     # 0x512a8
callq 0x4380
movq %rax, -0x878(%rbp)
jmp 0x8578
movq -0x878(%rbp), %rdi
movq 0x5da2a(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x858d
movq 0x5da3c(%rip), %rdi     # 0x65fd0
leaq 0x48d4e(%rip), %rsi     # 0x512e9
callq 0x4380
movq %rax, -0x880(%rbp)
jmp 0x85a9
movq -0x880(%rbp), %rdi
movq 0x5d9f9(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x85be
movq 0x5da0b(%rip), %rdi     # 0x65fd0
leaq 0x48d5e(%rip), %rsi     # 0x5132a
callq 0x4380
movq %rax, -0x888(%rbp)
jmp 0x85da
movq -0x888(%rbp), %rdi
movq 0x5d9c8(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x85ef
movq 0x5d9da(%rip), %rdi     # 0x65fd0
leaq 0x48d6e(%rip), %rsi     # 0x5136b
callq 0x4380
movq %rax, -0x890(%rbp)
jmp 0x860b
movq -0x890(%rbp), %rdi
movq 0x5d997(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8620
movq 0x5d9a9(%rip), %rdi     # 0x65fd0
leaq 0x48d7e(%rip), %rsi     # 0x513ac
callq 0x4380
movq %rax, -0x898(%rbp)
jmp 0x863c
movq -0x898(%rbp), %rdi
movq 0x5d966(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8651
movq 0x5d978(%rip), %rdi     # 0x65fd0
leaq 0x48d8e(%rip), %rsi     # 0x513ed
callq 0x4380
movq %rax, -0x8a0(%rbp)
jmp 0x866d
movq -0x8a0(%rbp), %rdi
movq 0x5d935(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8682
movq 0x5d947(%rip), %rdi     # 0x65fd0
leaq 0x48d9e(%rip), %rsi     # 0x5142e
callq 0x4380
movq %rax, -0x8a8(%rbp)
jmp 0x869e
movq -0x8a8(%rbp), %rdi
movq 0x5d904(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x86b3
movq 0x5d916(%rip), %rdi     # 0x65fd0
leaq 0x48dae(%rip), %rsi     # 0x5146f
callq 0x4380
movq %rax, -0x8b0(%rbp)
jmp 0x86cf
movq -0x8b0(%rbp), %rdi
movq 0x5d8d3(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x86e4
movq 0x5d8e5(%rip), %rdi     # 0x65fd0
leaq 0x48dbe(%rip), %rsi     # 0x514b0
callq 0x4380
movq %rax, -0x8b8(%rbp)
jmp 0x8700
movq -0x8b8(%rbp), %rdi
movq 0x5d8a2(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8715
movq 0x5d8b4(%rip), %rdi     # 0x65fd0
leaq 0x48dce(%rip), %rsi     # 0x514f1
callq 0x4380
movq %rax, -0x8c0(%rbp)
jmp 0x8731
movq -0x8c0(%rbp), %rdi
movq 0x5d871(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8746
movq 0x5d883(%rip), %rdi     # 0x65fd0
leaq 0x48aad(%rip), %rsi     # 0x51201
callq 0x4380
movq %rax, -0x8c8(%rbp)
jmp 0x8762
movq -0x8c8(%rbp), %rdi
movq 0x5d840(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, -0x8d0(%rbp)
jmp 0x877e
movq -0x8d0(%rbp), %rdi
movq 0x5d824(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8793
movq 0x5d836(%rip), %rdi     # 0x65fd0
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x20, %esi
callq 0x177f0
jmp 0x87b0
movq 0x5d819(%rip), %rdi     # 0x65fd0
leaq 0x48d74(%rip), %rsi     # 0x51532
callq 0x4380
movq %rax, -0x8d8(%rbp)
jmp 0x87cc
movq -0x8d8(%rbp), %rdi
movq 0x5d7d6(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x87e1
cmpl $0x0, -0x88(%rbp)
jne 0x8820
movq 0x5d7df(%rip), %rdi     # 0x65fd0
leaq 0x48d5f(%rip), %rsi     # 0x51557
callq 0x4380
movq %rax, -0x8e0(%rbp)
jmp 0x8806
movq -0x8e0(%rbp), %rdi
movq 0x5d79c(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x881b
jmp 0x88ec
callq 0x4060
cmpl $0x11, (%rax)
jne 0x886a
movq 0x5d79f(%rip), %rdi     # 0x65fd0
leaq 0x48d4b(%rip), %rsi     # 0x51583
callq 0x4380
movq %rax, -0x8e8(%rbp)
jmp 0x8846
movq -0x8e8(%rbp), %rdi
movq 0x5d75c(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x885b
movl $0x0, -0x88(%rbp)
jmp 0x88ea
movq 0x5d75f(%rip), %rdi     # 0x65fd0
leaq 0x48d37(%rip), %rsi     # 0x515af
callq 0x4380
movq %rax, -0x8f0(%rbp)
jmp 0x8886
movq -0x8f0(%rbp), %rdi
movq 0x5d71c(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x889b
movq 0x5d72e(%rip), %rdi     # 0x65fd0
leaq 0x48d23(%rip), %rsi     # 0x515cc
callq 0x4380
movq %rax, -0x8f8(%rbp)
jmp 0x88b7
movq -0x8f8(%rbp), %rdi
movq 0x5d6eb(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, -0x900(%rbp)
jmp 0x88d3
movq -0x900(%rbp), %rdi
movq 0x5d6cf(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x88e8
jmp 0x88ea
jmp 0x88ec
cmpl $0x0, -0x8c(%rbp)
jne 0x892b
movq 0x5d6d4(%rip), %rdi     # 0x65fd0
leaq 0x48d0b(%rip), %rsi     # 0x5160e
callq 0x4380
movq %rax, -0x908(%rbp)
jmp 0x8911
movq -0x908(%rbp), %rdi
movq 0x5d691(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8926
jmp 0x89f7
callq 0x4060
cmpl $0x11, (%rax)
jne 0x8975
movq 0x5d694(%rip), %rdi     # 0x65fd0
leaq 0x48cf5(%rip), %rsi     # 0x51638
callq 0x4380
movq %rax, -0x910(%rbp)
jmp 0x8951
movq -0x910(%rbp), %rdi
movq 0x5d651(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8966
movl $0x0, -0x8c(%rbp)
jmp 0x89f5
movq 0x5d654(%rip), %rdi     # 0x65fd0
leaq 0x48cdf(%rip), %rsi     # 0x51662
callq 0x4380
movq %rax, -0x918(%rbp)
jmp 0x8991
movq -0x918(%rbp), %rdi
movq 0x5d611(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x89a6
movq 0x5d623(%rip), %rdi     # 0x65fd0
leaq 0x48cca(%rip), %rsi     # 0x5167e
callq 0x4380
movq %rax, -0x920(%rbp)
jmp 0x89c2
movq -0x920(%rbp), %rdi
movq 0x5d5e0(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, -0x928(%rbp)
jmp 0x89de
movq -0x928(%rbp), %rdi
movq 0x5d5c4(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x89f3
jmp 0x89f5
jmp 0x89f7
cmpl $0x0, -0x88(%rbp)
jne 0x8a1e
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
leaq 0x48ca0(%rip), %rsi     # 0x516b5
callq 0x44e0
jmp 0x8a1c
jmp 0x8a3c
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
leaq 0x48c89(%rip), %rsi     # 0x516bc
callq 0x44e0
jmp 0x8a3a
jmp 0x8a3c
leaq -0x118(%rbp), %rdi
callq 0x44f0
cmpl $0x0, -0x8c(%rbp)
jne 0x8a79
leaq 0x48c6b(%rip), %rsi     # 0x516c3
leaq -0x118(%rbp), %rdi
callq 0x44e0
jmp 0x8a66
jmp 0x8a90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x993f
leaq 0x48ddf(%rip), %rsi     # 0x5185f
leaq -0x118(%rbp), %rdi
callq 0x44e0
jmp 0x8a8e
jmp 0x8a90
movl $0x0, -0x11c(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x4270
jmp 0x8aa8
jmp 0x8aaa
jmp 0x8aac
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
leaq 0x48da9(%rip), %rsi     # 0x5186a
callq 0x4350
jmp 0x8ac8
leaq -0x298(%rbp), %rdi
movl -0x11c(%rbp), %esi
callq 0x44c0
jmp 0x8adc
leaq -0x2c8(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x4370
jmp 0x8af1
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
leaq -0x2c8(%rbp), %rsi
callq 0x44a0
jmp 0x8b0d
leaq -0x2c8(%rbp), %rdi
callq 0x46e8
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
leaq 0x48baa(%rip), %rsi     # 0x516d8
callq 0x4350
jmp 0x8b35
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
callq 0x4180
movq %rax, %rdi
xorl %esi, %esi
callq 0x45b0
cmpl $-0x1, %eax
jne 0x8b8a
jmp 0x8c4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x9933
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x46e8
jmp 0x9933
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
movq %rdi, -0x930(%rbp)
leaq 0x48cc4(%rip), %rsi     # 0x5186a
xorl %eax, %eax
movl %eax, %edx
callq 0x46d0
movq -0x930(%rbp), %rdi
movq %rax, %rsi
movq $-0x1, %rdx
callq 0x40e0
jmp 0x8bc7
leaq -0x2e8(%rbp), %rdi
movq %rdi, -0x938(%rbp)
callq 0x44f0
movq -0x938(%rbp), %rsi
leaq -0x2a8(%rbp), %rdi
callq 0x4430
jmp 0x8bef
leaq -0x2e8(%rbp), %rdi
callq 0x46e8
movq -0x2a8(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x2a8(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0x45e0
jmp 0x8c17
movl -0x11c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x11c(%rbp)
jmp 0x8c45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x46e8
jmp 0x9933
jmp 0x8aaa
movq 0x5d37f(%rip), %rdi     # 0x65fd0
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0x20, %esi
callq 0x177f0
jmp 0x8c67
movq 0x5d362(%rip), %rdi     # 0x65fd0
movq 0x5d33b(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, -0x940(%rbp)
jmp 0x8c83
movq -0x940(%rbp), %rdi
leaq 0x48a54(%rip), %rsi     # 0x516e5
callq 0x4380
movq %rax, -0x948(%rbp)
jmp 0x8c9f
movq -0x948(%rbp), %rdi
movq 0x5d303(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8cb4
leaq 0x5d875(%rip), %rax     # 0x66530
testb $0x1, (%rax)
je 0x97a0
movq -0x5d0(%rbp), %rax
movq $0x0, 0x3e0(%rax)
leaq 0x5d86b(%rip), %rax     # 0x66548
movslq (%rax), %rax
movq %rax, -0x958(%rbp)
movq $0x0, -0x308(%rbp)
leaq -0x309(%rbp), %rdi
movq %rdi, -0x950(%rbp)
callq 0x17820
movq -0x958(%rbp), %rsi
movq -0x950(%rbp), %rcx
leaq -0x300(%rbp), %rdi
leaq -0x308(%rbp), %rdx
callq 0x17840
jmp 0x8d28
movq -0x5d0(%rbp), %rdi
addq $0x3e8, %rdi            # imm = 0x3E8
leaq -0x300(%rbp), %rsi
movq %rsi, -0x970(%rbp)
callq 0x178c0
movq -0x970(%rbp), %rdi
callq 0x178f0
leaq -0x309(%rbp), %rdi
callq 0x17950
leaq 0x5d7e0(%rip), %rax     # 0x66548
movslq (%rax), %rax
movq %rax, -0x968(%rbp)
movq $0x0, -0x330(%rbp)
leaq -0x331(%rbp), %rdi
movq %rdi, -0x960(%rbp)
callq 0x17820
movq -0x968(%rbp), %rsi
movq -0x960(%rbp), %rcx
leaq -0x328(%rbp), %rdi
leaq -0x330(%rbp), %rdx
callq 0x17840
jmp 0x8db3
movq -0x5d0(%rbp), %rdi
addq $0x400, %rdi            # imm = 0x400
leaq -0x328(%rbp), %rsi
movq %rsi, -0x978(%rbp)
callq 0x178c0
movq -0x978(%rbp), %rdi
callq 0x178f0
leaq -0x331(%rbp), %rdi
callq 0x17950
leaq -0x358(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x4370
jmp 0x8e01
leaq -0x118(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x44a0
jmp 0x8e16
leaq -0x358(%rbp), %rdi
callq 0x46e8
leaq 0x488d9(%rip), %rsi     # 0x51702
leaq -0x118(%rbp), %rdi
callq 0x4350
jmp 0x8e37
movq -0x5d0(%rbp), %rax
addq $0xa18, %rax            # imm = 0xA18
movq %rax, -0x980(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x4180
movq -0x980(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x4070
jmp 0x8e6d
movq -0x5d0(%rbp), %rax
movq 0xa18(%rax), %rcx
movq -0x18(%rcx), %rcx
leaq 0xa18(%rax,%rcx), %rdi
movl $0x20, %esi
callq 0x177f0
jmp 0x8e93
movq 0x5d136(%rip), %rdi     # 0x65fd0
leaq 0x48866(%rip), %rsi     # 0x51707
callq 0x4380
movq %rax, -0x988(%rbp)
jmp 0x8eaf
movq -0x988(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x4320
movq %rax, -0x990(%rbp)
jmp 0x8ecb
movq -0x990(%rbp), %rdi
leaq 0x48833(%rip), %rsi     # 0x5170c
callq 0x4380
movq %rax, -0x998(%rbp)
jmp 0x8ee7
movq -0x998(%rbp), %rdi
movq 0x5d0bb(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x8efc
movq -0x5d0(%rbp), %rax
addq $0xa18, %rax            # imm = 0xA18
movq %rax, -0x9a8(%rbp)
movl $0x8, %edi
callq 0x177b0
movl %eax, -0x99c(%rbp)
jmp 0x8f22
movq -0x9a8(%rbp), %rdi
movl -0x99c(%rbp), %eax
movl %eax, -0x35c(%rbp)
movl -0x35c(%rbp), %esi
callq 0x4440
movq %rax, -0x9b0(%rbp)
jmp 0x8f49
movl $0x20, %edi
callq 0x177d0
movb %al, -0x9b1(%rbp)
jmp 0x8f5b
movq -0x9b0(%rbp), %rdi
movb -0x9b1(%rbp), %al
movb %al, -0x35d(%rbp)
movzbl -0x35d(%rbp), %esi
callq 0x4550
movq %rax, -0x9c0(%rbp)
jmp 0x8f83
movq -0x9c0(%rbp), %rdi
leaq 0x4878b(%rip), %rsi     # 0x5171c
callq 0x4380
jmp 0x8f98
movl $0x0, -0x364(%rbp)
movl -0x364(%rbp), %eax
leaq 0x5d599(%rip), %rcx     # 0x66548
cmpl (%rcx), %eax
jge 0x91c6
leaq -0x4f0(%rbp), %rdi
callq 0x4270
jmp 0x8fc5
leaq -0x4e0(%rbp), %rdi
movl -0x364(%rbp), %esi
callq 0x4610
jmp 0x8fd9
leaq -0x550(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x4370
jmp 0x8fee
leaq 0x48881(%rip), %rsi     # 0x51876
leaq -0x530(%rbp), %rdi
leaq -0x550(%rbp), %rdx
callq 0x179c0
jmp 0x900a
leaq -0x510(%rbp), %rdi
leaq -0x530(%rbp), %rsi
movl $0x5d, %edx
callq 0x17970
jmp 0x9024
leaq -0x530(%rbp), %rdi
callq 0x46e8
leaq -0x550(%rbp), %rdi
callq 0x46e8
movq -0x5d0(%rbp), %rax
addq $0xa18, %rax            # imm = 0xA18
movq %rax, -0x9d0(%rbp)
movl $0xa, %edi
callq 0x177b0
movl %eax, -0x9c4(%rbp)
jmp 0x9062
movq -0x9d0(%rbp), %rdi
movl -0x9c4(%rbp), %eax
movl %eax, -0x554(%rbp)
movl -0x554(%rbp), %esi
callq 0x4440
movq %rax, -0x9d8(%rbp)
jmp 0x9089
movl $0x20, %edi
callq 0x177d0
movb %al, -0x9d9(%rbp)
jmp 0x909b
movq -0x9d8(%rbp), %rdi
movb -0x9d9(%rbp), %al
movb %al, -0x555(%rbp)
movzbl -0x555(%rbp), %esi
callq 0x4550
movq %rax, -0x9e8(%rbp)
jmp 0x90c3
movq -0x9e8(%rbp), %rdi
leaq -0x510(%rbp), %rsi
callq 0x4320
jmp 0x90d8
leaq -0x510(%rbp), %rdi
callq 0x46e8
leaq -0x4f0(%rbp), %rdi
callq 0x42a0
movl -0x364(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x364(%rbp)
jmp 0x8fa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x309(%rbp), %rdi
callq 0x17950
jmp 0x9933
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x331(%rbp), %rdi
callq 0x17950
jmp 0x9933
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x46e8
jmp 0x9933
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x91b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x918f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x530(%rbp), %rdi
callq 0x46e8
leaq -0x550(%rbp), %rdi
callq 0x46e8
jmp 0x91b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x510(%rbp), %rdi
callq 0x46e8
leaq -0x4f0(%rbp), %rdi
callq 0x42a0
jmp 0x9933
movq -0x5d0(%rbp), %rax
addq $0xa18, %rax            # imm = 0xA18
movq %rax, -0x9f8(%rbp)
movl $0xa, %edi
callq 0x177b0
movl %eax, -0x9ec(%rbp)
jmp 0x91ec
movq -0x9f8(%rbp), %rdi
movl -0x9ec(%rbp), %eax
movl %eax, -0x55c(%rbp)
movl -0x55c(%rbp), %esi
callq 0x4440
movq %rax, -0xa00(%rbp)
jmp 0x9213
movl $0x20, %edi
callq 0x177d0
movb %al, -0xa01(%rbp)
jmp 0x9225
movq -0xa00(%rbp), %rdi
movb -0xa01(%rbp), %al
movb %al, -0x55d(%rbp)
movzbl -0x55d(%rbp), %esi
callq 0x4550
movq %rax, -0xa10(%rbp)
jmp 0x924d
movq -0xa10(%rbp), %rdi
leaq 0x484c8(%rip), %rsi     # 0x51723
callq 0x4380
movq %rax, -0xa18(%rbp)
jmp 0x9269
movq -0xa18(%rbp), %rdi
movq 0x5cd39(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x927e
leaq 0x4847d(%rip), %rsi     # 0x51702
xorl %eax, %eax
movl %eax, %edx
leaq -0x118(%rbp), %rdi
movq %rdi, -0xa20(%rbp)
callq 0x46d0
movq -0xa20(%rbp), %rdi
movq %rax, %rsi
movq $-0x1, %rdx
callq 0x40e0
jmp 0x92b4
leaq 0x48476(%rip), %rsi     # 0x51731
leaq -0x118(%rbp), %rdi
callq 0x4350
jmp 0x92c9
movq -0x5d0(%rbp), %rax
addq $0xc18, %rax            # imm = 0xC18
movq %rax, -0xa28(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x4180
movq -0xa28(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x4070
jmp 0x92ff
movq 0x5ccca(%rip), %rdi     # 0x65fd0
leaq 0x483fa(%rip), %rsi     # 0x51707
callq 0x4380
movq %rax, -0xa30(%rbp)
jmp 0x931b
movq -0xa30(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x4320
movq %rax, -0xa38(%rbp)
jmp 0x9337
movq -0xa38(%rbp), %rdi
leaq 0x483c7(%rip), %rsi     # 0x5170c
callq 0x4380
movq %rax, -0xa40(%rbp)
jmp 0x9353
movq -0xa40(%rbp), %rdi
movq 0x5cc4f(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x9368
leaq 0x484f0(%rip), %rsi     # 0x5185f
leaq -0x118(%rbp), %rdi
callq 0x44e0
jmp 0x937d
leaq -0x580(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x4370
jmp 0x9392
leaq -0x118(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0x44a0
jmp 0x93a7
leaq -0x580(%rbp), %rdi
callq 0x46e8
leaq 0x48380(%rip), %rsi     # 0x5173a
leaq -0x118(%rbp), %rdi
callq 0x4350
jmp 0x93c8
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x48362(%rip), %rsi     # 0x5173f
callq 0x4380
movq %rax, -0xa48(%rbp)
jmp 0x93eb
movq -0xa48(%rbp), %rdi
movq 0x5cbb7(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x9400
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x48359(%rip), %rsi     # 0x5176e
callq 0x4380
movq %rax, -0xa50(%rbp)
jmp 0x9423
movq -0xa50(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x4320
movq %rax, -0xa58(%rbp)
jmp 0x943f
movq -0xa58(%rbp), %rdi
leaq 0x4832c(%rip), %rsi     # 0x51779
callq 0x4380
movq %rax, -0xa60(%rbp)
jmp 0x945b
movq -0xa60(%rbp), %rdi
movq 0x5cb47(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x9470
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x482f6(%rip), %rsi     # 0x5177b
callq 0x4380
movq %rax, -0xa68(%rbp)
jmp 0x9493
movq -0xa68(%rbp), %rdi
movq 0x5cb0f(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x94a8
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x482ec(%rip), %rsi     # 0x517a9
callq 0x4380
movq %rax, -0xa70(%rbp)
jmp 0x94cb
movq -0xa70(%rbp), %rdi
movq 0x5cad7(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x94e0
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x482c2(%rip), %rsi     # 0x517b7
callq 0x4380
movq %rax, -0xa78(%rbp)
jmp 0x9503
movq -0xa78(%rbp), %rdi
movq 0x5ca9f(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x9518
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x48293(%rip), %rsi     # 0x517c0
callq 0x4380
movq %rax, -0xa80(%rbp)
jmp 0x953b
movq -0xa80(%rbp), %rdi
movq 0x5ca67(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x9550
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x4827e(%rip), %rsi     # 0x517e3
callq 0x4380
movq %rax, -0xa88(%rbp)
jmp 0x9573
movq -0xa88(%rbp), %rdi
movq 0x5ca2f(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x9588
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x48264(%rip), %rsi     # 0x51801
callq 0x4380
movq %rax, -0xa90(%rbp)
jmp 0x95ab
movq -0xa90(%rbp), %rdi
movq 0x5c9f7(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x95c0
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x4823d(%rip), %rsi     # 0x51812
callq 0x4380
movq %rax, -0xa98(%rbp)
jmp 0x95e3
movq -0xa98(%rbp), %rdi
movl -0x11c(%rbp), %esi
callq 0x44c0
movq %rax, -0xaa0(%rbp)
jmp 0x95fe
movq -0xaa0(%rbp), %rdi
leaq 0x4821c(%rip), %rsi     # 0x51828
callq 0x4380
movq %rax, -0xaa8(%rbp)
jmp 0x961a
movq -0xaa8(%rbp), %rdi
leaq 0x5cf20(%rip), %rax     # 0x66548
movl (%rax), %esi
addl $0x2, %esi
callq 0x4610
movq %rax, -0xab0(%rbp)
jmp 0x963b
movq -0xab0(%rbp), %rdi
leaq 0x481ee(%rip), %rsi     # 0x51837
callq 0x4380
movq %rax, -0xab8(%rbp)
jmp 0x9657
movq -0xab8(%rbp), %rdi
movq 0x5c94b(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x966c
movl $0x0, -0x584(%rbp)
movl -0x584(%rbp), %eax
leaq 0x5cec5(%rip), %rcx     # 0x66548
cmpl (%rcx), %eax
jge 0x979e
movq -0x5d0(%rbp), %rdi
addq $0xc18, %rdi            # imm = 0xC18
leaq 0x481b8(%rip), %rsi     # 0x51858
callq 0x4380
movq %rax, -0xac0(%rbp)
jmp 0x96ae
movq -0xac0(%rbp), %rdi
movl -0x11c(%rbp), %esi
callq 0x44c0
movq %rax, -0xac8(%rbp)
jmp 0x96c9
movq -0xac8(%rbp), %rdi
leaq 0x48151(%rip), %rsi     # 0x51828
callq 0x4380
movq %rax, -0xad0(%rbp)
jmp 0x96e5
movq -0xad0(%rbp), %rdi
movl -0x584(%rbp), %esi
addl $0x2, %esi
callq 0x4610
movq %rax, -0xad8(%rbp)
jmp 0x9703
movq -0xad8(%rbp), %rdi
leaq 0x4815d(%rip), %rsi     # 0x5186e
callq 0x4380
movq %rax, -0xae0(%rbp)
jmp 0x971f
movq -0xae0(%rbp), %rdi
movl -0x584(%rbp), %esi
callq 0x4610
movq %rax, -0xae8(%rbp)
jmp 0x973a
movq -0xae8(%rbp), %rdi
leaq 0x48134(%rip), %rsi     # 0x5187c
callq 0x4380
movq %rax, -0xaf0(%rbp)
jmp 0x9756
movq -0xaf0(%rbp), %rdi
movq 0x5c84c(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x976b
jmp 0x976d
movl -0x584(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x584(%rbp)
jmp 0x9676
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x46e8
jmp 0x9933
jmp 0x97a0
movq -0x5d0(%rbp), %rdi
movq %rdi, %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0xaf8(%rbp)
addq $0x3a8, %rdi            # imm = 0x3A8
callq 0x4180
movq -0xaf8(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x4070
jmp 0x97d9
movq -0x5d0(%rbp), %rdi
movq -0xa0(%rbp), %rax
movq %rax, -0x590(%rbp)
movaps -0xd0(%rbp), %xmm0
movaps -0xc0(%rbp), %xmm1
movaps -0xb0(%rbp), %xmm2
movaps %xmm2, -0x5a0(%rbp)
movaps %xmm1, -0x5b0(%rbp)
movaps %xmm0, -0x5c0(%rbp)
movq -0x590(%rbp), %rcx
movq %rsp, %rax
movq %rcx, 0x30(%rax)
movaps -0x5c0(%rbp), %xmm0
movaps -0x5b0(%rbp), %xmm1
movaps -0x5a0(%rbp), %xmm2
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x99f0
jmp 0x984d
movq 0x5c77c(%rip), %rdi     # 0x65fd0
leaq 0x47eac(%rip), %rsi     # 0x51707
callq 0x4380
movq %rax, -0xb00(%rbp)
jmp 0x9869
movq -0xb00(%rbp), %rdi
movq -0x5d0(%rbp), %rsi
addq $0x3a8, %rsi            # imm = 0x3A8
callq 0x4320
movq %rax, -0xb08(%rbp)
jmp 0x988c
movq -0xb08(%rbp), %rdi
leaq 0x47e72(%rip), %rsi     # 0x5170c
callq 0x4380
movq %rax, -0xb10(%rbp)
jmp 0x98a8
movq -0xb10(%rbp), %rdi
movq 0x5c6fa(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0x98bd
movq -0x5d0(%rbp), %rdi
addq $0x3a8, %rdi            # imm = 0x3A8
movq %rdi, -0xb18(%rbp)
leaq 0x47fba(%rip), %rsi     # 0x51893
xorl %eax, %eax
movl %eax, %edx
callq 0x46d0
movq -0xb18(%rbp), %rdi
movq %rax, %rsi
movq $-0x1, %rdx
callq 0x40e0
jmp 0x98fa
movq -0x5d0(%rbp), %rdi
movl $0x0, 0x3c8(%rdi)
callq 0xbc80
jmp 0x9912
leaq -0x2a8(%rbp), %rdi
callq 0x42a0
leaq -0x118(%rbp), %rdi
callq 0x46e8
addq $0xb50, %rsp            # imm = 0xB50
popq %rbp
retq
leaq -0x2a8(%rbp), %rdi
callq 0x42a0
leaq -0x118(%rbp), %rdi
callq 0x46e8
movq -0x630(%rbp), %rdi
callq 0x4530
movq -0x628(%rbp), %rdi
callq 0x4530
movq -0x620(%rbp), %rdi
callq 0x4530
movq -0x618(%rbp), %rdi
callq 0x4530
movq -0x610(%rbp), %rdi
callq 0x4530
movq -0x5c8(%rbp), %rdi
callq 0x4530
movq -0x5d8(%rbp), %rdi
callq 0x178f0
movq -0x5e0(%rbp), %rdi
callq 0x178f0
movq -0x5e8(%rbp), %rdi
callq 0x46e8
movq -0x5f0(%rbp), %rdi
callq 0x17a10
movq -0x5f8(%rbp), %rdi
callq 0x17a10
movq -0x5d0(%rbp), %rdi
callq 0x181e0
movq -0x20(%rbp), %rdi
callq 0x4630
nopw %cs:(%rax,%rax)