// File: /workspace/github_cpp_makefile_star2_O1/auton1[P]viterbi/bcf_entry_setters.cpp
// Function: bcf_entry::set_FORMAT()
void bcf_entry::set_FORMAT()
{
	FORMAT.resize(0);
	FORMAT_to_idx.clear();
	unsigned int l_pos = L_shared + 2*sizeof(uint32_t);
	unsigned int fmt_key, type, size, skip;

	for (unsigned int ui=0; ui<N_format; ui++)
	{
		fmt_key = get_typed_int(&l_pos, line, type, size);
		get_type(&l_pos, line, type, size);

		if ( (type == 1) or (type == 7) )
			skip = sizeof(int8_t)*size*N_indv;
		else if (type == 2)
			skip = sizeof(int16_t)*size*N_indv;
		else if ( (type == 3) or (type == 5) )
			skip = sizeof(int32_t)*size*N_indv;
		else
		{
			LOG.printLOG("Error: Unknown type: " + header::int2str(type) + "\n");
			parsed_FORMAT = false;
			return;
		}
		add_FORMAT_entry( entry_header.FORMAT_map[fmt_key].ID, fmt_key, ui, l_pos, type, size);
		l_pos += skip;
	}

	GT_idx = -1;
	GQ_idx = -1;
	DP_idx = -1;
	FT_idx = -1;

	if (FORMAT_to_idx.find("GT") != FORMAT_to_idx.end())
		GT_idx = FORMAT_to_idx["GT"];
	if (FORMAT_to_idx.find("GQ") != FORMAT_to_idx.end())
		GQ_idx = FORMAT_to_idx["GQ"];
	if (FORMAT_to_idx.find("DP") != FORMAT_to_idx.end())
		DP_idx = FORMAT_to_idx["DP"];
	if (FORMAT_to_idx.find("FT") != FORMAT_to_idx.end())
		FT_idx = FORMAT_to_idx["FT"];
	parsed_FORMAT = true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdi, %rbx
addq $0x498, %rdi            # imm = 0x498
xorl %esi, %esi
callq 0x1300a
leaq 0x600(%rbx), %rdi
movq %rdi, 0x50(%rsp)
callq 0x25ebc
movl 0x6c4(%rbx), %eax
addl $0x8, %eax
movl %eax, 0x40(%rsp)
movl $0x0, 0x44(%rsp)
movq %rbx, 0x10(%rsp)
cmpl $0x0, 0x6bc(%rbx)
je 0x27925
movq 0x10(%rsp), %rcx
leaq 0x3c0(%rcx), %rax
movq %rax, 0x60(%rsp)
leaq 0xd0(%rcx), %rax
movq %rax, 0x58(%rsp)
movl $0x1, %ebx
leaq 0x40(%rsp), %r12
leaq 0x48(%rsp), %r14
leaq 0x3c(%rsp), %r8
movq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
movq 0x60(%rsp), %rbp
movq %rbp, %rdx
movq %r14, %rcx
movq %r8, %r13
callq 0x21600
movq %r12, %rsi
movl %eax, %r12d
movl %eax, 0x4c(%rsp)
movq %r15, %rdi
movq %r14, %rcx
movq %rbp, %rdx
movq %r13, %r15
movq %r13, %r8
callq 0x21532
movl 0x48(%rsp), %esi
leal -0x1(%rsi), %eax
cmpl $0x6, %eax
ja 0x27b7a
leaq 0x133f2(%rip), %rcx     # 0x3ac80
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%rsp), %rbp
movl 0x8(%rbp), %r13d
imull 0x3c(%rsp), %r13d
jmp 0x278cf
movq 0x10(%rsp), %rbp
movl 0x3c(%rsp), %r13d
imull 0x8(%rbp), %r13d
shll $0x2, %r13d
jmp 0x278cf
movq 0x10(%rsp), %rbp
movl 0x3c(%rsp), %r13d
imull 0x8(%rbp), %r13d
addl %r13d, %r13d
movl %r12d, 0x18(%rsp)
movq 0x58(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x1b3c6
leaq 0x20(%rax), %rsi
movq %r15, (%rsp)
movq %rbp, %rdi
leaq 0x4c(%rsp), %rdx
leaq 0x44(%rsp), %rcx
leaq 0x40(%rsp), %r12
movq %r12, %r8
movq %r14, %r9
callq 0x27d16
movq %r15, %r8
addl %r13d, 0x40(%rsp)
movl %ebx, 0x44(%rsp)
leal 0x1(%rbx), %eax
cmpl 0x6bc(%rbp), %ebx
movl %eax, %ebx
jb 0x2783b
pcmpeqd %xmm0, %xmm0
movq 0x10(%rsp), %rax
movdqu %xmm0, 0x630(%rax)
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x132e2(%rip), %rsi     # 0x3ac28
leaq 0x132dd(%rip), %rdx     # 0x3ac2a
leaq 0x18(%rsp), %rdi
callq 0xc868
leaq 0x18(%rsp), %rsi
movq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x1f7ca
movq %rax, %r14
movq 0x10(%rsp), %rax
leaq 0x608(%rax), %r12
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27987
callq 0x5410
cmpq %r12, %r14
je 0x279d3
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1328d(%rip), %rsi     # 0x3ac28
leaq 0x13288(%rip), %rdx     # 0x3ac2a
callq 0xc868
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x25c1c
movq 0x10(%rsp), %rcx
addq $0x630, %rcx            # imm = 0x630
movl (%rax), %eax
movl %eax, (%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x279d3
callq 0x5410
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x13974(%rip), %rsi     # 0x3b356
leaq 0x1396f(%rip), %rdx     # 0x3b358
callq 0xc868
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f7ca
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27a0d
callq 0x5410
cmpq %r12, %r14
je 0x27a56
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x13935(%rip), %rsi     # 0x3b356
leaq 0x13930(%rip), %rdx     # 0x3b358
callq 0xc868
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x25c1c
movl (%rax), %eax
movq 0x10(%rsp), %rcx
movl %eax, 0x634(%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27a56
callq 0x5410
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x138d8(%rip), %rsi     # 0x3b33d
leaq 0x138d3(%rip), %rdx     # 0x3b33f
callq 0xc868
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f7ca
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27a90
callq 0x5410
cmpq %r12, %r14
je 0x27ad9
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x13899(%rip), %rsi     # 0x3b33d
leaq 0x13894(%rip), %rdx     # 0x3b33f
callq 0xc868
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x25c1c
movl (%rax), %eax
movq 0x10(%rsp), %rcx
movl %eax, 0x638(%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27ad9
callq 0x5410
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x13143(%rip), %rsi     # 0x3ac2b
leaq 0x1313e(%rip), %rdx     # 0x3ac2d
callq 0xc868
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f7ca
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27b13
callq 0x5410
cmpq %r12, %r14
je 0x27b5c
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x13104(%rip), %rsi     # 0x3ac2b
leaq 0x130ff(%rip), %rdx     # 0x3ac2d
callq 0xc868
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x25c1c
movl (%rax), %eax
movq 0x10(%rsp), %rcx
movl %eax, 0x63c(%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27b5c
callq 0x5410
movq 0x10(%rsp), %rax
movb $0x1, 0x3dd(%rax)
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x88(%rsp), %r14
movq %r14, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x17284
leaq 0x1312e(%rip), %rcx     # 0x3acc4
movl $0x15, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x54d0
leaq 0x28(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27bcf
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x27bd8
movdqu (%rcx), %xmm0
movdqu %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x18(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1155b(%rip), %rsi     # 0x39156
callq 0x5870
leaq 0x78(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27c27
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x27c30
movdqu (%rcx), %xmm0
movdqu %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x68(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x22855(%rip), %rdi     # 0x4a4a8
callq 0x371c8
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x27c67
callq 0x5410
movq 0x18(%rsp), %rdi
cmpq %r14, %rdi
je 0x27c76
callq 0x5410
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27c8c
callq 0x5410
movq 0x10(%rsp), %rax
movb $0x0, 0x3dd(%rax)
jmp 0x27b68
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x27cb4
callq 0x5410
jmp 0x27cb4
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %r14, %rdi
je 0x27cc8
callq 0x5410
jmp 0x27cc8
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x27d04
jmp 0x27d0e
jmp 0x27cf7
jmp 0x27d0b
jmp 0x27cf7
jmp 0x27d0b
jmp 0x27cf7
jmp 0x27d0b
jmp 0x27cf7
jmp 0x27d0b
jmp 0x27cf7
jmp 0x27d0b
jmp 0x27cf7
jmp 0x27d0b
jmp 0x27cf7
jmp 0x27d0b
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27d0e
callq 0x5410
jmp 0x27d0e
movq %rax, %rbx
movq %rbx, %rdi
callq 0x57d0