// File: /workspace/github_cpp_makefile_star2_O1/LifeAlgorithm[P]RockPaperScissors/RPSGame.cpp
// Function: RPSGame::mainMenu()
void RPSGame::mainMenu()
{
	bool runMain = true;
	int mainInput;

	while (runMain)
	{

		screenClear();
		cout << "Welcome to Rock Paper Scissors! " << "Choose an option below: " << endl << endl;
		cout << "1) Start New Game" << endl;
		cout << "2) Tool Settings" << endl;
		cout << "3) Quit" << endl << endl;

		cout << "Enter option (1-3): ";
		cin >> mainInput;
		mainInput = validateBetween(mainInput, 1, 3);

		switch (mainInput)
		{
		case 1: //Start new game
		{
			playGame();
			break;
		}
		case 2:
		{
			toolSettingsMenu();
			screenClear();
			break;
		}
		case 3:
		{
			runMain = false;
			cout << "Goodbye!" << endl;
		}
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movb $0x1, %r12b
leaq 0x1e86(%rip), %r14      # 0x533e
movq 0x4b11(%rip), %r15      # 0x7fd0
leaq 0x4(%rsp), %r13
movq %r14, %rdi
callq 0x20b0
movl $0x20, %edx
movq %r15, %rdi
leaq 0x1c5e(%rip), %rsi      # 0x5139
callq 0x2120
movl $0x18, %edx
movq %r15, %rdi
leaq 0x1bf6(%rip), %rsi      # 0x50e5
callq 0x2120
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movl $0x11, %edx
movq %r15, %rdi
leaq 0x1c06(%rip), %rsi      # 0x515a
callq 0x2120
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movl $0x10, %edx
movq %r15, %rdi
leaq 0x1bdd(%rip), %rsi      # 0x516c
callq 0x2120
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movl $0x7, %edx
movq %r15, %rdi
leaq 0x1bb3(%rip), %rsi      # 0x517d
callq 0x2120
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movl $0x14, %edx
movq %r15, %rdi
leaq 0x1b56(%rip), %rsi      # 0x5185
callq 0x2120
movq 0x49a5(%rip), %rdi      # 0x7fe0
movq %r13, %rsi
callq 0x2080
movl 0x4(%rsp), %esi
movl $0x1, %edx
movl $0x3, %ecx
callq 0x339a
movl %eax, 0x4(%rsp)
cmpl $0x3, %eax
je 0x3686
cmpl $0x2, %eax
je 0x3674
cmpl $0x1, %eax
jne 0x36c4
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x36c4
movq %rbx, %rdi
callq 0x36de
movq %r14, %rdi
callq 0x20b0
jmp 0x36c4
movl $0x8, %edx
movq %r15, %rdi
leaq 0x1b05(%rip), %rsi      # 0x519a
callq 0x2120
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
xorl %r12d, %r12d
testb $0x1, %r12b
jne 0x34c4
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop