// File: /workspace/github_cpp_makefile_star2_O1/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
cmpq $0x0, 0x10(%rdi)
jne 0x108a4
movq 0x8(%r15), %rdi
testq %rdi, %rdi
je 0x108a4
movq %r14, %rsi
movq %rbx, %rdx
callq 0x120c2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x133cb
cmpb $0x1, 0x74(%rbx)
jne 0x10955
cmpb $0x1, 0x21b(%rbx)
jne 0x10955
cmpb $0x1, 0x218(%rbx)
jne 0x10955
movq 0x18(%r15), %rdi
testq %rdi, %rdi
je 0x108f2
cmpq $0x0, 0x8(%r15)
je 0x108f2
movq %r14, %rsi
movq %rbx, %rdx
callq 0x10864
movq 0x8(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x120c2
movq 0x78(%rbx), %rdx
movq 0x80(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x11d87
movl $0x1, %ecx
cmpl $0x0, -0x8(%rdx,%rsi)
jne 0x10923
xorl %ecx, %ecx
cmpl $0x0, -0x4(%rdx,%rsi)
setne %cl
movl %ecx, 0x88(%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x80(%rbx)
cmpq 0x88(%rbx), %rsi
je 0x11cbc
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x80(%rbx)
jmp 0x11d87
cmpq $0x0, 0x8(%r15)
je 0x11d87
cmpb $0x0, 0x21b(%rbx)
jne 0x11d87
cmpq $0x0, 0x10(%r15)
je 0x11d87
movq 0x18(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x10864
leaq 0x98(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0xb8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rax, -0x8(%rbp)
movb %al, (%rbp)
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rax, -0x8(%r13)
movb %al, (%r13)
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 0x109f1
callq 0x72e0
leaq 0x26c8d(%rip), %rsi     # 0x37685
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 0x10a2f
callq 0x72e0
cmpb $0x1, 0x218(%rbx)
jne 0x112f6
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 0x10a6f
cmpb $0x66, 0x342(%rbx,%rax)
jne 0x111ba
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 0x10aa1
callq 0x72e0
leaq 0x26bee(%rip), %rsi     # 0x37696
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x26bdf(%rip), %rsi     # 0x3769d
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x26bd0(%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 0x26b9a(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x26b99(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r12, %rdi
callq 0x73a0
leaq 0x27149(%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 0x26b3b(%rip), %rsi     # 0x376b5
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x26b22(%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 0x26ada(%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 0x26a94(%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 0x26a5c(%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 0x26a09(%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 0x26706(%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 0x26960(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x2695f(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r12, %rdi
callq 0x73a0
leaq 0x26960(%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 0x26925(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x268e8(%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 0x268bf(%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 0x2685a(%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 0x26822(%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 0x267cf(%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 0x264cc(%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 0x26726(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x26bb8(%rip), %rsi     # 0x37b54
movl $0x2, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x26716(%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 0x263fa(%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 0x26691(%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 0x266f4(%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 0x26619(%rip), %rsi     # 0x376f7
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x26a25(%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 0x2665c(%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 0x26559(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11193
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x111a6
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x111ba
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 0x26513(%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 0x264f3(%rip), %rsi     # 0x37705
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
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 0x264ab(%rip), %rsi     # 0x3770b
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x263f4(%rip), %rsi     # 0x3767b
movl $0x4, %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 0x263e3(%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 0x120c2
cmpb $0x1, 0x14d(%rbx)
jne 0x1137d
movq 0x150(%rbx), %rdx
movq 0x158(%rbx), %rax
movq %rax, %rsi
subq %rdx, %rsi
cmpq $0x5, %rsi
jb 0x1137d
movl $0x1, %ecx
cmpl $0x0, -0x8(%rdx,%rsi)
jne 0x11344
xorl %ecx, %ecx
cmpl $0x0, -0x4(%rdx,%rsi)
setne %cl
movl %ecx, 0x8(%rsp)
leaq -0x8(%rax), %rsi
movq %rsi, 0x158(%rbx)
cmpq 0x160(%rbx), %rsi
je 0x1136c
movl %ecx, -0x8(%rax)
addq $-0x4, %rax
movq %rax, 0x158(%rbx)
jmp 0x1137d
leaq 0x150(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20a34
cmpb $0x1, 0x218(%rbx)
jne 0x11398
cmpb $0x0, 0x1f8(%rbx)
jne 0x11398
cmpb $0x0, 0x14d(%rbx)
je 0x11407
cmpb $0x0, 0x1f8(%rbx)
jne 0x11cf3
cmpb $0x0, 0x14d(%rbx)
jne 0x11cf3
movslq 0x310(%rbx), %rax
movl $0x1, %ecx
cmpl $0x0, 0x5f8(%rbx,%rax,4)
jne 0x113d5
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 0x113fa
jnp 0x11cd5
movss 0x25ef2(%rip), %xmm0    # 0x372f4
jmp 0x11cea
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 0x1143a
cmpb $0x66, 0x342(%rbx,%rax)
jne 0x11b84
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 0x1146b
callq 0x72e0
leaq 0x26224(%rip), %rsi     # 0x37696
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x26215(%rip), %rsi     # 0x3769d
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x107e2
leaq 0x26206(%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, %r15
leaq 0x261d0(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x261cf(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r15, %rdi
callq 0x73a0
leaq 0x2677f(%rip), %rsi     # 0x37c85
movl $0x2, %edx
movq %r15, %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, %r15
leaq 0x26171(%rip), %rsi     # 0x376b5
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x26158(%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, %r15
leaq 0x26110(%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), %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 0x260ca(%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, %r15
leaq 0x26092(%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), %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 0x2603f(%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 0x25d3c(%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, %r15
leaq 0x25f96(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x25f95(%rip), %rsi     # 0x376c1
movl $0x3, %edx
movq %r15, %rdi
callq 0x73a0
leaq 0x25f96(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %r15, %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, %r15
leaq 0x25f5b(%rip), %rsi     # 0x376d9
movl $0xa, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x25f1e(%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, %r15
leaq 0x25ef5(%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), %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 0x25e90(%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, %r15
leaq 0x25e58(%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), %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 0x25e05(%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 0x25b02(%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, %r15
leaq 0x25d5c(%rip), %rsi     # 0x376ae
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x261ee(%rip), %rsi     # 0x37b54
movl $0x2, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x25d4c(%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 0x25a30(%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, %r15
leaq 0x25cc7(%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 0x25d2a(%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), %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, %r15
leaq 0x25c4f(%rip), %rsi     # 0x376f7
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x2605b(%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 0x25c92(%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), %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 0x25b8f(%rip), %rsi     # 0x376cc
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b5d
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b70
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x11b84
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, %r15
leaq 0x25b49(%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 0x25b29(%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), %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, %r15
leaq 0x25add(%rip), %rsi     # 0x37712
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x25ad7(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x25ab2(%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 0x11cf3
addq $0x78, %rbx
leaq 0x88(%rsp), %rdx
movq %rbx, %rdi
callq 0x20a34
jmp 0x11d87
cmpneqss 0xa23c(%rbx,%rax,4), %xmm1
movss 0x2560d(%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 0x256d7(%rip), %rsi     # 0x37416
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x11d5b
callq 0x72e0
movq 0xa8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x11d6d
callq 0x72e0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x11d87
callq 0x72e0
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x11da3
jmp 0x11da8
jmp 0x11db7
jmp 0x11db7
jmp 0x11db7
movq %rax, %rbx
jmp 0x11dd2
movq %rax, %rbx
jmp 0x11de5
jmp 0x11db7
jmp 0x11db7
jmp 0x11db7
jmp 0x11db7
jmp 0x11dbc
movq %rax, %rbx
jmp 0x11df9
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11dd2
callq 0x72e0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11de5
callq 0x72e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x11df9
callq 0x72e0
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x11e08
callq 0x72e0
movq 0xa8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x11e1a
callq 0x72e0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x11e34
callq 0x72e0
movq %rbx, %rdi
callq 0x75f0