// File: /workspace/github_cpp_makefile_star2_O2/angelapwen[P]text-based-game/game.cpp
// Function: Game::startGame()
void Game::startGame() {
	welcomeMenu();

	characterChoice(); // Choose appropriate character
	satchelChoice(); // Construct appropriate satchel

	string weapon; // Weapon picked up every round
	bool exit = false; // Set bool flag to false until player chosoes to exit

	cout <<
	     "********************************************************************************"
	     << endl;
	// If character is Miss Scarlet, add revolver to Satchel
	if (character == 's') {
		cout << "Hello, Miss Scarlet.";
		satchel->addWeapon("revolver");
	}

	// If character is Colonel Mustard, increment Satchel capacity
	else if (character == 'm') {
		cout << "Hello, Colonel Mustard." << endl;
		satchel->addCapacity();
	}

	// If character is Mrs. White, turn switch on corner access
	else if (character == 'w') {
		cout << "Hello, Mrs. White." << endl;
		cout << "Mr. Boddy wouldn't report his own maid to the police for being"
			 " on his Estate." << endl;
	}

	// If character is Mr. Green, display room with escape door
	else if (character == 'g') {
		cout << "Hello, Mr. Green." << endl;
		cout << "Thank you for your generous donation to Hydra." << endl;
		cout << "The room you must commit the murder in is the " << murderRoom
		     << "." << endl;
	}

	// If character is Mrs. Peacock, multiply the number of total moves
	else if (character == 'p') {
		cout << "Hello, Mrs. Peacock." << endl;
		maxMoves *= 1.25;
		cout << "Your new number of maximum moves in the estate is " <<
		     maxMoves << "." << endl;
	}

	else {
		cout << "Welcome, Professor Plum." << endl;
		current->setCornerAccess('y');
		cout << "You will be able to access the corner passageways throughout "
		        "the game." << endl;
	}

	cout << "The Boddy Estate butler greets you at the entrance." << endl;
	cout << "\nPress enter to begin searching the Estate for weapons." << endl;
	getchar();

	// Repeat these steps while the murder has not been committed, the user
	// has not elected to exit, step count is below max, and random
	// discovery event has not occurred
	while (moves < maxMoves && !murder && !exit && !discovery) {
		// Increment and print the step number
		moves++;

		cout <<
		     "********************************************************************************"
		     << endl;
		cout << "You are on Move #" << moves << "." << endl;

		// Move player to correct place and print board
		updateMap();
		map->printBoard();
		map->printKey();

		// Check if player has enough weapons and is in the appropriate room
		if ((satchel->getNumUniqueWeapons()) > 3 &&
		    current->getName() == murderRoom) {
			current->roomWelcome();
			commitMurder();
		}

		// If murder has not been committed, move forward with room action
		if (!murder) {
			current->roomWelcome();

			// Chance 1 in 9 that character drops their satchel
			int emptyChance = (rand() % 9) + 1;
			switch (emptyChance) {
				case 1: {
					satchel->clearContents();
					break;
				}
				default:
					break;
			}

			// Store the weapon picked up (if any) from action method
			weapon = current->action();

			// Add weapon (if applicable) to satchel
			if (weapon != "none") {
				satchel->addWeapon(weapon);
			}

			// Check again if player has enough weapons and is in the correct room
			if ((satchel->getNumUniqueWeapons()) > 3 && current->getName() ==
			                                            murderRoom) {
				commitMurder();
			}
		}

		// If murder has not been committed at this stage, chance in 1 of 30
		// that player is discovered by Boddy before moving.
		if (!murder) {
			int discoveryChance = (rand() % 30) + 1;

			switch (discoveryChance) {
				case 1: {
					// Turn discovery on if character is not Mrs. White
					if (character != 'w') {
						discovery = true;
					}
					break;
				}
				default:
					break;
			}

			// If discovery did not occur, move character to next room
			if (!discovery) {
				cout << "\nIt is time to move to another room." << endl;

				// If character is Plum, set corner access on
				if (character == 'o') {
					current->setCornerAccess('y');
				}
					// Else if character is not Mrs. White but has wrench, set corner
					// access on
				else if (satchel->getWrench()) {
					cout
							<< "\nHello from Hydra. We noticed that you have a wrench in";
					cout << " your satchel. While you\nhave a wrench, you may access "
							   "the secret corner passageways in the Boddy Estate."
							<< endl << endl;
					current->setCornerAccess('y');
				}
					// Else turn corner access off
				else {
					current->setCornerAccess('n');
				}

				// Display options for the user to move and get user choice
				char move = current->makeMove();

				// Depending on char returned, point current to new room or exit
				switch (move) {
					case 't':
						current = current->getTop();
						break;
					case 'b':
						current = current->getBottom();
						break;
					case 'l':
						current = current->getLeft();
						break;
					case 'r':
						current = current->getRight();
						break;
					case 'c':
						current = current->getCorner();
						break;
					case 'e':
						exit = true;
						break;
					default:
						break;
				}
			}
		}
	}

	cout <<
	     "\n********************************************************************************"
	     << endl;

	// If murder has been committed, display congratulations
	if (murder) {
		cout << "Congratulations, professor! You have completed your mission in "
			  << moves << " moves." << endl;
		cout << "We have activated a secret escape in the " << murderRoom <<
					"." << endl;
		cout << "Open the door and step in to your freedom." << endl;
		cout << "\n\nYour next mission will be:" << endl;
		cout << "DEFEND YOUR INNOCENCE. FRAME ANOTHER GUEST FOR MR. BODDY'S "
		        "MURDER." << endl;
		cout << "The others will be here soon..." << endl;
		cout << "\n\nRemember: Cut off a limb, and two more shall take its "
		        "place." << endl;
	}

	// Else if user reached max number of moves, display exit message
	else if (moves >= maxMoves) {
		cout << "Unfortunately, you exceeded the total number of moves to "
		        "complete your mission." << endl;
		cout << "We have removed you from Mr. Boddy's estate." << endl;
		cout << "\nNot everyone is meant for the greatness of HYDRA." << endl;
		cout << "The Hydra selection process is a dangerous one." << endl;
		cout << "Those who do not successfully complete it are liabilities to "
		        "our organization." << endl;
		cout << "Perhaps you may serve Hydra in your next life." << endl;
		cout << "\n\n\nDo you have any last words before we begin?" << endl;
	}

	// Else player has been discovered, display exit message
	else if (discovery) {
		cout << "Before you decide on your next move, Mr. Boddy walks into the " <<
		     current->getName() << "." << endl;
		cout << "You have been discovered after " << moves << " move(s)!!" <<
		     endl;
		cout << "\nMR. BODDY: \"You aren't supposed to be in here.\"" << endl;
		cout << "MR. BODDY: \"Are you trying to steal my things??\"" << endl;
		cout << "MR. BODDY: \"I expected better from you. I'd better call the "
		        "police. \"" << endl;
		cout << "\nThe police have escorted you from Mr. Boddy's estate." << endl;
		cout << "They do not find any evidence of stolen items on you and you "
			 "are released." << endl;
		cout << "\nYou have failed to complete your mission." << endl;
		cout << "Not everyone is meant for the greatness of HYDRA." << endl;
		cout << "The HYDRA selection process is a dangerous one." << endl;
		cout << "Those who do not successfully complete it are liabilities to "
		        "our organization." << endl;
		cout << "Perhaps you may serve Hydra in your next life." << endl;
		cout << "\n\n\nDo you have any last words before we begin?" << endl;
	}

	// Else if user has elected to exit, display exit message
	else {
		cout << "You have chosen to use the Emergency Exit after " << moves <<
		     " move(s)." << endl;
		cout << "You decided to leave your mission incomplete." << endl;
		cout << "\nNot everyone is meant for the greatness of HYDRA." << endl;
		cout << "The HYDRA selection process is a dangerous one." << endl;
		cout << "Those who do not successfully complete it are liabilities to "
		        "our organization." << endl;
		cout << "Perhaps you may serve Hydra in your next life." << endl;
		cout << "\n\n\nDo you have any last words before we begin?" << endl;
	}
	cout <<
	     "********************************************************************************"
	     << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rdi, %rbx
callq 0x4192
movq %rbx, %rdi
callq 0x4456
movq %rbx, %rdi
callq 0x485e
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0xd735(%rip), %rdi      # 0x10fd0
leaq 0x61fc(%rip), %rsi      # 0x9a9e
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movzbl 0x8a(%rbx), %eax
cmpl $0x67, %eax
je 0x39fc
cmpl $0x6d, %eax
je 0x3924
cmpl $0x70, %eax
je 0x3977
cmpl $0x77, %eax
je 0x394d
cmpl $0x73, %eax
jne 0x39c9
movq 0xd6ee(%rip), %rdi      # 0x10fd0
leaq 0x5ec4(%rip), %rsi      # 0x97ad
callq 0x21a0
movq 0x8(%rbx), %r14
leaq 0x5c53(%rip), %rsi      # 0x954c
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x5522
movq (%r14), %rax
leaq 0x48(%rsp), %rsi
movq %r14, %rdi
callq *(%rax)
leaq 0x48(%rsp), %rdi
callq 0x20b0
jmp 0x3a6b
movq 0xd6a5(%rip), %rdi      # 0x10fd0
leaq 0x5e90(%rip), %rsi      # 0x97c2
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0x8(%rbx), %rdi
callq 0x70f2
jmp 0x3a6b
movq 0xd67c(%rip), %r14      # 0x10fd0
leaq 0x5e7f(%rip), %rsi      # 0x97da
movq %r14, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x5e7b(%rip), %rsi      # 0x97ed
jmp 0x3a5b
movq 0xd652(%rip), %rdi      # 0x10fd0
leaq 0x5f26(%rip), %rsi      # 0x98ab
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
cvtsi2sdl 0x14(%rbx), %xmm0
mulsd 0x5ce1(%rip), %xmm0     # 0x9680
cvttsd2si %xmm0, %eax
movl %eax, 0x14(%rbx)
movq 0xd623(%rip), %rdi      # 0x10fd0
leaq 0x5f0c(%rip), %rsi      # 0x98c0
callq 0x21a0
movl 0x14(%rbx), %esi
movq %rax, %rdi
callq 0x2280
jmp 0x3a51
movq 0xd600(%rip), %r14      # 0x10fd0
leaq 0x5f1c(%rip), %rsi      # 0x98f3
movq %r14, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0x18(%rbx), %rdi
pushq $0x79
popq %rsi
callq 0x73c4
leaq 0x5f12(%rip), %rsi      # 0x990c
jmp 0x3a5b
movq 0xd5cd(%rip), %rdi      # 0x10fd0
leaq 0x5e31(%rip), %rsi      # 0x983b
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd5b2(%rip), %rdi      # 0x10fd0
leaq 0x5e28(%rip), %rsi      # 0x984d
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd597(%rip), %rdi      # 0x10fd0
leaq 0x5e3c(%rip), %rsi      # 0x987c
callq 0x21a0
leaq 0x68(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %r14
leaq 0x65a5(%rip), %rsi      # 0xa000
movq %r14, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd55e(%rip), %rdi      # 0x10fd0
leaq 0x5eda(%rip), %rsi      # 0x9953
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd543(%rip), %rdi      # 0x10fd0
leaq 0x5ef3(%rip), %rsi      # 0x9987
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
callq 0x2220
leaq 0x68(%rbx), %r14
xorl %eax, %eax
movq 0xd51d(%rip), %r15      # 0x10fd0
leaq 0x8(%rsp), %r12
leaq 0x68(%rsp), %r13
movl 0x10(%rbx), %ecx
cmpl 0x14(%rbx), %ecx
jge 0x3d88
testb $0x1, 0x88(%rbx)
jne 0x3d88
testb $0x1, %al
jne 0x3d88
cmpb $0x0, 0x89(%rbx)
jne 0x3d88
incl %ecx
movl %ecx, 0x10(%rbx)
movq %r15, %rdi
leaq 0x5fa4(%rip), %rsi      # 0x9a9e
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq %r15, %rdi
leaq 0x5eae(%rip), %rsi      # 0x99bf
callq 0x21a0
movl 0x10(%rbx), %esi
movq %rax, %rdi
callq 0x2280
movq %rax, %rdi
leaq 0x64d5(%rip), %rsi      # 0xa000
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq %rbx, %rdi
callq 0x4b3c
movq (%rbx), %rdi
callq 0x5fa0
movq (%rbx), %rdi
callq 0x5ffe
movq 0x8(%rbx), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
cmpl $0x4, %eax
jl 0x3b96
movq 0x18(%rbx), %rsi
movq %r12, %rdi
callq 0x73b2
movq %r12, %rdi
movq %r14, %rsi
callq 0x555d
movl %eax, %ebp
movq %r12, %rdi
callq 0x20b0
testb %bpl, %bpl
je 0x3b96
movq 0x18(%rbx), %rdi
callq 0x7374
movq %rbx, %rdi
callq 0x4d70
cmpb $0x0, 0x88(%rbx)
jne 0x3c61
movq 0x18(%rbx), %rdi
callq 0x7374
callq 0x2040
cltd
pushq $0x9
popq %rcx
idivl %ecx
testl %edx, %edx
jne 0x3bc5
movq 0x8(%rbx), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movq 0x18(%rbx), %rsi
movq (%rsi), %rax
movq %r12, %rdi
callq *(%rax)
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
callq 0x21e0
movq %r12, %rdi
callq 0x20b0
movq %rbp, %rdi
leaq 0x5dde(%rip), %rsi      # 0x99d1
callq 0x5586
testb %al, %al
je 0x3c24
movq 0x8(%rbx), %rbp
movq %r13, %rdi
leaq 0x28(%rsp), %rsi
callq 0x2210
movq (%rbp), %rax
movq %rbp, %rdi
movq %r13, %rbp
movq %r13, %rsi
callq *(%rax)
movq %rbp, %rdi
callq 0x20b0
movq 0x8(%rbx), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
cmpl $0x4, %eax
jl 0x3c61
movq 0x18(%rbx), %rsi
movq %r12, %rdi
callq 0x73b2
movq %r12, %rdi
movq %r14, %rsi
callq 0x555d
movl %eax, %ebp
movq %r12, %rdi
callq 0x20b0
testb %bpl, %bpl
je 0x3c61
movq %rbx, %rdi
callq 0x4d70
xorl %eax, %eax
cmpb $0x0, 0x88(%rbx)
jne 0x3abd
callq 0x2040
cltd
pushq $0x1e
popq %rcx
idivl %ecx
testl %edx, %edx
jne 0x3c96
cmpb $0x77, 0x8a(%rbx)
je 0x3c96
movb $0x1, 0x89(%rbx)
xorl %eax, %eax
jmp 0x3abd
xorl %eax, %eax
testb $0x1, 0x89(%rbx)
jne 0x3abd
movq %r15, %rdi
leaq 0x5d27(%rip), %rsi      # 0x99d6
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movb $0x79, %cl
cmpb $0x6f, 0x8a(%rbx)
je 0x3d06
movq 0x8(%rbx), %rdi
callq 0x70ee
movb $0x6e, %cl
testb %al, %al
je 0x3d06
movq %r15, %rdi
leaq 0x5d1b(%rip), %rsi      # 0x99fb
callq 0x21a0
movq %r15, %rdi
leaq 0x5d44(%rip), %rsi      # 0x9a33
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq %rax, %rdi
callq 0x20c0
movb $0x79, %cl
movq 0x18(%rbx), %rdi
movzbl %cl, %esi
callq 0x73c4
movq 0x18(%rbx), %rdi
callq 0x73ce
cmpb $0x62, %al
je 0x3d74
movzbl %al, %ecx
cmpl $0x63, %ecx
je 0x3d69
cmpl $0x65, %ecx
je 0x3d4c
cmpl $0x6c, %ecx
je 0x3d5e
cmpl $0x72, %ecx
je 0x3d53
xorl %eax, %eax
cmpl $0x74, %ecx
jne 0x3abd
movq 0x18(%rbx), %rdi
callq 0x78ec
jmp 0x3d7d
movb $0x1, %al
jmp 0x3abd
movq 0x18(%rbx), %rdi
callq 0x790a
jmp 0x3d7d
movq 0x18(%rbx), %rdi
callq 0x7900
jmp 0x3d7d
movq 0x18(%rbx), %rdi
callq 0x7914
jmp 0x3d7d
movq 0x18(%rbx), %rdi
callq 0x78f6
movq %rax, 0x18(%rbx)
xorl %eax, %eax
jmp 0x3abd
movq 0xd241(%rip), %rdi      # 0x10fd0
leaq 0x5d07(%rip), %rsi      # 0x9a9d
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
cmpb $0x1, 0x88(%rbx)
jne 0x3e92
movq 0xd219(%rip), %rdi      # 0x10fd0
leaq 0x5d31(%rip), %rsi      # 0x9aef
callq 0x21a0
movl 0x10(%rbx), %esi
movq %rax, %rdi
callq 0x2280
leaq 0x5d5a(%rip), %rsi      # 0x9b2f
movq %rax, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd1e4(%rip), %rdi      # 0x10fd0
leaq 0x5d44(%rip), %rsi      # 0x9b37
callq 0x21a0
movq %rax, %rdi
movq %r14, %rsi
callq 0x2170
leaq 0x61f6(%rip), %rsi      # 0xa000
movq %rax, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd1af(%rip), %rdi      # 0x10fd0
leaq 0x5d39(%rip), %rsi      # 0x9b61
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd194(%rip), %rdi      # 0x10fd0
leaq 0x5d49(%rip), %rsi      # 0x9b8c
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd179(%rip), %rdi      # 0x10fd0
leaq 0x5d4b(%rip), %rsi      # 0x9ba9
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd15e(%rip), %rdi      # 0x10fd0
leaq 0x5d73(%rip), %rsi      # 0x9bec
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x5d7f(%rip), %rsi      # 0x9c0c
jmp 0x40fd
movl 0x10(%rbx), %eax
cmpl 0x14(%rbx), %eax
jge 0x3fe0
cmpb $0x1, 0x89(%rbx)
jne 0x403a
movq 0xd11e(%rip), %rdi      # 0x10fd0
leaq 0x5f1f(%rip), %rsi      # 0x9dd8
callq 0x21a0
movq %rax, %r14
movq 0x18(%rbx), %rsi
leaq 0x8(%rsp), %rdi
callq 0x73b2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x2170
leaq 0x611d(%rip), %rsi      # 0xa000
movq %rax, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x8(%rsp), %rdi
callq 0x20b0
movq 0xd0cc(%rip), %rdi      # 0x10fd0
leaq 0x5f0c(%rip), %rsi      # 0x9e17
callq 0x21a0
movl 0x10(%rbx), %esi
movq %rax, %rdi
callq 0x2280
leaq 0x5f15(%rip), %rsi      # 0x9e37
movq %rax, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd097(%rip), %rdi      # 0x10fd0
leaq 0x5f02(%rip), %rsi      # 0x9e42
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd07c(%rip), %rdi      # 0x10fd0
leaq 0x5f18(%rip), %rsi      # 0x9e73
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd061(%rip), %rdi      # 0x10fd0
leaq 0x5f2e(%rip), %rsi      # 0x9ea4
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd046(%rip), %rdi      # 0x10fd0
leaq 0x5f59(%rip), %rsi      # 0x9eea
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd02b(%rip), %rdi      # 0x10fd0
leaq 0x5f75(%rip), %rsi      # 0x9f21
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xd010(%rip), %rdi      # 0x10fd0
leaq 0x5fa5(%rip), %rsi      # 0x9f6c
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x5cee(%rip), %rsi      # 0x9cc9
jmp 0x4091
movq 0xcfe9(%rip), %rdi      # 0x10fd0
leaq 0x5c5d(%rip), %rsi      # 0x9c4b
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xcfce(%rip), %rdi      # 0x10fd0
leaq 0x5c92(%rip), %rsi      # 0x9c9b
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xcfb3(%rip), %rdi      # 0x10fd0
leaq 0x5ca4(%rip), %rsi      # 0x9cc8
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x5cc3(%rip), %rsi      # 0x9cfb
jmp 0x40ac
movq 0xcf8f(%rip), %rdi      # 0x10fd0
leaq 0x5f7f(%rip), %rsi      # 0x9fc7
callq 0x21a0
movl 0x10(%rbx), %esi
movq %rax, %rdi
callq 0x2280
leaq 0x5f99(%rip), %rsi      # 0x9ff8
movq %rax, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xcf5a(%rip), %rdi      # 0x10fd0
leaq 0x5f85(%rip), %rsi      # 0xa002
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x5c37(%rip), %rsi      # 0x9cc8
movq 0xcf38(%rip), %rdi      # 0x10fd0
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x5eeb(%rip), %rsi      # 0x9f97
movq 0xcf1d(%rip), %rdi      # 0x10fd0
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xcf09(%rip), %rdi      # 0x10fd0
leaq 0x5c5d(%rip), %rsi      # 0x9d2b
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xceee(%rip), %rdi      # 0x10fd0
leaq 0x5c91(%rip), %rsi      # 0x9d7a
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x5cac(%rip), %rsi      # 0x9da9
movq 0xcecc(%rip), %rdi      # 0x10fd0
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
movq 0xceb8(%rip), %rdi      # 0x10fd0
leaq 0x597f(%rip), %rsi      # 0x9a9e
callq 0x21a0
movq %rax, %rdi
callq 0x20c0
leaq 0x28(%rsp), %rdi
callq 0x20b0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x417d
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x416c
jmp 0x417d
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0x416c
jmp 0x417d
jmp 0x417d
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x20b0
jmp 0x4180
jmp 0x417d
jmp 0x417d
jmp 0x417d
jmp 0x417d
jmp 0x417d
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x20b0
movq %rbx, %rdi
callq 0x2290