// File: 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
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x3270
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x31d0
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x3270
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq 0x27e16(%rip), %rcx     # 0x36fe0
callq 0x116b0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x1a28b(%rip), %rsi     # 0x29469
callq 0x85b0
testb $0x1, %al
jne 0xf1e9
jmp 0xf1f5
movl $0x1, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a26f(%rip), %rsi     # 0x2946f
callq 0x85b0
testb $0x1, %al
jne 0xf20b
jmp 0xf217
movl $0x2, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a253(%rip), %rsi     # 0x29475
callq 0x85b0
testb $0x1, %al
jne 0xf22d
jmp 0xf239
movl $0x3, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a237(%rip), %rsi     # 0x2947b
callq 0x85b0
testb $0x1, %al
jne 0xf24f
jmp 0xf25b
movl $0x4, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a21b(%rip), %rsi     # 0x29481
callq 0x85b0
testb $0x1, %al
jne 0xf271
jmp 0xf27d
movl $0x5, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a1ff(%rip), %rsi     # 0x29487
callq 0x85b0
testb $0x1, %al
jne 0xf293
jmp 0xf29f
movl $0x6, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a1e3(%rip), %rsi     # 0x2948d
callq 0x85b0
testb $0x1, %al
jne 0xf2b5
jmp 0xf2c1
movl $0x7, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a1c7(%rip), %rsi     # 0x29493
callq 0x85b0
testb $0x1, %al
jne 0xf2d7
jmp 0xf2e3
movl $0x8, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a1ab(%rip), %rsi     # 0x29499
callq 0x85b0
testb $0x1, %al
jne 0xf2f9
jmp 0xf305
movl $0x9, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a18f(%rip), %rsi     # 0x2949f
callq 0x85b0
testb $0x1, %al
jne 0xf31b
jmp 0xf327
movl $0xa, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a173(%rip), %rsi     # 0x294a5
callq 0x85b0
testb $0x1, %al
jne 0xf33d
jmp 0xf349
movl $0xb, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a157(%rip), %rsi     # 0x294ab
callq 0x85b0
testb $0x1, %al
jne 0xf35f
jmp 0xf36b
movl $0xc, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a13b(%rip), %rsi     # 0x294b1
callq 0x85b0
testb $0x1, %al
jne 0xf381
jmp 0xf38d
movl $0xd, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a11f(%rip), %rsi     # 0x294b7
callq 0x85b0
testb $0x1, %al
jne 0xf3a3
jmp 0xf3af
movl $0xe, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a103(%rip), %rsi     # 0x294bd
callq 0x85b0
testb $0x1, %al
jne 0xf3c5
jmp 0xf3d1
movl $0xf, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a0e7(%rip), %rsi     # 0x294c3
callq 0x85b0
testb $0x1, %al
jne 0xf3e7
jmp 0xf3f3
movl $0x10, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a0cb(%rip), %rsi     # 0x294c9
callq 0x85b0
testb $0x1, %al
jne 0xf409
jmp 0xf415
movl $0x11, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a0af(%rip), %rsi     # 0x294cf
callq 0x85b0
testb $0x1, %al
jne 0xf42b
jmp 0xf437
movl $0x12, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a093(%rip), %rsi     # 0x294d5
callq 0x85b0
testb $0x1, %al
jne 0xf44d
jmp 0xf459
movl $0x13, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a077(%rip), %rsi     # 0x294db
callq 0x85b0
testb $0x1, %al
jne 0xf46f
jmp 0xf47b
movl $0x14, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a05b(%rip), %rsi     # 0x294e1
callq 0x85b0
testb $0x1, %al
jne 0xf491
jmp 0xf49d
movl $0x15, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a03f(%rip), %rsi     # 0x294e7
callq 0x85b0
testb $0x1, %al
jne 0xf4b3
jmp 0xf4bf
movl $0x16, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a023(%rip), %rsi     # 0x294ed
callq 0x85b0
testb $0x1, %al
jne 0xf4d5
jmp 0xf4e1
movl $0x17, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x1a007(%rip), %rsi     # 0x294f3
callq 0x85b0
testb $0x1, %al
jne 0xf4f7
jmp 0xf503
movl $0x18, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x19feb(%rip), %rsi     # 0x294f9
callq 0x85b0
testb $0x1, %al
jne 0xf519
jmp 0xf522
movl $0x19, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x19fd2(%rip), %rsi     # 0x294ff
callq 0x85b0
testb $0x1, %al
jne 0xf538
jmp 0xf541
movl $0x1a, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x19fb9(%rip), %rsi     # 0x29505
callq 0x85b0
testb $0x1, %al
jne 0xf557
jmp 0xf560
movl $0x1b, -0x4(%rbp)
jmp 0xf586
movq -0x18(%rbp), %rdi
leaq 0x19fa0(%rip), %rsi     # 0x2950b
callq 0x85b0
testb $0x1, %al
jne 0xf576
jmp 0xf57f
movl $0x1c, -0x4(%rbp)
jmp 0xf586
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nop