// File: /workspace/github_cpp_makefile_star2_O3/Doug0855[P]TigerZone/Adapter.cpp
// Function: Adapter::exprToTile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
int Adapter::exprToTile(std::string &expr)
{
	transform(expr.begin(), expr.end(), expr.begin(), toupper);
	if (expr == "JJJJ-")
	{
		return 1;
	}
	if (expr == "JJJJX")
	{
		return 2;
	}
	if (expr == "JJTJX")
	{
		return 3;
	}
	if (expr == "TTTT-")
	{
		return 4;
	}
	if (expr == "TJTJ-")
	{
		return 5;
	}
	if (expr == "TJJT-")
	{
		return 6;
	}
	if (expr == "TJTT-")
	{
		return 7;
	}
	if (expr == "LLLL-")
	{
		return 8;
	}
	if (expr == "JLLL-")
	{
		return 9;
	}
	if (expr == "LLJJ-")
	{
		return 10;
	}
	if (expr == "JLJL-")
	{
		return 11;
	}
	if (expr == "LJLJ-")
	{
		return 12;
	}
	if (expr == "LJJJ-")
	{
		return 13;
	}
	if (expr == "JLLJ-")
	{
		return 14;
	}
	if (expr == "TLJT-")
	{
		return 15;
	}
	if (expr == "TLJTP")
	{
		return 16;
	}
	if (expr == "JLTT-")
	{
		return 17;
	}
	if (expr == "JLTTB")
	{
		return 18;
	}
	if (expr == "TLTJ-")
	{
		return 19;
	}
	if (expr == "TLTJD")
	{
		return 20;
	}
	if (expr == "TLLL-")
	{
		return 21;
	}
	if (expr == "TLTT-")
	{
		return 22;
	}
	if (expr == "TLTTP")
	{
		return 23;
	}
	if (expr == "TLLT-")
	{
		return 24;
	}
	if (expr == "TLLTB")
	{
		return 25;
	}
	if (expr == "LJTJ-")
	{
		return 26;
	}
	if (expr == "LJTJD")
	{
		return 27;
	}
	if (expr == "TLLLC")
	{
		return 28;
	}
	return -1;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq 0x8(%rsi), %r14
testq %r14, %r14
je 0xa4f7
movq (%rbx), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x3410
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %r14
jne 0xa4e1
leaq 0xdfab(%rip), %rsi      # 0x184a9
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa783
leaq 0xdf9a(%rip), %rsi      # 0x184af
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa78d
leaq 0xdf89(%rip), %rsi      # 0x184b5
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa797
leaq 0xdf78(%rip), %rsi      # 0x184bb
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7a1
leaq 0xdf67(%rip), %rsi      # 0x184c1
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7ab
leaq 0xdf56(%rip), %rsi      # 0x184c7
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7b5
leaq 0xdf45(%rip), %rsi      # 0x184cd
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7bf
leaq 0xdf34(%rip), %rsi      # 0x184d3
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7c9
leaq 0xdf23(%rip), %rsi      # 0x184d9
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7d3
leaq 0xdf12(%rip), %rsi      # 0x184df
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7da
leaq 0xdf01(%rip), %rsi      # 0x184e5
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7e1
leaq 0xdef0(%rip), %rsi      # 0x184eb
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7e8
leaq 0xdedf(%rip), %rsi      # 0x184f1
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7ef
leaq 0xdece(%rip), %rsi      # 0x184f7
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7f6
leaq 0xdebd(%rip), %rsi      # 0x184fd
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa7fd
leaq 0xdeac(%rip), %rsi      # 0x18503
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa804
leaq 0xde9b(%rip), %rsi      # 0x18509
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa80b
leaq 0xde8a(%rip), %rsi      # 0x1850f
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa812
leaq 0xde79(%rip), %rsi      # 0x18515
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa819
leaq 0xde68(%rip), %rsi      # 0x1851b
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa820
leaq 0xde57(%rip), %rsi      # 0x18521
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa827
leaq 0xde46(%rip), %rsi      # 0x18527
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa82e
leaq 0xde35(%rip), %rsi      # 0x1852d
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa835
leaq 0xde24(%rip), %rsi      # 0x18533
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa83c
leaq 0xde13(%rip), %rsi      # 0x18539
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa843
leaq 0xde02(%rip), %rsi      # 0x1853f
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa84a
leaq 0xddf1(%rip), %rsi      # 0x18545
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xa851
leaq 0xdde0(%rip), %rsi      # 0x1854b
movq %rbx, %rdi
callq 0x30b0
movl %eax, %ecx
xorl %eax, %eax
negl %ecx
sbbl %eax, %eax
orl $0x1c, %eax
jmp 0xa856
movl $0x1, %eax
jmp 0xa856
movl $0x2, %eax
jmp 0xa856
movl $0x3, %eax
jmp 0xa856
movl $0x4, %eax
jmp 0xa856
movl $0x5, %eax
jmp 0xa856
movl $0x6, %eax
jmp 0xa856
movl $0x7, %eax
jmp 0xa856
movl $0x8, %eax
jmp 0xa856
movl $0x9, %eax
jmp 0xa856
movl $0xa, %eax
jmp 0xa856
movl $0xb, %eax
jmp 0xa856
movl $0xc, %eax
jmp 0xa856
movl $0xd, %eax
jmp 0xa856
movl $0xe, %eax
jmp 0xa856
movl $0xf, %eax
jmp 0xa856
movl $0x10, %eax
jmp 0xa856
movl $0x11, %eax
jmp 0xa856
movl $0x12, %eax
jmp 0xa856
movl $0x13, %eax
jmp 0xa856
movl $0x14, %eax
jmp 0xa856
movl $0x15, %eax
jmp 0xa856
movl $0x16, %eax
jmp 0xa856
movl $0x17, %eax
jmp 0xa856
movl $0x18, %eax
jmp 0xa856
movl $0x19, %eax
jmp 0xa856
movl $0x1a, %eax
jmp 0xa856
movl $0x1b, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop