// File: /workspace/github_cpp_makefile_star2_O2/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 0x10dc4
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x10dc4
movq %r15, %rsi
movq %rbx, %rdx
callq 0x11d60
cmpb $0x1, 0x74(%rbx)
jne 0x10e5f
cmpb $0x1, 0x21b(%rbx)
jne 0x10e5f
cmpb $0x1, 0x218(%rbx)
jne 0x10e5f
movq 0x18(%r14), %rdi
testq %rdi, %rdi
je 0x10e0e
cmpq $0x0, 0x8(%r14)
je 0x10e0e
movq %r15, %rsi
movq %rbx, %rdx
callq 0x10d94
movq 0x8(%r14), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x11d60
movq 0x80(%rbx), %rax
subq 0x78(%rbx), %rax
cmpq $0x5, %rax
jb 0x11b65
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x11b65
leaq 0x78(%rbx), %r15
leaq 0x1c9e0(%rip), %rsi     # 0x2d81b
callq 0x820e
testb %al, %al
je 0x1111d
movq 0x80(%rbx), %rax
movl -0x8(%rax), %ecx
xorl %edx, %edx
cmpl -0x4(%rax), %ecx
setl %dl
jmp 0x11b9d
movq 0x18(%r14), %rdi
testq %rdi, %rdi
je 0x11b65
cmpb $0x0, 0x21b(%rbx)
jne 0x11b65
cmpq $0x0, 0x8(%r14)
je 0x11b65
cmpq $0x0, 0x10(%r14)
je 0x11b65
movq %r15, %rsi
movq %rbx, %rdx
callq 0x10d94
incl 0x310(%rbx)
movq 0x8(%r14), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x11d60
cmpb $0x1, 0x218(%rbx)
jne 0x11876
cmpb $0x0, 0x1f8(%rbx)
jne 0x11876
cmpb $0x0, 0x14d(%rbx)
jne 0x11876
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r15, %rdx
movq %rbx, %rcx
callq 0xfb3c
movq 0x10(%r14), %rdi
leaq 0x1c926(%rip), %rsi     # 0x2d81b
callq 0x820e
testb %al, %al
je 0x11155
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x10f24
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x11602
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xda27
leaq 0x1c866(%rip), %rsi     # 0x2d79f
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xdaa7
leaq 0x1c859(%rip), %rsi     # 0x2d7a6
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xdaa7
movq %r15, %rdi
callq 0x7190
leaq 0x1c77a(%rip), %rsi     # 0x2d6e3
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1c7f9(%rip), %rsi     # 0x2d77f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
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 0x7190
leaq 0x1c704(%rip), %rsi     # 0x2d6cf
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1c60d(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq %r15, %rdi
callq 0x7190
leaq 0x1c760(%rip), %rsi     # 0x2d76e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1c6b5(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1c68b(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1c661(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1c35d(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x1c6c7(%rip), %rsi     # 0x2d777
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1c518(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq %r15, %rdi
callq 0x7190
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1c2e6(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
jmp 0x1185a
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x11b65
leaq 0x1c6ed(%rip), %rsi     # 0x2d81e
callq 0x820e
testb %al, %al
je 0x11388
movq 0x80(%rbx), %rax
movl -0x8(%rax), %ecx
xorl %edx, %edx
cmpl -0x4(%rax), %ecx
setg %dl
jmp 0x11b9d
movq 0x10(%r14), %rdi
leaq 0x1c6be(%rip), %rsi     # 0x2d81e
callq 0x820e
testb %al, %al
je 0x113c0
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x1118f
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x11bb7
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xda27
leaq 0x1c611(%rip), %rsi     # 0x2d7b5
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xdaa7
leaq 0x1c604(%rip), %rsi     # 0x2d7bc
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xdaa7
movq %r15, %rdi
callq 0x7190
leaq 0x1c50f(%rip), %rsi     # 0x2d6e3
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1c58c(%rip), %rsi     # 0x2d77f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
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 0x7190
leaq 0x1c499(%rip), %rsi     # 0x2d6cf
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1c3a2(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq %r15, %rdi
callq 0x7190
leaq 0x1c4f5(%rip), %rsi     # 0x2d76e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1c44a(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1c420(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1c3f6(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1c0f2(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x1c45c(%rip), %rsi     # 0x2d777
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1c2ad(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq %r15, %rdi
callq 0x7190
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1c07b(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
jmp 0x1185a
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x11b65
leaq 0x1c74d(%rip), %rsi     # 0x2dae9
callq 0x820e
testb %al, %al
je 0x11b72
movq 0x80(%rbx), %rax
movl -0x8(%rax), %ecx
xorl %edx, %edx
cmpl -0x4(%rax), %ecx
setle %dl
jmp 0x11b9d
movq 0x10(%r14), %rdi
leaq 0x1c71e(%rip), %rsi     # 0x2dae9
callq 0x820e
testb %al, %al
je 0x1162c
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x113fa
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x11bee
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xda27
leaq 0x1c3c4(%rip), %rsi     # 0x2d7d3
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xdaa7
leaq 0x1c3b7(%rip), %rsi     # 0x2d7da
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xdaa7
movq %r15, %rdi
callq 0x7190
leaq 0x1c3a3(%rip), %rsi     # 0x2d7e2
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1c323(%rip), %rsi     # 0x2d77f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
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 0x7190
leaq 0x1c22e(%rip), %rsi     # 0x2d6cf
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1c137(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1c27b(%rip), %rsi     # 0x2d76e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1c1d0(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1c1a6(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1c17c(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1be78(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x1c1e2(%rip), %rsi     # 0x2d777
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1c033(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq %r15, %rdi
callq 0x7190
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1be01(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
jmp 0x1185a
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7190
testb %r12b, %bpl
jne 0x11bda
leaq 0x1c168(%rip), %rsi     # 0x2d78f
jmp 0x11c42
movq 0x10(%r14), %rdi
leaq 0x1c4b6(%rip), %rsi     # 0x2daed
callq 0x820e
testb %al, %al
je 0x11876
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x11666
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x11c21
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0xda27
leaq 0x1c181(%rip), %rsi     # 0x2d7fc
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0xdaa7
leaq 0x1c174(%rip), %rsi     # 0x2d803
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0xdaa7
movq %r15, %rdi
callq 0x7190
leaq 0x1c137(%rip), %rsi     # 0x2d7e2
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1c0b5(%rip), %rsi     # 0x2d77f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
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 0x7190
leaq 0x1bfc2(%rip), %rsi     # 0x2d6cf
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1becb(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq %r15, %rdi
callq 0x7190
leaq 0x1c01e(%rip), %rsi     # 0x2d76e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1bf73(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1bf49(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r15, %rdi
callq 0x7190
leaq 0x1bf1f(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1bc1b(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r15, %rdi
callq 0x7190
leaq 0x1bf85(%rip), %rsi     # 0x2d777
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x1bdd6(%rip), %rsi     # 0x2d5fc
movq %rax, %rdi
callq 0x7310
movq %rax, %rdi
callq 0x7190
movq %r15, %rdi
callq 0x7190
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1bba4(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rdi
callq 0x7170
leaq 0x40(%rsp), %rdi
callq 0x7170
movq %rsp, %rdi
callq 0x7170
cmpb $0x1, 0x14d(%rbx)
jne 0x119bd
movq 0x10(%r14), %rdi
leaq 0x1bf8d(%rip), %rsi     # 0x2d81b
callq 0x820e
testb %al, %al
je 0x118d0
movq 0x150(%rbx), %rcx
movq 0x158(%rbx), %rax
movq %rax, %rdx
subq %rcx, %rdx
cmpq $0x5, %rdx
jb 0x119bd
leaq 0x150(%rbx), %rdi
movl -0x8(%rcx,%rdx), %esi
xorl %r8d, %r8d
cmpl -0x4(%rcx,%rdx), %esi
setl %r8b
jmp 0x119a7
movq 0x10(%r14), %rdi
leaq 0x1bf43(%rip), %rsi     # 0x2d81e
callq 0x820e
testb %al, %al
je 0x1191d
movq 0x150(%rbx), %rcx
movq 0x158(%rbx), %rax
movq %rax, %rdx
subq %rcx, %rdx
cmpq $0x5, %rdx
jb 0x119bd
leaq 0x150(%rbx), %rdi
movl -0x8(%rcx,%rdx), %esi
xorl %r8d, %r8d
cmpl -0x4(%rcx,%rdx), %esi
setg %r8b
jmp 0x119a7
movq 0x10(%r14), %rdi
leaq 0x1c1c1(%rip), %rsi     # 0x2dae9
callq 0x820e
testb %al, %al
je 0x11963
movq 0x150(%rbx), %rcx
movq 0x158(%rbx), %rax
movq %rax, %rdx
subq %rcx, %rdx
cmpq $0x5, %rdx
jb 0x119bd
leaq 0x150(%rbx), %rdi
movl -0x8(%rcx,%rdx), %esi
xorl %r8d, %r8d
cmpl -0x4(%rcx,%rdx), %esi
setle %r8b
jmp 0x119a7
movq 0x10(%r14), %rdi
leaq 0x1c17f(%rip), %rsi     # 0x2daed
callq 0x820e
testb %al, %al
je 0x119bd
movq 0x150(%rbx), %rcx
movq 0x158(%rbx), %rax
movq %rax, %rdx
subq %rcx, %rdx
cmpq $0x5, %rdx
jb 0x119bd
leaq 0x150(%rbx), %rdi
movl -0x8(%rcx,%rdx), %esi
xorl %r8d, %r8d
cmpl -0x4(%rcx,%rdx), %esi
setge %r8b
movq %rsp, %rsi
movl %r8d, (%rsi)
addq $-0x8, %rax
movq %rax, 0x158(%rbx)
callq 0xfa9e
cmpb $0x0, 0x218(%rbx)
jne 0x11b5f
cmpb $0x0, 0x1f8(%rbx)
jne 0x11b5f
cmpb $0x0, 0x14d(%rbx)
jne 0x11b5f
movq 0x10(%r14), %rdi
leaq 0x1be2c(%rip), %rsi     # 0x2d81b
callq 0x820e
testb %al, %al
je 0x11a38
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 0x11b30
movq 0x10(%r14), %rdi
leaq 0x1bddb(%rip), %rsi     # 0x2d81e
callq 0x820e
testb %al, %al
je 0x11a8c
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 0x11b30
movq 0x10(%r14), %rdi
leaq 0x1c052(%rip), %rsi     # 0x2dae9
callq 0x820e
testb %al, %al
je 0x11add
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 0x11b30
movq 0x10(%r14), %rdi
leaq 0x1c005(%rip), %rsi     # 0x2daed
callq 0x820e
movslq 0x310(%rbx), %rcx
testb %al, %al
je 0x11be6
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 0x1b798(%rip), %xmm1    # 0x2d2d4
andps %xmm0, %xmm1
movss %xmm1, 0xa238(%rbx,%rax,4)
andl $0x0, 0x5f8(%rbx,%rcx,4)
movslq 0x310(%rbx), %rax
andl $0x0, 0xa238(%rbx,%rax,4)
decl 0x310(%rbx)
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x11b65
leaq 0x1bf6b(%rip), %rsi     # 0x2daed
callq 0x820e
testb %al, %al
je 0x11b65
movq 0x80(%rbx), %rax
movl -0x8(%rax), %ecx
xorl %edx, %edx
cmpl -0x4(%rax), %ecx
setge %dl
movq %rsp, %rsi
movl %edx, (%rsi)
addq $-0x8, %rax
movq %rax, 0x80(%rbx)
movq %r15, %rdi
callq 0xfa9e
jmp 0x11b65
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7190
testb %r12b, %bpl
jne 0x11c15
leaq 0x1bbec(%rip), %rsi     # 0x2d7c4
jmp 0x11c42
leaq 0x1bbcd(%rip), %rsi     # 0x2d7ae
jmp 0x11cb7
incq %rcx
jmp 0x11b48
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7190
testb %r12b, %bpl
jne 0x11ca7
leaq 0x1bbda(%rip), %rsi     # 0x2d7ed
jmp 0x11c42
leaq 0x1bbb0(%rip), %rsi     # 0x2d7cc
jmp 0x11cb7
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7190
testb %r12b, %bpl
jne 0x11cb0
leaq 0x1bbc9(%rip), %rsi     # 0x2d80b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1bb3c(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x75, 0x341(%rbx,%rax)
jmp 0x11876
leaq 0x1bb47(%rip), %rsi     # 0x2d7f5
jmp 0x11cb7
leaq 0x1bb5c(%rip), %rsi     # 0x2d813
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1bac7(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x69, 0x341(%rbx,%rax)
jmp 0x11876
jmp 0x11d28
jmp 0x11d2d
jmp 0x11d28
jmp 0x11d2d
jmp 0x11d28
jmp 0x11d2d
movq %rax, %rbx
jmp 0x11d45
movq %rax, %rbx
jmp 0x11d4f
jmp 0x11d38
jmp 0x11d38
jmp 0x11d38
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x7170
leaq 0x40(%rsp), %rdi
callq 0x7170
movq %rsp, %rdi
callq 0x7170
movq %rbx, %rdi
callq 0x75c0
nop