// File: angelapwen[P]text-based-game/game.cpp
// Function: Game::Game()
Game::Game() {
	satchel = nullptr; // Satchel will be allocated later
	map = new Map(); // Construct map immediately
	moves = 0;
	murder = discovery = false;
	maxMoves = 24; // Allow 24 moves before game ends

	// Allocate memory for and construct all rooms
	study = new Quiet("study","candlestick","a book of meditation");
	library = new Quiet("library", "rope", "a box of sleeping pills");
	conservatory = new Quiet("conservatory", "knife", "a pair of earmuffs");
	billiards = new Entertain("billiard room", "pipe", "a game of darts");
	ballroom = new Entertain("ballroom", "rope", "a record player");
	hall = new Entertain("hall", "wrench", "a doorbell");
	kitchen = new Eat("kitchen", "knife", "an apple");
	dining = new Eat("dining room", "revolver", "a pumpkin pastry");
	lounge = new Eat("lounge", "candlestick", "a block of cheese");

	// Link all rooms
	study->setCorner(kitchen);
	study->setRight(hall);
	study->setBottom(library);

	library->setTop(study);
	library->setBottom(billiards);

	billiards->setTop(library);
	billiards->setBottom(conservatory);

	conservatory->setTop(billiards);
	conservatory->setRight(ballroom);
	conservatory->setCorner(lounge);

	ballroom->setLeft(conservatory);
	ballroom->setRight(kitchen);

	kitchen->setLeft(ballroom);
	kitchen->setTop(dining);
	kitchen->setCorner(study);

	dining->setBottom(kitchen);
	dining->setTop(lounge);

	lounge->setBottom(dining);
	lounge->setLeft(hall);
	lounge->setCorner(conservatory);

	hall->setRight(lounge);
	hall->setLeft(study);

	character = ' ';
	current = nullptr; // Location of start depends on character choice

	// Set location of murder to a random room
	int murderLocation = (rand() % 9) + 1;
	switch (murderLocation) {
		case 1: {
			murderRoom = "study";
			break;
		}
		case 2: {
			murderRoom = "hall";
			break;
		}
		case 3: {
			murderRoom = "lounge";
			break;
		}
		case 4: {
			murderRoom = "dining room";
			break;
		}
		case 5: {
			murderRoom = "kitchen";
			break;
		}
		case 6: {
			murderRoom = "ballroom";
			break;
		}
		case 7: {
			murderRoom = "conservatory";
			break;
		}
		case 8: {
			murderRoom = "billiard room";
			break;
		}
		case 9: {
			murderRoom = "library";
			break;
		}
		default: {
			murderRoom = " ";
			break;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x590, %rsp            # imm = 0x590
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x460(%rbp)
addq $0x68, %rdi
movq %rdi, -0x468(%rbp)
callq 0x32f0
movq -0x460(%rbp), %rax
movq $0x0, 0x8(%rax)
movl $0x591, %edi            # imm = 0x591
callq 0x3210
movq %rax, -0x458(%rbp)
jmp 0x460c
movq -0x458(%rbp), %rdi
callq 0x9330
jmp 0x461a
movq -0x460(%rbp), %rax
movq -0x458(%rbp), %rcx
movq %rcx, (%rax)
movl $0x0, 0x10(%rax)
movb $0x0, 0x89(%rax)
movb $0x0, 0x88(%rax)
movl $0x18, 0x14(%rax)
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x470(%rbp)
jmp 0x465a
movb $0x1, -0x8a(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x3380
movq -0x478(%rbp), %rdx
leaq 0xe091(%rip), %rsi      # 0x12710
leaq -0x38(%rbp), %rdi
callq 0x8ea0
jmp 0x468a
leaq -0x61(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x3380
movq -0x480(%rbp), %rdx
leaq 0xde8e(%rip), %rsi      # 0x12536
leaq -0x60(%rbp), %rdi
callq 0x8ea0
jmp 0x46b3
leaq -0x89(%rbp), %rdi
movq %rdi, -0x488(%rbp)
callq 0x3380
movq -0x488(%rbp), %rdx
leaq 0xe042(%rip), %rsi      # 0x12716
leaq -0x88(%rbp), %rdi
callq 0x8ea0
jmp 0x46e2
movq -0x470(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x60(%rbp), %rdx
leaq -0x88(%rbp), %rcx
callq 0xd0d0
jmp 0x46ff
movq -0x460(%rbp), %rax
movq -0x470(%rbp), %rcx
movb $0x0, -0x8a(%rbp)
movq %rcx, 0x20(%rax)
leaq -0x88(%rbp), %rdi
callq 0x3130
leaq -0x89(%rbp), %rdi
callq 0x3250
leaq -0x60(%rbp), %rdi
callq 0x3130
leaq -0x61(%rbp), %rdi
callq 0x3250
leaq -0x38(%rbp), %rdi
callq 0x3130
leaq -0x39(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x490(%rbp)
jmp 0x4767
movb $0x1, -0x102(%rbp)
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x3380
movq -0x498(%rbp), %rdx
leaq 0xdf9c(%rip), %rsi      # 0x1272b
leaq -0xb0(%rbp), %rdi
callq 0x8ea0
jmp 0x479d
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x4a0(%rbp)
callq 0x3380
movq -0x4a0(%rbp), %rdx
leaq 0xdd99(%rip), %rsi      # 0x12557
leaq -0xd8(%rbp), %rdi
callq 0x8ea0
jmp 0x47cc
leaq -0x101(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x3380
movq -0x4a8(%rbp), %rdx
leaq 0xdf46(%rip), %rsi      # 0x12733
leaq -0x100(%rbp), %rdi
callq 0x8ea0
jmp 0x47fb
movq -0x490(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
leaq -0x100(%rbp), %rcx
callq 0xd0d0
jmp 0x481e
movq -0x460(%rbp), %rax
movq -0x490(%rbp), %rcx
movb $0x0, -0x102(%rbp)
movq %rcx, 0x28(%rax)
leaq -0x100(%rbp), %rdi
callq 0x3130
leaq -0x101(%rbp), %rdi
callq 0x3250
leaq -0xd8(%rbp), %rdi
callq 0x3130
leaq -0xd9(%rbp), %rdi
callq 0x3250
leaq -0xb0(%rbp), %rdi
callq 0x3130
leaq -0xb1(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x4b0(%rbp)
jmp 0x4892
movb $0x1, -0x17a(%rbp)
leaq -0x129(%rbp), %rdi
movq %rdi, -0x4b8(%rbp)
callq 0x3380
movq -0x4b8(%rbp), %rdx
leaq 0xde91(%rip), %rsi      # 0x1274b
leaq -0x128(%rbp), %rdi
callq 0x8ea0
jmp 0x48c8
leaq -0x151(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x3380
movq -0x4c0(%rbp), %rdx
leaq 0xdc5b(%rip), %rsi      # 0x12544
leaq -0x150(%rbp), %rdi
callq 0x8ea0
jmp 0x48f7
leaq -0x179(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0x3380
movq -0x4c8(%rbp), %rdx
leaq 0xde40(%rip), %rsi      # 0x12758
leaq -0x178(%rbp), %rdi
callq 0x8ea0
jmp 0x4926
movq -0x4b0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
leaq -0x150(%rbp), %rdx
leaq -0x178(%rbp), %rcx
callq 0xd0d0
jmp 0x4949
movq -0x460(%rbp), %rax
movq -0x4b0(%rbp), %rcx
movb $0x0, -0x17a(%rbp)
movq %rcx, 0x38(%rax)
leaq -0x178(%rbp), %rdi
callq 0x3130
leaq -0x179(%rbp), %rdi
callq 0x3250
leaq -0x150(%rbp), %rdi
callq 0x3130
leaq -0x151(%rbp), %rdi
callq 0x3250
leaq -0x128(%rbp), %rdi
callq 0x3130
leaq -0x129(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x4d0(%rbp)
jmp 0x49bd
movb $0x1, -0x1f2(%rbp)
leaq -0x1a1(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x3380
movq -0x4d8(%rbp), %rdx
leaq 0xdd86(%rip), %rsi      # 0x1276b
leaq -0x1a0(%rbp), %rdi
callq 0x8ea0
jmp 0x49f3
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x4e0(%rbp)
callq 0x3380
movq -0x4e0(%rbp), %rdx
leaq 0xdb53(%rip), %rsi      # 0x12567
leaq -0x1c8(%rbp), %rdi
callq 0x8ea0
jmp 0x4a22
leaq -0x1f1(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x3380
movq -0x4e8(%rbp), %rdx
leaq 0xdd36(%rip), %rsi      # 0x12779
leaq -0x1f0(%rbp), %rdi
callq 0x8ea0
jmp 0x4a51
movq -0x4d0(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
leaq -0x1c8(%rbp), %rdx
leaq -0x1f0(%rbp), %rcx
callq 0x4360
jmp 0x4a74
movq -0x460(%rbp), %rax
movq -0x4d0(%rbp), %rcx
movb $0x0, -0x1f2(%rbp)
movq %rcx, 0x30(%rax)
leaq -0x1f0(%rbp), %rdi
callq 0x3130
leaq -0x1f1(%rbp), %rdi
callq 0x3250
leaq -0x1c8(%rbp), %rdi
callq 0x3130
leaq -0x1c9(%rbp), %rdi
callq 0x3250
leaq -0x1a0(%rbp), %rdi
callq 0x3130
leaq -0x1a1(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x4f0(%rbp)
jmp 0x4ae8
movb $0x1, -0x26a(%rbp)
leaq -0x219(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x3380
movq -0x4f8(%rbp), %rdx
leaq 0xdc79(%rip), %rsi      # 0x12789
leaq -0x218(%rbp), %rdi
callq 0x8ea0
jmp 0x4b1e
leaq -0x241(%rbp), %rdi
movq %rdi, -0x500(%rbp)
callq 0x3380
movq -0x500(%rbp), %rdx
leaq 0xda18(%rip), %rsi      # 0x12557
leaq -0x240(%rbp), %rdi
callq 0x8ea0
jmp 0x4b4d
leaq -0x269(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x3380
movq -0x508(%rbp), %rdx
leaq 0xdc24(%rip), %rsi      # 0x12792
leaq -0x268(%rbp), %rdi
callq 0x8ea0
jmp 0x4b7c
movq -0x4f0(%rbp), %rdi
leaq -0x218(%rbp), %rsi
leaq -0x240(%rbp), %rdx
leaq -0x268(%rbp), %rcx
callq 0x4360
jmp 0x4b9f
movq -0x460(%rbp), %rax
movq -0x4f0(%rbp), %rcx
movb $0x0, -0x26a(%rbp)
movq %rcx, 0x40(%rax)
leaq -0x268(%rbp), %rdi
callq 0x3130
leaq -0x269(%rbp), %rdi
callq 0x3250
leaq -0x240(%rbp), %rdi
callq 0x3130
leaq -0x241(%rbp), %rdi
callq 0x3250
leaq -0x218(%rbp), %rdi
callq 0x3130
leaq -0x219(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x510(%rbp)
jmp 0x4c13
movb $0x1, -0x2e2(%rbp)
leaq -0x291(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0x3380
movq -0x518(%rbp), %rdx
leaq 0xdb67(%rip), %rsi      # 0x127a2
leaq -0x290(%rbp), %rdi
callq 0x8ea0
jmp 0x4c49
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x3380
movq -0x520(%rbp), %rdx
leaq 0xd8f4(%rip), %rsi      # 0x1255e
leaq -0x2b8(%rbp), %rdi
callq 0x8ea0
jmp 0x4c78
leaq -0x2e1(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x3380
movq -0x528(%rbp), %rdx
leaq 0xdb0e(%rip), %rsi      # 0x127a7
leaq -0x2e0(%rbp), %rdi
callq 0x8ea0
jmp 0x4ca7
movq -0x510(%rbp), %rdi
leaq -0x290(%rbp), %rsi
leaq -0x2b8(%rbp), %rdx
leaq -0x2e0(%rbp), %rcx
callq 0x4360
jmp 0x4cca
movq -0x460(%rbp), %rax
movq -0x510(%rbp), %rcx
movb $0x0, -0x2e2(%rbp)
movq %rcx, 0x60(%rax)
leaq -0x2e0(%rbp), %rdi
callq 0x3130
leaq -0x2e1(%rbp), %rdi
callq 0x3250
leaq -0x2b8(%rbp), %rdi
callq 0x3130
leaq -0x2b9(%rbp), %rdi
callq 0x3250
leaq -0x290(%rbp), %rdi
callq 0x3130
leaq -0x291(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x530(%rbp)
jmp 0x4d3e
movb $0x1, -0x35a(%rbp)
leaq -0x309(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x3380
movq -0x538(%rbp), %rdx
leaq 0xda4c(%rip), %rsi      # 0x127b2
leaq -0x308(%rbp), %rdi
callq 0x8ea0
jmp 0x4d74
leaq -0x331(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x3380
movq -0x540(%rbp), %rdx
leaq 0xd7af(%rip), %rsi      # 0x12544
leaq -0x330(%rbp), %rdi
callq 0x8ea0
jmp 0x4da3
leaq -0x359(%rbp), %rdi
movq %rdi, -0x548(%rbp)
callq 0x3380
movq -0x548(%rbp), %rdx
leaq 0xd9f6(%rip), %rsi      # 0x127ba
leaq -0x358(%rbp), %rdi
callq 0x8ea0
jmp 0x4dd2
movq -0x530(%rbp), %rdi
leaq -0x308(%rbp), %rsi
leaq -0x330(%rbp), %rdx
leaq -0x358(%rbp), %rcx
callq 0x4080
jmp 0x4df5
movq -0x460(%rbp), %rax
movq -0x530(%rbp), %rcx
movb $0x0, -0x35a(%rbp)
movq %rcx, 0x48(%rax)
leaq -0x358(%rbp), %rdi
callq 0x3130
leaq -0x359(%rbp), %rdi
callq 0x3250
leaq -0x330(%rbp), %rdi
callq 0x3130
leaq -0x331(%rbp), %rdi
callq 0x3250
leaq -0x308(%rbp), %rdi
callq 0x3130
leaq -0x309(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x550(%rbp)
jmp 0x4e69
movb $0x1, -0x3d2(%rbp)
leaq -0x381(%rbp), %rdi
movq %rdi, -0x558(%rbp)
callq 0x3380
movq -0x558(%rbp), %rdx
leaq 0xd932(%rip), %rsi      # 0x127c3
leaq -0x380(%rbp), %rdi
callq 0x8ea0
jmp 0x4e9f
leaq -0x3a9(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x3380
movq -0x560(%rbp), %rdx
leaq 0xd68c(%rip), %rsi      # 0x1254c
leaq -0x3a8(%rbp), %rdi
callq 0x8ea0
jmp 0x4ece
leaq -0x3d1(%rbp), %rdi
movq %rdi, -0x568(%rbp)
callq 0x3380
movq -0x568(%rbp), %rdx
leaq 0xd8e0(%rip), %rsi      # 0x127cf
leaq -0x3d0(%rbp), %rdi
callq 0x8ea0
jmp 0x4efd
movq -0x550(%rbp), %rdi
leaq -0x380(%rbp), %rsi
leaq -0x3a8(%rbp), %rdx
leaq -0x3d0(%rbp), %rcx
callq 0x4080
jmp 0x4f20
movq -0x460(%rbp), %rax
movq -0x550(%rbp), %rcx
movb $0x0, -0x3d2(%rbp)
movq %rcx, 0x50(%rax)
leaq -0x3d0(%rbp), %rdi
callq 0x3130
leaq -0x3d1(%rbp), %rdi
callq 0x3250
leaq -0x3a8(%rbp), %rdi
callq 0x3130
leaq -0x3a9(%rbp), %rdi
callq 0x3250
leaq -0x380(%rbp), %rdi
callq 0x3130
leaq -0x381(%rbp), %rdi
callq 0x3250
movl $0xa0, %edi
callq 0x3210
movq %rax, -0x570(%rbp)
jmp 0x4f94
movb $0x1, -0x44a(%rbp)
leaq -0x3f9(%rbp), %rdi
movq %rdi, -0x578(%rbp)
callq 0x3380
movq -0x578(%rbp), %rdx
leaq 0xd824(%rip), %rsi      # 0x127e0
leaq -0x3f8(%rbp), %rdi
callq 0x8ea0
jmp 0x4fca
leaq -0x421(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0x3380
movq -0x580(%rbp), %rdx
leaq 0xd54b(%rip), %rsi      # 0x12536
leaq -0x420(%rbp), %rdi
callq 0x8ea0
jmp 0x4ff9
leaq -0x449(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x3380
movq -0x588(%rbp), %rdx
leaq 0xd7cd(%rip), %rsi      # 0x127e7
leaq -0x448(%rbp), %rdi
callq 0x8ea0
jmp 0x5028
movq -0x570(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
leaq -0x420(%rbp), %rdx
leaq -0x448(%rbp), %rcx
callq 0x4080
jmp 0x504b
movq -0x460(%rbp), %rax
movq -0x570(%rbp), %rcx
movb $0x0, -0x44a(%rbp)
movq %rcx, 0x58(%rax)
leaq -0x448(%rbp), %rdi
callq 0x3130
leaq -0x449(%rbp), %rdi
callq 0x3250
leaq -0x420(%rbp), %rdi
callq 0x3130
leaq -0x421(%rbp), %rdi
callq 0x3250
leaq -0x3f8(%rbp), %rdi
callq 0x3130
leaq -0x3f9(%rbp), %rdi
callq 0x3250
movq -0x460(%rbp), %rax
movq 0x20(%rax), %rdi
movq 0x48(%rax), %rsi
callq 0xd930
jmp 0x50c2
movq -0x460(%rbp), %rax
movq 0x20(%rax), %rdi
movq 0x60(%rax), %rsi
callq 0xd910
jmp 0x50d8
movq -0x460(%rbp), %rax
movq 0x20(%rax), %rdi
movq 0x28(%rax), %rsi
callq 0xd8d0
jmp 0x50ee
movq -0x460(%rbp), %rax
movq 0x20(%rax), %rsi
movq 0x28(%rax), %rdi
callq 0xd8b0
jmp 0x5104
movq -0x460(%rbp), %rax
movq 0x28(%rax), %rdi
movq 0x30(%rax), %rsi
callq 0xd8d0
jmp 0x511a
movq -0x460(%rbp), %rax
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rdi
callq 0xd8b0
jmp 0x5130
movq -0x460(%rbp), %rax
movq 0x30(%rax), %rdi
movq 0x38(%rax), %rsi
callq 0xd8d0
jmp 0x5146
movq -0x460(%rbp), %rax
movq 0x30(%rax), %rsi
movq 0x38(%rax), %rdi
callq 0xd8b0
jmp 0x515c
movq -0x460(%rbp), %rax
movq 0x38(%rax), %rdi
movq 0x40(%rax), %rsi
callq 0xd910
jmp 0x5172
movq -0x460(%rbp), %rax
movq 0x38(%rax), %rdi
movq 0x58(%rax), %rsi
callq 0xd930
jmp 0x5188
movq -0x460(%rbp), %rax
movq 0x38(%rax), %rsi
movq 0x40(%rax), %rdi
callq 0xd8f0
jmp 0x519e
movq -0x460(%rbp), %rax
movq 0x40(%rax), %rdi
movq 0x48(%rax), %rsi
callq 0xd910
jmp 0x51b4
movq -0x460(%rbp), %rax
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdi
callq 0xd8f0
jmp 0x51ca
movq -0x460(%rbp), %rax
movq 0x48(%rax), %rdi
movq 0x50(%rax), %rsi
callq 0xd8b0
jmp 0x51e0
movq -0x460(%rbp), %rax
movq 0x20(%rax), %rsi
movq 0x48(%rax), %rdi
callq 0xd930
jmp 0x51f6
movq -0x460(%rbp), %rax
movq 0x48(%rax), %rsi
movq 0x50(%rax), %rdi
callq 0xd8d0
jmp 0x520c
movq -0x460(%rbp), %rax
movq 0x50(%rax), %rdi
movq 0x58(%rax), %rsi
callq 0xd8b0
jmp 0x5222
movq -0x460(%rbp), %rax
movq 0x50(%rax), %rsi
movq 0x58(%rax), %rdi
callq 0xd8d0
jmp 0x5238
movq -0x460(%rbp), %rax
movq 0x58(%rax), %rdi
movq 0x60(%rax), %rsi
callq 0xd8f0
jmp 0x524e
movq -0x460(%rbp), %rax
movq 0x38(%rax), %rsi
movq 0x58(%rax), %rdi
callq 0xd930
jmp 0x5264
movq -0x460(%rbp), %rax
movq 0x58(%rax), %rsi
movq 0x60(%rax), %rdi
callq 0xd910
jmp 0x527a
movq -0x460(%rbp), %rax
movq 0x20(%rax), %rsi
movq 0x60(%rax), %rdi
callq 0xd8f0
jmp 0x5290
movq -0x460(%rbp), %rax
movb $0x20, 0x8a(%rax)
movq $0x0, 0x18(%rax)
callq 0x3080
movl %eax, %ecx
movslq %ecx, %rax
imulq $0x38e38e39, %rax, %rdx # imm = 0x38E38E39
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0x20, %rdx
sarl %edx
addl %eax, %edx
movl %edx, %eax
leal (%rax,%rax,8), %edx
movl %ecx, %eax
negl %edx
movl %edx, %ecx
leal 0x1(%rax,%rcx), %eax
movl %eax, -0x450(%rbp)
movl -0x450(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x590(%rbp)
subl $0x8, %eax
ja 0x59cc
movq -0x590(%rbp), %rax
leaq 0xd379(%rip), %rcx      # 0x1267c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x59f0
movq -0x458(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x591, %esi            # imm = 0x591
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x53a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5396
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5381
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3130
leaq -0x89(%rbp), %rdi
callq 0x3250
leaq -0x60(%rbp), %rdi
callq 0x3130
leaq -0x61(%rbp), %rdi
callq 0x3250
leaq -0x38(%rbp), %rdi
callq 0x3130
leaq -0x39(%rbp), %rdi
callq 0x3250
testb $0x1, -0x8a(%rbp)
jne 0x53bc
jmp 0x53cd
movq -0x470(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5444
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x542c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5414
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x3130
leaq -0x101(%rbp), %rdi
callq 0x3250
leaq -0xd8(%rbp), %rdi
callq 0x3130
leaq -0xd9(%rbp), %rdi
callq 0x3250
leaq -0xb0(%rbp), %rdi
callq 0x3130
leaq -0xb1(%rbp), %rdi
callq 0x3250
testb $0x1, -0x102(%rbp)
jne 0x545b
jmp 0x546c
movq -0x490(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x3130
leaq -0x179(%rbp), %rdi
callq 0x3250
leaq -0x150(%rbp), %rdi
callq 0x3130
leaq -0x151(%rbp), %rdi
callq 0x3250
leaq -0x128(%rbp), %rdi
callq 0x3130
leaq -0x129(%rbp), %rdi
callq 0x3250
testb $0x1, -0x17a(%rbp)
jne 0x54fa
jmp 0x550b
movq -0x4b0(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5582
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x556a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5552
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x3130
leaq -0x1f1(%rbp), %rdi
callq 0x3250
leaq -0x1c8(%rbp), %rdi
callq 0x3130
leaq -0x1c9(%rbp), %rdi
callq 0x3250
leaq -0x1a0(%rbp), %rdi
callq 0x3130
leaq -0x1a1(%rbp), %rdi
callq 0x3250
testb $0x1, -0x1f2(%rbp)
jne 0x5599
jmp 0x55aa
movq -0x4d0(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5621
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5609
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x55f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x3130
leaq -0x269(%rbp), %rdi
callq 0x3250
leaq -0x240(%rbp), %rdi
callq 0x3130
leaq -0x241(%rbp), %rdi
callq 0x3250
leaq -0x218(%rbp), %rdi
callq 0x3130
leaq -0x219(%rbp), %rdi
callq 0x3250
testb $0x1, -0x26a(%rbp)
jne 0x5638
jmp 0x5649
movq -0x4f0(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x56c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x56a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5690
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x3130
leaq -0x2e1(%rbp), %rdi
callq 0x3250
leaq -0x2b8(%rbp), %rdi
callq 0x3130
leaq -0x2b9(%rbp), %rdi
callq 0x3250
leaq -0x290(%rbp), %rdi
callq 0x3130
leaq -0x291(%rbp), %rdi
callq 0x3250
testb $0x1, -0x2e2(%rbp)
jne 0x56d7
jmp 0x56e8
movq -0x510(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x575f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5747
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x572f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x3130
leaq -0x359(%rbp), %rdi
callq 0x3250
leaq -0x330(%rbp), %rdi
callq 0x3130
leaq -0x331(%rbp), %rdi
callq 0x3250
leaq -0x308(%rbp), %rdi
callq 0x3130
leaq -0x309(%rbp), %rdi
callq 0x3250
testb $0x1, -0x35a(%rbp)
jne 0x5776
jmp 0x5787
movq -0x530(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x57fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x57e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x57ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x3130
leaq -0x3d1(%rbp), %rdi
callq 0x3250
leaq -0x3a8(%rbp), %rdi
callq 0x3130
leaq -0x3a9(%rbp), %rdi
callq 0x3250
leaq -0x380(%rbp), %rdi
callq 0x3130
leaq -0x381(%rbp), %rdi
callq 0x3250
testb $0x1, -0x3d2(%rbp)
jne 0x5815
jmp 0x5826
movq -0x550(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x589d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x5885
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x586d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x448(%rbp), %rdi
callq 0x3130
leaq -0x449(%rbp), %rdi
callq 0x3250
leaq -0x420(%rbp), %rdi
callq 0x3130
leaq -0x421(%rbp), %rdi
callq 0x3250
leaq -0x3f8(%rbp), %rdi
callq 0x3130
leaq -0x3f9(%rbp), %rdi
callq 0x3250
testb $0x1, -0x44a(%rbp)
jne 0x58b4
jmp 0x58c5
movq -0x570(%rbp), %rdi
movl $0xa0, %esi
callq 0x3220
jmp 0x59f0
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xce34(%rip), %rsi      # 0x12710
callq 0x32e0
jmp 0x58e3
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xcea8(%rip), %rsi      # 0x127a2
callq 0x32e0
jmp 0x5901
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xcec8(%rip), %rsi      # 0x127e0
callq 0x32e0
jmp 0x591f
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xce8d(%rip), %rsi      # 0x127c3
callq 0x32e0
jmp 0x593d
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xce5e(%rip), %rsi      # 0x127b2
callq 0x32e0
jmp 0x595b
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xce17(%rip), %rsi      # 0x12789
callq 0x32e0
jmp 0x5979
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xcdbe(%rip), %rsi      # 0x1274b
callq 0x32e0
jmp 0x5994
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xcdc3(%rip), %rsi      # 0x1276b
callq 0x32e0
jmp 0x59af
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xcd68(%rip), %rsi      # 0x1272b
callq 0x32e0
jmp 0x59ca
jmp 0x59e7
movq -0x460(%rbp), %rdi
addq $0x68, %rdi
leaq 0xee55(%rip), %rsi      # 0x14833
callq 0x32e0
jmp 0x59e5
jmp 0x59e7
addq $0x590, %rsp            # imm = 0x590
popq %rbp
retq
movq -0x468(%rbp), %rdi
callq 0x3130
movq -0x10(%rbp), %rdi
callq 0x3370
nopw %cs:(%rax,%rax)