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

			if(AND_OP==NULL && INclusiveOrExpression != NULL){
				INclusiveOrExpression->render_asm(file,contxt);
				
			}
			if(contxt.LocalArray && contxt.reading && contxt.function){
				if(LogicalAndExpressionPtr != NULL && INclusiveOrExpression != NULL){
					LogicalAndExpressionPtr->render_asm(file,contxt);
					INclusiveOrExpression->render_asm(file,contxt);
				}	
					if(contxt.ArraySize.size()>=2){
						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(LogicalAndExpressionPtr != NULL && !contxt.reading && INclusiveOrExpression != NULL && AND_OP != NULL) { 
				LogicalAndExpressionPtr->render_asm(file,contxt);
				std::string SHORTCIRCUIT, label_id;
				label_id = labelGenLogical(contxt);
				SHORTCIRCUIT = "$SHORTCIRCUIT_AND" + label_id;
				if(contxt.function){
					typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
					if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
						label_id = labelGenLogical(contxt);
						std::string NOT_0 = "$NOT_0" + label_id;
						std::string DONE = "$DONE_" + label_id;
						std::string LT_THAN1 = "$LT_THAN1" + label_id;

						file << std::endl << "\tli.s\t" << "$f1" << ",0";
						file << std::endl << "\tc.eq.s\t$f" << contxt.Regs+1 << ",$f1";
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << "\tbc1f\t" << NOT_0;
						file << std::endl << "\tnop\t";
						file << std::endl << "\tb\t" << DONE;
						file << std::endl << "\tnop\t";
						file << std::endl << NOT_0 << ":";
						file << std::endl << "\tli.s\t" << "$f1" << ",1";
						file << std::endl << "\tc.lt.s\t$f" << contxt.Regs+1 << ",$f1";
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << "\tbc1t\t" << LT_THAN1;
						file << std::endl << "\tnop\t";
						file << std::endl << "\tb\t" << DONE;
						file << std::endl << "\tnop\t";
						file << std::endl << LT_THAN1 << ":";
						file << std::endl << "\tli.s\t" << "$f" << contxt.Regs+1 << ",1";
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << DONE << ":";
						file << std::endl << "\tcvt.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << "\tmfc1\t" <<"$" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						contxt.regType[contxt.Regs+1]='f';
						file<<   std::endl << "\tnop\t";
					}
					file << std::endl << "\tsne $" << contxt.Regs+1 << ",$0,$" << contxt.Regs+1;
					contxt.regType[contxt.Regs+1]='i';
					file << std::endl << "\tbeq $0,$" << contxt.Regs+1 << "," << SHORTCIRCUIT;
					contxt.regType[contxt.Regs+1]='i';  
					file<<   std::endl << "\tnop\t";}
				contxt.Regs++;
				INclusiveOrExpression->render_asm(file,contxt);

							
				if(contxt.enum_constant){
					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);
					}
				}
				if (contxt.function && !contxt.sizeof_ && !contxt.enum_constant)
				{
					typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
					if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
						label_id = labelGenLogical(contxt);
						std::string NOT_0 = "$NOT_0" + label_id;
						std::string DONE = "$DONE_" + label_id;
						std::string LT_THAN1 = "$LT_THAN1" + label_id;

						file << std::endl << "\tli.s\t" << "$f1" << ",0";
						file << std::endl << "\tc.eq.s\t$f" << contxt.Regs+1 << ",$f1";
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << "\tbc1f\t" << NOT_0;
						file << std::endl << "\tnop\t";
						file << std::endl << "\tb\t" << DONE;
						file << std::endl << "\tnop\t";
						file << std::endl << NOT_0 << ":";
						file << std::endl << "\tli.s\t" << "$f1" << ",1";
						file << std::endl << "\tc.lt.s\t$f" << contxt.Regs+1 << ",$f1";
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << "\tbc1t\t" << LT_THAN1;
						file << std::endl << "\tnop\t";
						file << std::endl << "\tb\t" << DONE;
						file << std::endl << "\tnop\t";
						file << std::endl << LT_THAN1 << ":";
						file << std::endl << "\tli.s\t" << "$f" << contxt.Regs+1 << ",1";
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << DONE << ":";
						file << std::endl << "\tcvt.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						contxt.regType[contxt.Regs+1]='f';
						file << std::endl << "\tmfc1\t" <<"$" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						contxt.regType[contxt.Regs+1]='f';
						file<<   std::endl << "\tnop\t";
					}		
					file<<   std::endl << "\tsne $" << contxt.Regs+1 << ",$0,$" << contxt.Regs+1;
					postfix_ops(contxt, file);
					file<< std::endl << "\tand $" << contxt.Regs << ",$" << contxt.Regs << ",$" << contxt.Regs+1;
					contxt.regType[contxt.Regs]='i';
					contxt.regType[contxt.Regs+1]='i';
				}
				else 
				{
					if(!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--;
				file << std::endl << SHORTCIRCUIT << ":";			
			}
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
cmpq $0x0, 0x18(%rdi)
jne 0x117ef
movq 0x8(%r15), %rdi
testq %rdi, %rdi
je 0x117ef
movq %r14, %rsi
movq %rbx, %rdx
callq 0x13478
cmpb $0x1, 0x74(%rbx)
jne 0x11866
cmpb $0x1, 0x21b(%rbx)
jne 0x11866
cmpb $0x1, 0x218(%rbx)
jne 0x11866
movq 0x10(%r15), %rdi
testq %rdi, %rdi
je 0x11831
cmpq $0x0, 0x8(%r15)
je 0x11831
movq %r14, %rsi
movq %rbx, %rdx
callq 0x117ba
movq 0x8(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x13478
movq 0x78(%rbx), %rdx
movq 0x80(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x12a24
cmpl $0x0, -0x8(%rdx,%rsi)
je 0x12260
xorl %ecx, %ecx
cmpl $0x0, -0x4(%rdx,%rsi)
setne %cl
jmp 0x12262
movq 0x10(%r15), %rdi
testq %rdi, %rdi
je 0x12a24
cmpb $0x0, 0x21b(%rbx)
jne 0x12a24
cmpq $0x0, 0x8(%r15)
je 0x12a24
cmpq $0x0, 0x18(%r15)
je 0x12a24
movq %r14, %rsi
movq %rbx, %rdx
callq 0x117ba
leaq 0x98(%rsp), %r13
movq %r13, -0x10(%r13)
xorl %eax, %eax
movq %rax, -0x8(%r13)
movb %al, (%r13)
leaq 0x78(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rax, -0x8(%rbp)
movb %al, (%rbp)
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x12eb5
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x7400
movq (%r12), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x118f9
callq 0x72e0
leaq 0x25e18(%rip), %rsi     # 0x37718
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
leaq 0x88(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x7400
movq (%r12), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x11937
callq 0x72e0
cmpb $0x1, 0x218(%rbx)
jne 0x1220d
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x12fe7
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x341(%rbx,%rax)
je 0x11977
cmpb $0x66, 0x342(%rbx,%rax)
jne 0x120c2
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x12eb5
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x7400
movq (%r12), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x119a9
callq 0x72e0
leaq 0x25ce6(%rip), %rsi     # 0x37696
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
leaq 0x25cd7(%rip), %rsi     # 0x3769d
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
leaq 0x25cc8(%rip), %rsi     # 0x376a4
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25c92(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25c91(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r12, %rdi
callq 0x73a0
leaq 0x26241(%rip), %rsi     # 0x37c85
movl $0x2, %edx
movq %r12, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25c33(%rip), %rsi     # 0x376b5
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x25c1a(%rip), %rsi     # 0x376c0
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25bd2(%rip), %rsi     # 0x376c5
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x25b8c(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25b54(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x25b01(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x257fe(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25a58(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25a57(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r12, %rdi
callq 0x73a0
leaq 0x25a58(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %r12, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25a1d(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x259e0(%rip), %rsi     # 0x376c0
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x259b7(%rip), %rsi     # 0x376e4
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x25952(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x2591a(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x258c7(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x255c4(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x2581e(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25cb0(%rip), %rsi     # 0x37b54
movl $0x2, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x2580e(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x254f2(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25789(%rip), %rsi     # 0x376eb
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x257ec(%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, 0x342(%rbx,%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x25711(%rip), %rsi     # 0x376f7
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25b1d(%rip), %rsi     # 0x37b17
movl $0x1, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x25754(%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, 0x342(%rbx,%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x25651(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1209b
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x120ae
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x120c2
callq 0x72e0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x2560b(%rip), %rsi     # 0x376fe
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x255eb(%rip), %rsi     # 0x37705
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x69, 0x342(%rbx,%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x255b3(%rip), %rsi     # 0x3772a
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x254e0(%rip), %rsi     # 0x3767e
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %r12, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x69, 0x342(%rbx,%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x254cc(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
incl 0x310(%rbx)
movq 0x8(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x13478
cmpb $0x1, 0x14d(%rbx)
jne 0x122e4
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x122e4
cmpl $0x0, -0x8(%rdx,%rsi)
je 0x122a9
xorl %ecx, %ecx
cmpl $0x0, -0x4(%rdx,%rsi)
setne %cl
jmp 0x122ab
xorl %ecx, %ecx
movl %ecx, 0x88(%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x80(%rbx)
cmpq 0x88(%rbx), %rsi
je 0x12290
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x80(%rbx)
jmp 0x12a24
addq $0x78, %rbx
leaq 0x88(%rsp), %rdx
movq %rbx, %rdi
callq 0x202ae
jmp 0x12a24
xorl %ecx, %ecx
movl %ecx, 0x8(%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x158(%rbx)
cmpq 0x160(%rbx), %rsi
je 0x122d3
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x158(%rbx)
jmp 0x122e4
leaq 0x150(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x202ae
movb 0x1f8(%rbx), %al
cmpb $0x1, 0x218(%rbx)
jne 0x12300
testb $0x1, %al
jne 0x12300
cmpb $0x0, 0x14d(%rbx)
je 0x1233c
testb $0x1, %al
jne 0x129aa
cmpb $0x0, 0x14d(%rbx)
jne 0x129aa
movslq 0x310(%rbx), %rax
cmpl $0x0, 0x5f8(%rbx,%rax,4)
je 0x12966
xorl %ecx, %ecx
cmpl $0x0, 0x5fc(%rbx,%rax,4)
setne %cl
jmp 0x12968
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x12fe7
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x341(%rbx,%rax)
je 0x1236f
cmpb $0x66, 0x342(%rbx,%rax)
jne 0x1286c
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x12eb5
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0x7400
movq (%r15), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x123a0
callq 0x72e0
leaq 0x252ef(%rip), %rsi     # 0x37696
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
leaq 0x252e0(%rip), %rsi     # 0x3769d
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
leaq 0x252d1(%rip), %rsi     # 0x376a4
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0xfef4
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x252ba(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x252b9(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r15, %rdi
callq 0x73a0
leaq 0x25869(%rip), %rsi     # 0x37c85
movl $0x2, %edx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x2527a(%rip), %rsi     # 0x376b5
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x25261(%rip), %rsi     # 0x376c0
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x25238(%rip), %rsi     # 0x376c5
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
leaq 0x25211(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x251f8(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
leaq 0x251c4(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x24ee0(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x25159(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25158(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r15, %rdi
callq 0x73a0
leaq 0x25159(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x2513d(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x25100(%rip), %rsi     # 0x376c0
movl $0x4, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x250f6(%rip), %rsi     # 0x376e4
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
leaq 0x250b0(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x25097(%rip), %rsi     # 0x376d2
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
leaq 0x25063(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x24d7f(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24ff8(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x2548a(%rip), %rsi     # 0x37b54
movl $0x2, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x24fe8(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7180
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x24ceb(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24fa1(%rip), %rsi     # 0x376eb
movl $0xb, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x25004(%rip), %rsi     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24f48(%rip), %rsi     # 0x376f7
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25354(%rip), %rsi     # 0x37b17
movl $0x1, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x24f8b(%rip), %rsi     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7180
leaq 0x24ea7(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12845
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12858
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1286c
callq 0x72e0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24e80(%rip), %rsi     # 0x376fe
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x24e60(%rip), %rsi     # 0x37705
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rbx, %rdi
movq %r14, %rsi
callq 0x12abf
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24e55(%rip), %rsi     # 0x37734
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x24e2d(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x24e08(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x69, %cl
movb %cl, 0x341(%rbx,%rax)
movslq 0x310(%rbx), %rax
movb %cl, 0x342(%rbx,%rax)
jmp 0x129aa
xorl %ecx, %ecx
movl %ecx, 0x5f8(%rbx,%rax,4)
movslq 0x310(%rbx), %rax
movss 0xa238(%rbx,%rax,4), %xmm1
xorps %xmm0, %xmm0
ucomiss %xmm0, %xmm1
jne 0x12989
jnp 0x129a1
xorps %xmm1, %xmm1
cmpneqss 0xa23c(%rbx,%rax,4), %xmm1
movss 0x24956(%rip), %xmm0    # 0x372f4
andps %xmm1, %xmm0
movss %xmm0, 0xa238(%rbx,%rax,4)
decl 0x310(%rbx)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %rax, %rdi
callq 0x73a0
leaq 0x24a20(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x12a12
callq 0x72e0
movq 0x88(%rsp), %rdi
cmpq %r13, %rdi
je 0x12a24
callq 0x72e0
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x12a40
jmp 0x12a45
jmp 0x12a54
jmp 0x12a54
jmp 0x12a54
movq %rax, %rbx
jmp 0x12a6f
movq %rax, %rbx
jmp 0x12a82
jmp 0x12a54
jmp 0x12a54
jmp 0x12a54
jmp 0x12a54
jmp 0x12a59
movq %rax, %rbx
jmp 0x12a96
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12a6f
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12a82
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x12a96
callq 0x72e0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x12aa5
callq 0x72e0
movq 0x88(%rsp), %rdi
cmpq %r13, %rdi
je 0x12ab7
callq 0x72e0
movq %rbx, %rdi
callq 0x75f0