// File: /workspace/github_c_makefile_star2_O0/waynebhayes[P]SAHap/src/Haplotype.cpp
// Function: SAHap::Haplotype::Haplotype(unsigned long, unsigned int)
Haplotype::Haplotype(dnapos_t length, unsigned ploidyCount)
	: length(length), total_mec(0), window_mec(0), isitecost(0)
{
	this->ploidyCount = ploidyCount;
	this->solution = vector<int>(this->length, -1);
	this->weights = vector<vector<int>>(this->length);
	this->siteCoverages = vector<dnacnt_t>(this->length);
	this->window.start = 0;
	this->window.end = this->length;

	for (dnapos_t i = 0; i < this->length; ++i) {
		this->solution[i] = -1;
		this->weights[i] = vector<int>(this->ploidyCount, 0);
		this->siteCoverages[i] = 0;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
movq %rdi, %rax
movq %rax, -0xe0(%rbp)
callq 0x11bc0
movq -0xb8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq %rax, 0x18(%rdi)
addq $0x20, %rdi
movq %rdi, -0xd8(%rbp)
callq 0x64a0
movq -0xb8(%rbp), %rdi
addq $0x38, %rdi
movq %rdi, -0xd0(%rbp)
callq 0x6440
movq -0xb8(%rbp), %rdi
movq $0x0, 0x50(%rdi)
movq $0x0, 0x58(%rdi)
movq $0x0, 0x60(%rdi)
addq $0x70, %rdi
movq %rdi, -0xc8(%rbp)
callq 0x11be0
movq -0xb8(%rbp), %rdi
addq $0xa8, %rdi
movq %rdi, -0xc0(%rbp)
callq 0x11be0
movq -0xb8(%rbp), %rdi
addq $0xe0, %rdi
callq 0x5770
jmp 0x102a4
movq -0xe0(%rbp), %rax
movl -0x14(%rbp), %ecx
movl %ecx, 0x68(%rax)
movq 0x18(%rax), %rax
movq %rax, -0xf0(%rbp)
movl $0xffffffff, -0x44(%rbp) # imm = 0xFFFFFFFF
leaq -0x45(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x60b0
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rcx
leaq -0x40(%rbp), %rdi
leaq -0x44(%rbp), %rdx
callq 0x11c00
jmp 0x102f0
movq -0xe0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movq %rsi, -0x108(%rbp)
callq 0x11c80
movq -0x108(%rbp), %rdi
callq 0x6220
leaq -0x45(%rbp), %rdi
callq 0x6140
movq -0xe0(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x100(%rbp)
leaq -0x61(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x68c0
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdx
leaq -0x60(%rbp), %rdi
callq 0x11cb0
jmp 0x10357
movq -0xe0(%rbp), %rdi
addq $0x20, %rdi
leaq -0x60(%rbp), %rsi
movq %rsi, -0x120(%rbp)
callq 0x11d20
movq -0x120(%rbp), %rdi
callq 0xd440
leaq -0x61(%rbp), %rdi
callq 0xd650
movq -0xe0(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x118(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x66b0
movq -0x118(%rbp), %rsi
movq -0x110(%rbp), %rdx
leaq -0x80(%rbp), %rdi
callq 0x11d50
jmp 0x103c5
movq -0xe0(%rbp), %rdi
addq $0x38, %rdi
leaq -0x80(%rbp), %rsi
callq 0x11dc0
leaq -0x80(%rbp), %rdi
callq 0xd560
leaq -0x81(%rbp), %rdi
callq 0xd810
movq -0xe0(%rbp), %rax
movq $0x0, 0xe0(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0xe8(%rax)
movq $0x0, -0x90(%rbp)
movq -0xe0(%rbp), %rcx
movq -0x90(%rbp), %rax
cmpq 0x18(%rcx), %rax
jae 0x1057e
movq -0xe0(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x6160
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movl $0xffffffff, (%rcx)     # imm = 0xFFFFFFFF
movl 0x68(%rax), %eax
movq %rax, -0x130(%rbp)
movl $0x0, -0xac(%rbp)
leaq -0xad(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x60b0
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rcx
leaq -0xa8(%rbp), %rdi
leaq -0xac(%rbp), %rdx
callq 0x11c00
jmp 0x1049b
movq -0xe0(%rbp), %rdi
addq $0x20, %rdi
movq -0x90(%rbp), %rsi
callq 0x6090
movq %rax, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x11c80
leaq -0xa8(%rbp), %rdi
callq 0x6220
leaq -0xad(%rbp), %rdi
callq 0x6140
movq -0xe0(%rbp), %rdi
addq $0x38, %rdi
movq -0x90(%rbp), %rsi
callq 0x11df0
movq $0x0, (%rax)
movq -0x90(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x90(%rbp)
jmp 0x10416
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x10587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x45(%rbp), %rdi
callq 0x6140
jmp 0x10587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x61(%rbp), %rdi
callq 0xd650
jmp 0x10587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x81(%rbp), %rdi
callq 0xd810
jmp 0x10587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0xad(%rbp), %rdi
callq 0x6140
jmp 0x10587
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0xc0(%rbp), %rdi
callq 0x11e10
movq -0xc8(%rbp), %rdi
callq 0x11e10
movq -0xd0(%rbp), %rdi
callq 0xd560
movq -0xd8(%rbp), %rdi
callq 0xd440
movq -0xb8(%rbp), %rdi
callq 0x6220
movq -0x20(%rbp), %rdi
callq 0x2410
nopl (%rax)