// File: /workspace/github_cpp_makefile_star2_O2/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 0x16a23
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rcx, %rbx
movq %rsi, %r15
incl 0x310(%rcx)
cmpl $0x2, %r8d
je 0x16538
cmpl $0x1, %r8d
jne 0x16543
movq %rbx, %rdi
movq %r15, %rsi
callq 0x17eef
jmp 0x16543
movq %rbx, %rdi
movq %r15, %rsi
callq 0x18e32
leaq 0x318(%rbx), %r14
leaq 0x17588(%rip), %rsi     # 0x2dad9
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x165f4
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x1658c
movb 0x341(%rbx,%rsi), %r12b
cmpb $0x66, %r12b
jne 0x1674d
movq %r15, %rdx
movq %rbx, %rcx
callq 0xfb3c
movq %r15, %rdi
callq 0x7190
leaq 0x172d6(%rip), %rsi     # 0x2d87c
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x171bc(%rip), %r15     # 0x2d77f
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
jmp 0x16699
leaq 0x174e1(%rip), %rsi     # 0x2dadc
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x166bf
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x16636
movb 0x341(%rbx,%rsi), %r12b
cmpb $0x66, %r12b
jne 0x1683c
movq %r15, %rdx
movq %rbx, %rcx
callq 0xfb3c
movq %r15, %rdi
callq 0x7190
leaq 0x1724f(%rip), %rsi     # 0x2d89f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x17112(%rip), %r15     # 0x2d77f
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movl 0x310(%rbx), %eax
incl %eax
movb $0x66, %cl
jmp 0x169fd
leaq 0x17419(%rip), %rsi     # 0x2dadf
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x167a2
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x341(%rbx,%rax)
je 0x166f5
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x1697b
movq %r15, %rdi
callq 0x7190
leaq 0x171a5(%rip), %rsi     # 0x2d8a9
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x17018(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %r15, %rdi
callq 0x7190
leaq 0x17170(%rip), %rsi     # 0x2d8b8
jmp 0x16954
movq %r15, %rdi
callq 0x7190
cmpb $0x75, %bpl
je 0x16803
cmpb $0x75, %r12b
je 0x16803
leaq 0x17127(%rip), %rsi     # 0x2d897
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16fae(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
jmp 0x1688c
leaq 0x17339(%rip), %rsi     # 0x2dae2
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x168a8
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x167e4
movb 0x341(%rbx,%rsi), %r12b
cmpb $0x66, %r12b
jne 0x16aa6
movq %r15, %rdx
movq %rbx, %rcx
callq 0xfb3c
movq %r15, %rdi
callq 0x7190
leaq 0x1703a(%rip), %rsi     # 0x2d838
jmp 0x165a6
leaq 0x1707c(%rip), %rsi     # 0x2d886
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16f14(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
jmp 0x1693d
movq %r15, %rdi
callq 0x7190
cmpb $0x75, %bpl
je 0x16909
cmpb $0x75, %r12b
je 0x16909
leaq 0x17052(%rip), %rsi     # 0x2d8b1
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16ebd(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %r15, %rdi
callq 0x7190
leaq 0x16fec(%rip), %rsi     # 0x2d88f
jmp 0x169ce
leaq 0x17236(%rip), %rsi     # 0x2dae5
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16a24
movslq 0x310(%rbx), %rdi
movb 0x341(%rbx,%rdi), %bpl
leaq 0x1(%rdi), %rsi
cmpb $0x66, %bpl
je 0x168ea
movb 0x341(%rbx,%rsi), %r12b
cmpb $0x66, %r12b
jne 0x16be2
movq %r15, %rdx
movq %rbx, %rcx
callq 0xfb3c
movq %r15, %rdi
callq 0x7190
leaq 0x16f5b(%rip), %rsi     # 0x2d85f
jmp 0x16650
leaq 0x16f99(%rip), %rsi     # 0x2d8a9
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16e0c(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %r15, %rdi
callq 0x7190
leaq 0x16f3b(%rip), %rsi     # 0x2d88f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x75, 0x341(%rbx,%rax)
jmp 0x169f3
movq %r15, %rdi
callq 0x7190
leaq 0x16f27(%rip), %rsi     # 0x2d8b1
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16d92(%rip), %rsi     # 0x2d73b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %r15, %rdi
callq 0x7190
leaq 0x16eea(%rip), %rsi     # 0x2d8b8
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x69, 0x341(%rbx,%rax)
movl 0x310(%rbx), %eax
incl %eax
movb $0x69, %cl
cltq
movb %cl, 0x341(%rbx,%rax)
leaq 0x14635(%rip), %rsi     # 0x2b042
movq %r14, %rdi
callq 0x7630
decl 0x310(%rbx)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x170bd(%rip), %rsi     # 0x2dae8
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16ace
movq %r15, %rdi
callq 0x7190
leaq 0x16dd6(%rip), %rsi     # 0x2d820
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16d34(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movl 0x310(%rbx), %eax
jmp 0x169fb
movq %r15, %rdi
callq 0x7190
cmpb $0x75, %bpl
je 0x16b6c
cmpb $0x75, %r12b
je 0x16b6c
leaq 0x16d86(%rip), %rsi     # 0x2d84f
jmp 0x16d0b
leaq 0x17017(%rip), %rsi     # 0x2daec
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16c40
movslq 0x310(%rbx), %rax
cmpb $0x75, 0x341(%rbx,%rax)
je 0x16b04
cmpb $0x75, 0x342(%rbx,%rax)
jne 0x16cd5
movq %r15, %rdi
callq 0x7190
leaq 0x16d15(%rip), %rsi     # 0x2d828
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16c6b(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movl 0x310(%rbx), %eax
jmp 0x16bdb
leaq 0x16cd4(%rip), %rsi     # 0x2d847
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16c0b(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movslq 0x310(%rbx), %rax
movb $0x75, 0x341(%rbx,%rax)
movl 0x310(%rbx), %eax
incl %eax
movb $0x75, %cl
jmp 0x169fd
movq %r15, %rdi
callq 0x7190
cmpb $0x75, %bpl
je 0x16c67
cmpb $0x75, %r12b
je 0x16c67
leaq 0x16c74(%rip), %rsi     # 0x2d871
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16b81(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
jmp 0x169d1
leaq 0x16ea9(%rip), %rsi     # 0x2daf0
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16cb1
movq %r15, %rdi
callq 0x7190
leaq 0x16af0(%rip), %rsi     # 0x2d752
jmp 0x16d0b
leaq 0x16bfb(%rip), %rsi     # 0x2d869
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16b10(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
jmp 0x16957
leaq 0x16e3b(%rip), %rsi     # 0x2daf3
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16ce9
movq %r15, %rdi
callq 0x7190
leaq 0x16a78(%rip), %rsi     # 0x2d74b
jmp 0x16d0b
movq %r15, %rdi
callq 0x7190
leaq 0x16b4c(%rip), %rsi     # 0x2d830
jmp 0x16a4a
leaq 0x16e06(%rip), %rsi     # 0x2daf6
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16d59
movq %r15, %rdi
callq 0x7190
leaq 0x16a3a(%rip), %rsi     # 0x2d745
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16a73(%rip), %r15     # 0x2d79b
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
jmp 0x169dc
leaq 0x16e62(%rip), %rsi     # 0x2dbc2
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16e31
movslq 0x310(%rbx), %rax
movb 0x342(%rax,%rbx), %bpl
movq %r15, %rdi
callq 0x7190
cmpb $0x66, %bpl
jne 0x16f0f
leaq 0x169d6(%rip), %rsi     # 0x2d76e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1692b(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x341(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x16a5d(%rip), %rsi     # 0x2d838
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16987(%rip), %r15     # 0x2d77f
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
jmp 0x166b0
leaq 0x16d93(%rip), %rsi     # 0x2dbcb
movq %r14, %rdi
callq 0x820e
testb %al, %al
je 0x16a06
movslq 0x310(%rbx), %rax
movb 0x342(%rax,%rbx), %bpl
movq %r15, %rdi
callq 0x7190
cmpb $0x66, %bpl
jne 0x16f54
leaq 0x168fe(%rip), %rsi     # 0x2d76e
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16853(%rip), %rsi     # 0x2d6e0
movq %rax, %rdi
callq 0x7310
movslq 0x310(%rbx), %rax
movb $0x66, 0x342(%rbx,%rax)
movq %r15, %rdi
callq 0x7190
leaq 0x169ac(%rip), %rsi     # 0x2d85f
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x168af(%rip), %r15     # 0x2d77f
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
movq %rax, %rdi
movq %r15, %rsi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
movl 0x310(%rbx), %eax
jmp 0x166b8
leaq 0x16be3(%rip), %rsi     # 0x2daf9
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16868(%rip), %rsi     # 0x2d79b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x1678e(%rip), %rsi     # 0x2d6e0
jmp 0x16f97
leaq 0x16b9e(%rip), %rsi     # 0x2daf9
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16823(%rip), %rsi     # 0x2d79b
movq %rax, %rdi
callq 0x7310
movl 0x310(%rbx), %esi
incl %esi
movq %rax, %rdi
callq 0x7590
leaq 0x16b6b(%rip), %rsi     # 0x2db02
movq %rax, %rdi
callq 0x7310
jmp 0x169e4