// File: /workspace/github_cpp_makefile_star2_O3/gioannides[P]Language_Processors/src/../include/ast/ast_Expressions.cpp
// Function: PrimaryExpression::AssignmentOperator(std::basic_ofstream<char, std::char_traits<char>>&, int, Context&, int)
inline void PrimaryExpression::AssignmentOperator(std::ofstream& file, int good_index, Context& contxt, int f) {
if(!contxt.sizeof_){
	
	contxt.Regs++;
	if(f==1){

		load_locals(contxt, file, good_index);
	}
	else if(f==2)
	{
		load_globals(contxt, file, good_index);
	}
	if(contxt.AssignmentOperator == "*="){
		if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
			typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
			file << std::endl << "\tmul.s\t$f" << contxt.Regs << ",$f" << contxt.Regs << ",$f" << contxt.Regs+1;
			contxt.regType[contxt.Regs]='f';
			contxt.regType[contxt.Regs+1]='f';
		}
		else if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
			file << std::endl << "\tmultu\t$" << contxt.Regs << ",$" << contxt.Regs+1;
			file << std::endl << "\tmflo\t$" << contxt.Regs;
			contxt.regType[contxt.Regs]='u';
			contxt.regType[contxt.Regs+1]='i';
		}
		else {
			file << std::endl << "\tmult\t$" << contxt.Regs << ",$" << contxt.Regs+1;
			file << std::endl << "\tmflo\t$" << contxt.Regs;
			contxt.regType[contxt.Regs]='i';
			contxt.regType[contxt.Regs+1]='i';
		}
		
	}
	else if(contxt.AssignmentOperator == "/="){
			if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
				typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
				file << std::endl << "\tdiv.s\t$f" << contxt.Regs << ",$f" << contxt.Regs+1 << ",$f" << contxt.Regs;
				contxt.regType[contxt.Regs]='f';
				contxt.regType[contxt.Regs+1]='f';
			}	
			else if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
				file << std::endl << "\tdivu\t$" << contxt.Regs+1 << ",$" << contxt.Regs;
				file << std::endl << "\tmflo\t$"<< contxt.Regs;
				contxt.regType[contxt.Regs]='u';
				contxt.regType[contxt.Regs+1]='i';
			}
							
			else{
				file << std::endl << "\tdiv\t$" << contxt.Regs+1 << ",$" << contxt.Regs;
				file << std::endl << "\tmflo\t$"<< contxt.Regs;
				contxt.regType[contxt.Regs]='i';
				contxt.regType[contxt.Regs+1]='i';
			}
	}
	else if(contxt.AssignmentOperator == "%="){
			if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
				file << std::endl << "\tdivu\t$" << contxt.Regs+1 << ",$" << contxt.Regs;
				file << std::endl << "\tmfhi\t$"<< contxt.Regs;
				contxt.regType[contxt.Regs]='u';
				contxt.regType[contxt.Regs+1]='i';
			}
			else{
				file << std::endl << "\tdiv\t$" << contxt.Regs+1 << ",$" << contxt.Regs;
				file << std::endl << "\tmfhi\t$"<< contxt.Regs;
				contxt.regType[contxt.Regs]='i';
				contxt.regType[contxt.Regs+1]='i';
			}
	}
	else if(contxt.AssignmentOperator == "+="){
			if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
				typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
				file << std::endl << "\tadd.s\t$f" << contxt.Regs << ",$f" << contxt.Regs << ",$f" << contxt.Regs+1;
				contxt.regType[contxt.Regs]='f';
				contxt.regType[contxt.Regs+1]='f';
			}	
			else if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
				file << std::endl << "\taddu\t$" << contxt.Regs <<", $" << contxt.Regs << ", $" << contxt.Regs + 1;
				contxt.regType[contxt.Regs]='u';
				contxt.regType[contxt.Regs+1]='u';
			}
			else{
				file << std::endl << "\tadd\t$" << contxt.Regs <<", $" << contxt.Regs << ", $" << contxt.Regs + 1;
				contxt.regType[contxt.Regs]='i';
				contxt.regType[contxt.Regs+1]='i';
			}
	}
	else if(contxt.AssignmentOperator == "-="){
			if(contxt.regType[contxt.Regs]=='f' || contxt.regType[contxt.Regs+1]=='f'){
				typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
				file << std::endl << "\tsub.s\t$f" << contxt.Regs << ",$f" << contxt.Regs+1 << ",$f" << contxt.Regs;
				contxt.regType[contxt.Regs]='f';
				contxt.regType[contxt.Regs+1]='f';
			}	
			else if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
				file << std::endl << "\tsubu\t$" << contxt.Regs <<", $" << contxt.Regs+1 << ", $" << contxt.Regs;
				contxt.regType[contxt.Regs]='u';
				contxt.regType[contxt.Regs+1]='i';
			}
			else{
				file << std::endl << "\tsub\t$" << contxt.Regs <<", $" << contxt.Regs+1 << ", $" << contxt.Regs;
				contxt.regType[contxt.Regs]='i';
				contxt.regType[contxt.Regs+1]='i';
			}
	}
	else if(contxt.AssignmentOperator == "<<="){
			file << std::endl << "\tsllv\t$" << contxt.Regs <<", $" << contxt.Regs+1 << ", $" << contxt.Regs;
			contxt.regType[contxt.Regs]='i';
	}
	else if(contxt.AssignmentOperator == ">>="){
			if(contxt.regType[contxt.Regs]=='u' || contxt.regType[contxt.Regs+1]=='u'){
				file << std::endl << "\tsrlv\t$" << contxt.Regs <<", $" << contxt.Regs+1 << ", $" << contxt.Regs;
				contxt.regType[contxt.Regs]='u';
				
			}
			else{
				file << std::endl << "\tsrav\t$" << contxt.Regs <<", $" << contxt.Regs+1 << ", $" << contxt.Regs;
				contxt.regType[contxt.Regs]='i';
				
			}
	}
	else if(contxt.AssignmentOperator == "&="){
			file << std::endl << "\tand\t$" << contxt.Regs <<", $" << contxt.Regs << ", $" << contxt.Regs + 1;
			contxt.regType[contxt.Regs]='i';
			contxt.regType[contxt.Regs+1]='i';
	}
	else if(contxt.AssignmentOperator == "^="){
			file << std::endl << "\txor\t$" << contxt.Regs <<", $" << contxt.Regs << ", $" << contxt.Regs + 1;
			contxt.regType[contxt.Regs]='i';
			contxt.regType[contxt.Regs+1]='i';
	}
	else if(contxt.AssignmentOperator == "|="){
			file << std::endl << "\tor\t$" << contxt.Regs <<", $" << contxt.Regs << ", $" << contxt.Regs + 1;
			contxt.regType[contxt.Regs]='i';
			contxt.regType[contxt.Regs+1]='i';
	}
	else if(contxt.AssignmentOperator == "++"){
			if(contxt.regType[contxt.Regs+1] == 'f'){
				file << std::endl << "\tli.s\t$f" << contxt.Regs << ",1";
				contxt.regType[contxt.Regs]='f';
				file << std::endl << "\tadd.s\t$f" << contxt.Regs << ",$f" << contxt.Regs << ",$f" << contxt.Regs+1;
				contxt.regType[contxt.Regs+1]='f';
			}
			else{	
				file << std::endl << "\taddiu\t$" << contxt.Regs <<", $" << contxt.Regs+1 << ",1";
				contxt.regType[contxt.Regs]='i';
				contxt.regType[contxt.Regs+1]='i';
			}
	}
	else if(contxt.AssignmentOperator == "--"){
			if(contxt.regType[contxt.Regs+1] == 'f' ){
				file << std::endl << "\tli.s\t$f" << contxt.Regs << ",1";
				contxt.regType[contxt.Regs+1]='f';
				file << std::endl << "\tsub.s\t$f" << contxt.Regs << ",$f" << contxt.Regs+1 << ",$f" << contxt.Regs;
				contxt.regType[contxt.Regs]='f';
			}
			else{	
				file << std::endl << "\taddiu\t$" << contxt.Regs <<", $" << contxt.Regs+1 << ",-1";
				contxt.regType[contxt.Regs]='i';
				contxt.regType[contxt.Regs+1]='i';
			}						
	}
			contxt.AssignmentOperator = "df";
			contxt.Regs--;
}
}

// Assembly:
cmpb $0x0, 0x1f8(%rcx)
jne 0x1bf08
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rsi, %r15
incl 0x310(%rcx)
cmpl $0x2, %r8d
je 0x1b3cd
cmpl $0x1, %r8d
jne 0x1b3d8
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1df97
jmp 0x1b3d8
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1f79e
leaq 0x318(%rbx), %r14
leaq 0x1c6e9(%rip), %rsi     # 0x37acf
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1b5df
leaq 0x1c6d5(%rip), %rsi     # 0x37ad2
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1b6a9
leaq 0x1c6c1(%rip), %rsi     # 0x37ad5
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1b794
leaq 0x1c6ad(%rip), %rsi     # 0x37ad8
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1b90f
leaq 0x1c699(%rip), %rsi     # 0x37adb
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1b9fa
leaq 0x1c685(%rip), %rsi     # 0x37ade
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1bb3a
leaq 0x1c672(%rip), %rsi     # 0x37ae2
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1bc7a
leaq 0x1c65f(%rip), %rsi     # 0x37ae6
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1bd9a
leaq 0x1c64b(%rip), %rsi     # 0x37ae9
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1be3c
leaq 0x1c637(%rip), %rsi     # 0x37aec
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1bf7f
leaq 0x1c6ec(%rip), %rsi     # 0x37bb8
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1bf9b
leaq 0x1c6de(%rip), %rsi     # 0x37bc1
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
jne 0x1bed6
movslq 0x310(%rbx), %rax
movb 0x342(%rax,%rbx), %bpl
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
cmpb $0x66, %bpl
jne 0x1c0d8
leaq 0x1c246(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x1c196(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1c2e7(%rip), %rsi     # 0x37855
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1c1e2(%rip), %r12     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movl 0x310(%rbx), %eax
jmp 0x1b78d
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x1b60a
movb 0x341(%rbx,%rsi), %r13b
cmpb $0x66, %r13b
jne 0x1b85c
movq %r15, %rdx
movq %rbx, %rcx
callq 0x12fe7
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1c22c(%rip), %rsi     # 0x37872
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1c10a(%rip), %r12     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
jmp 0x1b76e
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x1b6d4
movb 0x341(%rbx,%rsi), %r13b
cmpb $0x66, %r13b
jne 0x1b97b
movq %r15, %rdx
movq %rbx, %rcx
callq 0x12fe7
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1c185(%rip), %rsi     # 0x37895
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1c040(%rip), %r12     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movl 0x310(%rbx), %eax
incl %eax
movb $0x66, %cl
jmp 0x1becd
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x341(%rbx,%rax)
je 0x1b7b3
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1babc
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1c0bb(%rip), %rsi     # 0x3789f
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1bf26(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1c057(%rip), %rsi     # 0x378ae
jmp 0x1bc18
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
cmpb $0x75, %bpl
je 0x1ba47
cmpb $0x75, %r13b
je 0x1ba47
leaq 0x1bfec(%rip), %rsi     # 0x3788d
movl $0x7, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1be6b(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
jmp 0x1b9eb
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x1b93a
movb 0x341(%rbx,%rsi), %r12b
cmpb $0x66, %r12b
jne 0x1bc47
movq %r15, %rdx
movq %rbx, %rcx
callq 0x12fe7
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r15
leaq 0x1beb8(%rip), %rsi     # 0x3782e
jmp 0x1b646
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
cmpb $0x75, %bpl
je 0x1bbbd
cmpb $0x75, %r13b
je 0x1bbbd
leaq 0x1bf06(%rip), %rsi     # 0x378a7
movl $0x6, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1bd69(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1be90(%rip), %rsi     # 0x37885
jmp 0x1bb22
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x1ba25
movb 0x341(%rbx,%rsi), %r12b
cmpb $0x66, %r12b
jne 0x1bd1c
movq %r15, %rdx
movq %rbx, %rcx
callq 0x12fe7
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1be13(%rip), %rsi     # 0x37855
jmp 0x1b710
leaq 0x1be2e(%rip), %rsi     # 0x3787c
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1bcbe(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
jmp 0x1bc0e
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x1bdd9(%rip), %rsi     # 0x378a7
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1bc3c(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1bd8c(%rip), %rsi     # 0x378ae
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
jmp 0x1beac
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1bcca(%rip), %rsi     # 0x37816
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1bc20(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movl 0x310(%rbx), %eax
jmp 0x1becb
leaq 0x1bcdb(%rip), %rsi     # 0x3789f
movl $0x7, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1bb46(%rip), %rsi     # 0x37731
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1bc6d(%rip), %rsi     # 0x37885
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x75, 0x341(%rbx,%rax)
jmp 0x1bec3
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
cmpb $0x75, %bpl
je 0x1bdb1
cmpb $0x75, %r12b
je 0x1bdb1
leaq 0x1bbd8(%rip), %rsi     # 0x37845
movl $0x6, %edx
movq %r15, %rdi
jmp 0x1be56
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x341(%rbx,%rax)
je 0x1bc99
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1bf68
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1bb73(%rip), %rsi     # 0x3781e
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1bac1(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movl 0x310(%rbx), %eax
jmp 0x1be35
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
cmpb $0x75, %bpl
je 0x1bf09
cmpb $0x75, %r12b
je 0x1bf09
leaq 0x1bb25(%rip), %rsi     # 0x37867
movl $0x6, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1ba2a(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
jmp 0x1bb2a
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b99c(%rip), %rsi     # 0x37748
jmp 0x1be4e
leaq 0x1ba85(%rip), %rsi     # 0x3783d
movl $0x7, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b9b4(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x75, 0x341(%rbx,%rax)
movl 0x310(%rbx), %eax
incl %eax
movb $0x75, %cl
jmp 0x1becd
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b8f3(%rip), %rsi     # 0x37741
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b91e(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movslq 0x310(%rbx), %rax
movb $0x69, 0x341(%rbx,%rax)
movl 0x310(%rbx), %eax
incl %eax
movb $0x69, %cl
cltq
movb %cl, 0x341(%rbx,%rax)
movq 0x320(%rbx), %rdx
leaq 0x1915e(%rip), %rcx     # 0x35042
movl $0x2, %r8d
movq %r14, %rdi
xorl %esi, %esi
callq 0x7520
decl 0x310(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1b94f(%rip), %rsi     # 0x3785f
movl $0x7, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b85c(%rip), %r12     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
jmp 0x1bc20
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b8ac(%rip), %rsi     # 0x37826
jmp 0x1bb4c
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b7aa(%rip), %rsi     # 0x3773b
movl $0x5, %edx
jmp 0x1be53
movslq 0x310(%rbx), %rax
movb 0x342(%rax,%rbx), %bpl
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
cmpb $0x66, %bpl
jne 0x1c081
leaq 0x1b79e(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x1b6ee(%rip), %rsi     # 0x376d6
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b818(%rip), %rsi     # 0x3782e
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b73a(%rip), %r12     # 0x37775
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
jmp 0x1b785
leaq 0x1ba67(%rip), %rsi     # 0x37aef
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b6e4(%rip), %rsi     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1b605(%rip), %rsi     # 0x376d6
movl $0x2, %edx
jmp 0x1c12d
leaq 0x1ba10(%rip), %rsi     # 0x37aef
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b68d(%rip), %rsi     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1b9d0(%rip), %rsi     # 0x37af8
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x1beb4