// File: jliesch[P]ofxget/pugixml/pugixml.cpp
// Function: pugi::impl::(anonymous namespace)::get_strconv_attribute(unsigned int)
PUGI__FN strconv_attribute_t get_strconv_attribute(unsigned int optmask)
	{
		PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_wconv_attribute == 0x40 && parse_wnorm_attribute == 0x80);

		switch ((optmask >> 4) & 15) // get bitmask for flags (wconv wnorm eol escapes)
		{
		case 0:  return strconv_attribute_impl<opt_false>::parse_simple;
		case 1:  return strconv_attribute_impl<opt_true>::parse_simple;
		case 2:  return strconv_attribute_impl<opt_false>::parse_eol;
		case 3:  return strconv_attribute_impl<opt_true>::parse_eol;
		case 4:  return strconv_attribute_impl<opt_false>::parse_wconv;
		case 5:  return strconv_attribute_impl<opt_true>::parse_wconv;
		case 6:  return strconv_attribute_impl<opt_false>::parse_wconv;
		case 7:  return strconv_attribute_impl<opt_true>::parse_wconv;
		case 8:  return strconv_attribute_impl<opt_false>::parse_wnorm;
		case 9:  return strconv_attribute_impl<opt_true>::parse_wnorm;
		case 10: return strconv_attribute_impl<opt_false>::parse_wnorm;
		case 11: return strconv_attribute_impl<opt_true>::parse_wnorm;
		case 12: return strconv_attribute_impl<opt_false>::parse_wnorm;
		case 13: return strconv_attribute_impl<opt_true>::parse_wnorm;
		case 14: return strconv_attribute_impl<opt_false>::parse_wnorm;
		case 15: return strconv_attribute_impl<opt_true>::parse_wnorm;
		default: assert(false); return 0; // unreachable
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0xc(%rbp)
movl -0xc(%rbp), %eax
shrl $0x4, %eax
andl $0xf, %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0xf, %eax
ja 0x52dff
movq -0x18(%rbp), %rax
leaq 0x17e92(%rip), %rcx     # 0x6aba0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xf42(%rip), %rax       # 0x53c60
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x10b2(%rip), %rax      # 0x53de0
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1242(%rip), %rax      # 0x53f80
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x13f2(%rip), %rax      # 0x54140
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x15c2(%rip), %rax      # 0x54320
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x17a2(%rip), %rax      # 0x54510
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x15a2(%rip), %rax      # 0x54320
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1782(%rip), %rax      # 0x54510
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1982(%rip), %rax      # 0x54720
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1c25(%rip), %rax      # 0x549d0
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1968(%rip), %rax      # 0x54720
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1c0b(%rip), %rax      # 0x549d0
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x194e(%rip), %rax      # 0x54720
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1bf1(%rip), %rax      # 0x549d0
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1934(%rip), %rax      # 0x54720
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x1bd7(%rip), %rax      # 0x549d0
movq %rax, -0x8(%rbp)
jmp 0x52e1e
leaq 0x19ab2(%rip), %rdi     # 0x6c8b8
leaq 0x18548(%rip), %rsi     # 0x6b355
movl $0xb53, %edx            # imm = 0xB53
leaq 0x19aa5(%rip), %rcx     # 0x6c8be
callq 0x7180
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)