// File: /workspace/github_cpp_makefile_star2_O1/BenLangmead[P]bowtie/./diff_sample.h
// Function: DifferenceCoverSample<SString<char>>::doBuiltSanityCheck() const
void DifferenceCoverSample<TStr>::doBuiltSanityCheck() const {
	uint32_t v = this->v();
	assert(built());
	VMSG_NL("  Doing sanity check");
	TIndexOffU added = 0;
	EList<TIndexOffU> sorted;
	sorted.resizeExact(_isaPrime.size());
	sorted.fill(OFF_MASK);
	for(size_t di = 0; di < this->d(); di++) {
		uint32_t d = _ds[di];
		size_t i = 0;
		for(size_t doi = _doffs[di]; doi < _doffs[di+1]; doi++, i++) {
			assert_eq(OFF_MASK, sorted[_isaPrime[doi]]);
			// Maps the offset of the suffix to its rank
			sorted[_isaPrime[doi]] = (TIndexOffU)(v*i + d);
			added++;
		}
	}
	assert_eq(added, _isaPrime.size());
	for(size_t i = 0; i < sorted.size()-1; i++) {
		assert(suffixLt(this->text(), sorted[i], sorted[i+1]));
	}
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, %rbx
movl 0x8(%rdi), %ebp
cmpb $0x1, 0xc(%rdi)
jne 0x1d232
leaq 0x28(%rsp), %rdi
callq 0x5200
leaq 0x38(%rsp), %r14
leaq 0x13607(%rip), %rsi     # 0x307ae
movl $0x14, %edx
movq %r14, %rdi
callq 0x5400
movq 0x38(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5340
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
leaq 0x40(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x55a0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1cc4a
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d214
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1dd3d(%rip), %rsi     # 0x3af58
leaq 0x28(%rsp), %rdi
callq 0x5230
leaq 0xa8(%rsp), %rdi
callq 0x5130
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
leaq 0x30(%rsp), %r14
movq %rax, -0x8(%r14)
xorl %eax, %eax
movq %rax, (%r14)
movq $0x80, 0x8(%r14)
movq %rax, 0x10(%r14)
movq 0x90(%rbx), %rsi
leaq 0x28(%rsp), %rdi
callq 0x1cbe2
cmpq $0x0, 0x40(%rsp)
je 0x1d287
xorl %eax, %eax
movq 0x30(%rsp), %rcx
movl $0xffffffff, (%rcx,%rax,4) # imm = 0xFFFFFFFF
incq %rax
cmpq 0x40(%rsp), %rax
jb 0x1d271
cmpl $0x0, 0x50(%rbx)
je 0x1d2d4
xorl %eax, %eax
movq %rax, %rdx
movq 0x60(%rbx), %rsi
movl (%rsi,%rax,4), %ecx
incq %rax
cmpl 0x4(%rsi,%rdx,4), %ecx
jae 0x1d2cc
movq 0x18(%rbx), %rsi
movl (%rsi,%rdx,4), %edx
movq 0x80(%rbx), %rsi
movl (%rsi,%rcx,4), %esi
movq 0x30(%rsp), %rdi
movl %edx, (%rdi,%rsi,4)
incq %rcx
movq 0x60(%rbx), %rsi
movl (%rsi,%rax,4), %esi
addl %ebp, %edx
cmpq %rsi, %rcx
jb 0x1d2a9
movl 0x50(%rbx), %ecx
cmpq %rcx, %rax
jb 0x1d28f
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x1d2f2
callq 0x5450
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
movq $0x0, 0x10(%r14)
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d346
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x1d346
jmp 0x1d343
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x1d364
callq 0x5450
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
movq $0x0, 0x10(%r14)
jmp 0x1d364
movq %rax, %rbx
movq 0x1dc0b(%rip), %rsi     # 0x3af58
leaq 0x28(%rsp), %rdi
callq 0x5230
leaq 0xa8(%rsp), %rdi
callq 0x5130
movq %rbx, %rdi
callq 0x56a0