// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: gt_obo_parse_tree_new
GtOBOParseTree* gt_obo_parse_tree_new(const char *obo_file_path, GtError *err)
{
  GtOBOParseTree *obo_parse_tree;
  GtIO *obo_file;
  gt_error_check(err);
  gt_assert(obo_file_path);
  obo_file = gt_io_new(obo_file_path, "r");
  obo_parse_tree = gt_malloc(sizeof *obo_parse_tree);
  obo_parse_tree->obo_header = obo_header_new();
  obo_parse_tree->stanzas = gt_array_new(sizeof (GtOBOStanza*));
  if (parse_obo_file(obo_parse_tree, obo_file, err)) {
    gt_obo_parse_tree_delete(obo_parse_tree);
    gt_io_delete(obo_file);
    return NULL;
  }
  gt_io_delete(obo_file);
  return obo_parse_tree;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r15
movq %rdi, %rbx
testq %rsi, %rsi
je 0x348c69
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x349345
testq %rbx, %rbx
je 0x34933b
leaq 0x1b250(%rip), %rsi     # 0x363ec9
movq %rbx, %rdi
callq 0x108aa8
movq %rax, %rbx
leaq 0xaaa1a(%rip), %r14     # 0x3f36a5
movl $0x10, %edi
movq %r14, %rsi
movl $0x1a9, %edx            # imm = 0x1A9
callq 0x1092b2
movq %rax, %r12
movl $0x8, %edi
movq %r14, %rsi
movl $0x2c, %edx
callq 0x1092b2
movq %rax, %r14
movl $0x8, %edi
callq 0xd46fc
movq %rax, (%r14)
movq %r14, (%r12)
movl $0x8, %edi
callq 0xd46fc
movq %rax, 0x8(%r12)
testq %r15, %r15
je 0x348cea
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x34934a
movq %r12, 0x8(%rsp)
testq %rbx, %rbx
je 0x349340
movabsq $0x300002400, %r14      # imm = 0x300002400
movq %rbx, %rdi
callq 0x108c0e
cmpb $0x21, %al
ja 0x348d75
movzbl %al, %eax
btq %rax, %r14
jae 0x348d75
testq %r15, %r15
je 0x348d2c
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x349331
movq %rbx, %rdi
callq 0x108c0e
movq %rbx, %rdi
movq %r15, %rsi
cmpb $0x20, %al
jne 0x348d45
callq 0x3494f1
jmp 0x348d4a
callq 0x3495d7
testl %eax, %eax
je 0x348d02
movq 0x8(%rsp), %rdi
callq 0x349381
xorl %r14d, %r14d
movq %rbx, %rdi
callq 0x108b29
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testq %r15, %r15
je 0x348d8a
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x349354
testq %rbx, %rbx
je 0x34934f
callq 0x1208f8
movq %rax, %rbp
callq 0x1208f8
movq %rax, %r12
movq %rbp, 0x10(%rsp)
movq %rax, (%rsp)
movq %rbp, %rdi
callq 0x120db4
movq %r12, %rdi
callq 0x120db4
movq %rbx, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x349658
testl %eax, %eax
jne 0x3491c5
movq %r15, %r13
movq 0x8(%rsp), %rax
movq (%rax), %r15
movq %rbp, %rdi
callq 0x120d23
movq %rax, %r14
movq %r12, %rdi
callq 0x120d23
testq %r15, %r15
je 0x349336
testq %r14, %r14
je 0x349336
movq %rax, %rbp
testq %rax, %rax
je 0x349336
movl $0x10, %edi
leaq 0xaa888(%rip), %rsi     # 0x3f36a5
movl $0x45, %edx
callq 0x1092b2
movq %rax, 0x18(%rsp)
movq %r14, %rdi
callq 0xe8760
movq 0x18(%rsp), %rcx
movq %rax, (%rcx)
movq %rbp, %rdi
callq 0xe8760
movq 0x18(%rsp), %rcx
movq %rax, 0x8(%rcx)
movq (%r15), %rdi
movl $0x8, %edx
leaq 0x18(%rsp), %rsi
callq 0xd49ce
movq %rbx, %rdi
xorl %esi, %esi
callq 0x349766
testb %al, %al
movq 0x10(%rsp), %rbp
movq (%rsp), %r12
movq %r13, %r15
jne 0x348dac
movq 0x8(%rsp), %rax
movq (%rax), %r14
movq %rbx, %rdi
callq 0x108c81
movq %rax, %r13
testq %r15, %r15
je 0x348ea5
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x349372
testq %r14, %r14
je 0x349363
testq %r13, %r13
je 0x349363
movq (%r14), %rdi
callq 0xd4a9a
testq %rax, %rax
je 0x3491b1
movq %r13, 0x20(%rsp)
xorl %ebp, %ebp
movq (%r14), %rdi
movq %rbp, %rsi
callq 0xd47ba
movq (%rax), %r12
movq (%r12), %rdi
leaq 0xaa91d(%rip), %rsi     # 0x3f3805
callq 0x17a40
testl %eax, %eax
jne 0x348ef6
movq 0x8(%r12), %r13
testl %eax, %eax
je 0x348f0d
incq %rbp
movq (%r14), %rdi
callq 0xd4a9a
cmpq %rax, %rbp
jb 0x348ecf
xorl %r13d, %r13d
testq %r13, %r13
movq 0x10(%rsp), %rbp
movq (%rsp), %r12
movq 0x20(%rsp), %r13
je 0x3491b1
movq %r12, %rdi
callq 0x121b03
movq %rbp, %rdi
callq 0x121b03
movq %rbx, %rdi
callq 0x108bc9
movq %rbx, %rdi
testb %al, %al
je 0x3491da
callq 0x108c0e
movzbl %al, %eax
cmpl $0x1f, %eax
jg 0x348f8a
cmpl $0xa, %eax
je 0x349049
cmpl $0xd, %eax
jne 0x348fa8
movq %rbx, %rdi
callq 0x108c47
movq %rbx, %rdi
callq 0x108c0e
xorl %r13d, %r13d
cmpb $0xa, %al
jne 0x3491a3
movq %rbx, %rdi
callq 0x108c47
jmp 0x3491a3
cmpl $0x21, %eax
je 0x349059
cmpl $0x20, %eax
jne 0x348fa8
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3494f1
jmp 0x349064
testq %r15, %r15
je 0x348fbd
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x349368
testq %rbx, %rbx
je 0x349359
callq 0x1208f8
movq %rax, %r14
callq 0x1208f8
movq %rax, %rbp
callq 0x1208f8
movq %rax, %r12
movq %rbx, %rdi
callq 0x108c71
movq %rax, %r13
testq %r15, %r15
je 0x348ffe
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x34936d
movq %r13, (%rsp)
testq %r14, %r14
je 0x34935e
movq %rbx, %rdi
movl $0x5b, %esi
movq %r15, %rdx
callq 0x108cae
movl %eax, %r13d
testl %eax, %eax
jne 0x349072
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %r15, %rcx
callq 0x3497bb
testl %eax, %eax
jne 0x34906c
xorl %r13d, %r13d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x349766
testb %al, %al
jne 0x349022
jmp 0x349072
movq %rbx, %rdi
callq 0x108c47
xorl %r13d, %r13d
jmp 0x3491a3
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3495d7
movl %eax, %r13d
jmp 0x3491a3
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
testl %r13d, %r13d
jne 0x34908a
movq %rbx, %rdi
movl $0x5d, %esi
movq %r15, %rdx
callq 0x108cae
movl %eax, %r13d
testl %r13d, %r13d
jne 0x3490a2
movq %rbx, %rdi
movl $0xa, %esi
movq %r15, %rdx
callq 0x108cae
movl %eax, %r13d
testl %r13d, %r13d
jne 0x34918b
movq %r14, 0x10(%rsp)
movq %r14, %rdi
callq 0x120d23
movq %rax, %r14
movq %rbx, %rdi
callq 0x108c99
movq %r14, %rdi
movq (%rsp), %rsi
movq %rax, %rdx
callq 0x349968
movq %rax, 0x18(%rsp)
movq %rax, (%rsp)
testq %rax, %rax
je 0x349377
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x8, %edx
leaq 0x18(%rsp), %rsi
callq 0xd49ce
xorl %r13d, %r13d
movq 0x10(%rsp), %r14
movq %rbx, %rdi
xorl %esi, %esi
callq 0x349766
testb %al, %al
jne 0x34911e
movq %rbx, %rdi
callq 0x108c0e
cmpb $0x21, %al
jne 0x34918b
movq %rbp, %rdi
callq 0x120db4
movq %r12, %rdi
callq 0x120db4
movq %rbx, %rdi
callq 0x108c0e
movq %rbx, %rdi
cmpb $0x21, %al
jne 0x34914a
movq %r15, %rsi
callq 0x3495d7
movl %eax, %r13d
jmp 0x349182
movq %rbp, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x349658
movl %eax, %r13d
movq %rbp, %rdi
callq 0x120d23
movq %rax, %r14
movq %r12, %rdi
callq 0x120d23
movq (%rsp), %rdi
movq %r14, %rsi
movq 0x10(%rsp), %r14
movq %rax, %rdx
callq 0x349a29
testl %r13d, %r13d
je 0x349104
movq %r12, %rdi
callq 0x121b03
movq %rbp, %rdi
callq 0x121b03
movq %r14, %rdi
callq 0x121b03
testl %r13d, %r13d
je 0x348f34
jmp 0x348d4e
leaq 0xaa65c(%rip), %rsi     # 0x3f3814
movq %r15, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0x1019cf
movq %r12, %rdi
callq 0x121b03
movq %rbp, %rdi
callq 0x121b03
jmp 0x348d4e
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movq %r15, %rdx
callq 0x108cae
testl %eax, %eax
jne 0x348d4e
testq %r15, %r15
je 0x349204
movq %r15, %rdi
callq 0x101a9a
testb %al, %al
jne 0x34937c
movq 0x8(%rsp), %r14
movq 0x8(%r14), %rdi
callq 0xd4a9a
testq %rax, %rax
je 0x348d5b
xorl %r12d, %r12d
leaq 0x9f4fb(%rip), %r13     # 0x3e8720
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd47ba
movq (%rax), %rbp
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd47ba
movq (%rax), %rdi
callq 0x349aad
movq %rax, %rdi
movq %r13, %rsi
callq 0x17a40
testl %eax, %eax
je 0x3492de
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd47ba
movq (%rax), %rdi
callq 0x349aad
movq %rax, %rdi
leaq 0xaa64b(%rip), %rsi     # 0x3f38c4
callq 0x17a40
testl %eax, %eax
je 0x3492de
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd47ba
movq (%rax), %rdi
callq 0x349aad
movq %rax, %rdi
leaq 0xaa62c(%rip), %rsi     # 0x3f38cc
callq 0x17a40
testl %eax, %eax
jne 0x349312
movq %rbp, %rdi
leaq 0x9f689(%rip), %rsi     # 0x3e893c
movq %r15, %rdx
callq 0x3498cd
testl %eax, %eax
jne 0x348d4e
movq %rbp, %rdi
leaq 0x42855(%rip), %rsi     # 0x38bb22
movq %r15, %rdx
callq 0x3498cd
leaq 0xaa5f9(%rip), %rsi     # 0x3f38d5
jmp 0x3492f7
movq %rbp, %rdi
leaq 0x9f654(%rip), %rsi     # 0x3e893c
movq %r15, %rdx
callq 0x3498cd
leaq 0x4282b(%rip), %rsi     # 0x38bb22
testl %eax, %eax
jne 0x348d4e
movq %rbp, %rdi
movq %r15, %rdx
callq 0x3498cd
testl %eax, %eax
jne 0x348d4e
incq %r12
movq 0x8(%rsp), %r14
movq 0x8(%r14), %rdi
callq 0xd4a9a
cmpq %rax, %r12
jb 0x349225
jmp 0x348d5b
callq 0x99037
callq 0x990a9
callq 0x99314
callq 0x992db
callq 0x98fc5
callq 0x98ffe
callq 0x992a2
callq 0x99070
callq 0x99269
callq 0x99230
callq 0x99117
callq 0x99187
callq 0x991c0
callq 0x990e0
callq 0x991f9
callq 0x9914e