// File: gvaumour[P]cache-simulator/src/HybridCache.cc
// Function: HybridCache::printResults(std::ostream&)
void 
HybridCache::printResults(std::ostream& out) 
{
	uint64_t total_missSRAM =  stats_missSRAM[0] + stats_missSRAM[1];
	uint64_t total_missNVM =  stats_missNVM[0] + stats_missNVM[1];
	uint64_t total_miss = total_missNVM + total_missSRAM;
	
	uint64_t total_accessSRAM =  stats_hitsSRAM[0] + stats_hitsSRAM[1];
	uint64_t total_accessNVM =  stats_hitsNVM[0] + stats_hitsNVM[1];
	uint64_t total_access = total_accessSRAM + total_accessNVM;
	
	string entete = "Cache";
	if(m_ID != -1){
		entete+="L1";
		if(m_isInstructionCache)
		 	entete += "I";
		else
			entete += "D";
	}
	else
		entete+= "LLC";

	if(total_access != 0 || stats_bypass > 0){
	
		out << entete << ":Results" << endl;
		out << entete << ":TotalAccess\t"<< total_access << endl;
		out << entete << ":TotalHits\t" << total_access - total_miss << endl;
		out << entete << ":TotalMiss\t" << total_miss << endl;		
		out << entete << ":MissRate\t" << (double)(total_miss)*100 / (double)(total_access) << "%"<< endl;
//		out << entete << ":CleanWriteBack\t" << stats_cleanWBNVM + stats_cleanWBSRAM << endl;
//		out << entete << ":DirtyWriteBack\t" << stats_dirtyWBNVM + stats_dirtyWBSRAM << endl;
		out << entete << ":AllocateDemand\t" << stats_allocateDemand << endl;
		out << entete << ":AllocateWB\t" << stats_allocateWB << endl;
		
		out << entete << ":Eviction\t" << stats_evict << endl;	
		out << entete << ":Bypass\t" << stats_bypass << endl;
		out << entete << ":DemandBypass\t" << stats_demand_BP << endl;
		out << entete << ":WBBypass\t" << stats_WB_BP << endl;
		
		out << entete << ":NVMways:reads\t"<< stats_hitsNVM[0] + stats_migration[true]<< endl;
		out << entete << ":NVMways:writes\t"<< stats_hitsNVM[1] + stats_dirtyWBNVM + stats_migration[false] << endl;		
		out << entete << ":SRAMways:reads\t"<< stats_hitsSRAM[0] + stats_migration[false] << endl;
		out << entete << ":SRAMways:writes\t"<< stats_hitsSRAM[1] + stats_dirtyWBSRAM + stats_migration[true]<< endl;	
		
		//cout << "************************" << endl;
		
		if(m_printStats)
		{
			out << entete << ":MigrationFromNVM\t" << stats_migration[true] << endl;
			out << entete << ":MigrationFromSRAM\t" << stats_migration[false] << endl;
			out << entete << ":BlockClassification" << endl;
			out << entete << ":FetchedBlocks\t" << stats_nbFetchedLines << endl;
			out << entete << ":DeadBlocks\t" << stats_nbLostLine << "\t" << \
				(double)stats_nbLostLine*100/(double)stats_nbFetchedLines << "%" << endl;
			out << entete << ":ROBlocks\t" << stats_nbROlines << "\t" << \
				(double)stats_nbROlines*100/(double)stats_nbFetchedLines << "%" << endl;
			out << entete << ":WOBlocks\t" << stats_nbWOlines << "\t" << \
				(double)stats_nbWOlines*100/(double)stats_nbFetchedLines << "%" << endl;
			out << entete << ":RWBlocks\t" << stats_nbRWlines << "\t" << \
				(double)stats_nbRWlines*100/(double)stats_nbFetchedLines << "%" << endl;
			/*
			out << "Histogram NB Write" << endl;
			for(auto p : stats_histo_ratioRW){
				out << p.first << "\t" << p.second << endl;
			}*/
		}

		out << entete << ":instructionsDistribution" << endl;

		for(unsigned i = 0 ; i < stats_operations.size() ; i++){
			if(stats_operations[i] != 0)
				out << entete << ":" << memCmd_str[i]  << "\t" << stats_operations[i] << endl;
		}
		m_predictor->printStats(out, entete);
	
	}
}

// Assembly:
subq $0x3f8, %rsp            # imm = 0x3F8
movq %rdi, 0x3f0(%rsp)
movq %rsi, 0x3e8(%rsp)
movq 0x3f0(%rsp), %rdi
movq %rdi, 0x328(%rsp)
addq $0xc0, %rdi
movq %rdi, 0x300(%rsp)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, 0x330(%rsp)
callq 0xfa20
movq 0x300(%rsp), %rdi
movq (%rax), %rax
movq %rax, 0x308(%rsp)
movl $0x1, %esi
movq %rsi, 0x348(%rsp)
callq 0xfa20
movq 0x328(%rsp), %rdi
movq 0x330(%rsp), %rsi
movq %rax, %rcx
movq 0x308(%rsp), %rax
movq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x3e0(%rsp)
addq $0x110, %rdi            # imm = 0x110
movq %rdi, 0x310(%rsp)
callq 0xfa20
movq 0x310(%rsp), %rdi
movq 0x348(%rsp), %rsi
movq (%rax), %rax
movq %rax, 0x318(%rsp)
callq 0xfa20
movq 0x328(%rsp), %rdi
movq 0x330(%rsp), %rsi
movq %rax, %rcx
movq 0x318(%rsp), %rax
movq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x3d8(%rsp)
movq 0x3d8(%rsp), %rax
movq 0x3e0(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x3d0(%rsp)
addq $0xd8, %rdi
movq %rdi, 0x320(%rsp)
callq 0xfa20
movq 0x320(%rsp), %rdi
movq 0x348(%rsp), %rsi
movq (%rax), %rax
movq %rax, 0x338(%rsp)
callq 0xfa20
movq 0x328(%rsp), %rdi
movq 0x330(%rsp), %rsi
movq %rax, %rcx
movq 0x338(%rsp), %rax
movq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x3c8(%rsp)
addq $0x128, %rdi            # imm = 0x128
movq %rdi, 0x340(%rsp)
callq 0xfa20
movq 0x340(%rsp), %rdi
movq 0x348(%rsp), %rsi
movq (%rax), %rax
movq %rax, 0x350(%rsp)
callq 0xfa20
movq %rax, %rcx
movq 0x350(%rsp), %rax
movq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x3c0(%rsp)
movq 0x3c8(%rsp), %rax
movq 0x3c0(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x3b8(%rsp)
leaq 0x397(%rsp), %rdi
movq %rdi, 0x358(%rsp)
callq 0x56a0
movq 0x358(%rsp), %rdx
leaq 0x36f4d(%rip), %rsi     # 0x72873
leaq 0x398(%rsp), %rdi
callq 0x5530
jmp 0x3b935
leaq 0x397(%rsp), %rdi
callq 0x53e0
movq 0x328(%rsp), %rax
cmpl $-0x1, (%rax)
je 0x3b9e8
leaq 0x386ed(%rip), %rsi     # 0x74047
leaq 0x398(%rsp), %rdi
callq 0x5360
jmp 0x3b969
movq 0x328(%rsp), %rax
testb $0x1, 0x4(%rax)
je 0x3b9ce
leaq 0x372b2(%rip), %rsi     # 0x72c30
leaq 0x398(%rsp), %rdi
callq 0x5360
jmp 0x3b98d
jmp 0x3b9e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x388(%rsp)
movl %eax, 0x384(%rsp)
leaq 0x397(%rsp), %rdi
callq 0x53e0
jmp 0x3cb10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x388(%rsp)
movl %eax, 0x384(%rsp)
jmp 0x3cb03
leaq 0x360b3(%rip), %rsi     # 0x71a88
leaq 0x398(%rsp), %rdi
callq 0x5360
jmp 0x3b9e4
jmp 0x3b9e6
jmp 0x3ba00
leaq 0x386a9(%rip), %rsi     # 0x74098
leaq 0x398(%rsp), %rdi
callq 0x5360
jmp 0x3b9fe
jmp 0x3ba00
cmpq $0x0, 0x3b8(%rsp)
jne 0x3ba21
movq 0x328(%rsp), %rax
cmpq $0x0, 0x108(%rax)
jbe 0x3caee
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x2f8(%rsp)
jmp 0x3ba40
movq 0x2f8(%rsp), %rdi
leaq 0x37222(%rip), %rsi     # 0x72c71
callq 0x5380
movq %rax, 0x2f0(%rsp)
jmp 0x3ba5e
movq 0x2f0(%rsp), %rdi
movq 0x5754b(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3ba74
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x2e8(%rsp)
jmp 0x3ba93
movq 0x2e8(%rsp), %rdi
leaq 0x371d8(%rip), %rsi     # 0x72c7a
callq 0x5380
movq %rax, 0x2e0(%rsp)
jmp 0x3bab1
movq 0x2e0(%rsp), %rdi
movq 0x3b8(%rsp), %rsi
callq 0x50f0
movq %rax, 0x2d8(%rsp)
jmp 0x3bad0
movq 0x2d8(%rsp), %rdi
movq 0x574d9(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bae6
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x2d0(%rsp)
jmp 0x3bb05
movq 0x2d0(%rsp), %rdi
leaq 0x37174(%rip), %rsi     # 0x72c88
callq 0x5380
movq %rax, 0x2c8(%rsp)
jmp 0x3bb23
movq 0x2c8(%rsp), %rdi
movq 0x3b8(%rsp), %rsi
movq 0x3d0(%rsp), %rax
subq %rax, %rsi
callq 0x50f0
movq %rax, 0x2c0(%rsp)
jmp 0x3bb4d
movq 0x2c0(%rsp), %rdi
movq 0x5745c(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bb63
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x2b8(%rsp)
jmp 0x3bb82
movq 0x2b8(%rsp), %rdi
leaq 0x37103(%rip), %rsi     # 0x72c94
callq 0x5380
movq %rax, 0x2b0(%rsp)
jmp 0x3bba0
movq 0x2b0(%rsp), %rdi
movq 0x3d0(%rsp), %rsi
callq 0x50f0
movq %rax, 0x2a8(%rsp)
jmp 0x3bbbf
movq 0x2a8(%rsp), %rdi
movq 0x573ea(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bbd5
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x2a0(%rsp)
jmp 0x3bbf4
movq 0x2a0(%rsp), %rdi
leaq 0x3709d(%rip), %rsi     # 0x72ca0
callq 0x5380
movq %rax, 0x298(%rsp)
jmp 0x3bc12
movq 0x298(%rsp), %rdi
movq 0x3d0(%rsp), %xmm0
movaps 0x353e6(%rip), %xmm3    # 0x71010
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x353ea(%rip), %xmm2    # 0x71020
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x35d33(%rip), %xmm1    # 0x71980
mulsd %xmm1, %xmm0
movq 0x3b8(%rsp), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x56f0
movq %rax, 0x290(%rsp)
jmp 0x3bc80
movq 0x290(%rsp), %rdi
leaq 0x36169(%rip), %rsi     # 0x71df8
callq 0x5380
movq %rax, 0x288(%rsp)
jmp 0x3bc9e
movq 0x288(%rsp), %rdi
movq 0x5730b(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bcb4
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x280(%rsp)
jmp 0x3bcd3
movq 0x280(%rsp), %rdi
leaq 0x36fc9(%rip), %rsi     # 0x72cab
callq 0x5380
movq %rax, 0x278(%rsp)
jmp 0x3bcf1
movq 0x278(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x158(%rax), %rsi
callq 0x50f0
movq %rax, 0x270(%rsp)
jmp 0x3bd17
movq 0x270(%rsp), %rdi
movq 0x57292(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bd2d
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x268(%rsp)
jmp 0x3bd4c
movq 0x268(%rsp), %rdi
leaq 0x36f61(%rip), %rsi     # 0x72cbc
callq 0x5380
movq %rax, 0x260(%rsp)
jmp 0x3bd6a
movq 0x260(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x150(%rax), %rsi
callq 0x50f0
movq %rax, 0x258(%rsp)
jmp 0x3bd90
movq 0x258(%rsp), %rdi
movq 0x57219(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bda6
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x250(%rsp)
jmp 0x3bdc5
movq 0x250(%rsp), %rdi
leaq 0x36ef5(%rip), %rsi     # 0x72cc9
callq 0x5380
movq %rax, 0x248(%rsp)
jmp 0x3bde3
movq 0x248(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x100(%rax), %rsi
callq 0x50f0
movq %rax, 0x240(%rsp)
jmp 0x3be09
movq 0x240(%rsp), %rdi
movq 0x571a0(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3be1f
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x238(%rsp)
jmp 0x3be3e
movq 0x238(%rsp), %rdi
leaq 0x36e87(%rip), %rsi     # 0x72cd4
callq 0x5380
movq %rax, 0x230(%rsp)
jmp 0x3be5c
movq 0x230(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x108(%rax), %rsi
callq 0x50f0
movq %rax, 0x228(%rsp)
jmp 0x3be82
movq 0x228(%rsp), %rdi
movq 0x57127(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3be98
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x220(%rsp)
jmp 0x3beb7
movq 0x220(%rsp), %rdi
leaq 0x36e17(%rip), %rsi     # 0x72cdd
callq 0x5380
movq %rax, 0x218(%rsp)
jmp 0x3bed5
movq 0x218(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x160(%rax), %rsi
callq 0x50f0
movq %rax, 0x210(%rsp)
jmp 0x3befb
movq 0x210(%rsp), %rdi
movq 0x570ae(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bf11
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x208(%rsp)
jmp 0x3bf30
movq 0x208(%rsp), %rdi
leaq 0x36dad(%rip), %rsi     # 0x72cec
callq 0x5380
movq %rax, 0x200(%rsp)
jmp 0x3bf4e
movq 0x200(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x168(%rax), %rsi
callq 0x50f0
movq %rax, 0x1f8(%rsp)
jmp 0x3bf74
movq 0x1f8(%rsp), %rdi
movq 0x57035(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3bf8a
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x1f0(%rsp)
jmp 0x3bfa9
movq 0x1f0(%rsp), %rdi
leaq 0x36d3f(%rip), %rsi     # 0x72cf7
callq 0x5380
movq %rax, 0x1e8(%rsp)
jmp 0x3bfc7
movq 0x328(%rsp), %rdi
addq $0x128, %rdi            # imm = 0x128
xorl %eax, %eax
movl %eax, %esi
callq 0xfa20
movq 0x328(%rsp), %rdi
movq (%rax), %rax
movq %rax, 0x1d8(%rsp)
addq $0x170, %rdi            # imm = 0x170
movl $0x1, %esi
callq 0xfa20
movq 0x1d8(%rsp), %rsi
movq 0x1e8(%rsp), %rdi
movq (%rax), %rax
addq %rax, %rsi
callq 0x50f0
movq %rax, 0x1e0(%rsp)
jmp 0x3c028
movq 0x1e0(%rsp), %rdi
movq 0x56f81(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c03e
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x1d0(%rsp)
jmp 0x3c05d
movq 0x1d0(%rsp), %rdi
leaq 0x36c9b(%rip), %rsi     # 0x72d07
callq 0x5380
movq %rax, 0x1c8(%rsp)
jmp 0x3c07b
movq 0x328(%rsp), %rdi
addq $0x128, %rdi            # imm = 0x128
movl $0x1, %esi
callq 0xfa20
movq 0x328(%rsp), %rdi
movq (%rax), %rax
movq 0x140(%rdi), %rcx
addq %rcx, %rax
movq %rax, 0x1b8(%rsp)
addq $0x170, %rdi            # imm = 0x170
xorl %eax, %eax
movl %eax, %esi
callq 0xfa20
movq 0x1b8(%rsp), %rsi
movq 0x1c8(%rsp), %rdi
movq (%rax), %rax
addq %rax, %rsi
callq 0x50f0
movq %rax, 0x1c0(%rsp)
jmp 0x3c0e6
movq 0x1c0(%rsp), %rdi
movq 0x56ec3(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c0fc
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x1b0(%rsp)
jmp 0x3c11b
movq 0x1b0(%rsp), %rdi
leaq 0x36bee(%rip), %rsi     # 0x72d18
callq 0x5380
movq %rax, 0x1a8(%rsp)
jmp 0x3c139
movq 0x328(%rsp), %rdi
addq $0xd8, %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, 0x190(%rsp)
callq 0xfa20
movq 0x328(%rsp), %rdi
movq 0x190(%rsp), %rsi
movq (%rax), %rax
movq %rax, 0x198(%rsp)
addq $0x170, %rdi            # imm = 0x170
callq 0xfa20
movq 0x198(%rsp), %rsi
movq 0x1a8(%rsp), %rdi
movq (%rax), %rax
addq %rax, %rsi
callq 0x50f0
movq %rax, 0x1a0(%rsp)
jmp 0x3c1a5
movq 0x1a0(%rsp), %rdi
movq 0x56e04(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c1bb
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x188(%rsp)
jmp 0x3c1da
movq 0x188(%rsp), %rdi
leaq 0x36b40(%rip), %rsi     # 0x72d29
callq 0x5380
movq %rax, 0x180(%rsp)
jmp 0x3c1f8
movq 0x328(%rsp), %rdi
addq $0xd8, %rdi
movl $0x1, %esi
movq %rsi, 0x168(%rsp)
callq 0xfa20
movq 0x328(%rsp), %rdi
movq 0x168(%rsp), %rsi
movq (%rax), %rax
movq 0xf0(%rdi), %rcx
addq %rcx, %rax
movq %rax, 0x170(%rsp)
addq $0x170, %rdi            # imm = 0x170
callq 0xfa20
movq 0x170(%rsp), %rsi
movq 0x180(%rsp), %rdi
movq (%rax), %rax
addq %rax, %rsi
callq 0x50f0
movq %rax, 0x178(%rsp)
jmp 0x3c26f
movq 0x178(%rsp), %rdi
movq 0x56d3a(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c285
movq 0x328(%rsp), %rax
testb $0x1, 0x90(%rax)
je 0x3c8f3
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x160(%rsp)
jmp 0x3c2b9
movq 0x160(%rsp), %rdi
leaq 0x35b1d(%rip), %rsi     # 0x71de5
callq 0x5380
movq %rax, 0x158(%rsp)
jmp 0x3c2d7
movq 0x328(%rsp), %rdi
addq $0x170, %rdi            # imm = 0x170
movl $0x1, %esi
callq 0xfa20
movq 0x158(%rsp), %rdi
movq (%rax), %rsi
callq 0x50f0
movq %rax, 0x150(%rsp)
jmp 0x3c30a
movq 0x150(%rsp), %rdi
movq 0x56c9f(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c320
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x148(%rsp)
jmp 0x3c33f
movq 0x148(%rsp), %rdi
leaq 0x35abb(%rip), %rsi     # 0x71e09
callq 0x5380
movq %rax, 0x140(%rsp)
jmp 0x3c35d
movq 0x328(%rsp), %rdi
addq $0x170, %rdi            # imm = 0x170
xorl %eax, %eax
movl %eax, %esi
callq 0xfa20
movq 0x140(%rsp), %rdi
movq (%rax), %rsi
callq 0x50f0
movq %rax, 0x138(%rsp)
jmp 0x3c38f
movq 0x138(%rsp), %rdi
movq 0x56c1a(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c3a5
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x130(%rsp)
jmp 0x3c3c4
movq 0x130(%rsp), %rdi
leaq 0x36968(%rip), %rsi     # 0x72d3b
callq 0x5380
movq %rax, 0x128(%rsp)
jmp 0x3c3e2
movq 0x128(%rsp), %rdi
movq 0x56bc7(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c3f8
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x120(%rsp)
jmp 0x3c417
movq 0x120(%rsp), %rdi
leaq 0x3692a(%rip), %rsi     # 0x72d50
callq 0x5380
movq %rax, 0x118(%rsp)
jmp 0x3c435
movq 0x118(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1a0(%rax), %rsi
callq 0x50f0
movq %rax, 0x110(%rsp)
jmp 0x3c45b
movq 0x110(%rsp), %rdi
movq 0x56b4e(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c471
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x108(%rsp)
jmp 0x3c490
movq 0x108(%rsp), %rdi
leaq 0x368c1(%rip), %rsi     # 0x72d60
callq 0x5380
movq %rax, 0x100(%rsp)
jmp 0x3c4ae
movq 0x100(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1a8(%rax), %rsi
callq 0x50f0
movq %rax, 0xf8(%rsp)
jmp 0x3c4d4
movq 0xf8(%rsp), %rdi
leaq 0x36780(%rip), %rsi     # 0x72c63
callq 0x5380
movq %rax, 0xf0(%rsp)
jmp 0x3c4f2
movq 0xf0(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1a8(%rax), %xmm0
movaps 0x34aff(%rip), %xmm3    # 0x71010
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x34b03(%rip), %xmm2    # 0x71020
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x3544c(%rip), %xmm1    # 0x71980
mulsd %xmm1, %xmm0
movq 0x1a0(%rax), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x56f0
movq %rax, 0xe8(%rsp)
jmp 0x3c566
movq 0xe8(%rsp), %rdi
leaq 0x35883(%rip), %rsi     # 0x71df8
callq 0x5380
movq %rax, 0xe0(%rsp)
jmp 0x3c584
movq 0xe0(%rsp), %rdi
movq 0x56a25(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c59a
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0xd8(%rsp)
jmp 0x3c5b9
movq 0xd8(%rsp), %rdi
leaq 0x367a5(%rip), %rsi     # 0x72d6d
callq 0x5380
movq %rax, 0xd0(%rsp)
jmp 0x3c5d7
movq 0xd0(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1b0(%rax), %rsi
callq 0x50f0
movq %rax, 0xc8(%rsp)
jmp 0x3c5fd
movq 0xc8(%rsp), %rdi
leaq 0x36657(%rip), %rsi     # 0x72c63
callq 0x5380
movq %rax, 0xc0(%rsp)
jmp 0x3c61b
movq 0xc0(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1b0(%rax), %xmm0
movaps 0x349d6(%rip), %xmm3    # 0x71010
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x349da(%rip), %xmm2    # 0x71020
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x35323(%rip), %xmm1    # 0x71980
mulsd %xmm1, %xmm0
movq 0x1a0(%rax), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x56f0
movq %rax, 0xb8(%rsp)
jmp 0x3c68f
movq 0xb8(%rsp), %rdi
leaq 0x3575a(%rip), %rsi     # 0x71df8
callq 0x5380
movq %rax, 0xb0(%rsp)
jmp 0x3c6ad
movq 0xb0(%rsp), %rdi
movq 0x568fc(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c6c3
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0xa8(%rsp)
jmp 0x3c6e2
movq 0xa8(%rsp), %rdi
leaq 0x36687(%rip), %rsi     # 0x72d78
callq 0x5380
movq %rax, 0xa0(%rsp)
jmp 0x3c700
movq 0xa0(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1d0(%rax), %rsi
callq 0x50f0
movq %rax, 0x98(%rsp)
jmp 0x3c726
movq 0x98(%rsp), %rdi
leaq 0x3652e(%rip), %rsi     # 0x72c63
callq 0x5380
movq %rax, 0x90(%rsp)
jmp 0x3c744
movq 0x90(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1d0(%rax), %xmm0
movaps 0x348ad(%rip), %xmm3    # 0x71010
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x348b1(%rip), %xmm2    # 0x71020
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x351fa(%rip), %xmm1    # 0x71980
mulsd %xmm1, %xmm0
movq 0x1a0(%rax), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x56f0
movq %rax, 0x88(%rsp)
jmp 0x3c7b8
movq 0x88(%rsp), %rdi
leaq 0x35631(%rip), %rsi     # 0x71df8
callq 0x5380
movq %rax, 0x80(%rsp)
jmp 0x3c7d6
movq 0x80(%rsp), %rdi
movq 0x567d3(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c7ec
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x78(%rsp)
jmp 0x3c808
movq 0x78(%rsp), %rdi
leaq 0x3656f(%rip), %rsi     # 0x72d83
callq 0x5380
movq %rax, 0x70(%rsp)
jmp 0x3c820
movq 0x70(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1c0(%rax), %rsi
callq 0x50f0
movq %rax, 0x68(%rsp)
jmp 0x3c840
movq 0x68(%rsp), %rdi
leaq 0x36417(%rip), %rsi     # 0x72c63
callq 0x5380
movq %rax, 0x60(%rsp)
jmp 0x3c858
movq 0x60(%rsp), %rdi
movq 0x328(%rsp), %rax
movq 0x1c0(%rax), %xmm0
movaps 0x3479c(%rip), %xmm3    # 0x71010
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x347a0(%rip), %xmm2    # 0x71020
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x350e9(%rip), %xmm1    # 0x71980
mulsd %xmm1, %xmm0
movq 0x1a0(%rax), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x56f0
movq %rax, 0x58(%rsp)
jmp 0x3c8c6
movq 0x58(%rsp), %rdi
leaq 0x35526(%rip), %rsi     # 0x71df8
callq 0x5380
movq %rax, 0x50(%rsp)
jmp 0x3c8de
movq 0x50(%rsp), %rdi
movq 0x566ce(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c8f1
jmp 0x3c8f3
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x48(%rsp)
jmp 0x3c90f
movq 0x48(%rsp), %rdi
leaq 0x36473(%rip), %rsi     # 0x72d8e
callq 0x5380
movq %rax, 0x40(%rsp)
jmp 0x3c927
movq 0x40(%rsp), %rdi
movq 0x56685(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3c93a
movl $0x0, 0x380(%rsp)
movq 0x328(%rsp), %rdi
movl 0x380(%rsp), %eax
movq %rax, 0x38(%rsp)
addq $0x188, %rdi            # imm = 0x188
callq 0xfa40
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
jae 0x3ca6c
movq 0x328(%rsp), %rdi
addq $0x188, %rdi            # imm = 0x188
movl 0x380(%rsp), %eax
movl %eax, %esi
callq 0xfa20
cmpq $0x0, (%rax)
je 0x3ca54
movq 0x3e8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x5330
movq %rax, 0x30(%rsp)
jmp 0x3c9b9
movq 0x30(%rsp), %rdi
leaq 0x350ea(%rip), %rsi     # 0x71aaf
callq 0x5380
movq %rax, 0x28(%rsp)
jmp 0x3c9d1
movq 0x28(%rsp), %rdi
movl 0x380(%rsp), %eax
movl %eax, %ecx
leaq 0x569ea(%rip), %rax     # 0x933d0
movq (%rax,%rcx,8), %rsi
callq 0x5380
movq %rax, 0x20(%rsp)
jmp 0x3c9f6
movq 0x20(%rsp), %rdi
leaq 0x36261(%rip), %rsi     # 0x72c63
callq 0x5380
movq %rax, 0x18(%rsp)
jmp 0x3ca0e
movq 0x328(%rsp), %rdi
addq $0x188, %rdi            # imm = 0x188
movl 0x380(%rsp), %eax
movl %eax, %esi
callq 0xfa20
movq 0x18(%rsp), %rdi
movq (%rax), %rsi
callq 0x50f0
movq %rax, 0x10(%rsp)
jmp 0x3ca3f
movq 0x10(%rsp), %rdi
movq 0x5656d(%rip), %rsi     # 0x92fb8
callq 0x53d0
jmp 0x3ca52
jmp 0x3ca54
jmp 0x3ca56
movl 0x380(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x380(%rsp)
jmp 0x3c945
movq 0x328(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, (%rsp)
movq 0x3e8(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x360(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0x51b0
jmp 0x3caa0
movq 0x8(%rsp), %rsi
movq (%rsp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
leaq 0x360(%rsp), %rdx
callq *%rax
jmp 0x3cabc
leaq 0x360(%rsp), %rdi
callq 0x5768
jmp 0x3caee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x388(%rsp)
movl %eax, 0x384(%rsp)
leaq 0x360(%rsp), %rdi
callq 0x5768
jmp 0x3cb03
leaq 0x398(%rsp), %rdi
callq 0x5768
addq $0x3f8, %rsp            # imm = 0x3F8
retq
leaq 0x398(%rsp), %rdi
callq 0x5768
movq 0x388(%rsp), %rdi
callq 0x5690
nopl (%rax)