LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/samtools-0.1.18/razf.c
// Function: razf_skip
int razf_skip(RAZF* rz, int size){
	int ori_size;
	ori_size = size;
	while(size > 0){
		if(rz->buf_len){
			if(size < rz->buf_len){
				rz->buf_off += size;
				rz->buf_len -= size;
				rz->block_off += size;
				size = 0;
				break;
			} else {
				size -= rz->buf_len;
				rz->buf_off = 0;
				rz->buf_len = 0;
				rz->block_off += rz->buf_len;
				if(rz->buf_flush){
					rz->block_pos = rz->next_block_pos;
					rz->block_off = 0;
					rz->buf_flush = 0;
				}
			}
		} else if(rz->buf_flush){
			rz->block_pos = rz->next_block_pos;
			rz->block_off = 0;
			rz->buf_flush = 0;
		}
		if(rz->buf_flush) continue;
		rz->buf_len = _razf_read(rz, rz->outbuf, RZ_BUFFER_SIZE);
		if(rz->z_eof || rz->z_err) break;
	}
	rz->out += ori_size - size;
	return ori_size - size;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl %esi, 0xc(%rsp)
movl 0xc(%rsp), %eax
movl %eax, 0x8(%rsp)
cmpl $0x0, 0xc(%rsp)
jle 0x4fcc74
movq 0x10(%rsp), %rax
cmpl $0x0, 0x84(%rax)
je 0x4fcbe4
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x84(%rcx), %eax
jge 0x4fcb5e
movl 0xc(%rsp), %ecx
movq 0x10(%rsp), %rax
addl 0x80(%rax), %ecx
movl %ecx, 0x80(%rax)
movl 0xc(%rsp), %edx
movq 0x10(%rsp), %rax
movl 0x84(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x84(%rax)
movslq 0xc(%rsp), %rcx
movq 0x10(%rsp), %rax
addq 0x50(%rax), %rcx
movq %rcx, 0x50(%rax)
movl $0x0, 0xc(%rsp)
jmp 0x4fcc74
movq 0x10(%rsp), %rax
movl 0x84(%rax), %ecx
movl 0xc(%rsp), %eax
subl %ecx, %eax
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rax
movl $0x0, 0x80(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x84(%rax)
movq 0x10(%rsp), %rax
movslq 0x84(%rax), %rcx
movq 0x10(%rsp), %rax
addq 0x50(%rax), %rcx
movq %rcx, 0x50(%rax)
movq 0x10(%rsp), %rax
cmpl $0x0, 0x40(%rax)
je 0x4fcbe0
movq 0x10(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x40(%rax)
jmp 0x4fcbe2
jmp 0x4fcc1c
movq 0x10(%rsp), %rax
cmpl $0x0, 0x40(%rax)
je 0x4fcc1a
movq 0x10(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x40(%rax)
jmp 0x4fcc1c
movq 0x10(%rsp), %rax
cmpl $0x0, 0x40(%rax)
je 0x4fcc2c
jmp 0x4fcae5
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x4fc7c0
movl %eax, %ecx
movq 0x10(%rsp), %rax
movl %ecx, 0x84(%rax)
movq 0x10(%rsp), %rax
cmpl $0x0, 0x8c(%rax)
jne 0x4fcc6d
movq 0x10(%rsp), %rax
cmpl $0x0, 0x88(%rax)
je 0x4fcc6f
jmp 0x4fcc74
jmp 0x4fcae5
movl 0x8(%rsp), %eax
subl 0xc(%rsp), %eax
movslq %eax, %rcx
movq 0x10(%rsp), %rax
addq 0x28(%rax), %rcx
movq %rcx, 0x28(%rax)
movl 0x8(%rsp), %eax
subl 0xc(%rsp), %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/samtools-0.1.18/razf.c
// Function: razf_jump
int64_t razf_jump(RAZF *rz, int64_t block_start, int block_offset){
	int64_t pos;
	rz->z_eof = 0;
	if(rz->file_type == FILE_TYPE_PLAIN){
		rz->buf_off = rz->buf_len = 0;
		pos = block_start + block_offset;
#ifdef _USE_KNETFILE
		knet_seek(rz->x.fpr, pos, SEEK_SET);
        pos = knet_tell(rz->x.fpr);
#else
		pos = lseek(rz->filedes, pos, SEEK_SET);
#endif
		rz->out = rz->in = pos;
		return pos;
	}
	if(block_start == rz->block_pos && block_offset >= rz->block_off) {
		block_offset -= rz->block_off;
		goto SKIP; // Needn't reset inflate
	}
	if(block_start  == 0) block_start = rz->header_size; // Automaticly revist wrong block_start
	_razf_reset_read(rz, block_start, 0);
	SKIP:
	if(block_offset) razf_skip(rz, block_offset);
	return rz->block_off;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movl %edx, 0xc(%rsp)
movq 0x18(%rsp), %rax
movl $0x0, 0x8c(%rax)
movq 0x18(%rsp), %rax
cmpl $0x2, 0x4(%rax)
jne 0x4fcd36
movq 0x18(%rsp), %rax
movl $0x0, 0x84(%rax)
movq 0x18(%rsp), %rax
movl $0x0, 0x80(%rax)
movq 0x10(%rsp), %rax
movslq 0xc(%rsp), %rcx
addq %rcx, %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rax
movl 0x8(%rax), %edi
movq (%rsp), %rsi
xorl %edx, %edx
callq 0x19660
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x18(%rsp), %rax
movq %rcx, 0x28(%rax)
movq (%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0x4fcdb9
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
cmpq 0x48(%rcx), %rax
jne 0x4fcd6d
movslq 0xc(%rsp), %rax
movq 0x18(%rsp), %rcx
cmpq 0x50(%rcx), %rax
jl 0x4fcd6d
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rcx
movslq 0xc(%rsp), %rax
subq %rcx, %rax
movl %eax, 0xc(%rsp)
jmp 0x4fcd96
cmpq $0x0, 0x10(%rsp)
jne 0x4fcd83
movq 0x18(%rsp), %rax
movslq 0x70(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x4fcdd0
cmpl $0x0, 0xc(%rsp)
je 0x4fcdab
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0x4fcad0
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/samtools-0.1.18/razf.c
// Function: razf_reset_read
static void _razf_reset_read(RAZF *rz, int64_t in, int64_t out){
#ifdef _USE_KNETFILE
	knet_seek(rz->x.fpr, in, SEEK_SET);
#else
	lseek(rz->filedes, in, SEEK_SET);
#endif
	rz->in  = in;
	rz->out = out;
	rz->block_pos = in;
	rz->next_block_pos = in;
	rz->block_off = 0;
	rz->buf_flush = 0;
	rz->z_eof = rz->z_err = 0;
	inflateReset(rz->stream);
	rz->stream->avail_in = 0;
	rz->buf_off = rz->buf_len = 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
movq 0x10(%rsp), %rax
movl 0x8(%rax), %edi
movq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x19660
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x58(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x40(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x88(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x8c(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x3b9b10
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movl $0x0, 0x8(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x84(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x80(%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/samtools-0.1.18/razf.c
// Function: razf_end_flush
static void razf_end_flush(RAZF *rz){
	uint32_t tout;
	if(rz->buf_len){
		_razf_write(rz, rz->inbuf, rz->buf_len);
		rz->buf_off = rz->buf_len = 0;
	}
	while(1){
		tout = rz->stream->avail_out;
		deflate(rz->stream, Z_FINISH);
		rz->out += tout - rz->stream->avail_out;
		if(rz->stream->avail_out < RZ_BUFFER_SIZE){
#ifdef _USE_KNETFILE        
			write(rz->x.fpw, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
#else            
			write(rz->filedes, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
#endif
			rz->stream->avail_out = RZ_BUFFER_SIZE;
			rz->stream->next_out  = rz->outbuf;
		} else break;
	}
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpl $0x0, 0x84(%rax)
je 0x4fd3f3
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x60(%rax), %rsi
movq 0x10(%rsp), %rax
movl 0x84(%rax), %edx
callq 0x4fd6c0
movq 0x10(%rsp), %rax
movl $0x0, 0x84(%rax)
movq 0x10(%rsp), %rax
movl $0x0, 0x80(%rax)
jmp 0x4fd3f5
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movl 0x20(%rax), %eax
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
movl $0x4, %esi
callq 0x3b13f0
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
subl 0x20(%rcx), %eax
movl %eax, %eax
movl %eax, %ecx
movq 0x10(%rsp), %rax
addq 0x28(%rax), %rcx
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
cmpl $0x1000, 0x20(%rax)     # imm = 0x1000
jae 0x4fd49e
movq 0x10(%rsp), %rax
movl 0x8(%rax), %edi
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rsi
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rcx
movl $0x1000, %eax           # imm = 0x1000
subl 0x20(%rcx), %eax
movl %eax, %eax
movl %eax, %edx
callq 0x19230
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movl $0x1000, 0x20(%rax)     # imm = 0x1000
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x18(%rax)
jmp 0x4fd4a0
jmp 0x4fd4a5
jmp 0x4fd3f5
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/samtools-0.1.18/razf.c
// Function: save_zindex
static void save_zindex(RAZF *rz, int fd){
	int32_t i, v32;
	int is_be;
	is_be = is_big_endian();
	if(is_be) write(fd, &rz->index->size, sizeof(int));
	else {
		v32 = byte_swap_4((uint32_t)rz->index->size);
		write(fd, &v32, sizeof(uint32_t));
	}
	v32 = rz->index->size / RZ_BIN_SIZE + 1;
	if(!is_be){
		for(i=0;i<v32;i++) rz->index->bin_offsets[i]  = byte_swap_8((uint64_t)rz->index->bin_offsets[i]);
		for(i=0;i<rz->index->size;i++) rz->index->cell_offsets[i] = byte_swap_4((uint32_t)rz->index->cell_offsets[i]);
	}
	write(fd, rz->index->bin_offsets, sizeof(int64_t) * v32);
	write(fd, rz->index->cell_offsets, sizeof(int32_t) * rz->index->size);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl %esi, 0xc(%rsp)
callq 0x4fdc90
movl %eax, (%rsp)
cmpl $0x0, (%rsp)
je 0x4fd4e8
movl 0xc(%rsp), %edi
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rsi
addq $0x10, %rsi
movl $0x4, %edx
callq 0x19230
jmp 0x4fd510
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %edi
callq 0x4fdc50
movl %eax, 0x4(%rsp)
movl 0xc(%rsp), %edi
leaq 0x4(%rsp), %rsi
movl $0x4, %edx
callq 0x19230
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movslq 0x10(%rax), %rax
shrq $0x11, %rax
addq $0x1, %rax
movl %eax, 0x4(%rsp)
cmpl $0x0, (%rsp)
jne 0x4fd5de
movl $0x0, 0x8(%rsp)
movl 0x8(%rsp), %eax
cmpl 0x4(%rsp), %eax
jge 0x4fd586
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movslq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x4fd630
movq %rax, %rdx
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movslq 0x8(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0x4fd53b
movl $0x0, 0x8(%rsp)
movl 0x8(%rsp), %eax
movq 0x10(%rsp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x10(%rcx), %eax
jge 0x4fd5dc
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movslq 0x8(%rsp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x4fdc50
movl %eax, %edx
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movslq 0x8(%rsp), %rcx
movl %edx, (%rax,%rcx,4)
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0x4fd58e
jmp 0x4fd5de
movl 0xc(%rsp), %edi
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rsi
movslq 0x4(%rsp), %rdx
shlq $0x3, %rdx
callq 0x19230
movl 0xc(%rsp), %edi
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rsi
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movslq 0x10(%rax), %rdx
shlq $0x2, %rdx
callq 0x19230
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/samtools-0.1.18/razf.c
// Function: razf_write
static void _razf_write(RAZF* rz, const void *data, int size){
	int tout;
	rz->stream->avail_in = size;
	rz->stream->next_in  = (void*)data;
	while(1){
		tout = rz->stream->avail_out;
		deflate(rz->stream, Z_NO_FLUSH);
		rz->out += tout - rz->stream->avail_out;
		if(rz->stream->avail_out) break;
#ifdef _USE_KNETFILE
		write(rz->x.fpw, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
#else
		write(rz->filedes, rz->outbuf, RZ_BUFFER_SIZE - rz->stream->avail_out);
#endif
		rz->stream->avail_out = RZ_BUFFER_SIZE;
		rz->stream->next_out  = rz->outbuf;
		if(rz->stream->avail_in == 0) break;
	};
	rz->in += size - rz->stream->avail_in;
	rz->block_off += size - rz->stream->avail_in;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl %edx, 0x4(%rsp)
movl 0x4(%rsp), %ecx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movl %ecx, 0x8(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movl 0x20(%rax), %eax
movl %eax, (%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
xorl %esi, %esi
callq 0x3b13f0
movl (%rsp), %eax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
subl 0x20(%rcx), %eax
movl %eax, %eax
movl %eax, %ecx
movq 0x10(%rsp), %rax
addq 0x28(%rax), %rcx
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x20(%rax)
je 0x4fd743
jmp 0x4fd7aa
movq 0x10(%rsp), %rax
movl 0x8(%rax), %edi
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rsi
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rcx
movl $0x1000, %eax           # imm = 0x1000
subl 0x20(%rcx), %eax
movl %eax, %eax
movl %eax, %edx
callq 0x19230
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movl $0x1000, 0x20(%rax)     # imm = 0x1000
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x8(%rax)
jne 0x4fd7a5
jmp 0x4fd7aa
jmp 0x4fd6f3
movl 0x4(%rsp), %eax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
subl 0x8(%rcx), %eax
movl %eax, %eax
movl %eax, %ecx
movq 0x10(%rsp), %rax
addq 0x20(%rax), %rcx
movq %rcx, 0x20(%rax)
movl 0x4(%rsp), %eax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
subl 0x8(%rcx), %eax
movl %eax, %eax
movl %eax, %ecx
movq 0x10(%rsp), %rax
addq 0x50(%rax), %rcx
movq %rcx, 0x50(%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/bool_matrix.c
// Function: gt_bool_matrix_get
bool gt_bool_matrix_get(GtBoolMatrix *bm, GtUword firstdim,
                        GtUword seconddim)
{
  GtDynBittab *bt;
  gt_assert(bm);
  if (firstdim < gt_array_size(bm->dyn_bittabs)) {
    bt = *(GtDynBittab**) gt_array_get(bm->dyn_bittabs, firstdim);
    if (bt && gt_dyn_bittab_bit_is_set(bt, seconddim))
      return true;
  }
  return false;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x50ab83
movq 0x13144e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xb4b7(%rip), %rsi      # 0x516013
leaq 0xb92c4(%rip), %rdx     # 0x5c3e27
leaq 0xb92c0(%rip), %rcx     # 0x5c3e2a
leaq 0xb929f(%rip), %r8      # 0x5c3e10
movl $0x28, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50ab85
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x50abe9
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x50abe7
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xa8680
testb $0x1, %al
jne 0x50abe0
jmp 0x50abe7
movb $0x1, 0x37(%rsp)
jmp 0x50abee
jmp 0x50abe9
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/bool_matrix.c
// Function: gt_bool_matrix_set
void gt_bool_matrix_set(GtBoolMatrix *bm, GtUword firstdim,
                        GtUword seconddim, bool b)
{
  GtDynBittab *bt;
  GtUword i, elems_to_add;

  gt_assert(bm);
  /* make sure first dimension is large enough */
  if (firstdim >= gt_array_size(bm->dyn_bittabs)) {
    elems_to_add = firstdim - gt_array_size(bm->dyn_bittabs) + 1;
    for (i = 0; i < elems_to_add; i++) {
      bt = gt_dyn_bittab_new();
      gt_array_add(bm->dyn_bittabs, bt);
    }
  }

  /* set bit, if necessary */
  bt = *(GtDynBittab**) gt_array_get(bm->dyn_bittabs, firstdim);
  gt_assert(bt);
  if (b)
    gt_dyn_bittab_set_bit(bt, seconddim);
  else
    gt_dyn_bittab_unset_bit(bt, seconddim);

  /* value has been set */
  gt_assert(gt_bool_matrix_get(bm, firstdim, seconddim) == b);
}

// Assembly:
subq $0x48, %rsp
movb %cl, %al
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
andb $0x1, %al
movb %al, 0x2f(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x50ac5b
movq 0x131376(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xb3df(%rip), %rsi      # 0x516013
leaq 0xb91ec(%rip), %rdx     # 0x5c3e27
leaq 0xb91fb(%rip), %rcx     # 0x5c3e3d
leaq 0xb91c7(%rip), %r8      # 0x5c3e10
movl $0x37, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50ac5d
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jb 0x50acf2
movq 0x38(%rsp), %rax
movq %rax, (%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq (%rsp), %rax
subq %rcx, %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x50acf0
callq 0xa8450
movq %rax, 0x20(%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rdi
leaq 0x20(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x50acb3
jmp 0x50acf2
movq 0x40(%rsp), %rax
movq (%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x50ad4c
movq 0x131285(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xb2ee(%rip), %rsi      # 0x516013
leaq 0x71613(%rip), %rdx     # 0x57c33f
leaq 0xb910a(%rip), %rcx     # 0x5c3e3d
leaq 0xb90d6(%rip), %r8      # 0x5c3e10
movl $0x43, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50ad4e
testb $0x1, 0x2f(%rsp)
je 0x50ad66
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xa8470
jmp 0x50ad75
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xa85e0
jmp 0x50ad77
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
callq 0x50ab30
andb $0x1, %al
movzbl %al, %eax
movb 0x2f(%rsp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x50add6
movq 0x1311fb(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xb264(%rip), %rsi      # 0x516013
leaq 0xb909a(%rip), %rdx     # 0x5c3e50
leaq 0xb9080(%rip), %rcx     # 0x5c3e3d
leaq 0xb904c(%rip), %r8      # 0x5c3e10
movl $0x4a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50add8
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/bool_matrix.c
// Function: gt_bool_matrix_get_first_column
GtUword gt_bool_matrix_get_first_column(const GtBoolMatrix *bm,
                                              GtUword firstdim)
{
  GtDynBittab *bt;
  gt_assert(bm);
  if (firstdim < gt_array_size(bm->dyn_bittabs)) {
    if ((bt = *(GtDynBittab**) gt_array_get(bm->dyn_bittabs, firstdim)))
      return gt_dyn_bittab_get_first_bitnum(bt);
  }
  return GT_UNDEF_UWORD;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x50ae2e
movq 0x1311a3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xb20c(%rip), %rsi      # 0x516013
leaq 0xb9019(%rip), %rdx     # 0x5c3e27
leaq 0xb906c(%rip), %rcx     # 0x5c3e81
leaq 0xb8ff4(%rip), %r8      # 0x5c3e10
movl $0x51, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50ae30
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x50ae85
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
je 0x50ae83
movq 0x8(%rsp), %rdi
callq 0xa8730
movq %rax, 0x20(%rsp)
jmp 0x50ae8e
jmp 0x50ae85
movq $-0x1, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/bool_matrix.c
// Function: gt_bool_matrix_get_last_column
GtUword gt_bool_matrix_get_last_column(const GtBoolMatrix *bm,
                                             GtUword firstdim)
{
  GtDynBittab *bt;
  gt_assert(bm);
  if (firstdim < gt_array_size(bm->dyn_bittabs)) {
    if ((bt = *(GtDynBittab**) gt_array_get(bm->dyn_bittabs, firstdim)))
      return gt_dyn_bittab_get_last_bitnum(bt);
  }
  return GT_UNDEF_UWORD;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x50aeee
movq 0x1310e3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xb14c(%rip), %rsi      # 0x516013
leaq 0xb8f59(%rip), %rdx     # 0x5c3e27
leaq 0xb8fcc(%rip), %rcx     # 0x5c3ea1
leaq 0xb8f34(%rip), %r8      # 0x5c3e10
movl $0x5d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50aef0
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x50af45
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
je 0x50af43
movq 0x8(%rsp), %rdi
callq 0xa8800
movq %rax, 0x20(%rsp)
jmp 0x50af4e
jmp 0x50af45
movq $-0x1, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/bool_matrix.c
// Function: gt_bool_matrix_get_next_column
GtUword gt_bool_matrix_get_next_column(const GtBoolMatrix *bm,
                                             GtUword firstdim,
                                             GtUword i)
{
  GtDynBittab *bt;
  gt_assert(bm);
  if (firstdim < gt_array_size(bm->dyn_bittabs)) {
    if ((bt = *(GtDynBittab**) gt_array_get(bm->dyn_bittabs, firstdim)))
      return gt_dyn_bittab_get_next_bitnum(bt, i);
  }
  return GT_UNDEF_UWORD;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x50afb3
movq 0x13101e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xb087(%rip), %rsi      # 0x516013
leaq 0xb8e94(%rip), %rdx     # 0x5c3e27
leaq 0xb8f26(%rip), %rcx     # 0x5c3ec0
leaq 0xb8e6f(%rip), %r8      # 0x5c3e10
movl $0x6a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50afb5
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x50b011
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x50b00f
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xa8850
movq %rax, 0x30(%rsp)
jmp 0x50b01a
jmp 0x50b011
movq $-0x1, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/bool_matrix.c
// Function: gt_bool_matrix_delete
void gt_bool_matrix_delete(GtBoolMatrix *bm)
{
  GtUword i;
  if (!bm) return;
  for (i = 0; i < gt_array_size(bm->dyn_bittabs); i++)
    gt_dyn_bittab_delete(*(GtDynBittab**) gt_array_get(bm->dyn_bittabs, i));
  gt_array_delete(bm->dyn_bittabs);
  gt_free(bm);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x50b043
jmp 0x50b0bb
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x50b098
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
callq 0xa90f0
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x50b04c
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x81f80
movq 0x10(%rsp), %rdi
leaq 0xb8d5f(%rip), %rsi     # 0x5c3e10
movl $0x79, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x50b11e
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50b0e6
jmp 0x50b11e
movq 0x130eb3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xaf1c(%rip), %rsi      # 0x516013
leaq 0xb0c1(%rip), %rdx      # 0x5161bf
leaq 0xb8e3b(%rip), %rcx     # 0x5c3f40
leaq 0xb8e4a(%rip), %r8      # 0x5c3f56
movl $0x1a6, %r9d            # imm = 0x1A6
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50b120
jmp 0x50b122
cmpq $0x0, 0x18(%rsp)
jne 0x50b162
movq 0x130e6f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xaed8(%rip), %rsi      # 0x516013
leaq 0xa93ab(%rip), %rdx     # 0x5b44ed
leaq 0xb8df7(%rip), %rcx     # 0x5c3f40
leaq 0xb8e06(%rip), %r8      # 0x5c3f56
movl $0x1a7, %r9d            # imm = 0x1A7
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50b164
movq 0x18(%rsp), %rdi
leaq 0x20e6a(%rip), %rsi     # 0x52bfda
callq 0xe6f60
movq %rax, (%rsp)
movl $0x10, %edi
leaq 0xb8dd1(%rip), %rsi     # 0x5c3f56
movl $0x1a9, %edx            # imm = 0x1A9
callq 0xe80f0
movq %rax, 0x8(%rsp)
callq 0x50b210
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movl $0x8, %edi
callq 0x80990
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x50b250
cmpl $0x0, %eax
je 0x50b1f0
movq 0x8(%rsp), %rdi
callq 0x50b480
movq (%rsp), %rdi
callq 0xe7090
movq $0x0, 0x20(%rsp)
jmp 0x50b203
movq (%rsp), %rdi
callq 0xe7090
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: gt_obo_parse_tree_delete
void gt_obo_parse_tree_delete(GtOBOParseTree *obo_parse_tree)
{
  GtUword i;
  if (!obo_parse_tree) return;
  for (i = 0; i < gt_array_size(obo_parse_tree->stanzas); i++) {
    gt_obo_stanza_delete(*(GtOBOStanza**)
                         gt_array_get(obo_parse_tree->stanzas, i));
  }
  gt_array_delete(obo_parse_tree->stanzas);
  obo_header_delete(obo_parse_tree->obo_header);
  gt_free(obo_parse_tree);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x50b496
jmp 0x50b51e
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x50b4ed
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
callq 0x50cd30
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x50b49f
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x81f80
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x50b530
movq 0x10(%rsp), %rdi
leaq 0xb8a42(%rip), %rsi     # 0x5c3f56
movl $0x1bf, %edx            # imm = 0x1BF
callq 0xe88c0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: obo_header_delete
static void obo_header_delete(OBOHeader *obo_header)
{
  GtUword i;
  if (!obo_header) return;
  for (i = 0; i < gt_array_size(obo_header->content); i++) {
    OBOHeaderEntry *entry = *(OBOHeaderEntry**)
                            gt_array_get(obo_header->content, i);
    gt_free(entry->value);
    gt_free(entry->tag);
    gt_free(entry);
  }
  gt_array_delete(obo_header->content);
  gt_free(obo_header);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x50b546
jmp 0x50b60c
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x50b5e9
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0xb89b9(%rip), %rsi     # 0x5c3f56
movl $0x38, %edx
callq 0xe88c0
movq 0x10(%rsp), %rax
movq (%rax), %rdi
leaq 0xb89a0(%rip), %rsi     # 0x5c3f56
movl $0x39, %edx
callq 0xe88c0
movq 0x10(%rsp), %rdi
leaq 0xb898a(%rip), %rsi     # 0x5c3f56
movl $0x3a, %edx
callq 0xe88c0
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x50b54f
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x81f80
movq 0x20(%rsp), %rdi
leaq 0xb8954(%rip), %rsi     # 0x5c3f56
movl $0x3d, %edx
callq 0xe88c0
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: gt_obo_parse_tree_get_stanza_type
const char* gt_obo_parse_tree_get_stanza_type(const GtOBOParseTree
                                              *obo_parse_tree,
                                              GtUword stanza_num)
{
  gt_assert(obo_parse_tree);
  return gt_obo_stanza_get_type(*(GtOBOStanza**)
                                gt_array_get(obo_parse_tree->stanzas,
                                             stanza_num));
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x50b66e
movq 0x130963(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xa9cc(%rip), %rsi      # 0x516013
leaq 0xb8926(%rip), %rdx     # 0x5c3f74
leaq 0xb892e(%rip), %rcx     # 0x5c3f83
leaq 0xb88fa(%rip), %r8      # 0x5c3f56
movl $0x1c6, %r9d            # imm = 0x1C6
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50b670
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
callq 0x50ce70
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: gt_obo_parse_tree_get_stanza_value
const char* gt_obo_parse_tree_get_stanza_value(const GtOBOParseTree
                                               *obo_parse_tree,
                                               GtUword stanza_num,
                                               const char *stanza_key)
{
  gt_assert(obo_parse_tree);
  return gt_obo_stanza_get_value(*(GtOBOStanza**)
                                 gt_array_get(obo_parse_tree->stanzas,
                                              stanza_num), stanza_key, 0);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x50b6e2
movq 0x1308ef(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xa958(%rip), %rsi      # 0x516013
leaq 0xb88b2(%rip), %rdx     # 0x5c3f74
leaq 0xb88dc(%rip), %rcx     # 0x5c3fa5
leaq 0xb8886(%rip), %r8      # 0x5c3f56
movl $0x1d1, %r9d            # imm = 0x1D1
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50b6e4
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
movq (%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x50cec0
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: ignored_char
static bool ignored_char(GtIO *obo_file)
{
  char cc = gt_io_peek(obo_file);
  if ((cc == OBO_BLANK_CHAR) || (cc == OBO_COMMENT_CHAR) ||
      (cc == GT_CARRIAGE_RETURN) || (cc == GT_END_OF_LINE))
    return true;
  return false;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0xe7300
movb %al, 0x7(%rsp)
movsbl 0x7(%rsp), %eax
cmpl $0x20, %eax
je 0x50b81f
movsbl 0x7(%rsp), %eax
cmpl $0x21, %eax
je 0x50b81f
movsbl 0x7(%rsp), %eax
cmpl $0xd, %eax
je 0x50b81f
movsbl 0x7(%rsp), %eax
cmpl $0xa, %eax
jne 0x50b826
movb $0x1, 0x17(%rsp)
jmp 0x50b82b
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: ignored_line
static bool ignored_line(GtIO *obo_file, GtError *err)
{
  gt_error_check(err);
  if (gt_io_peek(obo_file) == OBO_BLANK_CHAR)
    return blank_line(obo_file, err);
  return comment_line(obo_file, err);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq %rsi, (%rsp)
cmpq $0x0, (%rsp)
je 0x50b89b
movq (%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50b863
jmp 0x50b89b
movq 0x130736(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xa79f(%rip), %rsi      # 0x516013
leaq 0xa944(%rip), %rdx      # 0x5161bf
leaq 0x63f31(%rip), %rcx     # 0x56f7b3
leaq 0xb86cd(%rip), %r8      # 0x5c3f56
movl $0xf2, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50b89d
movq 0x8(%rsp), %rdi
callq 0xe7300
movsbl %al, %eax
cmpl $0x20, %eax
jne 0x50b8cb
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0x50bab0
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, 0x17(%rsp)
jmp 0x50b8e5
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0x50bbf0
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: header
static int header(GtOBOParseTree *obo_parse_tree, GtIO *obo_file, GtError *err)
{
  GtStr *tag, *value;
  int had_err;
  gt_error_check(err);
  gt_assert(obo_parse_tree && obo_file);
  tag = gt_str_new();
  value = gt_str_new();
  do {
    gt_str_reset(tag);
    gt_str_reset(value);
    had_err = tag_line(obo_file, tag, value, err);
    if (!had_err) {
      obo_header_add(obo_parse_tree->obo_header, gt_str_get(tag),
                     gt_str_get(value));
    }
  } while (!had_err && any_char(obo_file, false));
  if (!had_err) {
    had_err = obo_header_validate(obo_parse_tree->obo_header,
                                  gt_io_get_filename(obo_file), err);
  }
  gt_str_delete(value);
  gt_str_delete(tag);
  return had_err;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x50b953
movq 0x40(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50b91b
jmp 0x50b953
movq 0x13067e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xa6e7(%rip), %rsi      # 0x516013
leaq 0xa88c(%rip), %rdx      # 0x5161bf
leaq 0x6fbe3(%rip), %rcx     # 0x57b51d
leaq 0xb8615(%rip), %r8      # 0x5c3f56
movl $0x130, %r9d            # imm = 0x130
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50b955
jmp 0x50b957
cmpq $0x0, 0x50(%rsp)
je 0x50b967
cmpq $0x0, 0x48(%rsp)
jne 0x50b99f
movq 0x130632(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xa69b(%rip), %rsi      # 0x516013
leaq 0xb8696(%rip), %rdx     # 0x5c4015
leaq 0x6fb97(%rip), %rcx     # 0x57b51d
leaq 0xb85c9(%rip), %r8      # 0x5c3f56
movl $0x131, %r9d            # imm = 0x131
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50b9a1
callq 0x11d4a0
movq %rax, 0x38(%rsp)
callq 0x11d4a0
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
callq 0x11e110
movq 0x30(%rsp), %rdi
callq 0x11e110
movq 0x48(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x40(%rsp), %rcx
callq 0x50c1f0
movl %eax, 0x2c(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0x50ba25
movq 0x50(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rdi
callq 0x11dee0
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rdi
callq 0x11dee0
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
callq 0x50c3f0
jmp 0x50ba27
xorl %eax, %eax
cmpl $0x0, 0x2c(%rsp)
movb %al, 0x17(%rsp)
jne 0x50ba44
movq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x50c4c0
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x50b9b5
cmpl $0x0, 0x2c(%rsp)
jne 0x50ba84
movq 0x50(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
callq 0xe7440
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movq 0x40(%rsp), %rdx
callq 0x50c560
movl %eax, 0x2c(%rsp)
movq 0x30(%rsp), %rdi
callq 0x11f560
movq 0x38(%rsp), %rdi
callq 0x11f560
movl 0x2c(%rsp), %eax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: blank_line
static int blank_line(GtIO *obo_file, GtError *err)
{
  int had_err;
  gt_error_check(err);
  had_err = gt_io_expect(obo_file, OBO_BLANK_CHAR, err);
  while (!had_err) {
    char cc = gt_io_peek(obo_file);
    if (cc == OBO_COMMENT_CHAR)
      return comment_line(obo_file, err);
    else if (cc == GT_CARRIAGE_RETURN) {
      gt_io_next(obo_file);
      if (gt_io_peek(obo_file) == GT_END_OF_LINE)
        gt_io_next(obo_file);
      break;
    }
    else if ((cc == GT_END_OF_LINE) || (cc == GT_END_OF_FILE)) {
      gt_io_next(obo_file);
      break;
    }
    else
      had_err = gt_io_expect(obo_file, OBO_BLANK_CHAR, err);
  }
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x50bb0e
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50bad6
jmp 0x50bb0e
movq 0x1304c3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xa52c(%rip), %rsi      # 0x516013
leaq 0xa6d1(%rip), %rdx      # 0x5161bf
leaq 0x63cea(%rip), %rcx     # 0x56f7df
leaq 0xb845a(%rip), %r8      # 0x5c3f56
movl $0xda, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50bb10
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0x20, %esi
callq 0xe7500
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x50bb3b
jmp 0x50bbdb
movq 0x18(%rsp), %rdi
callq 0xe7300
movb %al, 0xb(%rsp)
movsbl 0xb(%rsp), %eax
cmpl $0x21, %eax
jne 0x50bb68
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x50bbf0
movl %eax, 0x24(%rsp)
jmp 0x50bbe3
movsbl 0xb(%rsp), %eax
cmpl $0xd, %eax
jne 0x50bb9a
movq 0x18(%rsp), %rdi
callq 0xe7380
movq 0x18(%rsp), %rdi
callq 0xe7300
movsbl %al, %eax
cmpl $0xa, %eax
jne 0x50bb98
movq 0x18(%rsp), %rdi
callq 0xe7380
jmp 0x50bbdb
movsbl 0xb(%rsp), %eax
cmpl $0xa, %eax
je 0x50bbae
movsbl 0xb(%rsp), %eax
cmpl $-0x1, %eax
jne 0x50bbba
movq 0x18(%rsp), %rdi
callq 0xe7380
jmp 0x50bbdb
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0x20, %esi
callq 0xe7500
movl %eax, 0xc(%rsp)
jmp 0x50bbd4
jmp 0x50bbd6
jmp 0x50bb28
movl 0xc(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: comment_line
static int comment_line(GtIO *obo_file, GtError *err)
{
  int had_err;
  gt_error_check(err);
  had_err = gt_io_expect(obo_file, OBO_COMMENT_CHAR, err);
  while (!had_err) {
    switch (gt_io_peek(obo_file)) {
      case GT_CARRIAGE_RETURN:
        gt_io_next(obo_file);
        if (gt_io_peek(obo_file) == GT_END_OF_LINE)
          gt_io_next(obo_file);
        return had_err;
      case GT_END_OF_LINE:
        gt_io_next(obo_file);
        /*@fallthrough@*/
      case GT_END_OF_FILE:
        return had_err;
      default:
        gt_io_next(obo_file);
    }
  }
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x50bc4e
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50bc16
jmp 0x50bc4e
movq 0x130383(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0xa3ec(%rip), %rsi      # 0x516013
leaq 0xa591(%rip), %rdx      # 0x5161bf
leaq 0x63bd2(%rip), %rcx     # 0x56f807
leaq 0xb831a(%rip), %r8      # 0x5c3f56
movl $0xc2, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50bc50
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0x21, %esi
callq 0xe7500
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x50bc7b
jmp 0x50bcfc
movq 0x18(%rsp), %rdi
callq 0xe7300
movsbl %al, %eax
movl %eax, 0x8(%rsp)
subl $-0x1, %eax
je 0x50bce3
jmp 0x50bc93
movl 0x8(%rsp), %eax
subl $0xa, %eax
je 0x50bcd9
jmp 0x50bc9e
movl 0x8(%rsp), %eax
subl $0xd, %eax
jne 0x50bced
jmp 0x50bca9
movq 0x18(%rsp), %rdi
callq 0xe7380
movq 0x18(%rsp), %rdi
callq 0xe7300
movsbl %al, %eax
cmpl $0xa, %eax
jne 0x50bccf
movq 0x18(%rsp), %rdi
callq 0xe7380
movl 0xc(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x50bd04
movq 0x18(%rsp), %rdi
callq 0xe7380
movl 0xc(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x50bd04
movq 0x18(%rsp), %rdi
callq 0xe7380
jmp 0x50bc68
movl 0xc(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: obo_header_add
static void obo_header_add(OBOHeader *obo_header,
                           const char *tag, const char *value)
{
  OBOHeaderEntry *entry;
  gt_assert(obo_header && tag && value);
  entry = gt_malloc(sizeof *entry);
  entry->tag = gt_cstr_dup(tag);
  entry->value = gt_cstr_dup(value);
  gt_array_add(obo_header->content, entry);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x50c41b
cmpq $0x0, 0x18(%rsp)
je 0x50c41b
cmpq $0x0, 0x10(%rsp)
jne 0x50c453
movq 0x12fb7e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x9be7(%rip), %rsi      # 0x516013
leaq 0xb7c2a(%rip), %rdx     # 0x5c405d
leaq 0xb7c3e(%rip), %rcx     # 0x5c4078
leaq 0xb7b15(%rip), %r8      # 0x5c3f56
movl $0x44, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50c455
movl $0x10, %edi
leaq 0xb7af5(%rip), %rsi     # 0x5c3f56
movl $0x45, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0xa2db0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
callq 0xa2db0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: any_char
static bool any_char(GtIO *obo_file, bool be_permissive)
{
  switch (gt_io_peek(obo_file)) {
    case OBO_BLANK_CHAR:
    case OBO_SEPARATOR_CHAR:
    case OBO_STANZA_OPEN_CHAR:
    case OBO_STANZA_CLOSE_CHAR:
      if (be_permissive)
        return true;
    case OBO_COMMENT_CHAR:
    case GT_CARRIAGE_RETURN:
    case GT_END_OF_LINE:
    case GT_END_OF_FILE:
      return false;
  }
  return true;
}

// Assembly:
subq $0x18, %rsp
movb %sil, %al
movq %rdi, 0x8(%rsp)
andb $0x1, %al
movb %al, 0x7(%rsp)
movq 0x8(%rsp), %rdi
callq 0xe7300
movsbl %al, %eax
movl %eax, (%rsp)
subl $-0x1, %eax
je 0x50c53f
jmp 0x50c4e9
movl (%rsp), %eax
subl $0xa, %eax
je 0x50c53f
jmp 0x50c4f3
movl (%rsp), %eax
subl $0xd, %eax
je 0x50c53f
jmp 0x50c4fd
movl (%rsp), %eax
subl $0x20, %eax
je 0x50c52f
jmp 0x50c507
movl (%rsp), %eax
subl $0x21, %eax
je 0x50c53f
jmp 0x50c511
movl (%rsp), %eax
subl $0x3a, %eax
je 0x50c52f
jmp 0x50c51b
movl (%rsp), %eax
subl $0x5b, %eax
je 0x50c52f
jmp 0x50c525
movl (%rsp), %eax
subl $0x5d, %eax
jne 0x50c546
jmp 0x50c52f
testb $0x1, 0x7(%rsp)
je 0x50c53d
movb $0x1, 0x17(%rsp)
jmp 0x50c54b
jmp 0x50c53f
movb $0x0, 0x17(%rsp)
jmp 0x50c54b
movb $0x1, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: obo_header_validate
static int obo_header_validate(OBOHeader *obo_header, const char *obo_filename,
                               GtError *err)
{
  gt_error_check(err);
  gt_assert(obo_header && obo_filename);
  /* make sure header contains the required tag */
  if (!obo_header_get(obo_header, "format-version")) {
    gt_error_set(err, "the header of OBO-file \"%s\" does not contain "
              "\"format-version\" tag", obo_filename);
    return -1;
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x50c5c3
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50c58b
jmp 0x50c5c3
movq 0x12fa0e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x9a77(%rip), %rsi      # 0x516013
leaq 0x9c1c(%rip), %rdx      # 0x5161bf
leaq 0xb7add(%rip), %rcx     # 0x5c4087
leaq 0xb79a5(%rip), %r8      # 0x5c3f56
movl $0x5b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50c5c5
jmp 0x50c5c7
cmpq $0x0, 0x18(%rsp)
je 0x50c5d7
cmpq $0x0, 0x10(%rsp)
jne 0x50c60f
movq 0x12f9c2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x9a2b(%rip), %rsi      # 0x516013
leaq 0xb7aac(%rip), %rdx     # 0x5c409b
leaq 0xb7a91(%rip), %rcx     # 0x5c4087
leaq 0xb7959(%rip), %r8      # 0x5c3f56
movl $0x5c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50c611
movq 0x18(%rsp), %rdi
leaq 0xb7a99(%rip), %rsi     # 0x5c40b6
callq 0x50c880
cmpq $0x0, %rax
jne 0x50c64a
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
leaq 0xb7a8c(%rip), %rsi     # 0x5c40c5
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x50c652
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: obo_header_get
static const char* obo_header_get(OBOHeader *obo_header, const char *tag)
{
  GtUword i;
  gt_assert(obo_header && tag);
  for (i = 0; i < gt_array_size(obo_header->content); i++) {
    OBOHeaderEntry *entry = *(OBOHeaderEntry**)
                            gt_array_get(obo_header->content, i);
    if (!strcmp(entry->tag, tag))
      return entry->value;
  }
  return NULL;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x50c89e
cmpq $0x0, 0x20(%rsp)
jne 0x50c8d6
movq 0x12f6fb(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x9764(%rip), %rsi      # 0x516013
leaq 0xb7851(%rip), %rdx     # 0x5c4107
leaq 0xb785c(%rip), %rcx     # 0x5c4119
leaq 0xb7692(%rip), %r8      # 0x5c3f56
movl $0x4e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50c8d8
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x50c958
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0x19980
cmpl $0x0, %eax
jne 0x50c946
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x30(%rsp)
jmp 0x50c961
jmp 0x50c948
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x50c8e1
movq $0x0, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/obo_parse_tree.c
// Function: stanza_line
static int stanza_line(GtIO *obo_file, GtStr *type, GtError *err)
{
  int had_err;
  gt_error_check(err);
  gt_assert(obo_file && type);
  had_err = gt_io_expect(obo_file, OBO_STANZA_OPEN_CHAR, err);
  if (!had_err) {
    do {
      had_err = proc_any_char(obo_file, type, false, err);
    } while (!had_err && any_char(obo_file, false));
  }
  if (!had_err)
    had_err = gt_io_expect(obo_file, OBO_STANZA_CLOSE_CHAR, err);
  if (!had_err)
    had_err = gt_io_expect(obo_file, GT_END_OF_LINE, err);
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x50c9d3
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x50c99b
jmp 0x50c9d3
movq 0x12f5fe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x9667(%rip), %rsi      # 0x516013
leaq 0x980c(%rip), %rdx      # 0x5161bf
leaq 0xb7907(%rip), %rcx     # 0x5c42c1
leaq 0xb7595(%rip), %r8      # 0x5c3f56
movl $0x149, %r9d            # imm = 0x149
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50c9d5
jmp 0x50c9d7
cmpq $0x0, 0x20(%rsp)
je 0x50c9e7
cmpq $0x0, 0x18(%rsp)
jne 0x50ca1f
movq 0x12f5b2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x961b(%rip), %rsi      # 0x516013
leaq 0xb7729(%rip), %rdx     # 0x5c4128
leaq 0xb78bb(%rip), %rcx     # 0x5c42c1
leaq 0xb7549(%rip), %r8      # 0x5c3f56
movl $0x14a, %r9d            # imm = 0x14A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x50ca21
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0x5b, %esi
callq 0xe7500
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x50ca83
jmp 0x50ca42
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rcx
xorl %edx, %edx
callq 0x50c660
movl %eax, 0xc(%rsp)
xorl %eax, %eax
cmpl $0x0, 0xc(%rsp)
movb %al, 0xb(%rsp)
jne 0x50ca79
movq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x50c4c0
movb %al, 0xb(%rsp)
movb 0xb(%rsp), %al
testb $0x1, %al
jne 0x50ca42
jmp 0x50ca83
cmpl $0x0, 0xc(%rsp)
jne 0x50caa2
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0x5d, %esi
callq 0xe7500
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x50cac1
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0xa, %esi
callq 0xe7500
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)