// File: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq 0x14115(%rip), %rdi     # 0x1afd0
leaq 0xbc27(%rip), %rsi      # 0x12ae9
callq 0x3200
movq %rax, %rdi
movq 0x140ef(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x140f3(%rip), %rdi     # 0x1afd0
leaq 0xc198(%rip), %rsi      # 0x1307c
callq 0x3200
movq %rax, %rdi
movq 0x140cd(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x140d1(%rip), %rdi     # 0x1afd0
leaq 0xbbe3(%rip), %rsi      # 0x12ae9
callq 0x3200
movq %rax, %rdi
movq 0x140ab(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x140af(%rip), %rdi     # 0x1afd0
leaq 0xc16b(%rip), %rsi      # 0x13093
callq 0x3200
movq %rax, %rdi
movq 0x14089(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x1408d(%rip), %rdi     # 0x1afd0
leaq 0xc168(%rip), %rsi      # 0x130b2
callq 0x3200
movq %rax, %rdi
movq 0x14067(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x1406b(%rip), %rdi     # 0x1afd0
leaq 0xc17d(%rip), %rsi      # 0x130e9
callq 0x3200
movq 0x14058(%rip), %rdi     # 0x1afd0
leaq 0xc1a5(%rip), %rsi      # 0x13124
callq 0x3200
movq %rax, %rdi
movq 0x14032(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x14036(%rip), %rdi     # 0x1afd0
leaq 0xc1ba(%rip), %rsi      # 0x1315b
callq 0x3200
movq %rax, %rdi
movq 0x14010(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x14014(%rip), %rdi     # 0x1afd0
leaq 0xc1c5(%rip), %rsi      # 0x13188
callq 0x3200
movq 0x14001(%rip), %rdi     # 0x1afd0
leaq 0xc228(%rip), %rsi      # 0x131fe
callq 0x3200
movq %rax, %rdi
movq 0x13fdb(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13fdf(%rip), %rdi     # 0x1afd0
leaq 0xc22b(%rip), %rsi      # 0x13223
callq 0x3200
movq %rax, %rdi
movq 0x13fb9(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13fbd(%rip), %rdi     # 0x1afd0
leaq 0xc245(%rip), %rsi      # 0x1325f
callq 0x3200
movq %rax, %rdi
movq 0x13f97(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13f9b(%rip), %rdi     # 0x1afd0
leaq 0xc25b(%rip), %rsi      # 0x13297
callq 0x3200
movq 0x13f88(%rip), %rdi     # 0x1afd0
leaq 0xc258(%rip), %rsi      # 0x132a7
callq 0x3200
movq %rax, %rdi
movq 0x13f62(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13f66(%rip), %rdi     # 0x1afd0
leaq 0xc26c(%rip), %rsi      # 0x132dd
callq 0x3200
movq %rax, %rdi
movq 0x13f40(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13f44(%rip), %rdi     # 0x1afd0
leaq 0xc277(%rip), %rsi      # 0x1330a
callq 0x3200
movq %rax, %rdi
movq 0x13f1e(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13f22(%rip), %rdi     # 0x1afd0
leaq 0xc28c(%rip), %rsi      # 0x13341
callq 0x3200
movq 0x13f0f(%rip), %rdi     # 0x1afd0
leaq 0xc2d0(%rip), %rsi      # 0x13398
callq 0x3200
movq %rax, %rdi
movq 0x13ee9(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13eed(%rip), %rdi     # 0x1afd0
leaq 0xc336(%rip), %rsi      # 0x13420
callq 0x3200
movq %rax, %rdi
leaq 0xc364(%rip), %rsi      # 0x1345d
callq 0x3200
movq 0x13ecb(%rip), %rdi     # 0x1afd0
leaq 0xc386(%rip), %rsi      # 0x13492
callq 0x3200
movq %rax, %rdi
movq 0x13ea5(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13ea9(%rip), %rdi     # 0x1afd0
leaq 0xc3c7(%rip), %rsi      # 0x134f5
callq 0x3200
movq %rax, %rdi
movq 0x13e83(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13e87(%rip), %rdi     # 0x1afd0
leaq 0xc3dd(%rip), %rsi      # 0x1352d
callq 0x3200
movq %rax, %rdi
movq 0x13e61(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13e65(%rip), %rdi     # 0x1afd0
leaq 0xc404(%rip), %rsi      # 0x13576
callq 0x3200
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x14(%rax), %esi
callq 0x3360
movq %rax, %rdi
leaq 0xc403(%rip), %rsi      # 0x13593
callq 0x3200
movq %rax, %rdi
movq 0x13e21(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13e25(%rip), %rdi     # 0x1afd0
leaq 0xc42f(%rip), %rsi      # 0x135e1
callq 0x3200
movq 0x13e12(%rip), %rdi     # 0x1afd0
leaq 0xc47a(%rip), %rsi      # 0x1363f
callq 0x3200
movq %rax, %rdi
movq 0x13dec(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13df0(%rip), %rdi     # 0x1afd0
leaq 0xc4c0(%rip), %rsi      # 0x136a7
callq 0x3200
movq %rax, %rdi
movq 0x13dca(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13dce(%rip), %rdi     # 0x1afd0
leaq 0xc5cf(%rip), %rsi      # 0x137d8
callq 0x3200
movq %rax, %rdi
movq 0x13da8(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13dac(%rip), %rdi     # 0x1afd0
leaq 0xc649(%rip), %rsi      # 0x13874
callq 0x3200
movq %rax, %rdi
movq 0x13d86(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13d8a(%rip), %rdi     # 0x1afd0
leaq 0xc667(%rip), %rsi      # 0x138b4
callq 0x3200
movq %rax, %rdi
movq 0x13d64(%rip), %rsi     # 0x1afc0
callq 0x3230
movq 0x13d68(%rip), %rdi     # 0x1afd0
leaq 0xc652(%rip), %rsi      # 0x138c1
callq 0x3200
movq %rax, %rdi
movq 0x13d42(%rip), %rsi     # 0x1afc0
callq 0x3230
callq 0x3300
addq $0x10, %rsp
popq %rbp
retq
nop