// File: /workspace/github_cpp_makefile_star2_O3/tedsharpe[P]ORFCall/ORFCall.cc
// Function: (anonymous namespace)::ORFCaller::processReport((anonymous namespace)::ReadReport const&)
void processReport( ReadReport const& readReport )
    {
        for ( auto itr(mCCV.begin()+readReport.mBeginCoverage),
                end(mCCV.begin()+readReport.mEndCoverage);
                itr != end; ++itr )
            itr->mCoverage += 1;

        bool readHasFrameShiftIndel = false;
        bool readHasNonFrameShiftIndel = false;
        for ( Variation const& var : readReport.mVariations )
        {
            switch ( var.mType )
            {
            case VariationType::ALTERNATE_CODON:
                mCCV[var.mCodonIdx].mCounts[var.mValue] += 1;
                break;
            case VariationType::DELETION:
            case VariationType::INSERTION:
                {
                    bool isFrameShift = (var.mValue%3) != 0;
                    mCCV[var.mCodonIdx].mIndelCounts[isFrameShift] += 1;
                    if ( isFrameShift )
                        readHasFrameShiftIndel = true;
                    else
                        readHasNonFrameShiftIndel = true;
                }
                break;
            }
        }
        if ( readHasFrameShiftIndel )
            mNFSIndelReads += 1;
        if ( readHasNonFrameShiftIndel )
            mNFPIndelReads += 1;
    }

// Assembly:
pushq %rbx
movq 0x18(%rdi), %rax
movq (%rsi), %r8
movq 0x8(%rsi), %rcx
cmpq %rcx, %r8
je 0x91cf
imulq $-0x218, %r8, %rdx      # imm = 0xFDE8
imulq $0x218, %rcx, %rcx      # imm = 0x218
vpmovsxbq 0x2ef5(%rip), %zmm1 # 0xc028
vpmovsxwd 0x3324(%rip), %ymm2 # 0xc460
vpmovsxwd 0x332b(%rip), %ymm4 # 0xc470
vpternlogd $0xff, %zmm3, %zmm3, %zmm3
addq %rdx, %rcx
movq $-0x218, %rdx           # imm = 0xFDE8
addq %rcx, %rdx
movabsq $-0xb7672a07a44c6af, %rcx # imm = 0xF4898D5F85BB3951
mulxq %rcx, %rcx, %rcx
imulq $0x218, %r8, %rdx       # imm = 0x218
xorl %r8d, %r8d
vpbroadcastq %rcx, %zmm0
shrq $0x9, %rcx
addq %rax, %rdx
addq $0x8, %rcx
vpsrlq $0x9, %zmm0, %zmm0
andq $-0x8, %rcx
vpbroadcastq %r8, %zmm5
addq $0x8, %r8
vporq %zmm1, %zmm5, %zmm5
vpcmpleuq %zmm0, %zmm5, %k1
vpxor %xmm5, %xmm5, %xmm5
kmovq %k1, %k2
vpgatherdq 0x210(%rdx,%ymm2), %zmm5 {%k2}
vpsubq %zmm3, %zmm5, %zmm5
vpscatterdq %zmm5, (%rdx,%ymm4) {%k1}
addq $0x10c0, %rdx           # imm = 0x10C0
cmpq %r8, %rcx
jne 0x918e
movq 0x18(%rsi), %rcx
movq 0x20(%rsi), %rdx
cmpq %rdx, %rcx
je 0x926a
movl $0xaaaaaaab, %r9d       # imm = 0xAAAAAAAB
xorl %r8d, %r8d
xorl %esi, %esi
movl (%rcx), %r10d
leal -0x1(%r10), %r11d
cmpl $0x2, %r11d
jae 0x9235
movl 0x10(%rcx), %r10d
xorl %ebx, %ebx
movq %r10, %r11
imulq %r9, %r11
shrq $0x21, %r11
leal (%r11,%r11,2), %r11d
cmpl %r11d, %r10d
sete %r10b
setne %bl
imulq $0x218, 0x8(%rcx), %r11 # imm = 0x218
orb %r10b, %sil
addq %rax, %r11
incq 0x200(%r11,%rbx,8)
orb %r8b, %bl
movl %ebx, %r8d
jmp 0x924d
testl %r10d, %r10d
jne 0x924d
imulq $0x218, 0x8(%rcx), %r10 # imm = 0x218
movl 0x10(%rcx), %r11d
addq %rax, %r10
incq (%r10,%r11,8)
addq $0x18, %rcx
cmpq %rdx, %rcx
jne 0x91eb
testb $0x1, %r8b
je 0x9260
incq 0x48(%rdi)
testb $0x1, %sil
je 0x926a
incq 0x40(%rdi)
popq %rbx
vzeroupper
retq
nop