// File: BenLangmead[P]bowtie/./blockwise_sa.h
// Function: KarkkainenBlockwiseSA<SString<char>>::build()
void build() {
		// Calculate difference-cover sample
		assert(_dc == NULL);
		if(_dcV != 0) {
			_dc = new TDC(this->text(), _dcV, this->verbose(), this->sanityCheck());
			_dc->build(this->_nthreads);
		}
		// Calculate sample suffixes
		if(this->bucketSz() <= this->text().length()) {
			VMSG_NL("Building samples");
			buildSamples();
		} else {
			VMSG_NL("Skipping building samples since text length " <<
				this->text().length() << " is less than bucket size: " <<
				this->bucketSz());
		}
		_built = true;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3d0, %rsp            # imm = 0x3D0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x370(%rbp)
cmpl $0x0, 0x74(%rax)
je 0x26f29
movl $0xc8, %edi
callq 0x6430
movq -0x370(%rbp), %rdi
movq %rax, -0x380(%rbp)
callq 0x271c0
movq %rax, -0x378(%rbp)
jmp 0x26e7a
movq -0x370(%rbp), %rdi
movl 0x74(%rdi), %eax
movl %eax, -0x388(%rbp)
callq 0x271e0
movb %al, -0x381(%rbp)
jmp 0x26e97
movq -0x370(%rbp), %rdi
callq 0x27200
movb %al, -0x389(%rbp)
jmp 0x26eab
movl -0x388(%rbp), %edx
movq -0x378(%rbp), %rsi
movq -0x380(%rbp), %rdi
movb -0x389(%rbp), %al
movb -0x381(%rbp), %cl
movzbl %cl, %ecx
andl $0x1, %ecx
movzbl %al, %r8d
andl $0x1, %r8d
movq 0x2b0c8(%rip), %r9      # 0x51fa8
callq 0x27220
jmp 0x26ee7
movq -0x370(%rbp), %rax
movq -0x380(%rbp), %rcx
movq %rcx, 0x78(%rax)
movq 0x78(%rax), %rdi
movl 0x68(%rax), %esi
callq 0x27470
jmp 0x26f29
movq -0x380(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xc8, %esi
callq 0x6440
jmp 0x271aa
movq -0x370(%rbp), %rdi
callq 0x28910
movq -0x370(%rbp), %rdi
movl %eax, %eax
movq %rax, -0x398(%rbp)
callq 0x271c0
movq %rax, %rdi
callq 0x14c10
movq %rax, %rcx
movq -0x398(%rbp), %rax
cmpq %rcx, %rax
ja 0x27043
movq -0x370(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x26f7a
jmp 0x27032
leaq -0x1a0(%rbp), %rdi
callq 0x6280
leaq -0x190(%rbp), %rdi
leaq 0x1f60c(%rip), %rsi     # 0x465a0
callq 0x6410
movq %rax, -0x3a0(%rbp)
jmp 0x26fa2
movq -0x3a0(%rbp), %rdi
movq 0x2afb8(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x26fb7
leaq -0x1c0(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x6400
jmp 0x26fcc
movq -0x370(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x28930
jmp 0x26fe1
leaq -0x1c0(%rbp), %rdi
callq 0x69a8
leaq -0x1a0(%rbp), %rdi
callq 0x62c0
jmp 0x27032
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x27021
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x69a8
leaq -0x1a0(%rbp), %rdi
callq 0x62c0
jmp 0x271aa
movq -0x370(%rbp), %rdi
callq 0x28990
jmp 0x27193
movq -0x370(%rbp), %rdi
callq 0x271e0
testb $0x1, %al
jne 0x27058
jmp 0x27191
leaq -0x348(%rbp), %rdi
callq 0x6280
leaq -0x338(%rbp), %rdi
leaq 0x1f53f(%rip), %rsi     # 0x465b1
callq 0x6410
movq %rax, -0x3a8(%rbp)
jmp 0x27080
movq -0x370(%rbp), %rdi
callq 0x271c0
movq %rax, -0x3b0(%rbp)
jmp 0x27095
movq -0x3b0(%rbp), %rdi
callq 0x14c10
movq -0x3a8(%rbp), %rdi
movq %rax, %rsi
callq 0x6100
movq %rax, -0x3b8(%rbp)
jmp 0x270b9
movq -0x3b8(%rbp), %rdi
leaq 0x1f517(%rip), %rsi     # 0x465de
callq 0x6410
movq %rax, -0x3c0(%rbp)
jmp 0x270d5
movq -0x370(%rbp), %rdi
callq 0x28910
movl %eax, -0x3c4(%rbp)
jmp 0x270e9
movl -0x3c4(%rbp), %esi
movq -0x3c0(%rbp), %rdi
callq 0x65f0
movq %rax, -0x3d0(%rbp)
jmp 0x27104
movq -0x3d0(%rbp), %rdi
movq 0x2ae56(%rip), %rsi     # 0x51f68
callq 0x6470
jmp 0x27119
leaq -0x368(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x6400
jmp 0x2712e
movq -0x370(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x28930
jmp 0x27143
leaq -0x368(%rbp), %rdi
callq 0x69a8
leaq -0x348(%rbp), %rdi
callq 0x62c0
jmp 0x27191
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x27183
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x69a8
leaq -0x348(%rbp), %rdi
callq 0x62c0
jmp 0x271aa
jmp 0x27193
movq -0x370(%rbp), %rax
movb $0x1, 0x80(%rax)
addq $0x3d0, %rsp            # imm = 0x3D0
popq %rbp
retq
movq -0x10(%rbp), %rdi
callq 0x6850
nopw %cs:(%rax,%rax)
nopl (%rax)