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

			if(OR_OP==NULL && LogicalAndExpressionPtr != NULL){
				LogicalAndExpressionPtr->render_asm(file,contxt);
				postfix_ops(contxt, file);
			}
			if(contxt.LocalArray && contxt.reading && contxt.function){
				if(LogicalOrExpressionPtr != NULL && LogicalAndExpressionPtr != NULL){
					LogicalOrExpressionPtr->render_asm(file,contxt);
					LogicalAndExpressionPtr->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 && LogicalAndExpressionPtr != NULL && OR_OP != NULL){ 
				LogicalOrExpressionPtr->render_asm(file,contxt);
				
				std::string SHORTCIRCUIT, PASS, label_id;
				label_id = labelGenLogical(contxt);
				SHORTCIRCUIT = "$SHORTCIRCUIT_OR" + 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;
					file<<   std::endl << "\tbne $" << contxt.Regs+1 << ",$0," << SHORTCIRCUIT;
					contxt.regType[contxt.Regs+1]='i';
					file<<   std::endl << "\tnop\t";}
				contxt.Regs++;
				LogicalAndExpressionPtr->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 << "\tor $" << 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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc0, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
cmpq $0x0, 0x10(%rdi)
jne 0xdb5d
movq 0x8(%r15), %rdi
testq %rdi, %rdi
je 0xdb5d
movq %r14, %rsi
movq %rbx, %rdx
callq 0xea48
movq %rbx, %rdi
movq %r14, %rsi
callq 0xf764
cmpb $0x1, 0x74(%rbx)
jne 0xdbd1
cmpb $0x1, 0x21b(%rbx)
jne 0xdbd1
cmpb $0x1, 0x218(%rbx)
jne 0xdbd1
movq 0x18(%r15), %rdi
testq %rdi, %rdi
je 0xdb9f
cmpq $0x0, 0x8(%r15)
je 0xdb9f
movq %r14, %rsi
movq %rbx, %rdx
callq 0xdb1e
movq 0x8(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xea48
movq 0x78(%rbx), %rcx
movq 0x80(%rbx), %rax
movq %rax, %rsi
subq %rcx, %rsi
cmpq $0x5, %rsi
jb 0xe7e5
leaq 0x78(%rbx), %rdi
cmpl $0x0, -0x8(%rcx,%rsi)
je 0xe715
pushq $0x1
popq %rdx
jmp 0xe71f
cmpq $0x0, 0x8(%r15)
je 0xe7e5
cmpb $0x0, 0x21b(%rbx)
jne 0xe7e5
cmpq $0x0, 0x10(%r15)
je 0xe7e5
movq 0x18(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xdb1e
leaq 0x90(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
leaq 0xb0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %cl, (%rax)
movb %cl, (%rdx)
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
movq %rsp, %rdi
movq %rbx, %rsi
callq 0xfabc
leaq 0x60(%rsp), %r12
movq %rsp, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x7400
movq %r13, %rdi
callq 0x7170
leaq 0x1fa27(%rip), %rsi     # 0x2d68f
movq %rsp, %rdi
movq %r12, %rdx
callq 0xdaa7
leaq 0x80(%rsp), %rdi
movq %rsp, %r12
movq %r12, %rsi
callq 0x7400
movq %r12, %rdi
callq 0x7170
cmpb $0x1, 0x218(%rbx)
jne 0xe16c
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0xfb3c
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x341(%rbx,%rax)
je 0xdcce
cmpb $0x66, 0x342(%rbx,%rax)
jne 0xe0ba
movq %rsp, %rdi
movq %rbx, %rsi
callq 0xfabc
leaq 0x60(%rsp), %r12
movq %rsp, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x7400
movq %r13, %rdi
callq 0x7170
leaq 0x1f9a5(%rip), %rsi     # 0x2d6a0
movq %rsp, %rdi
movq %r12, %rdx
callq 0xdaa7
leaq 0x1f99a(%rip), %rsi     # 0x2d6a7
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0xdaa7
leaq 0x1f98b(%rip), %rsi     # 0x2d6ae
leaq 0x40(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0xdaa7
movq %r14, %rdi
callq 0x7190
leaq 0x1f977(%rip), %rsi     # 0x2d6b8
movq %rax, %rdi
callq 0x7310
leaq 0x1f97b(%rip), %rsi     # 0x2d6cb
movq %rax, %rdi
callq 0x7310
leaq 0x1ff30(%rip), %rsi     # 0x2dc8f
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f949(%rip), %rsi     # 0x2d6bf
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f935(%rip), %rsi     # 0x2d6ca
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f914(%rip), %rsi     # 0x2d6cf
movq %rax, %rdi
callq 0x7310
movq %rsp, %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f8f9(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f8e8(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f8be(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
movq %rsp, %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1f5bc(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f867(%rip), %rsi     # 0x2d6b8
movq %rax, %rdi
callq 0x7310
leaq 0x1f86b(%rip), %rsi     # 0x2d6cb
movq %rax, %rdi
callq 0x7310
leaq 0x1f871(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f85d(%rip), %rsi     # 0x2d6e3
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f825(%rip), %rsi     # 0x2d6ca
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f823(%rip), %rsi     # 0x2d6ee
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f7e7(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f7d6(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f7ac(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1f4a8(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f753(%rip), %rsi     # 0x2d6b8
movq %rax, %rdi
callq 0x7310
leaq 0x1fbea(%rip), %rsi     # 0x2db5e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f74d(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1f430(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f718(%rip), %rsi     # 0x2d6f5
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f783(%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, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f6cf(%rip), %rsi     # 0x2d701
movq %rax, %rdi
callq 0x7310
leaq 0x1fae0(%rip), %rsi     # 0x2db21
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f71f(%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, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f640(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rdi
callq 0x7170
leaq 0x20(%rsp), %rdi
callq 0x7170
movq %rsp, %rdi
callq 0x7170
movq %r14, %rdi
callq 0x7190
leaq 0x1f63f(%rip), %rsi     # 0x2d708
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f627(%rip), %rsi     # 0x2d70f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %r14, %rdi
callq 0x7190
leaq 0x1f606(%rip), %rsi     # 0x2d715
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f557(%rip), %rsi     # 0x2d685
movq %rax, %rdi
callq 0x7310
leaq 0x80(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movslq 0x310(%rbx), %rax
movb $0x69, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f572(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
incl 0x310(%rbx)
movq 0x8(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0xea48
cmpb $0x1, 0x14d(%rbx)
jne 0xe1d6
movq 0x150(%rbx), %rcx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rcx, %rsi
cmpq $0x5, %rsi
jb 0xe1d6
leaq 0x150(%rbx), %rdi
cmpl $0x0, -0x8(%rcx,%rsi)
je 0xe1b7
pushq $0x1
popq %rdx
jmp 0xe1c1
xorl %edx, %edx
cmpl $0x0, -0x4(%rcx,%rsi)
setne %dl
movq %rsp, %rsi
movl %edx, (%rsi)
addq $-0x8, %rax
movq %rax, 0x158(%rbx)
callq 0xfa9e
movb 0x1f8(%rbx), %al
cmpb $0x1, 0x218(%rbx)
jne 0xe1f2
testb $0x1, %al
jne 0xe1f2
cmpb $0x0, 0x14d(%rbx)
je 0xe224
testb $0x1, %al
jne 0xe794
cmpb $0x0, 0x14d(%rbx)
jne 0xe794
movslq 0x310(%rbx), %rax
cmpl $0x0, 0x5f8(%rbx,%rax,4)
je 0xe73e
pushq $0x1
popq %rcx
jmp 0xe74b
movl 0x310(%rbx), %edi
leal 0x1(%rdi), %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0xfb3c
movslq 0x310(%rbx), %rax
cmpb $0x66, 0x341(%rbx,%rax)
je 0xe257
cmpb $0x66, 0x342(%rbx,%rax)
jne 0xe643
movq %rsp, %rdi
movq %rbx, %rsi
callq 0xfabc
leaq 0x60(%rsp), %r15
movq %rsp, %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x7400
movq %r12, %rdi
callq 0x7170
leaq 0x1f41c(%rip), %rsi     # 0x2d6a0
movq %rsp, %rdi
movq %r15, %rdx
callq 0xdaa7
leaq 0x1f411(%rip), %rsi     # 0x2d6a7
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0xdaa7
leaq 0x1f402(%rip), %rsi     # 0x2d6ae
leaq 0x40(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0xdaa7
movq %r14, %rdi
callq 0x7190
leaq 0x1f3ee(%rip), %rsi     # 0x2d6b8
movq %rax, %rdi
callq 0x7310
leaq 0x1f3f2(%rip), %rsi     # 0x2d6cb
movq %rax, %rdi
callq 0x7310
leaq 0x1f9a7(%rip), %rsi     # 0x2dc8f
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f3c0(%rip), %rsi     # 0x2d6bf
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f3ac(%rip), %rsi     # 0x2d6ca
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f38b(%rip), %rsi     # 0x2d6cf
movq %rax, %rdi
callq 0x7310
movq %rsp, %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f370(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f35f(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f335(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
movq %rsp, %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1f033(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f2de(%rip), %rsi     # 0x2d6b8
movq %rax, %rdi
callq 0x7310
leaq 0x1f2e2(%rip), %rsi     # 0x2d6cb
movq %rax, %rdi
callq 0x7310
leaq 0x1f2e8(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f2d4(%rip), %rsi     # 0x2d6e3
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f29c(%rip), %rsi     # 0x2d6ca
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f29a(%rip), %rsi     # 0x2d6ee
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f25e(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f24d(%rip), %rsi     # 0x2d6dc
movq %rax, %rdi
callq 0x7310
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
movq %r14, %rdi
callq 0x7190
leaq 0x1f223(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1ef1f(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f1ca(%rip), %rsi     # 0x2d6b8
movq %rax, %rdi
callq 0x7310
leaq 0x1f661(%rip), %rsi     # 0x2db5e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f1c4(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1eea7(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
movq %r14, %rdi
callq 0x7190
leaq 0x1f18f(%rip), %rsi     # 0x2d6f5
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f1fa(%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, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f146(%rip), %rsi     # 0x2d701
movq %rax, %rdi
callq 0x7310
leaq 0x1f557(%rip), %rsi     # 0x2db21
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f196(%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, 0x342(%rbx,%rax)
movq %r14, %rdi
callq 0x7190
leaq 0x1f0b7(%rip), %rsi     # 0x2d6d6
movq %rax, %rdi
callq 0x7310
leaq 0x40(%rsp), %rdi
callq 0x7170
leaq 0x20(%rsp), %rdi
callq 0x7170
movq %rsp, %rdi
callq 0x7170
movq %r14, %rdi
callq 0x7190
leaq 0x1f0b6(%rip), %rsi     # 0x2d708
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f09e(%rip), %rsi     # 0x2d70f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %rbx, %rdi
movq %r14, %rsi
callq 0xf764
movq %r14, %rdi
callq 0x7190
leaq 0x1f079(%rip), %rsi     # 0x2d71c
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f07b(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1f05e(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x69, %cl
movb %cl, 0x341(%rbx,%rax)
movslq 0x310(%rbx), %rax
movb %cl, 0x342(%rbx,%rax)
jmp 0xe794
xorl %edx, %edx
cmpl $0x0, -0x4(%rcx,%rsi)
setne %dl
leaq 0x80(%rsp), %rsi
movl %edx, (%rsi)
addq $-0x8, %rax
movq %rax, 0x80(%rbx)
callq 0xfa9e
jmp 0xe7e5
xorl %ecx, %ecx
cmpl $0x0, 0x5fc(%rbx,%rax,4)
setne %cl
movl %ecx, 0x5f8(%rbx,%rax,4)
movslq 0x310(%rbx), %rax
movss 0xa238(%rbx,%rax,4), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xe76c
jnp 0xe776
movss 0x1eb60(%rip), %xmm0    # 0x2d2d4
jmp 0xe78b
cmpneqss 0xa23c(%rbx,%rax,4), %xmm1
movss 0x1eb4c(%rip), %xmm0    # 0x2d2d4
andps %xmm1, %xmm0
movss %xmm0, 0xa238(%rbx,%rax,4)
decl 0x310(%rbx)
movq %r14, %rdi
callq 0x7190
leaq 0x80(%rsp), %rsi
movq %rax, %rdi
callq 0x72d0
leaq 0x1ec3d(%rip), %rsi     # 0x2d3f6
movq %rax, %rdi
callq 0x7310
leaq 0x60(%rsp), %rdi
callq 0x7170
leaq 0xa0(%rsp), %rdi
callq 0x7170
leaq 0x80(%rsp), %rdi
callq 0x7170
addq $0xc0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0xe800
jmp 0xe805
jmp 0xe814
jmp 0xe814
jmp 0xe814
movq %rax, %rbx
jmp 0xe826
movq %rax, %rbx
jmp 0xe830
jmp 0xe814
jmp 0xe814
jmp 0xe814
jmp 0xe814
jmp 0xe819
movq %rax, %rbx
jmp 0xe838
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x7170
leaq 0x20(%rsp), %rdi
callq 0x7170
movq %rsp, %rdi
callq 0x7170
leaq 0x60(%rsp), %rdi
callq 0x7170
leaq 0xa0(%rsp), %rdi
callq 0x7170
leaq 0x80(%rsp), %rdi
callq 0x7170
movq %rbx, %rdi
callq 0x75c0