// File: /workspace/github_cpp_makefile_star2_O3/gioannides[P]Language_Processors/src/../include/ast/ast_Expressions.cpp
// Function: AssignmentExpression::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
inline void AssignmentExpression::render_asm(std::ofstream& file, Context& contxt)  {
			
			if(AssignmentExpressionPtr != NULL) {
				contxt.rhs_of_expression = true;
				AssignmentExpressionPtr->render_asm(file,contxt);
				contxt.rhs_of_expression = false;
			}
			if(UnaryExpressionPtr != NULL && AssignmentOperator != NULL) { //!contxt.reading
				
				contxt.AssignmentOperator = *AssignmentOperator;	
				contxt.lhs_of_assignment = true;
				UnaryExpressionPtr->render_asm(file,contxt);			//TODO: This is for identifier names and values
				
				if(contxt.PointerNotStored){
					if(!contxt.PointerLHSEval){
						file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << contxt.Variables[contxt.good_i].offset << "($sp) #" << contxt.Variables[contxt.good_i].id;	
					}
					else{
						if(contxt.Variables[contxt.good_i].DataType == "char"){
						file << std::endl << "\tsb\t$" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
			
						}
						else if(contxt.Variables[contxt.good_i].DataType == "short"){
						file << std::endl << "\tsh\t$" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
						}
						else if(contxt.Variables[contxt.good_i].DataType != "float"){
						file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
						}
						else if(contxt.Variables[contxt.good_i].DataType == "float"){
						file << std::endl << "\tswc1\t$f" << contxt.Regs+1 << ", " << "0($" <<  contxt.Regs+2  << ")" << "#" << contxt.Variables[contxt.good_i].id;
						}
		

					}
					contxt.Variables[contxt.good_i].PointerLevelsTemp = contxt.Variables[contxt.good_i].PointerLevels;
					contxt.regType[contxt.Regs+1]='i';
					contxt.PointerNotStored = false;
				}
				contxt.lhs_of_assignment = false;
				contxt.AssignmentOperator = "df";
				

				
			}				
			else if(ConditionalExpressionPtr != NULL) {
				ConditionalExpressionPtr->render_asm(file,contxt);		//THIS IS FOR IF STATEMENTS/ LOGICAL / ARITHMETIC OPERATIONS / ASSIGNEMENTS
			}
			if(contxt.argument_no.size()>=1 && contxt.argument_no[contxt.argument_no.size()-1])
			{
				file << "\n# merge\n";
				int ki=0;
				
				while(ki<contxt.Variables.size())
				{
					if(contxt.Scopes.size()-contxt.nested_function_calls && contxt.Scopes[contxt.Scopes.size()-contxt.nested_function_calls]==contxt.Variables[ki].scope)
					{ 
						int u=contxt.argument_no[contxt.argument_no.size()-1]-1;
						//file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << (contxt.argument_no-1)*4 << "($sp) #";
						if((ki+u)>=0 && contxt.Variables[ki+u].word_size==1) 
						{
							file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << u*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << (u)*4;		
							contxt.regType[contxt.Regs+1]='c';
						}				
						else if((ki+u)>=0 && contxt.Variables[ki+u].word_size==4 && contxt.Variables[ki+u].DataType != "float")
						{ 	
							file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << (u)*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << (u)*4 << "\n";	
							contxt.regType[contxt.Regs+1]='i';
						}
						else if((ki+u)>=0 && contxt.Variables[ki+u].word_size==2 && contxt.Variables[ki+u].DataType != "float")
						{ 	
							file << std::endl << "\tsw\t$" << contxt.Regs+1 << ", " << u*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << (u)*4 << "\n";	
							contxt.regType[contxt.Regs+1]='i';
						}
						else if((ki+u)>=0 && contxt.Variables[ki+u].word_size==4 && contxt.Variables[ki+u].DataType == "float")
						{
							file << std::endl << "\tswc1\t$f" << contxt.Regs+1 << ", " << (u)*4 << "($sp) #" << contxt.Variables[ki+u].id << " " << u*4 << "\n";	
							contxt.regType[contxt.Regs+1]='f';
						}
						
						if(u<4)
						{
							if((ki+u)>=0 /*&& contxt.regType[u+4] != 'f'/*&& contxt.Variables[ki+contxt.argument_no-1].DataType != "float"*/)
							{
								if(contxt.Variables[ki+u].DataType != "float"){
									file << std::endl << "\tmove\t$" << u+4 << ", $" << contxt.Regs+1 << " #load parameter " << u+1;
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 4){

									file << std::endl << "\tmov.s\t$f12" << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount+=2;
		
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 5){

									file << std::endl << "\tmov.s\t$f14" << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount=6;
		
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 6){

									file << std::endl << "\tmfc1\t$6" << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount=7;
		
								}
								else if(contxt.Variables[ki+u].DataType == "float" && (u+4) == 7){

									file << std::endl << "\tmfc1\t$7"  << ", $f" << contxt.Regs+1 << " #load parameter " << u+1;
									contxt.FloatRegCount=12;
		
								}
								
								
							}
							/*else 
							{
								file << std::endl << "\tmov.s\t$f" << u+4 << ", $f" << contxt.Regs+1 << " #load parameter " << u+1; 
							*///}
						}
						ki=contxt.Variables.size();
					}
					ki++;
					
				}
			}
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r12
movq 0x20(%rdi), %rdi
testq %rdi, %rdi
je 0x1a346
movb $0x1, 0x1d1(%rbx)
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1a310
movb $0x0, 0x1d1(%rbx)
cmpq $0x0, 0x10(%r12)
movq %r14, (%rsp)
je 0x1a46c
movq 0x18(%r12), %rsi
testq %rsi, %rsi
je 0x1a46c
leaq 0x318(%rbx), %r15
movq %r15, %rdi
callq 0x71c0
movb $0x1, 0x1d2(%rbx)
movq 0x10(%r12), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x16f40
cmpb $0x1, 0x48(%rbx)
jne 0x1a67d
cmpb $0x0, 0x40(%rbx)
je 0x1a48a
leaq 0x240(%rbx), %r14
leaq 0x5b4(%rbx), %r13
movslq 0x5b4(%rbx), %rax
movq 0x240(%rbx), %rcx
imulq $0xb0, %rax, %rax
leaq (%rcx,%rax), %rdi
addq $0x58, %rdi
leaq 0x1d1d4(%rip), %rsi     # 0x375a4
callq 0x70c0
testl %eax, %eax
je 0x1a535
movslq (%r13), %rax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
leaq (%rcx,%rax), %rdi
addq $0x58, %rdi
leaq 0x1d1b5(%rip), %rsi     # 0x375af
callq 0x70c0
testl %eax, %eax
je 0x1a56d
movslq (%r13), %rax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
leaq (%rcx,%rax), %rdi
addq $0x58, %rdi
leaq 0x1d161(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
je 0x1aebf
movq (%rsp), %r12
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r12, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1d598(%rip), %rsi     # 0x379ff
jmp 0x1a5a3
movq 0x8(%r12), %rdi
testq %rdi, %rdi
je 0x1a6a2
movq %r14, %rsi
movq %rbx, %rdx
callq 0xf9a2
jmp 0x1a6a2
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 0x1d544(%rip), %rsi     # 0x379ff
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1d71b(%rip), %rsi     # 0x37bfd
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x240(%rbx), %r14
leaq 0x5b4(%rbx), %r13
movslq 0x5b4(%rbx), %rax
movq 0x240(%rbx), %rcx
imulq $0xb0, %rax, %rax
movl 0x50(%rcx,%rax), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1d4dd(%rip), %rsi     # 0x37a05
movl $0x7, %edx
movq %rax, %rdi
jmp 0x1a622
movq (%rsp), %r12
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r12, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1d4a2(%rip), %rsi     # 0x37a0d
jmp 0x1a5a3
movq (%rsp), %r12
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r12, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %r12
leaq 0x1d470(%rip), %rsi     # 0x37a13
movl $0x5, %edx
movq %rax, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1d633(%rip), %rsi     # 0x37bfd
movl $0x2, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x1d330(%rip), %rsi     # 0x3790e
movl $0x3, %edx
movq %r12, %rdi
callq 0x73a0
movl 0x310(%rbx), %esi
addl $0x2, %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
leaq 0x1e009(%rip), %rsi     # 0x3860f
movl $0x1, %edx
movq %rax, %rdi
callq 0x73a0
leaq 0x1d773(%rip), %rsi     # 0x37d8d
movl $0x1, %edx
movq %r12, %rdi
callq 0x73a0
movslq (%r13), %rax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movq 0x8(%rcx,%rax), %rsi
movq 0x10(%rcx,%rax), %rdx
movq %r12, %rdi
callq 0x73a0
movslq 0x5b4(%rbx), %rax
movq 0x240(%rbx), %rcx
imulq $0xb0, %rax, %rax
movl 0xa0(%rcx,%rax), %edx
movl %edx, 0xa4(%rcx,%rax)
movslq 0x310(%rbx), %rax
movb $0x69, 0x342(%rax,%rbx)
movb $0x0, 0x48(%rbx)
movb $0x0, 0x1d2(%rbx)
movq 0x320(%rbx), %rdx
leaq 0x1a9b0(%rip), %rcx     # 0x35042
movl $0x2, %r8d
movq %r15, %rdi
xorl %esi, %esi
callq 0x7520
movq 0x498(%rbx), %rax
cmpq 0x490(%rbx), %rax
je 0x1aeb0
cmpl $0x0, -0x4(%rax)
je 0x1aeb0
leaq 0x1d35b(%rip), %rsi     # 0x37a22
movl $0x9, %edx
movq (%rsp), %rdi
callq 0x73a0
movq 0x240(%rbx), %r12
movq 0x248(%rbx), %r14
cmpq %r12, %r14
je 0x1aeb0
xorl %eax, %eax
movabsq $0x2e8ba2e8ba2e8ba3, %r13 # imm = 0x2E8BA2E8BA2E8BA3
xorl %r15d, %r15d
movq 0x460(%rbx), %rcx
movq 0x468(%rbx), %rsi
subq %rcx, %rsi
sarq $0x5, %rsi
movslq 0x13e98(%rbx), %rdx
subq %rdx, %rsi
je 0x1ae93
shlq $0x5, %rsi
imulq $0xb0, %rax, %rax
movq 0x8(%rcx,%rsi), %rdx
cmpq 0x38(%r12,%rax), %rdx
jne 0x1ae93
testq %rdx, %rdx
je 0x1a75d
addq %rsi, %rcx
addq %r12, %rax
addq $0x30, %rax
movq (%rax), %rsi
movq (%rcx), %rdi
callq 0x7350
testl %eax, %eax
jne 0x1ae93
movq 0x498(%rbx), %rax
movl -0x4(%rax), %r13d
leal -0x1(%r13), %ebp
addl %ebp, %r15d
js 0x1ae6a
movl %r15d, %eax
imulq $0xb0, %rax, %r14
movl (%r12,%r14), %eax
cmpl $0x4, %eax
je 0x1a863
cmpl $0x1, %eax
jne 0x1a888
movq (%rsp), %r15
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
movl $0x5, %edx
movq %rax, %rdi
leaq 0x1d22d(%rip), %rsi     # 0x379ff
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0x1d404(%rip), %rsi     # 0x37bfd
callq 0x73a0
shll $0x2, %ebp
movq %r12, %rdi
movl %ebp, %esi
callq 0x75c0
movq %rax, %r12
movl $0x7, %edx
movq %rax, %rdi
leaq 0x1d1e8(%rip), %rsi     # 0x37a05
callq 0x73a0
movq 0x240(%rbx), %rax
movq 0x8(%rax,%r14), %rsi
movq 0x10(%rax,%r14), %rdx
movq %r12, %rdi
callq 0x73a0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
leaq 0x1d3b1(%rip), %rsi     # 0x37bfe
callq 0x73a0
movq %r12, %rdi
movl %ebp, %esi
callq 0x75c0
movb $0x63, %al
jmp 0x1a98a
addq %r14, %r12
addq $0x58, %r12
movq %r12, %rdi
leaq 0x1cd11(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
jne 0x1a8ad
movq 0x240(%rbx), %r12
movl (%r12,%r14), %eax
cmpl $0x2, %eax
jne 0x1abea
leaq (%r12,%r14), %rdi
addq $0x58, %rdi
leaq 0x1cce5(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
je 0x1abdf
movq (%rsp), %r15
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
movl $0x5, %edx
movq %rax, %rdi
leaq 0x1d115(%rip), %rsi     # 0x379ff
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0x1d2ec(%rip), %rsi     # 0x37bfd
callq 0x73a0
shll $0x2, %ebp
movq %r12, %rdi
movl %ebp, %esi
callq 0x75c0
movq %rax, %r12
movl $0x7, %edx
movq %rax, %rdi
leaq 0x1d0d0(%rip), %rsi     # 0x37a05
callq 0x73a0
movq 0x240(%rbx), %rax
movq 0x8(%rax,%r14), %rsi
movq 0x10(%rax,%r14), %rdx
movq %r12, %rdi
callq 0x73a0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
leaq 0x1d299(%rip), %rsi     # 0x37bfe
callq 0x73a0
movq %r12, %rdi
movl %ebp, %esi
callq 0x75c0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x1d299(%rip), %rsi     # 0x37c1c
callq 0x73a0
movb $0x69, %al
movslq 0x310(%rbx), %rcx
movb %al, 0x342(%rbx,%rcx)
cmpl $0x4, %r13d
jg 0x1ae6a
movq 0x240(%rbx), %rax
leaq (%rax,%r14), %rdi
addq $0x58, %rdi
leaq 0x1cbcd(%rip), %r15     # 0x37585
movq %r15, %rsi
callq 0x70c0
testl %eax, %eax
je 0x1aa64
movq (%rsp), %r14
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
movl $0x7, %edx
movq %rax, %rdi
leaq 0x1d027(%rip), %rsi     # 0x37a2c
callq 0x73a0
leal 0x3(%r13), %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x3, %edx
movq %rax, %rdi
leaq 0x1cd69(%rip), %rsi     # 0x37791
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x11, %edx
movq %rax, %rdi
leaq 0x1cfe5(%rip), %rsi     # 0x37a34
callq 0x73a0
movq %r12, %rdi
movl %r13d, %esi
callq 0x75c0
jmp 0x1ae6a
movq 0x240(%rbx), %rax
leaq (%rax,%r14), %rdi
addq $0x58, %rdi
movq %r15, %rsi
callq 0x70c0
cmpl $0x1, %r13d
jne 0x1ab20
testl %eax, %eax
jne 0x1ab20
movq (%rsp), %r14
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
movl $0xb, %edx
movq %rax, %rdi
leaq 0x1cf7c(%rip), %rsi     # 0x37a46
callq 0x73a0
movl $0x4, %edx
movq %r12, %rdi
leaq 0x1cd5a(%rip), %rsi     # 0x37838
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x11, %edx
movq %rax, %rdi
leaq 0x1cf2f(%rip), %rsi     # 0x37a34
callq 0x73a0
movq %r12, %rdi
movl $0x1, %esi
callq 0x75c0
addl $0x2, 0x70(%rbx)
jmp 0x1ae6a
movq 0x240(%rbx), %rax
leaq (%rax,%r14), %rdi
addq $0x58, %rdi
movq %r15, %rsi
callq 0x70c0
cmpl $0x2, %r13d
jne 0x1acf1
testl %eax, %eax
jne 0x1acf1
movq (%rsp), %r14
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
movl $0xb, %edx
movq %rax, %rdi
leaq 0x1cecc(%rip), %rsi     # 0x37a52
callq 0x73a0
movl $0x4, %edx
movq %r12, %rdi
leaq 0x1cc9e(%rip), %rsi     # 0x37838
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x11, %edx
movq %rax, %rdi
leaq 0x1ce73(%rip), %rsi     # 0x37a34
callq 0x73a0
movq %r12, %rdi
movl $0x2, %esi
callq 0x75c0
movl $0x6, 0x70(%rbx)
jmp 0x1ae6a
movq 0x240(%rbx), %r12
movl (%r12,%r14), %eax
cmpl $0x4, %eax
jne 0x1a998
leaq (%r12,%r14), %rdi
addq $0x58, %rdi
leaq 0x1c983(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
jne 0x1a998
movq (%rsp), %r15
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
movl $0x8, %edx
movq %rax, %rdi
leaq 0x1cdcd(%rip), %rsi     # 0x37a19
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0x1cf8a(%rip), %rsi     # 0x37bfd
callq 0x73a0
shll $0x2, %ebp
movq %r12, %rdi
movl %ebp, %esi
callq 0x75c0
movq %rax, %r12
movl $0x7, %edx
movq %rax, %rdi
leaq 0x1cd6e(%rip), %rsi     # 0x37a05
callq 0x73a0
movq 0x240(%rbx), %rax
movq 0x8(%rax,%r14), %rsi
movq 0x10(%rax,%r14), %rdx
movq %r12, %rdi
callq 0x73a0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
leaq 0x1cf37(%rip), %rsi     # 0x37bfe
callq 0x73a0
movq %r12, %rdi
movl %ebp, %esi
callq 0x75c0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x1cf37(%rip), %rsi     # 0x37c1c
callq 0x73a0
movb $0x66, %al
jmp 0x1a98a
movq 0x240(%rbx), %rax
leaq (%rax,%r14), %rdi
addq $0x58, %rdi
movq %r15, %rsi
callq 0x70c0
cmpl $0x3, %r13d
jne 0x1adb0
testl %eax, %eax
jne 0x1adb0
movq (%rsp), %r14
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
movl $0x8, %edx
movq %rax, %rdi
leaq 0x1cd07(%rip), %rsi     # 0x37a5e
callq 0x73a0
movl $0x4, %edx
movq %r12, %rdi
leaq 0x1cacd(%rip), %rsi     # 0x37838
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x11, %edx
movq %rax, %rdi
leaq 0x1cca2(%rip), %rsi     # 0x37a34
callq 0x73a0
movq %r12, %rdi
movl $0x3, %esi
callq 0x75c0
movl $0x7, 0x70(%rbx)
jmp 0x1ae6a
movq 0x240(%rbx), %rax
leaq (%rax,%r14), %rdi
addq $0x58, %rdi
movq %r15, %rsi
callq 0x70c0
cmpl $0x4, %r13d
jne 0x1ae6a
testl %eax, %eax
jne 0x1ae6a
movq (%rsp), %r14
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
movl $0x8, %edx
movq %rax, %rdi
leaq 0x1cc51(%rip), %rsi     # 0x37a67
callq 0x73a0
movl $0x4, %edx
movq %r12, %rdi
leaq 0x1ca0e(%rip), %rsi     # 0x37838
callq 0x73a0
movl 0x310(%rbx), %esi
incl %esi
movq %r12, %rdi
callq 0x75c0
movq %rax, %r12
movl $0x11, %edx
movq %rax, %rdi
leaq 0x1cbe3(%rip), %rsi     # 0x37a34
callq 0x73a0
movq %r12, %rdi
movl $0x4, %esi
callq 0x75c0
movl $0xc, 0x70(%rbx)
movq 0x240(%rbx), %r12
movq 0x248(%rbx), %r14
movq %r14, %rax
subq %r12, %rax
shrq $0x4, %rax
imull $0xba2e8ba3, %eax, %r15d # imm = 0xBA2E8BA3
movabsq $0x2e8ba2e8ba2e8ba3, %r13 # imm = 0x2E8BA2E8BA2E8BA3
incl %r15d
movslq %r15d, %rax
movq %r14, %rcx
subq %r12, %rcx
sarq $0x4, %rcx
imulq %r13, %rcx
cmpq %rax, %rcx
ja 0x1a6fb
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movslq (%r13), %rax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
leaq (%rcx,%rax), %rdi
addq $0x58, %rdi
leaq 0x1c6a9(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
jne 0x1a647
movq (%rsp), %rdi
callq 0x7180
movq %rax, %r12
leaq 0x1cb1d(%rip), %rsi     # 0x37a19
movl $0x8, %edx
jmp 0x1a5a8