// File: /workspace/github_cpp_makefile_star2_O1/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 0x49d0(%rip), %rsi      # 0xf528
leaq 0x49ca(%rip), %rdx      # 0xf529
leaq -0x30(%rbp), %rdi
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x1, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xab90
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x498c(%rip), %rsi      # 0xf52a
leaq 0x4986(%rip), %rdx      # 0xf52b
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x0, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xabd2
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x494c(%rip), %rsi      # 0xf52c
leaq 0x4946(%rip), %rdx      # 0xf52d
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x3, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xac14
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x490c(%rip), %rsi      # 0xf52e
leaq 0x4906(%rip), %rdx      # 0xf52f
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x2, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xac56
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x48cc(%rip), %rsi      # 0xf530
leaq 0x48c8(%rip), %rdx      # 0xf533
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x5, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xac98
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x488e(%rip), %rsi      # 0xf534
leaq 0x4889(%rip), %rdx      # 0xf536
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x6, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xacda
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x484f(%rip), %rsi      # 0xf537
leaq 0x484b(%rip), %rdx      # 0xf53a
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x4, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xad1c
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4811(%rip), %rsi      # 0xf53b
leaq 0x480b(%rip), %rdx      # 0xf53c
callq 0x3ba8
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xc6c2
movl $0x7, (%rax)
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xad5e
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
leaq -0x60(%rbp), %rdi
movq %rbx, %rsi
callq 0xc742
movl (%rax), %ebx
leaq -0x60(%rbp), %rdi
callq 0xcba2
movl %ebx, %eax
addq $0x50, %rsp
popq %rbx
popq %r14
popq %rbp
retq
jmp 0xadb8
jmp 0xad9e
jmp 0xadb8
jmp 0xad9e
jmp 0xadb8
jmp 0xad9e
jmp 0xadb8
jmp 0xad9e
jmp 0xadb8
jmp 0xad9e
jmp 0xadb8
jmp 0xad9e
jmp 0xadb8
jmp 0xad9e
jmp 0xadb8
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0xadbb
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x31c0
jmp 0xadbb
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xcba2
movq %rbx, %rdi
callq 0x32e0