// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/dup_feature_visitor.c
// Function: dup_feature_visitor_feature_node
static int dup_feature_visitor_feature_node(GtNodeVisitor *nv,
                                            GtFeatureNode *fn,
                                            GT_UNUSED GtError *err)
{
  GtFeatureNodeIterator *fni, *child_iterator;
  GtFeatureNode *node, *child;
  GtDupFeatureVisitor *v;
  gt_error_check(err);
  v = gt_dup_feature_visitor_cast(nv);
  fni = gt_feature_node_iterator_new(fn);
  while ((node = gt_feature_node_iterator_next(fni))) {
    child_iterator = gt_feature_node_iterator_new_direct(node);
    while ((child = gt_feature_node_iterator_next(child_iterator))) {
      if (gt_feature_node_has_type(child, v->source_type))
        gt_feature_node_add_child(node, duplicate_feature(child,v->dest_type));
    }
    gt_feature_node_iterator_delete(child_iterator);
  }
  gt_feature_node_iterator_delete(fni);
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
testq %rdx, %rdx
je 0xce19f
movq %rdx, %rdi
callq 0x89eb7
testb %al, %al
jne 0xce33d
callq 0xce0e8
movq %rax, %rdi
movq %rbx, %rsi
callq 0x102dfe
movq %rax, %rbx
movq %r14, %rdi
callq 0xdc6f0
movq %rax, (%rsp)
movq (%rsp), %rdi
callq 0xdc92e
testq %rax, %rax
je 0xce323
movq %rax, %r14
movq %rax, %rdi
callq 0xdc826
movq %rax, %r15
movq %r14, 0x10(%rsp)
movq %rax, 0x8(%rsp)
movq %r15, %rdi
callq 0xdc92e
testq %rax, %rax
je 0xce316
movq %rax, %r13
movq 0x18(%rbx), %rsi
movq %rax, %rdi
callq 0xda68b
testb %al, %al
je 0xce1e8
movq 0x10(%rbx), %r14
movq %r13, %rdi
callq 0xdd14a
movq %rax, %r15
movq %r13, %rdi
callq 0xdd1ef
movq %rax, %rbp
movq %r13, %rdi
callq 0xdd245
movq %rax, %r12
movq %r13, %rdi
callq 0xd9d99
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq %r12, %rcx
movl %eax, %r8d
callq 0xd9acb
movq %rax, %rbp
movq %r13, %rdi
callq 0xda37b
testb %al, %al
je 0xce282
movq %r13, %rdi
callq 0xda5c1
movq %rax, %rdi
callq 0xacbd1
movq %rax, %r14
movq %rbp, %rdi
movq %rax, %rsi
callq 0xd96be
movq %r14, %rdi
callq 0xae103
movq %r13, %rdi
callq 0xda3de
testb %al, %al
je 0xce29e
movq %r13, %rdi
callq 0xdaa3e
movq %rbp, %rdi
callq 0xda425
movq %r13, %rdi
callq 0xdaba0
movq %rbp, %rdi
movl %eax, %esi
callq 0xd9754
movq %r13, %rdi
callq 0xd9638
movq %rax, %r14
xorl %r15d, %r15d
movq %r14, %rdi
callq 0xae61c
cmpq %rax, %r15
jae 0xce2f7
movq %r14, %rdi
movq %r15, %rsi
callq 0xae386
movq %rax, %r12
movq %r13, %rdi
movq %rax, %rsi
callq 0xd9628
movq %rbp, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0xdb38d
incq %r15
jmp 0xce2be
movq %r14, %rdi
callq 0xae662
movq 0x10(%rsp), %rdi
movq %rbp, %rsi
callq 0xda055
movq 0x8(%rsp), %r15
jmp 0xce1e8
movq %r15, %rdi
callq 0xdc9f1
jmp 0xce1be
movq (%rsp), %rdi
callq 0xdc9f1
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x369c24(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x216cc5(%rip), %rsi    # 0x2e5013
leaq 0x216e6a(%rip), %rdx    # 0x2e51bf
leaq 0x24d427(%rip), %rcx    # 0x31b783
leaq 0x24d3fd(%rip), %r8     # 0x31b760
pushq $0x50
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390