// File: /workspace/github_c_makefile_star2_O3/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 0x33f995
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x340054
testq %rbx, %rbx
je 0x34004a
leaq 0x1b4b0(%rip), %rsi     # 0x35ae55
movq %rbx, %rdi
callq 0x103a1c
movq %rax, %rbx
leaq 0xaa4fe(%rip), %r14     # 0x3e9eb5
movl $0x10, %edi
movq %r14, %rsi
movl $0x1a9, %edx            # imm = 0x1A9
callq 0x104226
movq %rax, %r12
movl $0x8, %edi
movq %r14, %rsi
movl $0x2c, %edx
callq 0x104226
movq %rax, %r14
movl $0x8, %edi
callq 0xd214c
movq %rax, (%r14)
movq %r14, (%r12)
movl $0x8, %edi
callq 0xd214c
movq %r12, 0x8(%rsp)
movq %rax, 0x8(%r12)
testq %r15, %r15
je 0x33fa1b
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x340059
testq %rbx, %rbx
je 0x34004f
movabsq $0x300002400, %r14      # imm = 0x300002400
movq %rbx, %rdi
callq 0x103b7b
cmpb $0x21, %al
ja 0x33faa1
movzbl %al, %eax
btq %rax, %r14
jae 0x33faa1
testq %r15, %r15
je 0x33fa58
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x340040
movq %rbx, %rdi
callq 0x103b7b
movq %rbx, %rdi
movq %r15, %rsi
cmpb $0x20, %al
jne 0x33fa71
callq 0x3401f6
jmp 0x33fa76
callq 0x340293
testl %eax, %eax
je 0x33fa2e
movq 0x8(%rsp), %rdi
callq 0x340086
xorl %r14d, %r14d
movq %rbx, %rdi
callq 0x103a96
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testq %r15, %r15
je 0x33fab6
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x34005e
callq 0x11ac6c
movq %rax, %r14
callq 0x11ac6c
movq %rax, %r12
movq %r14, (%rsp)
movq %rax, 0x10(%rsp)
movq %r14, %rdi
callq 0x11b132
movq %r12, %rdi
callq 0x11b132
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x340310
testl %eax, %eax
jne 0x33fec5
movq 0x8(%rsp), %rax
movq (%rax), %r13
movq %r14, %rdi
callq 0x11b0a1
movq %rax, %r14
movq %r12, %rdi
callq 0x11b0a1
testq %r13, %r13
je 0x340045
testq %r14, %r14
je 0x340045
movq %rax, %rbp
testq %rax, %rax
je 0x340045
movl $0x10, %edi
leaq 0xaa378(%rip), %rsi     # 0x3e9eb5
movl $0x45, %edx
callq 0x104226
movq %rax, %r12
movq %rax, 0x18(%rsp)
movq %r14, %rdi
callq 0xe4290
movq %rax, (%r12)
movq %rbp, %rdi
callq 0xe4290
movq %rax, 0x8(%r12)
movq (%r13), %rdi
movl $0x8, %edx
leaq 0x18(%rsp), %rsi
callq 0xd2410
movq %rbx, %rdi
xorl %esi, %esi
callq 0x340416
testb %al, %al
movq (%rsp), %r14
movq 0x10(%rsp), %r12
jne 0x33facf
movq 0x8(%rsp), %rax
movq (%rax), %r12
movq %rbx, %rdi
callq 0x103bee
movq %rax, %r14
testq %r15, %r15
je 0x33fbbe
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x340068
testq %r12, %r12
je 0x340063
testq %r14, %r14
je 0x340063
movq %r14, 0x20(%rsp)
movq (%r12), %rdi
callq 0xd24e0
testq %rax, %rax
je 0x33fea6
xorl %ebp, %ebp
leaq 0xaa425(%rip), %r14     # 0x3ea015
movq (%r12), %rdi
movq %rbp, %rsi
callq 0xd2207
movq (%rax), %r13
movq (%r13), %rdi
movq %r14, %rsi
callq 0x17a40
testl %eax, %eax
je 0x33fc25
incq %rbp
movq (%r12), %rdi
callq 0xd24e0
cmpq %rax, %rbp
jb 0x33fbf0
jmp 0x33fea6
cmpq $0x0, 0x8(%r13)
je 0x33fea6
movq 0x10(%rsp), %rdi
callq 0x11bdbf
movq (%rsp), %rdi
callq 0x11bdbf
movq %rbx, %rdi
callq 0x103b36
movq %rbx, %rdi
testb %al, %al
je 0x33feda
callq 0x103b7b
movzbl %al, %eax
cmpl $0x1f, %eax
jg 0x33fc98
cmpl $0xa, %eax
je 0x33fe6f
cmpl $0xd, %eax
jne 0x33fcb6
movq %rbx, %rdi
callq 0x103bb4
movq %rbx, %rdi
callq 0x103b7b
xorl %ebp, %ebp
cmpb $0xa, %al
jne 0x33fe88
movq %rbx, %rdi
callq 0x103bb4
jmp 0x33fe88
cmpl $0x21, %eax
je 0x33fe7b
cmpl $0x20, %eax
jne 0x33fcb6
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3401f6
jmp 0x33fe86
testq %r15, %r15
je 0x33fccb
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x340072
callq 0x11ac6c
movq %rax, %r13
callq 0x11ac6c
movq %rax, (%rsp)
callq 0x11ac6c
movq %rax, %r12
movq %rbx, %rdi
callq 0x103bde
movq %rax, %r14
testq %r15, %r15
je 0x33fd04
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x340077
testq %r13, %r13
je 0x34006d
movq %rbx, %rdi
movl $0x5b, %esi
movq %r15, %rdx
callq 0x103c1b
testl %eax, %eax
je 0x33fd44
movl %eax, %ebp
movq (%rsp), %r14
movq %r12, %rdi
callq 0x11bdbf
movq %r14, %rdi
callq 0x11bdbf
movq %r13, %rdi
callq 0x11bdbf
jmp 0x33fe88
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
movq %r15, %rcx
callq 0x34046b
testl %eax, %eax
jne 0x33fe95
movq %rbx, %rdi
xorl %esi, %esi
callq 0x340416
testb %al, %al
jne 0x33fd44
movq %rbx, %rdi
movl $0x5d, %esi
movq %r15, %rdx
callq 0x103c1b
testl %eax, %eax
jne 0x33fd21
movq %rbx, %rdi
movl $0xa, %esi
movq %r15, %rdx
callq 0x103c1b
testl %eax, %eax
jne 0x33fd21
movq %r13, %rdi
callq 0x11b0a1
movq %rax, %rbp
movq %rbx, %rdi
callq 0x103c06
movq %rbp, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x340618
movq %rax, 0x18(%rsp)
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x340081
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x8, %edx
leaq 0x18(%rsp), %rsi
callq 0xd2410
movq (%rsp), %r14
movq %rbx, %rdi
xorl %esi, %esi
callq 0x340416
testb %al, %al
jne 0x33fe00
movq %rbx, %rdi
callq 0x103b7b
cmpb $0x21, %al
jne 0x33fe9f
movq %r14, %rdi
callq 0x11b132
movq %r12, %rdi
callq 0x11b132
movq %rbx, %rdi
callq 0x103b7b
movq %rbx, %rdi
cmpb $0x21, %al
jne 0x33fe2b
movq %r15, %rsi
callq 0x340293
movl %eax, %ebp
jmp 0x33fe62
movq %r14, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x340310
movl %eax, %ebp
movq %r14, %rdi
callq 0x11b0a1
movq %rax, %r14
movq %r12, %rdi
callq 0x11b0a1
movq 0x10(%rsp), %rdi
movq %r14, %rsi
movq (%rsp), %r14
movq %rax, %rdx
callq 0x3406d9
testl %ebp, %ebp
je 0x33fde2
jmp 0x33fd27
movq %rbx, %rdi
callq 0x103bb4
xorl %ebp, %ebp
jmp 0x33fe88
movq %rbx, %rdi
movq %r15, %rsi
callq 0x340293
movl %eax, %ebp
testl %ebp, %ebp
je 0x33fc43
jmp 0x33fa7a
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x33fd23
xorl %ebp, %ebp
jmp 0x33fd27
leaq 0xaa177(%rip), %rsi     # 0x3ea024
movq %r15, %rdi
movq 0x20(%rsp), %rdx
xorl %eax, %eax
callq 0xfcb67
movq (%rsp), %r14
movq 0x10(%rsp), %r12
movq %r12, %rdi
callq 0x11bdbf
movq %r14, %rdi
callq 0x11bdbf
jmp 0x33fa7a
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movq %r15, %rdx
callq 0x103c1b
testl %eax, %eax
jne 0x33fa7a
testq %r15, %r15
je 0x33ff04
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x34007c
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xd24e0
testq %rax, %rax
je 0x340036
xorl %r12d, %r12d
leaq 0x9f0f4(%rip), %r13     # 0x3df019
movq 0x8(%rsp), %r14
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd2207
movq (%rax), %rbp
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd2207
movq (%rax), %rdi
callq 0x34075d
movq %rax, %rdi
movq %r13, %rsi
callq 0x17a40
testl %eax, %eax
je 0x33ffe3
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd2207
movq (%rax), %rdi
callq 0x34075d
movq %rax, %rdi
leaq 0xaa156(%rip), %rsi     # 0x3ea0d4
callq 0x17a40
testl %eax, %eax
je 0x33ffe3
movq 0x8(%r14), %rdi
movq %r12, %rsi
callq 0xd2207
movq (%rax), %rdi
callq 0x34075d
movq %rax, %rdi
leaq 0xaa137(%rip), %rsi     # 0x3ea0dc
callq 0x17a40
testl %eax, %eax
jne 0x340017
movq %rbp, %rdi
leaq 0x9f27d(%rip), %rsi     # 0x3df235
movq %r15, %rdx
callq 0x34057d
testl %eax, %eax
jne 0x33fa7a
movq %rbp, %rdi
leaq 0x4278d(%rip), %rsi     # 0x38275f
movq %r15, %rdx
callq 0x34057d
leaq 0xaa104(%rip), %rsi     # 0x3ea0e5
jmp 0x33fffc
movq %rbp, %rdi
leaq 0x9f248(%rip), %rsi     # 0x3df235
movq %r15, %rdx
callq 0x34057d
leaq 0x42763(%rip), %rsi     # 0x38275f
testl %eax, %eax
jne 0x33fa7a
movq %rbp, %rdi
movq %r15, %rdx
callq 0x34057d
testl %eax, %eax
jne 0x33fa7a
incq %r12
movq 0x8(%rsp), %r14
movq 0x8(%r14), %rdi
callq 0xd24e0
cmpq %rax, %r12
jb 0x33ff2a
jmp 0x33fa87
movq 0x8(%rsp), %r14
jmp 0x33fa87
callq 0x96f62
callq 0x96fd4
callq 0x971cd
callq 0x97194
callq 0x96ef0
callq 0x96f29
callq 0x96f9b
callq 0x97042
callq 0x9700b
callq 0x9715b
callq 0x970b2
callq 0x970eb
callq 0x97079
callq 0x97124