// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: store_true_exon
static void store_true_exon(GtFeatureNode *fn, GtStrand predicted_strand,
                            GtRange *predicted_range, bool exondiff,
                            bool exondiffcollapsed,
                            GtTranscriptExons *exons_forward,
                            GtTranscriptExons *exons_reverse,
                            GtTranscriptCounts *counts_forward,
                            GtTranscriptCounts *counts_reverse,
                            GtTranscriptBittabs *exon_bittabs_forward,
                            GtTranscriptBittabs *exon_bittabs_reverse,
                            GtTranscriptEvaluators *exon_evaluators,
                            GtTranscriptEvaluators *exon_evaluators_collapsed)
{
  gt_assert(fn && predicted_range && exons_forward && exons_reverse);
  determine_true_exon(fn, predicted_strand, exondiff, exondiffcollapsed,
                      predicted_range,
                      gt_transcript_exons_get_all(exons_forward),
                      gt_transcript_exons_get_all(exons_reverse),
                      gt_transcript_counts_get_all(counts_forward),
                      gt_transcript_counts_get_all(counts_reverse),
                      gt_transcript_bittabs_get_all(exon_bittabs_forward),
                      gt_transcript_bittabs_get_all(exon_bittabs_reverse),
                      gt_transcript_evaluators_get_all(exon_evaluators),
                      gt_transcript_evaluators_get_all(
                                                    exon_evaluators_collapsed));
  switch (gt_feature_node_get_transcriptfeaturetype(fn)) {
    case TRANSCRIPT_FEATURE_TYPE_UNDETERMINED:
    case TRANSCRIPT_FEATURE_TYPE_SINGLE:
      determine_true_exon(fn, predicted_strand, exondiff, exondiffcollapsed,
                          predicted_range,
                          gt_transcript_exons_get_single(exons_forward),
                          gt_transcript_exons_get_single(exons_reverse),
                          gt_transcript_counts_get_single(counts_forward),
                          gt_transcript_counts_get_single(counts_reverse),
                          gt_transcript_bittabs_get_single(
                                                      exon_bittabs_forward),
                          gt_transcript_bittabs_get_single(
                                                      exon_bittabs_reverse),
                          gt_transcript_evaluators_get_single(exon_evaluators),
                          gt_transcript_evaluators_get_single(
                            exon_evaluators_collapsed));
      break;
    case TRANSCRIPT_FEATURE_TYPE_INITIAL:
      determine_true_exon(fn, predicted_strand, exondiff, exondiffcollapsed,
                          predicted_range,
                          gt_transcript_exons_get_initial(exons_forward),
                          gt_transcript_exons_get_initial(exons_reverse),
                          gt_transcript_counts_get_initial(counts_forward),
                          gt_transcript_counts_get_initial(counts_reverse),
                          gt_transcript_bittabs_get_initial(
                                                      exon_bittabs_forward),
                          gt_transcript_bittabs_get_initial(
                                                      exon_bittabs_reverse),
                          gt_transcript_evaluators_get_initial(exon_evaluators),
                          gt_transcript_evaluators_get_initial(
                            exon_evaluators_collapsed));
      break;
    case TRANSCRIPT_FEATURE_TYPE_INTERNAL:
      determine_true_exon(fn, predicted_strand, exondiff, exondiffcollapsed,
                          predicted_range,
                          gt_transcript_exons_get_internal(exons_forward),
                          gt_transcript_exons_get_internal(exons_reverse),
                          gt_transcript_counts_get_internal(counts_forward),
                          gt_transcript_counts_get_internal(counts_reverse),
                          gt_transcript_bittabs_get_internal(
                                                      exon_bittabs_forward),
                          gt_transcript_bittabs_get_internal(
                                                      exon_bittabs_reverse),
                          gt_transcript_evaluators_get_internal(
                                                      exon_evaluators),
                          gt_transcript_evaluators_get_internal(
                            exon_evaluators_collapsed));
      break;
    case TRANSCRIPT_FEATURE_TYPE_TERMINAL:
      determine_true_exon(fn, predicted_strand, exondiff, exondiffcollapsed,
                          predicted_range,
                          gt_transcript_exons_get_terminal(exons_forward),
                          gt_transcript_exons_get_terminal(exons_reverse),
                          gt_transcript_counts_get_terminal(counts_forward),
                          gt_transcript_counts_get_terminal(counts_reverse),
                          gt_transcript_bittabs_get_terminal(
                                                        exon_bittabs_forward),
                          gt_transcript_bittabs_get_terminal(
                                                        exon_bittabs_reverse),
                          gt_transcript_evaluators_get_terminal(
                                                        exon_evaluators),
                          gt_transcript_evaluators_get_terminal(
                            exon_evaluators_collapsed));
      break;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x180, %rsp            # imm = 0x180
movb %r8b, %al
movq 0x1e0(%rsp), %r8
movq 0x1d8(%rsp), %r8
movq 0x1d0(%rsp), %r8
movq 0x1c8(%rsp), %r8
movq 0x1c0(%rsp), %r8
movq 0x1b8(%rsp), %r8
movq 0x1b0(%rsp), %r8
movq %rdi, 0x178(%rsp)
movl %esi, 0x174(%rsp)
movq %rdx, 0x168(%rsp)
andb $0x1, %cl
movb %cl, 0x167(%rsp)
andb $0x1, %al
movb %al, 0x166(%rsp)
movq %r9, 0x158(%rsp)
cmpq $0x0, 0x178(%rsp)
je 0xf0f29
cmpq $0x0, 0x168(%rsp)
je 0xf0f29
cmpq $0x0, 0x158(%rsp)
je 0xf0f29
cmpq $0x0, 0x1b0(%rsp)
jne 0xf0f61
movq 0xc30a8(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6d12c(%rip), %rsi     # 0x15e066
leaq 0x89e7a(%rip), %rdx     # 0x17adbb
leaq 0x89eab(%rip), %rcx     # 0x17adf3
leaq 0x89659(%rip), %r8      # 0x17a5a8
movl $0x367, %r9d            # imm = 0x367
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf0f63
movq 0x178(%rsp), %rax
movq %rax, 0x130(%rsp)
movl 0x174(%rsp), %eax
movl %eax, 0x13c(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0x140(%rsp)
movq 0x158(%rsp), %rdi
movzbl 0x166(%rsp), %eax
movl %eax, 0x12c(%rsp)
movzbl 0x167(%rsp), %eax
movl %eax, 0x128(%rsp)
callq 0xf28f0
movq %rax, 0x148(%rsp)
movq 0x1b0(%rsp), %rdi
callq 0xf28f0
movq %rax, 0x120(%rsp)
movq 0x1b8(%rsp), %rdi
callq 0xf2080
movq %rax, 0x118(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0xf2080
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
callq 0xf1e50
movq %rax, %r14
movq 0x1d0(%rsp), %rdi
callq 0xf1e50
movq %rax, %r15
movq 0x1d8(%rsp), %rdi
callq 0xf2520
movq %rax, %r12
movq 0x1e0(%rsp), %rdi
callq 0xf2520
movq 0x118(%rsp), %r11
movq 0x120(%rsp), %r10
movl 0x128(%rsp), %edx
movl 0x12c(%rsp), %ecx
movq 0x130(%rsp), %rdi
movl 0x13c(%rsp), %esi
movq 0x140(%rsp), %r8
movq 0x148(%rsp), %r9
movq %rax, %r13
movq %rsp, %rax
movq %r13, 0x30(%rax)
movq %r12, 0x28(%rax)
movq %r15, 0x20(%rax)
movq %r14, 0x18(%rax)
movq %rbx, 0x10(%rax)
movq %r11, 0x8(%rax)
movq %r10, (%rax)
andl $0x1, %edx
andl $0x1, %ecx
callq 0xf18e0
movq 0x178(%rsp), %rdi
callq 0x22890
movl %eax, %ecx
movq %rcx, 0x150(%rsp)
subl $0x4, %eax
ja 0xf15c1
movq 0x150(%rsp), %rax
leaq 0x894c1(%rip), %rcx     # 0x17a594
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x178(%rsp), %rax
movq %rax, 0xe8(%rsp)
movl 0x174(%rsp), %eax
movl %eax, 0xf4(%rsp)
movb 0x167(%rsp), %al
movb %al, 0xe6(%rsp)
movb 0x166(%rsp), %al
movb %al, 0xe7(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq 0x158(%rsp), %rdi
callq 0xf2940
movq %rax, 0x100(%rsp)
movq 0x1b0(%rsp), %rdi
callq 0xf2940
movq %rax, %r12
movq 0x1b8(%rsp), %rdi
callq 0xf2140
movq %rax, %r15
movq 0x1c0(%rsp), %rdi
callq 0xf2140
movq %rax, %r14
movq 0x1c8(%rsp), %rdi
callq 0xf1ea0
movq %rax, %rbx
movq 0x1d0(%rsp), %rdi
callq 0xf1ea0
movq %rax, 0x108(%rsp)
movq 0x1d8(%rsp), %rdi
callq 0xf2570
movq %rax, 0x110(%rsp)
movq 0x1e0(%rsp), %rdi
callq 0xf2570
movb 0xe6(%rsp), %dl
movb 0xe7(%rsp), %cl
movq 0xe8(%rsp), %rdi
movl 0xf4(%rsp), %esi
movq 0xf8(%rsp), %r8
movq 0x100(%rsp), %r9
movq 0x108(%rsp), %r11
movq 0x110(%rsp), %r10
andb $0x1, %dl
andb $0x1, %cl
movzbl %dl, %edx
movzbl %cl, %ecx
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0xf18e0
jmp 0xf15c1
movq 0x178(%rsp), %rax
movq %rax, 0xb0(%rsp)
movl 0x174(%rsp), %eax
movl %eax, 0xbc(%rsp)
movb 0x167(%rsp), %al
movb %al, 0xae(%rsp)
movb 0x166(%rsp), %al
movb %al, 0xaf(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x158(%rsp), %rdi
callq 0xf2990
movq %rax, 0xc8(%rsp)
movq 0x1b0(%rsp), %rdi
callq 0xf2990
movq %rax, %r12
movq 0x1b8(%rsp), %rdi
callq 0xf2200
movq %rax, %r15
movq 0x1c0(%rsp), %rdi
callq 0xf2200
movq %rax, %r14
movq 0x1c8(%rsp), %rdi
callq 0xf1ef0
movq %rax, %rbx
movq 0x1d0(%rsp), %rdi
callq 0xf1ef0
movq %rax, 0xd0(%rsp)
movq 0x1d8(%rsp), %rdi
callq 0xf25c0
movq %rax, 0xd8(%rsp)
movq 0x1e0(%rsp), %rdi
callq 0xf25c0
movb 0xae(%rsp), %dl
movb 0xaf(%rsp), %cl
movq 0xb0(%rsp), %rdi
movl 0xbc(%rsp), %esi
movq 0xc0(%rsp), %r8
movq 0xc8(%rsp), %r9
movq 0xd0(%rsp), %r11
movq 0xd8(%rsp), %r10
andb $0x1, %dl
andb $0x1, %cl
movzbl %dl, %edx
movzbl %cl, %ecx
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0xf18e0
jmp 0xf15c1
movq 0x178(%rsp), %rax
movq %rax, 0x78(%rsp)
movl 0x174(%rsp), %eax
movl %eax, 0x84(%rsp)
movb 0x167(%rsp), %al
movb %al, 0x76(%rsp)
movb 0x166(%rsp), %al
movb %al, 0x77(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0x158(%rsp), %rdi
callq 0xf29e0
movq %rax, 0x90(%rsp)
movq 0x1b0(%rsp), %rdi
callq 0xf29e0
movq %rax, %r12
movq 0x1b8(%rsp), %rdi
callq 0xf22c0
movq %rax, %r15
movq 0x1c0(%rsp), %rdi
callq 0xf22c0
movq %rax, %r14
movq 0x1c8(%rsp), %rdi
callq 0xf1f40
movq %rax, %rbx
movq 0x1d0(%rsp), %rdi
callq 0xf1f40
movq %rax, 0x98(%rsp)
movq 0x1d8(%rsp), %rdi
callq 0xf2610
movq %rax, 0xa0(%rsp)
movq 0x1e0(%rsp), %rdi
callq 0xf2610
movb 0x76(%rsp), %dl
movb 0x77(%rsp), %cl
movq 0x78(%rsp), %rdi
movl 0x84(%rsp), %esi
movq 0x88(%rsp), %r8
movq 0x90(%rsp), %r9
movq 0x98(%rsp), %r11
movq 0xa0(%rsp), %r10
andb $0x1, %dl
andb $0x1, %cl
movzbl %dl, %edx
movzbl %cl, %ecx
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0xf18e0
jmp 0xf15c1
movq 0x178(%rsp), %rax
movq %rax, 0x40(%rsp)
movl 0x174(%rsp), %eax
movl %eax, 0x4c(%rsp)
movb 0x167(%rsp), %al
movb %al, 0x3e(%rsp)
movb 0x166(%rsp), %al
movb %al, 0x3f(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x158(%rsp), %rdi
callq 0xf2a30
movq %rax, 0x58(%rsp)
movq 0x1b0(%rsp), %rdi
callq 0xf2a30
movq %rax, %r12
movq 0x1b8(%rsp), %rdi
callq 0xf2380
movq %rax, %r15
movq 0x1c0(%rsp), %rdi
callq 0xf2380
movq %rax, %r14
movq 0x1c8(%rsp), %rdi
callq 0xf1f90
movq %rax, %rbx
movq 0x1d0(%rsp), %rdi
callq 0xf1f90
movq %rax, 0x60(%rsp)
movq 0x1d8(%rsp), %rdi
callq 0xf2660
movq %rax, 0x68(%rsp)
movq 0x1e0(%rsp), %rdi
callq 0xf2660
movb 0x3e(%rsp), %dl
movb 0x3f(%rsp), %cl
movq 0x40(%rsp), %rdi
movl 0x4c(%rsp), %esi
movq 0x50(%rsp), %r8
movq 0x58(%rsp), %r9
movq 0x60(%rsp), %r11
movq 0x68(%rsp), %r10
andb $0x1, %dl
andb $0x1, %cl
movzbl %dl, %edx
movzbl %cl, %ecx
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0xf18e0
addq $0x180, %rsp            # imm = 0x180
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
nopw %cs:(%rax,%rax)