// File: 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
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x198(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x18940
leaq -0x59(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x34a0
movq -0x190(%rbp), %rdx
leaq 0xd848(%rip), %rsi      # 0x23575
leaq -0x58(%rbp), %rdi
callq 0x33b0
jmp 0x15d38
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x18960
movq %rax, -0x1a0(%rbp)
jmp 0x15d4e
movq -0x1a0(%rbp), %rax
movl $0x1, (%rax)
leaq -0x58(%rbp), %rdi
callq 0x31c0
leaq -0x59(%rbp), %rdi
callq 0x3300
leaq -0x91(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x34a0
movq -0x1a8(%rbp), %rdx
leaq 0xd7e9(%rip), %rsi      # 0x23577
leaq -0x90(%rbp), %rdi
callq 0x33b0
jmp 0x15d9c
leaq -0x38(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x18960
movq %rax, -0x1b0(%rbp)
jmp 0x15db5
movq -0x1b0(%rbp), %rax
movl $0x0, (%rax)
leaq -0x90(%rbp), %rdi
callq 0x31c0
leaq -0x91(%rbp), %rdi
callq 0x3300
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x34a0
movq -0x1b8(%rbp), %rdx
leaq 0xd77e(%rip), %rsi      # 0x23579
leaq -0xb8(%rbp), %rdi
callq 0x33b0
jmp 0x15e09
leaq -0x38(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x18960
movq %rax, -0x1c0(%rbp)
jmp 0x15e22
movq -0x1c0(%rbp), %rax
movl $0x3, (%rax)
leaq -0xb8(%rbp), %rdi
callq 0x31c0
leaq -0xb9(%rbp), %rdi
callq 0x3300
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x34a0
movq -0x1c8(%rbp), %rdx
leaq 0xd713(%rip), %rsi      # 0x2357b
leaq -0xe0(%rbp), %rdi
callq 0x33b0
jmp 0x15e76
leaq -0x38(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x18960
movq %rax, -0x1d0(%rbp)
jmp 0x15e8f
movq -0x1d0(%rbp), %rax
movl $0x2, (%rax)
leaq -0xe0(%rbp), %rdi
callq 0x31c0
leaq -0xe1(%rbp), %rdi
callq 0x3300
leaq -0x109(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x34a0
movq -0x1d8(%rbp), %rdx
leaq 0xd6a8(%rip), %rsi      # 0x2357d
leaq -0x108(%rbp), %rdi
callq 0x33b0
jmp 0x15ee3
leaq -0x38(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x18960
movq %rax, -0x1e0(%rbp)
jmp 0x15efc
movq -0x1e0(%rbp), %rax
movl $0x5, (%rax)
leaq -0x108(%rbp), %rdi
callq 0x31c0
leaq -0x109(%rbp), %rdi
callq 0x3300
leaq -0x131(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x34a0
movq -0x1e8(%rbp), %rdx
leaq 0xd63f(%rip), %rsi      # 0x23581
leaq -0x130(%rbp), %rdi
callq 0x33b0
jmp 0x15f50
leaq -0x38(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x18960
movq %rax, -0x1f0(%rbp)
jmp 0x15f69
movq -0x1f0(%rbp), %rax
movl $0x6, (%rax)
leaq -0x130(%rbp), %rdi
callq 0x31c0
leaq -0x131(%rbp), %rdi
callq 0x3300
leaq -0x159(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x34a0
movq -0x1f8(%rbp), %rdx
leaq 0xd5d5(%rip), %rsi      # 0x23584
leaq -0x158(%rbp), %rdi
callq 0x33b0
jmp 0x15fbd
leaq -0x38(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x18960
movq %rax, -0x200(%rbp)
jmp 0x15fd6
movq -0x200(%rbp), %rax
movl $0x4, (%rax)
leaq -0x158(%rbp), %rdi
callq 0x31c0
leaq -0x159(%rbp), %rdi
callq 0x3300
leaq -0x181(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x34a0
movq -0x208(%rbp), %rdx
leaq 0xd56c(%rip), %rsi      # 0x23588
leaq -0x180(%rbp), %rdi
callq 0x33b0
jmp 0x1602a
leaq -0x38(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x18960
movq %rax, -0x210(%rbp)
jmp 0x16043
movq -0x210(%rbp), %rax
movl $0x7, (%rax)
leaq -0x180(%rbp), %rdi
callq 0x31c0
leaq -0x181(%rbp), %rdi
callq 0x3300
movq -0x198(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x18a40
movq %rax, -0x218(%rbp)
jmp 0x16081
movq -0x218(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x21c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x18b20
movl -0x21c(%rbp), %eax
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x160cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x31c0
leaq -0x59(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x160ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x31c0
leaq -0x91(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x16136
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x31c0
leaq -0xb9(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1616d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x31c0
leaq -0xe1(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x161a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x31c0
leaq -0x109(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x161db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x31c0
leaq -0x131(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1620f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x31c0
leaq -0x159(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x16243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x31c0
leaq -0x181(%rbp), %rdi
callq 0x3300
jmp 0x1625d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x18b20
movq -0x68(%rbp), %rdi
callq 0x3490
nop