// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/extended/feature_node.c
// Function: gt_feature_node_new_standard_gene
GtGenomeNode* gt_feature_node_new_standard_gene(void)
{
  GtGenomeNode *fn, *child, *grand;
  GtStr *seqid;
  seqid = gt_str_new_cstr("ctg123");

  /* gene */
  fn = gt_feature_node_new(seqid, gt_ft_gene, 1000, 9000, GT_STRAND_FORWARD);

  /* TF binding site */
  child = gt_feature_node_new(seqid, gt_ft_TF_binding_site, 1000, 1012,
                                GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) fn, (GtFeatureNode*) child);

  /* first mRNA */
  child = gt_feature_node_new(seqid, gt_ft_mRNA, 1050, 9000, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) fn, (GtFeatureNode*) child);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 1050, 1500, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 3000, 3902, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 5000, 5500, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 7000, 9000, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);

  /* second mRNA */
  child = gt_feature_node_new(seqid, gt_ft_mRNA, 1050, 9000, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) fn, (GtFeatureNode*) child);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 1050, 1500, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 5000, 5500, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 7000, 9000, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);

  /* third mRNA */
  child = gt_feature_node_new(seqid, gt_ft_mRNA, 1300, 9000, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) fn, (GtFeatureNode*) child);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 1300, 1500, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 3000, 3902, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 5000, 5500, GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);
  grand = gt_feature_node_new(seqid, gt_ft_exon, 7000, 9000,GT_STRAND_FORWARD);
  gt_feature_node_add_child((GtFeatureNode*) child, (GtFeatureNode*) grand);

  gt_str_delete(seqid);
  return fn;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
leaq 0xa578c(%rip), %rdi     # 0xe4c13
callq 0x3b785
movq %rax, %rbx
leaq 0xcd22a(%rip), %rsi     # 0x10c6c0
movl $0x3e8, %edx            # imm = 0x3E8
movl $0x2328, %ecx           # imm = 0x2328
movq %rax, %rdi
xorl %r8d, %r8d
callq 0x3f280
movq %rax, %r14
leaq 0xa5765(%rip), %rsi     # 0xe4c1a
movl $0x3e8, %edx            # imm = 0x3E8
movl $0x3f4, %ecx            # imm = 0x3F4
movq %rbx, %rdi
xorl %r8d, %r8d
callq 0x3f280
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f6eb
leaq 0xa574e(%rip), %r12     # 0xe4c2a
movl $0x41a, %edx            # imm = 0x41A
movl $0x2328, %ecx           # imm = 0x2328
movq %rbx, %rdi
movq %r12, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f6eb
leaq 0xbd3e9(%rip), %r15     # 0xfc8f2
movl $0x41a, %edx            # imm = 0x41A
movl $0x5dc, %ecx            # imm = 0x5DC
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0xbb8, %edx            # imm = 0xBB8
movl $0xf3e, %ecx            # imm = 0xF3E
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x1388, %edx           # imm = 0x1388
movl $0x157c, %ecx           # imm = 0x157C
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x1b58, %edx           # imm = 0x1B58
movl $0x2328, %ecx           # imm = 0x2328
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x41a, %edx            # imm = 0x41A
movl $0x2328, %ecx           # imm = 0x2328
movq %rbx, %rdi
movq %r12, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %rax, %r13
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x41a, %edx            # imm = 0x41A
movl $0x5dc, %ecx            # imm = 0x5DC
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x1388, %edx           # imm = 0x1388
movl $0x157c, %ecx           # imm = 0x157C
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x1b58, %edx           # imm = 0x1B58
movl $0x2328, %ecx           # imm = 0x2328
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x514, %edx            # imm = 0x514
movl $0x2328, %ecx           # imm = 0x2328
movq %rbx, %rdi
movq %r12, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x514, %edx            # imm = 0x514
movl $0x5dc, %ecx            # imm = 0x5DC
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0xbb8, %edx            # imm = 0xBB8
movl $0xf3e, %ecx            # imm = 0xF3E
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x1388, %edx           # imm = 0x1388
movl $0x157c, %ecx           # imm = 0x157C
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f6eb
movl $0x1b58, %edx           # imm = 0x1B58
movl $0x2328, %ecx           # imm = 0x2328
movq %rbx, %rdi
movq %r15, %rsi
xorl %r8d, %r8d
callq 0x3f280
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f6eb
movq %rbx, %rdi
callq 0x3c87b
movq %r14, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq