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

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

			}
			if(contxt.LocalArray && contxt.reading && contxt.function){
				if(RelationalExpressionPtr != NULL && SHiftExpression != NULL){
					RelationalExpressionPtr->render_asm(file,contxt);
					SHiftExpression->render_asm(file,contxt);
				}
				if(contxt.ArraySize.size()>=2){
					if( OPERATOR != NULL && *OPERATOR == "<" ){
						
							int result = contxt.ArraySize[contxt.ArraySize.size()-2] <  contxt.ArraySize[contxt.ArraySize.size()-1];
							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()-2] >  contxt.ArraySize[contxt.ArraySize.size()-1];
							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()-2] <=  contxt.ArraySize[contxt.ArraySize.size()-1];
							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()-2] >= contxt.ArraySize[contxt.ArraySize.size()-1];
							contxt.ArraySize.pop_back();
							contxt.ArraySize.pop_back();
							contxt.ArraySize.push_back(result);
					}
				}
			}
			else if(RelationalExpressionPtr != NULL && !contxt.reading && SHiftExpression != NULL && OPERATOR != NULL){ 
				RelationalExpressionPtr->render_asm(file,contxt);
				contxt.Regs++;
				SHiftExpression->render_asm(file,contxt);
				
				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 = "$ENDLT" + label_id;
							std::string NOT_LESS = "$NOT_LT" + label_id;

							file << std::endl << "\tc.lt.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_LESS;
							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_LESS << ":";
							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 if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
							file << std::endl << "\tsltu\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='u';
						}
						
						else{
							file << std::endl << "\tslt\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='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 = "$ENDGT" + label_id;
							std::string NOT_GREATER = "$NOT_GT" + label_id;

							file << std::endl << "\tc.lt.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs;
							contxt.regType[contxt.Regs]='f';
							contxt.regType[contxt.Regs+1]='f';
							file << std::endl << "\tbc1f\t" << NOT_GREATER;
							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_GREATER << ":";
							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 if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
							file << std::endl << "\tsgtu\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='u';
						}
						
						else{
							file << std::endl << "\tsgt\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='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 = "$ENDLE" + label_id;
							std::string NOT_LE = "$NOT_LE" + label_id;

							file << std::endl << "\tc.le.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_LE;
							file << std::endl << "\tnop" << std::endl;
							contxt.regType[contxt.Regs]='f';
							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_LE << ":";
							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 if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u') {
							file << std::endl << "\tsleu\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='u';
						}
						
						else{
							file << std::endl << "\tsle\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='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 = "$ENDGE" + label_id;
							std::string NOT_GE = "$NOT_GE" + label_id;

							file << std::endl << "\tc.le.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs;
							contxt.regType[contxt.Regs]='f';
							contxt.regType[contxt.Regs+1]='f';
							file << std::endl << "\tbc1f\t" << NOT_GE;
							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_GE << ":";
							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 if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
							file << std::endl << "\tsgeu\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='u';
						}
						
						else{
							file << std::endl << "\tsge\t$" << contxt.Regs << ", $" << contxt.Regs << ", $" << contxt.Regs+1;
							contxt.regType[contxt.Regs]='i';
						}
					}
					
				}
				
				if(contxt.enum_constant){
					if( *OPERATOR == "<" ){
						
						if(contxt.EnumOperands.size()>=2){
							int result =  contxt.EnumOperands[contxt.EnumOperands.size()-2] < contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
					}
					
						
					else if(*OPERATOR == ">"){
						if(contxt.EnumOperands.size()>=2){
							int result =  contxt.EnumOperands[contxt.EnumOperands.size()-2] > contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						
					}
					else if(*OPERATOR == "<=")
					{
						if(contxt.EnumOperands.size()>=2){
							int result =  contxt.EnumOperands[contxt.EnumOperands.size()-2] <= contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						
					}
					else if(*OPERATOR == ">=")
					{
						if(contxt.EnumOperands.size()>=2){
							int result =  contxt.EnumOperands[contxt.EnumOperands.size()-2] >= contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						
					}
					//contxt.enumeval[contxt.Regs+1] =0;
					//contxt.enumeval[contxt.Regs] = 0;
				}
				if((!contxt.function  && !contxt.sizeof_ && !contxt.enum_constant)){
					if( *OPERATOR == "<" ){
						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.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.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.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.eval[contxt.Regs+1] =0;
					contxt.eval_f[contxt.Regs] = 0;
				}
				contxt.Regs--;
				
			}


		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
cmpq $0x0, 0x10(%rdi)
jne 0x1472e
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x1472e
movq %r15, %rsi
movq %rbx, %rdx
callq 0x1590c
cmpb $0x1, 0x74(%rbx)
jne 0x14830
cmpb $0x1, 0x21b(%rbx)
jne 0x14830
cmpb $0x1, 0x218(%rbx)
jne 0x14830
movq 0x18(%r14), %rdi
testq %rdi, %rdi
je 0x1477c
cmpq $0x0, 0x8(%r14)
je 0x1477c
movq %r15, %rsi
movq %rbx, %rdx
callq 0x146fe
movq 0x8(%r14), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x1590c
movq 0x80(%rbx), %rax
subq 0x78(%rbx), %rax
cmpq $0x5, %rax
jb 0x1589f
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x1589f
leaq 0x78(%rbx), %r15
leaq 0x23068(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x14b9e
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x1589f
leaq 0x2304a(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x14e38
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x1589f
leaq 0x232f4(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x153a1
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x1589f
leaq 0x232d7(%rip), %rsi     # 0x37ae3
callq 0x70c0
testl %eax, %eax
jne 0x1589f
movq 0x80(%rbx), %rax
movl -0x8(%rax), %edx
xorl %ecx, %ecx
cmpl -0x4(%rax), %edx
setge %cl
jmp 0x153b3
movq 0x18(%r14), %rdi
testq %rdi, %rdi
je 0x1589f
cmpb $0x0, 0x21b(%rbx)
jne 0x1589f
cmpq $0x0, 0x8(%r14)
je 0x1589f
cmpq $0x0, 0x10(%r14)
je 0x1589f
movq %r15, %rsi
movq %rbx, %rdx
callq 0x146fe
incl 0x310(%rbx)
movq 0x8(%r14), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x1590c
cmpb $0x1, 0x218(%rbx)
jne 0x155a5
cmpb $0x0, 0x1f8(%rbx)
jne 0x155a5
cmpb $0x0, 0x14d(%rbx)
jne 0x155a5
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x12fe7
movq 0x10(%r14), %rdi
leaq 0x22f4b(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x14bb5
movq 0x10(%r14), %rdi
leaq 0x22f36(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x14e4f
movq 0x10(%r14), %rdi
leaq 0x231e9(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x150d2
movq 0x10(%r14), %rdi
leaq 0x231d5(%rip), %rsi     # 0x37ae3
callq 0x70c0
testl %eax, %eax
jne 0x155a5
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x1493d
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x1547e
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xfdc2
leaq 0x22ea0(%rip), %rsi     # 0x377f2
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xfef4
leaq 0x22e93(%rip), %rsi     # 0x377f9
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xfef4
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22e53(%rip), %rsi     # 0x377d8
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x22dc9(%rip), %rsi     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, %cl
movb %cl, 0x341(%rbx,%rax)
movslq 0x310(%rbx), %rax
movb %cl, 0x342(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22cce(%rip), %rsi     # 0x376c5
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22bca(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22d15(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x22c65(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22c33(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
leaq 0x22bff(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x2291b(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22c53(%rip), %rsi     # 0x3776d
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22a9c(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movq %r15, %rdi
callq 0x7180
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x2288a(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x1535f
movq 0x80(%rbx), %rax
movl -0x8(%rax), %edx
xorl %ecx, %ecx
cmpl -0x4(%rax), %edx
setl %cl
jmp 0x153b3
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x14bd7
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x153ed
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xfdc2
leaq 0x22ba9(%rip), %rsi     # 0x37795
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xfef4
leaq 0x22b9c(%rip), %rsi     # 0x3779c
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xfef4
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22aba(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x22b31(%rip), %rsi     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, %cl
movb %cl, 0x341(%rbx,%rax)
movslq 0x310(%rbx), %rax
movb %cl, 0x342(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22a34(%rip), %rsi     # 0x376c5
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22930(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22a7b(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x229cb(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22999(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
leaq 0x22965(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x22681(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x229b9(%rip), %rsi     # 0x3776d
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22802(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movq %r15, %rdi
callq 0x7180
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x225f0(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x1535f
movq 0x80(%rbx), %rax
movl -0x8(%rax), %edx
xorl %ecx, %ecx
cmpl -0x4(%rax), %edx
setg %cl
jmp 0x153b3
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x14e71
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x15416
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xfdc2
leaq 0x22925(%rip), %rsi     # 0x377ab
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xfef4
leaq 0x22918(%rip), %rsi     # 0x377b2
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xfef4
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22820(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x22895(%rip), %rsi     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, %cl
movb %cl, 0x341(%rbx,%rax)
movslq 0x310(%rbx), %rax
movb %cl, 0x342(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x2279a(%rip), %rsi     # 0x376c5
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22696(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x227e1(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x22731(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x226ff(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
leaq 0x226cb(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x223e7(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x2271f(%rip), %rsi     # 0x3776d
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22568(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movq %r15, %rdi
callq 0x7180
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x22356(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x1535f
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x150f4
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x15448
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xfdc2
leaq 0x226c0(%rip), %rsi     # 0x377c9
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xfef4
leaq 0x226b3(%rip), %rsi     # 0x377d0
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xfef4
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x2269c(%rip), %rsi     # 0x377d8
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x22614(%rip), %rsi     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, %cl
movb %cl, 0x341(%rbx,%rax)
movslq 0x310(%rbx), %rax
movb %cl, 0x342(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22517(%rip), %rsi     # 0x376c5
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22413(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x2254f(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x2249f(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x2246d(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
leaq 0x22439(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x22155(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x2248d(%rip), %rsi     # 0x3776d
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x222d6(%rip), %rsi     # 0x375f2
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movq %r12, %rdi
callq 0x7180
movq %r15, %rdi
callq 0x7180
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x220c4(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15372
callq 0x72e0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15385
callq 0x72e0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x155a5
callq 0x72e0
jmp 0x155a5
movq 0x80(%rbx), %rax
movl -0x8(%rax), %edx
xorl %ecx, %ecx
cmpl -0x4(%rax), %edx
setle %cl
movl %ecx, (%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x80(%rbx)
cmpq 0x88(%rbx), %rsi
je 0x153dd
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x80(%rbx)
jmp 0x1589f
movq %rsp, %rdx
movq %r15, %rdi
callq 0x202ae
jmp 0x1589f
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x1543c
leaq 0x22374(%rip), %rsi     # 0x37785
jmp 0x154a6
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x15472
leaq 0x22380(%rip), %rsi     # 0x377ba
jmp 0x154a6
leaq 0x22361(%rip), %rsi     # 0x377a4
jmp 0x15530
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x15520
leaq 0x22373(%rip), %rsi     # 0x377e3
jmp 0x154a6
leaq 0x22349(%rip), %rsi     # 0x377c2
jmp 0x15530
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x15529
leaq 0x2235b(%rip), %rsi     # 0x37801
movl $0x7, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x222c6(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x75, 0x341(%rbx,%rax)
jmp 0x155a5
leaq 0x222c4(%rip), %rsi     # 0x377eb
jmp 0x15530
leaq 0x222d9(%rip), %rsi     # 0x37809
movl $0x6, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x2223c(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x69, 0x341(%rbx,%rax)
cmpb $0x1, 0x14d(%rbx)
jne 0x156ee
movq 0x10(%r14), %rdi
leaq 0x22254(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x1563b
movq 0x10(%r14), %rdi
leaq 0x22243(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x15668
movq 0x10(%r14), %rdi
leaq 0x224f6(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x15691
movq 0x10(%r14), %rdi
leaq 0x224e2(%rip), %rsi     # 0x37ae3
callq 0x70c0
testl %eax, %eax
jne 0x156ee
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x156ee
movl -0x8(%rdx,%rsi), %edi
xorl %ecx, %ecx
cmpl -0x4(%rdx,%rsi), %edi
setge %cl
jmp 0x156b8
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x156ee
movl -0x8(%rdx,%rsi), %edi
xorl %ecx, %ecx
cmpl -0x4(%rdx,%rsi), %edi
setl %cl
jmp 0x156b8
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x156ee
movl -0x8(%rdx,%rsi), %edi
xorl %ecx, %ecx
cmpl -0x4(%rdx,%rsi), %edi
setg %cl
jmp 0x156b8
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x156ee
movl -0x8(%rdx,%rsi), %edi
xorl %ecx, %ecx
cmpl -0x4(%rdx,%rsi), %edi
setle %cl
movl %ecx, (%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x158(%rbx)
cmpq 0x160(%rbx), %rsi
je 0x156df
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x158(%rbx)
jmp 0x156ee
leaq 0x150(%rbx), %rdi
movq %rsp, %rdx
callq 0x202ae
cmpb $0x0, 0x218(%rbx)
jne 0x15899
cmpb $0x0, 0x1f8(%rbx)
jne 0x15899
cmpb $0x0, 0x14d(%rbx)
jne 0x15899
movq 0x10(%r14), %rdi
leaq 0x220f1(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x1577c
movq 0x10(%r14), %rdi
leaq 0x220e0(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x157bc
movq 0x10(%r14), %rdi
leaq 0x22397(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x157f9
movq 0x10(%r14), %rdi
leaq 0x22383(%rip), %rsi     # 0x37ae3
callq 0x70c0
movslq 0x310(%rbx), %rcx
testl %eax, %eax
je 0x15836
incq %rcx
jmp 0x15882
movslq 0x310(%rbx), %rax
movl 0x5f8(%rbx,%rax,4), %ecx
xorl %edx, %edx
cmpl 0x5fc(%rbx,%rax,4), %ecx
setl %dl
movl %edx, 0x5f8(%rbx,%rax,4)
movslq 0x310(%rbx), %rax
movss 0xa238(%rbx,%rax,4), %xmm0
cmpltss 0xa23c(%rbx,%rax,4), %xmm0
jmp 0x1586a
movslq 0x310(%rbx), %rax
movl 0x5f8(%rbx,%rax,4), %ecx
xorl %edx, %edx
cmpl 0x5fc(%rbx,%rax,4), %ecx
setg %dl
movl %edx, 0x5f8(%rbx,%rax,4)
movslq 0x310(%rbx), %rax
movss 0xa23c(%rbx,%rax,4), %xmm0
cmpltss 0xa238(%rbx,%rax,4), %xmm0
jmp 0x1586a
movslq 0x310(%rbx), %rax
movl 0x5f8(%rbx,%rax,4), %ecx
xorl %edx, %edx
cmpl 0x5fc(%rbx,%rax,4), %ecx
setle %dl
movl %edx, 0x5f8(%rbx,%rax,4)
movslq 0x310(%rbx), %rax
movss 0xa238(%rbx,%rax,4), %xmm0
cmpless 0xa23c(%rbx,%rax,4), %xmm0
jmp 0x1586a
movl 0x5f8(%rbx,%rcx,4), %eax
xorl %edx, %edx
cmpl 0x5fc(%rbx,%rcx,4), %eax
setge %dl
movl %edx, 0x5f8(%rbx,%rcx,4)
movslq 0x310(%rbx), %rax
movss 0xa23c(%rbx,%rax,4), %xmm0
cmpless 0xa238(%rbx,%rax,4), %xmm0
leaq 0x1(%rax), %rcx
movss 0x21a7e(%rip), %xmm1    # 0x372f4
andps %xmm0, %xmm1
movss %xmm1, 0xa238(%rbx,%rax,4)
xorl %eax, %eax
movl %eax, 0x5f8(%rbx,%rcx,4)
movslq 0x310(%rbx), %rcx
movl %eax, 0xa238(%rbx,%rcx,4)
decl 0x310(%rbx)
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x158b8
jmp 0x158bd
jmp 0x158b8
jmp 0x158bd
jmp 0x158b8
jmp 0x158bd
movq %rax, %rbx
jmp 0x158de
movq %rax, %rbx
jmp 0x158f1
jmp 0x158c8
jmp 0x158c8
jmp 0x158c8
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x158de
callq 0x72e0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x158f1
callq 0x72e0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15904
callq 0x72e0
movq %rbx, %rdi
callq 0x75f0