// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/alignment.cpp
// Function: Alignment_sp::AmrMutation::qc() const
void AmrMutation::qc () const
{
  if (! qc_on)
    return;
    
  if (empty ())
    return;
    
  QC_ASSERT (! geneMutation. empty ());
	QC_ASSERT (isUpper (reference));
	QC_ASSERT (isUpper (allele));
	QC_ASSERT (reference != allele);
	QC_ASSERT (! contains (reference, '-'));
	QC_ASSERT (! contains (allele,    '-'));
	QC_ASSERT (! gene. empty ());
	QC_ASSERT (! reference. empty ());  
	QC_IMPLY (frameshift != no_index, ! allele. empty ());
	QC_IMPLY (frameshift != no_index, pos_std >= 0);
	QC_ASSERT ((frameshift == no_index) == (frameshift_insertion == 0));
	QC_IMPLY (frameshift_insertion, frameshift_insertion % 3);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
leaq 0x4c5e9(%rip), %rax     # 0x89ac8
cmpb $0x1, (%rax)
jne 0x3d5f5
movq %rdi, %rbx
cmpq $0x0, 0x18(%rdi)
je 0x3d5f5
callq 0xc070
andl $0x0, (%rax)
cmpq $0x0, 0xb0(%rbx)
je 0x3d604
movq %rax, %r14
leaq 0x30(%rbx), %r15
movq %r15, %rdi
callq 0x11c45
testb %al, %al
je 0x3d6d8
andl $0x0, (%r14)
leaq 0x50(%rbx), %r12
movq %r12, %rdi
callq 0x11c45
testb %al, %al
je 0x3d7ac
andl $0x0, (%r14)
movq %r15, %rdi
movq %r12, %rsi
callq 0x2a3f3
testb %al, %al
je 0x3d880
andl $0x0, (%r14)
pushq $0x2d
popq %rsi
movq %r15, %rdi
callq 0x29e49
testb %al, %al
jne 0x3d954
andl $0x0, (%r14)
pushq $0x2d
popq %rsi
movq %r12, %rdi
callq 0x29e49
testb %al, %al
jne 0x3da28
andl $0x0, (%r14)
cmpq $0x0, 0x78(%rbx)
je 0x3dafc
cmpq $0x0, 0x38(%rbx)
je 0x3dbd0
movq 0x98(%rbx), %rax
cmpq $-0x1, %rax
je 0x3d5bf
cmpq $0x0, 0x58(%rbx)
je 0x3dd78
cmpl $0x0, 0x90(%rbx)
js 0x3de4c
cmpq $-0x1, %rax
sete %cl
andl $0x0, (%r14)
movl 0xa0(%rbx), %eax
testl %eax, %eax
setne %dl
xorb %cl, %dl
je 0x3dca4
testl %eax, %eax
je 0x3d5f5
movl 0xa0(%rbx), %eax
pushq $0x3
popq %rcx
cltd
idivl %ecx
testl %edx, %edx
je 0x3df20
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r14
popq %r15
retq
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x249d0(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xb3, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20b7d(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x24b6f(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x21246(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x24b5c(%rip), %rdx     # 0x62212
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x248fc(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xb4, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20aa9(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x24a9b(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x21172(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x24aa1(%rip), %rdx     # 0x6222b
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x24828(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xb5, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x209d5(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x249c7(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x2109e(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x249e1(%rip), %rdx     # 0x6223f
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x24754(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xb6, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20901(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x248f3(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x20fca(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x2491e(%rip), %rdx     # 0x62250
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x24680(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xb7, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x2082d(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x2481f(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x20ef6(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x2485e(%rip), %rdx     # 0x62264
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x245ac(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xb8, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20759(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x2474b(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x20e22(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x247a6(%rip), %rdx     # 0x62280
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x244d8(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xb9, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20685(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x24677(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x20d4e(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x246eb(%rip), %rdx     # 0x62299
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x24404(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xba, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x205b1(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x245a3(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x20c7a(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x24628(%rip), %rdx     # 0x622aa
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x24330(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xbd, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x204dd(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x244cf(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x20ba6(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x2458a(%rip), %rdx     # 0x622e0
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x2425c(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xbb, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20409(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x243fb(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x20ad2(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x24496(%rip), %rdx     # 0x622c0
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x24188(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xbc, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20335(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x24327(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x209fe(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x243d5(%rip), %rdx     # 0x622d3
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
callq 0xc6d0
testl %eax, %eax
jne 0x3dff4
leaq 0x240b4(%rip), %rsi     # 0x61fe8
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xdbbe
leaq 0x48(%rsp), %rdi
movl $0xbe, %esi
callq 0xe2d5
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xe26e
leaq 0x20261(%rip), %rdx     # 0x5e1d1
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xe24f
leaq 0x24253(%rip), %rsi     # 0x621df
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xdbbe
leaq 0x2092a(%rip), %rdx     # 0x5e8cc
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xe24f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0xe26e
leaq 0x241d4(%rip), %rdx     # 0x621a6
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xe24f
leaq 0xe8(%rsp), %rdi
callq 0x101d0
pushq $0x1
popq %rdi
callq 0xc6f0
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
jmp 0x3e028
jmp 0x3e03a
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0xcbe8
jmp 0x3e03d
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xcbe8
jmp 0x3e065
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
jmp 0x3e062
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xcbe8
jmp 0x3e08a
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
jmp 0x3e087
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xcbe8
jmp 0x3e0af
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
jmp 0x3e0ac
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xcbe8
jmp 0x3e0d7
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
jmp 0x3e0d4
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xcbe8
jmp 0x3e0ff
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
jmp 0x3e0fc
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xcbe8
jmp 0x3e124
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
jmp 0x3e121
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xcbe8
jmp 0x3e149
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
jmp 0x3e146
movq %rax, %rbx
movq %rbx, %rdi
callq 0xcaa0
nop