// File: /workspace/github_cpp_makefile_star2_O2/Doug0855[P]TigerZone/Adapter.cpp
// Function: Adapter::translate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
values_t Adapter::translate(std::string message)
{
	values_t output;
	if (message.compare(0,8,"STARTING") == 0) //STARTING TILE IS <tile> AT <x> <y> <orientation>
	{
		return parseStartingTile(message);
	}
	if (message.compare(0,3,"THE") == 0) //THE REMAINING <number_tiles> TILES ARE [ <tiles> ]
	{
	  return parseTileStack(message);
	}
	if (message.compare(0,5,"MATCH") == 0) // MATCH BEGINS IN <timeplan> SECONDS
	{
	  return parseMatch(message);
	}
	if (message.compare(0,4,"MAKE") == 0) // MAKE YOUR MOVE IN GAME <gid> WITHIN <timemove> SECOND: MOVE <#> PLACE <tile>
	{
	  return parseMakeMove(message);
	}
	if (message.compare(0,4,"GAME") == 0) // INITIAL ACCESS TO A GAME MESSAGE
	{
	  return parseGameMove(message);
	}
	return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x150, %rsp            # imm = 0x150
leaq -0x110(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, -0x28(%rax)
movups %xmm0, -0x38(%rax)
andq $0x0, -0x18(%rax)
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq -0xf0(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movq %rdx, %r14
movq %rdi, %rbx
movb %cl, (%rax)
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
andl $0x0, 0x14(%rax)
leaq 0xa234(%rip), %rcx      # 0x12533
pushq $0x8
popq %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x32b0
testl %eax, %eax
je 0x8398
leaq 0xa221(%rip), %rcx      # 0x1253c
pushq $0x3
popq %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x32b0
testl %eax, %eax
je 0x83bf
leaq 0x9ef7(%rip), %rcx      # 0x1222e
pushq $0x5
popq %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x32b0
testl %eax, %eax
je 0x83dd
leaq 0xa1ed(%rip), %rcx      # 0x12540
pushq $0x4
popq %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x32b0
testl %eax, %eax
je 0x83fd
leaq 0xa1d6(%rip), %rcx      # 0x12545
pushq $0x4
popq %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x32b0
testl %eax, %eax
je 0x841b
leaq -0x160(%rbp), %rsi
movq %rbx, %rdi
callq 0x9068
jmp 0x843c
leaq -0x90(%rbp), %rdi
movq %r14, %rsi
callq 0x32c0
leaq -0x90(%rbp), %rdx
movq %rbx, %rdi
callq 0x84a6
leaq -0x90(%rbp), %rdi
jmp 0x8437
leaq -0x70(%rbp), %rdi
movq %r14, %rsi
callq 0x32c0
leaq -0x70(%rbp), %rdx
movq %rbx, %rdi
callq 0x86fa
leaq -0x70(%rbp), %rdi
jmp 0x8437
leaq -0xb0(%rbp), %rdi
movq %r14, %rsi
callq 0x32c0
movq %rbx, %rdi
callq 0x900c
leaq -0xb0(%rbp), %rdi
jmp 0x8437
leaq -0x50(%rbp), %rdi
movq %r14, %rsi
callq 0x32c0
leaq -0x50(%rbp), %rdx
movq %rbx, %rdi
callq 0x8912
leaq -0x50(%rbp), %rdi
jmp 0x8437
leaq -0x30(%rbp), %rdi
movq %r14, %rsi
callq 0x32c0
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq 0x8b22
leaq -0x30(%rbp), %rdi
callq 0x3120
leaq -0x160(%rbp), %rdi
callq 0x6228
movq %rbx, %rax
addq $0x150, %rsp            # imm = 0x150
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
jmp 0x8488
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0x8488
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
jmp 0x8488
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
jmp 0x8488
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x3120
jmp 0x8492
movq %rax, %rbx
leaq -0x160(%rbp), %rdi
callq 0x6228
movq %rbx, %rdi
callq 0x33c0