// File: 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
movq %rsp, %rbp
subq $0x590, %rsp            # imm = 0x590
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1c0(%rbp)
cmpq $0x0, 0x18(%rax)
jne 0x1402f
movq -0x1c0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1402f
movq -0x1c0(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x163a0
movq -0x18(%rbp), %rax
testb $0x1, 0x74(%rax)
je 0x1417a
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
je 0x1417a
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x1417a
movq -0x1c0(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x140ab
movq -0x1c0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x140ab
movq -0x1c0(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x13fe0
movq -0x1c0(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x163a0
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
cmpq $0x2, %rax
jb 0x14175
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x1d0(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x1d0(%rbp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x11a80
movq %rax, %rcx
xorl %eax, %eax
cmpl $0x0, (%rcx)
movb %al, -0x1c1(%rbp)
je 0x1413c
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x1d8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x1d8(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
cmpl $0x0, (%rax)
setne %al
movb %al, -0x1c1(%rbp)
movb -0x1c1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
leaq -0x1c(%rbp), %rsi
callq 0x15ec0
jmp 0x15898
movq -0x1c0(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x15896
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
jne 0x15896
movq -0x1c0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x15896
movq -0x1c0(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x15896
movq -0x1c0(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x13fe0
leaq -0x40(%rbp), %rdi
callq 0x85b0
leaq -0x60(%rbp), %rdi
callq 0x85b0
movq -0x18(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x15f30
jmp 0x141fa
leaq -0x60(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
leaq -0x80(%rbp), %rsi
movq %rsi, -0x1e8(%rbp)
callq 0x8520
movq -0x1e8(%rbp), %rdi
callq 0x8280
movq -0x1e0(%rbp), %rdx
leaq 0x502a8(%rip), %rsi     # 0x644d7
leaq -0xb0(%rbp), %rdi
callq 0x12040
jmp 0x1423d
leaq -0x40(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x8520
leaq -0xb0(%rbp), %rdi
callq 0x8280
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x14bfc
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %edi
movl %edi, %esi
incl %esi
movq -0x10(%rbp), %rdx
callq 0x16000
jmp 0x14283
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
je 0x142c4
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
jne 0x14a96
movq -0x18(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x15f30
jmp 0x142d6
leaq -0x60(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
leaq -0xd0(%rbp), %rsi
movq %rsi, -0x1f8(%rbp)
callq 0x8520
movq -0x1f8(%rbp), %rdi
callq 0x8280
movq -0x1f0(%rbp), %rdx
leaq 0x50147(%rip), %rsi     # 0x64455
leaq -0xf0(%rbp), %rdi
callq 0x12040
jmp 0x1431c
leaq 0x50139(%rip), %rsi     # 0x6445c
leaq -0x110(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x12040
jmp 0x14335
leaq 0x50127(%rip), %rsi     # 0x64463
leaq -0x130(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x12040
jmp 0x1434e
movq -0x10(%rbp), %rdi
movq 0x73c17(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x200(%rbp)
jmp 0x14367
movq -0x200(%rbp), %rdi
leaq 0x500f8(%rip), %rsi     # 0x6446d
callq 0x8400
movq %rax, -0x208(%rbp)
jmp 0x14383
movq -0x208(%rbp), %rdi
leaq 0x500ef(%rip), %rsi     # 0x64480
callq 0x8400
movq %rax, -0x210(%rbp)
jmp 0x1439f
movq -0x210(%rbp), %rdi
leaq 0x50697(%rip), %rsi     # 0x64a44
callq 0x8400
jmp 0x143b4
movq -0x10(%rbp), %rdi
movq 0x73bb1(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x218(%rbp)
jmp 0x143cd
movq -0x218(%rbp), %rdi
leaq 0x50099(%rip), %rsi     # 0x64474
callq 0x8400
movq %rax, -0x220(%rbp)
jmp 0x143e9
movq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x228(%rbp)
jmp 0x1440a
movq -0x228(%rbp), %rdi
leaq 0x50067(%rip), %rsi     # 0x6447f
callq 0x8400
jmp 0x1441f
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x73b33(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x230(%rbp)
jmp 0x1444b
movq -0x230(%rbp), %rdi
leaq 0x5002b(%rip), %rsi     # 0x64484
callq 0x8400
movq %rax, -0x238(%rbp)
jmp 0x14467
movq -0x238(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x83c0
jmp 0x1447c
movq -0x10(%rbp), %rdi
movq 0x73ae9(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x240(%rbp)
jmp 0x14495
movq -0x240(%rbp), %rdi
leaq 0x4ffe8(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x144aa
movq -0x10(%rbp), %rdi
movq 0x73abb(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x248(%rbp)
jmp 0x144c3
movq -0x248(%rbp), %rdi
leaq 0x4ffc0(%rip), %rsi     # 0x64491
callq 0x8400
movq %rax, -0x250(%rbp)
jmp 0x144df
movq -0x250(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x83c0
jmp 0x144f4
movq -0x10(%rbp), %rdi
movq 0x73a71(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x258(%rbp)
jmp 0x1450d
movq -0x258(%rbp), %rdi
leaq 0x4ff70(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x14522
movq -0x10(%rbp), %rdi
movq 0x73a43(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x260(%rbp)
jmp 0x1453b
movq -0x260(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x83c0
movq %rax, -0x268(%rbp)
jmp 0x14557
movq -0x268(%rbp), %rdi
leaq 0x4fc6e(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x1456c
movq -0x10(%rbp), %rdi
movq 0x739f9(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x270(%rbp)
jmp 0x14585
movq -0x270(%rbp), %rdi
leaq 0x4feda(%rip), %rsi     # 0x6446d
callq 0x8400
movq %rax, -0x278(%rbp)
jmp 0x145a1
movq -0x278(%rbp), %rdi
leaq 0x4fed1(%rip), %rsi     # 0x64480
callq 0x8400
movq %rax, -0x280(%rbp)
jmp 0x145bd
movq -0x280(%rbp), %rdi
leaq 0x4feca(%rip), %rsi     # 0x64495
callq 0x8400
jmp 0x145d2
movq -0x10(%rbp), %rdi
movq 0x73993(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x288(%rbp)
jmp 0x145eb
movq -0x288(%rbp), %rdi
leaq 0x4fe9f(%rip), %rsi     # 0x64498
callq 0x8400
movq %rax, -0x290(%rbp)
jmp 0x14607
movq -0x290(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x298(%rbp)
jmp 0x14628
movq -0x298(%rbp), %rdi
leaq 0x4fe49(%rip), %rsi     # 0x6447f
callq 0x8400
jmp 0x1463d
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x73915(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2a0(%rbp)
jmp 0x14669
movq -0x2a0(%rbp), %rdi
leaq 0x4fe2c(%rip), %rsi     # 0x644a3
callq 0x8400
movq %rax, -0x2a8(%rbp)
jmp 0x14685
movq -0x2a8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x83c0
jmp 0x1469a
movq -0x10(%rbp), %rdi
movq 0x738cb(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2b0(%rbp)
jmp 0x146b3
movq -0x2b0(%rbp), %rdi
leaq 0x4fdca(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x146c8
movq -0x10(%rbp), %rdi
movq 0x7389d(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2b8(%rbp)
jmp 0x146e1
movq -0x2b8(%rbp), %rdi
leaq 0x4fda2(%rip), %rsi     # 0x64491
callq 0x8400
movq %rax, -0x2c0(%rbp)
jmp 0x146fd
movq -0x2c0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x83c0
jmp 0x14712
movq -0x10(%rbp), %rdi
movq 0x73853(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2c8(%rbp)
jmp 0x1472b
movq -0x2c8(%rbp), %rdi
leaq 0x4fd52(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x14740
movq -0x10(%rbp), %rdi
movq 0x73825(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2d0(%rbp)
jmp 0x14759
movq -0x2d0(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x83c0
movq %rax, -0x2d8(%rbp)
jmp 0x14775
movq -0x2d8(%rbp), %rdi
leaq 0x4fa50(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x1478a
movq -0x10(%rbp), %rdi
movq 0x737db(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x2e0(%rbp)
jmp 0x147a3
movq -0x2e0(%rbp), %rdi
leaq 0x4fcbc(%rip), %rsi     # 0x6446d
callq 0x8400
movq %rax, -0x2e8(%rbp)
jmp 0x147bf
movq -0x2e8(%rbp), %rdi
leaq 0x50146(%rip), %rsi     # 0x64913
callq 0x8400
movq %rax, -0x2f0(%rbp)
jmp 0x147db
movq -0x2f0(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x2f8(%rbp)
jmp 0x147fc
movq -0x2f8(%rbp), %rdi
leaq 0x4fc8b(%rip), %rsi     # 0x64495
callq 0x8400
jmp 0x14811
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x73741(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x300(%rbp)
jmp 0x1483d
movq -0x300(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x83c0
movq %rax, -0x308(%rbp)
jmp 0x14859
movq -0x308(%rbp), %rdi
leaq 0x4f96c(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x1486e
movq -0x10(%rbp), %rdi
movq 0x736f7(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x310(%rbp)
jmp 0x14887
movq -0x310(%rbp), %rdi
leaq 0x4fc15(%rip), %rsi     # 0x644aa
callq 0x8400
movq %rax, -0x318(%rbp)
jmp 0x148a3
movq -0x318(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x320(%rbp)
jmp 0x148c4
movq -0x320(%rbp), %rdi
leaq 0x4fc62(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, -0x328(%rbp)
jmp 0x148e0
movq -0x328(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x148fa
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x73658(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x330(%rbp)
jmp 0x14926
movq -0x330(%rbp), %rdi
leaq 0x4fb82(%rip), %rsi     # 0x644b6
callq 0x8400
movq %rax, -0x338(%rbp)
jmp 0x14942
movq -0x338(%rbp), %rdi
leaq 0x4ff86(%rip), %rsi     # 0x648d6
callq 0x8400
movq %rax, -0x340(%rbp)
jmp 0x1495e
movq -0x340(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x348(%rbp)
jmp 0x1497f
movq -0x348(%rbp), %rdi
leaq 0x4fba7(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, -0x350(%rbp)
jmp 0x1499b
movq -0x350(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x149b5
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x7359d(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x358(%rbp)
jmp 0x149e1
movq -0x358(%rbp), %rdi
leaq 0x4fa9c(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x149f6
leaq -0x130(%rbp), %rdi
callq 0x8280
leaq -0x110(%rbp), %rdi
callq 0x8280
leaq -0xf0(%rbp), %rdi
callq 0x8280
jmp 0x14a96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x15882
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x14a85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x14a79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x8280
leaq -0x110(%rbp), %rdi
callq 0x8280
leaq -0xf0(%rbp), %rdi
callq 0x8280
jmp 0x15882
movq -0x10(%rbp), %rdi
movq 0x734cf(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x360(%rbp)
jmp 0x14aaf
movq -0x360(%rbp), %rdi
leaq 0x4fa00(%rip), %rsi     # 0x644bd
callq 0x8400
movq %rax, -0x368(%rbp)
jmp 0x14acb
movq -0x368(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x370(%rbp)
jmp 0x14aec
movq -0x370(%rbp), %rdi
leaq 0x4f9ca(%rip), %rsi     # 0x644c4
callq 0x8400
movq %rax, -0x378(%rbp)
jmp 0x14b08
movq -0x378(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x14b22
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x69, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x73430(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x380(%rbp)
jmp 0x14b4e
movq -0x380(%rbp), %rdi
leaq 0x4f98d(%rip), %rsi     # 0x644e9
callq 0x8400
movq %rax, -0x388(%rbp)
jmp 0x14b6a
movq -0x388(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x390(%rbp)
jmp 0x14b8b
movq -0x390(%rbp), %rdi
leaq 0x4f8a4(%rip), %rsi     # 0x6443d
callq 0x8400
movq %rax, -0x398(%rbp)
jmp 0x14ba7
movq -0x398(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x83c0
jmp 0x14bb9
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x69, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x73399(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x3a0(%rbp)
jmp 0x14be5
movq -0x3a0(%rbp), %rdi
leaq 0x4f898(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x14bfa
jmp 0x14bfc
movq -0x1c0(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %edx
incl %edx
movl %edx, 0x310(%rcx)
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x163a0
jmp 0x14c28
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
je 0x14d26
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x2, %rax
jb 0x14d24
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x3b0(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x3b0(%rbp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x11a80
movq %rax, %rcx
xorl %eax, %eax
cmpl $0x0, (%rcx)
movb %al, -0x3a1(%rbp)
je 0x14cd7
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x3b8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x3b8(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
cmpl $0x0, (%rax)
setne %al
movb %al, -0x3a1(%rbp)
movb -0x3a1(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
movl %eax, -0x134(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x134(%rbp), %rsi
callq 0x15ec0
jmp 0x14d22
jmp 0x14d24
jmp 0x14d26
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x15706
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x15706
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
jne 0x15706
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %edi
movl %edi, %esi
incl %esi
movq -0x10(%rbp), %rdx
callq 0x16000
jmp 0x14d72
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
je 0x14db3
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl 0x341(%rax,%rcx), %eax
cmpl $0x66, %eax
jne 0x1556e
movq -0x18(%rbp), %rsi
leaq -0x158(%rbp), %rdi
callq 0x15f30
jmp 0x14dc5
leaq -0x60(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
leaq -0x158(%rbp), %rsi
movq %rsi, -0x3c8(%rbp)
callq 0x8520
movq -0x3c8(%rbp), %rdi
callq 0x8280
movq -0x3c0(%rbp), %rdx
leaq 0x4f658(%rip), %rsi     # 0x64455
leaq -0x178(%rbp), %rdi
callq 0x12040
jmp 0x14e0b
leaq 0x4f64a(%rip), %rsi     # 0x6445c
leaq -0x198(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x12040
jmp 0x14e24
leaq 0x4f638(%rip), %rsi     # 0x64463
leaq -0x1b8(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x12040
jmp 0x14e3d
movq -0x10(%rbp), %rdi
movq 0x73128(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x3d0(%rbp)
jmp 0x14e56
movq -0x3d0(%rbp), %rdi
leaq 0x4f609(%rip), %rsi     # 0x6446d
callq 0x8400
movq %rax, -0x3d8(%rbp)
jmp 0x14e72
movq -0x3d8(%rbp), %rdi
leaq 0x4f600(%rip), %rsi     # 0x64480
callq 0x8400
movq %rax, -0x3e0(%rbp)
jmp 0x14e8e
movq -0x3e0(%rbp), %rdi
leaq 0x4fba8(%rip), %rsi     # 0x64a44
callq 0x8400
jmp 0x14ea3
movq -0x10(%rbp), %rdi
movq 0x730c2(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x3e8(%rbp)
jmp 0x14ebc
movq -0x3e8(%rbp), %rdi
leaq 0x4f5aa(%rip), %rsi     # 0x64474
callq 0x8400
movq %rax, -0x3f0(%rbp)
jmp 0x14ed8
movq -0x3f0(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x3f8(%rbp)
jmp 0x14ef9
movq -0x3f8(%rbp), %rdi
leaq 0x4f578(%rip), %rsi     # 0x6447f
callq 0x8400
jmp 0x14f0e
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x73044(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x400(%rbp)
jmp 0x14f3a
movq -0x400(%rbp), %rdi
leaq 0x4f53c(%rip), %rsi     # 0x64484
callq 0x8400
movq %rax, -0x408(%rbp)
jmp 0x14f56
movq -0x408(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x83c0
jmp 0x14f6b
movq -0x10(%rbp), %rdi
movq 0x72ffa(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x410(%rbp)
jmp 0x14f84
movq -0x410(%rbp), %rdi
leaq 0x4f4f9(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x14f99
movq -0x10(%rbp), %rdi
movq 0x72fcc(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x418(%rbp)
jmp 0x14fb2
movq -0x418(%rbp), %rdi
leaq 0x4f4d1(%rip), %rsi     # 0x64491
callq 0x8400
movq %rax, -0x420(%rbp)
jmp 0x14fce
movq -0x420(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x83c0
jmp 0x14fe3
movq -0x10(%rbp), %rdi
movq 0x72f82(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x428(%rbp)
jmp 0x14ffc
movq -0x428(%rbp), %rdi
leaq 0x4f481(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x15011
movq -0x10(%rbp), %rdi
movq 0x72f54(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x430(%rbp)
jmp 0x1502a
movq -0x430(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x83c0
movq %rax, -0x438(%rbp)
jmp 0x15046
movq -0x438(%rbp), %rdi
leaq 0x4f17f(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x1505b
movq -0x10(%rbp), %rdi
movq 0x72f0a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x440(%rbp)
jmp 0x15074
movq -0x440(%rbp), %rdi
leaq 0x4f3eb(%rip), %rsi     # 0x6446d
callq 0x8400
movq %rax, -0x448(%rbp)
jmp 0x15090
movq -0x448(%rbp), %rdi
leaq 0x4f3e2(%rip), %rsi     # 0x64480
callq 0x8400
movq %rax, -0x450(%rbp)
jmp 0x150ac
movq -0x450(%rbp), %rdi
leaq 0x4f3db(%rip), %rsi     # 0x64495
callq 0x8400
jmp 0x150c1
movq -0x10(%rbp), %rdi
movq 0x72ea4(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x458(%rbp)
jmp 0x150da
movq -0x458(%rbp), %rdi
leaq 0x4f3b0(%rip), %rsi     # 0x64498
callq 0x8400
movq %rax, -0x460(%rbp)
jmp 0x150f6
movq -0x460(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x468(%rbp)
jmp 0x15117
movq -0x468(%rbp), %rdi
leaq 0x4f35a(%rip), %rsi     # 0x6447f
callq 0x8400
jmp 0x1512c
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x72e26(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x470(%rbp)
jmp 0x15158
movq -0x470(%rbp), %rdi
leaq 0x4f33d(%rip), %rsi     # 0x644a3
callq 0x8400
movq %rax, -0x478(%rbp)
jmp 0x15174
movq -0x478(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x83c0
jmp 0x15189
movq -0x10(%rbp), %rdi
movq 0x72ddc(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x480(%rbp)
jmp 0x151a2
movq -0x480(%rbp), %rdi
leaq 0x4f2db(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x151b7
movq -0x10(%rbp), %rdi
movq 0x72dae(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x488(%rbp)
jmp 0x151d0
movq -0x488(%rbp), %rdi
leaq 0x4f2b3(%rip), %rsi     # 0x64491
callq 0x8400
movq %rax, -0x490(%rbp)
jmp 0x151ec
movq -0x490(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x83c0
jmp 0x15201
movq -0x10(%rbp), %rdi
movq 0x72d64(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x498(%rbp)
jmp 0x1521a
movq -0x498(%rbp), %rdi
leaq 0x4f263(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x1522f
movq -0x10(%rbp), %rdi
movq 0x72d36(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x4a0(%rbp)
jmp 0x15248
movq -0x4a0(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x83c0
movq %rax, -0x4a8(%rbp)
jmp 0x15264
movq -0x4a8(%rbp), %rdi
leaq 0x4ef61(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x15279
movq -0x10(%rbp), %rdi
movq 0x72cec(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x4b0(%rbp)
jmp 0x15292
movq -0x4b0(%rbp), %rdi
leaq 0x4f1cd(%rip), %rsi     # 0x6446d
callq 0x8400
movq %rax, -0x4b8(%rbp)
jmp 0x152ae
movq -0x4b8(%rbp), %rdi
leaq 0x4f657(%rip), %rsi     # 0x64913
callq 0x8400
movq %rax, -0x4c0(%rbp)
jmp 0x152ca
movq -0x4c0(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x4c8(%rbp)
jmp 0x152eb
movq -0x4c8(%rbp), %rdi
leaq 0x4f19c(%rip), %rsi     # 0x64495
callq 0x8400
jmp 0x15300
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x72c52(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x4d0(%rbp)
jmp 0x1532c
movq -0x4d0(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x83c0
movq %rax, -0x4d8(%rbp)
jmp 0x15348
movq -0x4d8(%rbp), %rdi
leaq 0x4ee7d(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x1535d
movq -0x10(%rbp), %rdi
movq 0x72c08(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x4e0(%rbp)
jmp 0x15376
movq -0x4e0(%rbp), %rdi
leaq 0x4f126(%rip), %rsi     # 0x644aa
callq 0x8400
movq %rax, -0x4e8(%rbp)
jmp 0x15392
movq -0x4e8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x4f0(%rbp)
jmp 0x153b3
movq -0x4f0(%rbp), %rdi
leaq 0x4f173(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, -0x4f8(%rbp)
jmp 0x153cf
movq -0x4f8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x153e9
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x72b69(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x500(%rbp)
jmp 0x15415
movq -0x500(%rbp), %rdi
leaq 0x4f093(%rip), %rsi     # 0x644b6
callq 0x8400
movq %rax, -0x508(%rbp)
jmp 0x15431
movq -0x508(%rbp), %rdi
leaq 0x4f497(%rip), %rsi     # 0x648d6
callq 0x8400
movq %rax, -0x510(%rbp)
jmp 0x1544d
movq -0x510(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x518(%rbp)
jmp 0x1546e
movq -0x518(%rbp), %rdi
leaq 0x4f0b8(%rip), %rsi     # 0x64534
callq 0x8400
movq %rax, -0x520(%rbp)
jmp 0x1548a
movq -0x520(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x154a4
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rax
movb $0x66, 0x342(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq 0x72aae(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x528(%rbp)
jmp 0x154d0
movq -0x528(%rbp), %rdi
leaq 0x4efad(%rip), %rsi     # 0x6448b
callq 0x8400
jmp 0x154e5
leaq -0x1b8(%rbp), %rdi
callq 0x8280
leaq -0x198(%rbp), %rdi
callq 0x8280
leaq -0x178(%rbp), %rdi
callq 0x8280
jmp 0x1556e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x1555d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x15551
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x8280
leaq -0x198(%rbp), %rdi
callq 0x8280
leaq -0x178(%rbp), %rdi
callq 0x8280
jmp 0x15882
movq -0x10(%rbp), %rdi
movq 0x729f7(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x530(%rbp)
jmp 0x15587
movq -0x530(%rbp), %rdi
leaq 0x4ef28(%rip), %rsi     # 0x644bd
callq 0x8400
movq %rax, -0x538(%rbp)
jmp 0x155a3
movq -0x538(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
movq %rax, -0x540(%rbp)
jmp 0x155c4
movq -0x540(%rbp), %rdi
leaq 0x4eef2(%rip), %rsi     # 0x644c4
callq 0x8400
movq %rax, -0x548(%rbp)
jmp 0x155e0
movq -0x548(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x155fa
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x158b0
jmp 0x15609
movq -0x10(%rbp), %rdi
movq 0x7295c(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x550(%rbp)
jmp 0x15622
movq -0x550(%rbp), %rdi
leaq 0x4eec3(%rip), %rsi     # 0x644f3
callq 0x8400
movq %rax, -0x558(%rbp)
jmp 0x1563e
movq -0x558(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, -0x560(%rbp)
jmp 0x1565d
movq -0x560(%rbp), %rdi
leaq 0x4ee85(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, -0x568(%rbp)
jmp 0x15679
movq -0x568(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
callq 0x8730
movq %rax, -0x570(%rbp)
jmp 0x15698
movq -0x570(%rbp), %rdi
leaq 0x4ee4a(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, -0x578(%rbp)
jmp 0x156b4
movq -0x578(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
incl %esi
callq 0x8730
jmp 0x156ce
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movb $0x69, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x15815
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x15813
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
jne 0x15813
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rax
movslq 0x310(%rax), %rdx
xorl %eax, %eax
cmpl $0x0, 0x5f8(%rcx,%rdx,4)
movb %al, -0x579(%rbp)
je 0x1576e
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
cmpl $0x0, 0x5f8(%rax,%rcx,4)
setne %al
movb %al, -0x579(%rbp)
movb -0x579(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movl %edx, 0x5f8(%rax,%rcx,4)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movss 0xa238(%rax,%rcx,4), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
movb %al, -0x57a(%rbp)
jne 0x157bb
jp 0x157bb
jmp 0x157ec
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movss 0xa238(%rax,%rcx,4), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
setne %al
setp %cl
orb %cl, %al
movb %al, -0x57a(%rbp)
movb -0x57a(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cvtsi2ss %eax, %xmm0
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x310(%rcx), %rcx
movss %xmm0, 0xa238(%rax,%rcx,4)
jmp 0x15815
movq -0x18(%rbp), %rax
movl 0x310(%rax), %ecx
decl %ecx
movl %ecx, 0x310(%rax)
movq -0x10(%rbp), %rdi
movq 0x7273e(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, -0x588(%rbp)
jmp 0x15840
movq -0x588(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x83c0
movq %rax, -0x590(%rbp)
jmp 0x15859
movq -0x590(%rbp), %rdi
leaq 0x4e96c(%rip), %rsi     # 0x641d3
callq 0x8400
jmp 0x1586e
leaq -0x60(%rbp), %rdi
callq 0x8280
leaq -0x40(%rbp), %rdi
callq 0x8280
jmp 0x15896
leaq -0x60(%rbp), %rdi
callq 0x8280
leaq -0x40(%rbp), %rdi
callq 0x8280
jmp 0x158a1
jmp 0x15898
addq $0x590, %rsp            # imm = 0x590
popq %rbp
retq
movq -0x88(%rbp), %rdi
callq 0x8760
nopl (%rax)