// File: /workspace/github_cpp_makefile_star2_O1/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 0x1c72c
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 0x1bc07
cmpl $0x1, %r8d
jne 0x1bc12
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1e7b7
jmp 0x1bc12
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1fe5e
leaq 0x318(%rbx), %r14
leaq 0x1beaf(%rip), %rsi     # 0x37acf
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1be19
leaq 0x1be9b(%rip), %rsi     # 0x37ad2
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1bedd
leaq 0x1be87(%rip), %rsi     # 0x37ad5
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1bfc2
leaq 0x1be73(%rip), %rsi     # 0x37ad8
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c13f
leaq 0x1be5f(%rip), %rsi     # 0x37adb
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c250
leaq 0x1be4b(%rip), %rsi     # 0x37ade
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c377
leaq 0x1be38(%rip), %rsi     # 0x37ae2
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c517
leaq 0x1be25(%rip), %rsi     # 0x37ae6
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c63b
leaq 0x1be11(%rip), %rsi     # 0x37ae9
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c660
leaq 0x1bdfd(%rip), %rsi     # 0x37aec
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c7a3
leaq 0x1beb2(%rip), %rsi     # 0x37bb8
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
je 0x1c7bf
leaq 0x1bea4(%rip), %rsi     # 0x37bc1
movq %r14, %rdi
callq 0x70c0
testl %eax, %eax
jne 0x1c6fa
movslq 0x310(%rbx), %rax
movb 0x342(%rax,%rbx), %bpl
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
cmpb $0x66, %bpl
jne 0x1c8fc
leaq 0x1ba0c(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x1b95c(%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 0x1baad(%rip), %rsi     # 0x37855
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b9a8(%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 0x1bfbb
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %al
cmpb $0x66, %al
je 0x1be3b
movb 0x342(%rbx,%rdi), %cl
cmpb $0x66, %cl
jne 0x1c08a
leal 0x1(%rdi), %esi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x138f3
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 0x1b9f8(%rip), %rsi     # 0x37872
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b8d6(%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 0x1bf9c
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %al
cmpb $0x66, %al
je 0x1beff
movb 0x342(%rbx,%rdi), %cl
cmpb $0x66, %cl
jne 0x1c1a5
leal 0x1(%rdi), %esi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x138f3
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 0x1b957(%rip), %rsi     # 0x37895
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b812(%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 0x1c6f1
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x341(%rbx,%rax)
je 0x1bfe1
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1c30c
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 0x1b88d(%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 0x1b6f8(%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 0x1b829(%rip), %rsi     # 0x378ae
jmp 0x1c221
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r13b
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
testb %r13b, %bpl
jne 0x1c297
leaq 0x1b7ab(%rip), %rsi     # 0x3787c
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1b63b(%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 0x1c217
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %al
cmpb $0x66, %al
je 0x1c161
movb 0x342(%rbx,%rdi), %cl
cmpb $0x66, %cl
jne 0x1c46d
leal 0x1(%rdi), %esi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x138f3
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 0x1b68e(%rip), %rsi     # 0x3782e
jmp 0x1be7a
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r13b
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
testb %r13b, %bpl
jne 0x1c3fa
leaq 0x1b6d2(%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 0x1b53d(%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 0x1b664(%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 0x1c6e7
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %al
cmpb $0x66, %al
je 0x1c272
movb 0x342(%rbx,%rdi), %cl
cmpb $0x66, %cl
jne 0x1c5bb
leal 0x1(%rdi), %esi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x138f3
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b5c3(%rip), %rsi     # 0x37855
jmp 0x1bf3e
leaq 0x1b5ef(%rip), %rsi     # 0x3788d
movl $0x7, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1b46e(%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 0x1c44b
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
leaq 0x1b589(%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 0x1b3ec(%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 0x1b53c(%rip), %rsi     # 0x378ae
jmp 0x1c455
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b48d(%rip), %rsi     # 0x37816
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b3e3(%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 0x1c6ef
leaq 0x1b4a6(%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 0x1b309(%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 0x1b430(%rip), %rsi     # 0x37885
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
jmp 0x1c6d0
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x1c64f
leaq 0x1b3a8(%rip), %rsi     # 0x3783d
movl $0x7, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b2d7(%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
jmp 0x1c5b4
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x341(%rbx,%rax)
je 0x1c536
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1c78c
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b2d6(%rip), %rsi     # 0x3781e
movl $0x7, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b224(%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
movb $0x75, %cl
jmp 0x1c6f1
cmpb $0x75, %al
setne %bpl
cmpb $0x75, %cl
setne %r12b
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
testb %r12b, %bpl
jne 0x1c72d
leaq 0x1b27c(%rip), %rsi     # 0x3785f
movl $0x7, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b189(%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 0x1c229
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b0fb(%rip), %rsi     # 0x37748
jmp 0x1c672
leaq 0x1b1ef(%rip), %rsi     # 0x37845
movl $0x6, %edx
movq %r15, %rdi
jmp 0x1c67a
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b0cf(%rip), %rsi     # 0x37741
movl $0x6, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b0fa(%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 0x1893a(%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 0x1b133(%rip), %rsi     # 0x37867
movl $0x6, %edx
movq %r15, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1b038(%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 0x1c45d
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1b088(%rip), %rsi     # 0x37826
jmp 0x1c389
movq %r15, %rdi
callq 0x7180
movq %rax, %r15
leaq 0x1af86(%rip), %rsi     # 0x3773b
movl $0x5, %edx
jmp 0x1c677
movslq 0x310(%rbx), %rax
movb 0x342(%rax,%rbx), %bpl
movq %r15, %rdi
callq 0x7180
movq %rax, %r12
cmpb $0x66, %bpl
jne 0x1c8a5
leaq 0x1af7a(%rip), %rsi     # 0x37764
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
leaq 0x1aeca(%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 0x1aff4(%rip), %rsi     # 0x3782e
movl $0x9, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r15, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1af16(%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 0x1bfb3
leaq 0x1b243(%rip), %rsi     # 0x37aef
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1aec0(%rip), %rsi     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1ade1(%rip), %rsi     # 0x376d6
movl $0x2, %edx
jmp 0x1c951
leaq 0x1b1ec(%rip), %rsi     # 0x37aef
movl $0x8, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r15
leaq 0x1ae69(%rip), %rsi     # 0x37791
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r15, %rdi
callq 0x75c0
leaq 0x1b1ac(%rip), %rsi     # 0x37af8
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
jmp 0x1c6d8