// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gff3_parser.c
// Function: process_orphans
static int process_orphans(GtOrphanage *orphanage, GtFeatureInfo *feature_info,
                           bool strict, unsigned int last_terminator,
                           GtTypeChecker *type_checker, GtQueue *genome_nodes,
                           GtError *err)
{
  GtGenomeNode *orphan;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(orphanage && feature_info && genome_nodes);
  while (!had_err && (orphan = gt_orphanage_get_orphan(orphanage))) {
    const char *parent_attr;
    char *parent_attr_dup;
    GtSplitter *splitter;
    GtUword i;
    parent_attr = gt_feature_node_get_attribute((GtFeatureNode*) orphan,
                                                GT_GFF_PARENT);
    gt_assert(parent_attr);
    parent_attr_dup = gt_cstr_dup(parent_attr);
    splitter = gt_splitter_new();
    gt_splitter_split(splitter, parent_attr_dup, strlen(parent_attr_dup), ',');
    gt_assert(gt_splitter_size(splitter));
    /* check for missing parents */
    for (i = 0; !had_err && i < gt_splitter_size(splitter); i++) {
      const char *parent = gt_splitter_get_token(splitter, i);
      if (gt_orphanage_parent_is_missing(orphanage, parent)) {
        gt_error_set(err, "%s \"%s\" on line %u in file \"%s\" was not defined "
                     "(via \"%s=\")", GT_GFF_PARENT, parent,
                     gt_genome_node_get_line_number(orphan),
                     gt_genome_node_get_filename(orphan) , GT_GFF_ID);
        gt_genome_node_delete(orphan);
        had_err = -1;
      }
    }
    if (!had_err) {
      had_err = process_child(orphan, splitter, feature_info, strict,
                              last_terminator, type_checker, genome_nodes, err);
    }
    gt_splitter_delete(splitter);
    gt_free(parent_attr_dup);
  }
  return had_err;
}

// Assembly:
subq $0xb8, %rsp
movb %dl, %al
movq 0xc0(%rsp), %rdx
movq %rdi, 0xb0(%rsp)
movq %rsi, 0xa8(%rsp)
andb $0x1, %al
movb %al, 0xa7(%rsp)
movl %ecx, 0xa0(%rsp)
movq %r8, 0x98(%rsp)
movq %r9, 0x90(%rsp)
movl $0x0, 0x84(%rsp)
cmpq $0x0, 0xc0(%rsp)
je 0x2b6c2
movq 0xc0(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x2b68a
jmp 0x2b6c2
movq 0x188947(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1329cb(%rip), %rsi    # 0x15e066
leaq 0x132fa6(%rip), %rdx    # 0x15e648
leaq 0x13a1f1(%rip), %rcx    # 0x16589a
leaq 0x137efb(%rip), %r8     # 0x1635ab
movl $0x701, %r9d            # imm = 0x701
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2b6c4
jmp 0x2b6c6
cmpq $0x0, 0xb0(%rsp)
je 0x2b6e7
cmpq $0x0, 0xa8(%rsp)
je 0x2b6e7
cmpq $0x0, 0x90(%rsp)
jne 0x2b71f
movq 0x1888ea(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x13296e(%rip), %rsi    # 0x15e066
leaq 0x13a1ab(%rip), %rdx    # 0x1658aa
leaq 0x13a194(%rip), %rcx    # 0x16589a
leaq 0x137e9e(%rip), %r8     # 0x1635ab
movl $0x702, %r9d            # imm = 0x702
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2b721
jmp 0x2b723
xorl %eax, %eax
cmpl $0x0, 0x84(%rsp)
movb %al, 0x57(%rsp)
jne 0x2b753
movq 0xb0(%rsp), %rdi
callq 0x357c0
movq %rax, 0x88(%rsp)
cmpq $0x0, %rax
setne %al
movb %al, 0x57(%rsp)
movb 0x57(%rsp), %al
testb $0x1, %al
jne 0x2b760
jmp 0x2b9e5
movq 0x88(%rsp), %rdi
leaq 0x1390d4(%rip), %rsi    # 0x164843
callq 0x1fde0
movq %rax, 0x78(%rsp)
cmpq $0x0, 0x78(%rsp)
jne 0x2b7b9
movq 0x188850(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1328d4(%rip), %rsi    # 0x15e066
leaq 0x139bc6(%rip), %rdx    # 0x16535f
leaq 0x13a0fa(%rip), %rcx    # 0x16589a
leaq 0x137e04(%rip), %r8     # 0x1635ab
movl $0x70a, %r9d            # imm = 0x70A
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2b7bb
movq 0x78(%rsp), %rdi
callq 0x7c400
movq %rax, 0x70(%rsp)
callq 0x16a10
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x70(%rsp), %rdi
callq 0xb240
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rsi
movq %rax, %rdx
movl $0x2c, %ecx
callq 0x16a30
movq 0x68(%rsp), %rdi
callq 0x17010
cmpq $0x0, %rax
jne 0x2b851
movq 0x1887b8(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x13283c(%rip), %rsi    # 0x15e066
leaq 0x13a0a3(%rip), %rdx    # 0x1658d4
leaq 0x13a062(%rip), %rcx    # 0x16589a
leaq 0x137d6c(%rip), %r8     # 0x1635ab
movl $0x70e, %r9d            # imm = 0x70E
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x2b853
movq $0x0, 0x60(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x84(%rsp)
movb %al, 0x3f(%rsp)
jne 0x2b892
movq 0x60(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x68(%rsp), %rdi
callq 0x17010
movq %rax, %rcx
movq 0x30(%rsp), %rax
cmpq %rcx, %rax
setb %al
movb %al, 0x3f(%rsp)
movb 0x3f(%rsp), %al
testb $0x1, %al
jne 0x2b89f
jmp 0x2b95f
movq 0x68(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x16f20
movq %rax, 0x58(%rsp)
movq 0xb0(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x35850
testb $0x1, %al
jne 0x2b8cb
jmp 0x2b94a
movq 0xc0(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x88(%rsp), %rdi
callq 0x25850
movl %eax, 0x2c(%rsp)
movq 0x88(%rsp), %rdi
callq 0x257c0
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rcx
movl 0x2c(%rsp), %r8d
movq %rax, %r9
leaq 0x139fd6(%rip), %rsi    # 0x1658ef
leaq 0x138f23(%rip), %rdx    # 0x164843
leaq 0x138f19(%rip), %rax    # 0x164840
movq %rax, (%rsp)
movb $0x0, %al
callq 0xc0d0
movq 0x88(%rsp), %rdi
callq 0x26eb0
movl $0xffffffff, 0x84(%rsp) # imm = 0xFFFFFFFF
jmp 0x2b94c
movq 0x60(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x60(%rsp)
jmp 0x2b85c
cmpl $0x0, 0x84(%rsp)
jne 0x2b9c0
movq 0x88(%rsp), %rdi
movq 0x68(%rsp), %rsi
movq 0xa8(%rsp), %rdx
movb 0xa7(%rsp), %cl
movl 0xa0(%rsp), %r8d
movq 0x98(%rsp), %r9
movq 0x90(%rsp), %r10
movq 0xc0(%rsp), %rax
andb $0x1, %cl
movzbl %cl, %ecx
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x300d0
movl %eax, 0x84(%rsp)
movq 0x68(%rsp), %rdi
callq 0x17060
movq 0x70(%rsp), %rdi
leaq 0x137bd5(%rip), %rsi    # 0x1635ab
movl $0x720, %edx            # imm = 0x720
callq 0xdab0
jmp 0x2b723
movl 0x84(%rsp), %eax
addq $0xb8, %rsp
retq
nopw %cs:(%rax,%rax)