// File: gioannides[P]Language_Processors/src/../include/ast/ast_Expressions.cpp
// Function: UnaryExpression::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
inline void UnaryExpression::render_asm(std::ofstream& file, Context& contxt)  {
		
		if(PostFixExpressionPtr != NULL) {
				PostFixExpressionPtr->render_asm(file,contxt);
		}
	

		if(contxt.LocalArray  && contxt.function && CastExpressionPtr != NULL && contxt.reading){
					

						
						CastExpressionPtr->render_asm(file,contxt);

						if( UnaryOperatorPtr->render_asm(file,contxt) == '~' ){
								if(contxt.ArraySize.size()>=1){
								int result = ~contxt.ArraySize[contxt.ArraySize.size()-1] ;
								contxt.ArraySize.pop_back();
								contxt.ArraySize.push_back(result);
								}
						
						}
						else if( UnaryOperatorPtr->render_asm(file,contxt) == '!') {
								if(contxt.ArraySize.size()>=1){
								int result = !contxt.ArraySize[contxt.ArraySize.size()-1];
								contxt.ArraySize.pop_back();
								contxt.ArraySize.push_back(result);
								}
						}
						else if( UnaryOperatorPtr->render_asm(file,contxt) == '-') {
								if(contxt.ArraySize.size()>=1){
								int result = -1 * contxt.ArraySize[contxt.ArraySize.size()-1];
								contxt.ArraySize.pop_back();
								contxt.ArraySize.push_back(result);
								}
						}
					
					
				
		}
		else if(CastExpressionPtr != NULL && !contxt.reading) {

				if(!contxt.function){
					if(UnaryOperatorPtr != NULL){
						contxt.UnaryOperators.push_back(UnaryOperatorPtr->render_asm(file,contxt));
						if(UnaryOperatorPtr->render_asm(file,contxt) == '*'){
							contxt.PointerVector.push_back(UnaryOperatorPtr->render_asm(file,contxt));
						}
					}
				}
				
				CastExpressionPtr->render_asm(file,contxt);
				

				if(contxt.function && !contxt.reading && !contxt.enum_constant && !contxt.LocalArray){
					
					if(UnaryOperatorPtr->render_asm(file,contxt) == '~'){
					typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
					file << std::endl << "\tnor\t$" << contxt.Regs+1 << ",$0,$" << contxt.Regs+1 << " #~";
					contxt.regType[contxt.Regs+1]='i';
					}
					else if(UnaryOperatorPtr->render_asm(file,contxt) == '!') {
					typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
					file << std::endl << "\tsltu\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",1";
					file << std::endl << "\tandi\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",0x00FF" << " #!";
					contxt.regType[contxt.Regs+1]='i';
					
					
					}
					else if(UnaryOperatorPtr->render_asm(file,contxt) == '-') {
					typePromotion(contxt.Regs,contxt.Regs+1,file,contxt);
					file << std::endl << "\tsub\t$" << contxt.Regs+1 << ",$0,$" << contxt.Regs+1 << "#-"; 
					contxt.regType[contxt.Regs+1]='i';
					}
					else if(UnaryOperatorPtr->render_asm(file,contxt) == '&') {
						if(contxt.Variables[contxt.good_i].scope != "global"){
							if(contxt.Variables[contxt.good_i].DataType != "float"){
								file << std::endl << "\taddiu $" << contxt.Regs+1 << ", $sp, " << contxt.Variables[contxt.good_i].offset << "# memory address " << contxt.Variables[contxt.good_i].id;
							contxt.regType[contxt.Regs+1]='u';
							}
							else{
								file << std::endl << "\taddiu $" << contxt.Regs+1 << ", $sp, " << contxt.Variables[contxt.good_i].offset << "# memory address " << contxt.Variables[contxt.good_i].id;
							
							}
							
						}
						else{
							 file << std::endl << "\tlui\t$" << contxt.Regs+1 << ",%hi" << "(" << contxt.Variables[contxt.good_i].id << ")"; 
							file << std::endl << "\taddiu $" << contxt.Regs+1 << ", %lo(" << contxt.Variables[contxt.good_i].id << ")" << "# memory address " << contxt.Variables[contxt.good_i].id;
							

						}
						contxt.regType[contxt.Regs+1] = 'u';
						
					}
					else if(UnaryOperatorPtr->render_asm(file,contxt) == '*')
					{
				
						if(!contxt.lhs_of_assignment){
							contxt.PointerLHSEval = false;	
						
							if(contxt.Variables[contxt.good_i].DataType == "char" && contxt.Variables[contxt.good_i].PointerLevelsTemp==1){
								file << std::endl << "\tlb $" << contxt.Regs+1 <<  ", 0($" << contxt.Regs+1 << ") # dereferencing pointer " <<  contxt.Variables[contxt.good_i].id;
								contxt.Variables[contxt.good_i].PointerLevelsTemp = contxt.Variables[contxt.good_i].PointerLevels;
								contxt.regType[contxt.Regs+1]='c';
								}
							else if(contxt.Variables[contxt.good_i].DataType == "short" && contxt.Variables[contxt.good_i].PointerLevelsTemp==1){
								file << std::endl << "\tlh $" << contxt.Regs+1 <<  ", 0($" << contxt.Regs+1 << ") # dereferencing pointer " <<  contxt.Variables[contxt.good_i].id;
								contxt.Variables[contxt.good_i].PointerLevelsTemp = contxt.Variables[contxt.good_i].PointerLevels;
								contxt.regType[contxt.Regs+1]='i';
							}
							else if((contxt.Variables[contxt.good_i].DataType == "int" || contxt.Variables[contxt.good_i].DataType =="unsigned" || contxt.Variables[contxt.good_i].DataType =="signed") || contxt.Variables[contxt.good_i].PointerLevelsTemp > 1 ){
								file << std::endl << "\tlw $" << contxt.Regs+1 <<  ", 0($" << contxt.Regs+1 << ") # dereferencing pointer " <<  contxt.Variables[contxt.good_i].id;
								contxt.Variables[contxt.good_i].PointerLevelsTemp=contxt.Variables[contxt.good_i].PointerLevelsTemp-1;
								contxt.regType[contxt.Regs+1]='i';
							}
					 	
							else if(contxt.Variables[contxt.good_i].DataType == "float" && contxt.Variables[contxt.good_i].PointerLevelsTemp==1){
							
								file << std::endl << "\tlwc1 $f" << contxt.Regs+1 <<  ", 0($" << contxt.Regs+1 << ") # dereferencing pointer " <<  contxt.Variables[contxt.good_i].id;
								contxt.Variables[contxt.good_i].PointerLevelsTemp = contxt.Variables[contxt.good_i].PointerLevels;
								contxt.regType[contxt.Regs+1]='f';
							}
						
						}
						else{
							
							contxt.PointerLHSEval = true;
							if( contxt.Variables[contxt.good_i].PointerLevelsTemp > 1 ){
								file << std::endl << "\tlw $" << contxt.Regs+2 <<  ", 0($" << contxt.Regs+2 << ") # dereferencing pointer " <<  contxt.Variables[contxt.good_i].id;
								contxt.Variables[contxt.good_i].PointerLevelsTemp=contxt.Variables[contxt.good_i].PointerLevelsTemp-1;
								contxt.regType[contxt.Regs+1]='i';
							}
					 	
							 if(contxt.Variables[contxt.good_i].DataType == "float" && contxt.Variables[contxt.good_i].PointerLevelsTemp==1){
							
								file << std::endl << "\tlwc1 $f" << contxt.Regs+2 <<  ", 0($" << contxt.Regs+2 << ") # dereferencing pointer " <<  contxt.Variables[contxt.good_i].id;
								contxt.Variables[contxt.good_i].PointerLevelsTemp = contxt.Variables[contxt.good_i].PointerLevels;
								contxt.regType[contxt.Regs+1]='f';
							}



						}
						



						
						
					}

				}
				if(contxt.enum_constant && contxt.function && !contxt.reading && !contxt.LocalArray){
						if(UnaryOperatorPtr->render_asm(file,contxt) == '~'){
							if(contxt.EnumOperands.size()>=1){
							int result =  ~contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						}
						else if(UnaryOperatorPtr->render_asm(file,contxt) == '!') {
							if(contxt.EnumOperands.size()>=1){
							int result =  !contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						}
						else if(UnaryOperatorPtr->render_asm(file,contxt) == '-') {
							if(contxt.EnumOperands.size()>=1){
							int result =  -1 * contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						}
				}
				
				else if(!contxt.function)
				{
					if(!contxt.enum_constant){
						if(UnaryOperatorPtr->render_asm(file,contxt) == '~'){
							contxt.eval[contxt.Regs+1] = ~contxt.eval[contxt.Regs+1];
						}
						else if(UnaryOperatorPtr->render_asm(file,contxt) == '!') {
							contxt.eval[contxt.Regs+1] = !contxt.eval[contxt.Regs+1];
						}
						else if(UnaryOperatorPtr->render_asm(file,contxt) == '-') {
							contxt.eval[contxt.Regs+1] = -contxt.eval[contxt.Regs+1];
						}
					}
					else if(contxt.enum_constant){
						if(UnaryOperatorPtr->render_asm(file,contxt) == '~'){
							if(contxt.EnumOperands.size()>=1){
							int result =  ~contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						}
						else if(UnaryOperatorPtr->render_asm(file,contxt) == '!') {
							if(contxt.EnumOperands.size()>=1){
							int result =  !contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						}
						else if(UnaryOperatorPtr->render_asm(file,contxt) == '-') {
							if(contxt.EnumOperands.size()>=1){
							int result =  -1 * contxt.EnumOperands[contxt.EnumOperands.size()-1];
							contxt.EnumOperands.pop_back();
							contxt.EnumOperands.push_back(result);
						}
						}
					}
				
				}
		}
				
		if( UnaryExpressionPtr != NULL && !contxt.reading && TypeNamePtr == NULL){
			 if( *OPERATOR == "--"){
				contxt.AssignmentOperator = "--";
				contxt.lhs_of_assignment = true;
				UnaryExpressionPtr->render_asm(file,contxt);
				contxt.lhs_of_assignment = false;
			}
			else if( *OPERATOR == "++"){
				contxt.AssignmentOperator = "++";
				contxt.lhs_of_assignment = true;
				UnaryExpressionPtr->render_asm(file,contxt);
				contxt.lhs_of_assignment = false;					
			}
			else if( *OPERATOR == "sizeof"){
				contxt.AssignmentOperator = "sizeof";
				contxt.sizeof_=true;
				UnaryExpressionPtr->render_asm(file,contxt);
				contxt.sizeof_=false;
				file <<  std::endl << "\tli\t$" << contxt.Regs+1 << ", " << contxt.SizeOf;
				contxt.regType[contxt.Regs+1]='i';
				contxt.SizeOf = 0;
							
			}		
		}
		if( OPERATOR != NULL && !contxt.reading && TypeNamePtr != NULL){
			
				contxt.AssignmentOperator = "sizeof";
				contxt.sizeof_=true;
				TypeNamePtr->render_asm(file,contxt);
				contxt.sizeof_=false;
				file <<  std::endl << "\tli\t$" << contxt.Regs+1 << ", " << contxt.SizeOf;
				contxt.regType[contxt.Regs+1]='i';
				contxt.SizeOf = 0;			
					
		}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, 0x8(%rax)
je 0x1d1eb
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1ecc0
movq -0x18(%rbp), %rax
testb $0x1, 0x74(%rax)
je 0x1d3da
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x1d3da
movq -0x48(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1d3da
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
je 0x1d3da
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1d100
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x7e, %eax
jne 0x1d2c3
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
cmpq $0x1, %rax
jb 0x1d2be
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x50(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
xorl $-0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
leaq -0x1c(%rbp), %rsi
callq 0x15ec0
jmp 0x1d3d5
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x21, %eax
jne 0x1d34f
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
cmpq $0x1, %rax
jb 0x1d34a
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x58(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
cmpl $0x0, (%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
leaq -0x20(%rbp), %rsi
callq 0x15ec0
jmp 0x1d3d3
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x2d, %eax
jne 0x1d3d1
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
cmpq $0x1, %rax
jb 0x1d3cf
movq -0x18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x11a60
movq -0x60(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
imull $0xffffffff, (%rax), %eax # imm = 0xFFFFFFFF
movl %eax, -0x24(%rbp)
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x78, %rdi
leaq -0x24(%rbp), %rsi
callq 0x15ec0
jmp 0x1d3d1
jmp 0x1d3d3
jmp 0x1d3d5
jmp 0x1e9b2
movq -0x48(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1e9b0
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
jne 0x1e9b0
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
jne 0x1d4a0
movq -0x48(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x1d49e
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
addq $0x4d0, %rcx            # imm = 0x4D0
movq %rcx, -0x68(%rbp)
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movq -0x68(%rbp), %rdi
movb %al, -0x25(%rbp)
leaq -0x25(%rbp), %rsi
callq 0x1f770
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x2a, %eax
jne 0x1d49c
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
addq $0x28, %rcx
movq %rcx, -0x70(%rbp)
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movq -0x70(%rbp), %rdi
movb %al, -0x26(%rbp)
leaq -0x26(%rbp), %rsi
callq 0x1f770
jmp 0x1d49e
jmp 0x1d4a0
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1d100
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x1e468
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
jne 0x1e468
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
jne 0x1e468
movq -0x18(%rbp), %rax
testb $0x1, 0x74(%rax)
jne 0x1e468
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x7e, %eax
jne 0x1d5c3
movq -0x18(%rbp), %rax
movl 0x310(%rax), %edi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0x16000
movq -0x10(%rbp), %rdi
movq 0x6aa2a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x47120(%rip), %rsi     # 0x64675
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46f4b(%rip), %rsi     # 0x644c4
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x470df(%rip), %rsi     # 0x6467c
callq 0x8400
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x1e466
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x21, %eax
jne 0x1d706
movq -0x18(%rbp), %rax
movl 0x310(%rax), %edi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0x16000
movq -0x10(%rbp), %rdi
movq 0x6a95d(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46f22(%rip), %rsi     # 0x64544
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46eaa(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46e2b(%rip), %rsi     # 0x64495
callq 0x8400
movq -0x10(%rbp), %rdi
movq 0x6a8f6(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46ff7(%rip), %rsi     # 0x64680
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46e43(%rip), %rsi     # 0x644f0
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46fb7(%rip), %rsi     # 0x64688
callq 0x8400
movq %rax, %rdi
leaq 0x46fb0(%rip), %rsi     # 0x64690
callq 0x8400
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x1e464
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x2d, %eax
jne 0x1d7d3
movq -0x18(%rbp), %rax
movl 0x310(%rax), %edi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0x16000
movq -0x10(%rbp), %rdi
movq 0x6a81a(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46ec1(%rip), %rsi     # 0x64626
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46d3b(%rip), %rsi     # 0x644c4
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46ee7(%rip), %rsi     # 0x64694
callq 0x8400
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x1e462
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x26, %eax
jne 0x1db6e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x30, %rdi
leaq 0x46c00(%rip), %rsi     # 0x6441d
callq 0x1f7a0
testb $0x1, %al
jne 0x1d82b
jmp 0x1d9ec
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x46af0(%rip), %rsi     # 0x64344
callq 0x1f7a0
testb $0x1, %al
jne 0x1d862
jmp 0x1d92f
movq -0x10(%rbp), %rdi
movq 0x6a703(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46e1b(%rip), %rsi     # 0x64697
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46eae(%rip), %rsi     # 0x6474e
callq 0x8400
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x80(%rbp), %rdi
movl 0x50(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46dc6(%rip), %rsi     # 0x646a0
callq 0x8400
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x78(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x75, 0x341(%rax,%rcx)
jmp 0x1d9e7
movq -0x10(%rbp), %rdi
movq 0x6a636(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46d4e(%rip), %rsi     # 0x64697
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46de1(%rip), %rsi     # 0x6474e
callq 0x8400
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x90(%rbp), %rdi
movl 0x50(%rax), %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46cf3(%rip), %rsi     # 0x646a0
callq 0x8400
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x88(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
jmp 0x1db4d
movq -0x10(%rbp), %rdi
movq 0x6a579(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46cac(%rip), %rsi     # 0x646b2
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46c8f(%rip), %rsi     # 0x646b9
callq 0x8400
movq %rax, %rdi
leaq 0x467f7(%rip), %rsi     # 0x64230
callq 0x8400
movq %rax, -0xa8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x4797b(%rip), %rsi     # 0x653f8
callq 0x8400
movq -0x10(%rbp), %rdi
movq 0x6a4e3(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46bfb(%rip), %rsi     # 0x64697
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46bfe(%rip), %rsi     # 0x646be
callq 0x8400
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq %rax, %rdi
leaq 0x478f4(%rip), %rsi     # 0x653f8
callq 0x8400
movq %rax, %rdi
leaq 0x46b8d(%rip), %rsi     # 0x646a0
callq 0x8400
movq %rax, -0x98(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x98(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x75, 0x341(%rax,%rcx)
jmp 0x1e460
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x2a, %eax
jne 0x1e45e
movq -0x18(%rbp), %rax
testb $0x1, 0x1d2(%rax)
jne 0x1e1bc
movq -0x18(%rbp), %rax
movb $0x0, 0x40(%rax)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x46792(%rip), %rsi     # 0x64363
callq 0x9e30
testb $0x1, %al
jne 0x1dbdf
jmp 0x1dd12
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
cmpl $0x1, 0xa4(%rax)
jne 0x1dd12
movq -0x10(%rbp), %rdi
movq 0x6a35e(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46aa4(%rip), %rsi     # 0x646c5
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46a86(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46a68(%rip), %rsi     # 0x646d1
callq 0x8400
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0xb8(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl 0xa0(%rax), %eax
movl %eax, -0xac(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl -0xac(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x63, 0x341(%rax,%rcx)
jmp 0x1e1b7
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x46633(%rip), %rsi     # 0x6436e
callq 0x9e30
testb $0x1, %al
jne 0x1dd49
jmp 0x1de7c
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
cmpl $0x1, 0xa4(%rax)
jne 0x1de7c
movq -0x10(%rbp), %rdi
movq 0x6a1f4(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x46961(%rip), %rsi     # 0x646ec
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4691c(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x468fe(%rip), %rsi     # 0x646d1
callq 0x8400
movq %rax, -0xc8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl 0xa0(%rax), %eax
movl %eax, -0xbc(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl -0xbc(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x1e1b5
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x470a6(%rip), %rsi     # 0x64f4b
callq 0x9e30
testb $0x1, %al
jne 0x1df3e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x46534(%rip), %rsi     # 0x6440f
callq 0x9e30
testb $0x1, %al
jne 0x1df3e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x46504(%rip), %rsi     # 0x64411
callq 0x9e30
testb $0x1, %al
jne 0x1df3e
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
cmpl $0x1, 0xa4(%rax)
jle 0x1e04c
movq -0x10(%rbp), %rdi
movq 0x6a027(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4681d(%rip), %rsi     # 0x64775
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4674f(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46731(%rip), %rsi     # 0x646d1
callq 0x8400
movq %rax, -0xd8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0xd8(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl 0xa4(%rax), %eax
subl $0x1, %eax
movl %eax, -0xcc(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl -0xcc(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
jmp 0x1e1b3
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x462cf(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x1e083
jmp 0x1e1b1
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
cmpl $0x1, 0xa4(%rax)
jne 0x1e1b1
movq -0x10(%rbp), %rdi
movq 0x69eba(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x466b7(%rip), %rsi     # 0x6477c
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x465e2(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x465c4(%rip), %rsi     # 0x646d1
callq 0x8400
movq %rax, -0xe8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0xe8(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl 0xa0(%rax), %eax
movl %eax, -0xdc(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl -0xdc(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x66, 0x341(%rax,%rcx)
jmp 0x1e1b3
jmp 0x1e1b5
jmp 0x1e1b7
jmp 0x1e45c
movq -0x18(%rbp), %rax
movb $0x1, 0x40(%rax)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
cmpl $0x1, 0xa4(%rax)
jle 0x1e2f5
movq -0x10(%rbp), %rdi
movq 0x69d79(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4656f(%rip), %rsi     # 0x64775
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x464a1(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46483(%rip), %rsi     # 0x646d1
callq 0x8400
movq %rax, -0xf8(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0xf8(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl 0xa4(%rax), %eax
subl $0x1, %eax
movl %eax, -0xec(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl -0xec(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq %rax, %rdi
addq $0x58, %rdi
leaq 0x46026(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x1e32c
jmp 0x1e45a
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
cmpl $0x1, 0xa4(%rax)
jne 0x1e45a
movq -0x10(%rbp), %rdi
movq 0x69c11(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x4640e(%rip), %rsi     # 0x6477c
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x46339(%rip), %rsi     # 0x646cb
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x2, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x4631b(%rip), %rsi     # 0x646d1
callq 0x8400
movq %rax, -0x108(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movq -0x108(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x83c0
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl 0xa0(%rax), %eax
movl %eax, -0xfc(%rbp)
movq -0x18(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rax
movslq 0x5b4(%rax), %rsi
callq 0xfde0
movl -0xfc(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x66, 0x341(%rax,%rcx)
jmp 0x1e45c
jmp 0x1e45e
jmp 0x1e460
jmp 0x1e462
jmp 0x1e464
jmp 0x1e466
jmp 0x1e468
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
je 0x1e684
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
je 0x1e684
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
jne 0x1e684
movq -0x18(%rbp), %rax
testb $0x1, 0x74(%rax)
jne 0x1e684
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x7e, %eax
jne 0x1e541
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x1, %rax
jb 0x1e53c
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x110(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x110(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
xorl $-0x1, %eax
movl %eax, -0x2c(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x2c(%rbp), %rsi
callq 0x15ec0
jmp 0x1e67f
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x21, %eax
jne 0x1e5e5
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x1, %rax
jb 0x1e5e0
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x118(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x118(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
cmpl $0x0, (%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x30(%rbp), %rsi
callq 0x15ec0
jmp 0x1e67d
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x2d, %eax
jne 0x1e67b
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x1, %rax
jb 0x1e679
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x120(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x120(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
imull $0xffffffff, (%rax), %eax # imm = 0xFFFFFFFF
movl %eax, -0x34(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x34(%rbp), %rsi
callq 0x15ec0
jmp 0x1e67b
jmp 0x1e67d
jmp 0x1e67f
jmp 0x1e9ae
movq -0x18(%rbp), %rax
testb $0x1, 0x218(%rax)
jne 0x1e9ac
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
jne 0x1e7bf
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x7e, %eax
jne 0x1e701
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl 0x5f8(%rax,%rcx,4), %edx
xorl $-0x1, %edx
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, 0x5f8(%rax,%rcx,4)
jmp 0x1e7ba
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x21, %eax
jne 0x1e761
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
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %edx
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, 0x5f8(%rax,%rcx,4)
jmp 0x1e7b8
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x2d, %eax
jne 0x1e7b6
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
xorl %edx, %edx
subl 0x5f8(%rax,%rcx,4), %edx
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, 0x5f8(%rax,%rcx,4)
jmp 0x1e7b8
jmp 0x1e7ba
jmp 0x1e9aa
movq -0x18(%rbp), %rax
testb $0x1, 0x14d(%rax)
je 0x1e9a8
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x7e, %eax
jne 0x1e868
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x1, %rax
jb 0x1e863
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x128(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x128(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
movl (%rax), %eax
xorl $-0x1, %eax
movl %eax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x38(%rbp), %rsi
callq 0x15ec0
jmp 0x1e9a6
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x21, %eax
jne 0x1e90c
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x1, %rax
jb 0x1e907
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x130(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x130(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
cmpl $0x0, (%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x3c(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x3c(%rbp), %rsi
callq 0x15ec0
jmp 0x1e9a4
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f730
movsbl %al, %eax
cmpl $0x2d, %eax
jne 0x1e9a2
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
cmpq $0x1, %rax
jb 0x1e9a0
movq -0x18(%rbp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, -0x138(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x11a60
movq -0x138(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11a80
imull $0xffffffff, (%rax), %eax # imm = 0xFFFFFFFF
movl %eax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x15e90
movq -0x18(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq -0x40(%rbp), %rsi
callq 0x15ec0
jmp 0x1e9a2
jmp 0x1e9a4
jmp 0x1e9a6
jmp 0x1e9a8
jmp 0x1e9aa
jmp 0x1e9ac
jmp 0x1e9ae
jmp 0x1e9b0
jmp 0x1e9b2
movq -0x48(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1eb87
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
jne 0x1eb87
movq -0x48(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x1eb87
movq -0x48(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x45f90(%rip), %rsi     # 0x64980
callq 0x9e30
testb $0x1, %al
jne 0x1e9fb
jmp 0x1ea42
movq -0x18(%rbp), %rdi
addq $0x318, %rdi            # imm = 0x318
leaq 0x45f73(%rip), %rsi     # 0x64980
callq 0x8590
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
movb $0x1, 0x1d2(%rcx)
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1d1b0
movq -0x18(%rbp), %rax
movb $0x0, 0x1d2(%rax)
jmp 0x1eb85
movq -0x48(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x45f26(%rip), %rsi     # 0x64977
callq 0x9e30
testb $0x1, %al
jne 0x1ea5c
jmp 0x1eaa3
movq -0x18(%rbp), %rdi
addq $0x318, %rdi            # imm = 0x318
leaq 0x45f09(%rip), %rsi     # 0x64977
callq 0x8590
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
movb $0x1, 0x1d2(%rcx)
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1d1b0
movq -0x18(%rbp), %rax
movb $0x0, 0x1d2(%rax)
jmp 0x1eb83
movq -0x48(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x45c40(%rip), %rsi     # 0x646f2
callq 0x9e30
testb $0x1, %al
jne 0x1eac0
jmp 0x1eb81
movq -0x18(%rbp), %rdi
addq $0x318, %rdi            # imm = 0x318
leaq 0x45c20(%rip), %rsi     # 0x646f2
callq 0x8590
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
movb $0x1, 0x1f8(%rcx)
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1d1b0
movq -0x18(%rbp), %rax
movb $0x0, 0x1f8(%rax)
movq -0x10(%rbp), %rdi
movq 0x69463(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x45bdd(%rip), %rsi     # 0x646f9
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x45e7c(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x1fc(%rax), %esi
callq 0x8730
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rax
movl $0x0, 0x1fc(%rax)
jmp 0x1eb83
jmp 0x1eb85
jmp 0x1eb87
movq -0x48(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1ec77
movq -0x18(%rbp), %rax
testb $0x1, 0x21b(%rax)
jne 0x1ec77
movq -0x48(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x1ec77
movq -0x18(%rbp), %rdi
addq $0x318, %rdi            # imm = 0x318
leaq 0x45b2a(%rip), %rsi     # 0x646f2
callq 0x8590
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
movb $0x1, 0x1f8(%rcx)
movq 0x30(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1ec80
movq -0x18(%rbp), %rax
movb $0x0, 0x1f8(%rax)
movq -0x10(%rbp), %rdi
movq 0x6936d(%rip), %rsi     # 0x87f70
callq 0x8450
movq %rax, %rdi
leaq 0x45ae7(%rip), %rsi     # 0x646f9
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x310(%rax), %esi
addl $0x1, %esi
callq 0x8730
movq %rax, %rdi
leaq 0x45d86(%rip), %rsi     # 0x649bc
callq 0x8400
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl 0x1fc(%rax), %esi
callq 0x8730
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x310(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x69, 0x341(%rax,%rcx)
movq -0x18(%rbp), %rax
movl $0x0, 0x1fc(%rax)
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq