// File: mbottini[P]CS250lab2/main.cpp
// Function: isOperator(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool isOperator(const string& s) {
    string validOperators[] = {"!", "v", "^", "->", "<->", "XOR"};

    for(int i = 0; i < 6; i++) {
        if(s == validOperators[i]) {
            return true;
        }
    }

    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x10(%rbp)
movb $0x1, -0xf2(%rbp)
leaq -0xd0(%rbp), %rax
movq %rax, -0x110(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x22d0
movq -0x110(%rbp), %rdi
movq -0x108(%rbp), %rdx
leaq 0x7c29(%rip), %rsi      # 0xc03c
callq 0x2230
jmp 0x441a
leaq -0xb0(%rbp), %rax
movq %rax, -0x120(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0xed(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x22d0
movq -0x120(%rbp), %rdi
movq -0x118(%rbp), %rdx
leaq 0x7c5f(%rip), %rsi      # 0xc0b6
callq 0x2230
jmp 0x445e
leaq -0x90(%rbp), %rax
movq %rax, -0x130(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0xee(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x22d0
movq -0x130(%rbp), %rdi
movq -0x128(%rbp), %rdx
leaq 0x7c1d(%rip), %rsi      # 0xc0b8
callq 0x2230
jmp 0x44a2
leaq -0x70(%rbp), %rax
movq %rax, -0x140(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0xef(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x22d0
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rdx
leaq 0x7bd7(%rip), %rsi      # 0xc0b3
callq 0x2230
jmp 0x44e3
leaq -0x50(%rbp), %rax
movq %rax, -0x150(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x22d0
movq -0x150(%rbp), %rdi
movq -0x148(%rbp), %rdx
leaq 0x7b95(%rip), %rsi      # 0xc0b2
callq 0x2230
jmp 0x4524
leaq -0x30(%rbp), %rax
movq %rax, -0x160(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x22d0
movq -0x160(%rbp), %rdi
movq -0x158(%rbp), %rdx
leaq 0x7b50(%rip), %rsi      # 0xc0ae
callq 0x2230
jmp 0x4565
movb $0x0, -0xf2(%rbp)
leaq -0xf1(%rbp), %rdi
callq 0x21d0
leaq -0xf0(%rbp), %rdi
callq 0x21d0
leaq -0xef(%rbp), %rdi
callq 0x21d0
leaq -0xee(%rbp), %rdi
callq 0x21d0
leaq -0xed(%rbp), %rdi
callq 0x21d0
leaq -0xd9(%rbp), %rdi
callq 0x21d0
movl $0x0, -0xf8(%rbp)
cmpl $0x6, -0xf8(%rbp)
jge 0x4736
movq -0x10(%rbp), %rdi
movslq -0xf8(%rbp), %rax
leaq -0xd0(%rbp), %rsi
shlq $0x5, %rax
addq %rax, %rsi
callq 0x5210
testb $0x1, %al
jne 0x45f2
jmp 0x4720
movb $0x1, -0x1(%rbp)
movl $0x1, -0xfc(%rbp)
jmp 0x4744
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x46ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x46ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x46a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x4696
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x468a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0xf1(%rbp), %rdi
callq 0x21d0
leaq -0xf0(%rbp), %rdi
callq 0x21d0
leaq -0xef(%rbp), %rdi
callq 0x21d0
leaq -0xee(%rbp), %rdi
callq 0x21d0
leaq -0xed(%rbp), %rdi
callq 0x21d0
leaq -0xd9(%rbp), %rdi
callq 0x21d0
testb $0x1, -0xf2(%rbp)
jne 0x46d1
jmp 0x471e
movq -0xd8(%rbp), %rax
leaq -0xd0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x168(%rbp)
je 0x471c
movq -0x168(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x170(%rbp)
callq 0x2100
movq -0x170(%rbp), %rax
leaq -0xd0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x168(%rbp)
jne 0x46eb
jmp 0x471e
jmp 0x479e
jmp 0x4722
movl -0xf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf8(%rbp)
jmp 0x45be
movb $0x0, -0x1(%rbp)
movl $0x1, -0xfc(%rbp)
leaq -0xd0(%rbp), %rax
movq %rax, -0x180(%rbp)
addq $0xc0, %rax
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x188(%rbp)
callq 0x2100
movq -0x180(%rbp), %rcx
movq -0x188(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x178(%rbp)
jne 0x475f
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq -0xe8(%rbp), %rdi
callq 0x22c0
nopw (%rax,%rax)