// File: /workspace/github_cpp_makefile_star2_O1/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 0x15046
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x15046
movq %r15, %rsi
movq %rbx, %rdx
callq 0x16212
cmpb $0x1, 0x74(%rbx)
jne 0x1513c
cmpb $0x1, 0x21b(%rbx)
jne 0x1513c
cmpb $0x1, 0x218(%rbx)
jne 0x1513c
movq 0x18(%r14), %rdi
testq %rdi, %rdi
je 0x15094
cmpq $0x0, 0x8(%r14)
je 0x15094
movq %r15, %rsi
movq %rbx, %rdx
callq 0x15016
movq 0x8(%r14), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x16212
movq 0x80(%rbx), %rax
subq 0x78(%rbx), %rax
cmpq $0x5, %rax
jb 0x161a4
leaq 0x78(%rbx), %r15
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x150ca
leaq 0x22754(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x154aa
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x150e7
leaq 0x2273a(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x154be
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x15104
leaq 0x229e8(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x154d2
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x161a4
leaq 0x229cb(%rip), %rsi     # 0x37ae3
callq 0x70c0
testl %eax, %eax
jne 0x161a4
movq 0x80(%rbx), %rax
movl -0x8(%rax), %edx
xorl %ecx, %ecx
cmpl -0x4(%rax), %edx
setge %cl
jmp 0x154e4
movq 0x18(%r14), %rdi
testq %rdi, %rdi
je 0x161a4
cmpb $0x0, 0x21b(%rbx)
jne 0x161a4
cmpq $0x0, 0x8(%r14)
je 0x161a4
cmpq $0x0, 0x10(%r14)
je 0x161a4
movq %r15, %rsi
movq %rbx, %rdx
callq 0x15016
incl 0x310(%rbx)
movq 0x8(%r14), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x16212
cmpb $0x1, 0x218(%rbx)
jne 0x15eab
cmpb $0x0, 0x1f8(%rbx)
jne 0x15eab
cmpb $0x0, 0x14d(%rbx)
jne 0x15eab
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x138f3
movq 0x10(%r14), %rdi
leaq 0x2263f(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x1551e
movq 0x10(%r14), %rdi
leaq 0x2262a(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x157a1
movq 0x10(%r14), %rdi
leaq 0x228dd(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x15a24
movq 0x10(%r14), %rdi
leaq 0x228c9(%rip), %rsi     # 0x37ae3
callq 0x70c0
testl %eax, %eax
jne 0x15eab
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x15249
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x15d84
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x106b0
leaq 0x22594(%rip), %rsi     # 0x377f2
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0x107e2
leaq 0x22587(%rip), %rsi     # 0x377f9
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0x107e2
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22547(%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 0x224bd(%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 0x223c2(%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 0x222be(%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 0x22409(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x22359(%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 0x22327(%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 0x222f3(%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 0x2200f(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22347(%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 0x22190(%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 0x21f7e(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x15cb1
movq 0x80(%rbx), %rax
movl -0x8(%rax), %edx
xorl %ecx, %ecx
cmpl -0x4(%rax), %edx
setl %cl
jmp 0x154e4
movq 0x80(%rbx), %rax
movl -0x8(%rax), %edx
xorl %ecx, %ecx
cmpl -0x4(%rax), %edx
setg %cl
jmp 0x154e4
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 0x1550e
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x80(%rbx)
jmp 0x161a4
movq %rsp, %rdx
movq %r15, %rdi
callq 0x20a34
jmp 0x161a4
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x15540
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x15cf3
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x106b0
leaq 0x22240(%rip), %rsi     # 0x37795
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0x107e2
leaq 0x22233(%rip), %rsi     # 0x3779c
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0x107e2
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22151(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x221c8(%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 0x220cb(%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 0x21fc7(%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 0x22112(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x22062(%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 0x22030(%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 0x21ffc(%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 0x21d18(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x22050(%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 0x21e99(%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 0x21c87(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x15cb1
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x157c3
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x15d1c
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x106b0
leaq 0x21fd3(%rip), %rsi     # 0x377ab
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0x107e2
leaq 0x21fc6(%rip), %rsi     # 0x377b2
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0x107e2
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x21ece(%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 0x21f43(%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 0x21e48(%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 0x21d44(%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 0x21e8f(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x21ddf(%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 0x21dad(%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 0x21d79(%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 0x21a95(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x21dcd(%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 0x21c16(%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 0x21a04(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x15cb1
movslq 0x310(%rbx), %rcx
movb 0x341(%rbx,%rcx), %al
cmpb $0x66, %al
je 0x15a46
movb 0x342(%rbx,%rcx), %cl
cmpb $0x66, %cl
jne 0x15d4e
movq %rsp, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x106b0
leaq 0x21d6e(%rip), %rsi     # 0x377c9
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0x107e2
leaq 0x21d61(%rip), %rsi     # 0x377d0
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
callq 0x107e2
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x21d4a(%rip), %rsi     # 0x377d8
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x21cc2(%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 0x21bc5(%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 0x21ac1(%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 0x21bfd(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x21b4d(%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 0x21b1b(%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 0x21ae7(%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 0x21803(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x21b3b(%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 0x21984(%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 0x21772(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15cc4
callq 0x72e0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15cd7
callq 0x72e0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15eab
callq 0x72e0
jmp 0x15eab
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x15d42
leaq 0x21a6e(%rip), %rsi     # 0x37785
jmp 0x15dac
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x15d78
leaq 0x21a7a(%rip), %rsi     # 0x377ba
jmp 0x15dac
leaq 0x21a5b(%rip), %rsi     # 0x377a4
jmp 0x15e36
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x15e26
leaq 0x21a6d(%rip), %rsi     # 0x377e3
jmp 0x15dac
leaq 0x21a43(%rip), %rsi     # 0x377c2
jmp 0x15e36
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x15e2f
leaq 0x21a55(%rip), %rsi     # 0x37801
movl $0x7, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x219c0(%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 0x15eab
leaq 0x219be(%rip), %rsi     # 0x377eb
jmp 0x15e36
leaq 0x219d3(%rip), %rsi     # 0x37809
movl $0x6, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x21936(%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 0x15ff4
movq 0x10(%r14), %rdi
leaq 0x2194e(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x15f41
movq 0x10(%r14), %rdi
leaq 0x2193d(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x15f6e
movq 0x10(%r14), %rdi
leaq 0x21bf0(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x15f97
movq 0x10(%r14), %rdi
leaq 0x21bdc(%rip), %rsi     # 0x37ae3
callq 0x70c0
testl %eax, %eax
jne 0x15ff4
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x15ff4
movl -0x8(%rdx,%rsi), %edi
xorl %ecx, %ecx
cmpl -0x4(%rdx,%rsi), %edi
setge %cl
jmp 0x15fbe
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x15ff4
movl -0x8(%rdx,%rsi), %edi
xorl %ecx, %ecx
cmpl -0x4(%rdx,%rsi), %edi
setl %cl
jmp 0x15fbe
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x15ff4
movl -0x8(%rdx,%rsi), %edi
xorl %ecx, %ecx
cmpl -0x4(%rdx,%rsi), %edi
setg %cl
jmp 0x15fbe
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x15ff4
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 0x15fe5
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x158(%rbx)
jmp 0x15ff4
leaq 0x150(%rbx), %rdi
movq %rsp, %rdx
callq 0x20a34
cmpb $0x0, 0x218(%rbx)
jne 0x1619e
cmpb $0x0, 0x1f8(%rbx)
jne 0x1619e
cmpb $0x0, 0x14d(%rbx)
jne 0x1619e
movq 0x10(%r14), %rdi
leaq 0x217eb(%rip), %rsi     # 0x37811
callq 0x70c0
testl %eax, %eax
je 0x160ba
movq 0x10(%r14), %rdi
leaq 0x217d6(%rip), %rsi     # 0x37814
callq 0x70c0
testl %eax, %eax
je 0x160f6
movq 0x10(%r14), %rdi
leaq 0x21a89(%rip), %rsi     # 0x37adf
callq 0x70c0
testl %eax, %eax
je 0x16135
movq 0x10(%r14), %rdi
leaq 0x21a75(%rip), %rsi     # 0x37ae3
callq 0x70c0
testl %eax, %eax
jne 0x16180
movslq 0x310(%rbx), %rax
movl 0x5f8(%rbx,%rax,4), %ecx
xorl %edx, %edx
cmpl 0x5fc(%rbx,%rax,4), %ecx
setge %dl
movl %edx, 0x5f8(%rbx,%rax,4)
movslq 0x310(%rbx), %rax
leaq (%rbx,%rax,4), %rax
addq $0xa238, %rax           # imm = 0xA238
movss (%rax), %xmm0
ucomiss 0x4(%rax), %xmm0
jmp 0x1616f
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
leaq (%rbx,%rax,4), %rax
addq $0xa238, %rax           # imm = 0xA238
movss 0x4(%rax), %xmm0
ucomiss (%rax), %xmm0
jmp 0x16130
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
leaq (%rbx,%rax,4), %rax
addq $0xa238, %rax           # imm = 0xA238
movss (%rax), %xmm0
ucomiss 0x4(%rax), %xmm0
seta %cl
jmp 0x16172
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
leaq (%rbx,%rax,4), %rax
addq $0xa238, %rax           # imm = 0xA238
movss 0x4(%rax), %xmm0
ucomiss (%rax), %xmm0
setae %cl
movzbl %cl, %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
movss %xmm0, (%rax)
movslq 0x310(%rbx), %rax
xorl %ecx, %ecx
movl %ecx, 0x5fc(%rbx,%rax,4)
movslq 0x310(%rbx), %rax
movl %ecx, 0xa238(%rbx,%rax,4)
decl 0x310(%rbx)
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x161bd
jmp 0x161c2
jmp 0x161bd
jmp 0x161c2
jmp 0x161bd
jmp 0x161c2
movq %rax, %rbx
jmp 0x161e3
movq %rax, %rbx
jmp 0x161f6
jmp 0x161cd
jmp 0x161cd
jmp 0x161cd
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x161e3
callq 0x72e0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x161f6
callq 0x72e0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x16209
callq 0x72e0
movq %rbx, %rdi
callq 0x75f0
nop