// File: /workspace/github_cpp_makefile_star2_O1/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 0x120f7
movq 0x8(%r15), %rdi
testq %rdi, %rdi
je 0x120f7
movq %r14, %rsi
movq %rbx, %rdx
callq 0x13d8a
cmpb $0x1, 0x74(%rbx)
jne 0x1216e
cmpb $0x1, 0x21b(%rbx)
jne 0x1216e
cmpb $0x1, 0x218(%rbx)
jne 0x1216e
movq 0x10(%r15), %rdi
testq %rdi, %rdi
je 0x12139
cmpq $0x0, 0x8(%r15)
je 0x12139
movq %r14, %rsi
movq %rbx, %rdx
callq 0x120c2
movq 0x8(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x13d8a
movq 0x78(%rbx), %rdx
movq 0x80(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x13330
cmpl $0x0, -0x8(%rdx,%rsi)
je 0x12b68
xorl %ecx, %ecx
cmpl $0x0, -0x4(%rdx,%rsi)
setne %cl
jmp 0x12b6a
movq 0x10(%r15), %rdi
testq %rdi, %rdi
je 0x13330
cmpb $0x0, 0x21b(%rbx)
jne 0x13330
cmpq $0x0, 0x8(%r15)
je 0x13330
cmpq $0x0, 0x18(%r15)
je 0x13330
movq %r14, %rsi
movq %rbx, %rdx
callq 0x120c2
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 0x137c1
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x7400
movq (%r12), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x12201
callq 0x72e0
leaq 0x25510(%rip), %rsi     # 0x37718
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x88(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x7400
movq (%r12), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1223f
callq 0x72e0
cmpb $0x1, 0x218(%rbx)
jne 0x12b15
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x138f3
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x341(%rbx,%rax)
je 0x1227f
cmpb $0x66, 0x342(%rbx,%rax)
jne 0x129ca
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x137c1
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x7400
movq (%r12), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x122b1
callq 0x72e0
leaq 0x253de(%rip), %rsi     # 0x37696
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x253cf(%rip), %rsi     # 0x3769d
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x253c0(%rip), %rsi     # 0x376a4
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
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 0x2538a(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25389(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r12, %rdi
callq 0x73a0
leaq 0x25939(%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 0x2532b(%rip), %rsi     # 0x376b5
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x25312(%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 0x252ca(%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 0x25284(%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 0x2524c(%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 0x251f9(%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 0x24ef6(%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 0x25150(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x2514f(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r12, %rdi
callq 0x73a0
leaq 0x25150(%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 0x25115(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x250d8(%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 0x250af(%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 0x2504a(%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 0x25012(%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 0x24fbf(%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 0x24cbc(%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 0x24f16(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x253a8(%rip), %rsi     # 0x37b54
movl $0x2, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x24f06(%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 0x24bea(%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 0x24e81(%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 0x24ee4(%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 0x24e09(%rip), %rsi     # 0x376f7
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25215(%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 0x24e4c(%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 0x24d49(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x129a3
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x129b6
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x129ca
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 0x24d03(%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 0x24ce3(%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 0x24cab(%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 0x24bd8(%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 0x24bc4(%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 0x13d8a
cmpb $0x1, 0x14d(%rbx)
jne 0x12bec
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x12bec
cmpl $0x0, -0x8(%rdx,%rsi)
je 0x12bb1
xorl %ecx, %ecx
cmpl $0x0, -0x4(%rdx,%rsi)
setne %cl
jmp 0x12bb3
xorl %ecx, %ecx
movl %ecx, 0x88(%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x80(%rbx)
cmpq 0x88(%rbx), %rsi
je 0x12b98
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x80(%rbx)
jmp 0x13330
addq $0x78, %rbx
leaq 0x88(%rsp), %rdx
movq %rbx, %rdi
callq 0x20a34
jmp 0x13330
xorl %ecx, %ecx
movl %ecx, 0x8(%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x158(%rbx)
cmpq 0x160(%rbx), %rsi
je 0x12bdb
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x158(%rbx)
jmp 0x12bec
leaq 0x150(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20a34
cmpb $0x1, 0x218(%rbx)
jne 0x12c07
cmpb $0x0, 0x1f8(%rbx)
jne 0x12c07
cmpb $0x0, 0x14d(%rbx)
je 0x12c48
cmpb $0x0, 0x1f8(%rbx)
jne 0x132b6
cmpb $0x0, 0x14d(%rbx)
jne 0x132b6
movslq 0x310(%rbx), %rax
cmpl $0x0, 0x5f8(%rbx,%rax,4)
je 0x13272
xorl %ecx, %ecx
cmpl $0x0, 0x5fc(%rbx,%rax,4)
setne %cl
jmp 0x13274
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x138f3
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x341(%rbx,%rax)
je 0x12c7b
cmpb $0x66, 0x342(%rbx,%rax)
jne 0x13178
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x137c1
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0x7400
movq (%r15), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x12cac
callq 0x72e0
leaq 0x249e3(%rip), %rsi     # 0x37696
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x249d4(%rip), %rsi     # 0x3769d
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x249c5(%rip), %rsi     # 0x376a4
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x249ae(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x249ad(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r15, %rdi
callq 0x73a0
leaq 0x24f5d(%rip), %rsi     # 0x37c85
movl $0x2, %edx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x2496e(%rip), %rsi     # 0x376b5
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x24955(%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 0x2492c(%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 0x24905(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x248ec(%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 0x248b8(%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 0x245d4(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x2484d(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x2484c(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r15, %rdi
callq 0x73a0
leaq 0x2484d(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %r15, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24831(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x247f4(%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 0x247ea(%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 0x247a4(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x2478b(%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 0x24757(%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 0x24473(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x246ec(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x24b7e(%rip), %rsi     # 0x37b54
movl $0x2, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x246dc(%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 0x243df(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24695(%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 0x246f8(%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 0x2463c(%rip), %rsi     # 0x376f7
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x24a48(%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 0x2467f(%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 0x2459b(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13151
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13164
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x13178
callq 0x72e0
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24574(%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 0x24554(%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 0x133cb
movq %r14, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x24549(%rip), %rsi     # 0x37734
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x24521(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x244fc(%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 0x132b6
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 0x13295
jnp 0x132ad
xorps %xmm1, %xmm1
cmpneqss 0xa23c(%rbx,%rax,4), %xmm1
movss 0x2404a(%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 0x24114(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1331e
callq 0x72e0
movq 0x88(%rsp), %rdi
cmpq %r13, %rdi
je 0x13330
callq 0x72e0
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1334c
jmp 0x13351
jmp 0x13360
jmp 0x13360
jmp 0x13360
movq %rax, %rbx
jmp 0x1337b
movq %rax, %rbx
jmp 0x1338e
jmp 0x13360
jmp 0x13360
jmp 0x13360
jmp 0x13360
jmp 0x13365
movq %rax, %rbx
jmp 0x133a2
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1337b
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1338e
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x133a2
callq 0x72e0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x133b1
callq 0x72e0
movq 0x88(%rsp), %rdi
cmpq %r13, %rdi
je 0x133c3
callq 0x72e0
movq %rbx, %rdi
callq 0x75f0