// File: /workspace/github_cpp_makefile_star2_O1/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 $0x138, %rsp            # imm = 0x138
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x10c02(%rip), %rax     # 0x18b98
movq %rax, (%rdi)
leaq 0x18(%rdi), %rdi
leaq 0x30(%rbx), %rax
movq %rax, 0xb8(%rsp)
leaq 0x48(%rbx), %rax
movq %rax, 0xb0(%rsp)
leaq 0x60(%rbx), %rax
movq %rax, 0xa8(%rsp)
leaq 0x78(%rbx), %rax
movq %rax, 0xa0(%rsp)
leaq 0x90(%rbx), %rax
movq %rax, 0x98(%rsp)
leaq 0xc8(%rbx), %rax
movq %rax, 0x90(%rsp)
leaq 0xe0(%rbx), %rax
movq %rax, 0x88(%rsp)
leaq 0xf8(%rbx), %rax
movq %rax, 0x80(%rsp)
leaq 0x110(%rbx), %rax
movq %rax, 0x78(%rsp)
leaq 0x128(%rbx), %rax
movq %rax, 0x70(%rsp)
leaq 0x140(%rbx), %rax
movq %rax, 0x68(%rsp)
leaq 0x2b0(%rbx), %rbp
movl $0x234, %edx            # imm = 0x234
movq %rdi, 0xc0(%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 %rbp, %rdi
callq 0x3320
leaq 0x4b0(%rbx), %r15
movq %r15, %rdi
callq 0x3320
movl $0x0, 0x6b0(%rbx)
leaq 0xb7f3(%rip), %rdi      # 0x13890
callq 0x3230
testq %rax, %rax
je 0x8109
movq %rax, %r13
leaq 0xb7e8(%rip), %rdx      # 0x13899
leaq 0xbef1(%rip), %r8       # 0x13fa9
leaq 0xe0(%rsp), %r14
movl $0x50, %esi
movq %r14, %rdi
movq %rax, %rcx
xorl %eax, %eax
callq 0x32d0
movq %rbp, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x3050
leaq 0xb7c1(%rip), %rdx      # 0x138aa
leaq 0xbeb9(%rip), %r8       # 0x13fa9
leaq 0xe0(%rsp), %rdi
movl $0x50, %esi
movq %r13, %rcx
xorl %eax, %eax
callq 0x32d0
jmp 0x8160
leaq 0xb7ab(%rip), %rdx      # 0x138bb
leaq 0xbe92(%rip), %rcx      # 0x13fa9
leaq 0xe0(%rsp), %r14
movl $0x50, %esi
movq %r14, %rdi
xorl %eax, %eax
callq 0x32d0
movq %rbp, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x3050
leaq 0xb785(%rip), %rdx      # 0x138ca
leaq 0xbe5d(%rip), %rcx      # 0x13fa9
leaq 0xe0(%rsp), %rdi
movl $0x50, %esi
xorl %eax, %eax
callq 0x32d0
leaq 0xe0(%rsp), %rsi
movq %r15, %rdi
movl $0x10, %edx
callq 0x3050
movq %r12, 0x11134(%rip)     # 0x192b0
movq $0x0, 0x8(%rbx)
movl $0x200, %edi            # imm = 0x200
callq 0x31d0
movq %rax, %r13
movq %rax, %rdi
callq 0x395c
movq %r13, 0x10(%rbx)
movl $0x20, %edi
callq 0x31d0
leaq 0x10a1a(%rip), %rcx     # 0x18bc8
movq %rcx, (%rax)
movq %rbx, 0x8(%rax)
leaq 0x1cec(%rip), %rcx      # 0x9ea8
movq %rcx, 0x10(%rax)
movq $0x0, 0x18(%rax)
movq %r13, %rdi
movq %rax, %rsi
callq 0x6f62
leaq 0x10ff6(%rip), %r13     # 0x191d0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0xc086
leaq 0x30(%rsp), %r14
movq 0xc0(%rsp), %rdi
movq %r14, %rsi
callq 0x747e
movq (%r14), %rdi
testq %rdi, %rdi
je 0x8223
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0xb8(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x826b
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0xb0(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x82b3
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0xc086
leaq 0x30(%rsp), %r14
movq 0xa8(%rsp), %rdi
movq %r14, %rsi
callq 0x747e
movq (%r14), %rdi
testq %rdi, %rdi
je 0x82fc
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0xa0(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x8344
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x838c
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0x90(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x83d4
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0x88(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x841c
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0x80(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x8464
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0x78(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x84a9
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x84ee
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
movl (%r13), %esi
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x6f9c
leaq 0x30(%rsp), %r14
movq 0x68(%rsp), %rdi
movq %r14, %rsi
callq 0x7422
movq (%r14), %rdi
testq %rdi, %rdi
je 0x8533
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x170(%rbx), %rax
movups 0x178(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x170(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x178(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x180(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x85e1
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x188(%rbx), %rax
movups 0x190(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x188(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x190(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x198(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x868f
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x1a0(%rbx), %rax
movups 0x1a8(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x1a0(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x1a8(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x1b0(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x873d
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x1b8(%rbx), %rax
movups 0x1c0(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x1b8(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x1c0(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x1c8(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x87eb
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x1d0(%rbx), %rax
movups 0x1d8(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x1d0(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x1d8(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x1e0(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8899
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x1e8(%rbx), %rax
movups 0x1f0(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x1e8(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x1f0(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x1f8(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8947
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x200(%rbx), %rax
movups 0x208(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x200(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x208(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x210(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x89f5
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x8, %esi
callq 0xc104
leaq 0x30(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq 0x218(%rbx), %rax
movups 0x220(%rbx), %xmm0
leaq 0x50(%rsp), %r14
movq (%r14), %rcx
movq %rcx, 0x218(%rbx)
movq 0x8(%r14), %rcx
movq %rcx, 0x220(%rbx)
movq 0x10(%r14), %rcx
movq %rcx, 0x228(%rbx)
movq (%rdi), %rcx
movq 0x8(%rdi), %rdx
movq 0x10(%rdi), %rsi
movq %rax, (%rdi)
movups %xmm0, 0x8(%rdi)
movq %rcx, (%r14)
movq %rdx, 0x8(%r14)
movq %rsi, 0x10(%r14)
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8aa3
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0xae2f(%rip), %rsi      # 0x138d9
movl $0x4, %edx
movq %rbp, %rdi
callq 0x3200
movq %rbp, %rdi
movq %r12, %rsi
callq 0x3120
movq %rax, %r12
leaq 0xae12(%rip), %rsi      # 0x138de
movl $0x3, %edx
movq %rax, %rdi
callq 0x3200
movq 0x107d0(%rip), %rsi     # 0x192b0
movq %r12, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xadc9(%rip), %rsi      # 0x138e2
movl $0xc, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xad9a(%rip), %rsi      # 0x138ef
movl $0xa, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x4, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xad5a(%rip), %rsi      # 0x138fa
movl $0xa, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x8, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xad1a(%rip), %rsi      # 0x13905
movl $0x13, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x8, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xace3(%rip), %rsi      # 0x13919
movl $0x15, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x10, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xacae(%rip), %rsi      # 0x1392f
movl $0x12, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x8, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xac76(%rip), %rsi      # 0x13942
movl $0x10, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x10, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xac3c(%rip), %rsi      # 0x13953
movl $0x13, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xac14(%rip), %rsi      # 0x13967
movl $0xc, %edx
movq %rbp, %rdi
callq 0x3200
movl $0xf4240, %esi          # imm = 0xF4240
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xabd6(%rip), %rsi      # 0x13974
movl $0x1c, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xabb7(%rip), %rsi      # 0x13991
movl $0x15, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xab91(%rip), %rsi      # 0x139a7
movl $0x1d, %edx
movq %rbp, %rdi
callq 0x3200
movq %rbp, %rdi
movl $0x3, %esi
callq 0x3330
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xab64(%rip), %rsi      # 0x139c5
movl $0x15, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xab3e(%rip), %rsi      # 0x139db
movl $0x13, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xab16(%rip), %rsi      # 0x139ef
movl $0x11, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaaec(%rip), %rsi      # 0x13a01
movl $0x14, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaac5(%rip), %rsi      # 0x13a16
movl $0x15, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaa9f(%rip), %rsi      # 0x13a2c
movl $0xf, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaa73(%rip), %rsi      # 0x13a3c
movl $0x11, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaa49(%rip), %rsi      # 0x13a4e
movl $0x11, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xaa1f(%rip), %rsi      # 0x13a60
movl $0x14, %edx
movq %rbp, %rdi
callq 0x3200
leaq 0xa9d1(%rip), %rsi      # 0x13a26
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa9e4(%rip), %rsi      # 0x13a75
movl $0xc, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa9b5(%rip), %rsi      # 0x13a82
movl $0xa, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x8, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa975(%rip), %rsi      # 0x13a8d
movl $0x9, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x10000, %esi          # imm = 0x10000
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa934(%rip), %rsi      # 0x13a97
movl $0x9, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x800, %esi            # imm = 0x800
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa8f3(%rip), %rsi      # 0x13aa1
movl $0xd, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x4, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa8b6(%rip), %rsi      # 0x13aaf
movl $0x13, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa88e(%rip), %rsi      # 0x13ac3
movl $0x4, %edx
movq %rbp, %rdi
callq 0x3200
movsd 0xa61e(%rip), %xmm0     # 0x13868
movq %rbp, %rdi
callq 0x32e0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa845(%rip), %rsi      # 0x13ac8
movl $0x3, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x9, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa7fe(%rip), %rsi      # 0x13acc
movl $0x4, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa7c7(%rip), %rsi      # 0x13ad1
movl $0x3, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x8, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa780(%rip), %rsi      # 0x13ad5
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x18, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa73b(%rip), %rsi      # 0x13adb
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x9, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa6f6(%rip), %rsi      # 0x13ae1
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x4, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa6b1(%rip), %rsi      # 0x13ae7
movl $0x4, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x21, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa66b(%rip), %rsi      # 0x13aec
movl $0x4, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x9, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa625(%rip), %rsi      # 0x13af1
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x4, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa5e0(%rip), %rsi      # 0x13af7
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x5, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa59b(%rip), %rsi      # 0x13afd
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x5, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa556(%rip), %rsi      # 0x13b03
movl $0x4, %edx
movq %rbp, %rdi
callq 0x3200
movl $0xa, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa510(%rip), %rsi      # 0x13b08
movl $0x7, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa4dc(%rip), %rsi      # 0x13b10
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x6b, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa497(%rip), %rsi      # 0x13b16
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x14, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa452(%rip), %rsi      # 0x13b1c
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa41d(%rip), %rsi      # 0x13b23
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa3e7(%rip), %rsi      # 0x13b29
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa3b2(%rip), %rsi      # 0x13b30
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x4b, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa36d(%rip), %rsi      # 0x13b36
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x5a, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa328(%rip), %rsi      # 0x13b3c
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x1e, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa2e4(%rip), %rsi      # 0x13b43
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x23, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa2a0(%rip), %rsi      # 0x13b4a
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x28, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa25c(%rip), %rsi      # 0x13b51
movl $0x7, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x23, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa219(%rip), %rsi      # 0x13b59
movl $0x8, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa1e6(%rip), %rsi      # 0x13b62
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x2d, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa1a2(%rip), %rsi      # 0x13b69
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x9b, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa15e(%rip), %rsi      # 0x13b70
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x96, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa11a(%rip), %rsi      # 0x13b77
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0xe6, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa0d5(%rip), %rsi      # 0x13b7d
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0xc, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa090(%rip), %rsi      # 0x13b83
movl $0x6, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x10, %esi
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa04c(%rip), %rsi      # 0x13b8a
movl $0x5, %edx
movq %rbp, %rdi
callq 0x3200
movl $0x122, %esi            # imm = 0x122
movq %rbp, %rdi
callq 0x3120
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq 0xa007(%rip), %rsi      # 0x13b90
movl $0xc, %edx
movq %rbp, %rdi
callq 0x3200
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x9bde
jmp 0x9bde
jmp 0x9bde
jmp 0x9bde
jmp 0x9bde
jmp 0x9bde
jmp 0x9bde
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x9c38
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
jmp 0x9c1c
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
jmp 0x9c33
movq %rax, 0x8(%rsp)
movl $0x200, %esi            # imm = 0x200
movq %r13, %rdi
callq 0x31f0
jmp 0x9c38
movq %rax, 0x8(%rsp)
jmp 0x9c40
movq %rax, 0x8(%rsp)
jmp 0x9c48
jmp 0x9c33
movq %rax, 0x8(%rsp)
movq %r15, %rdi
callq 0x3368
movq %rbp, %rdi
callq 0x3368
leaq 0x250(%rbx), %r14
leaq 0x270(%rbx), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9c6d
movq 0x280(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq (%r14), %rdi
testq %rdi, %rdi
je 0x9c84
movq 0x260(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
leaq 0x170(%rbx), %r14
leaq 0x188(%rbx), %rax
movq %rax, 0xd8(%rsp)
leaq 0x1a0(%rbx), %rax
movq %rax, 0xd0(%rsp)
leaq 0x1b8(%rbx), %rax
movq %rax, 0xc8(%rsp)
leaq 0x1d0(%rbx), %r15
leaq 0x1e8(%rbx), %rbp
leaq 0x200(%rbx), %r12
leaq 0x218(%rbx), %r13
movq 0x230(%rbx), %rdi
testq %rdi, %rdi
je 0x9cef
movq 0x240(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq %r13, %rdi
callq 0xc19c
movq %r12, %rdi
callq 0xc19c
movq %rbp, %rdi
callq 0xc19c
movq %r15, %rdi
callq 0xc19c
movq 0xc8(%rsp), %rdi
callq 0xc19c
movq 0xd0(%rsp), %rdi
callq 0xc19c
movq 0xd8(%rsp), %rdi
callq 0xc19c
movq %r14, %rdi
callq 0xc19c
movq 0x68(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9d5a
movq 0x150(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x70(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9d76
movq 0x138(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x78(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9d92
movq 0x120(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x80(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9db1
movq 0x108(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x88(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9dd0
movq 0xf0(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x90(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9def
movq 0xd8(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x98(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9e0e
movq 0xa0(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xa0(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9e2d
movq 0x88(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xa8(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9e49
movq 0x70(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xb0(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9e65
movq 0x58(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xb8(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9e81
movq 0x40(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0xc0(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9e9d
movq 0x28(%rbx), %rsi
subq %rdi, %rsi
callq 0x31f0
movq 0x8(%rsp), %rdi
callq 0x3340
nop