// File: /workspace/github_cpp_makefile_star2_O3/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, %r14
leaq 0x1e87(%rip), %r15      # 0x533e
movq 0x4b12(%rip), %rbx      # 0x7fd0
movq 0x4b1b(%rip), %r12      # 0x7fe0
leaq 0x4(%rsp), %r13
movq %r15, %rdi
callq 0x20b0
movl $0x20, %edx
movq %rbx, %rdi
leaq 0x1c58(%rip), %rsi      # 0x5139
callq 0x2120
movl $0x18, %edx
movq %rbx, %rdi
leaq 0x1bf0(%rip), %rsi      # 0x50e5
callq 0x2120
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %rbx, %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 %rbx, %rdi
leaq 0x1c00(%rip), %rsi      # 0x515a
callq 0x2120
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movl $0x10, %edx
movq %rbx, %rdi
leaq 0x1bd7(%rip), %rsi      # 0x516c
callq 0x2120
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
movl $0x7, %edx
movq %rbx, %rdi
leaq 0x1bad(%rip), %rsi      # 0x517d
callq 0x2120
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %rbx, %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 %rbx, %rdi
leaq 0x1b50(%rip), %rsi      # 0x5185
callq 0x2120
movq %r12, %rdi
movq %r13, %rsi
callq 0x2080
movl 0x4(%rsp), %esi
movl $0x1, %edx
movl $0x3, %ecx
callq 0x339c
movl %eax, 0x4(%rsp)
cmpl $0x1, %eax
je 0x3686
cmpl $0x2, %eax
je 0x3671
cmpl $0x3, %eax
jne 0x34ca
jmp 0x3694
movq %r14, %rdi
callq 0x36de
movq %r15, %rdi
callq 0x20b0
jmp 0x34ca
movq (%r14), %rax
movq %r14, %rdi
callq *0x28(%rax)
jmp 0x34ca
leaq 0x1aff(%rip), %rsi      # 0x519a
movl $0x8, %edx
movq %rbx, %rdi
callq 0x2120
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x20f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20a0
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq