// File: 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
movq %rsp, %rbp
subq $0x4a0, %rsp            # imm = 0x4A0
leaq 0x10(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
addq $0x418, %rdi            # imm = 0x418
leaq 0x477de(%rip), %rsi     # 0x51201
callq 0x4380
movq %rax, %rdi
movq 0x5c57e(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x477f6(%rip), %rsi     # 0x51242
callq 0x4380
movq %rax, %rdi
movq 0x5c555(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x47ec2(%rip), %rsi     # 0x51937
callq 0x4380
movq %rax, %rdi
movq 0x5c52c(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x477e5(%rip), %rsi     # 0x51283
callq 0x4380
movq %rax, %rdi
movq -0x1f8(%rbp), %rax
movl 0x14(%rax), %esi
addl $0x76c, %esi            # imm = 0x76C
callq 0x4610
movq %rax, %rdi
leaq 0x477d3(%rip), %rsi     # 0x51298
callq 0x4380
movq %rax, -0x248(%rbp)
movl $0x2, %edi
callq 0x177b0
movq -0x248(%rbp), %rdi
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %esi
callq 0x4440
movq %rax, -0x240(%rbp)
movl $0x30, %edi
callq 0x177d0
movq -0x240(%rbp), %rdi
movb %al, -0xd(%rbp)
movzbl -0xd(%rbp), %esi
callq 0x4550
movq %rax, %rdi
movq -0x1f8(%rbp), %rax
movl 0x10(%rax), %esi
addl $0x1, %esi
callq 0x4610
movq %rax, %rdi
leaq 0x47768(%rip), %rsi     # 0x51298
callq 0x4380
movq %rax, -0x238(%rbp)
movl $0x2, %edi
callq 0x177b0
movq -0x238(%rbp), %rdi
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %esi
callq 0x4440
movq %rax, -0x230(%rbp)
movl $0x30, %edi
callq 0x177d0
movq -0x230(%rbp), %rdi
movb %al, -0x15(%rbp)
movzbl -0x15(%rbp), %esi
callq 0x4550
movq %rax, %rdi
movq -0x1f8(%rbp), %rax
movl 0xc(%rax), %esi
callq 0x4610
movq %rax, %rdi
leaq 0x47702(%rip), %rsi     # 0x5129a
callq 0x4380
movq %rax, -0x228(%rbp)
movl $0x2, %edi
callq 0x177b0
movq -0x228(%rbp), %rdi
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %esi
callq 0x4440
movq %rax, -0x220(%rbp)
movl $0x30, %edi
callq 0x177d0
movq -0x220(%rbp), %rdi
movb %al, -0x1d(%rbp)
movzbl -0x1d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
movq -0x1f8(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x4610
movq %rax, %rdi
leaq 0x47c35(%rip), %rsi     # 0x51835
callq 0x4380
movq %rax, -0x218(%rbp)
movl $0x2, %edi
callq 0x177b0
movq -0x218(%rbp), %rdi
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %esi
callq 0x4440
movq %rax, -0x210(%rbp)
movl $0x30, %edi
callq 0x177d0
movq -0x210(%rbp), %rdi
movb %al, -0x25(%rbp)
movzbl -0x25(%rbp), %esi
callq 0x4550
movq %rax, %rdi
movq -0x1f8(%rbp), %rax
movl 0x4(%rax), %esi
callq 0x4610
movq %rax, %rdi
leaq 0x47bcd(%rip), %rsi     # 0x51835
callq 0x4380
movq %rax, -0x208(%rbp)
movl $0x2, %edi
callq 0x177b0
movq -0x208(%rbp), %rdi
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %esi
callq 0x4440
movq %rax, -0x200(%rbp)
movl $0x30, %edi
callq 0x177d0
movq -0x200(%rbp), %rdi
movb %al, -0x2d(%rbp)
movzbl -0x2d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
movq -0x1f8(%rbp), %rax
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
leaq 0x4760c(%rip), %rsi     # 0x512db
callq 0x4380
movq %rax, %rdi
movq 0x5c2d2(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x47509(%rip), %rsi     # 0x51201
callq 0x4380
movq %rax, %rdi
movq 0x5c2a9(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
movq 0x5c28f(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, %rdi
leaq 0x47c48(%rip), %rsi     # 0x51978
callq 0x4380
movq %rax, %rdi
movq 0x5c271(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x1f0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x1f0(%rbp), %rdi
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %esi
callq 0x4440
movq %rax, -0x1e8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x1e8(%rbp), %rdi
movb %al, -0x35(%rbp)
movzbl -0x35(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x47c03(%rip), %rsi     # 0x519a5
callq 0x4380
movq %rax, %rdi
movq 0x5c6ff(%rip), %rsi     # 0x664b0
callq 0x4670
movq %rax, %rdi
movq 0x5c1f0(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x1e0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x1e0(%rbp), %rdi
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %esi
callq 0x4440
movq %rax, -0x1d8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x1d8(%rbp), %rdi
movb %al, -0x3d(%rbp)
movzbl -0x3d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x47ba1(%rip), %rsi     # 0x519c4
callq 0x4380
movq %rax, %rdi
leaq 0x5c706(%rip), %rax     # 0x66538
movsd (%rax), %xmm0
callq 0x4690
movq %rax, %rdi
movq 0x5c16b(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x1d0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x1d0(%rbp), %rdi
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %esi
callq 0x4440
movq %rax, -0x1c8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x1c8(%rbp), %rdi
movb %al, -0x45(%rbp)
movzbl -0x45(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x47b36(%rip), %rsi     # 0x519de
callq 0x4380
movq %rax, %rdi
leaq 0x5c689(%rip), %rax     # 0x66540
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5c0e8(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x1c0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x1c0(%rbp), %rdi
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %esi
callq 0x4440
movq %rax, -0x1b8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x1b8(%rbp), %rdi
movb %al, -0x4d(%rbp)
movzbl -0x4d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x47ad8(%rip), %rsi     # 0x51a03
callq 0x4380
movq %rax, %rdi
leaq 0x5c60a(%rip), %rax     # 0x66544
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5c065(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x1a8(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x1a8(%rbp), %rdi
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %esi
callq 0x4440
movq %rax, -0x1a0(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x1a0(%rbp), %rdi
movb %al, -0x55(%rbp)
movzbl -0x55(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x48735(%rip), %rsi     # 0x526e3
callq 0x4380
movq %rax, %rdi
leaq 0x5c50b(%rip), %rsi     # 0x664c8
callq 0x4320
movq %rax, %rdi
movq 0x5bfe4(%rip), %rsi     # 0x65fb0
callq 0x43c0
leaq 0x5c4f0(%rip), %rdi     # 0x664c8
leaq 0x47a40(%rip), %rsi     # 0x51a1f
callq 0x17d00
testb $0x1, %al
jne 0x9fed
jmp 0xa0f6
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x268(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x268(%rbp), %rdi
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %esi
callq 0x4440
movq %rax, -0x260(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x260(%rbp), %rdi
movb %al, -0x5d(%rbp)
movzbl -0x5d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x486a8(%rip), %rsi     # 0x526f3
callq 0x4380
movq %rax, %rdi
movsd 0x5c45d(%rip), %xmm0    # 0x664b8
callq 0x4690
movq %rax, %rdi
movq 0x5bf46(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x258(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x258(%rbp), %rdi
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %esi
callq 0x4440
movq %rax, -0x250(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x250(%rbp), %rdi
movb %al, -0x65(%rbp)
movzbl -0x65(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x48641(%rip), %rsi     # 0x5270e
callq 0x4380
movq %rax, %rdi
movsd 0x5c3e3(%rip), %xmm0    # 0x664c0
callq 0x4690
movq %rax, %rdi
movq 0x5bec4(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xa195
leaq 0x5c3cb(%rip), %rdi     # 0x664c8
leaq 0x48c65(%rip), %rsi     # 0x52d69
callq 0x17d00
testb $0x1, %al
jne 0xa112
jmp 0xa193
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x278(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x278(%rbp), %rdi
movl %eax, -0x6c(%rbp)
movl -0x6c(%rbp), %esi
callq 0x4440
movq %rax, -0x270(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x270(%rbp), %rdi
movb %al, -0x6d(%rbp)
movzbl -0x6d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x478b6(%rip), %rsi     # 0x51a26
callq 0x4380
movq %rax, %rdi
leaq 0x5c369(%rip), %rsi     # 0x664e8
callq 0x4320
movq %rax, %rdi
movq 0x5be22(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xa195
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
movq %rdi, -0x2a0(%rbp)
movq 0x5bdff(%rip), %rsi     # 0x65fb0
movq %rsi, -0x288(%rbp)
callq 0x43c0
movq %rax, %rdi
leaq 0x47873(%rip), %rsi     # 0x51a3a
callq 0x4380
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl $0x24, %edi
movl %edi, -0x2a4(%rbp)
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0x74(%rbp)
movl -0x74(%rbp), %esi
callq 0x4440
movq %rax, -0x2f8(%rbp)
movl $0x20, %edi
movl %edi, -0x294(%rbp)
callq 0x177d0
movq -0x2f8(%rbp), %rdi
movb %al, -0x75(%rbp)
movzbl -0x75(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x47836(%rip), %rsi     # 0x51a67
callq 0x4380
movq %rax, %rdi
leaq 0x5c32c(%rip), %rax     # 0x6656c
movb (%rax), %cl
leaq 0x4782f(%rip), %rax     # 0x51a78
leaq 0x4782f(%rip), %rsi     # 0x51a7f
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x4380
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2f0(%rbp)
callq 0x177d0
movq -0x2f0(%rbp), %rdi
movb %al, -0x7d(%rbp)
movzbl -0x7d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x477d0(%rip), %rsi     # 0x51a87
callq 0x4380
movq %rax, %rdi
leaq 0x5c282(%rip), %rax     # 0x66548
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2e8(%rbp)
callq 0x177d0
movq -0x2e8(%rbp), %rdi
movb %al, -0x85(%rbp)
movzbl -0x85(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4776b(%rip), %rsi     # 0x51a9f
callq 0x4380
movq %rax, %rdi
leaq 0x5c209(%rip), %rax     # 0x6654c
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2e0(%rbp)
callq 0x177d0
movq -0x2e0(%rbp), %rdi
movb %al, -0x8d(%rbp)
movzbl -0x8d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x476fd(%rip), %rsi     # 0x51aae
callq 0x4380
movq %rax, %rdi
leaq 0x5c190(%rip), %rax     # 0x66550
movsd (%rax), %xmm0
callq 0x4690
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2d8(%rbp)
callq 0x177d0
movq -0x2d8(%rbp), %rdi
movb %al, -0x95(%rbp)
movzbl -0x95(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x47694(%rip), %rsi     # 0x51ac4
callq 0x4380
movq %rax, %rdi
leaq 0x5c119(%rip), %rax     # 0x66558
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0x9c(%rbp)
movl -0x9c(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2d0(%rbp)
callq 0x177d0
movq -0x2d0(%rbp), %rdi
movb %al, -0x9d(%rbp)
movzbl -0x9d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4763c(%rip), %rsi     # 0x51ae9
callq 0x4380
movq %rax, %rdi
leaq 0x5c0a8(%rip), %rax     # 0x66564
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0xa4(%rbp)
movl -0xa4(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2c8(%rbp)
callq 0x177d0
movq -0x2c8(%rbp), %rdi
movb %al, -0xa5(%rbp)
movzbl -0xa5(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x475df(%rip), %rsi     # 0x51b09
callq 0x4380
movq %rax, %rdi
leaq 0x5c023(%rip), %rax     # 0x6655c
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0xac(%rbp)
movl -0xac(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2c0(%rbp)
callq 0x177d0
movq -0x2c0(%rbp), %rdi
movb %al, -0xad(%rbp)
movzbl -0xad(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4757c(%rip), %rsi     # 0x51b23
callq 0x4380
movq %rax, %rdi
leaq 0x5bfba(%rip), %rax     # 0x66570
movsd (%rax), %xmm0
callq 0x4690
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0xb4(%rbp)
movl -0xb4(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2b8(%rbp)
callq 0x177d0
movq -0x2b8(%rbp), %rdi
movb %al, -0xb5(%rbp)
movzbl -0xb5(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4751d(%rip), %rsi     # 0x51b43
callq 0x4380
movq %rax, %rdi
leaq 0x5bf43(%rip), %rax     # 0x66578
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0xbc(%rbp)
movl -0xbc(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x2b0(%rbp)
callq 0x177d0
movq -0x2b0(%rbp), %rdi
movb %al, -0xbd(%rbp)
movzbl -0xbd(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x474bf(%rip), %rsi     # 0x51b62
callq 0x4380
movq %rax, %rdi
leaq 0x5beca(%rip), %rax     # 0x6657c
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
movl -0x2a4(%rbp), %edi
callq 0x177b0
movq -0x2a0(%rbp), %rdi
movl %eax, -0xc4(%rbp)
movl -0xc4(%rbp), %esi
callq 0x4440
movl -0x294(%rbp), %edi
movq %rax, -0x290(%rbp)
callq 0x177d0
movq -0x290(%rbp), %rdi
movb %al, -0xc5(%rbp)
movzbl -0xc5(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4745a(%rip), %rsi     # 0x51b7a
callq 0x4380
movq %rax, %rdi
leaq 0x5be51(%rip), %rax     # 0x66580
movl (%rax), %esi
callq 0x4610
movq -0x288(%rbp), %rsi
movq %rax, %rdi
callq 0x43c0
leaq 0x5be38(%rip), %rax     # 0x66584
movl (%rax), %eax
movl %eax, -0x27c(%rbp)
testl %eax, %eax
je 0xa76e
jmp 0xa75a
movl -0x27c(%rbp), %eax
subl $0x1, %eax
je 0xa800
jmp 0xa892
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x308(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x308(%rbp), %rdi
movl %eax, -0xcc(%rbp)
movl -0xcc(%rbp), %esi
callq 0x4440
movq %rax, -0x300(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x300(%rbp), %rdi
movb %al, -0xcd(%rbp)
movzbl -0xcd(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x473c1(%rip), %rsi     # 0x51b99
callq 0x4380
movq %rax, %rdi
leaq 0x473cb(%rip), %rsi     # 0x51bb2
callq 0x4380
movq %rax, %rdi
movq 0x5b7ba(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xa921
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x318(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x318(%rbp), %rdi
movl %eax, -0xd4(%rbp)
movl -0xd4(%rbp), %esi
callq 0x4440
movq %rax, -0x310(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x310(%rbp), %rdi
movb %al, -0xd5(%rbp)
movzbl -0xd5(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4732f(%rip), %rsi     # 0x51b99
callq 0x4380
movq %rax, %rdi
leaq 0x47345(%rip), %rsi     # 0x51bbe
callq 0x4380
movq %rax, %rdi
movq 0x5b728(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xa921
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x328(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x328(%rbp), %rdi
movl %eax, -0xdc(%rbp)
movl -0xdc(%rbp), %esi
callq 0x4440
movq %rax, -0x320(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x320(%rbp), %rdi
movb %al, -0xdd(%rbp)
movzbl -0xdd(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4729d(%rip), %rsi     # 0x51b99
callq 0x4380
movq %rax, %rdi
leaq 0x5bc79(%rip), %rax     # 0x66584
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5b694(%rip), %rsi     # 0x65fb0
callq 0x43c0
leaq 0x5bc60(%rip), %rax     # 0x66588
movl (%rax), %eax
movq %rax, -0x330(%rbp)
subq $0x4, %rax
ja 0xac2c
movq -0x330(%rbp), %rax
leaq 0x46797(%rip), %rcx     # 0x510e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x340(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x340(%rbp), %rdi
movl %eax, -0xe4(%rbp)
movl -0xe4(%rbp), %esi
callq 0x4440
movq %rax, -0x338(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x338(%rbp), %rdi
movb %al, -0xe5(%rbp)
movzbl -0xe5(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4720f(%rip), %rsi     # 0x51bcb
callq 0x4380
movq %rax, %rdi
leaq 0x4721a(%rip), %rsi     # 0x51be5
callq 0x4380
movq %rax, %rdi
movq 0x5b5d6(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xacbb
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x350(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x350(%rbp), %rdi
movl %eax, -0xec(%rbp)
movl -0xec(%rbp), %esi
callq 0x4440
movq %rax, -0x348(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x348(%rbp), %rdi
movb %al, -0xed(%rbp)
movzbl -0xed(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4717d(%rip), %rsi     # 0x51bcb
callq 0x4380
movq %rax, %rdi
leaq 0x47196(%rip), %rsi     # 0x51bf3
callq 0x4380
movq %rax, %rdi
movq 0x5b544(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xacbb
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x360(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x360(%rbp), %rdi
movl %eax, -0xf4(%rbp)
movl -0xf4(%rbp), %esi
callq 0x4440
movq %rax, -0x358(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x358(%rbp), %rdi
movb %al, -0xf5(%rbp)
movzbl -0xf5(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x470eb(%rip), %rsi     # 0x51bcb
callq 0x4380
movq %rax, %rdi
leaq 0x47112(%rip), %rsi     # 0x51c01
callq 0x4380
movq %rax, %rdi
movq 0x5b4b2(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xacbb
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x370(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x370(%rbp), %rdi
movl %eax, -0xfc(%rbp)
movl -0xfc(%rbp), %esi
callq 0x4440
movq %rax, -0x368(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x368(%rbp), %rdi
movb %al, -0xfd(%rbp)
movzbl -0xfd(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x47059(%rip), %rsi     # 0x51bcb
callq 0x4380
movq %rax, %rdi
leaq 0x47085(%rip), %rsi     # 0x51c06
callq 0x4380
movq %rax, %rdi
movq 0x5b420(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xacbb
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x380(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x380(%rbp), %rdi
movl %eax, -0x104(%rbp)
movl -0x104(%rbp), %esi
callq 0x4440
movq %rax, -0x378(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x378(%rbp), %rdi
movb %al, -0x105(%rbp)
movzbl -0x105(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46fc7(%rip), %rsi     # 0x51bcb
callq 0x4380
movq %rax, %rdi
leaq 0x47000(%rip), %rsi     # 0x51c13
callq 0x4380
movq %rax, %rdi
movq 0x5b38e(%rip), %rsi     # 0x65fb0
callq 0x43c0
jmp 0xacbb
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x390(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x390(%rbp), %rdi
movl %eax, -0x10c(%rbp)
movl -0x10c(%rbp), %esi
callq 0x4440
movq %rax, -0x388(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x388(%rbp), %rdi
movb %al, -0x10d(%rbp)
movzbl -0x10d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46f35(%rip), %rsi     # 0x51bcb
callq 0x4380
movq %rax, %rdi
leaq 0x5b8e3(%rip), %rax     # 0x66588
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5b2fa(%rip), %rsi     # 0x65fb0
callq 0x43c0
leaq 0x5b8c6(%rip), %rax     # 0x66588
cmpl $0x0, (%rax)
je 0xaf9e
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x3e0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x3e0(%rbp), %rdi
movl %eax, -0x114(%rbp)
movl -0x114(%rbp), %esi
callq 0x4440
movq %rax, -0x3d8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x3d8(%rbp), %rdi
movb %al, -0x115(%rbp)
movzbl -0x115(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46ee9(%rip), %rsi     # 0x51c1e
callq 0x4380
movq %rax, %rdi
leaq 0x5b848(%rip), %rax     # 0x6658c
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5b25b(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x3d0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x3d0(%rbp), %rdi
movl %eax, -0x11c(%rbp)
movl -0x11c(%rbp), %esi
callq 0x4440
movq %rax, -0x3c8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x3c8(%rbp), %rdi
movb %al, -0x11d(%rbp)
movzbl -0x11d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46e74(%rip), %rsi     # 0x51c38
callq 0x4380
movq %rax, %rdi
leaq 0x5b81d(%rip), %rax     # 0x665f0
movsd (%rax), %xmm0
callq 0x4690
movq %rax, %rdi
movq 0x5b1ca(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x3c0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x3c0(%rbp), %rdi
movl %eax, -0x124(%rbp)
movl -0x124(%rbp), %esi
callq 0x4440
movq %rax, -0x3b8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x3b8(%rbp), %rdi
movb %al, -0x125(%rbp)
movzbl -0x125(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46df0(%rip), %rsi     # 0x51c45
callq 0x4380
movq %rax, %rdi
leaq 0x5b72c(%rip), %rax     # 0x66590
movsd (%rax), %xmm0
callq 0x4690
movq %rax, %rdi
movq 0x5b139(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x3b0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x3b0(%rbp), %rdi
movl %eax, -0x12c(%rbp)
movl -0x12c(%rbp), %esi
callq 0x4440
movq %rax, -0x3a8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x3a8(%rbp), %rdi
movb %al, -0x12d(%rbp)
movzbl -0x12d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46d81(%rip), %rsi     # 0x51c67
callq 0x4380
movq %rax, %rdi
leaq 0x5b6a3(%rip), %rax     # 0x66598
movsd (%rax), %xmm0
callq 0x4690
movq %rax, %rdi
movq 0x5b0a8(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x3a0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x3a0(%rbp), %rdi
movl %eax, -0x134(%rbp)
movl -0x134(%rbp), %esi
callq 0x4440
movq %rax, -0x398(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x398(%rbp), %rdi
movb %al, -0x135(%rbp)
movzbl -0x135(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46d0b(%rip), %rsi     # 0x51c82
callq 0x4380
movq %rax, %rdi
leaq 0x5b61a(%rip), %rax     # 0x665a0
movsd (%rax), %xmm0
callq 0x4690
movq %rax, %rdi
movq 0x5b017(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
movq 0x5affd(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, %rdi
leaq 0x46ce3(%rip), %rsi     # 0x51ca5
callq 0x4380
movq %rax, %rdi
movq 0x5afdf(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x4a0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x4a0(%rbp), %rdi
movl %eax, -0x13c(%rbp)
movl -0x13c(%rbp), %esi
callq 0x4440
movq %rax, -0x498(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x498(%rbp), %rdi
movb %al, -0x13d(%rbp)
movzbl -0x13d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46c92(%rip), %rsi     # 0x51cd2
callq 0x4380
movq %rax, %rdi
leaq 0x5b5c9(%rip), %rax     # 0x66618
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5af50(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x490(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x490(%rbp), %rdi
movl %eax, -0x144(%rbp)
movl -0x144(%rbp), %esi
callq 0x4440
movq %rax, -0x488(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x488(%rbp), %rdi
movb %al, -0x145(%rbp)
movzbl -0x145(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46c16(%rip), %rsi     # 0x51ce5
callq 0x4380
movq %rax, %rdi
leaq 0x5b53e(%rip), %rax     # 0x6661c
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5aec1(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x480(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x480(%rbp), %rdi
movl %eax, -0x14c(%rbp)
movl -0x14c(%rbp), %esi
callq 0x4440
movq %rax, -0x478(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x478(%rbp), %rdi
movb %al, -0x14d(%rbp)
movzbl -0x14d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46ba0(%rip), %rsi     # 0x51cfe
callq 0x4380
movq %rax, %rdi
leaq 0x5b4b3(%rip), %rax     # 0x66620
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5ae32(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x470(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x470(%rbp), %rdi
movl %eax, -0x154(%rbp)
movl -0x154(%rbp), %esi
callq 0x4440
movq %rax, -0x468(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x468(%rbp), %rdi
movb %al, -0x155(%rbp)
movzbl -0x155(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46b29(%rip), %rsi     # 0x51d16
callq 0x4380
movq %rax, %rdi
leaq 0x5b428(%rip), %rax     # 0x66624
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5ada3(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x460(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x460(%rbp), %rdi
movl %eax, -0x15c(%rbp)
movl -0x15c(%rbp), %esi
callq 0x4440
movq %rax, -0x458(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x458(%rbp), %rdi
movb %al, -0x15d(%rbp)
movzbl -0x15d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46ab1(%rip), %rsi     # 0x51d2d
callq 0x4380
movq %rax, %rdi
leaq 0x5b39d(%rip), %rax     # 0x66628
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5ad14(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x450(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x450(%rbp), %rdi
movl %eax, -0x164(%rbp)
movl -0x164(%rbp), %esi
callq 0x4440
movq %rax, -0x448(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x448(%rbp), %rdi
movb %al, -0x165(%rbp)
movzbl -0x165(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46a3c(%rip), %rsi     # 0x51d47
callq 0x4380
movq %rax, %rdi
leaq 0x5b312(%rip), %rax     # 0x6662c
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5ac85(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x440(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x440(%rbp), %rdi
movl %eax, -0x16c(%rbp)
movl -0x16c(%rbp), %esi
callq 0x4440
movq %rax, -0x438(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x438(%rbp), %rdi
movb %al, -0x16d(%rbp)
movzbl -0x16d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x469d2(%rip), %rsi     # 0x51d6c
callq 0x4380
movq %rax, %rdi
leaq 0x5b1b7(%rip), %rax     # 0x66560
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5abf6(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x430(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x430(%rbp), %rdi
movl %eax, -0x174(%rbp)
movl -0x174(%rbp), %esi
callq 0x4440
movq %rax, -0x428(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x428(%rbp), %rdi
movb %al, -0x175(%rbp)
movzbl -0x175(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x46968(%rip), %rsi     # 0x51d91
callq 0x4380
movq %rax, %rdi
leaq 0x5b130(%rip), %rax     # 0x66568
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5ab67(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x420(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x420(%rbp), %rdi
movl %eax, -0x17c(%rbp)
movl -0x17c(%rbp), %esi
callq 0x4440
movq %rax, -0x418(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x418(%rbp), %rdi
movb %al, -0x17d(%rbp)
movzbl -0x17d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x468f4(%rip), %rsi     # 0x51dac
callq 0x4380
movq %rax, %rdi
leaq 0x5b169(%rip), %rax     # 0x66630
movb (%rax), %cl
leaq 0x4692a(%rip), %rsi     # 0x51dfa
leaq 0x468f1(%rip), %rax     # 0x51dc8
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x4380
movq %rax, %rdi
movq 0x5aac3(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x410(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x410(%rbp), %rdi
movl %eax, -0x184(%rbp)
movl -0x184(%rbp), %esi
callq 0x4440
movq %rax, -0x408(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x408(%rbp), %rdi
movb %al, -0x185(%rbp)
movzbl -0x185(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x468d5(%rip), %rsi     # 0x51e31
callq 0x4380
movq %rax, %rdi
leaq 0x5b0c6(%rip), %rax     # 0x66631
movb (%rax), %cl
leaq 0x468e4(%rip), %rsi     # 0x51e58
leaq 0x468cc(%rip), %rax     # 0x51e47
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x4380
movq %rax, %rdi
movq 0x5aa1f(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x400(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x400(%rbp), %rdi
movl %eax, -0x18c(%rbp)
movl -0x18c(%rbp), %esi
callq 0x4440
movq %rax, -0x3f8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x3f8(%rbp), %rdi
movb %al, -0x18d(%rbp)
movzbl -0x18d(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x4686a(%rip), %rsi     # 0x51e6a
callq 0x4380
movq %rax, %rdi
leaq 0x5b025(%rip), %rax     # 0x66634
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5a990(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rax
addq $0x418, %rax            # imm = 0x418
movq %rax, -0x3f0(%rbp)
movl $0x24, %edi
callq 0x177b0
movq -0x3f0(%rbp), %rdi
movl %eax, -0x194(%rbp)
movl -0x194(%rbp), %esi
callq 0x4440
movq %rax, -0x3e8(%rbp)
movl $0x20, %edi
callq 0x177d0
movq -0x3e8(%rbp), %rdi
movb %al, -0x195(%rbp)
movzbl -0x195(%rbp), %esi
callq 0x4550
movq %rax, %rdi
leaq 0x467ff(%rip), %rsi     # 0x51e8e
callq 0x4380
movq %rax, %rdi
leaq 0x5af9a(%rip), %rax     # 0x66638
movb (%rax), %cl
leaq 0x463d8(%rip), %rsi     # 0x51a7f
leaq 0x463ca(%rip), %rax     # 0x51a78
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x4380
movq %rax, %rdi
movq 0x5a8ec(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
movq 0x5a8d2(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq %rax, %rdi
leaq 0x467b5(%rip), %rsi     # 0x51ea2
callq 0x4380
movq %rax, %rdi
movq 0x5a8b4(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x467ab(%rip), %rsi     # 0x51ec1
callq 0x4380
movq %rax, %rdi
leaq 0x5af17(%rip), %rax     # 0x6663c
movl (%rax), %esi
callq 0x4610
movq %rax, %rdi
movq 0x5a87a(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46784(%rip), %rsi     # 0x51ed4
callq 0x4380
movq %rax, %rdi
leaq 0x5aee1(%rip), %rax     # 0x66640
movsd (%rax), %xmm0
callq 0x4690
movq %rax, %rdi
movq 0x5a83e(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46758(%rip), %rsi     # 0x51ee4
callq 0x4380
movq %rax, %rdi
leaq 0x5aead(%rip), %rax     # 0x66648
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a804(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x4672e(%rip), %rsi     # 0x51ef4
callq 0x4380
movq %rax, %rdi
leaq 0x5ae77(%rip), %rax     # 0x6664c
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a7ca(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46704(%rip), %rsi     # 0x51f04
callq 0x4380
movq %rax, %rdi
leaq 0x5ae41(%rip), %rax     # 0x66650
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a790(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x466da(%rip), %rsi     # 0x51f14
callq 0x4380
movq %rax, %rdi
leaq 0x5ae0b(%rip), %rax     # 0x66654
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a756(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x466b0(%rip), %rsi     # 0x51f24
callq 0x4380
movq %rax, %rdi
leaq 0x5add5(%rip), %rax     # 0x66658
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a71c(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46686(%rip), %rsi     # 0x51f34
callq 0x4380
movq %rax, %rdi
leaq 0x5ad9f(%rip), %rax     # 0x6665c
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a6e2(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x4665c(%rip), %rsi     # 0x51f44
callq 0x4380
movq %rax, %rdi
leaq 0x5ad69(%rip), %rax     # 0x66660
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a6a8(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46632(%rip), %rsi     # 0x51f54
callq 0x4380
movq %rax, %rdi
leaq 0x5ad33(%rip), %rax     # 0x66664
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a66e(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46608(%rip), %rsi     # 0x51f64
callq 0x4380
movq %rax, %rdi
leaq 0x5acfd(%rip), %rax     # 0x66668
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a634(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x465de(%rip), %rsi     # 0x51f74
callq 0x4380
movq %rax, %rdi
leaq 0x5acc7(%rip), %rax     # 0x6666c
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a5fa(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x465b4(%rip), %rsi     # 0x51f84
callq 0x4380
movq %rax, %rdi
leaq 0x5ac91(%rip), %rax     # 0x66670
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a5c0(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x4658a(%rip), %rsi     # 0x51f94
callq 0x4380
movq %rax, %rdi
leaq 0x5ac5b(%rip), %rax     # 0x66674
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a586(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46560(%rip), %rsi     # 0x51fa4
callq 0x4380
movq %rax, %rdi
leaq 0x5ac25(%rip), %rax     # 0x66678
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a54c(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46536(%rip), %rsi     # 0x51fb4
callq 0x4380
movq %rax, %rdi
leaq 0x5abef(%rip), %rax     # 0x6667c
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a512(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x4650c(%rip), %rsi     # 0x51fc4
callq 0x4380
movq %rax, %rdi
leaq 0x5abb9(%rip), %rax     # 0x66680
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a4d8(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x464e2(%rip), %rsi     # 0x51fd4
callq 0x4380
movq %rax, %rdi
leaq 0x5ab83(%rip), %rax     # 0x66684
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a49e(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x464b8(%rip), %rsi     # 0x51fe4
callq 0x4380
movq %rax, %rdi
leaq 0x5ab4d(%rip), %rax     # 0x66688
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a464(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x4648e(%rip), %rsi     # 0x51ff4
callq 0x4380
movq %rax, %rdi
leaq 0x5ab17(%rip), %rax     # 0x6668c
movl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a42a(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46464(%rip), %rsi     # 0x52004
callq 0x4380
movq %rax, %rdi
leaq 0x5aaa1(%rip), %rax     # 0x66650
movl (%rax), %esi
leaq 0x5aa94(%rip), %rax     # 0x6664c
addl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a3e7(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x46431(%rip), %rsi     # 0x52014
callq 0x4380
movq %rax, %rdi
leaq 0x5aa5e(%rip), %rax     # 0x66650
movl (%rax), %esi
leaq 0x5aa4d(%rip), %rax     # 0x66648
addl (%rax), %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a3a4(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
leaq 0x463fe(%rip), %rsi     # 0x52024
callq 0x4380
movq %rax, %rdi
leaq 0x5a9f7(%rip), %rax     # 0x6662c
movl (%rax), %esi
shrl $0x5, %esi
callq 0x44c0
movq %rax, %rdi
movq 0x5a367(%rip), %rsi     # 0x65fb0
callq 0x43c0
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
callq 0x4240
movq -0x1b0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
callq 0x4510
addq $0x4a0, %rsp            # imm = 0x4A0
popq %rbp
retq
nopl (%rax)