// File: /workspace/github_cpp_makefile_star2_O3/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, %r12
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 0x31ec
leaq -0x1e0(%rbp), %rdi
movq %r14, %rsi
callq 0x28fe
leaq -0x1e0(%rbp), %r14
movq %r12, %rdi
movq %r14, %rsi
callq 0x2270
movq (%r14), %rdi
leaq -0x1d0(%rbp), %rax
cmpq %rax, %rdi
je 0x2a82
movq -0x1d0(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0x60(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2a97
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x390(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb56d(%rip), %rsi      # 0xe016
leaq 0xb569(%rip), %rdx      # 0xe019
leaq -0x3a0(%rbp), %r14
movq %r14, %rdi
callq 0x328a
leaq -0x380(%rbp), %r15
leaq -0x370(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb542(%rip), %rsi      # 0xe01a
leaq 0xb53e(%rip), %rdx      # 0xe01d
movq %r15, %rdi
callq 0x328a
leaq -0x360(%rbp), %r15
leaq -0x350(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb51e(%rip), %rsi      # 0xe01e
leaq 0xb51a(%rip), %rdx      # 0xe021
movq %r15, %rdi
callq 0x328a
leaq -0x340(%rbp), %r15
leaq -0x330(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb4fa(%rip), %rsi      # 0xe022
leaq 0xb4f6(%rip), %rdx      # 0xe025
movq %r15, %rdi
callq 0x328a
leaq -0x320(%rbp), %r15
leaq -0x310(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb4d6(%rip), %rsi      # 0xe026
leaq 0xb4d2(%rip), %rdx      # 0xe029
movq %r15, %rdi
callq 0x328a
leaq -0x300(%rbp), %r15
leaq -0x2f0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb4b2(%rip), %rsi      # 0xe02a
leaq 0xb4ae(%rip), %rdx      # 0xe02d
movq %r15, %rdi
callq 0x328a
leaq -0x2e0(%rbp), %r15
leaq -0x2d0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb48e(%rip), %rsi      # 0xe02e
leaq 0xb48a(%rip), %rdx      # 0xe031
movq %r15, %rdi
callq 0x328a
leaq -0x2c0(%rbp), %r15
leaq -0x2b0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb46a(%rip), %rsi      # 0xe032
leaq 0xb466(%rip), %rdx      # 0xe035
movq %r15, %rdi
callq 0x328a
leaq -0x2a0(%rbp), %r15
leaq -0x290(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0xb446(%rip), %rsi      # 0xe036
leaq 0xb442(%rip), %rdx      # 0xe039
movq %r15, %rdi
callq 0x328a
leaq -0x90(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xb429(%rip), %rsi      # 0xe03a
leaq 0xb425(%rip), %rdx      # 0xe03d
leaq -0xa0(%rbp), %rdi
callq 0x328a
leaq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xb407(%rip), %rsi      # 0xe03e
leaq 0xb403(%rip), %rdx      # 0xe041
callq 0x328a
movq %r12, -0x30(%rbp)
leaq -0x270(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb3e9(%rip), %rsi      # 0xe042
leaq 0xb3e5(%rip), %rdx      # 0xe045
leaq -0x280(%rbp), %r15
movq %r15, %rdi
callq 0x328a
leaq -0x260(%rbp), %r12
leaq -0x250(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb3be(%rip), %rsi      # 0xe046
leaq 0xb3b9(%rip), %rdx      # 0xe048
movq %r12, %rdi
callq 0x328a
leaq -0x240(%rbp), %r12
leaq -0x230(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb399(%rip), %rsi      # 0xe049
leaq 0xb395(%rip), %rdx      # 0xe04c
movq %r12, %rdi
callq 0x328a
leaq -0x220(%rbp), %r12
leaq -0x210(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb375(%rip), %rsi      # 0xe04d
leaq 0xb370(%rip), %rdx      # 0xe04f
movq %r12, %rdi
callq 0x328a
leaq -0x200(%rbp), %r12
leaq -0x1f0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xb350(%rip), %rsi      # 0xe050
leaq 0xb34c(%rip), %rdx      # 0xe053
movq %r12, %rdi
callq 0x328a
leaq -0x1e0(%rbp), %rdi
leaq -0x1d0(%rbp), %rax
movq %rax, (%rdi)
leaq 0xb32d(%rip), %rsi      # 0xe054
leaq 0xb329(%rip), %rdx      # 0xe057
callq 0x328a
leaq -0x1c0(%rbp), %r12
leaq -0x1b0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb30c(%rip), %rsi      # 0xe058
leaq 0xb308(%rip), %rdx      # 0xe05b
movq %r12, %rdi
callq 0x328a
leaq -0x1a0(%rbp), %r12
leaq -0x190(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb2e8(%rip), %rsi      # 0xe05c
leaq 0xb2e4(%rip), %rdx      # 0xe05f
movq %r12, %rdi
callq 0x328a
leaq -0x180(%rbp), %r12
leaq -0x170(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb2c4(%rip), %rsi      # 0xe060
leaq 0xb2c0(%rip), %rdx      # 0xe063
movq %r12, %rdi
callq 0x328a
leaq -0x160(%rbp), %r12
leaq -0x150(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb2a0(%rip), %rsi      # 0xe064
leaq 0xb29d(%rip), %rdx      # 0xe068
movq %r12, %rdi
callq 0x328a
leaq -0x140(%rbp), %r12
leaq -0x130(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb27d(%rip), %rsi      # 0xe069
leaq 0xb27a(%rip), %rdx      # 0xe06d
movq %r12, %rdi
callq 0x328a
leaq -0x120(%rbp), %r12
leaq -0x110(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb25a(%rip), %rsi      # 0xe06e
leaq 0xb257(%rip), %rdx      # 0xe072
movq %r12, %rdi
callq 0x328a
leaq -0x100(%rbp), %r12
leaq -0xf0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb237(%rip), %rsi      # 0xe073
leaq 0xb233(%rip), %rdx      # 0xe076
movq %r12, %rdi
callq 0x328a
leaq -0xe0(%rbp), %r12
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xb213(%rip), %rsi      # 0xe077
leaq 0xb210(%rip), %rdx      # 0xe07b
movq %r12, %rdi
callq 0x328a
leaq -0xc0(%rbp), %r12
leaq -0xb0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0xb1f0(%rip), %rsi      # 0xe07c
leaq 0xb1ec(%rip), %rdx      # 0xe07f
movq %r12, %rdi
callq 0x328a
xorl %r12d, %r12d
leaq (%r12,%rbp), %rsi
addq $-0x3a0, %rsi           # imm = 0xFC60
movq -0x30(%rbp), %rdi
callq 0x2050
testl %eax, %eax
je 0x2f50
addq $0x20, %r12
cmpq $0x120, %r12            # imm = 0x120
jne 0x2e9e
movb $0x1, %r12b
leaq -0xa0(%rbp), %rsi
movq -0x30(%rbp), %rdi
callq 0x2050
movb $0x1, -0x31(%rbp)
testl %eax, %eax
je 0x2f54
leaq -0x80(%rbp), %rsi
testb $0x1, %r12b
movl $0x0, %r12d
jne 0x2ed1
xorl %r12d, %r12d
leaq (%r12,%rbp), %rsi
addq $-0x280, %rsi           # imm = 0xFD80
movq -0x30(%rbp), %rdi
callq 0x2050
testl %eax, %eax
je 0x2f54
addq $0x20, %r12
cmpq $0xa0, %r12
jne 0x2ef5
movq $-0x1, %r12
leaq -0x1e0(%rbp), %rsi
movq -0x30(%rbp), %rdi
movq %rsi, -0x40(%rbp)
callq 0x2050
testl %eax, %eax
je 0x2f54
incq %r12
movq -0x40(%rbp), %rsi
addq $0x20, %rsi
cmpq $0x9, %r12
jne 0x2f28
setb -0x31(%rbp)
jmp 0x2f54
movb $0x1, -0x31(%rbp)
movq $-0x140, %r12           # imm = 0xFEC0
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x2f6f
movq (%r15), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r15
addq $0x20, %r12
jne 0x2f5b
movq $-0xa0, %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x2f94
movq (%r14), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r14
addq $0x20, %r15
jne 0x2f80
movq $-0x40, %r14
movq -0x10(%rbx), %rdi
cmpq %rdi, %rbx
je 0x2fb9
movq (%rbx), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %rbx
addq $0x20, %r14
jne 0x2fa5
movq $-0x120, %rbx           # imm = 0xFEE0
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x2fdf
movq (%r13), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r13
addq $0x20, %rbx
jne 0x2fca
movb -0x31(%rbp), %al
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x300e
jmp 0x300e
jmp 0x300e
jmp 0x300e
jmp 0x300e
jmp 0x300e
jmp 0x300e
jmp 0x300e
movq %rax, -0x30(%rbp)
addq $-0x10, %r12
leaq -0x1e0(%rbp), %r15
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x3033
movq (%r12), %rsi
incq %rsi
callq 0x2210
leaq -0x20(%r12), %rax
addq $-0x10, %r12
cmpq %r15, %r12
movq %rax, %r12
jne 0x301d
jmp 0x3166
movq %rax, -0x30(%rbp)
jmp 0x3166
jmp 0x3058
jmp 0x3058
jmp 0x3058
movq %rax, -0x30(%rbp)
addq $-0x10, %r12
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x3076
movq (%r12), %rsi
incq %rsi
callq 0x2210
leaq -0x20(%r12), %rax
addq $-0x10, %r12
cmpq %r15, %r12
movq %rax, %r12
jne 0x3060
jmp 0x3192
movq %rax, -0x30(%rbp)
jmp 0x3192
movq %rax, -0x30(%rbp)
movq -0xa0(%rbp), %rdi
cmpq %r14, %rdi
je 0x31b8
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x2210
jmp 0x31b8
movq %rax, -0x30(%rbp)
jmp 0x31b8
jmp 0x30d4
jmp 0x30d4
jmp 0x30d4
jmp 0x30d4
jmp 0x30d4
jmp 0x30d4
jmp 0x30d4
movq %rax, -0x30(%rbp)
addq $-0x10, %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x30f0
movq (%r15), %rsi
incq %rsi
callq 0x2210
leaq -0x20(%r15), %rax
addq $-0x10, %r15
cmpq %r14, %r15
movq %rax, %r15
jne 0x30dc
jmp 0x31e3
movq %rax, -0x30(%rbp)
jmp 0x31e3
movq %rax, -0x30(%rbp)
movq -0x60(%rbp), %rdi
cmpq %rbx, %rdi
je 0x31e3
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2210
jmp 0x31e3
jmp 0x3136
jmp 0x3136
jmp 0x3136
movq %rax, -0x30(%rbp)
xorl %r12d, %r12d
movq -0xc0(%rbp,%r12), %rdi
leaq (%r15,%r12), %rax
cmpq %rdi, %rax
je 0x3159
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r12
cmpq $-0x140, %r12           # imm = 0xFEC0
jne 0x313d
xorl %r15d, %r15d
movq -0x200(%rbp,%r15), %rdi
leaq (%r14,%r15), %rax
cmpq %rdi, %rax
je 0x3185
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r15
cmpq $-0xa0, %r15
jne 0x3169
xorl %r14d, %r14d
movq -0x80(%rbp,%r14), %rdi
leaq (%rbx,%r14), %rax
cmpq %rdi, %rax
je 0x31ae
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %r14
cmpq $-0x40, %r14
jne 0x3195
xorl %ebx, %ebx
movq -0x2a0(%rbp,%rbx), %rdi
leaq (%rbx,%r13), %rax
cmpq %rdi, %rax
je 0x31d6
movq (%rax), %rsi
incq %rsi
callq 0x2210
addq $-0x20, %rbx
cmpq $-0x120, %rbx           # imm = 0xFEE0
jne 0x31ba
movq -0x30(%rbp), %rdi
callq 0x2320