// File: /workspace/github_c_makefile_star2_O0/Gaurang18[P]Compiler-Project-BITS-Pilani/./codegen.c
// Function: ExpressionCode
void ExpressionCode(FILE *fpdummy, parsetree head, FILE *fp, char *scope)
{
	
	int noField,i,nofield1,nofield2;

	if(head==NULL || head->value==109)
		return;



	ExpressionCode(fpdummy,head->child, fp, scope);

	// printf("%s \n", terms[head->value]);



	switch(head->value){
	
		case 107:
			// printf("Here I am %d\n", head->parent->parent->value);
			if(head->parent->parent->parent->value==37 && expstate == 0){
				// assert(0);
				if(head->parent->parent->right->rule ==70 && head->parent->parent->parent->right->rule==65)
				{	
				 // assert(0);
				// expstate =1;
				fprintf(fp,"mov eax,%s\npush eax\n",head->Lex->tk->value);
				// expstate = 0;
				return;
				}}




			if(expstate==1){
				// printf(" expstate before fprintf %d\n", expstate);
				opcount++;
				if(opcount<=2){
				fprintf(fp,"mov eax,%s\npush eax\n",head->Lex->tk->value);
				return;
			}
			

			}

			break;
			

		case 106:
			if(head->parent->parent->parent->value==37){
			if((TypeChecker(fpdummy,head, scope))==0 && head->parent->parent->right->rule ==70 && head->parent->parent->parent->right->rule==65 && expstate==0)
			{	
				// assert(0);
				// expstate =1;
				fprintf(fp,"mov eax,%s\npush eax\n",head->Lex->tk->value);
				// expstate = 0;
				return;
			}}

			if((TypeChecker(fpdummy,head, scope))==0 && expstate ==1)
				{
					opcount++;
				if(opcount<=2){
					fprintf(fp,"push dword[%s]\n",head->Lex->tk->value);
					return;
					}
					
				}
				else
				{
					
				}

				break;
		
		case 82:

			// printf("%d %s %s %s \n", head->parent->parent->parent->value, terms[head->parent->parent->parent->value], terms[head->parent->parent->value], terms[head->parent->value]);
			if(!expstate){
			if(head->parent->parent->parent->value==38){
            			// printf("%s %s \n", head->parent->parent->parent->child->right, head->parent->right);
					expstate = 1;
					// assert(0);
					ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
					ExpressionCode(fpdummy,head->parent->right,fp,scope);
					//assert(0);
					expstate = 0;
					opcount = 0;
					// printf(" expstate %d\n", expstate);
            	}

					if(head->parent->parent->parent->value==35){
						// printf("%s %s \n", terms[head->parent->parent->parent->child->value], terms[head->parent->right->value]);
						// assert(0);
						expstate = 1;
						ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);

						ExpressionCode(fpdummy,head->parent->right,fp,scope);
						expstate = 0;
						opcount = 0;
						// printf(" expstate %d\n", expstate);
					}
		
			
				fprintf(fp,"pop ebx\npop eax\nadd eax,ebx\npush eax\n");
			}
				return;
		
		case 84:
		if(!expstate){
		if(head->parent->parent->parent->value==41){
            			// printf("%s %s \n", head->parent->parent->parent->child->right, head->parent->right);
					expstate = 1;
					assert(0);
					ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
					ExpressionCode(fpdummy,head->parent->right,fp,scope);
					expstate = 0;
					opcount = 0;
            	}

					if(head->parent->parent->parent->value==37){
						// printf("%s %s \n", terms[head->parent->parent->parent->child->value], terms[head->parent->right->value]);
						expstate = 1;
						
						ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
						// assert(0);
						ExpressionCode(fpdummy,head->parent->right,fp,scope);
						// assert(0);
						expstate = 0;
						opcount = 0;
						
					}
		
			fprintf(fp,"pop ebx\npop eax\nimul ebx\npush eax\n");
		}
			return;

		case 85:
		if(!expstate){
		if(head->parent->parent->parent->value==41){
            			// printf("%s %s \n", head->parent->parent->parent->child->right, head->parent->right);
					expstate = 1;

					ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
					ExpressionCode(fpdummy,head->parent->right,fp,scope);
					expstate = 0;
					opcount = 0;
            	}

					if(head->parent->parent->parent->value==37){
						// printf("%s %s \n", terms[head->parent->parent->parent->child->value], terms[head->parent->right->value]);
						expstate = 1;

						ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
						ExpressionCode(fpdummy,head->parent->right,fp,scope);
						expstate = 0;
						opcount = 0;
					}

		
			fprintf(fp,"pop ebx\npop eax\npush edx\nmov edx,0\nidiv ebx\npop edx\npush eax\n");
		}
			return;
	
		case 83:

		if(head->value==83 && head->parent->value==30)
            	{		
            			ExpressionCode(fpdummy,head->right, fp, scope);
            			// noField = ExpressionCode(fpdummy,head->children[0],fp,scope);
						fprintf(fp,"pop ebx\nmov eax,0\nsub eax,ebx\npush eax\n");
						return;
						}
						



		else
		{	if(!expstate){
			if(head->parent->parent->parent->value==38){
            			// printf("%s %s \n", head->parent->parent->parent->child->right, head->parent->right);
					expstate = 1;
					ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
					ExpressionCode(fpdummy,head->parent->right,fp,scope);
					expstate = 0;
					opcount = 0;
            	}

			if(head->parent->parent->parent->value==35){
						// printf("%s %s \n", terms[head->parent->parent->parent->child->value], terms[head->parent->right->value]);
						expstate = 1;
						ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
						ExpressionCode(fpdummy,head->parent->right,fp,scope);
						expstate = 0;
						opcount = 0;
				}

			
				fprintf(fp,"pop ebx\npop eax\nsub eax,ebx\npush eax\n");
			}
				return;
			
			
		}

		case 74:
		// if(!expstate){
				if(head->parent->parent->parent->value==42){
						ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
						ExpressionCode(fpdummy,head->parent->right,fp,scope);
					}


					if(head->parent->parent->parent->value==48){

						ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
						ExpressionCode(fpdummy,head->parent->right,fp,scope);

				}
		
		fprintf(fp,"pop ebx\npop eax\nor eax, ebx\npush eax\n");

	// }
		return;

		case 73:
		// if(!expstate){
		if(head->parent->parent->parent->value==42){
						ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
						ExpressionCode(fpdummy,head->parent->right,fp,scope);
					}


					if(head->parent->parent->parent->value==48){

						ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
						ExpressionCode(fpdummy,head->parent->right,fp,scope);
					
				}
		
		fprintf(fp,"pop ebx\npop eax\nand eax, ebx\npush eax\n");
		// }
		return;

		case 86:
				if(!expstate){
					assert(0);
				if(head->parent->parent->parent->value==43){

					expstate = 1;
					ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
					ExpressionCode(fpdummy,head->parent->right,fp,scope);
					expstate = 0;
					opcount = 0;
				}

				if(head->parent->parent->parent->value==49){
					expstate = 1;
					ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
					ExpressionCode(fpdummy,head->parent->right,fp,scope);
					expstate = 0;
					opcount = 0;
				}
		
		fprintf(fp,"pop ebx\npop eax\npush 0ffffh\ncmp eax,ebx\njl .rel%d\npop eax\npush 0000h\n.rel%d:\n",relnum,relnum);
		relnum++;
	}
		return;

		case 87:

			if(!expstate){
			if(head->parent->parent->parent->value==43){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
			}

			if(head->parent->parent->parent->value==49){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
			}
		fprintf(fp,"pop ebx\npop eax\npush 0ffffh\ncmp eax,ebx\njle .rel%d\npop eax\npush 0000h\n.rel%d:\n",relnum,relnum);
		relnum++;
	}
		return;

		case 88:

		if(!expstate){
		if(head->parent->parent->parent->value==43){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
				
			}

			if(head->parent->parent->parent->value==49){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
			}

		fprintf(fp,"pop ebx\npop eax\npush 0ffffh\ncmp eax,ebx\njge .rel%d\npop eax\npush 0000h\n.rel%d:\n",relnum,relnum);
		relnum++;
	}
		return;

		case 89:
		if(!expstate){
		if(head->parent->parent->parent->value==43){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
				
			}

			if(head->parent->parent->parent->value==49){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
			}
		fprintf(fp,"pop ebx\npop eax\npush 0ffffh\ncmp eax,ebx\njg .rel%d\npop eax\npush 0000h\n.rel%d:\n",relnum,relnum);
		relnum++;
	}
		return;
		
		case 90:
		if(!expstate){
			if(head->parent->parent->parent->value==43){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
			}

			if(head->parent->parent->parent->value==49){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
			}
		fprintf(fp,"pop ebx\npop eax\npush 0ffffh\ncmp eax,ebx\nje .rel%d\npop eax\npush 0000h\n.rel%d:\n",relnum,relnum);
		relnum++;
	}
		return;
		
		case 91:
			if(!expstate){
			if(head->parent->parent->parent->value==43){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
				
			}

			if(head->parent->parent->parent->value==49){
				expstate = 1;
				ExpressionCode(fpdummy,head->parent->parent->parent->child->right,fp,scope);
				ExpressionCode(fpdummy,head->parent->right,fp,scope);
				expstate = 0;
				opcount = 0;
			}

		fprintf(fp,"pop ebx\npop eax\npush 0ffffh\ncmp eax,ebx\njne .rel%d\npop eax\npush 0000h\n.rel%d:\n",relnum,relnum);
		relnum++;
	}
		return;

		default: break;

		

}

ExpressionCode(fpdummy,head->right, fp, scope);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x9e49
movq -0x10(%rbp), %rax
cmpl $0x6d, 0x8(%rax)
jne 0x9e4e
jmp 0xac6b
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
addl $-0x49, %eax
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0x22, %eax
ja 0xac50
movq -0x38(%rbp), %rax
leaq 0x2411(%rip), %rcx      # 0xc29c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x25, 0x8(%rax)
jne 0x9f0a
cmpl $0x0, 0x1936f(%rip)     # 0x23220
jne 0x9f0a
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rax
cmpl $0x46, 0xc(%rax)
jne 0x9f08
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rax
cmpl $0x41, 0xc(%rax)
jne 0x9f08
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rdx
addq $0x1e, %rdx
leaq 0x3302(%rip), %rsi      # 0xd1fe
movb $0x0, %al
callq 0x2100
jmp 0xac6b
jmp 0x9f0a
cmpl $0x1, 0x1930f(%rip)     # 0x23220
jne 0x9f52
movl 0x1930b(%rip), %eax     # 0x23224
addl $0x1, %eax
movl %eax, 0x19302(%rip)     # 0x23224
cmpl $0x2, 0x192fb(%rip)     # 0x23224
jg 0x9f50
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rdx
addq $0x1e, %rdx
leaq 0x32ba(%rip), %rsi      # 0xd1fe
movb $0x0, %al
callq 0x2100
jmp 0xac6b
jmp 0x9f52
jmp 0xac52
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x25, 0x8(%rax)
jne 0x9fe3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7670
cmpl $0x0, %eax
jne 0x9fe1
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rax
cmpl $0x46, 0xc(%rax)
jne 0x9fe1
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rax
cmpl $0x41, 0xc(%rax)
jne 0x9fe1
cmpl $0x0, 0x19266(%rip)     # 0x23220
jne 0x9fe1
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rdx
addq $0x1e, %rdx
leaq 0x3229(%rip), %rsi      # 0xd1fe
movb $0x0, %al
callq 0x2100
jmp 0xac6b
jmp 0x9fe3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7670
cmpl $0x0, %eax
jne 0xa041
cmpl $0x1, 0x19220(%rip)     # 0x23220
jne 0xa041
movl 0x1921c(%rip), %eax     # 0x23224
addl $0x1, %eax
movl %eax, 0x19213(%rip)     # 0x23224
cmpl $0x2, 0x1920c(%rip)     # 0x23224
jg 0xa03f
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rdx
addq $0x1e, %rdx
leaq 0x31e0(%rip), %rsi      # 0xd213
movb $0x0, %al
callq 0x2100
jmp 0xac6b
jmp 0xa043
jmp 0xa043
jmp 0xac52
cmpl $0x0, 0x191d1(%rip)     # 0x23220
jne 0xa157
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x26, 0x8(%rax)
jne 0xa0cf
movl $0x1, 0x191ab(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x1915b(%rip)     # 0x23220
movl $0x0, 0x19155(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x23, 0x8(%rax)
jne 0xa145
movl $0x1, 0x19131(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x190e5(%rip)     # 0x23220
movl $0x0, 0x190df(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
leaq 0x30d3(%rip), %rsi      # 0xd223
movb $0x0, %al
callq 0x2100
jmp 0xac6b
cmpl $0x0, 0x190bd(%rip)     # 0x23220
jne 0xa230
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x29, 0x8(%rax)
jne 0xa1a8
movl $0x1, 0x19097(%rip)     # 0x23220
leaq 0x30b9(%rip), %rdi      # 0xd249
leaq 0x30b4(%rip), %rsi      # 0xd24b
movl $0xae, %edx
leaq 0x30b4(%rip), %rcx      # 0xd257
callq 0x20b0
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x25, 0x8(%rax)
jne 0xa21e
movl $0x1, 0x19058(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x1900c(%rip)     # 0x23220
movl $0x0, 0x19006(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
leaq 0x3065(%rip), %rsi      # 0xd28e
movb $0x0, %al
callq 0x2100
jmp 0xac6b
cmpl $0x0, 0x18fe4(%rip)     # 0x23220
jne 0xa344
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x29, 0x8(%rax)
jne 0xa2bc
movl $0x1, 0x18fbe(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18f6e(%rip)     # 0x23220
movl $0x0, 0x18f68(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x25, 0x8(%rax)
jne 0xa332
movl $0x1, 0x18f44(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18ef8(%rip)     # 0x23220
movl $0x0, 0x18ef2(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
leaq 0x2f74(%rip), %rsi      # 0xd2b1
movb $0x0, %al
callq 0x2100
jmp 0xac6b
movq -0x10(%rbp), %rax
cmpl $0x53, 0x8(%rax)
jne 0xa391
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
cmpl $0x1e, 0x8(%rax)
jne 0xa391
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x18(%rbp), %rdi
leaq 0x2f6a(%rip), %rsi      # 0xd2ef
movb $0x0, %al
callq 0x2100
jmp 0xac6b
cmpl $0x0, 0x18e88(%rip)     # 0x23220
jne 0xa4a0
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x26, 0x8(%rax)
jne 0xa418
movl $0x1, 0x18e62(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18e12(%rip)     # 0x23220
movl $0x0, 0x18e0c(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x23, 0x8(%rax)
jne 0xa48e
movl $0x1, 0x18de8(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18d9c(%rip)     # 0x23220
movl $0x0, 0x18d96(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
leaq 0x2e7e(%rip), %rsi      # 0xd317
movb $0x0, %al
callq 0x2100
jmp 0xac6b
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x2a, 0x8(%rax)
jne 0xa4fd
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x30, 0x8(%rax)
jne 0xa559
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x18(%rbp), %rdi
leaq 0x2dd9(%rip), %rsi      # 0xd33d
movb $0x0, %al
callq 0x2100
jmp 0xac6b
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x2a, 0x8(%rax)
jne 0xa5c8
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x30, 0x8(%rax)
jne 0xa624
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x18(%rbp), %rdi
leaq 0x2d34(%rip), %rsi      # 0xd363
movb $0x0, %al
callq 0x2100
jmp 0xac6b
cmpl $0x0, 0x18bde(%rip)     # 0x23220
jne 0xa663
leaq 0x2bfe(%rip), %rdi      # 0xd249
leaq 0x2bf9(%rip), %rsi      # 0xd24b
movl $0x133, %edx            # imm = 0x133
leaq 0x2bf9(%rip), %rcx      # 0xd257
callq 0x20b0
jmp 0xac6b
cmpl $0x0, 0x18bb1(%rip)     # 0x23220
jne 0xa792
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x2b, 0x8(%rax)
jne 0xa6eb
movl $0x1, 0x18b8b(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18b3f(%rip)     # 0x23220
movl $0x0, 0x18b39(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x31, 0x8(%rax)
jne 0xa765
movl $0x1, 0x18b15(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18ac5(%rip)     # 0x23220
movl $0x0, 0x18abf(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
movl 0x18ac1(%rip), %edx     # 0x23230
movl 0x18abb(%rip), %ecx     # 0x23230
leaq 0x2c0e(%rip), %rsi      # 0xd38a
movb $0x0, %al
callq 0x2100
movl 0x18aa7(%rip), %eax     # 0x23230
addl $0x1, %eax
movl %eax, 0x18a9e(%rip)     # 0x23230
jmp 0xac6b
cmpl $0x0, 0x18a82(%rip)     # 0x23220
jne 0xa8c1
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x2b, 0x8(%rax)
jne 0xa81a
movl $0x1, 0x18a5c(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18a10(%rip)     # 0x23220
movl $0x0, 0x18a0a(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x31, 0x8(%rax)
jne 0xa894
movl $0x1, 0x189e6(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18996(%rip)     # 0x23220
movl $0x0, 0x18990(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
movl 0x18992(%rip), %edx     # 0x23230
movl 0x1898c(%rip), %ecx     # 0x23230
leaq 0x2b2e(%rip), %rsi      # 0xd3d9
movb $0x0, %al
callq 0x2100
movl 0x18978(%rip), %eax     # 0x23230
addl $0x1, %eax
movl %eax, 0x1896f(%rip)     # 0x23230
jmp 0xac6b
cmpl $0x0, 0x18953(%rip)     # 0x23220
jne 0xa9f0
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x2b, 0x8(%rax)
jne 0xa949
movl $0x1, 0x1892d(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x188e1(%rip)     # 0x23220
movl $0x0, 0x188db(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x31, 0x8(%rax)
jne 0xa9c3
movl $0x1, 0x188b7(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18867(%rip)     # 0x23220
movl $0x0, 0x18861(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
movl 0x18863(%rip), %edx     # 0x23230
movl 0x1885d(%rip), %ecx     # 0x23230
leaq 0x2a4e(%rip), %rsi      # 0xd428
movb $0x0, %al
callq 0x2100
movl 0x18849(%rip), %eax     # 0x23230
addl $0x1, %eax
movl %eax, 0x18840(%rip)     # 0x23230
jmp 0xac6b
cmpl $0x0, 0x18824(%rip)     # 0x23220
jne 0xab1f
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x2b, 0x8(%rax)
jne 0xaa78
movl $0x1, 0x187fe(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x187b2(%rip)     # 0x23220
movl $0x0, 0x187ac(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x31, 0x8(%rax)
jne 0xaaf2
movl $0x1, 0x18788(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18738(%rip)     # 0x23220
movl $0x0, 0x18732(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
movl 0x18734(%rip), %edx     # 0x23230
movl 0x1872e(%rip), %ecx     # 0x23230
leaq 0x296d(%rip), %rsi      # 0xd476
movb $0x0, %al
callq 0x2100
movl 0x1871a(%rip), %eax     # 0x23230
addl $0x1, %eax
movl %eax, 0x18711(%rip)     # 0x23230
jmp 0xac6b
cmpl $0x0, 0x186f5(%rip)     # 0x23220
jne 0xac4e
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x2b, 0x8(%rax)
jne 0xaba7
movl $0x1, 0x186cf(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18683(%rip)     # 0x23220
movl $0x0, 0x1867d(%rip)     # 0x23224
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
cmpl $0x31, 0x8(%rax)
jne 0xac21
movl $0x1, 0x18659(%rip)     # 0x23220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x30(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
movl $0x0, 0x18609(%rip)     # 0x23220
movl $0x0, 0x18603(%rip)     # 0x23224
movq -0x18(%rbp), %rdi
movl 0x18605(%rip), %edx     # 0x23230
movl 0x185ff(%rip), %ecx     # 0x23230
leaq 0x288c(%rip), %rsi      # 0xd4c4
movb $0x0, %al
callq 0x2100
movl 0x185eb(%rip), %eax     # 0x23230
addl $0x1, %eax
movl %eax, 0x185e2(%rip)     # 0x23230
jmp 0xac6b
jmp 0xac52
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x9e20
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)