// File: gioannides[P]Language_Processors/src/../include/ast/class_forward_declarations.hpp
// Function: store_locals(Context&, std::basic_ofstream<char, std::char_traits<char>>&, int)
inline void store_locals(Context& contxt, std::ofstream& file, int good_index)
{
	file << std::endl << "\taddiu $" << contxt.Regs+2 << ", $sp, " << contxt.Variables[good_index].offset; 
	if(contxt.nested_arrays){	
		file << std::endl << "\tadd $" << contxt.Regs+2 << ", $" << contxt.Regs+2 << ", $25";
	}
	if(contxt.Variables[good_index].Pointer && contxt.Variables[contxt.good_i].DataType != "float" ){
		file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", 0($" << contxt.Regs+2 << ") #" << contxt.Variables[good_index].id;
			
		contxt.regType[contxt.Regs+1]='i';
	}
	else if(contxt.Variables[good_index].Pointer && contxt.Variables[contxt.good_i].DataType == "float"){

		file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", 0($" << contxt.Regs+2 << ") #" << contxt.Variables[good_index].id;	
		
		contxt.regType[contxt.Regs+1]='i';

	}
	
	else if(contxt.Variables[good_index].DataType == "char") {
		if(contxt.regType[contxt.Regs+1] == 'f'){
			file << std::endl << ".set macro" << std::endl;
			file << std::endl << "\ttrunc.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1 << ",$" << contxt.Regs+1;
			file << std::endl << ".set nomacro" << std::endl;
			file << std::endl << "\tmfc1\t$" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
			file << std::endl << "\tnop" << std::endl;
			if(contxt.regType[contxt.Regs+1] == 'u'){
				file << std::endl << "\tandi\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",0xFF";
			}
		}
		file << std::endl << "\tsb\t$" << contxt.Regs+1 << ", 0($" << contxt.Regs+2 << ") #" << contxt.Variables[good_index].id;
		contxt.regType[contxt.Regs+1]='c';
	}
	else if(contxt.Variables[good_index].DataType=="short" && contxt.Variables[good_index].DataType != "float"){
		if(contxt.regType[contxt.Regs+1] == 'f'){
			file << std::endl << ".set macro" << std::endl;
			file << std::endl << "\ttrunc.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1 << ",$" << contxt.Regs+1;
			file << std::endl << ".set nomacro" << std::endl;
			file << std::endl << "\tmfc1\t$" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
			file << std::endl << "\tnop" << std::endl;
			if(contxt.regType[contxt.Regs+1] == 'u'){
				file << std::endl << "\tandi\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",0xFF";
			}
		}	
		file << std::endl << "\tsh\t$" << contxt.Regs+1 << ", 0($" << contxt.Regs+2 << ") #" << contxt.Variables[good_index].id << "\n";
		contxt.regType[contxt.Regs+1]='i';
	}				
	else if((contxt.Variables[good_index].DataType == "int" || contxt.Variables[good_index].DataType == "signed" || contxt.Variables[good_index].DataType =="unsigned") && contxt.Variables[good_index].DataType != "float"){
		if(contxt.regType[contxt.Regs+1] == 'f'){
			file << std::endl << ".set macro" << std::endl;
			file << std::endl << "\ttrunc.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1 << ",$" << contxt.Regs+1;
			file << std::endl << ".set nomacro" << std::endl;
			file << std::endl << "\tmfc1\t$" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
			file << std::endl << "\tnop" << std::endl;
			if(contxt.regType[contxt.Regs+1] == 'u'){
				file << std::endl << "\tandi\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",0xFF";
			}
		}	
		file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", 0($" << contxt.Regs+2 << ") #" << contxt.Variables[good_index].id << "\n";
		contxt.regType[contxt.Regs+1]='i';
	}
	else if(contxt.Variables[good_index].DataType == "float"){ //TODO: CHECK OK		
		if(contxt.regType[contxt.Regs+1] != 'f'){
			file << std::endl << "\tmtc1\t$" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
			file << std::endl << "\tcvt.s.w\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
		}

		file << std::endl << "\tswc1\t$f" << contxt.Regs+1 << ", 0($" << contxt.Regs+2 << ") #" << contxt.Variables[good_index].id << "\n";
		contxt.regType[contxt.Regs+1]='f';
	}
	if(contxt.Variables[good_index].DataType == "unsigned") {
		contxt.is_unsigned = true;
	}
	if(contxt.Variables[good_index].DataType == "float") {
		contxt.float_ = true;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq 0x63782(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3fe9a(%rip), %rsi     # 0x64697
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3ff2d(%rip), %rsi     # 0x6474e
callq 0x8400
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq -0x20(%rbp), %rdi
movl 0x50(%rax), %esi
callq 0x8730
movq -0x8(%rbp), %rax
cmpl $0x0, 0x13e90(%rax)
je 0x248be
movq -0x10(%rbp), %rdi
movq 0x6370e(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4004a(%rip), %rsi     # 0x648bb
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fcbb(%rip), %rsi     # 0x64550
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fed5(%rip), %rsi     # 0x6478e
callq 0x8400
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
testb $0x1, 0x9c(%rax)
je 0x249c6
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x8(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3fa3c(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x24916
jmp 0x249c6
movq -0x10(%rbp), %rdi
movq 0x6364f(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3fe8e(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fd77(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fe50(%rip), %rsi     # 0x647c8
callq 0x8400
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq -0x28(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x25632
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
testb $0x1, 0x9c(%rax)
je 0x24ace
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x8(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3f934(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x24a1e
jmp 0x24ace
movq -0x10(%rbp), %rdi
movq 0x63547(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3fd86(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fc6f(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fd48(%rip), %rsi     # 0x647c8
callq 0x8400
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq -0x30(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x25630
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3f873(%rip), %rsi     # 0x64363
callq 0x9e30
testb $0x1, %al
jne 0x24afe
jmp 0x24dbb
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
jne 0x24d0b
movq -0x10(%rbp), %rdi
movq 0x63442(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f87a(%rip), %rsi     # 0x643b7
callq 0x8400
movq %rax, %rdi
movq 0x63424(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x10(%rbp), %rdi
movq 0x63414(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3fd57(%rip), %rsi     # 0x648c2
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f9a5(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f93d(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x63398(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f718(%rip), %rsi     # 0x642ff
callq 0x8400
movq %rax, %rdi
movq 0x6337a(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x10(%rbp), %rdi
movq 0x6336a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3fcbb(%rip), %rsi     # 0x648d0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f8fb(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x63312(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f744(%rip), %rsi     # 0x643b1
callq 0x8400
movq %rax, %rdi
movq 0x632f4(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x75, %eax
jne 0x24d09
movq -0x10(%rbp), %rdi
movq 0x632c3(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f9c4(%rip), %rsi     # 0x64680
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f810(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fbd4(%rip), %rsi     # 0x648d8
callq 0x8400
jmp 0x24d0b
movq -0x10(%rbp), %rdi
movq 0x6325a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3faa7(%rip), %rsi     # 0x647cc
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f982(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3fa5b(%rip), %rsi     # 0x647c8
callq 0x8400
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq -0x38(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x63, 0x341(%rax,%rcx)
jmp 0x2562e
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3f591(%rip), %rsi     # 0x6436e
callq 0x9e30
testb $0x1, %al
jne 0x24deb
jmp 0x250e7
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3f537(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x24e1b
jmp 0x250e7
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
jne 0x25028
movq -0x10(%rbp), %rdi
movq 0x63125(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f55d(%rip), %rsi     # 0x643b7
callq 0x8400
movq %rax, %rdi
movq 0x63107(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x10(%rbp), %rdi
movq 0x630f7(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3fa3a(%rip), %rsi     # 0x648c2
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f688(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f620(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x6307b(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f3fb(%rip), %rsi     # 0x642ff
callq 0x8400
movq %rax, %rdi
movq 0x6305d(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x10(%rbp), %rdi
movq 0x6304d(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f99e(%rip), %rsi     # 0x648d0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f5de(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x62ff5(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f427(%rip), %rsi     # 0x643b1
callq 0x8400
movq %rax, %rdi
movq 0x62fd7(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x75, %eax
jne 0x25026
movq -0x10(%rbp), %rdi
movq 0x62fa6(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f6a7(%rip), %rsi     # 0x64680
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f4f3(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f8b7(%rip), %rsi     # 0x648d8
callq 0x8400
jmp 0x25028
movq -0x10(%rbp), %rdi
movq 0x62f3d(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f790(%rip), %rsi     # 0x647d2
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f665(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f73e(%rip), %rsi     # 0x647c8
callq 0x8400
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq -0x40(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x3f91a(%rip), %rsi     # 0x649db
callq 0x8400
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x2562c
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3fe42(%rip), %rsi     # 0x64f4b
callq 0x9e30
testb $0x1, %al
jne 0x2516d
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3f2dd(%rip), %rsi     # 0x64411
callq 0x9e30
testb $0x1, %al
jne 0x2516d
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3f2b0(%rip), %rsi     # 0x6440f
callq 0x9e30
testb $0x1, %al
jne 0x2516d
jmp 0x25469
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3f1b5(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x2519d
jmp 0x25469
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
jne 0x253aa
movq -0x10(%rbp), %rdi
movq 0x62da3(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f1db(%rip), %rsi     # 0x643b7
callq 0x8400
movq %rax, %rdi
movq 0x62d85(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x10(%rbp), %rdi
movq 0x62d75(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f6b8(%rip), %rsi     # 0x648c2
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f306(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f29e(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x62cf9(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f079(%rip), %rsi     # 0x642ff
callq 0x8400
movq %rax, %rdi
movq 0x62cdb(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x10(%rbp), %rdi
movq 0x62ccb(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f61c(%rip), %rsi     # 0x648d0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f25c(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x62c73(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f0a5(%rip), %rsi     # 0x643b1
callq 0x8400
movq %rax, %rdi
movq 0x62c55(%rip), %rsi     # 0x87f70
callq 0x8450
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x75, %eax
jne 0x253a8
movq -0x10(%rbp), %rdi
movq 0x62c24(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f325(%rip), %rsi     # 0x64680
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f171(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f535(%rip), %rsi     # 0x648d8
callq 0x8400
jmp 0x253aa
movq -0x10(%rbp), %rdi
movq 0x62bbb(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f3fa(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f2e3(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f3bc(%rip), %rsi     # 0x647c8
callq 0x8400
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq -0x48(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x3f598(%rip), %rsi     # 0x649db
callq 0x8400
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x2562a
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3eeb9(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x25499
jmp 0x25628
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
je 0x2556e
movq -0x10(%rbp), %rdi
movq 0x62aa7(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f3a9(%rip), %rsi     # 0x64881
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f038(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x62a4f(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f3ae(%rip), %rsi     # 0x648de
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3efe0(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x629f7(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x3f250(%rip), %rsi     # 0x647d8
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f11f(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x8(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x3f1f8(%rip), %rsi     # 0x647c8
callq 0x8400
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq -0x50(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x3f3d4(%rip), %rsi     # 0x649db
callq 0x8400
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x66, 0x341(%rax,%rcx)
jmp 0x2562a
jmp 0x2562c
jmp 0x2562e
jmp 0x25630
jmp 0x25632
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3edbb(%rip), %rsi     # 0x6440f
callq 0x9e30
testb $0x1, %al
jne 0x2565f
jmp 0x2566a
movq -0x8(%rbp), %rax
movb $0x1, 0x219(%rax)
movq -0x8(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x14(%rbp), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x3ecb8(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x25697
jmp 0x256a2
movq -0x8(%rbp), %rax
movb $0x1, 0x340(%rax)
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)