// File: /workspace/github_cpp_makefile_star2_O3/estwings57[P]CasHMC/sources/CasHMCWrapper.cpp
// Function: CasHMC::CasHMCWrapper::PrintEpochStatistic()
void CasHMCWrapper::PrintEpochStatistic()
{
	uint64_t elapsedCycles;
	if(currentClockCycle%LOG_EPOCH == 0) {
		elapsedCycles = LOG_EPOCH;
	}
	else {
		elapsedCycles = currentClockCycle%LOG_EPOCH;
	}
	
	//Count transaction and packet type
	uint64_t epochReads = 0;
	uint64_t epochWrites = 0;
	uint64_t epochAtomics = 0;
	uint64_t epochReq = 0;
	uint64_t epochRes = 0;
	uint64_t epochFlow = 0;
	unsigned epochError = 0;
	
	for(int i=0; i<NUM_LINKS; i++) {
		epochReads	+= readPerLink[i];
		epochWrites	+= writePerLink[i];
		epochAtomics+= atomicPerLink[i];
		epochReq	+= reqPerLink[i];
		epochRes	+= resPerLink[i];
		epochFlow	+= flowPerLink[i];
		epochError	+= errorPerLink[i];
	}
	
	//Ttransaction traced latency statistic calculation
	if(tranFullLat.size() != linkFullLat.size()
	|| linkFullLat.size() != vaultFullLat.size()
	|| tranFullLat.size() != vaultFullLat.size()) {
		ERROR(" == Error - Traces vector size are different (tranFullLat : "<<tranFullLat.size()
				<<", linkFullLat : "<<linkFullLat.size()<<", vaultFullLat : "<<vaultFullLat.size());
		exit(0);
	}
	unsigned tranCount = tranFullLat.size();
	unsigned errorCount = errorRetryLat.size();
	for(int i=0; i<errorCount; i++) {
		errorRetrySum += errorRetryLat[i];
	}
	
	unsigned tranFullMax = 0;
	unsigned tranFullMin = -1;//max unsigned value
	unsigned linkFullMax = 0;
	unsigned linkFullMin = -1;
	unsigned vaultFullMax = 0;
	unsigned vaultFullMin = -1;
	unsigned errorRetryMax = 0;
	unsigned errorRetryMin = -1;
	
	double tranStdSum = 0;
	double linkStdSum = 0;
	double vaultStdSum = 0;
	double errorStdSum = 0;
	
	double tranFullMean = (tranCount==0 ? 0 : (double)tranFullSum/tranCount);
	double linkFullMean = (tranCount==0 ? 0 : (double)linkFullSum/tranCount);
	double vaultFullMean = (tranCount==0 ? 0 : (double)vaultFullSum/tranCount);
	double errorRetryMean = (errorCount==0 ? 0 : (double)errorRetrySum/errorCount);
	
	for(int i=0; i<tranCount; i++) {		
		tranFullMax = max(tranFullLat[i], tranFullMax);
		tranFullMin = min(tranFullLat[i], tranFullMin);
		tranStdSum += pow(tranFullLat[i]-tranFullMean, 2);

		linkFullMax = max(linkFullLat[i], linkFullMax);
		linkFullMin = min(linkFullLat[i], linkFullMin);
		linkStdSum += pow(linkFullLat[i]-linkFullMean, 2);

		vaultFullMax = max(vaultFullLat[i], vaultFullMax);
		vaultFullMin = min(vaultFullLat[i], vaultFullMin);
		vaultStdSum += pow(vaultFullLat[i]-vaultFullMean, 2);
	}
	for(int i=0; i<errorCount; i++) {
		errorRetryMax = max(errorRetryLat[i], errorRetryMax);
		errorRetryMin = min(errorRetryLat[i], errorRetryMin);
		errorStdSum += pow(errorRetryLat[i]-errorRetryMean, 2);
	}
	double tranStdDev = sqrt(tranCount==0 ? 0 : tranStdSum/tranCount);
	double linkStdDev = sqrt(tranCount==0 ? 0 : linkStdSum/tranCount);
	double vaultStdDev = sqrt(tranCount==0 ? 0 : vaultStdSum/tranCount);
	double errorRetryDev = sqrt(errorCount==0 ? 0 : errorStdSum/errorCount);
	tranFullLat.clear();
	linkFullLat.clear();
	vaultFullLat.clear();
	errorRetryLat.clear();
	
	//Bandwidth calculation
	double elapsedTime = (double)(elapsedCycles*CPU_CLK_PERIOD*1E-9);
	double hmcBandwidth = hmcTransmitSize/elapsedTime/(1<<30);
	vector<double> downLinkBandwidth = vector<double>(NUM_LINKS, 0);
	vector<double> upLinkBandwidth = vector<double>(NUM_LINKS, 0);
	vector<double> linkBandwidth = vector<double>(NUM_LINKS, 0);
	double linkBandwidthSum = 0;
	vector<double> downLinkEffecBandwidth = vector<double>(NUM_LINKS, 0);
	vector<double> upLinkEffecBandwidth = vector<double>(NUM_LINKS, 0);
	vector<double> linkEffecBandwidth = vector<double>(NUM_LINKS, 0);
	vector<uint64_t> linkDataSize = vector<uint64_t>(NUM_LINKS, 0);
	for(int i=0; i<NUM_LINKS; i++) {
		downLinkBandwidth[i] = downLinkTransmitSize[i] / elapsedTime / (1<<30);
		upLinkBandwidth[i] = upLinkTransmitSize[i] / elapsedTime / (1<<30);
		linkBandwidth[i] = downLinkBandwidth[i] + upLinkBandwidth[i];
		linkBandwidthSum += linkBandwidth[i];
		//Effective bandwidth is only data bandwith regardless of packet header and tail bits
		downLinkEffecBandwidth[i] = downLinkDataSize[i] / elapsedTime / (1<<30);
		upLinkEffecBandwidth[i] = upLinkDataSize[i] / elapsedTime / (1<<30);
		linkEffecBandwidth[i] = downLinkEffecBandwidth[i] + upLinkEffecBandwidth[i];
		linkDataSize[i] = downLinkDataSize[i] + upLinkDataSize[i];
	}
	
	//Link low power statistic
	double SleepModeAve = 0;
	double DownModeAve = 0;
	vector<double> linkSleepMode = vector<double>(NUM_LINKS, 0);
	vector<double> linkDownMode = vector<double>(NUM_LINKS, 0);
	for(int i=0; i<NUM_LINKS; i++) {
		linkSleepMode[i] = ((double)hmcCont->linkSleepTime[i]/currentClockCycle)*100;
		linkDownMode[i] = ((double)hmcCont->linkDownTime[i]/currentClockCycle)*100;
		SleepModeAve += linkSleepMode[i];
		DownModeAve += linkDownMode[i];
	}
	SleepModeAve /= NUM_LINKS;
	DownModeAve /= NUM_LINKS;
	
	
	//Print epoch statistic result
	STATE(endl<<endl<<"  ============= ["<<currentClockCycle/LOG_EPOCH<<"] Epoch statistic result ============="<<endl);
	STATE("  Current epoch : "<<currentClockCycle/LOG_EPOCH);
	STATE("  Current clock : "<<currentClockCycle<<"  (epoch clock : "<<elapsedCycles<<")"<<endl);
	
	STATE("        HMC bandwidth : "<<ALI(7)<<hmcBandwidth<<" GB/s  (Considered only data size)");
	STATE("       Link bandwidth : "<<ALI(7)<<linkBandwidthSum<<" GB/s  (Included flow packet)");
	STATE("     Transmitted data : "<<ALI(7)<<DataScaling(hmcTransmitSize)<<" ("<<hmcTransmitSize<<" B)"<<endl);
	
	if(LINK_POWER != NO_MANAGEMENT) {
		STATE("     Sleep mode ratio : "<<ALI(7)<<SleepModeAve<<" %");
		STATE("      Down mode ratio : "<<ALI(7)<<DownModeAve<<" %");
		STATE("Total low power ratio : "<<ALI(7)<<SleepModeAve+DownModeAve<<" %"<<endl);
	}
	
	STATE("    Tran latency mean : "<<tranFullMean*CPU_CLK_PERIOD<<" ns");
	STATE("                 std  : "<<tranStdDev*CPU_CLK_PERIOD<<" ns");
	STATE("                 max  : "<<tranFullMax*CPU_CLK_PERIOD<<" ns");
	STATE("                 min  : "<<(tranFullMin!=-1 ? tranFullMin : 0)*CPU_CLK_PERIOD<<" ns");
	STATE("    Link latency mean : "<<linkFullMean*CPU_CLK_PERIOD<<" ns");
	STATE("                 std  : "<<linkStdDev*CPU_CLK_PERIOD<<" ns");
	STATE("                 max  : "<<linkFullMax*CPU_CLK_PERIOD<<" ns");
	STATE("                 min  : "<<(linkFullMin!=-1 ? linkFullMin : 0)*CPU_CLK_PERIOD<<" ns");
	STATE("   Vault latency mean : "<<vaultFullMean*tCK<<" ns");
	STATE("                 std  : "<<vaultStdDev*tCK<<" ns");
	STATE("                 max  : "<<vaultFullMax*tCK<<" ns");
	STATE("                 min  : "<<(vaultFullMin!=-1 ? vaultFullMin : 0)*tCK<<" ns");
	STATE("   Retry latency mean : "<<errorRetryMean*CPU_CLK_PERIOD<<" ns");
	STATE("                 std  : "<<errorRetryDev*CPU_CLK_PERIOD<<" ns");
	STATE("                 max  : "<<errorRetryMax*CPU_CLK_PERIOD<<" ns");
	STATE("                 min  : "<<(errorRetryMin!=-1 ? errorRetryMin : 0)*CPU_CLK_PERIOD<<" ns"<<endl);

	STATE("           Read count : "<<epochReads);
	STATE("          Write count : "<<epochWrites);
	STATE("         Atomic count : "<<epochAtomics);
	STATE("        Request count : "<<epochReq);
	STATE("       Response count : "<<epochRes);
	STATE("           Flow count : "<<epochFlow);
	STATE("    Transaction count : "<<tranCount);
	STATE("    Error abort count : "<<epochError);
	STATE("    Error retry count : "<<errorCount<<endl);
	
	for(int i=0; i<NUM_LINKS; i++) {
		STATE("  ----------------------  [Link "<<i<<"]");
		STATE("  |               Read per link : "<<readPerLink[i]);
		STATE("  |              Write per link : "<<writePerLink[i]);
		STATE("  |             Atomic per link : "<<atomicPerLink[i]);
		STATE("  |            Request per link : "<<reqPerLink[i]);
		STATE("  |           Response per link : "<<resPerLink[i]);
		STATE("  |               Flow per link : "<<flowPerLink[i]);
		STATE("  |        Error abort per link : "<<errorPerLink[i]);
		if(LINK_POWER != NO_MANAGEMENT) {
			STATE("  |            Sleep mode ratio : "<<linkSleepMode[i]<<" %");
			STATE("  |             Down mode ratio : "<<linkDownMode[i]<<" %");
			STATE("  |  Total low power mode ratio : "<<linkSleepMode[i]+linkDownMode[i]<<" %");
		}
		STATE("  |        Downstream Bandwidth : "<<ALI(7)<<downLinkBandwidth[i]<<" GB/s");
		STATE("  |          Upstream Bandwidth : "<<ALI(7)<<upLinkBandwidth[i]<<" GB/s");
		STATE("  |             Total Bandwidth : "<<ALI(7)<<linkBandwidth[i]<<" GB/s");
		STATE("  |  Downstream effec Bandwidth : "<<ALI(7)<<downLinkEffecBandwidth[i]<<" GB/s");
		STATE("  |    Upstream effec Bandwidth : "<<ALI(7)<<upLinkEffecBandwidth[i]<<" GB/s");
		STATE("  |       Total effec Bandwidth : "<<ALI(7)<<linkEffecBandwidth[i]<<" GB/s");
		STATE("  | Downstream transmitted data : "<<ALI(7)<<DataScaling(downLinkDataSize[i])<<" ("<<downLinkDataSize[i]<<" B)");
		STATE("  |   Upstream transmitted data : "<<ALI(7)<<DataScaling(upLinkDataSize[i])<<" ("<<upLinkDataSize[i]<<" B)");
		STATE("  -----  Total transmitted data : "<<ALI(7)<<DataScaling(linkDataSize[i])<<" ("<<linkDataSize[i]<<" B)"<<endl);
	}
	STATE("  * Effec bandwidth takes data transmission into account regardless of packet header and tail");

	//One epoch simulation statistic results are accumulated
	totalTranCount += tranCount;
	totalErrorCount += errorCount;
	
	totalHmcTransmitSize += hmcTransmitSize;
	hmcTransmitSize = 0;
	for(int i=0; i<NUM_LINKS; i++) {
		totalDownLinkTransmitSize[i] += downLinkTransmitSize[i];
		totalUpLinkTransmitSize[i] += upLinkTransmitSize[i];
		downLinkTransmitSize[i] = 0;
		upLinkTransmitSize[i] = 0;
		totalDownLinkDataSize[i] += downLinkDataSize[i];
		totalUpLinkDataSize[i] += upLinkDataSize[i];
		downLinkDataSize[i] = 0;
		upLinkDataSize[i] = 0;
	}
	
	totalTranFullSum += tranFullSum;
	totalLinkFullSum += linkFullSum;
	totalVaultFullSum += vaultFullSum;
	totalErrorRetrySum += errorRetrySum;
	tranFullSum = 0;
	linkFullSum = 0;
	vaultFullSum = 0;
	errorRetrySum = 0;
	
	for(int i=0; i<NUM_LINKS; i++) {
		totalReadPerLink[i] += readPerLink[i];		readPerLink[i] = 0;
		totalWritePerLink[i] += writePerLink[i];	writePerLink[i] = 0;
		totalAtomicPerLink[i] += atomicPerLink[i];	atomicPerLink[i] = 0;
		totalReqPerLink[i] += reqPerLink[i];		reqPerLink[i] = 0;
		totalResPerLink[i] += resPerLink[i];		resPerLink[i] = 0;
		totalFlowPerLink[i] += flowPerLink[i];		flowPerLink[i] = 0;
		totalErrorPerLink[i] += errorPerLink[i];	errorPerLink[i] = 0;
	}
	
	totalTranFullMax = max(tranFullMax, totalTranFullMax);
	totalTranFullMin = min(tranFullMin, totalTranFullMin);
	totalLinkFullMax = max(linkFullMax, totalLinkFullMax);
	totalLinkFullMin = min(linkFullMin, totalLinkFullMin);
	totalVaultFullMax = max(vaultFullMax, totalVaultFullMax);
	totalVaultFullMin = min(vaultFullMin, totalVaultFullMin);
	totalErrorRetryMax = max(errorRetryMax, totalErrorRetryMax);
	totalErrorRetryMin = min(errorRetryMin, totalErrorRetryMin);
	
	totalTranStdSum += tranStdSum;
	totalLinkStdSum += linkStdSum;
	totalVaultStdSum += vaultStdSum;
	totalErrorStdSum += errorStdSum;

	if(BANDWIDTH_PLOT) {
		hmcTransmitSizeTemp = 0;
		for(int i=0; i<NUM_LINKS; i++) {
			downLinkDataSizeTemp[i] = 0;
			upLinkDataSizeTemp[i] = 0;
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
movq %rdi, %r10
movq 0x370(%rdi), %rax
leaq 0x30690(%rip), %rcx     # 0x3b480
movq (%rcx), %rcx
xorl %r14d, %r14d
xorl %edx, %edx
divq %rcx
testq %rdx, %rdx
cmoveq %rcx, %rdx
movq %rdx, 0xc8(%rsp)
leaq 0x30697(%rip), %rax     # 0x3b4a8
movslq (%rax), %rdx
movl $0x0, %r15d
movl $0x0, %r12d
movl $0x0, %r13d
movl $0x0, %ebx
movl $0x0, %ecx
movq %rcx, 0x88(%rsp)
movl $0x0, %eax
movq %rax, 0xd0(%rsp)
testq %rdx, %rdx
movq %rdi, 0x40(%rsp)
jle 0xaeeb
movq %rdx, %rcx
movq 0x68(%r10), %rax
movq %rax, 0x8(%rsp)
movq 0x80(%r10), %rax
movq %rax, 0x38(%rsp)
movq 0x98(%r10), %rsi
movq 0xb0(%r10), %rdi
movq 0xc8(%r10), %r8
movq 0xe0(%r10), %r9
movq 0xf8(%r10), %r10
shlq $0x2, %rcx
xorl %r11d, %r11d
xorl %eax, %eax
xorl %ebp, %ebp
xorl %ebx, %ebx
xorl %r13d, %r13d
xorl %r12d, %r12d
xorl %r15d, %r15d
movq 0x8(%rsp), %rdx
addq (%rdx,%r11,2), %rax
movq 0x38(%rsp), %rdx
addq (%rdx,%r11,2), %rbp
addq (%rsi,%r11,2), %rbx
addq (%rdi,%r11,2), %r13
addq (%r8,%r11,2), %r12
addq (%r9,%r11,2), %r15
addl (%r10,%r11), %r14d
addq $0x4, %r11
cmpq %r11, %rcx
jne 0xaea4
movq %rax, 0xd0(%rsp)
movq %rbp, 0x88(%rsp)
movl %r14d, %r14d
movq 0x40(%rsp), %r10
movq %rbx, 0x1f8(%rsp)
movq 0x8(%r10), %rcx
movq 0x10(%r10), %r11
subq %rcx, %r11
movq 0x28(%r10), %rax
movq 0x20(%r10), %rdx
subq %rdx, %rax
cmpq %rax, %r11
jne 0xdbea
movq 0x38(%r10), %rsi
movq 0x40(%r10), %rax
subq %rsi, %rax
cmpq %rax, %r11
jne 0xdbea
sarq $0x2, %r11
movq 0x50(%r10), %rax
movq 0x58(%r10), %rbx
subq %rax, %rbx
sarq $0x2, %rbx
movq 0x1a8(%r10), %rdi
testl %ebx, %ebx
je 0xaf65
movl %ebx, %r8d
xorl %r9d, %r9d
movl (%rax,%r9,4), %r10d
addq %r10, %rdi
incq %r9
cmpq %r9, %r8
jne 0xaf4a
movq 0x40(%rsp), %r10
movq %rdi, 0x1a8(%r10)
movq %r13, 0x1f0(%rsp)
movq %rdi, %xmm1
punpckldq 0x251a6(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x2518e(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movl %ebx, %edi
xorps %xmm1, %xmm1
cvtsi2sd %rdi, %xmm1
movsd %xmm1, 0x30(%rsp)
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
movsd %xmm1, 0xb0(%rsp)
movq %rbx, 0x38(%rsp)
testl %ebx, %ebx
je 0xafc1
movsd %xmm0, 0xb0(%rsp)
leaq 0x190(%r10), %rdi
movq %rdi, 0x208(%rsp)
movl %r11d, %edi
cvtsi2sd %rdi, %xmm8
movdqu 0x190(%r10), %xmm1
movdqa 0x25147(%rip), %xmm2    # 0x30130
pand %xmm1, %xmm2
por 0x2514b(%rip), %xmm2    # 0x30140
xorl %r13d, %r13d
psrlq $0x20, %xmm1
por 0x2514b(%rip), %xmm1    # 0x30150
subpd 0x25153(%rip), %xmm1    # 0x30160
addpd %xmm2, %xmm1
movapd %xmm8, %xmm2
unpcklpd %xmm8, %xmm2            # xmm2 = xmm2[0],xmm8[0]
divpd %xmm2, %xmm1
xorpd %xmm2, %xmm2
movsd %xmm2, 0xc0(%rsp)
movq %r11, 0x8(%rsp)
testl %r11d, %r11d
je 0xb03f
movsd %xmm1, 0xc0(%rsp)
movapd %xmm2, 0x210(%rsp)
je 0xb05b
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
movapd %xmm2, 0x210(%rsp)
movsd 0x1a0(%r10), %xmm3
unpcklps 0x250b5(%rip), %xmm3    # xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]
subpd 0x2509d(%rip), %xmm3    # 0x30110
movapd %xmm3, %xmm2
unpckhpd %xmm3, %xmm2            # xmm2 = xmm2[1],xmm3[1]
addsd %xmm3, %xmm2
divsd %xmm8, %xmm2
xorpd %xmm3, %xmm3
movsd %xmm3, 0xb8(%rsp)
je 0xb09c
movsd %xmm2, 0xb8(%rsp)
movq %r12, 0x1e8(%rsp)
movq %r15, 0x1e0(%rsp)
movq %r14, 0x1d8(%rsp)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
je 0xb16e
movl 0x8(%rsp), %edi
xorpd %xmm7, %xmm7
xorl %r8d, %r8d
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
xorpd %xmm6, %xmm6
movapd 0x25065(%rip), %xmm3    # 0x30140
xorl %r15d, %r15d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
xorl %r11d, %r11d
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
xorl %r13d, %r13d
movl (%rcx,%r8,4), %r10d
cmpl %r13d, %r10d
cmoval %r10d, %r13d
cmpl %r10d, %r14d
cmovbl %r14d, %r10d
movl (%rdx,%r8,4), %r12d
cmpl %r11d, %r12d
cmoval %r12d, %r11d
cmpl %r12d, %r9d
cmovbl %r9d, %r12d
movss (%rdx,%r8,4), %xmm4
movss (%rcx,%r8,4), %xmm5
unpcklpd %xmm4, %xmm5            # xmm5 = xmm5[0],xmm4[0]
orpd %xmm3, %xmm5
subpd %xmm3, %xmm5
subpd %xmm1, %xmm5
mulpd %xmm5, %xmm5
movl (%rsi,%r8,4), %r9d
cmpl %r15d, %r9d
cmoval %r9d, %r15d
cmpl %r9d, %ebx
cmovael %r9d, %ebx
xorps %xmm4, %xmm4
cvtsi2sd %r9, %xmm4
addpd %xmm5, %xmm7
subsd %xmm2, %xmm4
mulsd %xmm4, %xmm4
addsd %xmm4, %xmm6
incq %r8
movl %r12d, %r9d
movl %r10d, %r14d
cmpq %r8, %rdi
jne 0xb0f0
jmp 0xb18d
xorpd %xmm7, %xmm7
movl $0xffffffff, %r10d      # imm = 0xFFFFFFFF
xorl %r11d, %r11d
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
xorl %r15d, %r15d
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
xorpd %xmm6, %xmm6
movl %r10d, 0x7c(%rsp)
movl %r12d, 0x70(%rsp)
movl %r11d, 0x74(%rsp)
movapd %xmm7, 0x1c0(%rsp)
movapd %xmm6, 0x220(%rsp)
xorpd %xmm1, %xmm1
movq 0x38(%rsp), %rcx
testl %ecx, %ecx
je 0xb1fc
movl %ecx, %ecx
xorl %edx, %edx
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
xorpd %xmm3, %xmm3
xorl %edi, %edi
leaq 0x302d7(%rip), %r14     # 0x3b4a8
movl (%rax,%rdx,4), %esi
cmpl %edi, %esi
cmoval %esi, %edi
cmpl %esi, %ebp
cmovael %esi, %ebp
xorps %xmm2, %xmm2
cvtsi2sd %rsi, %xmm2
subsd %xmm0, %xmm2
mulsd %xmm2, %xmm2
addsd %xmm2, %xmm3
incq %rdx
cmpq %rdx, %rcx
jne 0xb1d1
jmp 0xb209
xorl %edi, %edi
xorpd %xmm3, %xmm3
leaq 0x3029f(%rip), %r14     # 0x3b4a8
movl %edi, 0x64(%rsp)
movapd %xmm3, 0x1b0(%rsp)
xorpd %xmm0, %xmm0
cmpl $0x0, 0x8(%rsp)
movapd 0x1c0(%rsp), %xmm2
je 0xb233
movapd %xmm2, %xmm0
divsd %xmm8, %xmm0
ucomisd %xmm1, %xmm0
movapd %xmm8, 0x50(%rsp)
jb 0xb246
sqrtsd %xmm0, %xmm0
jmp 0xb25b
callq 0x4250
movapd 0x50(%rsp), %xmm8
movapd 0x1c0(%rsp), %xmm2
movsd %xmm0, 0xa8(%rsp)
xorpd %xmm1, %xmm1
xorpd %xmm0, %xmm0
cmpl $0x0, 0x8(%rsp)
je 0xb280
movapd %xmm2, %xmm0
unpckhpd %xmm2, %xmm0            # xmm0 = xmm0[1],xmm2[1]
divsd %xmm8, %xmm0
ucomisd %xmm1, %xmm0
jb 0xb28c
sqrtsd %xmm0, %xmm0
jmp 0xb298
callq 0x4250
movapd 0x50(%rsp), %xmm8
movsd %xmm0, 0xa0(%rsp)
xorpd %xmm1, %xmm1
xorpd %xmm0, %xmm0
cmpl $0x0, 0x8(%rsp)
je 0xb2be
movapd 0x220(%rsp), %xmm0
divsd %xmm8, %xmm0
ucomisd %xmm1, %xmm0
jb 0xb2ca
sqrtsd %xmm0, %xmm0
jmp 0xb2cf
callq 0x4250
movsd %xmm0, 0x98(%rsp)
movapd 0x1b0(%rsp), %xmm2
xorpd %xmm1, %xmm1
xorpd %xmm0, %xmm0
cmpl $0x0, 0x38(%rsp)
je 0xb2fa
movapd %xmm2, %xmm0
divsd 0x30(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jb 0xb306
sqrtsd %xmm0, %xmm0
jmp 0xb30b
callq 0x4250
movsd %xmm0, 0x90(%rsp)
movq 0x40(%rsp), %rcx
movq 0x8(%rcx), %rax
cmpq %rax, 0x10(%rcx)
je 0xb327
movq %rax, 0x10(%rcx)
movq 0x20(%rcx), %rax
cmpq %rax, 0x28(%rcx)
je 0xb335
movq %rax, 0x28(%rcx)
movq 0x38(%rcx), %rax
cmpq %rax, 0x40(%rcx)
je 0xb343
movq %rax, 0x40(%rcx)
movl %r15d, 0x6c(%rsp)
movl %ebx, 0x68(%rsp)
movq 0x50(%rcx), %rax
cmpq %rax, 0x58(%rcx)
je 0xb35a
movq %rax, 0x58(%rcx)
movsd 0xc8(%rsp), %xmm0
unpcklps 0x24db6(%rip), %xmm0    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x24d9e(%rip), %xmm0    # 0x30110
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
leaq 0x30113(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm1
movapd %xmm1, 0x50(%rsp)
movsd 0x128(%rcx), %xmm0
movapd %xmm0, 0x230(%rsp)
movslq (%r14), %rsi
xorl %ebx, %ebx
leaq 0x10(%rsp), %r15
movq %rbx, (%r15)
leaq 0x198(%rsp), %rdi
leaq 0x180(%rsp), %rcx
movq %r15, %rdx
callq 0x13670
movslq (%r14), %rsi
movq %rbx, (%r15)
leaq 0x180(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x168(%rsp), %rcx
callq 0x13670
movslq (%r14), %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x168(%rsp), %rdi
leaq 0x150(%rsp), %rcx
callq 0x13670
movslq (%r14), %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x150(%rsp), %rdi
leaq 0x138(%rsp), %rcx
callq 0x13670
movslq (%r14), %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x138(%rsp), %rdi
leaq 0x120(%rsp), %rcx
callq 0x13670
movslq (%r14), %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x120(%rsp), %rdi
leaq 0x108(%rsp), %rcx
callq 0x13670
movslq (%r14), %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x108(%rsp), %rdi
leaq 0xf0(%rsp), %rcx
callq 0x1336a
movl %r13d, 0x78(%rsp)
movl %ebp, 0x60(%rsp)
movapd 0x50(%rsp), %xmm0
mulsd 0x24c08(%rip), %xmm0    # 0x300b8
movapd %xmm0, 0x50(%rsp)
movslq (%r14), %r14
testq %r14, %r14
movq 0x40(%rsp), %rax
movq %r14, 0x30(%rsp)
jle 0xb624
movq 0x130(%rax), %rsi
movq 0x148(%rax), %rcx
movq 0x198(%rsp), %rdx
movq 0x180(%rsp), %rdi
movq 0x168(%rsp), %r8
movq 0x160(%rax), %r9
movq 0x150(%rsp), %r10
movq 0x178(%rax), %r11
movq 0x138(%rsp), %r15
movq 0x120(%rsp), %rbp
movq 0x108(%rsp), %rbx
leaq (,%r14,8), %r14
xorpd %xmm6, %xmm6
xorl %r13d, %r13d
movsd 0x24b89(%rip), %xmm0    # 0x300c0
movsd 0x24be1(%rip), %xmm3    # 0x30120
movapd 0x24bc9(%rip), %xmm4    # 0x30110
movapd 0x50(%rsp), %xmm5
movsd (%rsi,%r13), %xmm1
unpcklps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm5, %xmm2
mulsd %xmm0, %xmm2
movsd %xmm2, (%rdx,%r13)
movsd (%rcx,%r13), %xmm1
unpcklps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm5, %xmm2
mulsd %xmm0, %xmm2
movsd %xmm2, (%rdi,%r13)
addsd (%rdx,%r13), %xmm2
movsd %xmm2, (%r8,%r13)
addsd %xmm2, %xmm6
movq (%r9,%r13), %r12
movq %r12, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm5, %xmm2
mulsd %xmm0, %xmm2
movsd %xmm2, (%r10,%r13)
movq (%r11,%r13), %rax
movq %rax, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm5, %xmm2
mulsd %xmm0, %xmm2
movsd %xmm2, (%r15,%r13)
addsd (%r10,%r13), %xmm2
movsd %xmm2, (%rbp,%r13)
addq %r12, %rax
movq %rax, (%rbx,%r13)
addq $0x8, %r13
cmpq %r13, %r14
jne 0xb54d
jmp 0xb628
xorpd %xmm6, %xmm6
movsd %xmm6, 0x200(%rsp)
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0xf0(%rsp), %rdi
leaq 0xd8(%rsp), %rcx
movq 0x30(%rsp), %rsi
callq 0x13670
leaq 0x2fe4a(%rip), %r12     # 0x3b4a8
movslq (%r12), %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0xd8(%rsp), %rdi
leaq 0x4f(%rsp), %rcx
callq 0x13670
movq 0x40(%rsp), %r13
movq 0x88(%rsp), %rbx
movq 0xd0(%rsp), %r14
movq %rbx, 0x88(%rsp)
movslq (%r12), %rbx
testq %rbx, %rbx
jle 0xb772
movq 0x330(%r13), %rcx
movq 0x320(%rcx), %rax
movsd 0x370(%r13), %xmm1
unpcklps 0x24a58(%rip), %xmm1    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
movq 0x338(%rcx), %rcx
subpd 0x24a39(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq 0xf0(%rsp), %rdx
xorpd %xmm6, %xmm6
movq 0xd8(%rsp), %rsi
xorl %edi, %edi
movsd 0x249c7(%rip), %xmm1    # 0x300c8
xorpd %xmm7, %xmm7
movsd 0x24a13(%rip), %xmm4    # 0x30120
movapd 0x249fb(%rip), %xmm5    # 0x30110
movsd (%rax,%rdi,8), %xmm2
unpcklps %xmm4, %xmm2            # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm5, %xmm2
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
addsd %xmm2, %xmm3
divsd %xmm0, %xmm3
mulsd %xmm1, %xmm3
movsd %xmm3, (%rdx,%rdi,8)
movsd (%rcx,%rdi,8), %xmm2
unpcklps %xmm4, %xmm2            # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm5, %xmm2
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
addsd %xmm2, %xmm3
divsd %xmm0, %xmm3
mulsd %xmm1, %xmm3
movsd %xmm3, (%rsi,%rdi,8)
addsd (%rdx,%rdi,8), %xmm6
addsd %xmm3, %xmm7
incq %rdi
cmpq %rdi, %rbx
jne 0xb715
jmp 0xb77a
xorpd %xmm7, %xmm7
xorpd %xmm6, %xmm6
movsd %xmm7, 0x80(%rsp)
movsd %xmm6, 0x30(%rsp)
leaq 0x2fcfa(%rip), %rax     # 0x3b48a
movq %rax, %r12
movb (%rax), %al
testb %al, %al
je 0xb897
movq 0x2f82c(%rip), %rdi     # 0x3afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq 0x2f811(%rip), %rdi     # 0x3afd0
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r15
leaq 0x258f6(%rip), %rsi     # 0x310f6
movl $0x11, %edx
movq %rax, %rdi
callq 0x4340
movq 0x370(%r13), %rax
xorl %edx, %edx
leaq 0x2fc63(%rip), %rcx     # 0x3b480
divq (%rcx)
movq %r15, %rdi
movq %rax, %rsi
callq 0x41e0
movq %rax, %r15
leaq 0x258d3(%rip), %rsi     # 0x31108
movl $0x26, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xb903
movq 0x2f72e(%rip), %rdi     # 0x3afd0
leaq 0x25886(%rip), %rsi     # 0x3112f
movl $0x12, %edx
callq 0x4340
movq 0x370(%r13), %rax
xorl %edx, %edx
leaq 0x2fbbd(%rip), %rcx     # 0x3b480
divq (%rcx)
movq 0x2f703(%rip), %rdi     # 0x3afd0
movq %rax, %rsi
callq 0x41e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xb9c9
movq 0x2f6be(%rip), %rdi     # 0x3afd0
leaq 0x25829(%rip), %rsi     # 0x31142
movl $0x12, %edx
callq 0x4340
movq 0x370(%r13), %rsi
movq 0x2f69f(%rip), %rdi     # 0x3afd0
callq 0x41e0
movq %rax, %r15
leaq 0x25815(%rip), %rsi     # 0x31155
movl $0x11, %edx
movq %rax, %rdi
callq 0x4340
movq %r15, %rdi
movq 0xc8(%rsp), %rsi
callq 0x41e0
movq %rax, %r15
leaq 0x27b7a(%rip), %rsi     # 0x334e1
movl $0x1, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xbaaa
movq 0x2f5f8(%rip), %r15     # 0x3afd0
leaq 0x25788(%rip), %rsi     # 0x31167
movl $0x18, %edx
movq %r15, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0xba23
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movapd 0x230(%rsp), %xmm1
unpcklps 0x246ed(%rip), %xmm1    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x246d5(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd 0x50(%rsp), %xmm0
mulsd 0x2466b(%rip), %xmm0    # 0x300c0
movb $0x20, 0xe0(%rbp)
movq 0x2f56d(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x2570e(%rip), %rsi     # 0x31180
movl $0x22, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xbb62
movq 0x2f517(%rip), %r15     # 0x3afd0
leaq 0x256e3(%rip), %rsi     # 0x311a3
movl $0x18, %edx
movq %r15, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0xbb04
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x2f4be(%rip), %rdi     # 0x3afd0
movsd 0x200(%rsp), %xmm0
callq 0x4460
movq %rax, %r15
leaq 0x25692(%rip), %rsi     # 0x311bc
movl $0x1d, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xbcb4
movq 0x2f45f(%rip), %r15     # 0x3afd0
leaq 0x25662(%rip), %rsi     # 0x311da
movl $0x18, %edx
movq %r15, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0xbbbc
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movsd 0x128(%r13), %xmm1
unpcklps 0x2454d(%rip), %xmm1    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x24535(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
leaq 0x10(%rsp), %rdi
callq 0x11e88
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x2f3ce(%rip), %rdi     # 0x3afd0
callq 0x4340
movq %rax, %r15
leaq 0x26d8a(%rip), %rsi     # 0x3299b
movl $0x2, %edx
movq %rax, %rdi
callq 0x4340
movq 0x128(%r13), %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x255bc(%rip), %rsi     # 0x311f3
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbcb0
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
movb (%r12), %al
leaq 0x2f82d(%rip), %rcx     # 0x3b4e8
cmpl $0x0, (%rcx)
je 0xbf4e
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
movsd 0x30(%rsp), %xmm0
movsd %xmm1, 0x50(%rsp)
divsd %xmm1, %xmm0
movsd %xmm0, 0x30(%rsp)
testb $0x1, %al
je 0xbd96
movq 0x2f2e0(%rip), %r15     # 0x3afd0
leaq 0x257d0(%rip), %rsi     # 0x314c7
movl $0x18, %edx
movq %r15, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0xbd3b
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x2f287(%rip), %rdi     # 0x3afd0
movsd 0x30(%rsp), %xmm0
callq 0x4460
movq %rax, %r15
leaq 0x25499(%rip), %rsi     # 0x311f7
movl $0x2, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
movsd 0x80(%rsp), %xmm0
divsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
testb $0x1, %al
je 0xbe66
movq 0x2f213(%rip), %r15     # 0x3afd0
leaq 0x25726(%rip), %rsi     # 0x314ea
movl $0x18, %edx
movq %r15, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0xbe08
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x2f1ba(%rip), %rdi     # 0x3afd0
movsd 0x80(%rsp), %xmm0
callq 0x4460
movq %rax, %r15
leaq 0x253c9(%rip), %rsi     # 0x311f7
movl $0x2, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xbf4e
movq 0x2f15b(%rip), %r15     # 0x3afd0
leaq 0x2537e(%rip), %rsi     # 0x311fa
movl $0x18, %edx
movq %r15, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rbp
cmpb $0x0, 0xe1(%r15,%rax)
jne 0xbec0
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movsd 0x30(%rsp), %xmm0
addsd 0x80(%rsp), %xmm0
movq 0x2f0f3(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x2530b(%rip), %rsi     # 0x311f7
movl $0x2, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xbfcc
movq 0x2f077(%rip), %rdi     # 0x3afd0
leaq 0x252b3(%rip), %rsi     # 0x31213
movl $0x18, %edx
callq 0x4340
leaq 0x2f527(%rip), %rax     # 0x3b498
movsd 0xc0(%rsp), %xmm0
mulsd (%rax), %xmm0
movq 0x2f04b(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x25298(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc04a
movq 0x2eff9(%rip), %rdi     # 0x3afd0
leaq 0x25252(%rip), %rsi     # 0x31230
movl $0x18, %edx
callq 0x4340
leaq 0x2f4a9(%rip), %rax     # 0x3b498
movsd 0xa8(%rsp), %xmm0
mulsd (%rax), %xmm0
movq 0x2efcd(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x2521a(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc0cb
movq 0x2ef7b(%rip), %rdi     # 0x3afd0
leaq 0x251ed(%rip), %rsi     # 0x31249
movl $0x18, %edx
callq 0x4340
movl 0x78(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2f41f(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm0
movq 0x2ef4c(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x25199(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc158
movq 0x2eef6(%rip), %rdi     # 0x3afd0
leaq 0x25181(%rip), %rsi     # 0x31262
movl $0x18, %edx
callq 0x4340
xorl %eax, %eax
movl 0x7c(%rsp), %ecx
cmpl $-0x1, %ecx
cmovnel %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2f392(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm0
movq 0x2eebf(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x2510c(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc1d6
movq 0x2ee6d(%rip), %rdi     # 0x3afd0
leaq 0x25111(%rip), %rsi     # 0x3127b
movl $0x18, %edx
callq 0x4340
leaq 0x2f31d(%rip), %rax     # 0x3b498
movapd 0x210(%rsp), %xmm0
mulsd (%rax), %xmm0
movq 0x2ee41(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x2508e(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc254
movq 0x2edef(%rip), %rdi     # 0x3afd0
leaq 0x25048(%rip), %rsi     # 0x31230
movl $0x18, %edx
callq 0x4340
leaq 0x2f29f(%rip), %rax     # 0x3b498
movsd 0xa0(%rsp), %xmm0
mulsd (%rax), %xmm0
movq 0x2edc3(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x25010(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc2d5
movq 0x2ed71(%rip), %rdi     # 0x3afd0
leaq 0x24fe3(%rip), %rsi     # 0x31249
movl $0x18, %edx
callq 0x4340
movl 0x74(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2f215(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm0
movq 0x2ed42(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24f8f(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc362
movq 0x2ecec(%rip), %rdi     # 0x3afd0
leaq 0x24f77(%rip), %rsi     # 0x31262
movl $0x18, %edx
callq 0x4340
xorl %eax, %eax
movl 0x70(%rsp), %ecx
cmpl $-0x1, %ecx
cmovnel %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2f188(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm0
movq 0x2ecb5(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24f02(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc3e0
movq 0x2ec63(%rip), %rdi     # 0x3afd0
leaq 0x24f20(%rip), %rsi     # 0x31294
movl $0x18, %edx
callq 0x4340
leaq 0x2f21b(%rip), %rax     # 0x3b5a0
movsd 0xb8(%rsp), %xmm0
mulsd (%rax), %xmm0
movq 0x2ec37(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24e84(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc45e
movq 0x2ebe5(%rip), %rdi     # 0x3afd0
leaq 0x24e3e(%rip), %rsi     # 0x31230
movl $0x18, %edx
callq 0x4340
leaq 0x2f19d(%rip), %rax     # 0x3b5a0
movsd 0x98(%rsp), %xmm0
mulsd (%rax), %xmm0
movq 0x2ebb9(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24e06(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc4df
movq 0x2eb67(%rip), %rdi     # 0x3afd0
leaq 0x24dd9(%rip), %rsi     # 0x31249
movl $0x18, %edx
callq 0x4340
movl 0x6c(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2f113(%rip), %rax     # 0x3b5a0
mulsd (%rax), %xmm0
movq 0x2eb38(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24d85(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc56c
movq 0x2eae2(%rip), %rdi     # 0x3afd0
leaq 0x24d6d(%rip), %rsi     # 0x31262
movl $0x18, %edx
callq 0x4340
xorl %eax, %eax
movl 0x68(%rsp), %ecx
cmpl $-0x1, %ecx
cmovnel %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2f086(%rip), %rax     # 0x3b5a0
mulsd (%rax), %xmm0
movq 0x2eaab(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24cf8(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc5ea
movq 0x2ea59(%rip), %rdi     # 0x3afd0
leaq 0x24d2f(%rip), %rsi     # 0x312ad
movl $0x18, %edx
callq 0x4340
movsd 0xb0(%rsp), %xmm0
leaq 0x2ef00(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm0
movq 0x2ea2d(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24c7a(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc668
movq 0x2e9db(%rip), %rdi     # 0x3afd0
leaq 0x24c34(%rip), %rsi     # 0x31230
movl $0x18, %edx
callq 0x4340
leaq 0x2ee8b(%rip), %rax     # 0x3b498
movsd 0x90(%rsp), %xmm0
mulsd (%rax), %xmm0
movq 0x2e9af(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24bfc(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc6e9
movq 0x2e95d(%rip), %rdi     # 0x3afd0
leaq 0x24bcf(%rip), %rsi     # 0x31249
movl $0x18, %edx
callq 0x4340
movl 0x64(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2ee01(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm0
movq 0x2e92e(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24b7b(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc7a0
movq 0x2e8d8(%rip), %rdi     # 0x3afd0
leaq 0x24b63(%rip), %rsi     # 0x31262
movl $0x18, %edx
callq 0x4340
xorl %eax, %eax
movl 0x60(%rsp), %ecx
cmpl $-0x1, %ecx
cmovnel %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
leaq 0x2ed74(%rip), %rax     # 0x3b498
mulsd (%rax), %xmm0
movq 0x2e8a1(%rip), %rdi     # 0x3afd0
callq 0x4460
movq %rax, %r15
leaq 0x24aee(%rip), %rsi     # 0x3122c
movl $0x3, %edx
movq %rax, %rdi
callq 0x4340
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc7f9
movq 0x2e825(%rip), %rdi     # 0x3afd0
leaq 0x24b14(%rip), %rsi     # 0x312c6
movl $0x18, %edx
callq 0x4340
movq 0x2e80d(%rip), %rdi     # 0x3afd0
movq %r14, %rsi
callq 0x41e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc857
movq 0x2e7cc(%rip), %rdi     # 0x3afd0
leaq 0x24ad4(%rip), %rsi     # 0x312df
movl $0x18, %edx
callq 0x4340
movq 0x2e7b4(%rip), %rdi     # 0x3afd0
movq 0x88(%rsp), %rsi
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc8b5
movq 0x2e76e(%rip), %rdi     # 0x3afd0
leaq 0x24a8f(%rip), %rsi     # 0x312f8
movl $0x18, %edx
callq 0x4340
movq 0x2e756(%rip), %rdi     # 0x3afd0
movq 0x1f8(%rsp), %rsi
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc913
movq 0x2e710(%rip), %rdi     # 0x3afd0
leaq 0x24a4a(%rip), %rsi     # 0x31311
movl $0x18, %edx
callq 0x4340
movq 0x2e6f8(%rip), %rdi     # 0x3afd0
movq 0x1f0(%rsp), %rsi
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc971
movq 0x2e6b2(%rip), %rdi     # 0x3afd0
leaq 0x24a05(%rip), %rsi     # 0x3132a
movl $0x18, %edx
callq 0x4340
movq 0x2e69a(%rip), %rdi     # 0x3afd0
movq 0x1e8(%rsp), %rsi
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xc9cf
movq 0x2e654(%rip), %rdi     # 0x3afd0
leaq 0x249c0(%rip), %rsi     # 0x31343
movl $0x18, %edx
callq 0x4340
movq 0x2e63c(%rip), %rdi     # 0x3afd0
movq 0x1e0(%rsp), %rsi
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xca29
movq 0x2e5f6(%rip), %rdi     # 0x3afd0
leaq 0x2497b(%rip), %rsi     # 0x3135c
movl $0x18, %edx
callq 0x4340
movl 0x8(%rsp), %esi
movq 0x2e5da(%rip), %rdi     # 0x3afd0
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xca87
movq 0x2e59c(%rip), %rdi     # 0x3afd0
leaq 0x2493a(%rip), %rsi     # 0x31375
movl $0x18, %edx
callq 0x4340
movq 0x2e584(%rip), %rdi     # 0x3afd0
movq 0x1d8(%rsp), %rsi
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcb07
movq 0x2e53e(%rip), %rdi     # 0x3afd0
leaq 0x248f5(%rip), %rsi     # 0x3138e
movl $0x18, %edx
callq 0x4340
movl 0x38(%rsp), %esi
movq 0x2e522(%rip), %rdi     # 0x3afd0
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0x2e99a(%rip), %rax     # 0x3b4a8
movl (%rax), %eax
testl %eax, %eax
jle 0xd72d
xorl %ebx, %ebx
movq 0x2e4af(%rip), %r14     # 0x3afd0
leaq 0x24a21(%rip), %r15     # 0x31549
movb (%r12), %al
cmpb $0x1, %al
jne 0xcb91
movl $0x20, %edx
movq %r14, %rdi
leaq 0x24868(%rip), %rsi     # 0x313a7
callq 0x4340
movq %r14, %rdi
movl %ebx, %esi
callq 0x4500
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
leaq 0x24f92(%rip), %rsi     # 0x31af2
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcbe7
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24824(%rip), %rsi     # 0x313c8
callq 0x4340
movq 0x68(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x41e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcc40
movl $0x22, %edx
movq %r14, %rdi
leaq 0x247f1(%rip), %rsi     # 0x313eb
callq 0x4340
movq 0x80(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x41e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcc99
movl $0x22, %edx
movq %r14, %rdi
leaq 0x247bb(%rip), %rsi     # 0x3140e
callq 0x4340
movq 0x98(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x41e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xccf2
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24785(%rip), %rsi     # 0x31431
callq 0x4340
movq 0xb0(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x41e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcd4b
movl $0x22, %edx
movq %r14, %rdi
leaq 0x2474f(%rip), %rsi     # 0x31454
callq 0x4340
movq 0xc8(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x41e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcda4
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24719(%rip), %rsi     # 0x31477
callq 0x4340
movq 0xe0(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %r14, %rdi
callq 0x41e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcdfc
movl $0x22, %edx
movq %r14, %rdi
leaq 0x246e3(%rip), %rsi     # 0x3149a
callq 0x4340
movq 0xf8(%r13), %rax
movl (%rax,%rbx,4), %esi
movq %r14, %rdi
callq 0x41e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
leaq 0x2e6e5(%rip), %rcx     # 0x3b4e8
cmpl $0x0, (%rcx)
je 0xcf69
testb $0x1, %al
je 0xce7c
movl $0x22, %edx
movq %r14, %rdi
leaq 0x2469e(%rip), %rsi     # 0x314bd
callq 0x4340
movq 0xf0(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x243ac(%rip), %rsi     # 0x311f7
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xceec
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24651(%rip), %rsi     # 0x314e0
callq 0x4340
movq 0xd8(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x2433c(%rip), %rsi     # 0x311f7
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xcf69
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24604(%rip), %rsi     # 0x31503
callq 0x4340
movq 0xf0(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq 0xd8(%rsp), %rax
addsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x242bf(%rip), %rsi     # 0x311f7
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xd017
movl $0x22, %edx
movq %r14, %rdi
leaq 0x245a6(%rip), %rsi     # 0x31526
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xcfbc
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x198(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x5, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xd0c5
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24521(%rip), %rsi     # 0x3154f
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd06a
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x180(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x5, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xd173
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24496(%rip), %rsi     # 0x31572
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd118
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x168(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x5, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xd221
movl $0x22, %edx
movq %r14, %rdi
leaq 0x2440b(%rip), %rsi     # 0x31595
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd1c6
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x150(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x5, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xd2cf
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24380(%rip), %rsi     # 0x315b8
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd274
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x138(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x5, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xd37d
movl $0x22, %edx
movq %r14, %rdi
leaq 0x242f5(%rip), %rsi     # 0x315db
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd322
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x120(%rsp), %rax
movsd (%rax,%rbx,8), %xmm0
movq %r14, %rdi
callq 0x4460
movq %rax, %rbp
movl $0x5, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movb (%r12), %al
testb $0x1, %al
je 0xd4a3
movl $0x22, %edx
movq %r14, %rdi
leaq 0x2426a(%rip), %rsi     # 0x315fe
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd3d0
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x160(%r13), %rax
movsd (%rax,%rbx,8), %xmm1
unpcklps 0x22d36(%rip), %xmm1    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x22d1e(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
leaq 0x10(%rsp), %rdi
callq 0x11e88
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x4340
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x2556f(%rip), %rsi     # 0x3299b
callq 0x4340
movq 0x160(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %rbp, %rdi
callq 0x41e0
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x23d9d(%rip), %rsi     # 0x311f3
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd49f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
movb (%r12), %al
testb $0x1, %al
je 0xd5c9
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24167(%rip), %rsi     # 0x31621
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd4f6
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x178(%r13), %rax
movsd (%rax,%rbx,8), %xmm1
unpcklps 0x22c10(%rip), %xmm1    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x22bf8(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
leaq 0x10(%rsp), %rdi
callq 0x11e88
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x4340
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x25449(%rip), %rsi     # 0x3299b
callq 0x4340
movq 0x178(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq %rbp, %rdi
callq 0x41e0
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x23c77(%rip), %rsi     # 0x311f3
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd5c5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
movb (%r12), %al
testb $0x1, %al
je 0xd717
movl $0x22, %edx
movq %r14, %rdi
leaq 0x24064(%rip), %rsi     # 0x31644
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x7, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rbp
cmpb $0x0, 0xe1(%r14,%rax)
jne 0xd61c
movq %rbp, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%rbp)
movb $0x20, 0xe0(%rbp)
movq 0x108(%rsp), %rax
movsd (%rax,%rbx,8), %xmm1
unpcklps 0x22ae9(%rip), %xmm1    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x22ad1(%rip), %xmm1    # 0x30110
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
leaq 0x10(%rsp), %rdi
callq 0x11e88
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x4340
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x25322(%rip), %rsi     # 0x3299b
callq 0x4340
movq 0x108(%rsp), %rax
movq (%rax,%rbx,8), %rsi
movq %rbp, %rdi
callq 0x41e0
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x23b4f(%rip), %rsi     # 0x311f3
callq 0x4340
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd717
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
incq %rbx
leaq 0x2dd87(%rip), %rax     # 0x3b4a8
movslq (%rax), %rax
cmpq %rax, %rbx
jl 0xcb28
cmpb $0x0, (%r12)
je 0xd783
movq 0x2d895(%rip), %rbx     # 0x3afd0
leaq 0x23f25(%rip), %rsi     # 0x31667
movl $0x5d, %edx
movq %rbx, %rdi
callq 0x4340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x42d0
movsbl %al, %esi
movq 0x2d863(%rip), %rdi     # 0x3afd0
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0x2dd27(%rip), %rax     # 0x3b4a8
movl (%rax), %eax
movq 0x38(%rsp), %xmm0
movq 0x8(%rsp), %xmm1
punpcklqdq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0]
pand 0x22995(%rip), %xmm1    # 0x30130
movdqu 0x1b0(%r13), %xmm0
paddq %xmm1, %xmm0
movdqu %xmm0, 0x1b0(%r13)
movq 0x128(%r13), %rcx
addq %rcx, 0x2c8(%r13)
movq $0x0, 0x128(%r13)
testl %eax, %eax
jle 0xd846
movq 0x130(%r13), %rcx
movq 0x148(%r13), %rdx
movq 0x2d0(%r13), %rsi
movq 0x2e8(%r13), %rdi
movq 0x160(%r13), %r8
movq 0x300(%r13), %r9
movq 0x178(%r13), %r10
movq 0x318(%r13), %r11
movl %eax, %ebx
xorl %r14d, %r14d
xorl %r15d, %r15d
movq (%rcx,%r15,8), %r12
addq %r12, (%rsi,%r15,8)
movq (%rdx,%r15,8), %r12
addq %r12, (%rdi,%r15,8)
movq %r14, (%rcx,%r15,8)
movq %r14, (%rdx,%r15,8)
movq (%r8,%r15,8), %r12
addq %r12, (%r9,%r15,8)
movq (%r10,%r15,8), %r12
addq %r12, (%r11,%r15,8)
movq %r14, (%r8,%r15,8)
movq %r14, (%r10,%r15,8)
incq %r15
cmpq %r15, %rbx
jne 0xd80e
movdqu 0x190(%r13), %xmm0
movdqu 0x1a0(%r13), %xmm1
movdqu 0x1c0(%r13), %xmm2
paddq %xmm0, %xmm2
movdqu 0x1d0(%r13), %xmm0
paddq %xmm1, %xmm0
movdqu %xmm2, 0x1c0(%r13)
movdqu %xmm0, 0x1d0(%r13)
pxor %xmm0, %xmm0
movq 0x208(%rsp), %rcx
movdqu %xmm0, 0x10(%rcx)
movdqu %xmm0, (%rcx)
testl %eax, %eax
movapd 0x220(%rsp), %xmm1
movapd 0x1c0(%rsp), %xmm2
jle 0xd9a7
movq 0x68(%r13), %rcx
movq 0x80(%r13), %rdx
movq 0x1e0(%r13), %rax
movq %rax, 0x8(%rsp)
movq 0x1f8(%r13), %rax
movq %rax, 0x38(%rsp)
movq 0x98(%r13), %r8
movq 0x210(%r13), %rax
movq %rax, 0x50(%rsp)
movq 0xb0(%r13), %r10
movq 0x228(%r13), %r11
movq 0xc8(%r13), %rbx
movq 0x240(%r13), %r14
movq 0xe0(%r13), %r15
movq %r13, %rax
movq 0x258(%r13), %r13
movq 0xf8(%rax), %rbp
movq 0x270(%rax), %r12
xorl %esi, %esi
xorl %edi, %edi
movq (%rcx,%rdi,8), %rax
movq 0x8(%rsp), %r9
addq %rax, (%r9,%rdi,8)
movq %rsi, (%rcx,%rdi,8)
movq (%rdx,%rdi,8), %rax
movq 0x38(%rsp), %r9
addq %rax, (%r9,%rdi,8)
movq %rsi, (%rdx,%rdi,8)
movq (%r8,%rdi,8), %rax
movq 0x50(%rsp), %r9
addq %rax, (%r9,%rdi,8)
movq %rsi, (%r8,%rdi,8)
movq (%r10,%rdi,8), %rax
addq %rax, (%r11,%rdi,8)
movq %rsi, (%r10,%rdi,8)
movq (%rbx,%rdi,8), %rax
addq %rax, (%r14,%rdi,8)
movq %rsi, (%rbx,%rdi,8)
movq (%r15,%rdi,8), %rax
addq %rax, (%r13,%rdi,8)
movq %rsi, (%r15,%rdi,8)
movl (%rbp,%rdi,4), %eax
addl %eax, (%r12,%rdi,4)
movl $0x0, (%rbp,%rdi,4)
incq %rdi
leaq 0x2db0e(%rip), %rax     # 0x3b4a8
movslq (%rax), %rax
cmpq %rax, %rdi
jl 0xd928
movq 0x40(%rsp), %r13
movl 0x288(%r13), %ecx
movl 0x78(%rsp), %edx
cmpl %ecx, %edx
cmoval %edx, %ecx
movl 0x28c(%r13), %edx
movl 0x7c(%rsp), %esi
cmpl %esi, %edx
cmovbl %edx, %esi
movl %ecx, 0x288(%r13)
movl %esi, 0x28c(%r13)
movl 0x290(%r13), %ecx
movl 0x74(%rsp), %edx
cmpl %ecx, %edx
cmoval %edx, %ecx
movl %ecx, 0x290(%r13)
movl 0x294(%r13), %ecx
movl 0x70(%rsp), %edx
cmpl %edx, %ecx
cmovbl %ecx, %edx
movl %edx, 0x294(%r13)
movl 0x298(%r13), %ecx
movl 0x6c(%rsp), %edx
cmpl %ecx, %edx
cmoval %edx, %ecx
movl %ecx, 0x298(%r13)
movl 0x29c(%r13), %ecx
movl 0x68(%rsp), %edx
cmpl %edx, %ecx
cmovbl %ecx, %edx
movl %edx, 0x29c(%r13)
movl 0x2a0(%r13), %ecx
movl 0x64(%rsp), %edx
cmpl %ecx, %edx
cmoval %edx, %ecx
movl %ecx, 0x2a0(%r13)
movl 0x2a4(%r13), %ecx
movl 0x60(%rsp), %edx
cmpl %edx, %ecx
cmovbl %ecx, %edx
movl %edx, 0x2a4(%r13)
movupd 0x2a8(%r13), %xmm0
addpd %xmm0, %xmm2
movupd %xmm2, 0x2a8(%r13)
movupd 0x2b8(%r13), %xmm0
unpcklpd 0x1b0(%rsp), %xmm1      # xmm1 = xmm1[0],mem[0]
addpd %xmm0, %xmm1
movupd %xmm1, 0x2b8(%r13)
leaq 0x2d9f5(%rip), %rcx     # 0x3b490
cmpb $0x0, (%rcx)
je 0xdad3
movq $0x0, 0x3e0(%r13)
testl %eax, %eax
jle 0xdad3
movq 0x3e8(%r13), %rcx
movq 0x400(%r13), %rdx
movl %eax, %eax
xorl %esi, %esi
xorl %edi, %edi
movq %rsi, (%rcx,%rdi,8)
movq %rsi, (%rdx,%rdi,8)
incq %rdi
cmpq %rdi, %rax
jne 0xdac3
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0xdaf0
movq 0xe8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0xf0(%rsp), %rdi
testq %rdi, %rdi
je 0xdb0d
movq 0x100(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x108(%rsp), %rdi
testq %rdi, %rdi
je 0xdb2a
movq 0x118(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0xdb47
movq 0x130(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0xdb64
movq 0x148(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0xdb81
movq 0x160(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0xdb9e
movq 0x178(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0xdbbb
movq 0x190(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x198(%rsp), %rdi
testq %rdi, %rdi
je 0xdbd8
movq 0x1a8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x2d3ff(%rip), %rdi     # 0x3aff0
leaq 0x2242a(%rip), %rsi     # 0x30022
movq %r10, %rbx
callq 0x42e0
leaq 0x2259f(%rip), %rsi     # 0x301a6
movq %rax, %rdi
callq 0x42e0
leaq 0x22c81(%rip), %rsi     # 0x30897
movq %rax, %rdi
callq 0x42e0
movq %rax, %rdi
movl $0x2ca, %esi            # imm = 0x2CA
callq 0x4500
leaq 0x2240f(%rip), %rsi     # 0x30041
movq %rax, %rdi
callq 0x42e0
leaq 0x23455(%rip), %rsi     # 0x31096
movq %rax, %rdi
callq 0x42e0
movq 0x10(%rbx), %rsi
subq 0x8(%rbx), %rsi
sarq $0x2, %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0x2346f(%rip), %rsi     # 0x310d3
movq %rax, %rdi
callq 0x42e0
movq 0x28(%rbx), %rsi
subq 0x20(%rbx), %rsi
sarq $0x2, %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0x2345d(%rip), %rsi     # 0x310e4
movq %rax, %rdi
callq 0x42e0
movq 0x40(%rbx), %rsi
subq 0x38(%rbx), %rsi
sarq $0x2, %rsi
movq %rax, %rdi
callq 0x40c0
movq %rax, %rdi
callq 0x4170
xorl %edi, %edi
callq 0x4360
jmp 0xdd2f
movq %rax, %rbx
jmp 0xdd4f
movq %rax, %rbx
jmp 0xdd6c
movq %rax, %rbx
jmp 0xdd89
movq %rax, %rbx
jmp 0xdda6
movq %rax, %rbx
jmp 0xddc3
movq %rax, %rbx
jmp 0xdde0
movq %rax, %rbx
jmp 0xddfd
movq %rax, %rbx
jmp 0xde1a
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0xdd19
jmp 0xdd2f
jmp 0xdd2f
jmp 0xdd2f
jmp 0xdd0c
jmp 0xdd0c
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xdd32
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
jmp 0xdd32
jmp 0xdd2f
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0xdd4f
movq 0xe8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0xf0(%rsp), %rdi
testq %rdi, %rdi
je 0xdd6c
movq 0x100(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x108(%rsp), %rdi
testq %rdi, %rdi
je 0xdd89
movq 0x118(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0xdda6
movq 0x130(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0xddc3
movq 0x148(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0xdde0
movq 0x160(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0xddfd
movq 0x178(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0xde1a
movq 0x190(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x198(%rsp), %rdi
testq %rdi, %rdi
je 0xde37
movq 0x1a8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq %rbx, %rdi
callq 0x4540
nop