// File: BenLangmead[P]bowtie/./ebwt.h
// Function: Ebwt::sanityCheckAll(int) const
void Ebwt::sanityCheckAll(int reverse) const {
	const EbwtParams& eh = this->_eh;
	assert(isInMemory());
	// Check ftab
	for(TIndexOffU i = 1; i < eh._ftabLen; i++) {
		assert_geq(this->ftabHi(i), this->ftabLo(i-1));
		assert_geq(this->ftabLo(i), this->ftabHi(i-1));
		assert_leq(this->ftabHi(i), eh._bwtLen+1);
	}
	assert_eq(this->ftabHi(eh._ftabLen-1), eh._bwtLen);

	// Check offs
	TIndexOff seenLen = (eh._bwtLen + 31) >> ((TIndexOffU)5);
	TIndexOff *seen;
	try {
		seen = new TIndexOff[seenLen]; // bitvector marking seen offsets
	} catch(bad_alloc& e) {
		cerr << "Out of memory allocating seen[] at " << __FILE__ << ":" << __LINE__ << endl;
		throw e;
	}
	memset(seen, 0, OFF_SIZE * seenLen);
	TIndexOffU offsLen = eh._offsLen;
	for(TIndexOffU i = 0; i < offsLen; i++) {
		assert_lt(this->_offs[i], eh._bwtLen);
		TIndexOff w = this->_offs[i] >> 5;
		TIndexOff r = this->_offs[i] & 31;
		assert_eq(0, (seen[w] >> r) & 1); // shouldn't have been seen before
		seen[w] |= (1 << r);
	}
	delete[] seen;

	// Check nPat
	assert_gt(this->_nPat, 0);

	// Check plen, flen
	for(TIndexOffU i = 0; i < this->_nPat; i++) {
		assert_geq(this->_plen[i], 0);
	}

	// Check rstarts
	for(TIndexOffU i = 0; i < this->_nFrag-1; i++) {
		assert_gt(this->_rstarts[(i+1)*3], this->_rstarts[i*3]);
		if(reverse == REF_READ_REVERSE) {
			assert(this->_rstarts[(i*3)+1] >= this->_rstarts[((i+1)*3)+1]);
		} else {
			assert(this->_rstarts[(i*3)+1] <= this->_rstarts[((i+1)*3)+1]);
		}
	}

	// Check ebwt
	sanityCheckUpToSide(eh._numSides);
	VMSG_NL("Ebwt::sanityCheck passed");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2b0, %rsp            # imm = 0x2B0
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x228(%rbp)
movq %rdi, %rax
addq $0x108, %rax            # imm = 0x108
movq %rax, -0x18(%rbp)
callq 0x18060
testb $0x1, %al
jne 0x7895
jmp 0x7897
jmp 0x78b6
leaq 0x37812(%rip), %rdi     # 0x3f0b0
leaq 0x37818(%rip), %rsi     # 0x3f0bd
movl $0x661, %edx            # imm = 0x661
leaq 0x3792f(%rip), %rcx     # 0x3f1e0
callq 0x51e0
movq $0x1, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x50(%rcx), %rax
jae 0x7c35
movq -0x228(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x18840
movq -0x228(%rbp), %rdi
movq %rax, -0x230(%rbp)
movq -0x20(%rbp), %rsi
subq $0x1, %rsi
callq 0x18890
movq %rax, %rcx
movq -0x230(%rbp), %rax
cmpq %rcx, %rax
jae 0x79fb
movq 0x426ab(%rip), %rdi     # 0x49fc0
leaq 0x378e9(%rip), %rsi     # 0x3f205
callq 0x5360
movq -0x228(%rbp), %rdi
movq %rax, -0x240(%rbp)
movq -0x20(%rbp), %rsi
callq 0x18840
movq -0x240(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x378cb(%rip), %rsi     # 0x3f21c
callq 0x5360
movq -0x228(%rbp), %rdi
movq %rax, -0x238(%rbp)
movq -0x20(%rbp), %rsi
subq $0x1, %rsi
callq 0x18890
movq -0x238(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x39c2e(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x425e7(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x4261b(%rip), %rdi     # 0x49fc0
leaq 0x37711(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x38dcf(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x664, %esi            # imm = 0x664
callq 0x5750
movq %rax, %rdi
movq 0x425a9(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x38c87(%rip), %rdi     # 0x4066a
leaq 0x376d3(%rip), %rsi     # 0x3f0bd
movl $0x664, %edx            # imm = 0x664
leaq 0x377ea(%rip), %rcx     # 0x3f1e0
callq 0x51e0
movq -0x228(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x18890
movq -0x228(%rbp), %rdi
movq %rax, -0x248(%rbp)
movq -0x20(%rbp), %rsi
subq $0x1, %rsi
callq 0x18840
movq %rax, %rcx
movq -0x248(%rbp), %rax
cmpq %rcx, %rax
jae 0x7b26
movq 0x42580(%rip), %rdi     # 0x49fc0
leaq 0x377be(%rip), %rsi     # 0x3f205
callq 0x5360
movq -0x228(%rbp), %rdi
movq %rax, -0x258(%rbp)
movq -0x20(%rbp), %rsi
callq 0x18890
movq -0x258(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x377a0(%rip), %rsi     # 0x3f21c
callq 0x5360
movq -0x228(%rbp), %rdi
movq %rax, -0x250(%rbp)
movq -0x20(%rbp), %rsi
subq $0x1, %rsi
callq 0x18840
movq -0x250(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x39b03(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x424bc(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x424f0(%rip), %rdi     # 0x49fc0
leaq 0x375e6(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x38ca4(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x665, %esi            # imm = 0x665
callq 0x5750
movq %rax, %rdi
movq 0x4247e(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x38b5c(%rip), %rdi     # 0x4066a
leaq 0x375a8(%rip), %rsi     # 0x3f0bd
movl $0x665, %edx            # imm = 0x665
leaq 0x376bf(%rip), %rcx     # 0x3f1e0
callq 0x51e0
movq -0x228(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x18840
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jbe 0x7c22
movq 0x4246e(%rip), %rdi     # 0x49fc0
leaq 0x3764a(%rip), %rsi     # 0x3f1a3
callq 0x5360
movq -0x228(%rbp), %rdi
movq %rax, -0x260(%rbp)
movq -0x20(%rbp), %rsi
callq 0x18840
movq -0x260(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x3762c(%rip), %rsi     # 0x3f1ba
callq 0x5360
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x1, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x39a07(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x423c0(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x423f4(%rip), %rdi     # 0x49fc0
leaq 0x374ea(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x38ba8(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x666, %esi            # imm = 0x666
callq 0x5750
movq %rax, %rdi
movq 0x42382(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x38a60(%rip), %rdi     # 0x4066a
leaq 0x374ac(%rip), %rsi     # 0x3f0bd
movl $0x666, %edx            # imm = 0x666
leaq 0x375c3(%rip), %rcx     # 0x3f1e0
callq 0x51e0
jmp 0x7c24
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x78be
movq -0x228(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rsi
subq $0x1, %rsi
callq 0x18840
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
je 0x7dce
movq 0x4235e(%rip), %rdi     # 0x49fc0
leaq 0x374b0(%rip), %rsi     # 0x3f119
callq 0x5360
movq -0x228(%rbp), %rdi
movq %rax, -0x270(%rbp)
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rsi
subq $0x1, %rsi
callq 0x18840
movq -0x270(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x37489(%rip), %rsi     # 0x3f12f
callq 0x5360
movq %rax, %rdi
leaq 0x10b2b(%rip), %rsi     # 0x187e0
callq 0x5120
movq -0x228(%rbp), %rdi
movq %rax, -0x268(%rbp)
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rsi
subq $0x1, %rsi
callq 0x18840
movq -0x268(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x10b1e(%rip), %rsi     # 0x18810
callq 0x5120
movq %rax, %rdi
leaq 0x37433(%rip), %rsi     # 0x3f134
callq 0x5360
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x3740f(%rip), %rsi     # 0x3f12f
callq 0x5360
movq %rax, %rdi
leaq 0x10ab1(%rip), %rsi     # 0x187e0
callq 0x5120
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x10ac2(%rip), %rsi     # 0x18810
callq 0x5120
movq %rax, %rdi
leaq 0x3985b(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x42214(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x42248(%rip), %rdi     # 0x49fc0
leaq 0x3733e(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x389fc(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x668, %esi            # imm = 0x668
callq 0x5750
movq %rax, %rdi
movq 0x421d6(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x388b4(%rip), %rdi     # 0x4066a
leaq 0x37300(%rip), %rsi     # 0x3f0bd
movl $0x668, %edx            # imm = 0x668
leaq 0x37417(%rip), %rcx     # 0x3f1e0
callq 0x51e0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
addq $0x1f, %rax
shrq $0x5, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
callq 0x5030
movq %rax, -0x278(%rbp)
jmp 0x7e0a
movq -0x278(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x7f1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x8700
movq -0x38(%rbp), %rdi
callq 0x5140
movq %rax, -0x48(%rbp)
movq 0x421a6(%rip), %rdi     # 0x49ff0
leaq 0x373d2(%rip), %rsi     # 0x3f223
callq 0x5360
movq %rax, -0x280(%rbp)
jmp 0x7e5f
movq -0x280(%rbp), %rdi
leaq 0x37250(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, -0x288(%rbp)
jmp 0x7e7b
movq -0x288(%rbp), %rdi
leaq 0x38901(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, -0x290(%rbp)
jmp 0x7e97
movq -0x290(%rbp), %rdi
movl $0x670, %esi            # imm = 0x670
callq 0x5750
movq %rax, -0x298(%rbp)
jmp 0x7eb1
movq -0x298(%rbp), %rdi
movq 0x420c1(%rip), %rsi     # 0x49f80
callq 0x53c0
jmp 0x7ec6
movl $0x8, %edi
callq 0x5180
movq %rax, %rdi
movq %rdi, -0x2a0(%rbp)
movq -0x48(%rbp), %rsi
callq 0x188e0
movq -0x2a0(%rbp), %rdi
movq 0x420d7(%rip), %rsi     # 0x49fc8
movq 0x420a0(%rip), %rdx     # 0x49f98
callq 0x5720
jmp 0x8711
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
callq 0x56a0
jmp 0x7f15
jmp 0x8700
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rdx
shlq $0x3, %rdx
xorl %esi, %esi
callq 0x5190
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rax
movq %rax, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpq -0x50(%rbp), %rax
jae 0x8212
movq -0x228(%rbp), %rax
movq 0xb8(%rax), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jb 0x803e
movq 0x42046(%rip), %rdi     # 0x49fc0
leaq 0x372c6(%rip), %rsi     # 0x3f247
callq 0x5360
movq %rax, %rdi
movq -0x228(%rbp), %rax
movq 0xb8(%rax), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x372af(%rip), %rsi     # 0x3f25d
callq 0x5360
movq %rax, %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x395eb(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x41fa4(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x41fd8(%rip), %rdi     # 0x49fc0
leaq 0x370ce(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x3878c(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x676, %esi            # imm = 0x676
callq 0x5750
movq %rax, %rdi
movq 0x41f66(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x38644(%rip), %rdi     # 0x4066a
leaq 0x37090(%rip), %rsi     # 0x3f0bd
movl $0x676, %edx            # imm = 0x676
leaq 0x371a7(%rip), %rcx     # 0x3f1e0
callq 0x51e0
movq -0x228(%rbp), %rax
movq 0xb8(%rax), %rcx
movq -0x58(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x5, %rcx
movq %rcx, -0x60(%rbp)
movq 0xb8(%rax), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rax
andq $0x1f, %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x68(%rbp), %rcx
sarq %cl, %rax
movq %rax, %rcx
andq $0x1, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
je 0x81e1
movq 0x41f21(%rip), %rdi     # 0x49fc0
leaq 0x37073(%rip), %rsi     # 0x3f119
callq 0x5360
movq %rax, %rdi
xorl %esi, %esi
callq 0x5750
movq %rax, %rdi
leaq 0x37070(%rip), %rsi     # 0x3f12f
callq 0x5360
movq %rax, %rdi
leaq 0x10712(%rip), %rsi     # 0x187e0
callq 0x5120
movq %rax, %rdi
xorl %esi, %esi
callq 0x5750
movq %rax, %rdi
leaq 0x10729(%rip), %rsi     # 0x18810
callq 0x5120
movq %rax, %rdi
leaq 0x3703e(%rip), %rsi     # 0x3f134
callq 0x5360
movq %rax, %rdi
movq -0x30(%rbp), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x68(%rbp), %rcx
sarq %cl, %rsi
andq $0x1, %rsi
callq 0x57b0
movq %rax, %rdi
leaq 0x3700b(%rip), %rsi     # 0x3f12f
callq 0x5360
movq %rax, %rdi
leaq 0x106ad(%rip), %rsi     # 0x187e0
callq 0x5120
movq %rax, %rdi
movq -0x30(%rbp), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x68(%rbp), %rcx
sarq %cl, %rsi
andq $0x1, %rsi
callq 0x57b0
movq %rax, %rdi
leaq 0x106af(%rip), %rsi     # 0x18810
callq 0x5120
movq %rax, %rdi
leaq 0x39448(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x41e01(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x41e35(%rip), %rdi     # 0x49fc0
leaq 0x36f2b(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x385e9(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x679, %esi            # imm = 0x679
callq 0x5750
movq %rax, %rdi
movq 0x41dc3(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x384a1(%rip), %rdi     # 0x4066a
leaq 0x36eed(%rip), %rsi     # 0x3f0bd
movl $0x679, %edx            # imm = 0x679
leaq 0x37004(%rip), %rcx     # 0x3f1e0
callq 0x51e0
movq -0x68(%rbp), %rax
movl %eax, %ecx
movl $0x1, %eax
shll %cl, %eax
movslq %eax, %rdx
movq -0x30(%rbp), %rax
movq -0x60(%rbp), %rcx
orq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x7f41
movq -0x30(%rbp), %rax
movq %rax, -0x2a8(%rbp)
cmpq $0x0, %rax
je 0x822f
movq -0x2a8(%rbp), %rdi
callq 0x5510
movq -0x228(%rbp), %rax
cmpq $0x0, 0x80(%rax)
ja 0x8301
movq 0x41d75(%rip), %rdi     # 0x49fc0
leaq 0x36ea6(%rip), %rsi     # 0x3f0f8
callq 0x5360
movq %rax, %rdi
movq -0x228(%rbp), %rax
movq 0x80(%rax), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x36e97(%rip), %rsi     # 0x3f10e
callq 0x5360
movq %rax, %rdi
xorl %esi, %esi
callq 0x5750
movq %rax, %rdi
leaq 0x39328(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x41ce1(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x41d15(%rip), %rdi     # 0x49fc0
leaq 0x36e0b(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x384c9(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x67f, %esi            # imm = 0x67F
callq 0x5750
movq %rax, %rdi
movq 0x41ca3(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x38381(%rip), %rdi     # 0x4066a
leaq 0x36dcd(%rip), %rsi     # 0x3f0bd
movl $0x67f, %edx            # imm = 0x67F
leaq 0x36ee4(%rip), %rcx     # 0x3f1e0
callq 0x51e0
movq $0x0, -0x70(%rbp)
movq -0x228(%rbp), %rcx
movq -0x70(%rbp), %rax
cmpq 0x80(%rcx), %rax
jae 0x8416
movq -0x228(%rbp), %rax
movq 0x90(%rax), %rax
movq -0x70(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jae 0x8403
movq 0x41c7b(%rip), %rdi     # 0x49fc0
leaq 0x36eb9(%rip), %rsi     # 0x3f205
callq 0x5360
movq %rax, %rdi
movq -0x228(%rbp), %rax
movq 0x90(%rax), %rax
movq -0x70(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x36ea3(%rip), %rsi     # 0x3f21c
callq 0x5360
movq %rax, %rdi
xorl %esi, %esi
callq 0x5750
movq %rax, %rdi
leaq 0x39226(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x41bdf(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x41c13(%rip), %rdi     # 0x49fc0
leaq 0x36d09(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x383c7(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x683, %esi            # imm = 0x683
callq 0x5750
movq %rax, %rdi
movq 0x41ba1(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x3827f(%rip), %rdi     # 0x4066a
leaq 0x36ccb(%rip), %rsi     # 0x3f0bd
movl $0x683, %edx            # imm = 0x683
leaq 0x36de2(%rip), %rcx     # 0x3f1e0
callq 0x51e0
jmp 0x8405
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x8309
movq $0x0, -0x78(%rbp)
movq -0x228(%rbp), %rcx
movq -0x78(%rbp), %rax
movq 0x88(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x8616
movq -0x228(%rbp), %rcx
movq 0x98(%rcx), %rax
movq -0x78(%rbp), %rdx
addq $0x1, %rdx
imulq $0x3, %rdx, %rdx
movq (%rax,%rdx,8), %rax
movq 0x98(%rcx), %rcx
imulq $0x3, -0x78(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
ja 0x8553
movq 0x41b48(%rip), %rdi     # 0x49fc0
leaq 0x36c79(%rip), %rsi     # 0x3f0f8
callq 0x5360
movq %rax, %rdi
movq -0x228(%rbp), %rax
movq 0x98(%rax), %rax
movq -0x78(%rbp), %rcx
addq $0x1, %rcx
imulq $0x3, %rcx, %rcx
movq (%rax,%rcx,8), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x36c5a(%rip), %rsi     # 0x3f10e
callq 0x5360
movq %rax, %rdi
movq -0x228(%rbp), %rax
movq 0x98(%rax), %rax
imulq $0x3, -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0x390d6(%rip), %rsi     # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x41a8f(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x41ac3(%rip), %rdi     # 0x49fc0
leaq 0x36bb9(%rip), %rsi     # 0x3f0bd
callq 0x5360
movq %rax, %rdi
leaq 0x38277(%rip), %rsi     # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x688, %esi            # imm = 0x688
callq 0x5750
movq %rax, %rdi
movq 0x41a51(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0x3812f(%rip), %rdi     # 0x4066a
leaq 0x36b7b(%rip), %rsi     # 0x3f0bd
movl $0x688, %edx            # imm = 0x688
leaq 0x36c92(%rip), %rcx     # 0x3f1e0
callq 0x51e0
cmpl $0x1, -0xc(%rbp)
jne 0x85ae
movq -0x228(%rbp), %rcx
movq 0x98(%rcx), %rax
imulq $0x3, -0x78(%rbp), %rdx
movq 0x8(%rax,%rdx,8), %rax
movq 0x98(%rcx), %rcx
movq -0x78(%rbp), %rdx
addq $0x1, %rdx
imulq $0x3, %rdx, %rdx
cmpq 0x8(%rcx,%rdx,8), %rax
jb 0x858d
jmp 0x85ac
leaq 0x36ccf(%rip), %rdi     # 0x3f263
leaq 0x36b22(%rip), %rsi     # 0x3f0bd
movl $0x68a, %edx            # imm = 0x68A
leaq 0x36c39(%rip), %rcx     # 0x3f1e0
callq 0x51e0
jmp 0x8603
movq -0x228(%rbp), %rcx
movq 0x98(%rcx), %rax
imulq $0x3, -0x78(%rbp), %rdx
movq 0x8(%rax,%rdx,8), %rax
movq 0x98(%rcx), %rcx
movq -0x78(%rbp), %rdx
addq $0x1, %rdx
imulq $0x3, %rdx, %rdx
cmpq 0x8(%rcx,%rdx,8), %rax
ja 0x85e2
jmp 0x8601
leaq 0x36cb1(%rip), %rdi     # 0x3f29a
leaq 0x36acd(%rip), %rsi     # 0x3f0bd
movl $0x68c, %edx            # imm = 0x68C
leaq 0x36be4(%rip), %rcx     # 0x3f1e0
callq 0x51e0
jmp 0x8603
jmp 0x8605
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x841e
movq -0x228(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x98(%rax), %rsi
callq 0x6e10
movq -0x228(%rbp), %rdi
callq 0x18930
testb $0x1, %al
jne 0x8642
jmp 0x86f7
leaq -0x200(%rbp), %rdi
callq 0x5220
leaq -0x1f0(%rbp), %rdi
leaq 0x36c75(%rip), %rsi     # 0x3f2d1
callq 0x5360
movq %rax, -0x2b0(%rbp)
jmp 0x866a
movq -0x2b0(%rbp), %rdi
movq 0x41908(%rip), %rsi     # 0x49f80
callq 0x53c0
jmp 0x867f
leaq -0x220(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x5350
jmp 0x8694
movq -0x228(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x18950
jmp 0x86a9
leaq -0x220(%rbp), %rdi
callq 0x5888
leaq -0x200(%rbp), %rdi
callq 0x5260
jmp 0x86f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x86e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x5888
leaq -0x200(%rbp), %rdi
callq 0x5260
jmp 0x8700
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x5760
movq %rax, %rdi
callq 0x18920
nopw %cs:(%rax,%rax)