// File: /workspace/github_cpp_makefile_star2_O3/jliesch[P]ofxget/pugixml/pugixml.cpp
// Function: pugi::impl::(anonymous namespace)::xpath_parser::binary_op_t::parse(pugi::impl::(anonymous namespace)::xpath_lexer&)
static binary_op_t parse(xpath_lexer& lexer)
			{
				switch (lexer.current())
				{
				case lex_string:
					if (lexer.contents() == PUGIXML_TEXT("or"))
						return binary_op_t(ast_op_or, xpath_type_boolean, 1);
					else if (lexer.contents() == PUGIXML_TEXT("and"))
						return binary_op_t(ast_op_and, xpath_type_boolean, 2);
					else if (lexer.contents() == PUGIXML_TEXT("div"))
						return binary_op_t(ast_op_divide, xpath_type_number, 6);
					else if (lexer.contents() == PUGIXML_TEXT("mod"))
						return binary_op_t(ast_op_mod, xpath_type_number, 6);
					else
						return binary_op_t();

				case lex_equal:
					return binary_op_t(ast_op_equal, xpath_type_boolean, 3);

				case lex_not_equal:
					return binary_op_t(ast_op_not_equal, xpath_type_boolean, 3);

				case lex_less:
					return binary_op_t(ast_op_less, xpath_type_boolean, 4);

				case lex_greater:
					return binary_op_t(ast_op_greater, xpath_type_boolean, 4);

				case lex_less_or_equal:
					return binary_op_t(ast_op_less_or_equal, xpath_type_boolean, 4);

				case lex_greater_or_equal:
					return binary_op_t(ast_op_greater_or_equal, xpath_type_boolean, 4);

				case lex_plus:
					return binary_op_t(ast_op_add, xpath_type_number, 5);

				case lex_minus:
					return binary_op_t(ast_op_subtract, xpath_type_number, 5);

				case lex_multiply:
					return binary_op_t(ast_op_multiply, xpath_type_number, 6);

				case lex_union:
					return binary_op_t(ast_op_union, xpath_type_node_set, 7);

				default:
					return binary_op_t();
				}
			}

// Assembly:
movl 0x20(%rdi), %ecx
decl %ecx
cmpl $0x13, %ecx
ja 0x2c90a
movabsq $0x400000000, %rax      # imm = 0x400000000
movl $0x3, %edx
leaq 0x539a(%rip), %rsi      # 0x31bb8
movslq (%rsi,%rcx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
movl $0x3, %ecx
jmp 0x2c977
movq 0x10(%rdi), %rdx
movq 0x18(%rdi), %rsi
movq %rsi, %rcx
subq %rdx, %rcx
je 0x2c85c
xorl %edi, %edi
leaq 0x75be(%rip), %r8       # 0x33e08
movb (%rdi,%r8), %r9b
cmpb (%rdx,%rdi), %r9b
jne 0x2c86d
incq %rdi
cmpq %rdi, %rcx
jne 0x2c84a
leaq 0x75a5(%rip), %rdi      # 0x33e08
cmpb $0x0, (%rcx,%rdi)
je 0x2c97b
cmpq %rdx, %rsi
je 0x2c88d
xorl %edi, %edi
leaq 0x43a8(%rip), %r8       # 0x30c23
movb (%rdi,%r8), %r9b
cmpb (%rdx,%rdi), %r9b
jne 0x2c89e
incq %rdi
cmpq %rdi, %rcx
jne 0x2c87b
leaq 0x438f(%rip), %rdi      # 0x30c23
cmpb $0x0, (%rcx,%rdi)
je 0x2c987
movabsq $0x200000000, %rax      # imm = 0x200000000
cmpq %rdx, %rsi
je 0x2c8c8
xorl %edi, %edi
leaq 0x77ea(%rip), %r8       # 0x340a0
movb (%rdi,%r8), %r9b
cmpb (%rdx,%rdi), %r9b
jne 0x2c8d9
incq %rdi
cmpq %rdi, %rcx
jne 0x2c8b6
leaq 0x77d1(%rip), %rdi      # 0x340a0
cmpb $0x0, (%rcx,%rdi)
je 0x2c993
cmpq %rdx, %rsi
je 0x2c8f9
xorl %esi, %esi
leaq 0x77bd(%rip), %rdi      # 0x340a4
movb (%rsi,%rdi), %r8b
cmpb (%rdx,%rsi), %r8b
jne 0x2c90a
incq %rsi
cmpq %rsi, %rcx
jne 0x2c8e7
leaq 0x77a4(%rip), %rdx      # 0x340a4
cmpb $0x0, (%rcx,%rdx)
je 0x2c99a
xorl %edx, %edx
xorl %eax, %eax
xorl %ecx, %ecx
jmp 0x2c977
movl $0x7, %ecx
jmp 0x2c92c
movl $0x8, %ecx
jmp 0x2c92c
movl $0x6, %ecx
jmp 0x2c92c
movl $0x5, %ecx
movl $0x4, %edx
jmp 0x2c977
movl $0x4, %ecx
jmp 0x2c977
movl $0x9, %ecx
jmp 0x2c946
movl $0xa, %ecx
movl $0x5, %edx
jmp 0x2c96d
movl $0xf, %ecx
movabsq $0x100000000, %rax      # imm = 0x100000000
movl $0x7, %edx
jmp 0x2c977
movl $0xb, %ecx
movl $0x6, %edx
movabsq $0x200000000, %rax      # imm = 0x200000000
orq %rcx, %rax
retq
movl $0x1, %ecx
movl $0x1, %edx
jmp 0x2c977
movl $0x2, %ecx
movl $0x2, %edx
jmp 0x2c977
movl $0xc, %ecx
jmp 0x2c99f
movl $0xd, %ecx
movl $0x6, %edx
jmp 0x2c977