// File: /workspace/github_cpp_makefile_star2_O3/angelapwen[P]text-based-game/game.cpp
// Function: Game::welcomeMenu() const
void Game::welcomeMenu() const {
	cout <<
	     "\n********************************************************************************"
	     << endl;

	cout << "\n\t\t\t\tClue: The Prequel" << endl;
	cout <<
	     "\n********************************************************************************"
	     << endl;
	cout << "\nGood evening, Professor Plum." << endl;
	cout << "We have received your application to join us at Hydra." << endl;
	cout << "We were pleased to hear of your interest, as we have been ";
	cout << "watching closely over\nyour work in the past few years." << endl;
	cout << "\nAs you know, we are an ancient Brotherhood." << endl;
	cout << "All of our applicants are subject to a series of tests and "
	        "missions to test your\ntrue dedication to our organization.";
	cout << " Tonight will be your first mission." << endl;
	cout << "\nMr. John Boddy has invited you to his 30th birthday party." <<
	     endl;
	cout << "You have access to the Boddy estate prior to the party." << endl;
	cout << "\nYour mission: " ;
	cout << "MURDER MR. JOHN BODDY BEFORE THE OTHER GUESTS ARRIVE." << endl;
	cout << "\nTo complete your mission, you will need to:" << endl;
	cout << "1. Walk around the estate and interact with the rooms." << endl;
	cout << "2. We will decide whether or not to teleport weapons to you based"
	        " off of your\nactions.";
	cout << " If you come across a weapon, you must attempt to put it in your\n"
	        "satchel. You may not leave weapons in the rooms for witnesses to "
	        "find." << endl;
	cout << "3. Once you have 4 unique weapons in your satchel, you must "
	     << "find the correct\nroom in which to commit the murder.";
	cout << " We have set up this room with a secret\nescape so you may leave "
	        "the scene of the crime undetected." << endl;

	cout << "\nOne more thing: as you know, the Boddy Estate is vast." << endl;
	cout << "It will take time for you to move between rooms to complete the "
	        "mission." << endl;
	cout << "You will only have time for " << maxMoves << " moves between "
	       "rooms to complete your mission\nbefore the dinner party begins." <<
	     endl;

	cout << "\nAdditionally, there is a chance that Mr. Boddy will discover you "
			"sneaking\naround his Estate.";
	cout << " Mr. Boddy is a suspicious man, and should this happen, you\nwill "
			"be reported to the police immediately." << endl;

	cout << "\nTo assist you in completing your mission more quickly, we have "
	        "found a way to\naccess the secret passageways between corner rooms in"
	        " the Boddy Estate. When\nyour satchel contains the wrench weapon, you"
	        " may use this special wrench to\nopen the door to the underground "
	        "tunnels that Mr. Boddy keeps locked up." << endl;

	cout << "\nFinally, you may choose to use the Emergency Exit at any point "
	        "in the game, but\nthis means you will not have completed your "
			"mission and have failed Hydra." << endl;
	cout << "\nRemember: if a head is cut off, two more shall take its place." <<
	     endl;
	cout << "Hail, Hydra!" << endl;
	cout << "\nPress enter to accept your mission."	<< endl;
	getchar();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r14
movq 0xf95d(%rip), %rbx      # 0x14fd0
leaq 0x8497(%rip), %r15      # 0xdb11
movl $0x51, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x89ec(%rip), %rsi      # 0xe0a4
movl $0x16, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movl $0x51, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8991(%rip), %rsi      # 0xe0bb
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8975(%rip), %rsi      # 0xe0da
movl $0x36, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8971(%rip), %rsi      # 0xe111
movl $0x3a, %edx
movq %rbx, %rdi
callq 0x21c0
leaq 0x8998(%rip), %rsi      # 0xe14c
movl $0x36, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8994(%rip), %rsi      # 0xe183
movl $0x2c, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8986(%rip), %rsi      # 0xe1b0
movl $0x75, %edx
movq %rbx, %rdi
callq 0x21c0
leaq 0x89e8(%rip), %rsi      # 0xe226
movl $0x24, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x89d2(%rip), %rsi      # 0xe24b
movl $0x3b, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x89d3(%rip), %rsi      # 0xe287
movl $0x37, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x89d0(%rip), %rsi      # 0xe2bf
movl $0xf, %edx
movq %rbx, %rdi
callq 0x21c0
leaq 0x89cc(%rip), %rsi      # 0xe2cf
movl $0x35, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x89c7(%rip), %rsi      # 0xe305
movl $0x2c, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x89b9(%rip), %rsi      # 0xe332
movl $0x36, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x89b5(%rip), %rsi      # 0xe369
movl $0x56, %edx
movq %rbx, %rdi
callq 0x21c0
leaq 0x89f8(%rip), %rsi      # 0xe3c0
movl $0x87, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8a45(%rip), %rsi      # 0xe448
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x21c0
leaq 0x8a6e(%rip), %rsi      # 0xe485
movl $0x34, %edx
movq %rbx, %rdi
callq 0x21c0
leaq 0x8a8f(%rip), %rsi      # 0xe4ba
movl $0x62, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8ab7(%rip), %rsi      # 0xe51d
movl $0x37, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8ab4(%rip), %rsi      # 0xe555
movl $0x48, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8ac2(%rip), %rsi      # 0xe59e
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x21c0
movl 0x14(%r14), %esi
movq %rbx, %rdi
callq 0x2260
movq %rax, %r14
leaq 0x8abc(%rip), %rsi      # 0xe5bb
movl $0x4d, %edx
movq %rax, %rdi
callq 0x21c0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8acf(%rip), %rsi      # 0xe609
movl $0x5d, %edx
movq %rbx, %rdi
callq 0x21c0
leaq 0x8b19(%rip), %rsi      # 0xe667
movl $0x67, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8b46(%rip), %rsi      # 0xe6cf
movl $0x130, %edx            # imm = 0x130
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8c3c(%rip), %rsi      # 0xe800
movl $0x9b, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8c9d(%rip), %rsi      # 0xe89c
movl $0x3f, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8ca2(%rip), %rsi      # 0xe8dc
movl $0xc, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
leaq 0x8c74(%rip), %rsi      # 0xe8e9
movl $0x24, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
popq %rbx
popq %r14
popq %r15
jmp 0x21f0
nop