// File: /workspace/github_c_makefile_star2_O0/lh3[P]minigraph/gfa-io.c
// Function: gfa_print
void gfa_print(const gfa_t *g, FILE *fp, int flag)
{
	uint32_t i;
	uint64_t k;
	for (i = 0; i < g->n_seg; ++i) {
		const gfa_seg_t *s = &g->seg[i];
		if (s->del) continue;
		fprintf(fp, "S\t%s\t", s->name);
		if (s->seq && !(flag & GFA_O_NO_SEQ)) fputs(s->seq, fp);
		else fputc('*', fp);
		fprintf(fp, "\tLN:i:%d", s->len);
		if (s->snid >= 0 && s->soff >= 0)
			fprintf(fp, "\tSN:Z:%s\tSO:i:%d", g->sseq[s->snid].name, s->soff);
		if (s->rank >= 0)
			fprintf(fp, "\tSR:i:%d", s->rank);
		if (s->utg && s->utg->n) fprintf(fp, "\tRC:i:%d\tlc:i:%d", s->utg->n, s->utg->len_comp);
		if (s->aux.l_aux > 0) {
			char *t = 0;
			int max = 0;
			gfa_aux_format(s->aux.l_aux, s->aux.aux, &t, &max);
			fputs(t, fp);
			free(t);
		}
		fputc('\n', fp);
		if (s->utg && s->utg->n) {
			uint32_t j, l;
			for (j = l = 0; j < s->utg->n; ++j) {
				const gfa_utg_t *u = s->utg;
				fprintf(fp, "A\t%s\t%d\t%c\t%s\t%d\t%d\n", s->name, l, "+-"[u->a[j]>>32&1], u->name[j], (int32_t)(u->r[j]>>32), (int32_t)u->r[j]);
				l += (uint32_t)u->a[j];
			}
		}
	}
	for (k = 0; k < g->n_arc; ++k) {
		const gfa_arc_t *a = &g->arc[k];
		const gfa_aux_t *aux = a->link_id < g->n_arc? &g->link_aux[a->link_id] : 0;
		if (a->del || a->comp) continue;
		fprintf(fp, "L\t%s\t%c\t%s\t%c", g->seg[a->v_lv>>33].name, "+-"[a->v_lv>>32&1], g->seg[a->w>>1].name, "+-"[a->w&1]);
		if (!(flag & GFA_O_OV_EXT)) {
			fprintf(fp, "\t%dM", a->ov < a->ow? a->ov : a->ow);
		} else {
			if (a->ov == a->ow) fprintf(fp, "\t%dM", a->ov);
			else fprintf(fp, "\t%d:%d", a->ov, a->ow);
		}
		if (a->rank >= 0) fprintf(fp, "\tSR:i:%d", a->rank);
		fprintf(fp, "\tL1:i:%d", gfa_arc_len(*a));
		fprintf(fp, "\tL2:i:%d", gfa_arc_lw(g, *a));
		if (aux && aux->l_aux) {
			char *t = 0;
			int max = 0;
			gfa_aux_format(aux->l_aux, aux->aux, &t, &max);
			if (t) fputs(t, fp);
			free(t);
		}
		fputc('\n', fp);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jae 0xad96
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x18(%rbp), %ecx
shlq $0x6, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
cmpl $0x0, %eax
je 0xab29
jmp 0xad88
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x31972(%rip), %rsi     # 0x3c4ae
movb $0x0, %al
callq 0x2210
movq -0x28(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0xab6c
movl -0x14(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jne 0xab6c
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x2180
jmp 0xab7a
movq -0x10(%rbp), %rsi
movl $0x2a, %edi
callq 0x21c0
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rax
movl (%rax), %edx
leaq 0x31929(%rip), %rsi     # 0x3c4b4
movb $0x0, %al
callq 0x2210
movq -0x28(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jl 0xabd9
movq -0x28(%rbp), %rax
cmpl $0x0, 0xc(%rax)
jl 0xabd9
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x28(%rbp), %rcx
movslq 0x8(%rcx), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movq -0x28(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0x318eb(%rip), %rsi     # 0x3c4bd
movb $0x0, %al
callq 0x2210
movq -0x28(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jl 0xabfc
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0x10(%rax), %edx
leaq 0x318d9(%rip), %rsi     # 0x3c4ce
movb $0x0, %al
callq 0x2210
movq -0x28(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0xac3d
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
cmpl $0x0, 0x14(%rax)
je 0xac3d
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
movl 0x14(%rax), %edx
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
movl 0x8(%rax), %ecx
leaq 0x318a1(%rip), %rsi     # 0x3c4d7
movb $0x0, %al
callq 0x2210
movq -0x28(%rbp), %rax
cmpl $0x0, 0x34(%rax)
jbe 0xac88
movq $0x0, -0x30(%rbp)
movl $0x0, -0x34(%rbp)
movq -0x28(%rbp), %rax
movl 0x34(%rax), %edi
movq -0x28(%rbp), %rax
movq 0x38(%rax), %rsi
leaq -0x30(%rbp), %rdx
leaq -0x34(%rbp), %rcx
callq 0x8df0
movq -0x30(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x2180
movq -0x30(%rbp), %rdi
callq 0x2040
movq -0x10(%rbp), %rsi
movl $0xa, %edi
callq 0x21c0
movq -0x28(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0xad86
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
cmpl $0x0, 0x14(%rax)
je 0xad86
movl $0x0, -0x3c(%rbp)
movl $0x0, -0x38(%rbp)
movl -0x38(%rbp), %eax
movq -0x28(%rbp), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x14(%rcx), %eax
jae 0xad84
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdx
movl -0x3c(%rbp), %ecx
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x38(%rbp), %esi
movq (%rax,%rsi,8), %rsi
shrq $0x20, %rsi
andq $0x1, %rsi
leaq 0x3164d(%rip), %rax     # 0x3c35f
movsbl (%rax,%rsi), %r8d
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rax
movl -0x38(%rbp), %esi
movq (%rax,%rsi,8), %r9
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x38(%rbp), %esi
movq (%rax,%rsi,8), %rax
shrq $0x20, %rax
movl %eax, %r10d
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x38(%rbp), %esi
movq (%rax,%rsi,8), %rax
leaq 0x31796(%rip), %rsi     # 0x3c4e8
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x2210
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x38(%rbp), %ecx
movq (%rax,%rcx,8), %rax
addl -0x3c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0xacc5
jmp 0xad86
jmp 0xad88
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xaaed
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x40(%rcx), %rax
jae 0xb04f
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rcx
movabsq $0x1fffffffffffffff, %rax # imm = 0x1FFFFFFFFFFFFFFF
andq 0x18(%rcx), %rax
movq -0x8(%rbp), %rcx
cmpq 0x40(%rcx), %rax
jae 0xae0a
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x50(%rbp), %rdx
movabsq $0x1fffffffffffffff, %rcx # imm = 0x1FFFFFFFFFFFFFFF
andq 0x18(%rdx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0xae12
xorl %eax, %eax
movq %rax, -0x70(%rbp)
jmp 0xae12
movq -0x70(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x3e, %rax
andq $0x1, %rax
cmpl $0x0, %eax
jne 0xae40
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x3f, %rax
cmpl $0x0, %eax
je 0xae45
jmp 0xb03e
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x50(%rbp), %rcx
movq (%rcx), %rcx
shrq $0x21, %rcx
shlq $0x6, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdx
movq -0x50(%rbp), %rax
movq (%rax), %rcx
shrq $0x20, %rcx
andq $0x1, %rcx
leaq 0x314e2(%rip), %rax     # 0x3c35f
movsbl (%rax,%rcx), %ecx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x50(%rbp), %rsi
movl 0x8(%rsi), %esi
shrl %esi
movl %esi, %esi
shlq $0x6, %rsi
addq %rsi, %rax
movq 0x18(%rax), %r8
movq -0x50(%rbp), %rax
movl 0x8(%rax), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
leaq 0x314ab(%rip), %rax     # 0x3c35f
movsbl (%rax,%rsi), %r9d
leaq 0x3163d(%rip), %rsi     # 0x3c4fd
movb $0x0, %al
callq 0x2210
movl -0x14(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0xaf17
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x50(%rbp), %rax
movl 0x10(%rax), %eax
movq -0x50(%rbp), %rcx
cmpl 0x14(%rcx), %eax
jge 0xaef6
movq -0x50(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, -0x7c(%rbp)
jmp 0xaf00
movq -0x50(%rbp), %rax
movl 0x14(%rax), %eax
movl %eax, -0x7c(%rbp)
movq -0x78(%rbp), %rdi
movl -0x7c(%rbp), %edx
leaq 0x315fd(%rip), %rsi     # 0x3c50b
movb $0x0, %al
callq 0x2210
jmp 0xaf64
movq -0x50(%rbp), %rax
movl 0x10(%rax), %eax
movq -0x50(%rbp), %rcx
cmpl 0x14(%rcx), %eax
jne 0xaf42
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rax
movl 0x10(%rax), %edx
leaq 0x315d2(%rip), %rsi     # 0x3c50b
movb $0x0, %al
callq 0x2210
jmp 0xaf62
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rax
movl 0x10(%rax), %edx
movq -0x50(%rbp), %rax
movl 0x14(%rax), %ecx
leaq 0x315b5(%rip), %rsi     # 0x3c510
movb $0x0, %al
callq 0x2210
jmp 0xaf64
movq -0x50(%rbp), %rax
cmpl $0x0, 0xc(%rax)
jl 0xaf87
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rax
movl 0xc(%rax), %edx
leaq 0x3154e(%rip), %rsi     # 0x3c4ce
movb $0x0, %al
callq 0x2210
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rax
movq (%rax), %rax
movl %eax, %edx
leaq 0x3157c(%rip), %rsi     # 0x3c517
movb $0x0, %al
callq 0x2210
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x50(%rbp), %rcx
movl 0x8(%rcx), %ecx
shrl %ecx
movl %ecx, %ecx
shlq $0x6, %rcx
addq %rcx, %rax
movl (%rax), %edx
movq -0x50(%rbp), %rax
subl 0x14(%rax), %edx
leaq 0x31550(%rip), %rsi     # 0x3c520
movb $0x0, %al
callq 0x2210
cmpq $0x0, -0x58(%rbp)
je 0xb030
movq -0x58(%rbp), %rax
cmpl $0x0, 0x4(%rax)
je 0xb030
movq $0x0, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movq -0x58(%rbp), %rax
movl 0x4(%rax), %edi
movq -0x58(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x60(%rbp), %rdx
leaq -0x64(%rbp), %rcx
callq 0x8df0
cmpq $0x0, -0x60(%rbp)
je 0xb027
movq -0x60(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x2180
movq -0x60(%rbp), %rdi
callq 0x2040
movq -0x10(%rbp), %rsi
movl $0xa, %edi
callq 0x21c0
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xad9e
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax,%rax)