// File: /workspace/github_cpp_makefile_star2_O3/BlinfoldKing[P]lisval/src/lib/parser.cpp
// Function: stringToBinaryOperator(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
BinaryOperatorType stringToBinaryOperator(string s) {
	map<string, BinaryOperatorType> valid_operator;
	valid_operator["+"] = BinaryOperatorType::PLUS;
	valid_operator["-"] = BinaryOperatorType::MINUS;
	valid_operator["/"] = BinaryOperatorType::DIV;
	valid_operator["*"] = BinaryOperatorType::TIMES;
	valid_operator["and"] = BinaryOperatorType::AND;
	valid_operator["or"] = BinaryOperatorType::OR;
	valid_operator["def"] = BinaryOperatorType::DEF;
	valid_operator["="] = BinaryOperatorType::EQ;

	return valid_operator[s];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x50, %rsp
movq %rdi, %rbx
leaq -0x58(%rbp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq -0x20(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x4a4c(%rip), %rsi      # 0xf4f0
leaq 0x4a46(%rip), %rdx      # 0xf4f1
leaq -0x30(%rbp), %rdi
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x1, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xaadc
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4a08(%rip), %rsi      # 0xf4f2
leaq 0x4a02(%rip), %rdx      # 0xf4f3
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x0, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xab1e
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x49c8(%rip), %rsi      # 0xf4f4
leaq 0x49c2(%rip), %rdx      # 0xf4f5
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x3, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xab60
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4988(%rip), %rsi      # 0xf4f6
leaq 0x4982(%rip), %rdx      # 0xf4f7
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x2, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xaba2
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4948(%rip), %rsi      # 0xf4f8
leaq 0x4944(%rip), %rdx      # 0xf4fb
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x5, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xabe4
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x490a(%rip), %rsi      # 0xf4fc
leaq 0x4905(%rip), %rdx      # 0xf4fe
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x6, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xac26
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x48cb(%rip), %rsi      # 0xf4ff
leaq 0x48c7(%rip), %rdx      # 0xf502
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x4, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xac68
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x488d(%rip), %rsi      # 0xf503
leaq 0x4887(%rip), %rdx      # 0xf504
callq 0x3bb0
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc5ec
movl $0x7, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xacaa
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x60(%rbp), %rdi
movq %rbx, %rsi
callq 0xc66c
movl (%rax), %ebx
leaq -0x60(%rbp), %rdi
callq 0xcacc
movl %ebx, %eax
addq $0x50, %rsp
popq %rbx
popq %r14
popq %rbp
retq
jmp 0xad04
jmp 0xacea
jmp 0xad04
jmp 0xacea
jmp 0xad04
jmp 0xacea
jmp 0xad04
jmp 0xacea
jmp 0xad04
jmp 0xacea
jmp 0xad04
jmp 0xacea
jmp 0xad04
jmp 0xacea
jmp 0xad04
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xad07
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
jmp 0xad07
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xcacc
movq %rbx, %rdi
callq 0x32e0