// File: /workspace/github_cpp_makefile_star2_O3/ljc2154[P]Rummy/rummy.cpp
// Function: main
int main(int argc, char **argv)
{
	State state = initializeState();
	printState(state);
	while (gameOver(state) == false)
	{
		playUserTurn(state);
		if (gameOver(state))
			break;
		playAgentTurn(state);
		printState(state);
	}
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
leaq 0x1a0(%rsp), %rbx
movq %rbx, %rdi
callq 0x1613
leaq 0x138(%rsp), %rdi
movq %rbx, %rsi
callq 0x3a84
leaq 0x138(%rsp), %rdi
callq 0x178b
leaq 0x180(%rsp), %rbx
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0x12ff
movq (%rdi), %r14
movl $0x18, %esi
callq 0x1100
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x12ea
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x131c
movq 0x178(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0x1339
movq 0x160(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0x1356
movq 0x148(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
leaq 0x118(%rsp), %r13
leaq 0xb0(%rsp), %r12
leaq 0x48(%rsp), %r15
leaq 0x1a0(%rsp), %r14
leaq 0xd0(%rsp), %rdi
movq %r14, %rsi
callq 0x3a84
leaq 0xd0(%rsp), %rdi
callq 0x1800
movl %eax, %ebp
movq 0x118(%rsp), %rdi
cmpq %r13, %rdi
je 0x13b4
movq (%rdi), %rbx
movl $0x18, %esi
callq 0x1100
movq %rbx, %rdi
cmpq %r13, %rbx
jne 0x139f
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0x13d1
movq 0x110(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xe8(%rsp), %rdi
testq %rdi, %rdi
je 0x13ee
movq 0xf8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x140b
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
testb %bpl, %bpl
jne 0x1538
movq %r14, %rdi
callq 0x1a1c
leaq 0x68(%rsp), %rdi
movq %r14, %rsi
callq 0x3a84
leaq 0x68(%rsp), %rdi
callq 0x1800
movl %eax, %ebp
movq 0xb0(%rsp), %rdi
cmpq %r12, %rdi
je 0x1457
movq (%rdi), %rbx
movl $0x18, %esi
callq 0x1100
movq %rbx, %rdi
cmpq %r12, %rbx
jne 0x1442
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x1474
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x1491
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x14a8
movq 0x78(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
testb %bpl, %bpl
jne 0x1538
movq %r14, %rdi
callq 0x1fff
movq %rsp, %rdi
movq %r14, %rsi
callq 0x3a84
movq %rsp, %rdi
callq 0x178b
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x14eb
movq (%rdi), %rbx
movl $0x18, %esi
callq 0x1100
movq %rbx, %rdi
cmpq %r15, %rbx
jne 0x14d6
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x1502
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x1519
movq 0x28(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x1373
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
jmp 0x1373
leaq 0x1e8(%rsp), %rbx
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0x155d
movq (%rdi), %r14
movl $0x18, %esi
callq 0x1100
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x1548
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x157a
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x1597
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x15b4
movq 0x1b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x1100
xorl %eax, %eax
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
jmp 0x15f4
jmp 0x15fb
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x15f4
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
jmp 0x15f4
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x3b2a
jmp 0x15fe
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0x3b2a
movq %rbx, %rdi
callq 0x1150