// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x378, %rsp            # imm = 0x378
movq %rdi, %rbx
leaq -0x90(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2280
leaq -0x270(%rbp), %rdi
movq %r14, %rsi
callq 0x287e
leaq -0x270(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2250
movq %r14, %rdi
callq 0x20f0
leaq -0x90(%rbp), %rdi
callq 0x20f0
leaq 0x7627(%rip), %rsi      # 0xa016
leaq -0x390(%rbp), %r14
leaq -0x270(%rbp), %rdx
movq %r14, %rdi
callq 0x2f1e
leaq -0x370(%rbp), %r15
leaq 0x7607(%rip), %rsi      # 0xa01a
leaq -0x130(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x350(%rbp), %r15
leaq 0x75ee(%rip), %rsi      # 0xa01e
leaq -0x70(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x330(%rbp), %r15
leaq 0x75d8(%rip), %rsi      # 0xa022
leaq -0x1c(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x310(%rbp), %r15
leaq 0x75c2(%rip), %rsi      # 0xa026
leaq -0x1b(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x2f0(%rbp), %r15
leaq 0x75ac(%rip), %rsi      # 0xa02a
leaq -0x1a(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x2d0(%rbp), %r15
leaq 0x7596(%rip), %rsi      # 0xa02e
leaq -0x19(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x2b0(%rbp), %r15
leaq 0x7580(%rip), %rsi      # 0xa032
leaq -0x1e(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x290(%rbp), %r15
leaq 0x756a(%rip), %rsi      # 0xa036
leaq -0x1d(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq 0x755b(%rip), %rsi      # 0xa03a
leaq -0x70(%rbp), %rdi
leaq -0x270(%rbp), %rdx
callq 0x2f1e
leaq -0x50(%rbp), %rdi
leaq 0x7544(%rip), %rsi      # 0xa03e
leaq -0x130(%rbp), %rdx
callq 0x2f1e
leaq 0x7535(%rip), %rsi      # 0xa042
leaq -0x130(%rbp), %r14
leaq -0x270(%rbp), %rdx
movq %r14, %rdi
callq 0x2f1e
leaq -0x110(%rbp), %r15
leaq 0x7515(%rip), %rsi      # 0xa046
leaq -0x1c(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0xf0(%rbp), %r15
leaq 0x74fe(%rip), %rsi      # 0xa049
leaq -0x1b(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0xd0(%rbp), %r15
leaq 0x74e8(%rip), %rsi      # 0xa04d
leaq -0x1a(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0xb0(%rbp), %r15
leaq 0x74d1(%rip), %rsi      # 0xa050
leaq -0x19(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq 0x74c2(%rip), %rsi      # 0xa054
leaq -0x270(%rbp), %r14
leaq -0x1c(%rbp), %rdx
movq %r14, %rdi
callq 0x2f1e
leaq -0x250(%rbp), %r15
leaq 0x74a5(%rip), %rsi      # 0xa058
leaq -0x1b(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x230(%rbp), %r15
leaq 0x748f(%rip), %rsi      # 0xa05c
leaq -0x1a(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x210(%rbp), %r15
leaq 0x7479(%rip), %rsi      # 0xa060
leaq -0x19(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x1f0(%rbp), %r15
leaq 0x7463(%rip), %rsi      # 0xa064
leaq -0x1e(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x1d0(%rbp), %r15
leaq 0x744e(%rip), %rsi      # 0xa069
leaq -0x1d(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x1b0(%rbp), %r15
leaq 0x7439(%rip), %rsi      # 0xa06e
leaq -0x22(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x190(%rbp), %r15
leaq 0x7424(%rip), %rsi      # 0xa073
leaq -0x21(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x170(%rbp), %r15
leaq 0x740e(%rip), %rsi      # 0xa077
leaq -0x20(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
leaq -0x150(%rbp), %r15
leaq 0x73f9(%rip), %rsi      # 0xa07c
leaq -0x1f(%rbp), %rdx
movq %r15, %rdi
callq 0x2f1e
xorl %ecx, %ecx
leaq 0x20(%rcx), %r14
cmpq $0x140, %r14            # imm = 0x140
je 0x2cba
leaq (%rcx,%rbp), %rsi
addq $-0x390, %rsi           # imm = 0xFC70
movq %rbx, %rdi
callq 0x2040
movq %r14, %rcx
testl %eax, %eax
jne 0x2c91
jmp 0x2d0c
xorl %ecx, %ecx
leaq 0x20(%rcx), %r14
cmpq $0x60, %r14
je 0x2cdf
leaq (%rcx,%rbp), %rsi
addq $-0x70, %rsi
movq %rbx, %rdi
callq 0x2040
movq %r14, %rcx
testl %eax, %eax
jne 0x2cbc
jmp 0x2d0c
xorl %ecx, %ecx
leaq 0x20(%rcx), %r14
cmpq $0xc0, %r14
je 0x2d97
leaq (%rcx,%rbp), %rsi
addq $-0x130, %rsi           # imm = 0xFED0
movq %rbx, %rdi
callq 0x2040
movq %r14, %rcx
testl %eax, %eax
jne 0x2ce1
movb $0x1, %r14b
movl $0x120, %ebx            # imm = 0x120
leaq (%rbx,%rbp), %rdi
addq $-0x270, %rdi           # imm = 0xFD90
callq 0x20f0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2d14
movl $0x80, %ebx
leaq (%rbx,%rbp), %rdi
addq $-0x130, %rdi           # imm = 0xFED0
callq 0x20f0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2d33
pushq $0x20
popq %rbx
leaq (%rbx,%rbp), %rdi
addq $-0x70, %rdi
callq 0x20f0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2d50
movl $0x100, %ebx            # imm = 0x100
leaq (%rbx,%rbp), %rdi
addq $-0x390, %rdi           # imm = 0xFC70
callq 0x20f0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2d6c
movl %r14d, %eax
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
xorl %ecx, %ecx
leaq 0x20(%rcx), %r15
cmpq $0x160, %r15            # imm = 0x160
setne %r14b
je 0x2d0f
leaq (%rcx,%rbp), %rsi
addq $-0x270, %rsi           # imm = 0xFD90
movq %rbx, %rdi
callq 0x2040
movq %r15, %rcx
testl %eax, %eax
jne 0x2d99
jmp 0x2d0f
jmp 0x2ddd
jmp 0x2ddd
jmp 0x2ddd
jmp 0x2ddd
jmp 0x2ddd
jmp 0x2ddd
jmp 0x2ddd
jmp 0x2ddd
movq %rax, %rbx
addq $-0x20, %r15
movq %r15, %rdi
callq 0x20f0
cmpq %r14, %r15
jne 0x2de0
jmp 0x2eaa
movq %rax, %rbx
jmp 0x2eaa
jmp 0x2e04
jmp 0x2e04
jmp 0x2e04
movq %rax, %rbx
addq $-0x20, %r15
movq %r15, %rdi
callq 0x20f0
cmpq %r14, %r15
jne 0x2e07
jmp 0x2eca
movq %rax, %rbx
jmp 0x2eca
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x20f0
jmp 0x2ee5
movq %rax, %rbx
jmp 0x2ee5
jmp 0x2e4c
jmp 0x2e4c
jmp 0x2e4c
jmp 0x2e4c
jmp 0x2e4c
jmp 0x2e4c
jmp 0x2e4c
movq %rax, %rbx
addq $-0x20, %r15
movq %r15, %rdi
callq 0x20f0
cmpq %r14, %r15
jne 0x2e4f
jmp 0x2f05
movq %rax, %rbx
jmp 0x2f05
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x20f0
jmp 0x2f05
jmp 0x2e87
jmp 0x2e87
jmp 0x2e87
movq %rax, %rbx
movl $0x120, %r14d           # imm = 0x120
leaq (%r14,%rbp), %rdi
addq $-0x270, %rdi           # imm = 0xFD90
callq 0x20f0
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x2e90
movl $0x80, %r14d
leaq (%r14,%rbp), %rdi
addq $-0x130, %rdi           # imm = 0xFED0
callq 0x20f0
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x2eb0
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x70, %rdi
callq 0x20f0
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x2ece
movl $0x100, %r14d           # imm = 0x100
leaq (%r14,%rbp), %rdi
addq $-0x390, %rdi           # imm = 0xFC70
callq 0x20f0
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x2eeb
movq %rbx, %rdi
callq 0x2310