// File: /workspace/github_c_makefile_star2_O3/waynebhayes[P]SAHap/src/Genome.cpp
// Function: SAHap::Genome::Report(int, bool)
void Genome::Report(int cpuSeconds, bool final) {
    assert(this->windowMEC() >= 0);
    printf("%2dk (%.1f%%,%ds)  T %.3f  fA %.3f  pBad %.4f  MEC %.2f", (int)this->curIteration/1000, (100*fracTime()),
	cpuSeconds, this->t, this->fAccept.getAverage(), this->pBad.getAverage(), this->windowMEC());
    if (this->file.hasGroundTruth && ((cpuSeconds-lastCpuTime>1 || lastErrorRate > .25) || final || this->curIteration>=this->maxIterations)) {
	    auto gt = this->compareGroundTruth();
	    int hapSize0=this->haplotypes[0].size(),hapSize1=this->haplotypes[1].size();
	    assert(hapSize0==hapSize1); // don't multiply by this->haplotypes.size()
	    double he = (double)gt / (this->haplotypes[0].size() * haplotypes.size());
		this->lastErrorRate = he;
		this->lastCpuTime = cpuSeconds;
	    printf("  ( Err_vs_truth %5d Err_Pct %.2f%% [%d %d])", (int)gt, 100*he,hapSize0,hapSize1);
	    if(final) {
		printf("\nEnding ground truth ");
		if(he > 1.3 * READ_ERROR_RATE) printf("Fail!");
		else printf("Good enough");
	    }
    }
	cout << " " << range.start << "->" << range.end;
    printf("\n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movl %edx, %ebp
movl %esi, %r14d
movq %rdi, %rbx
callq 0x2fc0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4674
movdqu 0x3bd8(%rbx), %xmm0
movslq 0x3be0(%rbx), %rax
imulq $0x10624dd3, %rax, %r15 # imm = 0x10624DD3
movq %r15, %rax
shrq $0x3f, %rax
movdqa 0x6cfc(%rip), %xmm1     # 0xb050
pand %xmm0, %xmm1
por 0x6d00(%rip), %xmm1     # 0xb060
sarq $0x26, %r15
psrlq $0x20, %xmm0
por 0x6cff(%rip), %xmm0     # 0xb070
subpd 0x6d07(%rip), %xmm0     # 0xb080
addpd %xmm1, %xmm0
movapd %xmm0, %xmm4
unpckhpd %xmm0, %xmm4            # xmm4 = xmm4[1],xmm0[1]
divsd %xmm0, %xmm4
movq 0x3e8(%rbx), %rcx
movq 0x6c88(%rip), %xmm3     # 0xb020
movapd 0x6c90(%rip), %xmm2     # 0xb030
movsd 0x6d58(%rip), %xmm5     # 0xb100
movapd %xmm5, %xmm6
testq %rcx, %rcx
je 0x43d9
xorps %xmm6, %xmm6
cvtsi2sdl 0x3f8(%rbx), %xmm6
movq %rcx, %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
divsd %xmm1, %xmm6
movsd %xmm6, 0x8(%rsp)
mulsd 0x6d69(%rip), %xmm4     # 0xb150
movapd %xmm4, 0x10(%rsp)
addl %eax, %r15d
movsd 0x3bc0(%rbx), %xmm0
movsd %xmm0, 0x30(%rsp)
movq 0x2348(%rbx), %rax
testq %rax, %rax
je 0x442f
movsd 0x2358(%rbx), %xmm5
movq %rax, %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
divsd %xmm1, %xmm5
movsd %xmm5, 0x28(%rsp)
movq %rbx, %rdi
callq 0x2fc0
movapd %xmm0, %xmm4
leaq 0x6fcb(%rip), %rdi      # 0xb413
movl %r15d, %esi
movapd 0x10(%rsp), %xmm0
movl %r14d, %edx
movsd 0x30(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
movsd 0x28(%rsp), %xmm3
movb $0x5, %al
callq 0x2040
cmpb $0x1, 0x2431(%rbx)
jne 0x4610
xorps %xmm3, %xmm3
cvtsi2sd %r14d, %xmm3
movapd %xmm3, %xmm0
subsd 0x3c10(%rbx), %xmm0
movsd 0x3c08(%rbx), %xmm1
movsd 0x6cc2(%rip), %xmm2     # 0xb160
cmpltpd %xmm1, %xmm2
movsd 0x6c35(%rip), %xmm1     # 0xb0e0
cmpltpd %xmm0, %xmm1
orpd %xmm2, %xmm1
movd %xmm1, %eax
orb %bpl, %al
testb $0x1, %al
jne 0x44d3
movq 0x3be0(%rbx), %rax
cmpq 0x3bd8(%rbx), %rax
jb 0x4610
movsd %xmm3, 0x8(%rsp)
movq %rbx, %rdi
callq 0x4846
movq %rax, %r14
movq 0x2368(%rbx), %rdi
callq 0x6eae
movq %rax, %r15
movl $0xf8, %edi
addq 0x2368(%rbx), %rdi
callq 0x6eae
cmpl %eax, %r15d
jne 0x4693
movq %r14, %xmm0
movq 0x6b06(%rip), %xmm1     # 0xb020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x6b0a(%rip), %xmm1     # 0xb030
subpd %xmm1, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
movq 0x2368(%rbx), %rdi
callq 0x6eae
movq 0x2370(%rbx), %rcx
subq 0x2368(%rbx), %rcx
sarq $0x3, %rcx
movabsq $-0x1084210842108421, %rdx # imm = 0xEF7BDEF7BDEF7BDF
imulq %rax, %rdx
imulq %rcx, %rdx
movq %rdx, %xmm0
punpckldq 0x6aa7(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x6aaf(%rip), %xmm0     # 0xb030
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd 0x10(%rsp), %xmm2
divsd %xmm1, %xmm2
movsd %xmm2, 0x3c08(%rbx)
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x3c10(%rbx)
movsd 0x6b9b(%rip), %xmm0     # 0xb150
movapd %xmm2, 0x10(%rsp)
mulsd %xmm2, %xmm0
leaq 0x6e98(%rip), %rdi      # 0xb45e
movl %r14d, %esi
movl %r15d, %edx
movl %r15d, %ecx
movb $0x1, %al
callq 0x2040
testb %bpl, %bpl
je 0x4610
leaq 0x6ea9(%rip), %rdi      # 0xb48b
xorl %eax, %eax
callq 0x2040
movapd 0x10(%rsp), %xmm0
ucomisd 0x6b71(%rip), %xmm0     # 0xb168
leaq 0x6ea3(%rip), %rax      # 0xb4a1
leaq 0x6ea2(%rip), %rdi      # 0xb4a7
cmovaq %rax, %rdi
xorl %eax, %eax
callq 0x2040
movq 0xb9b1(%rip), %r14      # 0xffc8
leaq 0x6fff(%rip), %rsi      # 0xb61d
movl $0x1, %edx
movq %r14, %rdi
callq 0x22b0
movq 0x3be8(%rbx), %rsi
movq %r14, %rdi
callq 0x2190
movq %rax, %r14
leaq 0x6e6f(%rip), %rsi      # 0xb4b3
movl $0x2, %edx
movq %rax, %rdi
callq 0x22b0
movq 0x3bf0(%rbx), %rsi
movq %r14, %rdi
callq 0x2190
movl $0xa, %edi
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x2310
leaq 0x6d5b(%rip), %rdi      # 0xb3d6
leaq 0x6b71(%rip), %rsi      # 0xb1f3
leaq 0x6d64(%rip), %rcx      # 0xb3ed
movl $0x1af, %edx            # imm = 0x1AF
callq 0x2180
leaq 0x6db1(%rip), %rdi      # 0xb44b
leaq 0x6b52(%rip), %rsi      # 0xb1f3
leaq 0x6d45(%rip), %rcx      # 0xb3ed
movl $0x1b5, %edx            # imm = 0x1B5
callq 0x2180