// File: /workspace/github_cpp_makefile_star2_O3/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 0x1300e
leaq 0x600(%rbx), %rdi
movq %rdi, 0x50(%rsp)
callq 0x25c8c
movl 0x6c4(%rbx), %eax
addl $0x8, %eax
movl %eax, 0x40(%rsp)
movl $0x0, 0x44(%rsp)
movq %rbx, 0x10(%rsp)
cmpl $0x0, 0x6bc(%rbx)
je 0x276e5
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 0x21464
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 0x21396
movl 0x48(%rsp), %esi
leal -0x1(%rsi), %eax
cmpl $0x6, %eax
ja 0x2793a
leaq 0x1260a(%rip), %rcx     # 0x39c58
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%rsp), %rbp
movl 0x8(%rbp), %r13d
imull 0x3c(%rsp), %r13d
jmp 0x2768f
movq 0x10(%rsp), %rbp
movl 0x3c(%rsp), %r13d
imull 0x8(%rbp), %r13d
shll $0x2, %r13d
jmp 0x2768f
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 0x1b2c6
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 0x27ad6
movq %r15, %r8
addl %r13d, 0x40(%rsp)
movl %ebx, 0x44(%rsp)
leal 0x1(%rbx), %eax
cmpl 0x6bc(%rbp), %ebx
movl %eax, %ebx
jb 0x275fb
pcmpeqd %xmm0, %xmm0
movq 0x10(%rsp), %rax
movdqu %xmm0, 0x630(%rax)
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x124fa(%rip), %rsi     # 0x39c00
leaq 0x124f5(%rip), %rdx     # 0x39c02
leaq 0x18(%rsp), %rdi
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x1f64c
movq %rax, %r14
movq 0x10(%rsp), %rax
leaq 0x608(%rax), %r12
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27747
callq 0x5410
cmpq %r12, %r14
je 0x27793
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x124a5(%rip), %rsi     # 0x39c00
leaq 0x124a0(%rip), %rdx     # 0x39c02
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x259ec
movq 0x10(%rsp), %rcx
addq $0x630, %rcx            # imm = 0x630
movl (%rax), %eax
movl %eax, (%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27793
callq 0x5410
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x12b84(%rip), %rsi     # 0x3a326
leaq 0x12b7f(%rip), %rdx     # 0x3a328
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f64c
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x277cd
callq 0x5410
cmpq %r12, %r14
je 0x27816
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x12b45(%rip), %rsi     # 0x3a326
leaq 0x12b40(%rip), %rdx     # 0x3a328
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x259ec
movl (%rax), %eax
movq 0x10(%rsp), %rcx
movl %eax, 0x634(%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27816
callq 0x5410
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x12ae8(%rip), %rsi     # 0x3a30d
leaq 0x12ae3(%rip), %rdx     # 0x3a30f
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f64c
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27850
callq 0x5410
cmpq %r12, %r14
je 0x27899
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x12aa9(%rip), %rsi     # 0x3a30d
leaq 0x12aa4(%rip), %rdx     # 0x3a30f
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x259ec
movl (%rax), %eax
movq 0x10(%rsp), %rcx
movl %eax, 0x638(%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27899
callq 0x5410
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1235b(%rip), %rsi     # 0x39c03
leaq 0x12356(%rip), %rdx     # 0x39c05
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f64c
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x278d3
callq 0x5410
cmpq %r12, %r14
je 0x2791c
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1231c(%rip), %rsi     # 0x39c03
leaq 0x12317(%rip), %rdx     # 0x39c05
callq 0xc85e
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x259ec
movl (%rax), %eax
movq 0x10(%rsp), %rcx
movl %eax, 0x63c(%rcx)
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x2791c
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 0x1720e
leaq 0x12346(%rip), %rcx     # 0x39c9c
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 0x2798f
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x27998
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 0x1079b(%rip), %rsi     # 0x38156
callq 0x5870
leaq 0x78(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x279e7
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x279f0
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 0x21a95(%rip), %rdi     # 0x494a8
callq 0x36e72
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x27a27
callq 0x5410
movq 0x18(%rsp), %rdi
cmpq %r14, %rdi
je 0x27a36
callq 0x5410
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27a4c
callq 0x5410
movq 0x10(%rsp), %rax
movb $0x0, 0x3dd(%rax)
jmp 0x27928
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x27a74
callq 0x5410
jmp 0x27a74
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %r14, %rdi
je 0x27a88
callq 0x5410
jmp 0x27a88
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x27ac4
jmp 0x27ace
jmp 0x27ab7
jmp 0x27acb
jmp 0x27ab7
jmp 0x27acb
jmp 0x27ab7
jmp 0x27acb
jmp 0x27ab7
jmp 0x27acb
jmp 0x27ab7
jmp 0x27acb
jmp 0x27ab7
jmp 0x27acb
jmp 0x27ab7
jmp 0x27acb
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x27ace
callq 0x5410
jmp 0x27ace
movq %rax, %rbx
movq %rbx, %rdi
callq 0x57d0