// File: gioannides[P]Language_Processors/src/../include/ast/ast_Expressions.cpp
// Function: EqualityExpression::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
inline void EqualityExpression::render_asm(std::ofstream& file,Context& contxt) {

			if(OPERATOR==NULL && RElationalExpression != NULL){
				RElationalExpression->render_asm(file,contxt);
				//postfix_ops(contxt, file);
			}

			if(contxt.LocalArray && contxt.reading && contxt.function){
				if(EqualityExpressionPtr != NULL && RElationalExpression != NULL){
					EqualityExpressionPtr->render_asm(file,contxt);
					RElationalExpression->render_asm(file,contxt);
				}
					if(contxt.ArraySize.size()>=2){
						if( OPERATOR != NULL && *OPERATOR == "==" ){
							
								int result = contxt.ArraySize[contxt.ArraySize.size()-1] ==  contxt.ArraySize[contxt.ArraySize.size()-2];
								contxt.ArraySize.pop_back();
								contxt.ArraySize.pop_back();
								contxt.ArraySize.push_back(result);
							}
						
						else if( OPERATOR != NULL && *OPERATOR== "!=") {
								int result = contxt.ArraySize[contxt.ArraySize.size()-1] !=  contxt.ArraySize[contxt.ArraySize.size()-2];
								contxt.ArraySize.pop_back();
								contxt.ArraySize.pop_back();
								contxt.ArraySize.push_back(result);
						}
					}
			}
			else if(EqualityExpressionPtr != NULL && !contxt.reading && RElationalExpression != NULL && OPERATOR != NULL){ 
				EqualityExpressionPtr->render_asm(file,contxt);
				contxt.Regs++;	
				RElationalExpression->render_asm(file,contxt);

					
					
					if(*OPERATOR == "==" && contxt.enum_constant)
					{
						if(contxt.EnumOperands.size()>=2){
							int result =  contxt.EnumOperands[contxt.EnumOperands.size()-1] == contxt.EnumOperands[contxt.EnumOperands.size()-2];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
					}
						
					
					else if(*OPERATOR == "!="  && contxt.enum_constant)
					{
					
						if(contxt.EnumOperands.size()>=2){
							int result =  contxt.EnumOperands[contxt.EnumOperands.size()-1] != contxt.EnumOperands[contxt.EnumOperands.size()-2];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
					}
					
				
				if (contxt.function  && !contxt.sizeof_ && !contxt.enum_constant){
					//postfix_ops(contxt, file);
					typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);	
					if( *OPERATOR == "==" ){
						if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
							std::string label_id = labelGen(contxt);
							std::string END = "$ENDEQ" + label_id;
							std::string NOT_EQ = "$NOT_EQ" + label_id;

							file << std::endl << "\tc.eq.s\t$f" << contxt.Regs << ",$f" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='f';
							contxt.regType[contxt.Regs+1]='f';
							file << std::endl << "\tbc1f\t" << NOT_EQ;
							file << std::endl << "\tnop" << std::endl;
							
							file << std::endl << "\tli.s\t$f" << contxt.Regs << ",1";
							contxt.regType[contxt.Regs]='f';
							file << std::endl << "\tb\t" << END;
							file << std::endl << "\tnop\t";
							file << std::endl << NOT_EQ << ":";
							file << std::endl << "\tmtc1\t$0,$f" << contxt.Regs;
							contxt.regType[contxt.Regs]='f';
							file << std::endl << "\tnop" << std::endl;
							file << std::endl << END << ":";

						}
						else{
							file << std::endl << "\tseq\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='i';
							contxt.regType[contxt.Regs+1]='i';
						}						
						
					}
					else if(  *OPERATOR == "!=" ){

						if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
							std::string label_id = labelGen(contxt);
							std::string END = "$ENDEQ" + label_id;
							std::string _EQ = "$_EQ" + label_id;

							file << std::endl << "\tc.eq.s\t$f" << contxt.Regs << ",$f" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='f';
							contxt.regType[contxt.Regs+1]='f';
							file << std::endl << "\tbc1t\t" << _EQ;
							file << std::endl << "\tnop" << std::endl;
						
							file << std::endl << "\tli.s\t$f" << contxt.Regs << ",1";
							contxt.regType[contxt.Regs]='f';
							file << std::endl << "\tb\t" << END;
							file << std::endl << "\tnop\t";
							file << std::endl << _EQ << ":";
							file << std::endl << "\tmtc1\t$0,$f" << contxt.Regs;
							contxt.regType[contxt.Regs]='f';
							file << std::endl << "\tnop" << std::endl;
							file << std::endl << END << ":";

						}
						else{
							file << std::endl << "\txor\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;						
							file << std::endl << "\tsltu\t$" << contxt.Regs << ", $0, $" << contxt.Regs;
							contxt.regType[contxt.Regs]='i';
							contxt.regType[contxt.Regs+1]='i';
						}
						
					}
					
				}
				else 
				{
					if(*OPERATOR == "=="  && ((!contxt.sizeof_ && !contxt.enum_constant)))
					{
						contxt.eval[contxt.Regs] = contxt.eval[contxt.Regs] == contxt.eval[contxt.Regs+1];
						contxt.eval_f[contxt.Regs] = contxt.eval_f[contxt.Regs] == contxt.eval_f[contxt.Regs+1];
					}
					else if(*OPERATOR == "!="  && ((!contxt.sizeof_ && !contxt.enum_constant)))
					{
						contxt.eval[contxt.Regs] = contxt.eval[contxt.Regs] != contxt.eval[contxt.Regs+1];
						contxt.eval_f[contxt.Regs] = contxt.eval_f[contxt.Regs] != contxt.eval_f[contxt.Regs+1]; 
					}
				}
				contxt.Regs--;
				
			}

		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2d0, %rsp            # imm = 0x2D0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x100(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x1707f
movq -0x100(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1707f
movq -0x100(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x18230
movq -0x18(%rbp), %rax
testb $0x1, 0x74(%rax)
je 0x172d2
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
je 0x172d2
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x172d2
movq -0x100(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x170fb
movq -0x100(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x170fb
movq -0x100(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x17030
movq -0x100(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x18230
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
cmpq $0x2, %rax
jb 0x172cd
movq -0x100(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x171f0
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4d3d8(%rip), %rsi     # 0x6450e
callq 0x9e30
testb $0x1, %al
jne 0x17144
jmp 0x171f0
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x118(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x118(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
movl %eax, -0x104(%rbp)
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x110(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x110(%rbp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x11a80
movq %rax, %rcx
movl -0x104(%rbp), %eax
cmpl (%rcx), %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
leaq -0x1c(%rbp), %rsi
callq 0x15ec0
jmp 0x172cb
movq -0x100(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x172c9
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4d2fd(%rip), %rsi     # 0x64511
callq 0x9e30
testb $0x1, %al
jne 0x17222
jmp 0x172c9
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x130(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x130(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
movl %eax, -0x11c(%rbp)
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x128(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x128(%rbp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x11a80
movq %rax, %rcx
movl -0x11c(%rbp), %eax
cmpl (%rcx), %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
leaq -0x20(%rbp), %rsi
callq 0x15ec0
jmp 0x172cb
jmp 0x172cd
jmp 0x1820f
movq -0x100(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1820d
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
jne 0x1820d
movq -0x100(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1820d
movq -0x100(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1820d
movq -0x100(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x17030
movq -0x100(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %edx
addl $0x1, %edx
movl %edx, 0x310(%rcx)
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x18230
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4d1a0(%rip), %rsi     # 0x6450e
callq 0x9e30
testb $0x1, %al
jne 0x1737c
jmp 0x17466
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
je 0x17466
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x2, %rax
jb 0x17461
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x148(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x148(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
movl %eax, -0x134(%rbp)
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x140(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x140(%rbp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x11a80
movq %rax, %rcx
movl -0x134(%rbp), %eax
cmpl (%rcx), %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x24(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x24(%rbp), %rsi
callq 0x15ec0
jmp 0x1756f
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4d099(%rip), %rsi     # 0x64511
callq 0x9e30
testb $0x1, %al
jne 0x17486
jmp 0x1756d
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
je 0x1756d
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x2, %rax
jb 0x1756b
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x160(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x160(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
movl %eax, -0x14c(%rbp)
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x158(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x158(%rbp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x11a80
movq %rax, %rcx
movl -0x14c(%rbp), %eax
cmpl (%rcx), %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x28(%rbp), %rsi
callq 0x15ec0
jmp 0x1756d
jmp 0x1756f
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x1809d
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x1809d
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
jne 0x1809d
movq -0x18(%rbp), %rax
movl 0x310(%rax), %edi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0x16000
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4cf36(%rip), %rsi     # 0x6450e
callq 0x9e30
testb $0x1, %al
jne 0x175e6
jmp 0x17af9
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
je 0x17627
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
jne 0x17a4b
movq -0x18(%rbp), %rsi
leaq -0x48(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x11f70
movq -0x168(%rbp), %rdx
leaq 0x4cecb(%rip), %rsi     # 0x64514
leaq -0x68(%rbp), %rdi
callq 0x12040
jmp 0x17654
leaq 0x4cec0(%rip), %rsi     # 0x6451b
leaq -0x98(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x12040
jmp 0x1766d
movq -0x10(%rbp), %rdi
movq 0x708f8(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x170(%rbp)
jmp 0x17686
movq -0x170(%rbp), %rdi
leaq 0x4cde0(%rip), %rsi     # 0x64474
callq 0x8400
movq %rax, -0x178(%rbp)
jmp 0x176a2
movq -0x178(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, -0x180(%rbp)
jmp 0x176c1
movq -0x180(%rbp), %rdi
leaq 0x4ce65(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, -0x188(%rbp)
jmp 0x176dd
movq -0x188(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x176f7
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movb $0x66, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x70848(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x190(%rbp)
jmp 0x17736
movq -0x190(%rbp), %rdi
leaq 0x4cd40(%rip), %rsi     # 0x64484
callq 0x8400
movq %rax, -0x198(%rbp)
jmp 0x17752
movq -0x198(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x83c0
jmp 0x17767
movq -0x10(%rbp), %rdi
movq 0x707fe(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x1a0(%rbp)
jmp 0x17780
movq -0x1a0(%rbp), %rdi
leaq 0x4cc23(%rip), %rsi     # 0x643b1
callq 0x8400
movq %rax, -0x1a8(%rbp)
jmp 0x1779c
movq -0x1a8(%rbp), %rdi
movq 0x707c6(%rip), %rsi     # 0x87f70
callq 0x8450
jmp 0x177b1
movq -0x10(%rbp), %rdi
movq 0x707b4(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x1b0(%rbp)
jmp 0x177ca
movq -0x1b0(%rbp), %rdi
leaq 0x4cd4b(%rip), %rsi     # 0x64523
callq 0x8400
movq %rax, -0x1b8(%rbp)
jmp 0x177e6
movq -0x1b8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, -0x1c0(%rbp)
jmp 0x17805
movq -0x1c0(%rbp), %rdi
leaq 0x4cc82(%rip), %rsi     # 0x64495
callq 0x8400
jmp 0x1781a
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movb $0x66, 0x341(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x70738(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x1c8(%rbp)
jmp 0x17846
movq -0x1c8(%rbp), %rdi
leaq 0x4cc3d(%rip), %rsi     # 0x64491
callq 0x8400
movq %rax, -0x1d0(%rbp)
jmp 0x17862
movq -0x1d0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x83c0
jmp 0x17874
movq -0x10(%rbp), %rdi
movq 0x706f1(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x1d8(%rbp)
jmp 0x1788d
movq -0x1d8(%rbp), %rdi
leaq 0x4cbf0(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x178a2
movq -0x10(%rbp), %rdi
movq 0x706c3(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x1e0(%rbp)
jmp 0x178bb
movq -0x1e0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x83c0
movq %rax, -0x1e8(%rbp)
jmp 0x178d7
movq -0x1e8(%rbp), %rdi
leaq 0x4c8ee(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x178ec
movq -0x10(%rbp), %rdi
movq 0x70679(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x1f0(%rbp)
jmp 0x17905
movq -0x1f0(%rbp), %rdi
leaq 0x4cc19(%rip), %rsi     # 0x6452c
callq 0x8400
movq %rax, -0x1f8(%rbp)
jmp 0x17921
movq -0x1f8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
jmp 0x17939
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movb $0x66, 0x341(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x70619(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x200(%rbp)
jmp 0x17965
movq -0x200(%rbp), %rdi
leaq 0x4ca3e(%rip), %rsi     # 0x643b1
callq 0x8400
movq %rax, -0x208(%rbp)
jmp 0x17981
movq -0x208(%rbp), %rdi
movq 0x705e1(%rip), %rsi     # 0x87f70
callq 0x8450
jmp 0x17996
movq -0x10(%rbp), %rdi
movq 0x705cf(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x210(%rbp)
jmp 0x179af
movq -0x210(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x83c0
movq %rax, -0x218(%rbp)
jmp 0x179c8
movq -0x218(%rbp), %rdi
leaq 0x4c7fd(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x179dd
leaq -0x98(%rbp), %rdi
callq 0x8280
leaq -0x68(%rbp), %rdi
callq 0x8280
leaq -0x48(%rbp), %rdi
callq 0x8280
jmp 0x17af4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x17a3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x17a34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x8280
leaq -0x68(%rbp), %rdi
callq 0x8280
leaq -0x48(%rbp), %rdi
callq 0x8280
jmp 0x18218
movq -0x10(%rbp), %rdi
movq 0x7051a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4cad3(%rip), %rsi     # 0x64538
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4caca(%rip), %rsi     # 0x64550
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4caa9(%rip), %rsi     # 0x64550
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movb $0x69, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x18098
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4ca06(%rip), %rsi     # 0x64511
callq 0x9e30
testb $0x1, %al
jne 0x17b19
jmp 0x18096
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
je 0x17b5a
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
jne 0x17f99
movq -0x18(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0x11f70
movq -0x220(%rbp), %rdx
leaq 0x4c995(%rip), %rsi     # 0x64514
leaq -0xd8(%rbp), %rdi
callq 0x12040
jmp 0x17b8d
leaq 0x4c9ab(%rip), %rsi     # 0x6453f
leaq -0xf8(%rbp), %rdi
leaq -0xb8(%rbp), %rdx
callq 0x12040
jmp 0x17ba9
movq -0x10(%rbp), %rdi
movq 0x703bc(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x228(%rbp)
jmp 0x17bc2
movq -0x228(%rbp), %rdi
leaq 0x4c8a4(%rip), %rsi     # 0x64474
callq 0x8400
movq %rax, -0x230(%rbp)
jmp 0x17bde
movq -0x230(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, -0x238(%rbp)
jmp 0x17bfd
movq -0x238(%rbp), %rdi
leaq 0x4c929(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, -0x240(%rbp)
jmp 0x17c19
movq -0x240(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x17c33
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movb $0x66, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x7030c(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x248(%rbp)
jmp 0x17c72
movq -0x248(%rbp), %rdi
leaq 0x4c823(%rip), %rsi     # 0x644a3
callq 0x8400
movq %rax, -0x250(%rbp)
jmp 0x17c8e
movq -0x250(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x83c0
jmp 0x17ca3
movq -0x10(%rbp), %rdi
movq 0x702c2(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x258(%rbp)
jmp 0x17cbc
movq -0x258(%rbp), %rdi
leaq 0x4c6e7(%rip), %rsi     # 0x643b1
callq 0x8400
movq %rax, -0x260(%rbp)
jmp 0x17cd8
movq -0x260(%rbp), %rdi
movq 0x7028a(%rip), %rsi     # 0x87f70
callq 0x8450
jmp 0x17ced
movq -0x10(%rbp), %rdi
movq 0x70278(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x268(%rbp)
jmp 0x17d06
movq -0x268(%rbp), %rdi
leaq 0x4c80f(%rip), %rsi     # 0x64523
callq 0x8400
movq %rax, -0x270(%rbp)
jmp 0x17d22
movq -0x270(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, -0x278(%rbp)
jmp 0x17d41
movq -0x278(%rbp), %rdi
leaq 0x4c746(%rip), %rsi     # 0x64495
callq 0x8400
jmp 0x17d56
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movb $0x66, 0x341(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x701fc(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x280(%rbp)
jmp 0x17d82
movq -0x280(%rbp), %rdi
leaq 0x4c701(%rip), %rsi     # 0x64491
callq 0x8400
movq %rax, -0x288(%rbp)
jmp 0x17d9e
movq -0x288(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x83c0
jmp 0x17db3
movq -0x10(%rbp), %rdi
movq 0x701b2(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x290(%rbp)
jmp 0x17dcc
movq -0x290(%rbp), %rdi
leaq 0x4c6b1(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x17de1
movq -0x10(%rbp), %rdi
movq 0x70184(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x298(%rbp)
jmp 0x17dfa
movq -0x298(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x83c0
movq %rax, -0x2a0(%rbp)
jmp 0x17e16
movq -0x2a0(%rbp), %rdi
leaq 0x4c3af(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x17e2b
movq -0x10(%rbp), %rdi
movq 0x7013a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2a8(%rbp)
jmp 0x17e44
movq -0x2a8(%rbp), %rdi
leaq 0x4c6da(%rip), %rsi     # 0x6452c
callq 0x8400
movq %rax, -0x2b0(%rbp)
jmp 0x17e60
movq -0x2b0(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
jmp 0x17e78
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movb $0x66, 0x341(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x700da(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2b8(%rbp)
jmp 0x17ea4
movq -0x2b8(%rbp), %rdi
leaq 0x4c4ff(%rip), %rsi     # 0x643b1
callq 0x8400
movq %rax, -0x2c0(%rbp)
jmp 0x17ec0
movq -0x2c0(%rbp), %rdi
movq 0x700a2(%rip), %rsi     # 0x87f70
callq 0x8450
jmp 0x17ed5
movq -0x10(%rbp), %rdi
movq 0x70090(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2c8(%rbp)
jmp 0x17eee
movq -0x2c8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x83c0
movq %rax, -0x2d0(%rbp)
jmp 0x17f0a
movq -0x2d0(%rbp), %rdi
leaq 0x4c2bb(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x17f1f
leaq -0xf8(%rbp), %rdi
callq 0x8280
leaq -0xd8(%rbp), %rdi
callq 0x8280
leaq -0xb8(%rbp), %rdi
callq 0x8280
jmp 0x18094
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x17f88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x17f7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x8280
leaq -0xd8(%rbp), %rdi
callq 0x8280
leaq -0xb8(%rbp), %rdi
callq 0x8280
jmp 0x18218
movq -0x10(%rbp), %rdi
movq 0x6ffcc(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4c54d(%rip), %rsi     # 0x64500
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4c57c(%rip), %rsi     # 0x64550
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4c55b(%rip), %rsi     # 0x64550
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq -0x10(%rbp), %rdi
movq 0x6ff56(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4c51b(%rip), %rsi     # 0x64544
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4c502(%rip), %rsi     # 0x6454c
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movb $0x69, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x18096
jmp 0x18098
jmp 0x181fa
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4c45f(%rip), %rsi     # 0x6450e
callq 0x9e30
testb $0x1, %al
jne 0x180bd
jmp 0x1814e
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x1814e
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
jne 0x1814e
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movl 0x5f8(%rax,%rcx,4), %edx
movl 0x5fc(%rax,%rcx,4), %esi
subl %esi, %edx
sete %dl
movzbl %dl, %edx
movl %edx, 0x5f8(%rax,%rcx,4)
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movss 0xa238(%rax,%rcx,4), %xmm0
movss 0xa23c(%rax,%rcx,4), %xmm1
cmpeqss %xmm1, %xmm0
movss 0x4bed7(%rip), %xmm1    # 0x64004
pand %xmm1, %xmm0
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movss %xmm0, 0xa238(%rax,%rcx,4)
jmp 0x181f8
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x4c3b1(%rip), %rsi     # 0x64511
callq 0x9e30
testb $0x1, %al
jne 0x1816e
jmp 0x181f6
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x181f6
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
jne 0x181f6
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movl 0x5f8(%rax,%rcx,4), %edx
movl 0x5fc(%rax,%rcx,4), %esi
subl %esi, %edx
setne %dl
movzbl %dl, %edx
movl %edx, 0x5f8(%rax,%rcx,4)
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rcx
movss 0xa238(%rax,%rcx,4), %xmm0
movss 0xa23c(%rax,%rcx,4), %xmm1
cmpneqss %xmm1, %xmm0
movss 0x4be2a(%rip), %xmm1    # 0x64004
pand %xmm1, %xmm0
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movss %xmm0, 0xa238(%rax,%rcx,4)
jmp 0x181f8
jmp 0x181fa
movq -0x18(%rbp), %rax
movl 0x310(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x310(%rax)
jmp 0x1820f
addq $0x2d0, %rsp            # imm = 0x2D0
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x8760
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)