// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %rax
movq -0x18(%rax), %rdi
addq %rsi, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1b75a(%rip), %rsi     # 0x378d8
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b7e9(%rip), %rsi     # 0x3798f
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movslq %ebp, %rax
movq 0x240(%rbx), %rcx
imulq $0xb0, %rax, %r13
movl 0x50(%rcx,%r13), %esi
movq %r15, %rdi
callq 0x75c0
cmpl $0x0, 0x13e90(%rbx)
je 0x1c269
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1b8ed(%rip), %rsi     # 0x37afc
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b55a(%rip), %rsi     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1b773(%rip), %rsi     # 0x379cf
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x240(%rbx), %rax
movb 0x9c(%rax,%r13), %cl
cmpb $0x1, %cl
jne 0x1c2b6
movslq 0x5b4(%rbx), %rcx
imulq $0xb0, %rcx, %rcx
leaq (%rax,%rcx), %rdi
addq $0x58, %rdi
leaq 0x1b2eb(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
jne 0x1c6d8
movq 0x240(%rbx), %rax
movb 0x9c(%rax,%r13), %cl
testb $0x1, %cl
je 0x1c2ec
movslq 0x5b4(%rbx), %rcx
imulq $0xb0, %rcx, %rcx
leaq (%rax,%rcx), %rdi
addq $0x58, %rdi
leaq 0x1b2ad(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
je 0x1c6d8
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1b2a9(%rip), %rsi     # 0x375a4
callq 0x70c0
testl %eax, %eax
je 0x1c77e
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1b291(%rip), %rsi     # 0x375af
callq 0x70c0
testl %eax, %eax
je 0x1cd00
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1be4b(%rip), %rsi     # 0x3818c
callq 0x70c0
testl %eax, %eax
je 0x1c38c
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1b2f2(%rip), %rsi     # 0x37652
callq 0x70c0
testl %eax, %eax
je 0x1c38c
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1b2d1(%rip), %rsi     # 0x37650
callq 0x70c0
testl %eax, %eax
jne 0x1cb1e
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1b1e3(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
je 0x1cb1e
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x342(%rax,%rbx)
jne 0x1c6a2
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1b203(%rip), %rsi     # 0x375f8
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1b6a9(%rip), %rsi     # 0x37b03
movl $0xd, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1b2f4(%rip), %r15     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1b286(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1b047(%rip), %rsi     # 0x37540
movl $0xc, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r12, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1b5b2(%rip), %rsi     # 0x37b11
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1b022(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1c6a2
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1b277(%rip), %rsi     # 0x378c1
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b0c0(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1b484(%rip), %rsi     # 0x37b19
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r14
leaq 0x1b32c(%rip), %rsi     # 0x379ff
jmp 0x1d024
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r14
leaq 0x1b2f6(%rip), %rsi     # 0x379ff
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1b1dc(%rip), %rsi     # 0x3790c
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1b2b1(%rip), %rsi     # 0x37a09
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x240(%rbx), %rax
movq 0x8(%rax,%r13), %rsi
movq 0x10(%rax,%r13), %rdx
movq %r14, %rdi
jmp 0x1d0a8
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x342(%rax,%rbx)
jne 0x1ca71
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1ae34(%rip), %rsi     # 0x375f8
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1b2da(%rip), %rsi     # 0x37b03
movl $0xd, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1af25(%rip), %r15     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1aeb7(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1ac78(%rip), %rsi     # 0x37540
movl $0xc, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r12, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1b1e3(%rip), %rsi     # 0x37b11
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1ac53(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1ca71
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1aea8(%rip), %rsi     # 0x378c1
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1acf1(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1b0b5(%rip), %rsi     # 0x37b19
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r14
leaq 0x1af6b(%rip), %rsi     # 0x37a0d
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1ae43(%rip), %rsi     # 0x3790c
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1af18(%rip), %rsi     # 0x37a09
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x240(%rbx), %rax
movq 0x8(%rax,%r13), %rsi
movq 0x10(%rax,%r13), %rdx
movq %r14, %rdi
callq 0x73a0
movb $0x63, %al
jmp 0x1d0af
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1aa51(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
jne 0x1d0bd
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x342(%rax,%rbx)
je 0x1cc3f
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1af3b(%rip), %rsi     # 0x37ac2
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1abc7(%rip), %r15     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1af20(%rip), %rsi     # 0x37b1f
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r14
leaq 0x1ada9(%rip), %rsi     # 0x37a19
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1ac75(%rip), %rsi     # 0x3790c
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1ad4a(%rip), %rsi     # 0x37a09
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x240(%rbx), %rax
movq 0x8(%rax,%r13), %rsi
movq 0x10(%rax,%r13), %rdx
movq %r14, %rdi
callq 0x73a0
leaq 0x1af30(%rip), %rsi     # 0x37c1c
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movb $0x66, %al
jmp 0x1d0af
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1a86f(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
je 0x1c32b
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x342(%rax,%rbx)
jne 0x1cff3
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1a88f(%rip), %rsi     # 0x375f8
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1ad35(%rip), %rsi     # 0x37b03
movl $0xd, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1a980(%rip), %r15     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1a912(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1a6d3(%rip), %rsi     # 0x37540
movl $0xc, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r12, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1ac3e(%rip), %rsi     # 0x37b11
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x3, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1a6ae(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1cff3
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1a926(%rip), %rsi     # 0x378c1
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1a76f(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1ab33(%rip), %rsi     # 0x37b19
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r14
leaq 0x1a9ef(%rip), %rsi     # 0x37a13
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1a8c1(%rip), %rsi     # 0x3790c
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r14, %rdi
callq 0x75c0
movq %rax, %r14
leaq 0x1a996(%rip), %rsi     # 0x37a09
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x240(%rbx), %rax
movq 0x8(%rax,%r13), %rsi
movq 0x10(%rax,%r13), %rdx
movq %r14, %rdi
callq 0x73a0
leaq 0x1ab7c(%rip), %rsi     # 0x37c1c
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movb $0x69, %al
movslq 0x310(%rbx), %rcx
movb %al, 0x342(%rcx,%rbx)
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1a57d(%rip), %rsi     # 0x37650
callq 0x70c0
testl %eax, %eax
jne 0x1d0e3
movb $0x1, 0x219(%rbx)
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1a48c(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
jne 0x1d109
movb $0x1, 0x340(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq