// File: afinit[P]afin/extension.cpp
// Function: Extension::missed_count()
void Extension::missed_count(){
  for( int i=0; i<len; i++ ){
    int next_char = 0;
    for( int j=0; j<matches.get_matchlist_size(); j++ ){
      next_char = matches.get_pos( j, start+(pos_mult*i) );
      switch( next_char ){
        case 'A':
          if( ATCG[i][0] < ATCG[i][4] ){
            missed_bp[j]++;
            missed_bp_tot++;
          }
          break;
        case 'T':
          if( ATCG[i][1] < ATCG[i][4] ){
            missed_bp[j]++;
            missed_bp_tot++;
          }
          break;
        case 'C':
          if( ATCG[i][2] < ATCG[i][4] ){
            missed_bp[j]++;
            missed_bp_tot++;
          }
          break;
        case 'G':
          if( ATCG[i][3] < ATCG[i][4] ){
            missed_bp[j]++;
            missed_bp_tot++;
          }
          break;
        default:
          break;
      }
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0xc(%rbp)
movq -0x20(%rbp), %rcx
movl -0xc(%rbp), %eax
cmpl 0xcc(%rcx), %eax
jge 0x252bf
movl $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x20(%rbp), %rdi
movslq -0x14(%rbp), %rax
movq %rax, -0x28(%rbp)
callq 0x17330
movq %rax, %rcx
movq -0x28(%rbp), %rax
cmpq %rcx, %rax
jae 0x252af
movq -0x20(%rbp), %rdi
movl -0x14(%rbp), %esi
movl 0x80(%rdi), %edx
movl 0xc8(%rdi), %eax
movl -0xc(%rbp), %ecx
imull %ecx, %eax
addl %eax, %edx
callq 0x17350
movsbl %al, %eax
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
addl $-0x41, %eax
movl %eax, %ecx
movq %rcx, -0x30(%rbp)
subl $0x13, %eax
ja 0x2529d
movq -0x30(%rbp), %rax
leaq 0x7831(%rip), %rcx      # 0x2c8d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rdi
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x153d0
movq -0x20(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x34(%rbp)
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
movl $0x4, %esi
callq 0x153d0
movq %rax, %rcx
movl -0x34(%rbp), %eax
cmpl (%rcx), %eax
jge 0x25124
movq -0x20(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0x153d0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movl (%rcx), %edx
addl $0x1, %edx
movl %edx, (%rcx)
movl 0xd0(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xd0(%rax)
jmp 0x2529f
movq -0x20(%rbp), %rdi
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
movl $0x1, %esi
callq 0x153d0
movq -0x20(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x38(%rbp)
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
movl $0x4, %esi
callq 0x153d0
movq %rax, %rcx
movl -0x38(%rbp), %eax
cmpl (%rcx), %eax
jge 0x251a2
movq -0x20(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0x153d0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movl (%rcx), %edx
addl $0x1, %edx
movl %edx, (%rcx)
movl 0xd0(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xd0(%rax)
jmp 0x2529f
movq -0x20(%rbp), %rdi
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
movl $0x2, %esi
callq 0x153d0
movq -0x20(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x3c(%rbp)
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
movl $0x4, %esi
callq 0x153d0
movq %rax, %rcx
movl -0x3c(%rbp), %eax
cmpl (%rcx), %eax
jge 0x25220
movq -0x20(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0x153d0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movl (%rcx), %edx
addl $0x1, %edx
movl %edx, (%rcx)
movl 0xd0(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xd0(%rax)
jmp 0x2529f
movq -0x20(%rbp), %rdi
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
movl $0x3, %esi
callq 0x153d0
movq -0x20(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x40(%rbp)
addq $0x50, %rdi
movslq -0xc(%rbp), %rsi
callq 0x25d10
movq %rax, %rdi
movl $0x4, %esi
callq 0x153d0
movq %rax, %rcx
movl -0x40(%rbp), %eax
cmpl (%rcx), %eax
jge 0x2529b
movq -0x20(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0x153d0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movl (%rcx), %edx
addl $0x1, %edx
movl %edx, (%rcx)
movl 0xd0(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xd0(%rax)
jmp 0x2529f
jmp 0x2529f
jmp 0x252a1
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x2503c
jmp 0x252b1
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x2501b
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)