// File: /workspace/github_c_makefile_star2_O0/waynebhayes[P]SAHap/src/Genome.cpp
// Function: SAHap::Genome::Genome(SAHap::InputFile)
Genome::Genome(InputFile file)
{
	long int seed = GetFancySeed(true);
	cout << "Genome seed " << seed << endl;
	this->randomEngine = mt19937(seed);
	this->file = file;
	this->haplotypes = vector<Haplotype>(this->file.ploidy, Haplotype(this->file.index.size(), file.ploidy));
	this->range.start = 0;
	this->range.end = this->file.index.size();
	this->numberOfSites = this->file.index.size();
	this->increments = file.averageReadLength;
	this->shuffle();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1530, %rsp           # imm = 0x1530
movq %rsi, -0x14e8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x14d0(%rbp)
callq 0x5640
movq -0x14d0(%rbp), %rdi
movl $0x0, 0x400(%rdi)
addq $0x408, %rdi            # imm = 0x408
callq 0x5670
movq -0x14d0(%rbp), %rdi
movl $0x0, 0x2360(%rdi)
movl $0x0, 0x2364(%rdi)
addq $0x2368, %rdi           # imm = 0x2368
movq %rdi, -0x14e0(%rbp)
callq 0x56a0
movq -0x14d0(%rbp), %rdi
addq $0x2380, %rdi           # imm = 0x2380
movq %rdi, -0x14d8(%rbp)
callq 0x56c0
movq -0x14d0(%rbp), %rdi
addq $0x2438, %rdi           # imm = 0x2438
callq 0x5750
jmp 0x2814
movq -0x14d0(%rbp), %rdi
movb $0x0, 0x37c0(%rdi)
movq $0x0, 0x3bb0(%rdi)
movq $0x0, 0x3bb8(%rdi)
movabsq $0x40f86a0000000000, %rax # imm = 0x40F86A0000000000
movq %rax, 0x3bc0(%rdi)
movq %rax, 0x3bc8(%rdi)
movabsq $0x3eb0c6f7a0b5ed8d, %rax # imm = 0x3EB0C6F7A0B5ED8D
movq %rax, 0x3bd0(%rdi)
movq $0x0, 0x3bd8(%rdi)
movq $0x0, 0x3be0(%rdi)
addq $0x3be8, %rdi           # imm = 0x3BE8
callq 0x5770
jmp 0x2885
movq -0x14d0(%rbp), %rdi
movq $0x0, 0x3bf8(%rdi)
movq $0x0, 0x3c00(%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x3c08(%rdi)
movq $0x0, 0x3c10(%rdi)
addq $0x3c30, %rdi           # imm = 0x3C30
movq %rdi, -0x14f8(%rbp)
callq 0x5790
movl $0x1, %edi
callq 0x1bac0
movq %rax, -0x14f0(%rbp)
jmp 0x28e4
movq -0x14f0(%rbp), %rax
movq %rax, -0x28(%rbp)
movq 0x286d2(%rip), %rdi     # 0x2afc8
leaq 0x19834(%rip), %rsi     # 0x1c131
callq 0x2230
movq %rax, -0x1500(%rbp)
jmp 0x290b
movq -0x1500(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x2430
movq %rax, -0x1508(%rbp)
jmp 0x2924
movq -0x1508(%rbp), %rdi
movq 0x2867e(%rip), %rsi     # 0x2afb0
callq 0x2270
jmp 0x2939
movq -0x28(%rbp), %rsi
leaq -0x13b0(%rbp), %rdi
callq 0x57b0
jmp 0x294b
movq -0x14d0(%rbp), %rdi
addq $0x2438, %rdi           # imm = 0x2438
leaq -0x13b0(%rbp), %rsi
movl $0x1388, %edx           # imm = 0x1388
callq 0x21f0
movq -0x14d0(%rbp), %rdi
movq -0x14e8(%rbp), %rsi
addq $0x2380, %rdi           # imm = 0x2380
callq 0x57e0
jmp 0x2986
movq -0x14d0(%rbp), %rdi
movq 0x2380(%rdi), %rax
movq %rax, -0x1510(%rbp)
addq $0x2388, %rdi           # imm = 0x2388
callq 0x58b0
movq %rax, %rsi
movq -0x14e8(%rbp), %rax
movl (%rax), %edx
leaq -0x14c0(%rbp), %rdi
callq 0x101e0
jmp 0x29c1
leaq -0x14c1(%rbp), %rdi
movq %rdi, -0x1518(%rbp)
callq 0x58d0
movq -0x1510(%rbp), %rsi
movq -0x1518(%rbp), %rcx
leaq -0x13c8(%rbp), %rdi
leaq -0x14c0(%rbp), %rdx
callq 0x58f0
jmp 0x29f7
movq -0x14d0(%rbp), %rdi
addq $0x2368, %rdi           # imm = 0x2368
leaq -0x13c8(%rbp), %rsi
movq %rsi, -0x1528(%rbp)
callq 0x5970
movq -0x1528(%rbp), %rdi
callq 0x59a0
leaq -0x14c1(%rbp), %rdi
callq 0x5a00
leaq -0x14c0(%rbp), %rdi
callq 0x10740
movq -0x14d0(%rbp), %rdi
movq $0x0, 0x3be8(%rdi)
addq $0x2388, %rdi           # imm = 0x2388
movq %rdi, -0x1520(%rbp)
callq 0x58b0
movq -0x1520(%rbp), %rdi
movq %rax, %rcx
movq -0x14d0(%rbp), %rax
movq %rcx, 0x3bf0(%rax)
callq 0x58b0
movq -0x14d0(%rbp), %rdi
movq %rax, %rcx
movq -0x14e8(%rbp), %rax
movq %rcx, 0x3bf8(%rdi)
movq 0xa8(%rax), %rax
movq %rax, 0x3c00(%rdi)
callq 0x2b30
jmp 0x2aab
addq $0x1530, %rsp           # imm = 0x1530
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2b00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2af4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x14c1(%rbp), %rdi
callq 0x5a00
leaq -0x14c0(%rbp), %rdi
callq 0x10740
movq -0x14f8(%rbp), %rdi
callq 0x5a20
movq -0x14d8(%rbp), %rdi
callq 0x5a80
movq -0x14e0(%rbp), %rdi
callq 0x59a0
movq -0x18(%rbp), %rdi
callq 0x2410
nopw %cs:(%rax,%rax)