// File: BenLangmead[P]bowtie/./blockwise_sa.h
// Function: KarkkainenBlockwiseSA<SString<char>>::nextBlock(int, int)
void KarkkainenBlockwiseSA<TStr>::nextBlock(int cur_block, int tid) {
#ifndef NDEBUG
	if(this->_nthreads > 1) {
		assert_lt((size_t)tid, this->_itrBuckets.size());
	}
#endif
	EList<TIndexOffU>& bucket = (this->_nthreads > 1 ? this->_itrBuckets[tid] : this->_itrBucket);
	{
		ThreadSafe ts(&_mutex);
		VMSG_NL("Getting block " << (cur_block+1) << " of " << _sampleSuffs.size()+1);
	}
	assert(_built);
	assert_gt(_dcV, 3);
	assert_leq((size_t)cur_block, _sampleSuffs.size());
	const TStr& t = this->text();
	TIndexOffU len = (TIndexOffU)t.length();
	// Set up the bucket
	bucket.clear();
	TIndexOffU lo = OFF_MASK, hi = OFF_MASK;
	if(_sampleSuffs.size() == 0) {
		// Special case: if _sampleSuffs is 0, then multikey-quicksort
		// everything
		{
			ThreadSafe ts(&_mutex);
			VMSG_NL("  No samples; assembling all-inclusive block");
		}
		assert_eq(0, cur_block);
		try {
			if(bucket.capacity() < this->bucketSz()) {
				bucket.reserveExact(len+1);
			}
			bucket.resize(len);
			for(TIndexOffU i = 0; i < len; i++) {
				bucket[i] = i;
			}
		} catch(bad_alloc &e) {
			if(this->_passMemExc) {
				throw e; // rethrow immediately
			} else {
				cerr << "Could not allocate a master suffix-array block of " << ((len+1) * 4) << " bytes" << endl
				     << "Please try using a larger number of blocks by specifying a smaller --bmax or" << endl
				     << "a larger --bmaxdivn" << endl;
				throw 1;
			}
		}
	} else {
		try {
			{
				ThreadSafe ts(&_mutex);
				VMSG_NL("  Reserving size (" << this->bucketSz() << ") for bucket " << (cur_block+1));
			}
			// BTL: Add a +100 fudge factor; there seem to be instances
			// where a bucket ends up having one more elt than bucketSz()
			if(bucket.size() < this->bucketSz()+100) {
				bucket.reserveExact(this->bucketSz()+100);
			}
		} catch(bad_alloc &e) {
			if(this->_passMemExc) {
				throw e; // rethrow immediately
			} else {
				cerr << "Could not allocate a suffix-array block of " << ((this->bucketSz()+1) * 4) << " bytes" << endl;
				cerr << "Please try using a larger number of blocks by specifying a smaller --bmax or" << endl
				     << "a larger --bmaxdivn" << endl;
				throw 1;
			}
		}
		// Select upper and lower bounds from _sampleSuffs[] and
		// calculate the Z array up to the difference-cover periodicity
		// for both.  Be careful about first/last buckets.

		//String<TIndexOffU> zLo(EBWTB_CAT), zHi(EBWTB_CAT);
		EList<TIndexOffU> zLo, zHi;
		assert_geq(cur_block, 0);
		assert_leq((size_t)cur_block, _sampleSuffs.size());
		bool first = (cur_block == 0);
		bool last  = ((size_t)cur_block == _sampleSuffs.size());
		try {
			// Timer timer(cout, "  Calculating Z arrays time: ", this->verbose());
			{
				ThreadSafe ts(&_mutex);
				VMSG_NL("  Calculating Z arrays for bucket " << (cur_block+1));
			}
			if(!last) {
				// Not the last bucket
				assert_lt((size_t)cur_block, _sampleSuffs.size());
				hi = _sampleSuffs[cur_block];
				zHi.resizeExact(_dcV);
				zHi.fillZero();
				assert_eq(zHi[0], 0);
				calcZ(t, hi, zHi, this->verbose(), this->sanityCheck());
			}
			if(!first) {
				// Not the first bucket
				assert_gt(cur_block, 0);
				assert_leq((size_t)cur_block, _sampleSuffs.size());
				lo = _sampleSuffs[cur_block-1];
				zLo.resizeExact(_dcV);
				zLo.fillZero();
				assert_gt(_dcV, 3);
				assert_eq(zLo[0], 0);
				calcZ(t, lo, zLo, this->verbose(), this->sanityCheck());
			}
		} catch(bad_alloc &e) {
			if(this->_passMemExc) {
				throw e; // rethrow immediately
			} else {
				cerr << "Could not allocate a z-array of " << (_dcV * 4) << " bytes" << endl;
				cerr << "Please try using a larger number of blocks by specifying a smaller --bmax or" << endl
				     << "a larger --bmaxdivn" << endl;
				throw 1;
			}
		}

		// This is the most critical loop in the algorithm; this is where
		// we iterate over all suffixes in the text and pick out those that
		// fall into the current bucket.
		//
		// This loop is based on the SMALLERSUFFIXES function outlined on
		// p7 of the "Fast BWT" paper
		//
		int64_t kHi = -1, kLo = -1;
		int64_t jHi = -1, jLo = -1;
		bool kHiSoft = false, kLoSoft = false;
		assert_eq(0, bucket.size());
		{
			// Timer timer(cout, "  Block accumulator loop time: ", this->verbose());
			{
				ThreadSafe ts(&_mutex);
				VMSG_NL("  Entering block accumulator loop for bucket " << (cur_block+1) << ":");
			}
			TIndexOffU lenDiv10 = (len + 9) / 10;
			for(TIndexOffU iten = 0, ten = 0; iten < len; iten += lenDiv10, ten++) {
				TIndexOffU itenNext = iten + lenDiv10;
				{
					ThreadSafe ts(&_mutex);
					if(ten > 0) VMSG_NL("  bucket " << (cur_block+1) << ": " << (ten * 10) << "%");
				}
				for(TIndexOffU i = iten; i < itenNext && i < len; i++) {
					assert_lt(jLo, (TIndexOff)i); assert_lt(jHi, (TIndexOff)i);
					// Advance the upper-bound comparison by one character
					if(i == hi || i == lo) continue; // equal to one of the bookends
					if(hi != OFF_MASK && !suffixCmp(hi, i, jHi, kHi, kHiSoft, zHi)) {
						continue; // not in the bucket
					}
					if(lo != OFF_MASK && suffixCmp(lo, i, jLo, kLo, kLoSoft, zLo)) {
						continue; // not in the bucket
					}
					// In the bucket! - add it
					assert_lt(i, len);
					try {
						bucket.push_back(i);
					} catch(bad_alloc &e) {
						cerr << "Could not append element to block of " << ((bucket.size()) * OFF_SIZE) << " bytes" << endl;
						if(this->_passMemExc) {
							throw e; // rethrow immediately
						} else {
							cerr << "Please try using a larger number of blocks by specifying a smaller --bmax or" << endl
							     << "a larger --bmaxdivn" << endl;
							throw 1;
						}
					}
					// Not necessarily true; we allow overflowing buckets
					// since we can't guarantee that a good set of sample
					// suffixes can be found in a reasonable amount of time
					//assert_lt(bucket.size(), this->bucketSz());
				}
			} // end loop over all suffixes of t
			{
				ThreadSafe ts(&_mutex);
				VMSG_NL("  bucket " << (cur_block+1) << ": 100%");
			}
		}
	} // end else clause of if(_sampleSuffs.size() == 0)
	// Sort the bucket
	if(bucket.size() > 0) {
		Timer timer(cout, "  Sorting block time: ", this->verbose());
		{
			ThreadSafe ts(&_mutex);
			VMSG_NL("  Sorting block of length " << bucket.size() << " for bucket " << (cur_block+1));
		}
		this->qsort(bucket);
	}
	if(hi != OFF_MASK) {
		// Not the final bucket; throw in the sample on the RHS
		bucket.push_back(hi);
	} else {
		// Final bucket; throw in $ suffix
		bucket.push_back(len);
	}
	{
		ThreadSafe ts(&_mutex);
		VMSG_NL("Returning block of " << bucket.size() << " for bucket " << (cur_block+1));
	}

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1290, %rsp           # imm = 0x1290
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1048(%rbp)
cmpl $0x1, 0x68(%rax)
jle 0x23466
movq -0x1048(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
movslq -0x10(%rbp), %rsi
callq 0x266c0
movq %rax, -0x1050(%rbp)
jmp 0x23478
movq -0x1048(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x1050(%rbp)
movq -0x1048(%rbp), %rsi
movq -0x1050(%rbp), %rax
movq %rax, -0x18(%rbp)
addq $0x98, %rsi
leaq -0x20(%rbp), %rdi
callq 0x26660
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x234af
jmp 0x235ed
leaq -0x1a8(%rbp), %rdi
callq 0x6280
jmp 0x234bd
leaq -0x198(%rbp), %rdi
leaq 0x23515(%rip), %rsi     # 0x469e0
callq 0x6410
movq %rax, -0x1058(%rbp)
jmp 0x234d9
movq -0x1058(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x1060(%rbp)
jmp 0x234f3
movq -0x1060(%rbp), %rdi
leaq 0x22af1(%rip), %rsi     # 0x45ff2
callq 0x6410
movq %rax, -0x1068(%rbp)
jmp 0x2350f
movq -0x1048(%rbp), %rdi
addq $0x48, %rdi
callq 0x14440
movq -0x1068(%rbp), %rdi
movq %rax, %rsi
incq %rsi
callq 0x6100
movq %rax, -0x1070(%rbp)
jmp 0x2353a
movq -0x1070(%rbp), %rdi
movq 0x2ea20(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x2354f
leaq -0x1d8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x6400
jmp 0x23564
movq -0x1048(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x28930
jmp 0x23579
leaq -0x1d8(%rbp), %rdi
callq 0x69a8
leaq -0x1a8(%rbp), %rdi
callq 0x62c0
jmp 0x235ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x23704
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x235dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x69a8
leaq -0x1a8(%rbp), %rdi
callq 0x62c0
jmp 0x23704
leaq -0x20(%rbp), %rdi
callq 0x26690
movq -0x1048(%rbp), %rdi
callq 0x271c0
movq %rax, -0x1e0(%rbp)
movq -0x1e0(%rbp), %rdi
callq 0x14c10
movl %eax, -0x1e4(%rbp)
movq -0x18(%rbp), %rdi
callq 0x266f0
movq -0x1048(%rbp), %rdi
movl $0xffffffff, -0x1e8(%rbp) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x1ec(%rbp) # imm = 0xFFFFFFFF
addq $0x48, %rdi
callq 0x14440
cmpq $0x0, %rax
jne 0x239f2
movq -0x1048(%rbp), %rsi
addq $0x98, %rsi
leaq -0x1f8(%rbp), %rdi
callq 0x26660
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x23681
jmp 0x23769
leaq -0x380(%rbp), %rdi
callq 0x6280
jmp 0x2368f
leaq -0x370(%rbp), %rdi
leaq 0x23352(%rip), %rsi     # 0x469ef
callq 0x6410
movq %rax, -0x1078(%rbp)
jmp 0x236ab
movq -0x1078(%rbp), %rdi
movq 0x2e8af(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x236c0
leaq -0x3a0(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x6400
jmp 0x236d5
movq -0x1048(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x28930
jmp 0x236ea
leaq -0x3a0(%rbp), %rdi
callq 0x69a8
leaq -0x380(%rbp), %rdi
callq 0x62c0
jmp 0x23769
leaq -0x20(%rbp), %rdi
callq 0x26690
jmp 0x24e64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x237c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x2375b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x69a8
leaq -0x380(%rbp), %rdi
callq 0x62c0
jmp 0x237c1
leaq -0x1f8(%rbp), %rdi
callq 0x26690
movq -0x18(%rbp), %rdi
callq 0x30290
movq %rax, -0x1080(%rbp)
jmp 0x23787
movq -0x1048(%rbp), %rdi
callq 0x28910
movl %eax, %ecx
movq -0x1080(%rbp), %rax
movl %ecx, %ecx
cmpq %rcx, %rax
jae 0x2385d
movq -0x18(%rbp), %rdi
movl -0x1e4(%rbp), %eax
incl %eax
movl %eax, %esi
callq 0x302b0
jmp 0x237bc
jmp 0x2385d
leaq -0x1f8(%rbp), %rdi
callq 0x26690
jmp 0x24e64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
movl -0x1b4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x24e64
movq -0x1b0(%rbp), %rdi
callq 0x61a0
movq %rax, %rcx
movq -0x1048(%rbp), %rax
movq %rcx, -0x3b0(%rbp)
testb $0x1, 0x15(%rax)
je 0x238df
movl $0x8, %edi
callq 0x61f0
movq %rax, %rdi
movq %rdi, -0x1088(%rbp)
movq -0x3b0(%rbp), %rsi
callq 0x147a0
movq -0x1088(%rbp), %rdi
movq 0x2e764(%rip), %rsi     # 0x51fb0
movq 0x2e735(%rip), %rdx     # 0x51f88
callq 0x67f0
jmp 0x24e78
movq -0x18(%rbp), %rdi
movl -0x1e4(%rbp), %eax
movl %eax, %esi
callq 0x25d50
jmp 0x23870
movl $0x0, -0x3a4(%rbp)
movl -0x3a4(%rbp), %eax
cmpl -0x1e4(%rbp), %eax
jae 0x238be
movl -0x3a4(%rbp), %eax
movl %eax, -0x108c(%rbp)
movq -0x18(%rbp), %rdi
movl -0x3a4(%rbp), %eax
movl %eax, %esi
callq 0x14410
movl -0x108c(%rbp), %ecx
movl %ecx, (%rax)
movl -0x3a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3a4(%rbp)
jmp 0x2387a
jmp 0x239ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
callq 0x6770
jmp 0x239e8
movq 0x2e70a(%rip), %rdi     # 0x51ff0
leaq 0x2312f(%rip), %rsi     # 0x46a1c
callq 0x6410
movq %rax, -0x1098(%rbp)
jmp 0x238fb
movq -0x1098(%rbp), %rdi
movl -0x1e4(%rbp), %ecx
movl %ecx, %eax
leal 0x4(,%rax,4), %esi
callq 0x65f0
movq %rax, -0x10a0(%rbp)
jmp 0x2391f
movq -0x10a0(%rbp), %rdi
leaq 0x23122(%rip), %rsi     # 0x46a4f
callq 0x6410
movq %rax, -0x10a8(%rbp)
jmp 0x2393b
movq -0x10a8(%rbp), %rdi
movq 0x2e61f(%rip), %rsi     # 0x51f68
callq 0x6470
movq %rax, -0x10b0(%rbp)
jmp 0x23957
movq -0x10b0(%rbp), %rdi
leaq 0x230f1(%rip), %rsi     # 0x46a56
callq 0x6410
movq %rax, -0x10b8(%rbp)
jmp 0x23973
movq -0x10b8(%rbp), %rdi
movq 0x2e5e7(%rip), %rsi     # 0x51f68
callq 0x6470
movq %rax, -0x10c0(%rbp)
jmp 0x2398f
movq -0x10c0(%rbp), %rdi
leaq 0x22a87(%rip), %rsi     # 0x46424
callq 0x6410
movq %rax, -0x10c8(%rbp)
jmp 0x239ab
movq -0x10c8(%rbp), %rdi
movq 0x2e5af(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x239c0
movl $0x4, %edi
callq 0x61f0
movq %rax, %rdi
movl $0x1, (%rdi)
movq 0x2e576(%rip), %rsi     # 0x51f50
xorl %eax, %eax
movl %eax, %edx
callq 0x67f0
jmp 0x24e78
jmp 0x24e64
jmp 0x24abc
movq -0x1048(%rbp), %rsi
addq $0x98, %rsi
leaq -0x3b8(%rbp), %rdi
callq 0x26660
jmp 0x23a0e
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x23a23
jmp 0x23b6d
leaq -0x540(%rbp), %rdi
callq 0x6280
jmp 0x23a31
leaq -0x530(%rbp), %rdi
leaq 0x23064(%rip), %rsi     # 0x46aa3
callq 0x6410
movq %rax, -0x10d0(%rbp)
jmp 0x23a4d
movq -0x1048(%rbp), %rdi
callq 0x28910
movq -0x10d0(%rbp), %rdi
movl %eax, %esi
callq 0x65f0
movq %rax, -0x10d8(%rbp)
jmp 0x23a70
movq -0x10d8(%rbp), %rdi
leaq 0x23038(%rip), %rsi     # 0x46ab6
callq 0x6410
movq %rax, -0x10e0(%rbp)
jmp 0x23a8c
movq -0x10e0(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x10e8(%rbp)
jmp 0x23aa6
movq -0x10e8(%rbp), %rdi
movq 0x2e4b4(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x23abb
leaq -0x560(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x6400
jmp 0x23ad0
movq -0x1048(%rbp), %rdi
leaq -0x560(%rbp), %rsi
callq 0x28930
jmp 0x23ae5
leaq -0x560(%rbp), %rdi
callq 0x69a8
leaq -0x540(%rbp), %rdi
callq 0x62c0
jmp 0x23b6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x23be7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x23bdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x23b5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x560(%rbp), %rdi
callq 0x69a8
leaq -0x540(%rbp), %rdi
callq 0x62c0
jmp 0x23bdb
leaq -0x3b8(%rbp), %rdi
callq 0x26690
movq -0x18(%rbp), %rdi
callq 0x14440
movq -0x1048(%rbp), %rdi
movq %rax, -0x10f0(%rbp)
callq 0x28910
movl %eax, %ecx
movq -0x10f0(%rbp), %rax
addl $0x64, %ecx
movl %ecx, %ecx
cmpq %rcx, %rax
jae 0x23c5c
movq -0x1048(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x10f8(%rbp)
callq 0x28910
movq -0x10f8(%rbp), %rdi
addl $0x64, %eax
movl %eax, %esi
callq 0x302b0
jmp 0x23bd6
jmp 0x23c5c
leaq -0x3b8(%rbp), %rdi
callq 0x26690
movl -0x1b4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x24e64
movq -0x1b0(%rbp), %rdi
callq 0x61a0
movq %rax, %rcx
movq -0x1048(%rbp), %rax
movq %rcx, -0x568(%rbp)
testb $0x1, 0x15(%rax)
je 0x23c7d
movl $0x8, %edi
callq 0x61f0
movq %rax, %rdi
movq %rdi, -0x1100(%rbp)
movq -0x568(%rbp), %rsi
callq 0x147a0
movq -0x1100(%rbp), %rdi
movq 0x2e365(%rip), %rsi     # 0x51fb0
movq 0x2e336(%rip), %rdx     # 0x51f88
callq 0x67f0
jmp 0x24e78
jmp 0x23d8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
callq 0x6770
jmp 0x23d87
movq 0x2e36c(%rip), %rdi     # 0x51ff0
leaq 0x22e39(%rip), %rsi     # 0x46ac4
callq 0x6410
movq %rax, -0x1108(%rbp)
jmp 0x23c99
movq -0x1048(%rbp), %rdi
callq 0x28910
movq -0x1108(%rbp), %rdi
movl %eax, %ecx
movl %ecx, %eax
leal 0x4(,%rax,4), %esi
callq 0x65f0
movq %rax, -0x1110(%rbp)
jmp 0x23cc5
movq -0x1110(%rbp), %rdi
leaq 0x22d7c(%rip), %rsi     # 0x46a4f
callq 0x6410
movq %rax, -0x1118(%rbp)
jmp 0x23ce1
movq -0x1118(%rbp), %rdi
movq 0x2e279(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x23cf6
movq 0x2e2f3(%rip), %rdi     # 0x51ff0
leaq 0x22d52(%rip), %rsi     # 0x46a56
callq 0x6410
movq %rax, -0x1120(%rbp)
jmp 0x23d12
movq -0x1120(%rbp), %rdi
movq 0x2e248(%rip), %rsi     # 0x51f68
callq 0x6470
movq %rax, -0x1128(%rbp)
jmp 0x23d2e
movq -0x1128(%rbp), %rdi
leaq 0x226e8(%rip), %rsi     # 0x46424
callq 0x6410
movq %rax, -0x1130(%rbp)
jmp 0x23d4a
movq -0x1130(%rbp), %rdi
movq 0x2e210(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x23d5f
movl $0x4, %edi
callq 0x61f0
movq %rax, %rdi
movl $0x1, (%rdi)
movq 0x2e1d7(%rip), %rsi     # 0x51f50
xorl %eax, %eax
movl %eax, %edx
callq 0x67f0
jmp 0x24e78
jmp 0x24e64
leaq -0x588(%rbp), %rdi
callq 0x1b460
leaq -0x5a8(%rbp), %rdi
callq 0x1b460
jmp 0x23da6
movq -0x1048(%rbp), %rdi
movl -0xc(%rbp), %eax
testl %eax, %eax
sete -0x5a9(%rbp)
movslq -0xc(%rbp), %rax
movq %rax, -0x1138(%rbp)
addq $0x48, %rdi
callq 0x14440
movq -0x1048(%rbp), %rsi
movq %rax, %rcx
movq -0x1138(%rbp), %rax
subq %rcx, %rax
sete -0x5aa(%rbp)
addq $0x98, %rsi
leaq -0x5b8(%rbp), %rdi
callq 0x26660
jmp 0x23dfd
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x23e12
jmp 0x23f3a
leaq -0x740(%rbp), %rdi
callq 0x6280
jmp 0x23e20
leaq -0x730(%rbp), %rdi
leaq 0x22cc2(%rip), %rsi     # 0x46af0
callq 0x6410
movq %rax, -0x1140(%rbp)
jmp 0x23e3c
movq -0x1140(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x1148(%rbp)
jmp 0x23e56
movq -0x1148(%rbp), %rdi
movq 0x2e104(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x23e6b
leaq -0x760(%rbp), %rdi
leaq -0x740(%rbp), %rsi
callq 0x6400
jmp 0x23e80
movq -0x1048(%rbp), %rdi
leaq -0x760(%rbp), %rsi
callq 0x28930
jmp 0x23e95
leaq -0x760(%rbp), %rdi
callq 0x69a8
leaq -0x740(%rbp), %rdi
callq 0x62c0
jmp 0x23f3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24aab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x2400b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x23fff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x23f29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x760(%rbp), %rdi
callq 0x69a8
leaq -0x740(%rbp), %rdi
callq 0x62c0
jmp 0x23fff
leaq -0x5b8(%rbp), %rdi
callq 0x26690
testb $0x1, -0x5aa(%rbp)
jne 0x24084
movq -0x1048(%rbp), %rdi
addq $0x48, %rdi
movslq -0xc(%rbp), %rsi
callq 0x14410
movq %rax, %rcx
movq -0x1048(%rbp), %rax
movl (%rcx), %ecx
movl %ecx, -0x1ec(%rbp)
movl 0x74(%rax), %eax
movl %eax, %esi
leaq -0x5a8(%rbp), %rdi
callq 0x2a3c0
jmp 0x23f8c
leaq -0x5a8(%rbp), %rdi
callq 0x302f0
jmp 0x23f9a
movq -0x1048(%rbp), %rdi
movq -0x1e0(%rbp), %rax
movq %rax, -0x1158(%rbp)
movl -0x1ec(%rbp), %eax
movl %eax, -0x114c(%rbp)
callq 0x271e0
movq -0x1048(%rbp), %rdi
movb %al, -0x1159(%rbp)
callq 0x27200
movb -0x1159(%rbp), %cl
movq -0x1158(%rbp), %rdi
movl -0x114c(%rbp), %esi
movzbl %cl, %ecx
movzbl %al, %r8d
leaq -0x5a8(%rbp), %rdx
callq 0x30320
jmp 0x23ffa
jmp 0x24084
leaq -0x5b8(%rbp), %rdi
callq 0x26690
movl -0x1b4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x24a9f
movq -0x1b0(%rbp), %rdi
callq 0x61a0
movq %rax, %rcx
movq -0x1048(%rbp), %rax
movq %rcx, -0x768(%rbp)
testb $0x1, 0x15(%rax)
je 0x2415f
movl $0x8, %edi
callq 0x61f0
movq %rax, %rdi
movq %rdi, -0x1168(%rbp)
movq -0x768(%rbp), %rsi
callq 0x147a0
movq -0x1168(%rbp), %rdi
movq 0x2df3d(%rip), %rsi     # 0x51fb0
movq 0x2df0e(%rip), %rdx     # 0x51f88
callq 0x67f0
jmp 0x24e78
testb $0x1, -0x5a9(%rbp)
jne 0x2413e
movq -0x1048(%rbp), %rdi
addq $0x48, %rdi
movl -0xc(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x14410
movq %rax, %rcx
movq -0x1048(%rbp), %rax
movl (%rcx), %ecx
movl %ecx, -0x1e8(%rbp)
movl 0x74(%rax), %eax
movl %eax, %esi
leaq -0x588(%rbp), %rdi
callq 0x2a3c0
jmp 0x240ce
leaq -0x588(%rbp), %rdi
callq 0x302f0
jmp 0x240dc
movq -0x1048(%rbp), %rdi
movq -0x1e0(%rbp), %rax
movq %rax, -0x1178(%rbp)
movl -0x1e8(%rbp), %eax
movl %eax, -0x116c(%rbp)
callq 0x271e0
movq -0x1048(%rbp), %rdi
movb %al, -0x1179(%rbp)
callq 0x27200
movb -0x1179(%rbp), %cl
movq -0x1178(%rbp), %rdi
movl -0x116c(%rbp), %esi
movzbl %cl, %ecx
movzbl %al, %r8d
leaq -0x588(%rbp), %rdx
callq 0x30320
jmp 0x2413c
jmp 0x2413e
jmp 0x24264
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
callq 0x6770
jmp 0x2425f
movq 0x2de8a(%rip), %rdi     # 0x51ff0
leaq 0x229a6(%rip), %rsi     # 0x46b13
callq 0x6410
movq %rax, -0x1188(%rbp)
jmp 0x2417b
movq -0x1188(%rbp), %rdi
movq -0x1048(%rbp), %rax
movl 0x74(%rax), %esi
shll $0x2, %esi
callq 0x65f0
movq %rax, -0x1190(%rbp)
jmp 0x2419d
movq -0x1190(%rbp), %rdi
leaq 0x228a4(%rip), %rsi     # 0x46a4f
callq 0x6410
movq %rax, -0x1198(%rbp)
jmp 0x241b9
movq -0x1198(%rbp), %rdi
movq 0x2dda1(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x241ce
movq 0x2de1b(%rip), %rdi     # 0x51ff0
leaq 0x2287a(%rip), %rsi     # 0x46a56
callq 0x6410
movq %rax, -0x11a0(%rbp)
jmp 0x241ea
movq -0x11a0(%rbp), %rdi
movq 0x2dd70(%rip), %rsi     # 0x51f68
callq 0x6470
movq %rax, -0x11a8(%rbp)
jmp 0x24206
movq -0x11a8(%rbp), %rdi
leaq 0x22210(%rip), %rsi     # 0x46424
callq 0x6410
movq %rax, -0x11b0(%rbp)
jmp 0x24222
movq -0x11b0(%rbp), %rdi
movq 0x2dd38(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x24237
movl $0x4, %edi
callq 0x61f0
movq %rax, %rdi
movl $0x1, (%rdi)
movq 0x2dcff(%rip), %rsi     # 0x51f50
xorl %eax, %eax
movl %eax, %edx
callq 0x67f0
jmp 0x24e78
jmp 0x24a9f
movq -0x1048(%rbp), %rsi
movq $-0x1, -0x770(%rbp)
movq $-0x1, -0x778(%rbp)
movq $-0x1, -0x780(%rbp)
movq $-0x1, -0x788(%rbp)
movb $0x0, -0x789(%rbp)
movb $0x0, -0x78a(%rbp)
addq $0x98, %rsi
leaq -0x798(%rbp), %rdi
callq 0x26660
jmp 0x242ba
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x242cf
jmp 0x243f9
leaq -0x920(%rbp), %rdi
callq 0x6280
jmp 0x242dd
leaq -0x910(%rbp), %rdi
leaq 0x22849(%rip), %rsi     # 0x46b34
callq 0x6410
movq %rax, -0x11b8(%rbp)
jmp 0x242f9
movq -0x11b8(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x11c0(%rbp)
jmp 0x24313
movq -0x11c0(%rbp), %rdi
leaq 0x20b64(%rip), %rsi     # 0x44e85
callq 0x6410
movq %rax, -0x11c8(%rbp)
jmp 0x2432f
movq -0x11c8(%rbp), %rdi
movq 0x2dc2b(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x24344
leaq -0x940(%rbp), %rdi
leaq -0x920(%rbp), %rsi
callq 0x6400
jmp 0x24359
movq -0x1048(%rbp), %rdi
leaq -0x940(%rbp), %rsi
callq 0x28930
jmp 0x2436e
leaq -0x940(%rbp), %rdi
callq 0x69a8
leaq -0x920(%rbp), %rdi
callq 0x62c0
jmp 0x243f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24a9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x2458c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x243e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x940(%rbp), %rdi
callq 0x69a8
leaq -0x920(%rbp), %rdi
callq 0x62c0
jmp 0x2458c
leaq -0x798(%rbp), %rdi
callq 0x26690
movl -0x1e4(%rbp), %eax
addl $0x9, %eax
movl $0xa, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, -0x944(%rbp)
movl $0x0, -0x948(%rbp)
movl $0x0, -0x94c(%rbp)
movl -0x948(%rbp), %eax
cmpl -0x1e4(%rbp), %eax
jae 0x2492f
movq -0x1048(%rbp), %rsi
movl -0x948(%rbp), %eax
movl -0x944(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x950(%rbp)
addq $0x98, %rsi
leaq -0x958(%rbp), %rdi
callq 0x26660
jmp 0x24473
cmpl $0x0, -0x94c(%rbp)
jbe 0x245f6
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x24495
jmp 0x245f4
leaq -0xae0(%rbp), %rdi
callq 0x6280
jmp 0x244a3
leaq -0xad0(%rbp), %rdi
leaq 0x226b1(%rip), %rsi     # 0x46b62
callq 0x6410
movq %rax, -0x11d0(%rbp)
jmp 0x244bf
movq -0x11d0(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x11d8(%rbp)
jmp 0x244d9
movq -0x11d8(%rbp), %rdi
leaq 0x20214(%rip), %rsi     # 0x446fb
callq 0x6410
movq %rax, -0x11e0(%rbp)
jmp 0x244f5
movq -0x11e0(%rbp), %rdi
movl -0x94c(%rbp), %ecx
addl %ecx, %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %esi
callq 0x65f0
movq %rax, -0x11e8(%rbp)
jmp 0x24517
movq -0x11e8(%rbp), %rdi
leaq 0x22672(%rip), %rsi     # 0x46b97
callq 0x6410
movq %rax, -0x11f0(%rbp)
jmp 0x24533
movq -0x11f0(%rbp), %rdi
movq 0x2da27(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x24548
leaq -0xb00(%rbp), %rdi
leaq -0xae0(%rbp), %rsi
callq 0x6400
jmp 0x2455d
movq -0x1048(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0x28930
jmp 0x24572
leaq -0xb00(%rbp), %rdi
callq 0x69a8
leaq -0xae0(%rbp), %rdi
callq 0x62c0
jmp 0x245f4
leaq -0x798(%rbp), %rdi
callq 0x26690
jmp 0x24a9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24669
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x245e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0xb00(%rbp), %rdi
callq 0x69a8
leaq -0xae0(%rbp), %rdi
callq 0x62c0
jmp 0x24669
jmp 0x245f6
leaq -0x958(%rbp), %rdi
callq 0x26690
movl -0x948(%rbp), %eax
movl %eax, -0xb04(%rbp)
movl -0xb04(%rbp), %ecx
xorl %eax, %eax
cmpl -0x950(%rbp), %ecx
movb %al, -0x11f1(%rbp)
jae 0x24639
movl -0xb04(%rbp), %eax
cmpl -0x1e4(%rbp), %eax
setb %al
movb %al, -0x11f1(%rbp)
movb -0x11f1(%rbp), %al
testb $0x1, %al
jne 0x24648
jmp 0x24907
movl -0xb04(%rbp), %eax
cmpl -0x1ec(%rbp), %eax
je 0x24664
movl -0xb04(%rbp), %eax
cmpl -0x1e8(%rbp), %eax
jne 0x2467a
jmp 0x248f3
leaq -0x958(%rbp), %rdi
callq 0x26690
jmp 0x24a9f
cmpl $-0x1, -0x1ec(%rbp)
je 0x246d6
movq -0x1048(%rbp), %rdi
movl -0x1ec(%rbp), %esi
movl -0xb04(%rbp), %edx
movq %rsp, %rax
leaq -0x5a8(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x780(%rbp), %rcx
leaq -0x770(%rbp), %r8
leaq -0x789(%rbp), %r9
callq 0x30630
movb %al, -0x11f2(%rbp)
jmp 0x246c5
movb -0x11f2(%rbp), %al
testb $0x1, %al
jne 0x246d6
jmp 0x246d1
jmp 0x248f3
cmpl $-0x1, -0x1e8(%rbp)
je 0x24732
movq -0x1048(%rbp), %rdi
movl -0x1e8(%rbp), %esi
movl -0xb04(%rbp), %edx
movq %rsp, %rax
leaq -0x588(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x788(%rbp), %rcx
leaq -0x778(%rbp), %r8
leaq -0x78a(%rbp), %r9
callq 0x30630
movb %al, -0x11f3(%rbp)
jmp 0x24721
movb -0x11f3(%rbp), %al
testb $0x1, %al
jne 0x2472d
jmp 0x24732
jmp 0x248f3
movq -0x18(%rbp), %rdi
leaq -0xb04(%rbp), %rsi
callq 0x22210
jmp 0x24744
jmp 0x248f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
movl -0x1b4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x24a9f
movq -0x1b0(%rbp), %rdi
callq 0x61a0
movq %rax, -0xb10(%rbp)
movq 0x2d868(%rip), %rdi     # 0x51ff0
leaq 0x223dd(%rip), %rsi     # 0x46b6c
callq 0x6410
movq %rax, -0x1200(%rbp)
jmp 0x2479d
movq -0x18(%rbp), %rdi
callq 0x14440
movq -0x1200(%rbp), %rdi
movq %rax, %rsi
shlq $0x2, %rsi
callq 0x6100
movq %rax, -0x1208(%rbp)
jmp 0x247c2
movq -0x1208(%rbp), %rdi
leaq 0x2227f(%rip), %rsi     # 0x46a4f
callq 0x6410
movq %rax, -0x1210(%rbp)
jmp 0x247de
movq -0x1210(%rbp), %rdi
movq 0x2d77c(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x247f3
movq -0x1048(%rbp), %rax
testb $0x1, 0x15(%rax)
je 0x2485b
movl $0x8, %edi
callq 0x61f0
movq %rax, %rdi
movq %rdi, -0x1218(%rbp)
movq -0xb10(%rbp), %rsi
callq 0x147a0
movq -0x1218(%rbp), %rdi
movq 0x2d782(%rip), %rsi     # 0x51fb0
movq 0x2d753(%rip), %rdx     # 0x51f88
callq 0x67f0
jmp 0x24e78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
callq 0x6770
jmp 0x248ec
movq 0x2d78e(%rip), %rdi     # 0x51ff0
leaq 0x221ed(%rip), %rsi     # 0x46a56
callq 0x6410
movq %rax, -0x1220(%rbp)
jmp 0x24877
movq -0x1220(%rbp), %rdi
movq 0x2d6e3(%rip), %rsi     # 0x51f68
callq 0x6470
movq %rax, -0x1228(%rbp)
jmp 0x24893
movq -0x1228(%rbp), %rdi
leaq 0x21b83(%rip), %rsi     # 0x46424
callq 0x6410
movq %rax, -0x1230(%rbp)
jmp 0x248af
movq -0x1230(%rbp), %rdi
movq 0x2d6ab(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x248c4
movl $0x4, %edi
callq 0x61f0
movq %rax, %rdi
movl $0x1, (%rdi)
movq 0x2d672(%rip), %rsi     # 0x51f50
xorl %eax, %eax
movl %eax, %edx
callq 0x67f0
jmp 0x24e78
jmp 0x24a9f
jmp 0x248f3
movl -0xb04(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb04(%rbp)
jmp 0x2460e
jmp 0x24909
movl -0x944(%rbp), %eax
addl -0x948(%rbp), %eax
movl %eax, -0x948(%rbp)
movl -0x94c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94c(%rbp)
jmp 0x24431
movq -0x1048(%rbp), %rsi
addq $0x98, %rsi
leaq -0xb18(%rbp), %rdi
callq 0x26660
jmp 0x2494b
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x24960
jmp 0x24a6d
leaq -0xca0(%rbp), %rdi
callq 0x6280
jmp 0x2496e
leaq -0xc90(%rbp), %rdi
leaq 0x221e6(%rip), %rsi     # 0x46b62
callq 0x6410
movq %rax, -0x1238(%rbp)
jmp 0x2498a
movq -0x1238(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x1240(%rbp)
jmp 0x249a4
movq -0x1240(%rbp), %rdi
leaq 0x221e0(%rip), %rsi     # 0x46b92
callq 0x6410
movq %rax, -0x1248(%rbp)
jmp 0x249c0
movq -0x1248(%rbp), %rdi
movq 0x2d59a(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x249d5
leaq -0xcc0(%rbp), %rdi
leaq -0xca0(%rbp), %rsi
callq 0x6400
jmp 0x249ea
movq -0x1048(%rbp), %rdi
leaq -0xcc0(%rbp), %rsi
callq 0x28930
jmp 0x249ff
leaq -0xcc0(%rbp), %rdi
callq 0x69a8
leaq -0xca0(%rbp), %rdi
callq 0x62c0
jmp 0x24a6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24a93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24a5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0xcc0(%rbp), %rdi
callq 0x69a8
leaq -0xca0(%rbp), %rdi
callq 0x62c0
jmp 0x24a93
leaq -0xb18(%rbp), %rdi
callq 0x26690
leaq -0x5a8(%rbp), %rdi
callq 0x1d0c0
leaq -0x588(%rbp), %rdi
callq 0x1d0c0
jmp 0x24abc
leaq -0xb18(%rbp), %rdi
callq 0x26690
leaq -0x5a8(%rbp), %rdi
callq 0x1d0c0
leaq -0x588(%rbp), %rdi
callq 0x1d0c0
jmp 0x24e64
movq -0x18(%rbp), %rdi
callq 0x14440
cmpq $0x0, %rax
jbe 0x24cbb
movq -0x1048(%rbp), %rdi
callq 0x271e0
movzbl %al, %ecx
movq 0x2d4c3(%rip), %rsi     # 0x51fa8
leaq 0x220ad(%rip), %rdx     # 0x46b99
leaq -0xce0(%rbp), %rdi
callq 0x16ee0
movq -0x1048(%rbp), %rsi
addq $0x98, %rsi
leaq -0xce8(%rbp), %rdi
callq 0x26660
jmp 0x24b14
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x24b29
jmp 0x24c6e
leaq -0xe70(%rbp), %rdi
callq 0x6280
jmp 0x24b37
leaq -0xe60(%rbp), %rdi
leaq 0x2206b(%rip), %rsi     # 0x46bb0
callq 0x6410
movq %rax, -0x1250(%rbp)
jmp 0x24b53
movq -0x18(%rbp), %rdi
callq 0x14440
movq -0x1250(%rbp), %rdi
movq %rax, %rsi
callq 0x6100
movq %rax, -0x1258(%rbp)
jmp 0x24b74
movq -0x1258(%rbp), %rdi
leaq 0x21f35(%rip), %rsi     # 0x46ab7
callq 0x6410
movq %rax, -0x1260(%rbp)
jmp 0x24b90
movq -0x1260(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x1268(%rbp)
jmp 0x24baa
movq -0x1268(%rbp), %rdi
movq 0x2d3b0(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x24bbf
leaq -0xe90(%rbp), %rdi
leaq -0xe70(%rbp), %rsi
callq 0x6400
jmp 0x24bd4
movq -0x1048(%rbp), %rdi
leaq -0xe90(%rbp), %rsi
callq 0x28930
jmp 0x24be9
leaq -0xe90(%rbp), %rdi
callq 0x69a8
leaq -0xe70(%rbp), %rdi
callq 0x62c0
jmp 0x24c6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24caa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24c9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24c60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0xe90(%rbp), %rdi
callq 0x69a8
leaq -0xe70(%rbp), %rdi
callq 0x62c0
jmp 0x24c9e
leaq -0xce8(%rbp), %rdi
callq 0x26690
movq -0x1048(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
jmp 0x24c90
leaq -0xce0(%rbp), %rdi
callq 0x16f40
jmp 0x24cbb
leaq -0xce8(%rbp), %rdi
callq 0x26690
leaq -0xce0(%rbp), %rdi
callq 0x16f40
jmp 0x24e64
cmpl $-0x1, -0x1ec(%rbp)
je 0x24cd6
movq -0x18(%rbp), %rdi
leaq -0x1ec(%rbp), %rsi
callq 0x22210
jmp 0x24ce6
movq -0x18(%rbp), %rdi
leaq -0x1e4(%rbp), %rsi
callq 0x22210
movq -0x1048(%rbp), %rsi
addq $0x98, %rsi
leaq -0xe98(%rbp), %rdi
callq 0x26660
movq -0x1048(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x24d15
jmp 0x24e43
leaq -0x1020(%rbp), %rdi
callq 0x6280
jmp 0x24d23
leaq -0x1010(%rbp), %rdi
leaq 0x21e9a(%rip), %rsi     # 0x46bcb
callq 0x6410
movq %rax, -0x1270(%rbp)
jmp 0x24d3f
movq -0x18(%rbp), %rdi
callq 0x14440
movq -0x1270(%rbp), %rdi
movq %rax, %rsi
callq 0x6100
movq %rax, -0x1278(%rbp)
jmp 0x24d60
movq -0x1278(%rbp), %rdi
leaq 0x21d49(%rip), %rsi     # 0x46ab7
callq 0x6410
movq %rax, -0x1280(%rbp)
jmp 0x24d7c
movq -0x1280(%rbp), %rdi
movl -0xc(%rbp), %esi
incl %esi
callq 0x6830
movq %rax, -0x1288(%rbp)
jmp 0x24d96
movq -0x1288(%rbp), %rdi
movq 0x2d1c4(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x24dab
leaq -0x1040(%rbp), %rdi
leaq -0x1020(%rbp), %rsi
callq 0x6400
jmp 0x24dc0
movq -0x1048(%rbp), %rdi
leaq -0x1040(%rbp), %rsi
callq 0x28930
jmp 0x24dd5
leaq -0x1040(%rbp), %rdi
callq 0x69a8
leaq -0x1020(%rbp), %rdi
callq 0x62c0
jmp 0x24e43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24e58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x24e35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x69a8
leaq -0x1020(%rbp), %rdi
callq 0x62c0
jmp 0x24e58
leaq -0xe98(%rbp), %rdi
callq 0x26690
addq $0x1290, %rsp           # imm = 0x1290
popq %rbp
retq
leaq -0xe98(%rbp), %rdi
callq 0x26690
movq -0x1b0(%rbp), %rdi
callq 0x6850
movq %rax, %rdi
callq 0x147e0
nopl (%rax,%rax)