// File: /workspace/github_cpp_makefile_star2_O1/sthapliyal37[P]Microprocessor_8085_Updated/Validation.cpp
// Function: inputValidation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool inputValidation(string input)
{
	input=split(input);
	string arithmetic[]={"ADD","ADI","SUB","INR","DCR","INX","DCX","DAD","SUI"};
	string logical[]={"CMA","CMP"};
	string branch[]={"JMP","JC","JNC","JZ","JNZ"};
	string transfer[]={"MOV","MVI","LXI","LDA","SHLD","STAX","XCHG","STA","LHLD","SET"};
	int n=sizeof(arithmetic)/sizeof(arithmetic[0]);
	for(int i=0;i<n;i++)
	{
				if(!input.compare(arithmetic[i]))
								return true;
	}
	n=sizeof(logical)/sizeof(logical[0]);
	for(int i=0;i<n;i++)
	{
				if(!input.compare(logical[i]))
								return true;
	}
	n=sizeof(branch)/sizeof(branch[0]);
	for(int i=0;i<n;i++)
	{
				if(!input.compare(branch[i]))
								return true;
	}
		n=sizeof(transfer)/sizeof(transfer[0]);
	for(int i=0;i<n;i++)
	{
				if(!input.compare(transfer[i]))
								return true;
	}
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x378, %rsp            # imm = 0x378
movq %rdi, %r15
leaq -0x50(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rdi), %rsi
movq 0x8(%rdi), %rdx
addq %rsi, %rdx
leaq -0x60(%rbp), %r14
movq %r14, %rdi
callq 0x3224
leaq -0x1e0(%rbp), %rdi
movq %r14, %rsi
callq 0x28fe
leaq -0x1e0(%rbp), %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x2270
movq (%r14), %rdi
leaq -0x1d0(%rbp), %rax
cmpq %rax, %rdi
je 0x2a69
movq -0x1d0(%rbp), %rsi
incq %rsi
callq 0x2210
movq %r15, -0x30(%rbp)
movq -0x60(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2a82
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x390(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb582(%rip), %rsi      # 0xe016
leaq 0xb57e(%rip), %rdx      # 0xe019
leaq -0x3a0(%rbp), %r15
movq %r15, %rdi
callq 0x32be
leaq -0x380(%rbp), %r14
leaq -0x370(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb557(%rip), %rsi      # 0xe01a
leaq 0xb553(%rip), %rdx      # 0xe01d
movq %r14, %rdi
callq 0x32be
leaq -0x360(%rbp), %r14
leaq -0x350(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb533(%rip), %rsi      # 0xe01e
leaq 0xb52f(%rip), %rdx      # 0xe021
movq %r14, %rdi
callq 0x32be
leaq -0x340(%rbp), %r14
leaq -0x330(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb50f(%rip), %rsi      # 0xe022
leaq 0xb50b(%rip), %rdx      # 0xe025
movq %r14, %rdi
callq 0x32be
leaq -0x320(%rbp), %r14
leaq -0x310(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb4eb(%rip), %rsi      # 0xe026
leaq 0xb4e7(%rip), %rdx      # 0xe029
movq %r14, %rdi
callq 0x32be
leaq -0x300(%rbp), %r14
leaq -0x2f0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb4c7(%rip), %rsi      # 0xe02a
leaq 0xb4c3(%rip), %rdx      # 0xe02d
movq %r14, %rdi
callq 0x32be
leaq -0x2e0(%rbp), %r14
leaq -0x2d0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb4a3(%rip), %rsi      # 0xe02e
leaq 0xb49f(%rip), %rdx      # 0xe031
movq %r14, %rdi
callq 0x32be
leaq -0x2c0(%rbp), %r14
leaq -0x2b0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb47f(%rip), %rsi      # 0xe032
leaq 0xb47b(%rip), %rdx      # 0xe035
movq %r14, %rdi
callq 0x32be
leaq -0x2a0(%rbp), %r14
leaq -0x290(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0xb45a(%rip), %rsi      # 0xe036
leaq 0xb456(%rip), %rdx      # 0xe039
movq %r14, %rdi
callq 0x32be
leaq -0x90(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb43d(%rip), %rsi      # 0xe03a
leaq 0xb439(%rip), %rdx      # 0xe03d
leaq -0xa0(%rbp), %r15
movq %r15, %rdi
callq 0x32be
leaq -0x80(%rbp), %r14
leaq -0x70(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0xb418(%rip), %rsi      # 0xe03e
leaq 0xb414(%rip), %rdx      # 0xe041
movq %r14, %rdi
callq 0x32be
leaq -0x270(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb3fb(%rip), %rsi      # 0xe042
leaq 0xb3f7(%rip), %rdx      # 0xe045
leaq -0x280(%rbp), %r15
movq %r15, %rdi
callq 0x32be
leaq -0x260(%rbp), %r14
leaq -0x250(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb3d0(%rip), %rsi      # 0xe046
leaq 0xb3cb(%rip), %rdx      # 0xe048
movq %r14, %rdi
callq 0x32be
leaq -0x240(%rbp), %r14
leaq -0x230(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb3ab(%rip), %rsi      # 0xe049
leaq 0xb3a7(%rip), %rdx      # 0xe04c
movq %r14, %rdi
callq 0x32be
leaq -0x220(%rbp), %r14
leaq -0x210(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb387(%rip), %rsi      # 0xe04d
leaq 0xb382(%rip), %rdx      # 0xe04f
movq %r14, %rdi
callq 0x32be
leaq -0x200(%rbp), %r14
leaq -0x1f0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xb362(%rip), %rsi      # 0xe050
leaq 0xb35e(%rip), %rdx      # 0xe053
movq %r14, %rdi
callq 0x32be
leaq -0x1e0(%rbp), %r15
leaq -0x1d0(%rbp), %rax
movq %rax, (%r15)
leaq 0xb33f(%rip), %rsi      # 0xe054
leaq 0xb33b(%rip), %rdx      # 0xe057
movq %r15, %rdi
callq 0x32be
leaq -0x1c0(%rbp), %r15
leaq -0x1b0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb31b(%rip), %rsi      # 0xe058
leaq 0xb317(%rip), %rdx      # 0xe05b
movq %r15, %rdi
callq 0x32be
leaq -0x1a0(%rbp), %r15
leaq -0x190(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb2f7(%rip), %rsi      # 0xe05c
leaq 0xb2f3(%rip), %rdx      # 0xe05f
movq %r15, %rdi
callq 0x32be
leaq -0x180(%rbp), %r15
leaq -0x170(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb2d3(%rip), %rsi      # 0xe060
leaq 0xb2cf(%rip), %rdx      # 0xe063
movq %r15, %rdi
callq 0x32be
leaq -0x160(%rbp), %r15
leaq -0x150(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb2af(%rip), %rsi      # 0xe064
leaq 0xb2ac(%rip), %rdx      # 0xe068
movq %r15, %rdi
callq 0x32be
leaq -0x140(%rbp), %r15
leaq -0x130(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb28c(%rip), %rsi      # 0xe069
leaq 0xb289(%rip), %rdx      # 0xe06d
movq %r15, %rdi
callq 0x32be
leaq -0x120(%rbp), %r15
leaq -0x110(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb269(%rip), %rsi      # 0xe06e
leaq 0xb266(%rip), %rdx      # 0xe072
movq %r15, %rdi
callq 0x32be
leaq -0x100(%rbp), %r15
leaq -0xf0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb246(%rip), %rsi      # 0xe073
leaq 0xb242(%rip), %rdx      # 0xe076
movq %r15, %rdi
callq 0x32be
leaq -0xe0(%rbp), %r15
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb222(%rip), %rsi      # 0xe077
leaq 0xb21f(%rip), %rdx      # 0xe07b
movq %r15, %rdi
callq 0x32be
leaq -0xc0(%rbp), %r15
leaq -0xb0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xb1ff(%rip), %rsi      # 0xe07c
leaq 0xb1fb(%rip), %rdx      # 0xe07f
movq %r15, %rdi
callq 0x32be
xorl %r15d, %r15d
leaq (%r15,%rbp), %rsi
addq $-0x3a0, %rsi           # imm = 0xFC60
movq -0x30(%rbp), %rdi
callq 0x2050
movb $0x1, -0x31(%rbp)
testl %eax, %eax
je 0x2f4d
addq $0x20, %r15
cmpq $0x120, %r15            # imm = 0x120
jne 0x2e8f
xorl %r15d, %r15d
leaq (%r15,%rbp), %rsi
addq $-0xa0, %rsi
movq -0x30(%rbp), %rdi
callq 0x2050
testl %eax, %eax
je 0x2f4d
addq $0x20, %r15
cmpq $0x20, %r15
je 0x2ebf
xorl %r15d, %r15d
leaq (%r15,%rbp), %rsi
addq $-0x280, %rsi           # imm = 0xFD80
movq -0x30(%rbp), %rdi
callq 0x2050
testl %eax, %eax
je 0x2f4d
addq $0x20, %r15
cmpq $0xa0, %r15
jne 0x2ee4
movb $0x1, -0x31(%rbp)
leaq -0x1e0(%rbp), %rsi
movq $0x0, -0x40(%rbp)
movq -0x30(%rbp), %rdi
movq %rsi, %r15
callq 0x2050
testl %eax, %eax
je 0x2f4d
movq %r15, %rsi
movq -0x40(%rbp), %rax
cmpq $0x9, %rax
leaq 0x1(%rax), %rax
setb -0x31(%rbp)
addq $0x20, %rsi
movq %rax, -0x40(%rbp)
cmpq $0xa, %rax
jne 0x2f1c
movq $-0x140, %r15           # imm = 0xFEC0
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x2f68
movq (%r14), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r14
addq $0x20, %r15
jne 0x2f54
movq $-0xa0, %r14
movq -0x10(%rbx), %rdi
cmpq %rdi, %rbx
je 0x2f8d
movq (%rbx), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %rbx
addq $0x20, %r14
jne 0x2f79
movq $-0x40, %rbx
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x2fb3
movq (%r13), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r13
addq $0x20, %rbx
jne 0x2f9e
movq $-0x120, %rbx           # imm = 0xFEE0
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x2fda
movq (%r12), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r12
addq $0x20, %rbx
jne 0x2fc4
movb -0x31(%rbp), %al
andb $0x1, %al
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x300d
jmp 0x300d
jmp 0x300d
jmp 0x300d
jmp 0x300d
jmp 0x300d
jmp 0x300d
jmp 0x300d
jmp 0x300d
movq %rax, -0x30(%rbp)
leaq -0x1e0(%rbp), %rax
cmpq %r15, %rax
je 0x319f
addq $-0x10, %r15
leaq -0x1e0(%rbp), %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x3040
movq (%r15), %rsi
incq %rsi
callq 0x2210
leaq -0x20(%r15), %rax
addq $-0x10, %r15
cmpq %r14, %r15
movq %rax, %r15
jne 0x302c
jmp 0x319f
jmp 0x305b
jmp 0x305b
jmp 0x305b
movq %rax, -0x30(%rbp)
jmp 0x3068
movq %rax, -0x30(%rbp)
movq %r15, %r14
cmpq %r14, %r15
je 0x31cb
addq $-0x10, %r14
leaq -0x280(%rbp), %rbx
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x3090
movq (%r14), %rsi
incq %rsi
callq 0x2210
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x307c
jmp 0x31cb
movq %rax, -0x30(%rbp)
jmp 0x30b2
movq %rax, -0x30(%rbp)
movq %r15, %r14
cmpq %r14, %r15
je 0x31f0
addq $-0x10, %r14
leaq -0xa0(%rbp), %rbx
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x30da
movq (%r14), %rsi
incq %rsi
callq 0x2210
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x30c6
jmp 0x31f0
jmp 0x30fd
jmp 0x30fd
jmp 0x30fd
jmp 0x30fd
jmp 0x30fd
jmp 0x30fd
jmp 0x30fd
movq %rax, -0x30(%rbp)
cmpq %r14, %r15
je 0x321b
addq $-0x10, %r14
leaq -0x3a0(%rbp), %rbx
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x3129
movq (%r14), %rsi
incq %rsi
callq 0x2210
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x3115
jmp 0x321b
movq %rax, -0x30(%rbp)
movq %r15, %r14
jmp 0x3101
movq %rax, -0x30(%rbp)
movq -0x60(%rbp), %rdi
cmpq %rbx, %rdi
je 0x321b
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2210
jmp 0x321b
jmp 0x316f
jmp 0x316f
jmp 0x316f
movq %rax, -0x30(%rbp)
xorl %r15d, %r15d
movq -0xc0(%rbp,%r15), %rdi
leaq (%r14,%r15), %rax
cmpq %rdi, %rax
je 0x3192
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r15
cmpq $-0x140, %r15           # imm = 0xFEC0
jne 0x3176
xorl %r14d, %r14d
movq -0x200(%rbp,%r14), %rdi
leaq (%rbx,%r14), %rax
cmpq %rdi, %rax
je 0x31be
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r14
cmpq $-0xa0, %r14
jne 0x31a2
xorl %ebx, %ebx
movq -0x80(%rbp,%rbx), %rdi
leaq (%rbx,%r13), %rax
cmpq %rdi, %rax
je 0x31e6
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %rbx
cmpq $-0x40, %rbx
jne 0x31cd
xorl %ebx, %ebx
movq -0x2a0(%rbp,%rbx), %rdi
leaq (%r12,%rbx), %rax
cmpq %rdi, %rax
je 0x320e
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %rbx
cmpq $-0x120, %rbx           # imm = 0xFEE0
jne 0x31f2
movq -0x30(%rbp), %rdi
callq 0x2320