// File: /workspace/github_cpp_makefile_star2_O2/estwings57[P]CasHMC/sources/CasHMCWrapper.cpp
// Function: CasHMC::CasHMCWrapper::PrintSetting(tm)
void CasHMCWrapper::PrintSetting(struct tm t)
{
	settingOut<<"****************************************************************"<<endl;
	settingOut<<"*                      CasHMC version 1.3                      *"<<endl;
	settingOut<<"*                       setting log file                       *"<<endl;
	settingOut<<"*            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;
	settingOut<<"****************************************************************"<<endl;
	
	settingOut<<endl<<"        ==== Memory transaction setting ===="<<endl;
	settingOut<<ALI(36)<<" CPU cycles to be simulated : "<<numSimCycles<<endl;
	settingOut<<ALI(36)<<" CPU clock period [ns] : "<<CPU_CLK_PERIOD<<endl;
	settingOut<<ALI(36)<<" Data size of DRAM request [byte] : "<<TRANSACTION_SIZE<<endl;
	settingOut<<ALI(36)<<" Request buffer max size : "<<MAX_REQ_BUF<<endl;
	settingOut<<ALI(36)<<" Trace type : "<<traceType<<endl;
	if(traceType == "random") {
		settingOut<<ALI(36)<<" Frequency of requests : "<<memUtil<<endl;
		settingOut<<ALI(36)<<" The percentage of reads [%] : "<<rwRatio<<endl;
	}
	else if(traceType == "file") {
		settingOut<<ALI(36)<<" Trace file name : "<<traceFileName<<endl;
	}

	settingOut<<endl<<"              ==== Link(SerDes) setting ===="<<endl;
	settingOut<<ALI(36)<<" CRC checking : "<<(CRC_CHECK ? "Enable" : "Disable")<<endl;
	settingOut<<ALI(36)<<" The number of links : "<<NUM_LINKS<<endl;
	settingOut<<ALI(36)<<" Link width : "<<LINK_WIDTH<<endl;
	settingOut<<ALI(36)<<" Link speed [Gb/s] : "<<LINK_SPEED<<endl;
	settingOut<<ALI(36)<<" Link master/slave max buffer size: "<<MAX_LINK_BUF<<endl;
	settingOut<<ALI(36)<<" Crossbar switch buffer size : "<<MAX_CROSS_BUF<<endl;
	settingOut<<ALI(36)<<" Retry buffer max size : "<<MAX_RETRY_BUF<<endl;
	settingOut<<ALI(36)<<" Time to calculate CRC [clk] : "<<CRC_CAL_CYCLE<<endl;
	settingOut<<ALI(36)<<" The number of IRTRY packet : "<<NUM_OF_IRTRY<<endl;
	settingOut<<ALI(36)<<" Retry attempt limit : "<<RETRY_ATTEMPT_LIMIT<<endl;
	settingOut<<ALI(36)<<" Link BER (the power of 10) : "<<LINK_BER<<endl;
	switch(LINK_PRIORITY) {
	case ROUND_ROBIN:
		settingOut<<ALI(36)<<" Link priority scheme : "<<"ROUND_ROBIN"<<endl;
		break;
	case BUFFER_AWARE:
		settingOut<<ALI(36)<<" Link priority scheme : "<<"BUFFER_AWARE"<<endl;
		break;
	default:
		settingOut<<ALI(36)<<" Link priority scheme : "<<LINK_PRIORITY<<endl;
		break;
	}
	switch(LINK_POWER) {
	case NO_MANAGEMENT:
		settingOut<<ALI(36)<<" Link power management : "<<"NO_MANAGEMENT"<<endl;
		break;
	case QUIESCE_SLEEP:
		settingOut<<ALI(36)<<" Link power management : "<<"QUIESCE_SLEEP"<<endl;
		break;
	case MSHR:
		settingOut<<ALI(36)<<" Link power management : "<<"MSHR"<<endl;
		break;
	case LINK_MONITOR:
		settingOut<<ALI(36)<<" Link power management : "<<"LINK_MONITOR"<<endl;
		break;
	case AUTONOMOUS:
		settingOut<<ALI(36)<<" Link power management : "<<"AUTONOMOUS"<<endl;
		break;
	default:
		settingOut<<ALI(36)<<" Link power management : "<<LINK_POWER<<endl;
		break;
	}
	if(LINK_POWER != NO_MANAGEMENT) {
		settingOut<<ALI(36)<<" Rreqeust num to awake : "<<AWAKE_REQ<<endl;
		settingOut<<ALI(36)<<" tQUIESCE : "<<tQUIESCE<<endl;
		settingOut<<ALI(36)<<" One epoch for link management : "<<LINK_EPOCH<<endl;
		settingOut<<ALI(36)<<" Scaling factor of MSHR : "<<MSHR_SCALING<<endl;
		settingOut<<ALI(36)<<" Scaling factor of link monitor : "<<LINK_SCALING<<endl;
	}
	
	settingOut<<endl<<"              ==== DRAM general setting ===="<<endl;
	settingOut<<ALI(36)<<" Memory density : "<<MEMORY_DENSITY<<endl;
	settingOut<<ALI(36)<<" The number of vaults : "<<NUM_VAULTS<<endl;
	settingOut<<ALI(36)<<" The number of banks : "<<NUM_BANKS<<endl;
	settingOut<<ALI(36)<<" The number of rows : "<<NUM_ROWS<<endl;
	settingOut<<ALI(36)<<" The number of columns : "<<NUM_COLS<<endl;
	settingOut<<ALI(36)<<" Address mapping (Max block size) : "<<ADDRESS_MAPPING<<endl;
	settingOut<<ALI(36)<<" Vault controller max buffer size : "<<MAX_VLT_BUF<<endl;
	settingOut<<ALI(36)<<" Command queue max size : "<<MAX_CMD_QUE<<endl;
	settingOut<<ALI(36)<<" Command queue structure : "<<(QUE_PER_BANK ? "Bank-level command queue (Bank-Level parallelism)" : "Vault-level command queue (Non bank-Level parallelism)")<<endl;
	settingOut<<ALI(36)<<" Memory scheduling : "<<(OPEN_PAGE ? "open page policy" : "close page policy" )<<endl;
	settingOut<<ALI(36)<<" The maximum row buffer accesses : "<<MAX_ROW_ACCESSES<<endl;
	settingOut<<ALI(36)<<" Power-down mode : "<<(USE_LOW_POWER ? "Enable" : "Disable")<<endl;
	
	settingOut<<endl<<" ==== DRAM timing setting ===="<<endl;
	settingOut<<" Refresh period : "<<REFRESH_PERIOD<<endl;
	settingOut<<" tCK    [ns] : "<<tCK<<endl;
	settingOut<<" CWL   [clk] : "<<CWL<<endl;
	settingOut<<"  CL   [clk] : "<<CL<<endl;
	settingOut<<"  AL   [clk] : "<<AL<<endl;
	settingOut<<" tRAS  [clk] : "<<tRAS<<endl;
	settingOut<<" tRCD  [clk] : "<<tRCD<<endl;
	settingOut<<" tRRD  [clk] : "<<tRRD<<endl;
	settingOut<<" tRC   [clk] : "<<tRC<<endl;
	settingOut<<" tRP   [clk] : "<<tRP<<endl;
	settingOut<<" tCCD  [clk] : "<<tCCD<<endl;
	settingOut<<" tRTP  [clk] : "<<tRTP<<endl;
	settingOut<<" tWTR  [clk] : "<<tWTR<<endl;
	settingOut<<" tWR   [clk] : "<<tWR<<endl;
	settingOut<<" tRTRS [clk] : "<<tRTRS<<endl;
	settingOut<<" tRFC  [clk] : "<<tRFC<<endl;
	settingOut<<" tFAW  [clk] : "<<tFAW<<endl;
	settingOut<<" tCKE  [clk] : "<<tCKE<<endl;
	settingOut<<" tXP   [clk] : "<<tXP<<endl;
	settingOut<<" tCMD  [clk] : "<<tCMD<<endl;
	settingOut<<"  RL   [clk] : "<<RL<<endl;
	settingOut<<"  WL   [clk] : "<<WL<<endl;
	settingOut<<"  BL   [clk] : "<<BL<<endl;
	
	settingOut.flush();		settingOut.close();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r14
leaq 0x418(%rdi), %rbx
leaq 0x1d251(%rip), %r15     # 0x24243
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4300
movq %rax, %rdi
callq 0x4180
leaq 0x1d278(%rip), %rsi     # 0x24284
movq %rbx, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
leaq 0x1d956(%rip), %rsi     # 0x24979
movq %rbx, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
leaq 0x1d28b(%rip), %rsi     # 0x242c5
movq %rbx, %rdi
callq 0x4300
movl $0x76c, %esi            # imm = 0x76C
addl 0x54(%rsp), %esi
movq %rax, %rdi
callq 0x44f0
leaq 0x1d280(%rip), %r12     # 0x242da
movq %rax, %rdi
movq %r12, %rsi
callq 0x4300
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0x2
popq %r13
movq %r13, 0x10(%rax,%rcx)
pushq $0x30
popq %rbp
movq %rax, %rdi
movl %ebp, %esi
callq 0x4440
movl 0x50(%rsp), %esi
incl %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
movq %r12, %rsi
callq 0x4300
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r13, 0x10(%rax,%rcx)
movq %rax, %rdi
movl %ebp, %esi
callq 0x4440
movl 0x4c(%rsp), %esi
movq %rax, %rdi
callq 0x44f0
leaq 0x1d218(%rip), %rsi     # 0x242dc
movq %rax, %rdi
callq 0x4300
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r13, 0x10(%rax,%rcx)
movq %rax, %rdi
movl %ebp, %esi
callq 0x4440
movl 0x48(%rsp), %esi
movq %rax, %rdi
callq 0x44f0
leaq 0x1d782(%rip), %r12     # 0x24877
movq %rax, %rdi
movq %r12, %rsi
callq 0x4300
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r13, 0x10(%rax,%rcx)
movq %rax, %rdi
movl %ebp, %esi
callq 0x4440
movl 0x44(%rsp), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
movq %r12, %rsi
callq 0x4300
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r13, 0x10(%rax,%rcx)
movq %rax, %rdi
movl %ebp, %esi
callq 0x4440
movl 0x40(%rsp), %esi
movq %rax, %rdi
callq 0x44f0
leaq 0x1d1c7(%rip), %rsi     # 0x2431d
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq %rbx, %rdi
callq 0x4180
leaq 0x1d832(%rip), %rsi     # 0x249ba
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq 0x418(%r14), %rax
movq -0x18(%rax), %rax
pushq $0x24
popq %r15
movq %r15, 0x428(%r14,%rax)
pushq $0x20
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d824(%rip), %rsi     # 0x249e7
movq %rax, %rdi
callq 0x4300
movq 0x2a23e(%rip), %rsi     # 0x31410
movq %rax, %rdi
callq 0x42e0
movq %rax, %rdi
callq 0x4180
movq 0x418(%r14), %rax
movq -0x18(%rax), %rax
movq %r15, 0x428(%r14,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d800(%rip), %rsi     # 0x24a06
movq %rax, %rdi
callq 0x4300
leaq 0x2a283(%rip), %rcx     # 0x31498
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq 0x418(%r14), %rax
movq -0x18(%rax), %rax
movq %r15, 0x428(%r14,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d7d3(%rip), %rsi     # 0x24a20
movq %rax, %rdi
callq 0x4300
leaq 0x2a244(%rip), %rcx     # 0x314a0
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq 0x418(%r14), %rax
movq -0x18(%rax), %rax
movq %r15, 0x428(%r14,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d7b3(%rip), %rsi     # 0x24a45
movq %rax, %rdi
callq 0x4300
leaq 0x2a203(%rip), %rcx     # 0x314a4
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq 0x418(%r14), %rax
movq -0x18(%rax), %rax
movq %r15, 0x428(%r14,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1e44e(%rip), %rsi     # 0x25725
movq %rax, %rdi
callq 0x4300
leaq 0x2a142(%rip), %r14     # 0x31428
movq %rax, %rdi
movq %r14, %rsi
callq 0x42b0
movq %rax, %rdi
callq 0x4180
leaq 0x1d761(%rip), %rsi     # 0x24a61
movq %r14, %rdi
callq 0xde4e
testb %al, %al
je 0x7383
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
pushq $0x20
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1e409(%rip), %rsi     # 0x25735
movq %rax, %rdi
callq 0x4300
movsd 0x2a0dc(%rip), %xmm0    # 0x31418
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1e3e7(%rip), %rsi     # 0x25750
movq %rax, %rdi
callq 0x4300
movsd 0x2a0a7(%rip), %xmm0    # 0x31420
movq %rax, %rdi
callq 0x4470
jmp 0x73d3
leaq 0x2a09e(%rip), %rdi     # 0x31428
leaq 0x1ea18(%rip), %rsi     # 0x25da9
callq 0xde4e
testb %al, %al
je 0x73db
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x24, 0x10(%rbx,%rax)
pushq $0x20
popq %rsi
movq %rbx, %rdi
callq 0x4440
leaq 0x1d6ac(%rip), %rsi     # 0x24a68
movq %rax, %rdi
callq 0x4300
leaq 0x2a07d(%rip), %rsi     # 0x31448
movq %rax, %rdi
callq 0x42b0
movq %rax, %rdi
callq 0x4180
movq %rbx, %rdi
callq 0x4180
leaq 0x1d692(%rip), %rsi     # 0x24a7c
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
pushq $0x20
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d68f(%rip), %rsi     # 0x24aa9
movq %rax, %rdi
callq 0x4300
leaq 0x2a0a3(%rip), %rcx     # 0x314cc
leaq 0x1d68a(%rip), %rdx     # 0x24aba
cmpb $0x0, (%rcx)
leaq 0x1d687(%rip), %r14     # 0x24ac1
movq %r14, %rsi
cmovneq %rdx, %rsi
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d65b(%rip), %rsi     # 0x24ac9
movq %rax, %rdi
callq 0x4300
leaq 0x2a02b(%rip), %rcx     # 0x314a8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d635(%rip), %rsi     # 0x24ae1
movq %rax, %rdi
callq 0x4300
leaq 0x29ff1(%rip), %rcx     # 0x314ac
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d606(%rip), %rsi     # 0x24af0
movq %rax, %rdi
callq 0x4300
leaq 0x29fb7(%rip), %rcx     # 0x314b0
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d5dc(%rip), %rsi     # 0x24b06
movq %rax, %rdi
callq 0x4300
leaq 0x29f7f(%rip), %rcx     # 0x314b8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d5c3(%rip), %rsi     # 0x24b2b
movq %rax, %rdi
callq 0x4300
leaq 0x29f4d(%rip), %rcx     # 0x314c4
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d5a5(%rip), %rsi     # 0x24b4b
movq %rax, %rdi
callq 0x4300
leaq 0x29f07(%rip), %rcx     # 0x314bc
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d581(%rip), %rsi     # 0x24b65
movq %rax, %rdi
callq 0x4300
leaq 0x29edd(%rip), %rcx     # 0x314d0
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d561(%rip), %rsi     # 0x24b85
movq %rax, %rdi
callq 0x4300
leaq 0x29ea5(%rip), %rcx     # 0x314d8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d542(%rip), %rsi     # 0x24ba4
movq %rax, %rdi
callq 0x4300
leaq 0x29e6b(%rip), %rcx     # 0x314dc
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d51c(%rip), %rsi     # 0x24bbc
movq %rax, %rdi
callq 0x4300
leaq 0x29e31(%rip), %rcx     # 0x314e0
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
leaq 0x29e1c(%rip), %r13     # 0x314e4
movl (%r13), %r12d
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d4f2(%rip), %rsi     # 0x24bdb
movq %rax, %rdi
callq 0x4300
cmpl $0x1, %r12d
je 0x7705
testl %r12d, %r12d
jne 0x7716
leaq 0x1d4f1(%rip), %rsi     # 0x24bf4
jmp 0x770c
leaq 0x1d4f4(%rip), %rsi     # 0x24c00
movq %rax, %rdi
callq 0x4300
jmp 0x7722
movl (%r13), %esi
movq %rax, %rdi
callq 0x44f0
leaq 0x1d391(%rip), %r12     # 0x24aba
movq %rax, %rdi
callq 0x4180
leaq 0x29db0(%rip), %r13     # 0x314e8
movl (%r13), %ebp
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x24, 0x10(%rbx,%rax)
pushq $0x20
popq %rsi
movq %rbx, %rdi
callq 0x4440
leaq 0x1d4af(%rip), %rsi     # 0x24c0d
movq %rax, %rdi
callq 0x4300
cmpq $0x4, %rbp
ja 0x8015
leaq 0x1c9d9(%rip), %rcx     # 0x24150
movslq (%rcx,%rbp,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
leaq 0x1d4a0(%rip), %rsi     # 0x24c27
jmp 0x77ab
leaq 0x1d4c5(%rip), %rsi     # 0x24c55
jmp 0x77ab
leaq 0x1d4aa(%rip), %rsi     # 0x24c43
jmp 0x77ab
leaq 0x1d4a6(%rip), %rsi     # 0x24c48
jmp 0x77ab
leaq 0x1d48a(%rip), %rsi     # 0x24c35
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
cmpl $0x0, (%r13)
je 0x7907
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
pushq $0x20
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d47a(%rip), %rsi     # 0x24c60
movq %rax, %rdi
callq 0x4300
leaq 0x29cf7(%rip), %rcx     # 0x314ec
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d456(%rip), %rsi     # 0x24c7a
movq %rax, %rdi
callq 0x4300
leaq 0x29d1d(%rip), %rcx     # 0x31550
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d423(%rip), %rsi     # 0x24c87
movq %rax, %rdi
callq 0x4300
leaq 0x29c7d(%rip), %rcx     # 0x314f0
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d405(%rip), %rsi     # 0x24ca9
movq %rax, %rdi
callq 0x4300
leaq 0x29c45(%rip), %rcx     # 0x314f8
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d3e0(%rip), %rsi     # 0x24cc4
movq %rax, %rdi
callq 0x4300
leaq 0x29c0d(%rip), %rcx     # 0x31500
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
movq %rbx, %rdi
callq 0x4180
leaq 0x1d3d1(%rip), %rsi     # 0x24ce7
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
pushq $0x20
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d3ce(%rip), %rsi     # 0x24d14
movq %rax, %rdi
callq 0x4300
leaq 0x29c23(%rip), %rcx     # 0x31578
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d3a3(%rip), %rsi     # 0x24d27
movq %rax, %rdi
callq 0x4300
leaq 0x29be9(%rip), %rcx     # 0x3157c
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d37e(%rip), %rsi     # 0x24d40
movq %rax, %rdi
callq 0x4300
leaq 0x29baf(%rip), %rcx     # 0x31580
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d358(%rip), %rsi     # 0x24d58
movq %rax, %rdi
callq 0x4300
leaq 0x29b75(%rip), %rcx     # 0x31584
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d331(%rip), %rsi     # 0x24d6f
movq %rax, %rdi
callq 0x4300
leaq 0x29b3b(%rip), %rcx     # 0x31588
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d30d(%rip), %rsi     # 0x24d89
movq %rax, %rdi
callq 0x4300
leaq 0x29b01(%rip), %r13     # 0x3158c
movl (%r13), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d2f2(%rip), %rsi     # 0x24dae
movq %rax, %rdi
callq 0x4300
leaq 0x299f5(%rip), %rcx     # 0x314c0
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d2d9(%rip), %rsi     # 0x24dd3
movq %rax, %rdi
callq 0x4300
leaq 0x299bf(%rip), %rcx     # 0x314c8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d2b6(%rip), %rsi     # 0x24dee
movq %rax, %rdi
callq 0x4300
leaq 0x29a49(%rip), %rcx     # 0x31590
leaq 0x1d2bc(%rip), %rdx     # 0x24e0a
leaq 0x1d2e7(%rip), %rsi     # 0x24e3c
cmpb $0x0, (%rcx)
cmovneq %rdx, %rsi
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d2ea(%rip), %rsi     # 0x24e73
movq %rax, %rdi
callq 0x4300
leaq 0x299f9(%rip), %rcx     # 0x31591
leaq 0x1d2ea(%rip), %rdx     # 0x24e89
leaq 0x1d2f4(%rip), %rsi     # 0x24e9a
cmpb $0x0, (%rcx)
cmovneq %rdx, %rsi
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d2d2(%rip), %rsi     # 0x24eac
movq %rax, %rdi
callq 0x4300
leaq 0x299ab(%rip), %rcx     # 0x31594
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r15, 0x10(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x4440
leaq 0x1d2b8(%rip), %rsi     # 0x24ed0
movq %rax, %rdi
callq 0x4300
leaq 0x29971(%rip), %rcx     # 0x31598
cmpb $0x0, (%rcx)
cmovneq %r12, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x4300
movq %rax, %rdi
callq 0x4180
movq %rbx, %rdi
callq 0x4180
leaq 0x1d294(%rip), %rsi     # 0x24ee4
movq %rax, %rdi
callq 0x4300
movq %rax, %rdi
callq 0x4180
leaq 0x1d29c(%rip), %rsi     # 0x24f03
movq %rbx, %rdi
callq 0x4300
leaq 0x29926(%rip), %rcx     # 0x3159c
movl (%rcx), %esi
movq %rax, %rdi
callq 0x44f0
movq %rax, %rdi
callq 0x4180
leaq 0x1d287(%rip), %rsi     # 0x24f16
movq %rbx, %rdi
callq 0x4300
leaq 0x29902(%rip), %rcx     # 0x315a0
movsd (%rcx), %xmm0
movq %rax, %rdi
callq 0x4470
movq %rax, %rdi
callq 0x4180
leaq 0x1d26d(%rip), %rsi     # 0x24f26
movq %rbx, %rdi
callq 0x4300
leaq 0x298e0(%rip), %r14     # 0x315a8
movl (%r14), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d254(%rip), %rsi     # 0x24f36
movq %rbx, %rdi
callq 0x4300
leaq 0x298bb(%rip), %r12     # 0x315ac
movl (%r12), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d23a(%rip), %rsi     # 0x24f46
movq %rbx, %rdi
callq 0x4300
leaq 0x29895(%rip), %r15     # 0x315b0
movl (%r15), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d221(%rip), %rsi     # 0x24f56
movq %rbx, %rdi
callq 0x4300
leaq 0x29870(%rip), %rcx     # 0x315b4
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d209(%rip), %rsi     # 0x24f66
movq %rbx, %rdi
callq 0x4300
leaq 0x2984c(%rip), %rcx     # 0x315b8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d1f1(%rip), %rsi     # 0x24f76
movq %rbx, %rdi
callq 0x4300
leaq 0x29828(%rip), %rcx     # 0x315bc
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d1d9(%rip), %rsi     # 0x24f86
movq %rbx, %rdi
callq 0x4300
leaq 0x29804(%rip), %rcx     # 0x315c0
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d1c1(%rip), %rsi     # 0x24f96
movq %rbx, %rdi
callq 0x4300
leaq 0x297e0(%rip), %rcx     # 0x315c4
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d1a9(%rip), %rsi     # 0x24fa6
movq %rbx, %rdi
callq 0x4300
leaq 0x297bc(%rip), %rcx     # 0x315c8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d191(%rip), %rsi     # 0x24fb6
movq %rbx, %rdi
callq 0x4300
leaq 0x29798(%rip), %rcx     # 0x315cc
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d179(%rip), %rsi     # 0x24fc6
movq %rbx, %rdi
callq 0x4300
leaq 0x29774(%rip), %rcx     # 0x315d0
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d161(%rip), %rsi     # 0x24fd6
movq %rbx, %rdi
callq 0x4300
leaq 0x29750(%rip), %rcx     # 0x315d4
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d149(%rip), %rsi     # 0x24fe6
movq %rbx, %rdi
callq 0x4300
leaq 0x2972c(%rip), %rcx     # 0x315d8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d131(%rip), %rsi     # 0x24ff6
movq %rbx, %rdi
callq 0x4300
leaq 0x29708(%rip), %rcx     # 0x315dc
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d119(%rip), %rsi     # 0x25006
movq %rbx, %rdi
callq 0x4300
leaq 0x296e4(%rip), %rcx     # 0x315e0
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d101(%rip), %rsi     # 0x25016
movq %rbx, %rdi
callq 0x4300
leaq 0x296c0(%rip), %rcx     # 0x315e4
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d0e9(%rip), %rsi     # 0x25026
movq %rbx, %rdi
callq 0x4300
leaq 0x2969c(%rip), %rcx     # 0x315e8
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d0d1(%rip), %rsi     # 0x25036
movq %rbx, %rdi
callq 0x4300
leaq 0x29678(%rip), %rcx     # 0x315ec
movl (%rcx), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d0b9(%rip), %rsi     # 0x25046
movq %rbx, %rdi
callq 0x4300
movl (%r12), %esi
addl (%r15), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d0a3(%rip), %rsi     # 0x25056
movq %rbx, %rdi
callq 0x4300
movl (%r14), %esi
addl (%r15), %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
leaq 0x1d08e(%rip), %rsi     # 0x25066
movq %rbx, %rdi
callq 0x4300
movl (%r13), %esi
shrl $0x5, %esi
movq %rax, %rdi
callq 0x4210
movq %rax, %rdi
callq 0x4180
movq %rbx, %rdi
callq 0x4220
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x43f0
movl (%r13), %esi
movq %rax, %rdi
callq 0x44f0
jmp 0x77b3