// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: determine_missing_features
static int determine_missing_features(GT_UNUSED void *key, void *value,
                                      void *data, GT_UNUSED GtError *err)
{
  GtStreamEvaluator *se = (GtStreamEvaluator*) data;
  Slot *slot = (Slot*) value;
  gt_error_check(err);
  gt_assert(key && value && data);
  if (slot->overlapped_genes_forward) {
    se->missing_genes +=
      gt_bittab_size(slot->overlapped_genes_forward) -
      gt_bittab_count_set_bits(slot->overlapped_genes_forward);
  }
  if (slot->overlapped_genes_reverse) {
    se->missing_genes +=
      gt_bittab_size(slot->overlapped_genes_reverse) -
      gt_bittab_count_set_bits(slot->overlapped_genes_reverse);
  }
  if (slot->overlapped_mRNAs_forward) {
    se->missing_mRNAs +=
      gt_bittab_size(slot->overlapped_mRNAs_forward) -
      gt_bittab_count_set_bits(slot->overlapped_mRNAs_forward);
  }
  if (slot->overlapped_mRNAs_reverse) {
    se->missing_mRNAs +=
      gt_bittab_size(slot->overlapped_mRNAs_reverse) -
      gt_bittab_count_set_bits(slot->overlapped_mRNAs_reverse);
  }
  if (slot->overlapped_LTRs) {
    se->missing_LTRs  += gt_bittab_size(slot->overlapped_LTRs) -
                         gt_bittab_count_set_bits(slot->overlapped_LTRs);
  }
  return 0;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0xef45c
movq 0x38(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xef424
jmp 0xef45c
movq 0xc4bad(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6ec31(%rip), %rsi     # 0x15e066
leaq 0x6f20c(%rip), %rdx     # 0x15e648
leaq 0x8b9c0(%rip), %rcx     # 0x17ae03
leaq 0x8b15e(%rip), %r8      # 0x17a5a8
movl $0x4e8, %r9d            # imm = 0x4E8
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xef45e
jmp 0xef460
cmpq $0x0, 0x50(%rsp)
je 0xef478
cmpq $0x0, 0x48(%rsp)
je 0xef478
cmpq $0x0, 0x40(%rsp)
jne 0xef4b0
movq 0xc4b59(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6ebdd(%rip), %rsi     # 0x15e066
leaq 0x6f292(%rip), %rdx     # 0x15e722
leaq 0x8b96c(%rip), %rcx     # 0x17ae03
leaq 0x8b10a(%rip), %r8      # 0x17a5a8
movl $0x4e9, %r9d            # imm = 0x4E9
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xef4b2
movq 0x28(%rsp), %rax
cmpq $0x0, 0x120(%rax)
je 0xef4fd
movq 0x28(%rsp), %rax
movq 0x120(%rax), %rdi
callq 0x79e90
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq 0x120(%rax), %rdi
callq 0x7a120
movq 0x20(%rsp), %rcx
subq %rax, %rcx
movq 0x30(%rsp), %rax
addq 0x70(%rax), %rcx
movq %rcx, 0x70(%rax)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x128(%rax)
je 0xef548
movq 0x28(%rsp), %rax
movq 0x128(%rax), %rdi
callq 0x79e90
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq 0x128(%rax), %rdi
callq 0x7a120
movq 0x18(%rsp), %rcx
subq %rax, %rcx
movq 0x30(%rsp), %rax
addq 0x70(%rax), %rcx
movq %rcx, 0x70(%rax)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x130(%rax)
je 0xef599
movq 0x28(%rsp), %rax
movq 0x130(%rax), %rdi
callq 0x79e90
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq 0x130(%rax), %rdi
callq 0x7a120
movq 0x10(%rsp), %rcx
subq %rax, %rcx
movq 0x30(%rsp), %rax
addq 0x80(%rax), %rcx
movq %rcx, 0x80(%rax)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x138(%rax)
je 0xef5ea
movq 0x28(%rsp), %rax
movq 0x138(%rax), %rdi
callq 0x79e90
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq 0x138(%rax), %rdi
callq 0x7a120
movq 0x8(%rsp), %rcx
subq %rax, %rcx
movq 0x30(%rsp), %rax
addq 0x80(%rax), %rcx
movq %rcx, 0x80(%rax)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x140(%rax)
je 0xef639
movq 0x28(%rsp), %rax
movq 0x140(%rax), %rdi
callq 0x79e90
movq %rax, (%rsp)
movq 0x28(%rsp), %rax
movq 0x140(%rax), %rdi
callq 0x7a120
movq (%rsp), %rcx
subq %rax, %rcx
movq 0x30(%rsp), %rax
addq 0x90(%rax), %rcx
movq %rcx, 0x90(%rax)
xorl %eax, %eax
addq $0x58, %rsp
retq