// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/feature_node.c
// Function: gt_feature_node_direct_children_do_not_overlap_generic
bool gt_feature_node_direct_children_do_not_overlap_generic(GtFeatureNode
                                                            *parent,
                                                            GtFeatureNode
                                                            *child)
{
  GtArray *children_ranges;
  GtDlistelem *dlistelem;
  GtFeatureNode *child_fn;
  GtRange range;
  bool rval;

  gt_assert(parent);

  if (!parent->children)
    return true;

  /* get children ranges */
  children_ranges = gt_array_new(sizeof (GtRange));
  gt_assert(parent->children);
  for (dlistelem = gt_dlist_first(parent->children); dlistelem != NULL;
       dlistelem = gt_dlistelem_next(dlistelem)) {
    if (!child ||
        ((child_fn =
            gt_feature_node_try_cast(gt_dlistelem_get_data(dlistelem))) &&
         gt_feature_node_get_type(child) ==
         gt_feature_node_get_type(child_fn))) {
      range = gt_genome_node_get_range((GtGenomeNode*)
                                    gt_dlistelem_get_data(dlistelem));
      gt_array_add(children_ranges, range);
    }
  }

  gt_ranges_sort(children_ranges);
  gt_assert(gt_ranges_are_sorted(children_ranges));
  rval = gt_ranges_do_not_overlap(children_ranges);

  gt_array_delete(children_ranges);

  return rval;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movq %rsi, 0x50(%rsp)
cmpq $0x0, 0x58(%rsp)
jne 0x2403e
movq 0x18ffcb(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x13a04f(%rip), %rsi    # 0x15e066
leaq 0x14f819(%rip), %rdx    # 0x173837
leaq 0x13e64f(%rip), %rcx    # 0x162674
leaq 0x13db78(%rip), %r8     # 0x161ba4
movl $0x4cb, %r9d            # imm = 0x4CB
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x24040
movq 0x58(%rsp), %rax
cmpq $0x0, 0x70(%rax)
jne 0x24056
movb $0x1, 0x67(%rsp)
jmp 0x241e5
movl $0x10, %edi
callq 0x75ab0
movq %rax, 0x48(%rsp)
movq 0x58(%rsp), %rax
cmpq $0x0, 0x70(%rax)
jne 0x240a9
movq 0x18ff60(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x139fe4(%rip), %rsi    # 0x15e066
leaq 0x13e622(%rip), %rdx    # 0x1626ab
leaq 0x13e5e4(%rip), %rcx    # 0x162674
leaq 0x13db0d(%rip), %r8     # 0x161ba4
movl $0x4d2, %r9d            # imm = 0x4D2
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x240ab
movq 0x58(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x7d850
movq %rax, 0x40(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x2416f
cmpq $0x0, 0x50(%rsp)
je 0x24115
movq 0x40(%rsp), %rdi
callq 0x7d9e0
movq %rax, %rdi
callq 0x241f0
movq %rax, 0x38(%rsp)
cmpq $0x0, %rax
je 0x24159
movq 0x50(%rsp), %rdi
callq 0x211d0
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rdi
callq 0x211d0
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jne 0x24159
movq 0x40(%rsp), %rdi
callq 0x7d9e0
movq %rax, %rdi
callq 0x259f0
movq %rax, 0x10(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
jmp 0x2415b
movq 0x40(%rsp), %rdi
callq 0x7da30
movq %rax, 0x40(%rsp)
jmp 0x240be
movq 0x48(%rsp), %rdi
callq 0x954f0
movq 0x48(%rsp), %rdi
callq 0x95610
testb $0x1, %al
jne 0x241bf
movq 0x18fe4a(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x139ece(%rip), %rsi    # 0x15e066
leaq 0x13e51d(%rip), %rdx    # 0x1626bc
leaq 0x13e4ce(%rip), %rcx    # 0x162674
leaq 0x13d9f7(%rip), %r8     # 0x161ba4
movl $0x4e1, %r9d            # imm = 0x4E1
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x241c1
movq 0x48(%rsp), %rdi
callq 0x956f0
andb $0x1, %al
movb %al, 0x27(%rsp)
movq 0x48(%rsp), %rdi
callq 0x770a0
movb 0x27(%rsp), %al
andb $0x1, %al
movb %al, 0x67(%rsp)
movb 0x67(%rsp), %al
andb $0x1, %al
addq $0x68, %rsp
retq