// File: /workspace/github_cpp_makefile_star2_O3/dramninjasUMD[P]BOBSim/BOBWrapper.cpp
// Function: BOBSim::BOBWrapper::BOBWrapper(unsigned long)
BOBWrapper::BOBWrapper(uint64_t qemu_mem_size) :
	readDoneCallback(NULL),
	writeDoneCallback(NULL),
	logicDoneCallback(NULL),
	fullSum(0),
	dramSum(0),
	chanSum(0),
	issuedWrites(0),
	committedWrites(0),
	issuedLogicOperations(0),
	returnedReads(0),
	totalLogicResponses(0),
	totalReturnedReads(0),
	totalIssuedWrites(0),
	totalTransactionsServiced(0),
	portRoundRobin(0),
	maxReadsPerCycle(0),
	maxWritesPerCycle(0),
	readsPerCycle(0),
	writesPerCycle(0)
{
#define TMP_STR_LEN 80

	//Initialize output files
	char *sim_desc;
	char tmp_str[TMP_STR_LEN];
	if ((sim_desc = getenv("SIM_DESC")) != NULL)
	{
		snprintf(tmp_str, TMP_STR_LEN, "BOBstats%s%s.txt", sim_desc, VARIANT_SUFFIX);
		statsOut.open(tmp_str);
		snprintf(tmp_str, TMP_STR_LEN, "BOBpower%s%s.txt", sim_desc, VARIANT_SUFFIX);
		powerOut.open(tmp_str);
	}
	else
	{
		snprintf(tmp_str, TMP_STR_LEN, "BOBstats%s.txt", VARIANT_SUFFIX);
		statsOut.open(tmp_str);
		snprintf(tmp_str, TMP_STR_LEN, "BOBpower%s.txt", VARIANT_SUFFIX);
		powerOut.open(tmp_str);
	}

	QEMU_MEMORY_SIZE = qemu_mem_size;

	currentClockCycle=0;

	//Create BOB object and register callbacks
	bob = new BOB();

	Callback<BOBWrapper,void,unsigned,uint64_t> *writeIssuedCB = new Callback<BOBWrapper,void,unsigned,uint64_t>(this, &BOBWrapper::WriteIssuedCallback);
	bob->RegisterWriteIssuedCallback(writeIssuedCB);

	//Incoming request packet fields (to be added to ports)
	inFlightRequest = vector<Transaction*>(NUM_PORTS,NULL);
	inFlightRequestCounter = vector<unsigned>(NUM_PORTS,0);
	inFlightRequestHeaderCounter = vector<unsigned>(NUM_PORTS,0);

	//Outgoing response packet fields (being sent back to cache)
	inFlightResponse = vector<Transaction*>(NUM_PORTS,NULL);
	inFlightResponseCounter = vector<unsigned>(NUM_PORTS,0);
	inFlightResponseHeaderCounter = vector<unsigned>(NUM_PORTS,0);

	//For statistics & bookkeeping
	requestPortEmptyCount = vector<unsigned>(NUM_PORTS,0);
	responsePortEmptyCount = vector<unsigned>(NUM_PORTS,0);
	requestCounterPerPort = vector<unsigned>(NUM_PORTS,0);
	readsPerPort = vector<unsigned>(NUM_PORTS,0);
	writesPerPort = vector<unsigned>(NUM_PORTS,0);
	returnsPerPort = vector<unsigned>(NUM_PORTS,0);
	perChanFullLatencies = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());
	perChanReqPort = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());
	perChanRspPort = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());
	perChanReqLink = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());
	perChanRspLink = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());
	perChanAccess = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());
	perChanRRQ = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());
	perChanWorkQTimes = vector< vector<unsigned> >(NUM_CHANNELS, vector<unsigned>());

	//Write configuration stuff to output file
	//
	//System Parameters
	//
	statsOut<<"!!!!"<<qemu_mem_size<<"???"<<QEMU_MEMORY_SIZE<<endl;
	statsOut<<"!!SYSTEM_INI"<<endl;
	statsOut<<"NUM_RANKS="<<NUM_RANKS<<endl;
	statsOut<<"NUM_CHANS="<<NUM_CHANNELS<<endl;
	statsOut<<"BUS_ALIGNMENT_SIZE="<<BUS_ALIGNMENT_SIZE<<endl;
	statsOut<<"JEDEC_DATA_BUS_WIDTH="<<DRAM_BUS_WIDTH<<endl;
	statsOut<<"TRANS_QUEUE_DEPTH="<<PORT_QUEUE_DEPTH<<endl;
	statsOut<<"CMD_QUEUE_DEPTH="<<CHANNEL_WORK_Q_MAX<<endl;
	statsOut<<"USE_LOW_POWER=false"<<endl;
	statsOut<<"EPOCH_COUNT="<<EPOCH_LENGTH<<endl;
	statsOut<<"ROW_BUFFER_POLICY=close_page"<<endl;
	statsOut<<"SCHEDULING_POLICY=N/A"<<endl;
	statsOut<<"ADDRESS_MAPPING_SCHEME=scheme"<<mappingScheme<<endl;
	statsOut<<"QUEUING_STRUCTURE=N/A"<<endl;
	statsOut<<"DEBUG_TRANS_Q=false"<<endl;
	statsOut<<"DEBUG_CMD_Q=false"<<endl;
	statsOut<<"DEBUG_ADDR_MAP=false"<<endl;
	statsOut<<"DEBUG_BANKSTATE=false"<<endl;
	statsOut<<"DEBUG_BUS=false"<<endl;
	statsOut<<"DEBUG_BANKS=false"<<endl;
	statsOut<<"DEBUG_POWER=false"<<endl;
	statsOut<<"VERIFICATION_OUTPUT="<<(VERIFICATION_OUTPUT?"true":"false")<<endl;

	//
	//Device Parameters
	//
	statsOut<<"!!DEVICE_INI"<<endl;
	statsOut<<"NUM_BANKS="<<NUM_BANKS<<endl;
	statsOut<<"NUM_ROWS="<<NUM_ROWS<<endl;
	statsOut<<"NUM_COLS="<<NUM_COLS<<endl;
	statsOut<<"DEVICE_WIDTH="<<DEVICE_WIDTH<<endl;
	statsOut<<"REFRESH_PERIOD=7800"<<endl;
	statsOut<<"tCK="<<tCK<<endl;
	statsOut<<"CL="<<tCL<<endl;
	statsOut<<"AL=0"<<endl;
	statsOut<<"BL="<<BL<<endl;
	statsOut<<"tRAS="<<tRAS<<endl;
	statsOut<<"tRCD="<<tRCD<<endl;
	statsOut<<"tRRD="<<tRRD<<endl;
	statsOut<<"tRC="<<tRC<<endl;
	statsOut<<"tRP="<<tRP<<endl;
	statsOut<<"tCCD="<<tCCD<<endl;
	statsOut<<"tRTP="<<tRTP<<endl;
	statsOut<<"tWTR="<<tWTR<<endl;
	statsOut<<"tWR="<<tWR<<endl;
	statsOut<<"tRTRS=1"<<endl;
	statsOut<<"tRFC="<<tRFC<<endl;
	statsOut<<"tFAW="<<tFAW<<endl;
	statsOut<<"tCKE=0"<<endl;
	statsOut<<"tXP=0"<<endl;
	statsOut<<"tCMD=1"<<endl;
	statsOut<<"IDD0="<<IDD0<<endl;
	statsOut<<"IDD1="<<IDD1<<endl;
	statsOut<<"IDD2P="<<IDD2P1<<endl;
	statsOut<<"IDD2Q="<<IDD2Q<<endl;
	statsOut<<"IDD2N="<<IDD2N<<endl;
	statsOut<<"IDD3Pf="<<IDD3P<<endl;
	statsOut<<"IDD3Ps=0"<<endl;
	statsOut<<"IDD3N="<<IDD3N<<endl;
	statsOut<<"IDD4W="<<IDD4W<<endl;
	statsOut<<"IDD4R="<<IDD4R<<endl;
	statsOut<<"IDD5="<<IDD5B<<endl;
	statsOut<<"IDD6="<<IDD6<<endl;
	statsOut<<"IDD6L="<<IDD6ET<<endl;
	statsOut<<"IDD7="<<IDD7<<endl;

	statsOut<<"!!EPOCH_DATA"<<endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rsi, %r13
movq %rdi, %rbx
leaq 0x10f26(%rip), %rax     # 0x18bb0
movq %rax, (%rdi)
addq $0x18, %rdi
leaq 0x2b0(%rbx), %r15
movl $0x234, %edx            # imm = 0x234
movq %rdi, 0x88(%rsp)
xorl %esi, %esi
callq 0x30f0
xorps %xmm0, %xmm0
movups %xmm0, 0x250(%rbx)
movups %xmm0, 0x25c(%rbx)
movups %xmm0, 0x270(%rbx)
movups %xmm0, 0x280(%rbx)
movups %xmm0, 0x290(%rbx)
movups %xmm0, 0x29c(%rbx)
movq %r15, %rdi
callq 0x3320
leaq 0x4b0(%rbx), %r12
movq %r12, %rdi
callq 0x3320
movl $0x0, 0x6b0(%rbx)
leaq 0xbc2f(%rip), %rdi      # 0x13930
callq 0x3230
testq %rax, %rax
je 0x7d6d
movq %rax, %rbp
leaq 0xbc24(%rip), %rdx      # 0x13939
leaq 0xc32d(%rip), %r8       # 0x14049
leaq 0x90(%rsp), %r14
movl $0x50, %esi
movq %r14, %rdi
movq %rax, %rcx
xorl %eax, %eax
callq 0x32d0
movq %r15, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x3050
leaq 0xbbfd(%rip), %rdx      # 0x1394a
leaq 0xc2f5(%rip), %r8       # 0x14049
leaq 0x90(%rsp), %rdi
movl $0x50, %esi
movq %rbp, %rcx
xorl %eax, %eax
callq 0x32d0
jmp 0x7dc4
leaq 0xbbe7(%rip), %rdx      # 0x1395b
leaq 0xc2ce(%rip), %rcx      # 0x14049
leaq 0x90(%rsp), %r14
movl $0x50, %esi
movq %r14, %rdi
xorl %eax, %eax
callq 0x32d0
movq %r15, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x3050
leaq 0xbbc1(%rip), %rdx      # 0x1396a
leaq 0xc299(%rip), %rcx      # 0x14049
leaq 0x90(%rsp), %rdi
movl $0x50, %esi
xorl %eax, %eax
callq 0x32d0
leaq 0x90(%rsp), %rsi
movq %r12, %rdi
movl $0x10, %edx
callq 0x3050
movq %r13, 0x114d0(%rip)     # 0x192b0
movq $0x0, 0x8(%rbx)
movl $0x200, %edi            # imm = 0x200
callq 0x31d0
movq %rax, %rbp
movq %rax, %rdi
callq 0x395c
movq %rbp, 0x10(%rbx)
movl $0x20, %edi
callq 0x31d0
leaq 0x10dce(%rip), %rcx     # 0x18be0
movq %rcx, (%rax)
movq %rbx, 0x8(%rax)
leaq 0x1db6(%rip), %rcx      # 0x9bd6
movq %rcx, 0x10(%rax)
movq $0x0, 0x18(%rax)
movq %rbp, %rdi
movq %rax, %rsi
callq 0x6d1c
leaq 0x11392(%rip), %r14     # 0x191d0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0xbde2
movq 0x18(%rbx), %rdi
movq 0x28(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x18(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x28(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x7eab
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7eab
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0x30(%rbx), %rdi
movq 0x40(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x30(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x40(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x7f17
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7f17
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0x48(%rbx), %rdi
movq 0x58(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x48(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x58(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x7f83
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7f83
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0xbde2
movq 0x60(%rbx), %rdi
movq 0x70(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x60(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x70(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x7ff0
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7ff0
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0x78(%rbx), %rdi
movq 0x88(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x78(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x88(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x8062
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8062
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0x90(%rbx), %rdi
movq 0xa0(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x90(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0xa0(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x80da
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x80da
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0xc8(%rbx), %rdi
movq 0xd8(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0xc8(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0xd8(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x8152
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8152
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0xe0(%rbx), %rdi
movq 0xf0(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0xe0(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0xf0(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x81ca
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x81ca
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0xf8(%rbx), %rdi
movq 0x108(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0xf8(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x108(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x8242
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8242
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0x110(%rbx), %rdi
movq 0x120(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x110(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x120(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x82ba
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x82ba
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0x128(%rbx), %rdi
movq 0x138(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x128(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x138(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x8332
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8332
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r14), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rcx
callq 0x6d56
movq 0x140(%rbx), %rdi
movq 0x150(%rbx), %rsi
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x140(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x150(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0x83aa
subq %rdi, %rsi
callq 0x31f0
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x83aa
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x180(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x180(%rbx)
movups 0x170(%rbx), %xmm1
movups %xmm0, 0x170(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x8439
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x198(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x198(%rbx)
movups 0x188(%rbx), %xmm1
movups %xmm0, 0x188(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x84c8
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x1b0(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x1b0(%rbx)
movups 0x1a0(%rbx), %xmm1
movups %xmm0, 0x1a0(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x8557
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x1c8(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x1c8(%rbx)
movups 0x1b8(%rbx), %xmm1
movups %xmm0, 0x1b8(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x85e6
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x1e0(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x1e0(%rbx)
movups 0x1d0(%rbx), %xmm1
movups %xmm0, 0x1d0(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x8675
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x1f8(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x1f8(%rbx)
movups 0x1e8(%rbx), %xmm1
movups %xmm0, 0x1e8(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x8704
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x210(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x210(%rbx)
movups 0x200(%rbx), %xmm1
movups %xmm0, 0x200(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x8793
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x30(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x8, %esi
callq 0xbf10
movq 0x228(%rbx), %rax
leaq 0x50(%rsp), %r14
movaps (%r14), %xmm0
movq 0x10(%r14), %rcx
movq %rcx, 0x228(%rbx)
movups 0x218(%rbx), %xmm1
movups %xmm0, 0x218(%rbx)
leaq 0x10(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x8822
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0xb150(%rip), %rsi      # 0x13979
movl $0x4, %edx
movq %r15, %rdi
callq 0x3200
movq %r15, %rdi
movq %r13, %rsi
callq 0x3120
movq %rax, %r13
leaq 0xb133(%rip), %rsi      # 0x1397e
movl $0x3, %edx
movq %rax, %rdi
callq 0x3200
movq 0x10a51(%rip), %rsi     # 0x192b0
movq %r13, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xb0ea(%rip), %rsi      # 0x13982
movl $0xc, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xb0bc(%rip), %rsi      # 0x1398f
movl $0xa, %edx
movq %r15, %rdi
callq 0x3200
movl $0x4, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xb07c(%rip), %rsi      # 0x1399a
movl $0xa, %edx
movq %r15, %rdi
callq 0x3200
movl $0x8, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xb03c(%rip), %rsi      # 0x139a5
movl $0x13, %edx
movq %r15, %rdi
callq 0x3200
movl $0x8, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xb005(%rip), %rsi      # 0x139b9
movl $0x15, %edx
movq %r15, %rdi
callq 0x3200
movl $0x10, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xafd0(%rip), %rsi      # 0x139cf
movl $0x12, %edx
movq %r15, %rdi
callq 0x3200
movl $0x8, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaf98(%rip), %rsi      # 0x139e2
movl $0x10, %edx
movq %r15, %rdi
callq 0x3200
movl $0x10, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaf5e(%rip), %rsi      # 0x139f3
movl $0x13, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaf37(%rip), %rsi      # 0x13a07
movl $0xc, %edx
movq %r15, %rdi
callq 0x3200
movl $0xf4240, %esi          # imm = 0xF4240
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaef9(%rip), %rsi      # 0x13a14
movl $0x1c, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaedb(%rip), %rsi      # 0x13a31
movl $0x15, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaeb6(%rip), %rsi      # 0x13a47
movl $0x1d, %edx
movq %r15, %rdi
callq 0x3200
movq %r15, %rdi
movl $0x3, %esi
callq 0x3330
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xae89(%rip), %rsi      # 0x13a65
movl $0x15, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xae64(%rip), %rsi      # 0x13a7b
movl $0x13, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xae3d(%rip), %rsi      # 0x13a8f
movl $0x11, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xae14(%rip), %rsi      # 0x13aa1
movl $0x14, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xadee(%rip), %rsi      # 0x13ab6
movl $0x15, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xadc9(%rip), %rsi      # 0x13acc
movl $0xf, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xad9e(%rip), %rsi      # 0x13adc
movl $0x11, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xad75(%rip), %rsi      # 0x13aee
movl $0x11, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xad4c(%rip), %rsi      # 0x13b00
movl $0x14, %edx
movq %r15, %rdi
callq 0x3200
leaq 0xacfe(%rip), %rsi      # 0x13ac6
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xad12(%rip), %rsi      # 0x13b15
movl $0xc, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xace4(%rip), %rsi      # 0x13b22
movl $0xa, %edx
movq %r15, %rdi
callq 0x3200
movl $0x8, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaca4(%rip), %rsi      # 0x13b2d
movl $0x9, %edx
movq %r15, %rdi
callq 0x3200
movl $0x10000, %esi          # imm = 0x10000
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xac63(%rip), %rsi      # 0x13b37
movl $0x9, %edx
movq %r15, %rdi
callq 0x3200
movl $0x800, %esi            # imm = 0x800
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xac22(%rip), %rsi      # 0x13b41
movl $0xd, %edx
movq %r15, %rdi
callq 0x3200
movl $0x4, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xabe5(%rip), %rsi      # 0x13b4f
movl $0x13, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xabbe(%rip), %rsi      # 0x13b63
movl $0x4, %edx
movq %r15, %rdi
callq 0x3200
movsd 0xa8fe(%rip), %xmm0     # 0x138b8
movq %r15, %rdi
callq 0x32e0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xab75(%rip), %rsi      # 0x13b68
movl $0x3, %edx
movq %r15, %rdi
callq 0x3200
movl $0x9, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xab2e(%rip), %rsi      # 0x13b6c
movl $0x4, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaaf8(%rip), %rsi      # 0x13b71
movl $0x3, %edx
movq %r15, %rdi
callq 0x3200
movl $0x8, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaab1(%rip), %rsi      # 0x13b75
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x18, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaa6c(%rip), %rsi      # 0x13b7b
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x9, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaa27(%rip), %rsi      # 0x13b81
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x4, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa9e2(%rip), %rsi      # 0x13b87
movl $0x4, %edx
movq %r15, %rdi
callq 0x3200
movl $0x21, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa99c(%rip), %rsi      # 0x13b8c
movl $0x4, %edx
movq %r15, %rdi
callq 0x3200
movl $0x9, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa956(%rip), %rsi      # 0x13b91
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x4, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa911(%rip), %rsi      # 0x13b97
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x5, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa8cc(%rip), %rsi      # 0x13b9d
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x5, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa887(%rip), %rsi      # 0x13ba3
movl $0x4, %edx
movq %r15, %rdi
callq 0x3200
movl $0xa, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa841(%rip), %rsi      # 0x13ba8
movl $0x7, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa80e(%rip), %rsi      # 0x13bb0
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x6b, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa7c9(%rip), %rsi      # 0x13bb6
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x14, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa784(%rip), %rsi      # 0x13bbc
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa750(%rip), %rsi      # 0x13bc3
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa71b(%rip), %rsi      # 0x13bc9
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa6e7(%rip), %rsi      # 0x13bd0
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x4b, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa6a2(%rip), %rsi      # 0x13bd6
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x5a, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa65d(%rip), %rsi      # 0x13bdc
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movl $0x1e, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa619(%rip), %rsi      # 0x13be3
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movl $0x23, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa5d5(%rip), %rsi      # 0x13bea
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movl $0x28, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa591(%rip), %rsi      # 0x13bf1
movl $0x7, %edx
movq %r15, %rdi
callq 0x3200
movl $0x23, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa54e(%rip), %rsi      # 0x13bf9
movl $0x8, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa51c(%rip), %rsi      # 0x13c02
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movl $0x2d, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa4d8(%rip), %rsi      # 0x13c09
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movl $0x9b, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa494(%rip), %rsi      # 0x13c10
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movl $0x96, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa450(%rip), %rsi      # 0x13c17
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0xe6, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa40b(%rip), %rsi      # 0x13c1d
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0xc, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa3c6(%rip), %rsi      # 0x13c23
movl $0x6, %edx
movq %r15, %rdi
callq 0x3200
movl $0x10, %esi
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa382(%rip), %rsi      # 0x13c2a
movl $0x5, %edx
movq %r15, %rdi
callq 0x3200
movl $0x122, %esi            # imm = 0x122
movq %r15, %rdi
callq 0x3120
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa33d(%rip), %rsi      # 0x13c30
movl $0xc, %edx
movq %r15, %rdi
callq 0x3200
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x9947
jmp 0x9947
jmp 0x9947
jmp 0x9947
jmp 0x9947
jmp 0x9947
jmp 0x9947
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x99a1
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
jmp 0x9985
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
jmp 0x999c
movq %rax, 0x28(%rsp)
movl $0x200, %esi            # imm = 0x200
movq %rbp, %rdi
callq 0x31f0
jmp 0x99a1
movq %rax, 0x28(%rsp)
jmp 0x99a9
movq %rax, 0x28(%rsp)
jmp 0x99b1
jmp 0x999c
movq %rax, 0x28(%rsp)
movq %r12, %rdi
callq 0x3368
movq %r15, %rdi
callq 0x3368
leaq 0x250(%rbx), %r14
leaq 0x270(%rbx), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x99d6
movq 0x280(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq (%r14), %rdi
testq %rdi, %rdi
je 0x99ed
movq 0x260(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x170(%rbx), %r14
leaq 0x188(%rbx), %rax
movq %rax, 0x80(%rsp)
leaq 0x1a0(%rbx), %rax
movq %rax, 0x78(%rsp)
leaq 0x1b8(%rbx), %rax
movq %rax, 0x70(%rsp)
leaq 0x1d0(%rbx), %r15
leaq 0x1e8(%rbx), %r12
leaq 0x200(%rbx), %rbp
leaq 0x218(%rbx), %r13
movq 0x230(%rbx), %rdi
testq %rdi, %rdi
je 0x9a52
movq 0x240(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq %r13, %rdi
callq 0xbfa8
movq %rbp, %rdi
callq 0xbfa8
movq %r12, %rdi
callq 0xbfa8
movq %r15, %rdi
callq 0xbfa8
movq 0x70(%rsp), %rdi
callq 0xbfa8
movq 0x78(%rsp), %rdi
callq 0xbfa8
movq 0x80(%rsp), %rdi
callq 0xbfa8
movq %r14, %rdi
callq 0xbfa8
movq 0x140(%rbx), %rdi
testq %rdi, %rdi
je 0x9ab6
movq 0x150(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x128(%rbx), %rdi
testq %rdi, %rdi
je 0x9ad1
movq 0x138(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x110(%rbx), %rdi
testq %rdi, %rdi
je 0x9aec
movq 0x120(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xf8(%rbx), %rdi
testq %rdi, %rdi
je 0x9b07
movq 0x108(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0x9b22
movq 0xf0(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0x9b3d
movq 0xd8(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x90(%rbx), %rdi
testq %rdi, %rdi
je 0x9b58
movq 0xa0(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x9b70
movq 0x88(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x60(%rbx), %rdi
testq %rdi, %rdi
je 0x9b85
movq 0x70(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x9b9a
movq 0x58(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x9baf
movq 0x40(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x88(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9bcb
movq 0x28(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x28(%rsp), %rdi
callq 0x3340
nop