// File: auton1[P]viterbi/variant_file.cpp
// Function: variant_file::read_big_temp_site(std::basic_ifstream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int&, int&, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int>>>&)
void variant_file::read_big_temp_site(ifstream &tmp_file, string &CHROM, int &POS, int &alleles, vector< pair<int,int> > &GTs)
{
	stringstream chr;
	char tmp_char;
	while(true)
	{
		tmp_file.read(&tmp_char,sizeof(char));
		if (tmp_char == '\n')
			break;
		chr << tmp_char;
	}
	CHROM = chr.str();

	tmp_file.read((char*)&POS,sizeof(POS));

	int8_t tmp_alleles;
	tmp_file.read((char*)&tmp_alleles,sizeof(tmp_alleles));
	alleles = (int)tmp_alleles;

	char in_byte = 0xFF;
	for(unsigned int ui=0; ui<GTs.size(); ui++)
	{
		tmp_file.read(&in_byte,sizeof(in_byte));
		if (in_byte == (char)0xFF)
			GTs[ui].first = -1;
		else
			GTs[ui].first = (int)in_byte;

		tmp_file.read(&in_byte,sizeof(in_byte));
		if (in_byte == (char)0xFF)
			GTs[ui].second = -1;
		else
			GTs[ui].second = (int)in_byte;
	}
}

// Assembly:
subq $0x218, %rsp            # imm = 0x218
movq %rdi, 0x210(%rsp)
movq %rsi, 0x208(%rsp)
movq %rdx, 0x200(%rsp)
movq %rcx, 0x1f8(%rsp)
movq %r8, 0x1f0(%rsp)
movq %r9, 0x1e8(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x6360
jmp 0x27e93
movq 0x208(%rsp), %rdi
leaq 0x5f(%rsp), %rsi
movl $0x1, %edx
callq 0x6710
jmp 0x27eac
movsbl 0x5f(%rsp), %eax
cmpl $0xa, %eax
jne 0x27ed5
jmp 0x27ee8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x63c0
jmp 0x28078
leaq 0x70(%rsp), %rdi
movsbl 0x5f(%rsp), %esi
callq 0x6670
jmp 0x27ee6
jmp 0x27e91
leaq 0x28(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x6530
jmp 0x27ef9
movq 0x200(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movq %rsi, 0x18(%rsp)
callq 0x66c0
movq 0x18(%rsp), %rdi
callq 0x6b50
movq 0x208(%rsp), %rdi
movq 0x1f8(%rsp), %rsi
movl $0x4, %edx
callq 0x6710
jmp 0x27f36
movq 0x208(%rsp), %rdi
leaq 0x27(%rsp), %rsi
movl $0x1, %edx
callq 0x6710
jmp 0x27f4f
movsbl 0x27(%rsp), %ecx
movq 0x1f0(%rsp), %rax
movl %ecx, (%rax)
movb $-0x1, 0x26(%rsp)
movl $0x0, 0x20(%rsp)
movl 0x20(%rsp), %eax
movq %rax, 0x10(%rsp)
movq 0x1e8(%rsp), %rdi
callq 0x2a200
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0x28066
movq 0x208(%rsp), %rdi
leaq 0x26(%rsp), %rsi
movl $0x1, %edx
callq 0x6710
jmp 0x27fab
movsbl 0x26(%rsp), %eax
cmpl $-0x1, %eax
jne 0x27fd0
movq 0x1e8(%rsp), %rdi
movl 0x20(%rsp), %eax
movl %eax, %esi
callq 0x2a220
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
jmp 0x27ff2
movsbl 0x26(%rsp), %eax
movl %eax, 0xc(%rsp)
movq 0x1e8(%rsp), %rdi
movl 0x20(%rsp), %eax
movl %eax, %esi
callq 0x2a220
movl 0xc(%rsp), %ecx
movl %ecx, (%rax)
movq 0x208(%rsp), %rdi
leaq 0x26(%rsp), %rsi
movl $0x1, %edx
callq 0x6710
jmp 0x2800b
movsbl 0x26(%rsp), %eax
cmpl $-0x1, %eax
jne 0x28031
movq 0x1e8(%rsp), %rdi
movl 0x20(%rsp), %eax
movl %eax, %esi
callq 0x2a220
movl $0xffffffff, 0x4(%rax)  # imm = 0xFFFFFFFF
jmp 0x28054
movsbl 0x26(%rsp), %eax
movl %eax, 0x8(%rsp)
movq 0x1e8(%rsp), %rdi
movl 0x20(%rsp), %eax
movl %eax, %esi
callq 0x2a220
movl 0x8(%rsp), %ecx
movl %ecx, 0x4(%rax)
jmp 0x28056
movl 0x20(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x20(%rsp)
jmp 0x27f6b
leaq 0x60(%rsp), %rdi
callq 0x63c0
addq $0x218, %rsp            # imm = 0x218
retq
movq 0x50(%rsp), %rdi
callq 0x69e0
nopw %cs:(%rax,%rax)