// File: gioannides[P]Language_Processors/src/../include/ast/ast_Expressions.cpp
// Function: AssignmentExpression::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
inline void AssignmentExpression::render_asm(std::ofstream& file, Context& contxt)  {
			
			if(AssignmentExpressionPtr != NULL) {
				contxt.rhs_of_expression = true;
				AssignmentExpressionPtr->render_asm(file,contxt);
				contxt.rhs_of_expression = false;
			}
			if(UnaryExpressionPtr != NULL && AssignmentOperator != NULL) { //!contxt.reading
				
				contxt.AssignmentOperator = *AssignmentOperator;	
				contxt.lhs_of_assignment = true;
				UnaryExpressionPtr->render_asm(file,contxt);			//TODO: This is for identifier names and values
				
				if(contxt.PointerNotStored){
					if(!contxt.PointerLHSEval){
						file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << contxt.Variables[contxt.good_i].offset << "($sp) #" << contxt.Variables[contxt.good_i].id;	
					}
					else{
						if(contxt.Variables[contxt.good_i].DataType == "char"){
						file << std::endl << "\tsb\t$" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
			
						}
						else if(contxt.Variables[contxt.good_i].DataType == "short"){
						file << std::endl << "\tsh\t$" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
						}
						else if(contxt.Variables[contxt.good_i].DataType != "float"){
						file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
						}
						else if(contxt.Variables[contxt.good_i].DataType == "float"){
						file << std::endl << "\tswc1\t$f" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
						}
		

					}
					contxt.Variables[contxt.good_i].PointerLevelsTemp = contxt.Variables[contxt.good_i].PointerLevels;
					contxt.regType[contxt.Regs+1]='i';
					contxt.PointerNotStored = false;
				}
				contxt.lhs_of_assignment = false;
				contxt.AssignmentOperator = "df";
				

				
			}				
			else if(ConditionalExpressionPtr != NULL) {
				ConditionalExpressionPtr->render_asm(file,contxt);		//THIS IS FOR IF STATEMENTS/ LOGICAL / ARITHMETIC OPERATIONS / ASSIGNEMENTS
			}
			if(contxt.argument_no.size()>=1 && contxt.argument_no[contxt.argument_no.size()-1])
			{
				file << "\n# merge\n";
				int ki=0;
				
				while(ki<contxt.Variables.size())
				{
					if(contxt.Scopes.size()-contxt.nested_function_calls && contxt.Scopes[contxt.Scopes.size()-contxt.nested_function_calls]==contxt.Variables[ki].scope)
					{ 
						int u=contxt.argument_no[contxt.argument_no.size()-1]-1;
						//file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << (contxt.argument_no-1)*4 << "($sp) #";
						if((ki+u)>=0 && contxt.Variables[ki+u].word_size==1) 
						{
							file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << u*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << (u)*4;		
							contxt.regType[contxt.Regs+1]='c';
						}				
						else if((ki+u)>=0 && contxt.Variables[ki+u].word_size==4 && contxt.Variables[ki+u].DataType != "float")
						{ 	
							file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << (u)*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << (u)*4 << "\n";	
							contxt.regType[contxt.Regs+1]='i';
						}
						else if((ki+u)>=0 && contxt.Variables[ki+u].word_size==2 && contxt.Variables[ki+u].DataType != "float")
						{ 	
							file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << u*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << (u)*4 << "\n";	
							contxt.regType[contxt.Regs+1]='i';
						}
						else if((ki+u)>=0 && contxt.Variables[ki+u].word_size==4 && contxt.Variables[ki+u].DataType == "float")
						{
							file << std::endl << "\tswc1\t$f" << contxt.Regs+1 << ", " << (u)*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << u*4 << "\n";	
							contxt.regType[contxt.Regs+1]='f';
						}
						
						if(u<4)
						{
							if((ki+u)>=0 /*&& contxt.regType[u+4] != 'f'/*&& contxt.Variables[ki+contxt.argument_no-1].DataType != "float"*/)
							{
								if(contxt.Variables[ki+u].DataType != "float"){
									file << std::endl << "\tmove\t$" << u+4 << ", $" << contxt.Regs+1 << " #load parameter " << u+1;
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 4){

									file << std::endl << "\tmov.s\t$f12" << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount+=2;
		
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 5){

									file << std::endl << "\tmov.s\t$f14" << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount=6;
		
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 6){

									file << std::endl << "\tmfc1\t$6" << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount=7;
		
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 7){

									file << std::endl << "\tmfc1\t$7"  << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount=12;
		
								}
								
								
							}
							/*else 
							{
								file << std::endl << "\tmov.s\t$f" << u+4 << ", $f" << contxt.Regs+1 << " #load parameter " << u+1; 
							*///}
						}
						ki=contxt.Variables.size();
					}
					ki++;
					
				}
			}
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, 0x20(%rax)
je 0x21a11
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movb $0x1, 0x1d1(%rcx)
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x219c0
movq -0x18(%rbp), %rax
movb $0x0, 0x1d1(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x21f87
movq -0x28(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x21f87
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdi
addq $0x318, %rdi            # imm = 0x318
callq 0x8060
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movb $0x1, 0x1d2(%rcx)
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1d1b0
movq -0x18(%rbp), %rax
testb $0x1, 0x48(%rax)
je 0x21f63
movq -0x18(%rbp), %rax
testb $0x1, 0x40(%rax)
jne 0x21b34
movq -0x10(%rbp), %rdi
movq 0x664e2(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42d21(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42efb(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x38(%rbp), %rdi
movl 0x50(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42cc9(%rip), %rsi     # 0x647c4
callq 0x8400
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x30(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
jmp 0x21ef7
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x42806(%rip), %rsi     # 0x64363
callq 0x9e30
testb $0x1, %al
jne 0x21b6b
jmp 0x21c24
movq -0x10(%rbp), %rdi
movq 0x663fa(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42c47(%rip), %rsi     # 0x647cc
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42e13(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
leaq 0x42b15(%rip), %rsi     # 0x646cd
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4381c(%rip), %rsi     # 0x653f8
callq 0x8400
movq %rax, %rdi
leaq 0x42f61(%rip), %rsi     # 0x64b4c
callq 0x8400
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x40(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
jmp 0x21ef5
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x42721(%rip), %rsi     # 0x6436e
callq 0x9e30
testb $0x1, %al
jne 0x21c5b
jmp 0x21d14
movq -0x10(%rbp), %rdi
movq 0x6630a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42b5d(%rip), %rsi     # 0x647d2
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42d23(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
leaq 0x42a25(%rip), %rsi     # 0x646cd
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4372c(%rip), %rsi     # 0x653f8
callq 0x8400
movq %rax, %rdi
leaq 0x42e71(%rip), %rsi     # 0x64b4c
callq 0x8400
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x48(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
jmp 0x21ef3
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x42607(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x21d4b
jmp 0x21e04
movq -0x10(%rbp), %rdi
movq 0x6621a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42a59(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42c33(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
leaq 0x42935(%rip), %rsi     # 0x646cd
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4363c(%rip), %rsi     # 0x653f8
callq 0x8400
movq %rax, %rdi
leaq 0x42d81(%rip), %rsi     # 0x64b4c
callq 0x8400
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x50(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
jmp 0x21ef1
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x42517(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x21e3b
jmp 0x21eef
movq -0x10(%rbp), %rdi
movq 0x6612a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42983(%rip), %rsi     # 0x647d8
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42b43(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
leaq 0x42845(%rip), %rsi     # 0x646cd
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4354c(%rip), %rsi     # 0x653f8
callq 0x8400
movq %rax, %rdi
leaq 0x42c91(%rip), %rsi     # 0x64b4c
callq 0x8400
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x58(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
jmp 0x21ef1
jmp 0x21ef3
jmp 0x21ef5
jmp 0x21ef7
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl 0xa0(%rax), %eax
movl %eax, -0x5c(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl -0x5c(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rax
movb $0x0, 0x48(%rax)
movq -0x18(%rbp), %rax
movb $0x0, 0x1d2(%rax)
movq -0x18(%rbp), %rdi
addq $0x318, %rdi            # imm = 0x318
leaq 0x4224f(%rip), %rsi     # 0x641cf
callq 0x8590
jmp 0x21fa9
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x21fa7
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x11b10
jmp 0x21fa9
movq -0x18(%rbp), %rdi
addq $0x490, %rdi            # imm = 0x490
callq 0x11a60
cmpq $0x1, %rax
jb 0x22979
movq -0x18(%rbp), %rax
addq $0x490, %rax            # imm = 0x490
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rdi
addq $0x490, %rdi            # imm = 0x490
callq 0x11a60
movq -0x68(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
cmpl $0x0, (%rax)
je 0x22979
movq -0x10(%rbp), %rdi
leaq 0x427dc(%rip), %rsi     # 0x647e1
callq 0x8400
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
callq 0xfd20
movq %rax, %rcx
movq -0x70(%rbp), %rax
cmpq %rcx, %rax
jae 0x22977
movq -0x18(%rbp), %rdi
addq $0x460, %rdi            # imm = 0x460
callq 0xbef0
movq -0x18(%rbp), %rcx
movslq 0x13e98(%rcx), %rcx
subq %rcx, %rax
cmpq $0x0, %rax
je 0x22969
movq -0x18(%rbp), %rax
addq $0x460, %rax            # imm = 0x460
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rdi
addq $0x460, %rdi            # imm = 0x460
callq 0xbef0
movq -0x80(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rax
movslq 0x13e98(%rax), %rax
subq %rax, %rsi
callq 0xbf10
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movslq -0x1c(%rbp), %rsi
callq 0xfde0
movq -0x78(%rbp), %rdi
movq %rax, %rsi
addq $0x30, %rsi
callq 0xfd50
testb $0x1, %al
jne 0x220ca
jmp 0x22969
movq -0x18(%rbp), %rax
addq $0x490, %rax            # imm = 0x490
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rdi
addq $0x490, %rdi            # imm = 0x490
callq 0x11a60
movq -0x88(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
subl $0x1, %eax
movl %eax, -0x20(%rbp)
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
cmpl $0x0, %eax
jl 0x22208
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
cmpl $0x1, (%rax)
jne 0x22208
movq -0x10(%rbp), %rdi
movq 0x65e2e(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4266d(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42847(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42632(%rip), %rsi     # 0x647c4
callq 0x8400
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x427e9(%rip), %rsi     # 0x649bd
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x63, 0x341(%rax,%rcx)
jmp 0x225db
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
cmpl $0x0, %eax
jl 0x2234e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
cmpl $0x4, (%rax)
jne 0x2234e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x420e4(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x2226e
jmp 0x2234e
movq -0x10(%rbp), %rdi
movq 0x65cf7(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42536(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42710(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x424fb(%rip), %rsi     # 0x647c4
callq 0x8400
movq %rax, -0x98(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq -0x98(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x426b2(%rip), %rsi     # 0x649bd
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x426b3(%rip), %rsi     # 0x649db
callq 0x8400
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x225d9
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
cmpl $0x0, %eax
jl 0x22494
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
cmpl $0x2, (%rax)
jne 0x22494
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x41f9e(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x223b4
jmp 0x22494
movq -0x10(%rbp), %rdi
movq 0x65bb1(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x423f0(%rip), %rsi     # 0x647be
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x425ca(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x423b5(%rip), %rsi     # 0x647c4
callq 0x8400
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x4256c(%rip), %rsi     # 0x649bd
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4256d(%rip), %rsi     # 0x649db
callq 0x8400
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x225d7
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
cmpl $0x0, %eax
jl 0x225d5
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
cmpl $0x4, (%rax)
jne 0x225d5
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x41e58(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x224fa
jmp 0x225d5
movq -0x10(%rbp), %rdi
movq 0x65a6b(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x422c4(%rip), %rsi     # 0x647d8
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42484(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4226f(%rip), %rsi     # 0x647c4
callq 0x8400
movq %rax, -0xa8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x42426(%rip), %rsi     # 0x649bd
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
shll $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42427(%rip), %rsi     # 0x649db
callq 0x8400
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x66, 0x341(%rax,%rcx)
jmp 0x225d7
jmp 0x225d9
jmp 0x225db
cmpl $0x4, -0x20(%rbp)
jge 0x22956
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
cmpl $0x0, %eax
jl 0x22954
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x41d29(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x22626
jmp 0x22699
movq -0x10(%rbp), %rdi
movq 0x6593f(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x421ab(%rip), %rsi     # 0x647eb
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
addl $0x4, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x41ef3(%rip), %rsi     # 0x64550
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42172(%rip), %rsi     # 0x647f3
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
addl $0x1, %esi
callq 0x8730
jmp 0x22952
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x41c84(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x226cb
jmp 0x22748
movl -0x20(%rbp), %eax
addl $0x4, %eax
cmpl $0x4, %eax
jne 0x22748
movq -0x10(%rbp), %rdi
movq 0x6588f(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42115(%rip), %rsi     # 0x64805
callq 0x8400
movq %rax, %rdi
leaq 0x41ef8(%rip), %rsi     # 0x645f7
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x420d0(%rip), %rsi     # 0x647f3
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
addl $0x1, %esi
callq 0x8730
movq -0x18(%rbp), %rax
movl 0x70(%rax), %ecx
addl $0x2, %ecx
movl %ecx, 0x70(%rax)
jmp 0x22950
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x41bd5(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x2277a
jmp 0x227f5
movl -0x20(%rbp), %eax
addl $0x4, %eax
cmpl $0x5, %eax
jne 0x227f5
movq -0x10(%rbp), %rdi
movq 0x657e0(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x42072(%rip), %rsi     # 0x64811
callq 0x8400
movq %rax, %rdi
leaq 0x41e49(%rip), %rsi     # 0x645f7
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x42021(%rip), %rsi     # 0x647f3
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
addl $0x1, %esi
callq 0x8730
movq -0x18(%rbp), %rax
movl $0x6, 0x70(%rax)
jmp 0x2294e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x41b28(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x22827
jmp 0x228a2
movl -0x20(%rbp), %eax
addl $0x4, %eax
cmpl $0x6, %eax
jne 0x228a2
movq -0x10(%rbp), %rdi
movq 0x65733(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x41fd1(%rip), %rsi     # 0x6481d
callq 0x8400
movq %rax, %rdi
leaq 0x41d9c(%rip), %rsi     # 0x645f7
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x41f74(%rip), %rsi     # 0x647f3
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
addl $0x1, %esi
callq 0x8730
movq -0x18(%rbp), %rax
movl $0x7, 0x70(%rax)
jmp 0x2294c
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0x1c(%rbp), %eax
addl -0x20(%rbp), %eax
movslq %eax, %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x41a7b(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x228d4
jmp 0x2294a
movl -0x20(%rbp), %eax
addl $0x4, %eax
cmpl $0x7, %eax
jne 0x2294a
movq -0x10(%rbp), %rdi
movq 0x65686(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x41f2d(%rip), %rsi     # 0x64826
callq 0x8400
movq %rax, %rdi
leaq 0x41cef(%rip), %rsi     # 0x645f7
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x41ec7(%rip), %rsi     # 0x647f3
callq 0x8400
movq %rax, %rdi
movl -0x20(%rbp), %esi
addl $0x1, %esi
callq 0x8730
movq -0x18(%rbp), %rax
movl $0xc, 0x70(%rax)
jmp 0x2294c
jmp 0x2294e
jmp 0x22950
jmp 0x22952
jmp 0x22954
jmp 0x22956
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
callq 0xfd20
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x22011
jmp 0x22979
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)