// File: /workspace/github_cpp_makefile_star2_O3/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 0x40(%rsp), %r12
leaq 0x418(%rdi), %rbx
leaq 0x27c54(%rip), %rsi     # 0x30263
movl $0x40, %edx
movq %rbx, %rdi
callq 0x4340
movq 0x418(%r14), %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 0x27c56(%rip), %rsi     # 0x302a4
movl $0x40, %edx
movq %rbx, %rdi
callq 0x4340
movq 0x418(%r14), %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 0x2830c(%rip), %rsi     # 0x30999
movl $0x40, %edx
movq %rbx, %rdi
callq 0x4340
movq 0x418(%r14), %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 0x27c19(%rip), %rsi     # 0x302e5
movl $0x14, %edx
movq %rbx, %rdi
callq 0x4340
movl $0x76c, %esi            # imm = 0x76C
addl 0x14(%r12), %esi
movq %rbx, %rdi
callq 0x4500
movq %rax, %r14
leaq 0x27c05(%rip), %rsi     # 0x302fa
movl $0x1, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x2, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %r15
cmpb $0x0, 0xe1(%r14,%rax)
jne 0x873a
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x30, 0xe0(%r15)
movl 0x10(%r12), %esi
incl %esi
movq %r14, %rdi
callq 0x4500
movq %rax, %r14
leaq 0x27b9f(%rip), %rsi     # 0x302fa
movl $0x1, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x2, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %r15
cmpb $0x0, 0xe1(%r14,%rax)
jne 0x87a0
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x30, 0xe0(%r15)
movl 0xc(%r12), %esi
movq %r14, %rdi
callq 0x4500
movq %rax, %r14
leaq 0x27b3d(%rip), %rsi     # 0x302fc
movl $0xd, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x2, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %r15
cmpb $0x0, 0xe1(%r14,%rax)
jne 0x8804
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x30, 0xe0(%r15)
movl 0x8(%r12), %esi
movq %r14, %rdi
callq 0x4500
movq %rax, %r14
leaq 0x28074(%rip), %rsi     # 0x30897
movl $0x1, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x2, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %r15
cmpb $0x0, 0xe1(%r14,%rax)
jne 0x8868
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x30, 0xe0(%r15)
movl 0x4(%r12), %esi
movq %r14, %rdi
callq 0x4500
movq %rax, %r14
leaq 0x28010(%rip), %rsi     # 0x30897
movl $0x1, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x2, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
leaq (%r14,%rax), %r15
cmpb $0x0, 0xe1(%r14,%rax)
jne 0x88cc
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x30, 0xe0(%r15)
movl (%r12), %esi
movq %r14, %rdi
callq 0x4500
movq %rax, %r14
leaq 0x27a53(%rip), %rsi     # 0x3033d
movl $0xd, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %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
leaq 0x2793e(%rip), %rsi     # 0x30263
movl $0x40, %edx
movq %rbx, %rdi
callq 0x4340
movq (%rbx), %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 (%rbx), %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, %r14
leaq 0x28050(%rip), %rsi     # 0x309da
movl $0x2c, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %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
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x89f5
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x28003(%rip), %rsi     # 0x30a07
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x4340
movq 0x329f8(%rip), %rsi     # 0x3b410
movq %rbx, %rdi
callq 0x42b0
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
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8a81
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x27f96(%rip), %rsi     # 0x30a26
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x329f4(%rip), %rax     # 0x3b498
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8b11
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x27f20(%rip), %rsi     # 0x30a40
movl $0x24, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3296c(%rip), %rax     # 0x3b4a0
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8b9f
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x27eb7(%rip), %rsi     # 0x30a65
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x328e2(%rip), %rax     # 0x3b4a4
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8c2d
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x28b09(%rip), %rsi     # 0x31745
movl $0xe, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x327d8(%rip), %r14     # 0x3b428
movq 0x327d1(%rip), %rsi     # 0x3b428
movq 0x327d2(%rip), %rdx     # 0x3b430
movq %rbx, %rdi
callq 0x4340
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 0x27dea(%rip), %rsi     # 0x30a81
movq %r14, %rdi
callq 0x4100
testl %eax, %eax
je 0x8d30
leaq 0x3277a(%rip), %rdi     # 0x3b428
leaq 0x29113(%rip), %rsi     # 0x31dc8
callq 0x4100
testl %eax, %eax
jne 0x8e4a
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8cf9
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x27d80(%rip), %rsi     # 0x30a88
movl $0x13, %edx
movq %rbx, %rdi
callq 0x4340
movq 0x3272c(%rip), %rsi     # 0x3b448
movq 0x3272d(%rip), %rdx     # 0x3b450
movq %rbx, %rdi
callq 0x4340
jmp 0x8e20
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8d67
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x289df(%rip), %rsi     # 0x31755
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
movsd 0x3268d(%rip), %xmm0    # 0x3b418
movq %rbx, %rdi
callq 0x4460
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
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8df4
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x2896d(%rip), %rsi     # 0x31770
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x4340
movsd 0x32608(%rip), %xmm0    # 0x3b420
movq %rbx, %rdi
callq 0x4460
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
movq (%rbx), %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, %r14
leaq 0x27c21(%rip), %rsi     # 0x30a9c
movl $0x2c, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %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
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r14
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8ee6
movq %r14, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r14)
movb $0x20, 0xe0(%r14)
leaq 0x27bd4(%rip), %rsi     # 0x30ac9
movl $0x10, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x325c3(%rip), %rax     # 0x3b4cc
movzbl (%rax), %edx
leaq 0x27bc7(%rip), %r12     # 0x30ada
leaq 0x27bc7(%rip), %r14     # 0x30ae1
testq %rdx, %rdx
movq %r14, %rsi
cmovneq %r12, %rsi
xorq $0x7, %rdx
movq %rbx, %rdi
callq 0x4340
movq (%rbx), %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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x8f8e
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27b4c(%rip), %rsi     # 0x30ae9
movl $0x17, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x324f7(%rip), %rax     # 0x3b4a8
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x901c
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27ad6(%rip), %rsi     # 0x30b01
movl $0xe, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3246d(%rip), %rax     # 0x3b4ac
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x90aa
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27a57(%rip), %rsi     # 0x30b10
movl $0x15, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x323e3(%rip), %rax     # 0x3b4b0
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x913a
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x279dd(%rip), %rsi     # 0x30b26
movl $0x24, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3235b(%rip), %rax     # 0x3b4b8
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x91c8
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27974(%rip), %rsi     # 0x30b4b
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x322d9(%rip), %rax     # 0x3b4c4
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9256
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27906(%rip), %rsi     # 0x30b6b
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x32243(%rip), %rax     # 0x3b4bc
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x92e4
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27892(%rip), %rsi     # 0x30b85
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x321c9(%rip), %rax     # 0x3b4d0
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9374
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27822(%rip), %rsi     # 0x30ba5
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x32141(%rip), %rax     # 0x3b4d8
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9402
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x277b3(%rip), %rsi     # 0x30bc4
movl $0x17, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x320b7(%rip), %rax     # 0x3b4dc
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9490
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x2773d(%rip), %rsi     # 0x30bdc
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3202d(%rip), %rax     # 0x3b4e0
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 0x31ff6(%rip), %r13     # 0x3b4e4
movl (%r13), %ecx
movq (%rbx), %rax
movq -0x18(%rax), %rdx
movq $0x24, 0x10(%rbx,%rdx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
movb 0xe1(%rbx,%rax), %al
cmpl $0x1, %ecx
je 0x9561
testl %ecx, %ecx
jne 0x95af
testb %al, %al
jne 0x9537
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x276b5(%rip), %rsi     # 0x30bfb
movl $0x18, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x276ba(%rip), %rsi     # 0x30c14
movl $0xb, %edx
jmp 0x95a2
testb %al, %al
jne 0x957a
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27672(%rip), %rsi     # 0x30bfb
movl $0x18, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x27683(%rip), %rsi     # 0x30c20
movl $0xc, %edx
movq %rbx, %rdi
callq 0x4340
movq %rbx, %r15
jmp 0x95f3
testb %al, %al
jne 0x95c8
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27624(%rip), %rsi     # 0x30bfb
movl $0x18, %edx
movq %rbx, %rdi
callq 0x4340
movl (%r13), %esi
movq %rbx, %rdi
callq 0x4500
movq %rax, %r15
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
leaq 0x31ec7(%rip), %r13     # 0x3b4e8
movl (%r13), %ecx
movq (%rbx), %rax
movq -0x18(%rax), %rdx
movq $0x24, 0x10(%rbx,%rdx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
movb 0xe1(%rbx,%rax), %al
cmpq $0x4, %rcx
ja 0xa9a7
leaq 0x26b1b(%rip), %rdx     # 0x30170
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
testb %al, %al
jne 0x9677
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x275a7(%rip), %rsi     # 0x30c2d
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x275ad(%rip), %rsi     # 0x30c47
jmp 0x97aa
testb %al, %al
jne 0x96b8
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27566(%rip), %rsi     # 0x30c2d
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x2759a(%rip), %rsi     # 0x30c75
movl $0xa, %edx
jmp 0x97af
testb %al, %al
jne 0x96fe
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27520(%rip), %rsi     # 0x30c2d
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x27542(%rip), %rsi     # 0x30c63
movl $0x4, %edx
jmp 0x97af
testb %al, %al
jne 0x9744
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x274da(%rip), %rsi     # 0x30c2d
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x27501(%rip), %rsi     # 0x30c68
movl $0xc, %edx
jmp 0x97af
testb %al, %al
jne 0x9787
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27497(%rip), %rsi     # 0x30c2d
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x274ab(%rip), %rsi     # 0x30c55
movl $0xd, %edx
movq %rbx, %rdi
callq 0x4340
movq %rbx, %r15
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
cmpl $0x0, (%r13)
je 0x9aba
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9823
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x2744e(%rip), %rsi     # 0x30c80
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31ca6(%rip), %rax     # 0x3b4ec
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x98b1
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x273da(%rip), %rsi     # 0x30c9a
movl $0xc, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31c7c(%rip), %rax     # 0x3b550
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9941
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27357(%rip), %rsi     # 0x30ca7
movl $0x21, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31b8c(%rip), %rax     # 0x3b4f0
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x99d1
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x272e9(%rip), %rsi     # 0x30cc9
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31b04(%rip), %rax     # 0x3b4f8
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9a61
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27274(%rip), %rsi     # 0x30ce4
movl $0x22, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31a7c(%rip), %rax     # 0x3b500
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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 (%rbx), %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, %r15
leaq 0x2721c(%rip), %rsi     # 0x30d07
movl $0x2c, %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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9b56
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x271cf(%rip), %rsi     # 0x30d34
movl $0x12, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x319ff(%rip), %rax     # 0x3b578
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9be4
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27154(%rip), %rsi     # 0x30d47
movl $0x18, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31975(%rip), %rax     # 0x3b57c
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9c72
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x270df(%rip), %rsi     # 0x30d60
movl $0x17, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x318eb(%rip), %rax     # 0x3b580
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9d00
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x27069(%rip), %rsi     # 0x30d78
movl $0x16, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31861(%rip), %rax     # 0x3b584
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9d8e
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26ff2(%rip), %rsi     # 0x30d8f
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x317d7(%rip), %rax     # 0x3b588
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9e1c
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26f7e(%rip), %rsi     # 0x30da9
movl $0x24, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3174d(%rip), %r13     # 0x3b58c
movl (%r13), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9eac
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26f13(%rip), %rsi     # 0x30dce
movl $0x24, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x315f1(%rip), %rax     # 0x3b4c0
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9f3a
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26eaa(%rip), %rsi     # 0x30df3
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3156b(%rip), %rax     # 0x3b4c8
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x9fc8
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26e37(%rip), %rsi     # 0x30e0e
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x315a5(%rip), %rax     # 0x3b590
movzbl (%rax), %eax
leaq 0x26e35(%rip), %rcx     # 0x30e2a
leaq 0x26e60(%rip), %rsi     # 0x30e5c
testq %rax, %rax
cmovneq %rcx, %rsi
xorq $0x1, %rax
leaq (%rax,%rax,4), %rdx
addq $0x31, %rdx
movq %rbx, %rdi
callq 0x4340
movq (%rbx), %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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0xa075
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26e0f(%rip), %rsi     # 0x30e93
movl $0x15, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x314f9(%rip), %rax     # 0x3b591
movzbl (%rax), %edx
leaq 0x26e07(%rip), %rax     # 0x30ea9
leaq 0x26e11(%rip), %rsi     # 0x30eba
testq %rdx, %rdx
cmovneq %rax, %rsi
xorq $0x11, %rdx
movq %rbx, %rdi
callq 0x4340
movq (%rbx), %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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0xa11a
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26da3(%rip), %rsi     # 0x30ecc
movl $0x23, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31457(%rip), %rax     # 0x3b594
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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 (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0x24, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0xa1a8
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x26d39(%rip), %rsi     # 0x30ef0
movl $0x13, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x313cd(%rip), %rax     # 0x3b598
movzbl (%rax), %edx
testq %rdx, %rdx
cmovneq %r12, %r14
xorq $0x7, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4340
movq (%rbx), %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 (%rbx), %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, %r14
leaq 0x26cc8(%rip), %rsi     # 0x30f04
movl $0x1e, %edx
movq %rax, %rdi
callq 0x4340
movq (%r14), %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
leaq 0x26cac(%rip), %rsi     # 0x30f23
movl $0x12, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31311(%rip), %rax     # 0x3b59c
movl (%rax), %esi
movq %rbx, %rdi
callq 0x4500
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
leaq 0x26c70(%rip), %rsi     # 0x30f36
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x312c6(%rip), %rax     # 0x3b5a0
movsd (%rax), %xmm0
movq %rbx, %rdi
callq 0x4460
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
leaq 0x26c2f(%rip), %rsi     # 0x30f46
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3127d(%rip), %r15     # 0x3b5a8
movl (%r15), %esi
movq %rbx, %rdi
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
leaq 0x26bef(%rip), %rsi     # 0x30f56
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31231(%rip), %rbp     # 0x3b5ac
movl (%rbp), %esi
movq %rbx, %rdi
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
leaq 0x26baf(%rip), %rsi     # 0x30f66
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x311e5(%rip), %r12     # 0x3b5b0
movl (%r12), %esi
movq %rbx, %rdi
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
leaq 0x26b6e(%rip), %rsi     # 0x30f76
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31198(%rip), %rax     # 0x3b5b4
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x26b2f(%rip), %rsi     # 0x30f86
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3114d(%rip), %rax     # 0x3b5b8
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x26af0(%rip), %rsi     # 0x30f96
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31102(%rip), %rax     # 0x3b5bc
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x26ab1(%rip), %rsi     # 0x30fa6
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x310b7(%rip), %rax     # 0x3b5c0
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x26a72(%rip), %rsi     # 0x30fb6
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x3106c(%rip), %rax     # 0x3b5c4
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x26a33(%rip), %rsi     # 0x30fc6
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x31021(%rip), %rax     # 0x3b5c8
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x269f4(%rip), %rsi     # 0x30fd6
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30fd6(%rip), %rax     # 0x3b5cc
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x269b5(%rip), %rsi     # 0x30fe6
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30f8b(%rip), %rax     # 0x3b5d0
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x26976(%rip), %rsi     # 0x30ff6
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30f40(%rip), %rax     # 0x3b5d4
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x26937(%rip), %rsi     # 0x31006
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30ef5(%rip), %rax     # 0x3b5d8
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x268f8(%rip), %rsi     # 0x31016
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30eaa(%rip), %rax     # 0x3b5dc
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x268b9(%rip), %rsi     # 0x31026
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30e5f(%rip), %rax     # 0x3b5e0
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x2687a(%rip), %rsi     # 0x31036
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30e14(%rip), %rax     # 0x3b5e4
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x2683b(%rip), %rsi     # 0x31046
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30dc9(%rip), %rax     # 0x3b5e8
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x267fc(%rip), %rsi     # 0x31056
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
leaq 0x30d7e(%rip), %rax     # 0x3b5ec
movl (%rax), %esi
movq %rbx, %rdi
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
leaq 0x267bd(%rip), %rsi     # 0x31066
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
movl (%rbp), %esi
addl (%r12), %esi
movq %rbx, %rdi
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
leaq 0x26780(%rip), %rsi     # 0x31076
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
movl (%r15), %esi
addl (%r12), %esi
movq %rbx, %rdi
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
leaq 0x26743(%rip), %rsi     # 0x31086
movl $0xf, %edx
movq %rbx, %rdi
callq 0x4340
movl (%r13), %esi
shrl $0x5, %esi
movq %rbx, %rdi
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
movq %rbx, %rdi
callq 0x41f0
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x43c0
testb %al, %al
jne 0xa9c0
movq %r15, %rdi
movl $0x20, %esi
callq 0x42d0
movb $0x1, 0xe1(%r15)
movb $0x20, 0xe0(%r15)
leaq 0x2625e(%rip), %rsi     # 0x30c2d
movl $0x19, %edx
movq %rbx, %rdi
callq 0x4340
movl (%r13), %esi
movq %rbx, %rdi
callq 0x4500
movq %rax, %r15
jmp 0x97ba