// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/6/genp9.c
// Function: writeblob
static size_t
writeblob(FILE *fd, Blob *b, size_t off, char *lbl)
{
	size_t i, n;

	n = 0;
	if (!b)
		return 0;
	switch (b->type) {
	case Bti8:
		fprintf(fd, "\tDATA %s+%llu(SB)/1,$%lld\n", lbl, (uvlong)off+n, b->ival);
		n += 1;
		break;
	case Bti16:
		fprintf(fd, "\tDATA %s+%llu(SB)/2,$%lld\n", lbl, (uvlong)off+n, b->ival);
		n += 2;
		break;
	case Bti32:
		fprintf(fd, "\tDATA %s+%llu(SB)/4,$%lld\n", lbl, (uvlong)off+n, b->ival);
		n += 4;
		break;
	case Bti64:
		fprintf(fd, "\tDATA %s+%llu(SB)/8,$%lld\n", lbl, (uvlong)off+n, (vlong)b->ival);
		n += 8;
		break;
	case Btimin:
		n += encodemin(fd, b->ival, off+n, lbl);
		break;
	case Btref:
		if (b->ref.isextern || b->ref.str[0] == '.')
			fprintf(fd, "\tDATA %s+%llu(SB)/8,$%s+%llu(SB)\n",
					lbl, (uvlong)off+n, b->ref.str, (uvlong)b->ref.off);
		else
			fprintf(fd, "\tDATA %s+%llu(SB)/8,$%s<>+%llu(SB)\n",
					lbl, (uvlong)off+n, b->ref.str, (uvlong)b->ref.off);
		n += 8;
		break;
	case Btbytes:
		n += writebytes(fd, lbl, off+n, b->bytes.buf, b->bytes.len);
		break;
	case Btseq:
		for (i = 0; i < b->seq.nsub; i++)
			n += writeblob(fd, b->seq.sub[i], off+n, lbl);
		break;
	case Btpad:
		n += b->npad;
		break;
	}
	return n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq $0x0, -0x38(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x9a64
movq $0x0, -0x8(%rbp)
jmp 0x9cb8
movq -0x18(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x40(%rbp)
subq $0x8, %rax
ja 0x9cb0
movq -0x40(%rbp), %rax
leaq 0x4213d(%rip), %rcx     # 0x4bbc0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x20(%rax), %r8
leaq 0x422d7(%rip), %rsi     # 0x4bd82
movb $0x0, %al
callq 0x6230
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x9cb0
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x20(%rax), %r8
leaq 0x422bb(%rip), %rsi     # 0x4bd9d
movb $0x0, %al
callq 0x6230
movq -0x38(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x38(%rbp)
jmp 0x9cb0
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x20(%rax), %r8
leaq 0x4229f(%rip), %rsi     # 0x4bdb8
movb $0x0, %al
callq 0x6230
movq -0x38(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x38(%rbp)
jmp 0x9cb0
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x20(%rax), %r8
leaq 0x42283(%rip), %rsi     # 0x4bdd3
movb $0x0, %al
callq 0x6230
movq -0x38(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0x9cb0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x20(%rbp), %rdx
addq -0x38(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x9cd0
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x9cb0
movq -0x18(%rbp), %rax
movsbl 0x28(%rax), %eax
cmpl $0x0, %eax
jne 0x9baf
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x9bdf
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x20(%rax), %r8
movq -0x18(%rbp), %rax
movq 0x30(%rax), %r9
leaq 0x42218(%rip), %rsi     # 0x4bdee
movb $0x0, %al
callq 0x6230
jmp 0x9c0d
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x20(%rax), %r8
movq -0x18(%rbp), %rax
movq 0x30(%rax), %r9
leaq 0x4220a(%rip), %rsi     # 0x4be10
movb $0x0, %al
callq 0x6230
movq -0x38(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0x9cb0
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
addq -0x38(%rbp), %rdx
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x18(%rbp), %rax
movq 0x20(%rax), %r8
callq 0x9e40
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x9cb0
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0x9c9e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x20(%rbp), %rdx
addq -0x38(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x9a30
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x9c55
jmp 0x9cb0
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)