// File: auton1[P]viterbi/vcf_entry.cpp
// Function: vcf_entry::read_indv_generic_entry(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void vcf_entry::read_indv_generic_entry(unsigned int indv, const string &FORMAT_id, string &out)
{
	if (fully_parsed == false)
		parse_full_entry(true);

	if (parsed_FORMAT == false)
		set_FORMAT(FORMAT_str);

	out = ".";

	if (FORMAT_to_idx.find(FORMAT_id) != FORMAT_to_idx.end())
	{
		unsigned int idx = FORMAT_to_idx[FORMAT_id];
		static string tmpstr;
		static istringstream ss;
		ss.clear();
		ss.str(GENOTYPE_str[indv]);

		for (unsigned int ui=0; ui <= idx; ui++)
		{
			getline(ss, tmpstr, ':');
			if (ui == idx)
			{
				out = tmpstr;
				break;
			}
			if (!ss.good())
				break;
		}
	}
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movl %esi, 0x4c(%rsp)
movq %rdx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x8(%rsp)
movb 0x3d9(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x42f61
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movl $0x1, %esi
callq *0x18(%rax)
movq 0x8(%rsp), %rax
movb 0x3dd(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x42f8a
movq 0x8(%rsp), %rdi
movq %rdi, %rsi
addq $0x718, %rsi            # imm = 0x718
callq 0x4ff50
movq 0x38(%rsp), %rdi
leaq 0x32148(%rip), %rsi     # 0x750de
callq 0x67b0
movq 0x8(%rsp), %rdi
addq $0x600, %rdi            # imm = 0x600
movq 0x40(%rsp), %rsi
callq 0x43430
movq 0x8(%rsp), %rdi
movq %rax, 0x30(%rsp)
addq $0x600, %rdi            # imm = 0x600
callq 0x3b7e0
movq %rax, 0x28(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x43410
testb $0x1, %al
jne 0x42fe4
jmp 0x43171
movq 0x8(%rsp), %rdi
addq $0x600, %rdi            # imm = 0x600
movq 0x40(%rsp), %rsi
callq 0x397e0
movl (%rax), %eax
movl %eax, 0x24(%rsp)
cmpb $0x0, 0x50de9(%rip)     # 0x93df0
jne 0x4304c
leaq 0x50de0(%rip), %rdi     # 0x93df0
callq 0x6a40
cmpl $0x0, %eax
je 0x4304c
leaq 0x50daf(%rip), %rdi     # 0x93dd0
callq 0x67e0
movq 0x4ff7b(%rip), %rdi     # 0x92fa8
leaq 0x50d9c(%rip), %rsi     # 0x93dd0
leaq 0x50565(%rip), %rdx     # 0x935a0
callq 0x6490
leaq 0x50da9(%rip), %rdi     # 0x93df0
callq 0x62f0
cmpb $0x0, 0x50f25(%rip)     # 0x93f78
jne 0x4309a
leaq 0x50f1c(%rip), %rdi     # 0x93f78
callq 0x6a40
cmpl $0x0, %eax
je 0x4309a
leaq 0x50d8b(%rip), %rdi     # 0x93df8
callq 0x6390
jmp 0x43074
movq 0x4ff15(%rip), %rdi     # 0x92f90
leaq 0x50d76(%rip), %rsi     # 0x93df8
leaq 0x50517(%rip), %rdx     # 0x935a0
callq 0x6490
leaq 0x50ee3(%rip), %rdi     # 0x93f78
callq 0x62f0
movq 0x50d57(%rip), %rax     # 0x93df8
leaq 0x50d50(%rip), %rdi     # 0x93df8
addq -0x18(%rax), %rdi
xorl %esi, %esi
callq 0x6950
movq 0x8(%rsp), %rdi
addq $0x758, %rdi            # imm = 0x758
movl 0x4c(%rsp), %eax
movl %eax, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x50d24(%rip), %rdi     # 0x93df8
callq 0x6630
movl $0x0, 0x10(%rsp)
movl 0x10(%rsp), %eax
cmpl 0x24(%rsp), %eax
ja 0x4316f
leaq 0x50d02(%rip), %rdi     # 0x93df8
leaq 0x50cd3(%rip), %rsi     # 0x93dd0
movl $0x3a, %edx
callq 0x6a80
movl 0x10(%rsp), %eax
cmpl 0x24(%rsp), %eax
jne 0x43140
movq 0x38(%rsp), %rdi
leaq 0x50cb3(%rip), %rsi     # 0x93dd0
callq 0x6060
jmp 0x4316f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x18(%rsp)
movl %eax, 0x14(%rsp)
leaq 0x50e3f(%rip), %rdi     # 0x93f78
callq 0x62d0
jmp 0x43176
movq 0x50cb1(%rip), %rax     # 0x93df8
leaq 0x50caa(%rip), %rdi     # 0x93df8
addq -0x18(%rax), %rdi
callq 0x6960
testb $0x1, %al
jne 0x4315d
jmp 0x4316f
jmp 0x4315f
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x430e1
jmp 0x43171
addq $0x58, %rsp
retq
movq 0x18(%rsp), %rdi
callq 0x69e0