// File: /workspace/github_c_makefile_star2_O0/lh3[P]bgt/vcf.c
// Function: bcf_fmt_array
void bcf_fmt_array(kstring_t *s, int n, int type, void *data)
{
	int j = 0;
	if (n == 0) {
		kputc('.', s);
		return;
	}
	if (type == BCF_BT_INT8) {
		bcf_fmt_array_aux(int8_t, s, n, data, bcf_int8_missing, bcf_int8_end, &j);
	} else if (type == BCF_BT_CHAR) { // TODO: htslib has bcf_str_missing, but I don't know how to use that
		char *p = (char*)data;
		for (j = 0; j < n && *p; ++j, ++p) kputc(*p, s);
	} else if (type == BCF_BT_INT32) {
		bcf_fmt_array_aux(int32_t, s, n, data, bcf_int32_missing, bcf_int32_end, &j);
	} else if (type == BCF_BT_FLOAT) {
		float *p = (float*)data;
		for (j = 0; j < n && *(uint32_t*)p != bcf_float_end; ++j, ++p) {
			if (j) kputc(',', s);
			if (*(uint32_t*)p == bcf_float_missing) kputc('.', s);
			else ksprintf(s, "%g", *p);
		}
	} else if (type == BCF_BT_INT16) {
		bcf_fmt_array_aux(int16_t, s, n, data, bcf_int16_missing, bcf_int16_end, &j);
	}
	if (n && j == 0) kputc('.', s); // no actual value; write an empty array "."
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0x113d6
movq -0x8(%rbp), %rsi
movl $0x2e, %edi
callq 0x10ce0
jmp 0x11703
cmpl $0x1, -0x10(%rbp)
jne 0x1147b
jmp 0x113e2
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x59(%rbp)
jge 0x1140e
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $-0x7f, %eax
setne %al
movb %al, -0x59(%rbp)
movb -0x59(%rbp), %al
testb $0x1, %al
jne 0x11417
jmp 0x11470
cmpl $0x0, -0x20(%rbp)
je 0x1142b
movq -0x8(%rbp), %rsi
movl $0x2c, %edi
callq 0x10ce0
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $-0x80, %eax
jne 0x11447
movq -0x8(%rbp), %rsi
movl $0x2e, %edi
callq 0x10ce0
jmp 0x11457
movq -0x28(%rbp), %rax
movsbl (%rax), %edi
movq -0x8(%rbp), %rsi
callq 0x108c0
jmp 0x11459
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x113f1
movl -0x20(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x116e9
cmpl $0x7, -0x10(%rbp)
jne 0x114e2
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x5a(%rbp)
jge 0x114ad
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x5a(%rbp)
movb -0x5a(%rbp), %al
testb $0x1, %al
jne 0x114b6
jmp 0x114dd
movq -0x30(%rbp), %rax
movsbl (%rax), %edi
movq -0x8(%rbp), %rsi
callq 0x10ce0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x11490
jmp 0x116e7
cmpl $0x3, -0x10(%rbp)
jne 0x11586
jmp 0x114ee
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x5b(%rbp)
jge 0x1151a
movq -0x40(%rbp), %rax
cmpl $0x80000001, (%rax)     # imm = 0x80000001
setne %al
movb %al, -0x5b(%rbp)
movb -0x5b(%rbp), %al
testb $0x1, %al
jne 0x11523
jmp 0x1157b
cmpl $0x0, -0x34(%rbp)
je 0x11537
movq -0x8(%rbp), %rsi
movl $0x2c, %edi
callq 0x10ce0
movq -0x40(%rbp), %rax
cmpl $0x80000000, (%rax)     # imm = 0x80000000
jne 0x11553
movq -0x8(%rbp), %rsi
movl $0x2e, %edi
callq 0x10ce0
jmp 0x11562
movq -0x40(%rbp), %rax
movl (%rax), %edi
movq -0x8(%rbp), %rsi
callq 0x108c0
jmp 0x11564
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
jmp 0x114fd
movl -0x34(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x116e5
cmpl $0x5, -0x10(%rbp)
jne 0x11638
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x5c(%rbp)
jge 0x115be
movq -0x48(%rbp), %rax
movl (%rax), %eax
cmpl 0x1cdec(%rip), %eax     # 0x2e3a4
setne %al
movb %al, -0x5c(%rbp)
movb -0x5c(%rbp), %al
testb $0x1, %al
jne 0x115c7
jmp 0x11633
cmpl $0x0, -0x1c(%rbp)
je 0x115db
movq -0x8(%rbp), %rsi
movl $0x2c, %edi
callq 0x10ce0
movq -0x48(%rbp), %rax
movl (%rax), %eax
cmpl 0x1cdb9(%rip), %eax     # 0x2e3a0
jne 0x115f9
movq -0x8(%rbp), %rsi
movl $0x2e, %edi
callq 0x10ce0
jmp 0x11617
movq -0x8(%rbp), %rdi
movq -0x48(%rbp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x16a24(%rip), %rsi     # 0x28034
movb $0x1, %al
callq 0x11710
jmp 0x11619
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x48(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x48(%rbp)
jmp 0x1159f
jmp 0x116e3
cmpl $0x2, -0x10(%rbp)
jne 0x116e1
jmp 0x11644
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x5d(%rbp)
jge 0x11672
movq -0x58(%rbp), %rax
movswl (%rax), %eax
cmpl $0xffff8001, %eax       # imm = 0xFFFF8001
setne %al
movb %al, -0x5d(%rbp)
movb -0x5d(%rbp), %al
testb $0x1, %al
jne 0x1167b
jmp 0x116d9
cmpl $0x0, -0x4c(%rbp)
je 0x1168f
movq -0x8(%rbp), %rsi
movl $0x2c, %edi
callq 0x10ce0
movq -0x58(%rbp), %rax
movswl (%rax), %eax
cmpl $0xffff8000, %eax       # imm = 0xFFFF8000
jne 0x116ad
movq -0x8(%rbp), %rsi
movl $0x2e, %edi
callq 0x10ce0
jmp 0x116bd
movq -0x58(%rbp), %rax
movswl (%rax), %edi
movq -0x8(%rbp), %rsi
callq 0x108c0
jmp 0x116bf
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movq -0x58(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x58(%rbp)
jmp 0x11653
movl -0x4c(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x116e1
jmp 0x116e3
jmp 0x116e5
jmp 0x116e7
jmp 0x116e9
cmpl $0x0, -0xc(%rbp)
je 0x11703
cmpl $0x0, -0x1c(%rbp)
jne 0x11703
movq -0x8(%rbp), %rsi
movl $0x2e, %edi
callq 0x10ce0
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)