// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/type_graph.c
// Function: gt_type_graph_add_stanza
void gt_type_graph_add_stanza(GtTypeGraph *type_graph,
                              const GtOBOStanza *stanza)
{
  const char *id_value, *name_value;
  GtUword i, size;
  GtTypeNode *node;
  GtStr *buf;
  gt_assert(type_graph && stanza && !type_graph->ready);
  gt_assert(gt_obo_stanza_size(stanza, "id") == 1);
  gt_assert(gt_obo_stanza_size(stanza, "name") == 1);
  id_value = gt_symbol(gt_obo_stanza_get_value(stanza, "id", 0));
  name_value = gt_symbol(gt_obo_stanza_get_value(stanza, "name", 0));
  gt_assert(id_value);
  gt_assert(name_value);
  gt_assert(!gt_hashmap_get(type_graph->nodemap, id_value));
  node = gt_type_node_new(gt_array_size(type_graph->nodes), id_value);
  gt_hashmap_add(type_graph->name2id, (char*) name_value, (char*) id_value);
  gt_hashmap_add(type_graph->id2name, (char*) id_value, (char*) name_value);
  gt_hashmap_add(type_graph->nodemap, (char*) id_value, node);
  gt_array_add(type_graph->nodes, node);
  buf = gt_str_new();
  /* store is_a entries in node, if necessary */
  if ((size = gt_obo_stanza_size(stanza, "is_a"))) {
    for (i = 0; i < size; i++) {
      const char *id = gt_obo_stanza_get_value(stanza, "is_a", i);
      gt_str_reset(buf);
      gt_str_append_cstr_nt(buf, id, strcspn(id, " \n"));
      gt_type_node_is_a_add(node, gt_symbol(gt_str_get(buf)));
    }
  }
  /* store part_of entries in node, if necessary */
  if ((size = gt_obo_stanza_size(stanza, "relationship"))) {
    for (i = 0; i < size; i++) {
      const char *rel = gt_obo_stanza_get_value(stanza, "relationship", i);
      gt_str_reset(buf);
      /* match part_of */
      if (!strncmp(rel, PART_OF, strlen(PART_OF))) {
        const char *part_of = rel + strlen(PART_OF) + 1;
        gt_str_append_cstr_nt(buf, part_of, strcspn(part_of, " \n"));
        gt_type_node_part_of_add(node, gt_symbol(gt_str_get(buf)));
        continue;
      }
      /* match member_of */
      if (!strncmp(rel, MEMBER_OF, strlen(MEMBER_OF))) {
        const char *member_of = rel + strlen(MEMBER_OF) + 1;
        gt_str_append_cstr_nt(buf, member_of, strcspn(member_of, " \n"));
        gt_type_node_part_of_add(node, gt_symbol(gt_str_get(buf)));
        continue;
      }
      /* match integral_part_of */
      if (!strncmp(rel, INTEGRAL_PART_OF, strlen(INTEGRAL_PART_OF))) {
        const char *integral_part_of = rel + strlen(INTEGRAL_PART_OF) + 1;
        gt_str_append_cstr_nt(buf, integral_part_of,
                              strcspn(integral_part_of, " \n"));
        gt_type_node_part_of_add(node, gt_symbol(gt_str_get(buf)));
      }
    }
  }
  gt_str_delete(buf);
}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
cmpq $0x0, 0xc0(%rsp)
je 0x49951b
cmpq $0x0, 0xb8(%rsp)
je 0x49951b
movq 0xc0(%rsp), %rax
testb $0x1, 0x30(%rax)
je 0x499553
movq 0x1a2a7e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x7cae7(%rip), %rsi     # 0x516013
leaq 0x11b026(%rip), %rdx    # 0x5b4559
leaq 0x11b04a(%rip), %rcx    # 0x5b4584
leaq 0x11affe(%rip), %r8     # 0x5b453f
movl $0x4c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x499555
jmp 0x499557
movq 0xb8(%rsp), %rdi
leaq 0x11b1b1(%rip), %rsi    # 0x5b4717
callq 0x50cf60
cmpq $0x1, %rax
je 0x4995a9
movq 0x1a2a28(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x7ca91(%rip), %rsi     # 0x516013
leaq 0x11b014(%rip), %rdx    # 0x5b459d
leaq 0x11aff4(%rip), %rcx    # 0x5b4584
leaq 0x11afa8(%rip), %r8     # 0x5b453f
movl $0x4d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4995ab
jmp 0x4995ad
movq 0xb8(%rsp), %rdi
leaq 0xbb842(%rip), %rsi     # 0x554dfe
callq 0x50cf60
cmpq $0x1, %rax
je 0x4995ff
movq 0x1a29d2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x7ca3b(%rip), %rsi     # 0x516013
leaq 0x11afe4(%rip), %rdx    # 0x5b45c3
leaq 0x11af9e(%rip), %rcx    # 0x5b4584
leaq 0x11af52(%rip), %r8     # 0x5b453f
movl $0x4e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x499601
movq 0xb8(%rsp), %rdi
leaq 0x11b107(%rip), %rsi    # 0x5b4717
xorl %eax, %eax
movl %eax, %edx
callq 0x50cec0
movq %rax, %rdi
callq 0x120930
movq %rax, 0xb0(%rsp)
movq 0xb8(%rsp), %rdi
leaq 0xbb7c6(%rip), %rsi     # 0x554dfe
xorl %eax, %eax
movl %eax, %edx
callq 0x50cec0
movq %rax, %rdi
callq 0x120930
movq %rax, 0xa8(%rsp)
cmpq $0x0, 0xb0(%rsp)
jne 0x499694
movq 0x1a293d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x7c9a6(%rip), %rsi     # 0x516013
leaq 0x11af77(%rip), %rdx    # 0x5b45eb
leaq 0x11af09(%rip), %rcx    # 0x5b4584
leaq 0x11aebd(%rip), %r8     # 0x5b453f
movl $0x51, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x499696
jmp 0x499698
cmpq $0x0, 0xa8(%rsp)
jne 0x4996db
movq 0x1a28f6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x7c95f(%rip), %rsi     # 0x516013
leaq 0xa12fe(%rip), %rdx     # 0x53a9b9
leaq 0x11aec2(%rip), %rcx    # 0x5b4584
leaq 0x11ae76(%rip), %r8     # 0x5b453f
movl $0x52, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4996dd
jmp 0x4996df
movq 0xc0(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0xb0(%rsp), %rsi
callq 0xe0f20
cmpq $0x0, %rax
je 0x499736
movq 0x1a289b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x7c904(%rip), %rsi     # 0x516013
leaq 0x11aede(%rip), %rdx    # 0x5b45f4
leaq 0x11ae67(%rip), %rcx    # 0x5b4584
leaq 0x11ae1b(%rip), %r8     # 0x5b453f
movl $0x53, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x499738
movq 0xc0(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x81370
movq %rax, %rdi
movq 0xb0(%rsp), %rsi
callq 0x49a140
movq %rax, 0x90(%rsp)
movq 0xc0(%rsp), %rax
movq (%rax), %rdi
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
callq 0xe0fc0
movq 0xc0(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0xb0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
callq 0xe0fc0
movq 0xc0(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0xb0(%rsp), %rsi
movq 0x90(%rsp), %rdx
callq 0xe0fc0
movq 0xc0(%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x90(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
callq 0x11d4a0
movq %rax, 0x88(%rsp)
movq 0xb8(%rsp), %rdi
leaq 0xd0529(%rip), %rsi     # 0x569d26
callq 0x50cf60
movq %rax, 0x98(%rsp)
cmpq $0x0, %rax
je 0x4998f1
movq $0x0, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
cmpq 0x98(%rsp), %rax
jae 0x4998ef
movq 0xb8(%rsp), %rdi
movq 0xa0(%rsp), %rdx
leaq 0xd04d9(%rip), %rsi     # 0x569d26
callq 0x50cec0
movq %rax, 0x80(%rsp)
movq 0x88(%rsp), %rdi
callq 0x11e110
movq 0x88(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x80(%rsp), %rdi
leaq 0xfbd96(%rip), %rsi     # 0x595626
callq 0x19090
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq %rax, %rdx
callq 0x11d830
movq 0x90(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x88(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x120930
movq 0x58(%rsp), %rdi
movq %rax, %rsi
callq 0x49a240
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x499820
jmp 0x4998f1
movq 0xb8(%rsp), %rdi
leaq 0x11ad23(%rip), %rsi    # 0x5b4623
callq 0x50cf60
movq %rax, 0x98(%rsp)
cmpq $0x0, %rax
je 0x499b56
movq $0x0, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
cmpq 0x98(%rsp), %rax
jae 0x499b54
movq 0xb8(%rsp), %rdi
movq 0xa0(%rsp), %rdx
leaq 0x11acd3(%rip), %rsi    # 0x5b4623
callq 0x50cec0
movq %rax, 0x78(%rsp)
movq 0x88(%rsp), %rdi
callq 0x11e110
movq 0x78(%rsp), %rdi
leaq 0xccc4e(%rip), %rsi     # 0x5665c1
movl $0x7, %edx
callq 0x192f0
cmpl $0x0, %eax
jne 0x499a06
movq 0x78(%rsp), %rax
addq $0x7, %rax
addq $0x1, %rax
movq %rax, 0x70(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x70(%rsp), %rdi
leaq 0xfbc6b(%rip), %rsi     # 0x595626
callq 0x19090
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq %rax, %rdx
callq 0x11d830
movq 0x90(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x88(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x120930
movq 0x40(%rsp), %rdi
movq %rax, %rsi
callq 0x49a3f0
jmp 0x499b3b
movq 0x78(%rsp), %rdi
leaq 0x11ac1e(%rip), %rsi    # 0x5b4630
movl $0x9, %edx
callq 0x192f0
cmpl $0x0, %eax
jne 0x499aa5
movq 0x78(%rsp), %rax
addq $0x9, %rax
addq $0x1, %rax
movq %rax, 0x68(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x68(%rsp), %rdi
leaq 0xfbbcc(%rip), %rsi     # 0x595626
callq 0x19090
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
callq 0x11d830
movq 0x90(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x88(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x120930
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x49a3f0
jmp 0x499b3b
movq 0x78(%rsp), %rdi
leaq 0x11ab89(%rip), %rsi    # 0x5b463a
movl $0x10, %edx
callq 0x192f0
cmpl $0x0, %eax
jne 0x499b39
movq 0x78(%rsp), %rax
addq $0x10, %rax
addq $0x1, %rax
movq %rax, 0x60(%rsp)
movq 0x88(%rsp), %rax
movq %rax, (%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x60(%rsp), %rdi
leaq 0xfbb32(%rip), %rsi     # 0x595626
callq 0x19090
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rax, %rdx
callq 0x11d830
movq 0x90(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x88(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x120930
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x49a3f0
jmp 0x499b3b
movq 0xa0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xa0(%rsp)
jmp 0x499923
jmp 0x499b56
movq 0x88(%rsp), %rdi
callq 0x11f560
addq $0xc8, %rsp
retq
nopl (%rax,%rax)