// File: auton1[P]viterbi/bcf_entry.cpp
// Function: bcf_entry::parse_genotype_entry(unsigned int, bool, bool, bool, bool)
void bcf_entry::parse_genotype_entry(unsigned int indv, bool GT, bool GQ, bool DP, bool FT)
{
	if (fully_parsed == false)
		parse_full_entry(true);

	if (parsed_FORMAT == false)
		set_FORMAT();

	unsigned int l_pos, indv_size, type, size, ui;
	vector<int> ids;

	if ( GT && !parsed_GT[indv] && GT_idx != -1 )
		ids.push_back(GT_idx);
	if (GQ && !parsed_GQ[indv] && GQ_idx != -1)
		ids.push_back(GQ_idx);
	if (DP && !parsed_DP[indv] && DP_idx != -1)
		ids.push_back(DP_idx);
	if (FT && !parsed_FT[indv] && FT_idx != -1)
		ids.push_back(FT_idx);

	for(unsigned int i=0; i<ids.size(); i++)
	{
		ui = ids[i];
		type = FORMAT_types[ui];
		size = FORMAT_sizes[ui];
		indv_size = FORMAT_skip[ui];
		l_pos = FORMAT_positions[ui] + indv*indv_size;

		if ((int)ui == GT_idx)
			set_indv_GENOTYPE_and_PHASE(indv, l_pos, size);
		else if ((int)ui == GQ_idx)
		{
			if (size>1)
				LOG.error("Error: Only expect single value for QUALITY.\n");

			float tmp;
			if (type==5)
				tmp = *reinterpret_cast<const float*>(&line[l_pos]);
			else if (type==1)
			{
				int8_t tmp2 = *reinterpret_cast<const int8_t*>(&line[l_pos]);
				tmp = (float)tmp2;
			}
			else if (type==2)
			{
				int16_t tmp2 = *reinterpret_cast<const int16_t*>(&line[l_pos]);
				tmp = (float)tmp2;
			}
			else if (type==3)
			{
				int32_t tmp2 = *reinterpret_cast<const int32_t*>(&line[l_pos]);
				tmp = (float)tmp2;
			}
			else
				LOG.error("Error: Invalid type for QUALITY.\n");

			set_indv_GQUALITY(indv, tmp);
		}
		else if ((int)ui == DP_idx)
		{
			if (size>1)
				LOG.error("Error: Only expect single value for DEPTH.\n");

			int tmp = -1;

			if (type==1)
			{
				if ( !check_missing(l_pos, 1, line) )
					tmp = *reinterpret_cast<const int8_t*>(&line[l_pos]);
			}
			else if (type==2)
			{
				if ( !check_missing(l_pos, 2, line) )
					tmp = *reinterpret_cast<const int16_t*>(&line[l_pos]);
			}
			else if (type==3)
			{
				if ( !check_missing(l_pos, 3, line) )
					tmp = *reinterpret_cast<const int32_t*>(&line[l_pos]);
			}
			else if (type==5)
			{
				float tmp2 = -1;
				if ( !check_missing(l_pos, 5, line) )
					tmp2 = *reinterpret_cast<const float*>(&line[l_pos]);
				tmp = (int)tmp2;
			}
			else
				LOG.error("Error: Invalid type for DEPTH.\n");

			set_indv_DEPTH(indv, tmp);
		}
		else if ((int)ui == FT_idx)
		{
			if (type == 7)
			{
				vector<char> tmp;
				tmp.resize( size*sizeof(char) );
				memcpy(&tmp[0], &line[l_pos], size*sizeof(char));
				set_indv_GFILTER(indv, tmp);
			}
			else
				LOG.one_off_warning("Warning: FT values must be encoded in string format.\n");
		}
	}
	// Set missing return values if requested a value, but couldn't find it
	if (GT && (parsed_GT[indv] == false))
	{
		set_indv_GENOTYPE_and_PHASE(indv, make_pair(-1,-1), '/');
	}
	if (GQ && (parsed_GQ[indv] == false))
	{
		set_indv_GQUALITY(indv, -1);
	}
	if (DP && (parsed_DP[indv] == false))
	{
		set_indv_DEPTH(indv, -1);
	}
	if (FT && (parsed_FT[indv] == false))
	{
		set_indv_GFILTER(indv, "");
	}
}

// Assembly:
subq $0x348, %rsp            # imm = 0x348
movl %r8d, 0x128(%rsp)
movl %ecx, %eax
movl 0x128(%rsp), %ecx
movl %eax, 0x12c(%rsp)
movl %edx, %eax
movl 0x12c(%rsp), %edx
movl %eax, 0x130(%rsp)
movl %esi, %eax
movl 0x130(%rsp), %esi
movl %eax, 0x134(%rsp)
movq %rdi, %r8
movl 0x134(%rsp), %edi
movb %r9b, %al
movq %r8, 0x340(%rsp)
movl %edi, 0x33c(%rsp)
andb $0x1, %sil
movb %sil, 0x33b(%rsp)
andb $0x1, %dl
movb %dl, 0x33a(%rsp)
andb $0x1, %cl
movb %cl, 0x339(%rsp)
andb $0x1, %al
movb %al, 0x338(%rsp)
movq 0x340(%rsp), %rax
movq %rax, 0x138(%rsp)
movb 0x3d9(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x35527
movq 0x138(%rsp), %rdi
movq (%rdi), %rax
movl $0x1, %esi
callq *0x18(%rax)
movq 0x138(%rsp), %rax
movb 0x3dd(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x3554c
movq 0x138(%rsp), %rdi
callq 0x56ee0
leaq 0x308(%rsp), %rdi
callq 0xea00
xorl %eax, %eax
testb $0x1, 0x33b(%rsp)
movb %al, 0x127(%rsp)
je 0x355f5
movq 0x138(%rsp), %rdi
addq $0x560, %rdi            # imm = 0x560
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0x110(%rsp)
movq %rax, 0x118(%rsp)
jmp 0x3559f
movq 0x110(%rsp), %rax
movq 0x118(%rsp), %rcx
movq %rcx, 0x2f8(%rsp)
movq %rax, 0x300(%rsp)
leaq 0x2f8(%rsp), %rdi
callq 0x10310
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x127(%rsp)
jne 0x355f5
movq 0x138(%rsp), %rax
cmpl $-0x1, 0x630(%rax)
setne %al
movb %al, 0x127(%rsp)
movb 0x127(%rsp), %al
testb $0x1, %al
jne 0x35602
jmp 0x3563b
movq 0x138(%rsp), %rsi
addq $0x630, %rsi            # imm = 0x630
leaq 0x308(%rsp), %rdi
callq 0xea50
jmp 0x35620
jmp 0x3563b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0x36578
xorl %eax, %eax
testb $0x1, 0x33a(%rsp)
movb %al, 0x10f(%rsp)
je 0x356d7
movq 0x138(%rsp), %rdi
addq $0x588, %rdi            # imm = 0x588
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0xf8(%rsp)
movq %rax, 0x100(%rsp)
jmp 0x35681
movq 0xf8(%rsp), %rax
movq 0x100(%rsp), %rcx
movq %rcx, 0x2d8(%rsp)
movq %rax, 0x2e0(%rsp)
leaq 0x2d8(%rsp), %rdi
callq 0x10310
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x10f(%rsp)
jne 0x356d7
movq 0x138(%rsp), %rax
cmpl $-0x1, 0x634(%rax)
setne %al
movb %al, 0x10f(%rsp)
movb 0x10f(%rsp), %al
testb $0x1, %al
jne 0x356e4
jmp 0x35704
movq 0x138(%rsp), %rsi
addq $0x634, %rsi            # imm = 0x634
leaq 0x308(%rsp), %rdi
callq 0xea50
jmp 0x35702
jmp 0x35704
xorl %eax, %eax
testb $0x1, 0x339(%rsp)
movb %al, 0xf7(%rsp)
je 0x357a0
movq 0x138(%rsp), %rdi
addq $0x5b0, %rdi            # imm = 0x5B0
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0xe0(%rsp)
movq %rax, 0xe8(%rsp)
jmp 0x3574a
movq 0xe0(%rsp), %rax
movq 0xe8(%rsp), %rcx
movq %rcx, 0x2c8(%rsp)
movq %rax, 0x2d0(%rsp)
leaq 0x2c8(%rsp), %rdi
callq 0x10310
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0xf7(%rsp)
jne 0x357a0
movq 0x138(%rsp), %rax
cmpl $-0x1, 0x638(%rax)
setne %al
movb %al, 0xf7(%rsp)
movb 0xf7(%rsp), %al
testb $0x1, %al
jne 0x357ad
jmp 0x357cd
movq 0x138(%rsp), %rsi
addq $0x638, %rsi            # imm = 0x638
leaq 0x308(%rsp), %rdi
callq 0xea50
jmp 0x357cb
jmp 0x357cd
xorl %eax, %eax
testb $0x1, 0x338(%rsp)
movb %al, 0xdf(%rsp)
je 0x35869
movq 0x138(%rsp), %rdi
addq $0x5d8, %rdi            # imm = 0x5D8
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0xc8(%rsp)
movq %rax, 0xd0(%rsp)
jmp 0x35813
movq 0xc8(%rsp), %rax
movq 0xd0(%rsp), %rcx
movq %rcx, 0x2b8(%rsp)
movq %rax, 0x2c0(%rsp)
leaq 0x2b8(%rsp), %rdi
callq 0x10310
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0xdf(%rsp)
jne 0x35869
movq 0x138(%rsp), %rax
cmpl $-0x1, 0x63c(%rax)
setne %al
movb %al, 0xdf(%rsp)
movb 0xdf(%rsp), %al
testb $0x1, %al
jne 0x35876
jmp 0x35896
movq 0x138(%rsp), %rsi
addq $0x63c, %rsi            # imm = 0x63C
leaq 0x308(%rsp), %rdi
callq 0xea50
jmp 0x35894
jmp 0x35896
movl $0x0, 0x2b4(%rsp)
movl 0x2b4(%rsp), %eax
movq %rax, 0xc0(%rsp)
leaq 0x308(%rsp), %rdi
callq 0x10be0
movq %rax, %rcx
movq 0xc0(%rsp), %rax
cmpq %rcx, %rax
jae 0x36213
movl 0x2b4(%rsp), %eax
movl %eax, %esi
leaq 0x308(%rsp), %rdi
callq 0xecf0
movq 0x138(%rsp), %rdi
movl (%rax), %eax
movl %eax, 0x324(%rsp)
addq $0x658, %rdi            # imm = 0x658
movl 0x324(%rsp), %eax
movl %eax, %esi
callq 0xe8b0
movq 0x138(%rsp), %rdi
movl (%rax), %eax
movl %eax, 0x32c(%rsp)
addq $0x670, %rdi            # imm = 0x670
movl 0x324(%rsp), %eax
movl %eax, %esi
callq 0xe8b0
movq 0x138(%rsp), %rdi
movl (%rax), %eax
movl %eax, 0x328(%rsp)
addq $0x688, %rdi            # imm = 0x688
movl 0x324(%rsp), %eax
movl %eax, %esi
callq 0xe8b0
movq 0x138(%rsp), %rdi
movl (%rax), %eax
movl %eax, 0x330(%rsp)
addq $0x640, %rdi            # imm = 0x640
movl 0x324(%rsp), %eax
movl %eax, %esi
callq 0xe8b0
movq 0x138(%rsp), %rcx
movl (%rax), %eax
movl 0x33c(%rsp), %edx
imull 0x330(%rsp), %edx
addl %edx, %eax
movl %eax, 0x334(%rsp)
movl 0x324(%rsp), %eax
cmpl 0x630(%rcx), %eax
jne 0x359db
movq 0x138(%rsp), %rdi
movl 0x33c(%rsp), %esi
leaq 0x334(%rsp), %rdx
leaq 0x328(%rsp), %rcx
callq 0x57c30
jmp 0x359d6
jmp 0x361fb
movq 0x138(%rsp), %rcx
movl 0x324(%rsp), %eax
cmpl 0x634(%rcx), %eax
jne 0x35ca9
cmpl $0x1, 0x328(%rsp)
jbe 0x35ab7
leaq 0x28f(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x69f0
movq 0xb8(%rsp), %rdx
leaq 0x3f530(%rip), %rsi     # 0x74f58
leaq 0x290(%rsp), %rdi
callq 0x67c0
jmp 0x35a37
leaq 0x5dbc2(%rip), %rdi     # 0x93600
leaq 0x290(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x35a52
leaq 0x290(%rsp), %rdi
callq 0x6b50
leaq 0x28f(%rsp), %rdi
callq 0x65f0
jmp 0x35ab7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0x35aa5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x6b50
leaq 0x28f(%rsp), %rdi
callq 0x65f0
jmp 0x36578
cmpl $0x5, 0x32c(%rsp)
jne 0x35af0
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movss (%rax), %xmm0
movss %xmm0, 0x288(%rsp)
jmp 0x35c86
cmpl $0x1, 0x32c(%rsp)
jne 0x35b3a
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movb (%rax), %al
movb %al, 0x287(%rsp)
movsbl 0x287(%rsp), %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x288(%rsp)
jmp 0x35c84
cmpl $0x2, 0x32c(%rsp)
jne 0x35b86
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movw (%rax), %ax
movw %ax, 0x284(%rsp)
movswl 0x284(%rsp), %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x288(%rsp)
jmp 0x35c82
cmpl $0x3, 0x32c(%rsp)
jne 0x35bcd
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movl (%rax), %eax
movl %eax, 0x280(%rsp)
cvtsi2ssl 0x280(%rsp), %xmm0
movss %xmm0, 0x288(%rsp)
jmp 0x35c80
leaq 0x25f(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x69f0
movq 0xb0(%rsp), %rdx
leaq 0x3f395(%rip), %rsi     # 0x74f86
leaq 0x260(%rsp), %rdi
callq 0x67c0
jmp 0x35c00
leaq 0x5d9f9(%rip), %rdi     # 0x93600
leaq 0x260(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x35c1b
leaq 0x260(%rsp), %rdi
callq 0x6b50
leaq 0x25f(%rsp), %rdi
callq 0x65f0
jmp 0x35c80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0x35c6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x260(%rsp), %rdi
callq 0x6b50
leaq 0x25f(%rsp), %rdi
callq 0x65f0
jmp 0x36578
jmp 0x35c82
jmp 0x35c84
jmp 0x35c86
movq 0x138(%rsp), %rdi
movl 0x33c(%rsp), %esi
leaq 0x288(%rsp), %rdx
callq 0x58790
jmp 0x35ca4
jmp 0x361f9
movq 0x138(%rsp), %rcx
movl 0x324(%rsp), %eax
cmpl 0x638(%rcx), %eax
jne 0x36048
cmpl $0x1, 0x328(%rsp)
jbe 0x35d85
leaq 0x237(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x69f0
movq 0xa8(%rsp), %rdx
leaq 0x3f2b2(%rip), %rsi     # 0x74fa8
leaq 0x238(%rsp), %rdi
callq 0x67c0
jmp 0x35d05
leaq 0x5d8f4(%rip), %rdi     # 0x93600
leaq 0x238(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x35d20
leaq 0x238(%rsp), %rdi
callq 0x6b50
leaq 0x237(%rsp), %rdi
callq 0x65f0
jmp 0x35d85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0x35d73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x6b50
leaq 0x237(%rsp), %rdi
callq 0x65f0
jmp 0x36578
movl $0xffffffff, 0x230(%rsp) # imm = 0xFFFFFFFF
cmpl $0x1, 0x32c(%rsp)
jne 0x35dff
movq 0x138(%rsp), %rdi
movl 0x334(%rsp), %esi
movq %rdi, %rcx
addq $0x3c0, %rcx            # imm = 0x3C0
movl $0x1, %edx
callq 0x49240
movb %al, 0xa7(%rsp)
jmp 0x35dc6
movb 0xa7(%rsp), %al
testb $0x1, %al
jne 0x35dfa
jmp 0x35dd3
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movsbl (%rax), %eax
movl %eax, 0x230(%rsp)
jmp 0x36026
cmpl $0x2, 0x32c(%rsp)
jne 0x35e6e
movq 0x138(%rsp), %rdi
movl 0x334(%rsp), %esi
movq %rdi, %rcx
addq $0x3c0, %rcx            # imm = 0x3C0
movl $0x2, %edx
callq 0x49240
movb %al, 0xa6(%rsp)
jmp 0x35e35
movb 0xa6(%rsp), %al
testb $0x1, %al
jne 0x35e69
jmp 0x35e42
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movswl (%rax), %eax
movl %eax, 0x230(%rsp)
jmp 0x36024
cmpl $0x3, 0x32c(%rsp)
jne 0x35edc
movq 0x138(%rsp), %rdi
movl 0x334(%rsp), %esi
movq %rdi, %rcx
addq $0x3c0, %rcx            # imm = 0x3C0
movl $0x3, %edx
callq 0x49240
movb %al, 0xa5(%rsp)
jmp 0x35ea4
movb 0xa5(%rsp), %al
testb $0x1, %al
jne 0x35ed7
jmp 0x35eb1
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movl (%rax), %eax
movl %eax, 0x230(%rsp)
jmp 0x36022
cmpl $0x5, 0x32c(%rsp)
jne 0x35f6d
movq 0x138(%rsp), %rdi
movl $0xbf800000, 0x22c(%rsp) # imm = 0xBF800000
movl 0x334(%rsp), %esi
movq %rdi, %rcx
addq $0x3c0, %rcx            # imm = 0x3C0
movl $0x5, %edx
callq 0x49240
movb %al, 0xa4(%rsp)
jmp 0x35f21
movb 0xa4(%rsp), %al
testb $0x1, %al
jne 0x35f58
jmp 0x35f2e
movq 0x138(%rsp), %rdi
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movss (%rax), %xmm0
movss %xmm0, 0x22c(%rsp)
cvttss2si 0x22c(%rsp), %eax
movl %eax, 0x230(%rsp)
jmp 0x36020
leaq 0x207(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x69f0
movq 0x98(%rsp), %rdx
leaq 0x3f043(%rip), %rsi     # 0x74fd4
leaq 0x208(%rsp), %rdi
callq 0x67c0
jmp 0x35fa0
leaq 0x5d659(%rip), %rdi     # 0x93600
leaq 0x208(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x35fbb
leaq 0x208(%rsp), %rdi
callq 0x6b50
leaq 0x207(%rsp), %rdi
callq 0x65f0
jmp 0x36020
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0x3600e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x208(%rsp), %rdi
callq 0x6b50
leaq 0x207(%rsp), %rdi
callq 0x65f0
jmp 0x36578
jmp 0x36022
jmp 0x36024
jmp 0x36026
movq 0x138(%rsp), %rdi
movl 0x33c(%rsp), %esi
movl 0x230(%rsp), %edx
callq 0x4f990
jmp 0x36043
jmp 0x361f7
movq 0x138(%rsp), %rcx
movl 0x324(%rsp), %eax
cmpl 0x63c(%rcx), %eax
jne 0x361f5
cmpl $0x7, 0x32c(%rsp)
jne 0x3614b
leaq 0x1e8(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x2a300
movq 0x90(%rsp), %rdi
movl 0x328(%rsp), %eax
movl %eax, %esi
callq 0x20910
jmp 0x3609e
xorl %eax, %eax
movl %eax, %esi
leaq 0x1e8(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x209b0
movq 0x138(%rsp), %rdi
movq %rax, 0x80(%rsp)
addq $0x3c0, %rdi            # imm = 0x3C0
movl 0x334(%rsp), %eax
movl %eax, %esi
callq 0x209b0
movq 0x80(%rsp), %rdi
movq %rax, %rsi
movl 0x328(%rsp), %eax
movl %eax, %edx
callq 0x6430
movq 0x138(%rsp), %rdi
movq 0x88(%rsp), %rdx
movl 0x33c(%rsp), %esi
callq 0x58900
jmp 0x36113
leaq 0x1e8(%rsp), %rdi
callq 0x267c0
jmp 0x361f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x1e8(%rsp), %rdi
callq 0x267c0
jmp 0x36578
leaq 0x1c7(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x69f0
movq 0x78(%rsp), %rdx
leaq 0x3ee8b(%rip), %rsi     # 0x74ff4
leaq 0x1c8(%rsp), %rdi
callq 0x67c0
jmp 0x36178
leaq 0x5d481(%rip), %rdi     # 0x93600
leaq 0x1c8(%rsp), %rsi
callq 0x71610
jmp 0x3618e
leaq 0x1c8(%rsp), %rdi
callq 0x6b50
leaq 0x1c7(%rsp), %rdi
callq 0x65f0
jmp 0x361f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0x361e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x6b50
leaq 0x1c7(%rsp), %rdi
callq 0x65f0
jmp 0x36578
jmp 0x361f5
jmp 0x361f7
jmp 0x361f9
jmp 0x361fb
jmp 0x361fd
movl 0x2b4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2b4(%rsp)
jmp 0x358a1
xorl %eax, %eax
testb $0x1, 0x33b(%rsp)
movb %al, 0x77(%rsp)
je 0x36282
movq 0x138(%rsp), %rdi
addq $0x560, %rdi            # imm = 0x560
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0x60(%rsp)
movq %rax, 0x68(%rsp)
jmp 0x3624c
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
movq %rcx, 0x1b0(%rsp)
movq %rax, 0x1b8(%rsp)
leaq 0x1b0(%rsp), %rdi
callq 0x10310
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
sete %al
movb %al, 0x77(%rsp)
movb 0x77(%rsp), %al
testb $0x1, %al
jne 0x3628c
jmp 0x362f8
movl 0x33c(%rsp), %eax
movl %eax, 0x54(%rsp)
movl $0xffffffff, 0x1a4(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x1a0(%rsp) # imm = 0xFFFFFFFF
leaq 0x1a4(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x397b0
movq %rax, 0x58(%rsp)
jmp 0x362c9
movl 0x54(%rsp), %esi
movq 0x138(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, 0x1a8(%rsp)
leaq 0x1a8(%rsp), %rdx
movl $0x2f, %ecx
callq 0x583f0
jmp 0x362f6
jmp 0x362f8
xorl %eax, %eax
testb $0x1, 0x33a(%rsp)
movb %al, 0x53(%rsp)
je 0x36367
movq 0x138(%rsp), %rdi
addq $0x588, %rdi            # imm = 0x588
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0x40(%rsp)
movq %rax, 0x48(%rsp)
jmp 0x36331
movq 0x40(%rsp), %rax
movq 0x48(%rsp), %rcx
movq %rcx, 0x190(%rsp)
movq %rax, 0x198(%rsp)
leaq 0x190(%rsp), %rdi
callq 0x10310
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
sete %al
movb %al, 0x53(%rsp)
movb 0x53(%rsp), %al
testb $0x1, %al
jne 0x36371
jmp 0x3639c
movq 0x138(%rsp), %rdi
movl 0x33c(%rsp), %esi
movl $0xbf800000, 0x18c(%rsp) # imm = 0xBF800000
leaq 0x18c(%rsp), %rdx
callq 0x58790
jmp 0x3639a
jmp 0x3639c
xorl %eax, %eax
testb $0x1, 0x339(%rsp)
movb %al, 0x3f(%rsp)
je 0x3640b
movq 0x138(%rsp), %rdi
addq $0x5b0, %rdi            # imm = 0x5B0
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0x28(%rsp)
movq %rax, 0x30(%rsp)
jmp 0x363d5
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rcx
movq %rcx, 0x178(%rsp)
movq %rax, 0x180(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x10310
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
sete %al
movb %al, 0x3f(%rsp)
movb 0x3f(%rsp), %al
testb $0x1, %al
jne 0x36415
jmp 0x36432
movq 0x138(%rsp), %rdi
movl 0x33c(%rsp), %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x4f990
jmp 0x36430
jmp 0x36432
xorl %eax, %eax
testb $0x1, 0x338(%rsp)
movb %al, 0x27(%rsp)
je 0x364a1
movq 0x138(%rsp), %rdi
addq $0x5d8, %rdi            # imm = 0x5D8
movl 0x33c(%rsp), %eax
movl %eax, %esi
callq 0x102b0
movq %rdx, 0x10(%rsp)
movq %rax, 0x18(%rsp)
jmp 0x3646b
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, 0x168(%rsp)
movq %rax, 0x170(%rsp)
leaq 0x168(%rsp), %rdi
callq 0x10310
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
sete %al
movb %al, 0x27(%rsp)
movb 0x27(%rsp), %al
testb $0x1, %al
jne 0x364ae
jmp 0x36563
movl 0x33c(%rsp), %eax
movl %eax, 0x4(%rsp)
leaq 0x147(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x69f0
movq 0x8(%rsp), %rdx
leaq 0x3f852(%rip), %rsi     # 0x75d29
leaq 0x148(%rsp), %rdi
callq 0x67c0
jmp 0x364e6
movl 0x4(%rsp), %esi
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0x58ca0
jmp 0x36501
leaq 0x148(%rsp), %rdi
callq 0x6b50
leaq 0x147(%rsp), %rdi
callq 0x65f0
jmp 0x36563
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0x36554
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x148(%rsp), %rdi
callq 0x6b50
leaq 0x147(%rsp), %rdi
callq 0x65f0
jmp 0x36578
leaq 0x308(%rsp), %rdi
callq 0xed70
addq $0x348, %rsp            # imm = 0x348
retq
leaq 0x308(%rsp), %rdi
callq 0xed70
movq 0x2f0(%rsp), %rdi
callq 0x69e0
nopw %cs:(%rax,%rax)