// File: /workspace/github_cpp_makefile_star2_O3/hobbitsyfeet[P]Turn/turn.cc
// Function: Turn::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Turn::run(string playername){

	//Unit player;
	player.loadUnit(playername);
	Chart world;

  string option;
  int x,y;
  cout<<player.getCurrentWorld();
  //load info
  //getPlayer();
  world.loadWorld(player.getCurrentWorld());
  world.setChartName(player.getCurrentWorld());
 // world.setSpawn('O',player.posX,player.posY);
  cout<<"Loaded:"<<player.getName();

  //start commands


  while(option != "end"){

		//First input
    cout<<endl<<">>";
    cin>>option;
	cout << "\x1B[2J\x1B[H";
		welcomeBanner("banners/banner.txt");

      //**INVENTORY**
    if(option == "inv"){
      player.inv.displayInv();
    }

		else if(option == "path"){
			cout<<"entering path";
			world.findPath(player.getPosX(),player.getPosY(),15,15);
		}
    //**STATS**
    else if (option == "stats"){
      player.displayStats();
    }
    //**MOVE**
    else if(option == "move"){
    	movePlayer(player,world);
		}


		else if(option == "map"){
			//world.displayWorld();
			//cout<<endl;
			world.displayRange(player.getPosX(),player.getPosY(),5);
			//player.getPos();
		}
		else if(option == "pos"){
			player.getPos();
		}
		else if(option == "target-pos"){
			target.getPos();
		}
		else if(option == "equip"){
			cout<<"What do you want to equip? >>";
			cin>>option;
			player.equipItem(option);
		}
		else if(option == "un-equip"){
			cout<<"What do you want to un-equip? >>";
			cin>>option;
			player.unEquipItem(option);
		}
		else if(option == "target"){
			cout<<"Who >>";
			cin >> option;
			target.loadUnit(option);
			cout<<"targeted:"<<endl;
			target.displayStats();
		}
		else if (option == "target-stats"){
			target.displayStats();
		}
		else if(option == "attack"){
			player.attackUnit(target);
		}
		else if(option =="loot"){
			if(target.getHealth() == 0){
				target.inv.displayInv();
				cout<<endl<<"choose an item";
				cin>>option;
				if(option!="nothing")
				player.lootUnit(option,target);
				if(target.getName() != "NoName")
				target.saveUnit(target.getName());
				player.saveUnit(player.getName());
			}
			else cout<<"Cannot loot";
		}
		else if(option == "give"){
			player.inv.displayInv();
			cout<<endl<<"what to give>>";
			cin>>option;
     	 if(option != "nothing")
			target.lootUnit(option,player);
			if(target.getName() != "NoName")
			target.saveUnit(target.getName());
			player.saveUnit(player.getName());
		}
		else if (option == "distance"){
			cout<<player.distanceTo(target.getPosX(),target.getPosY());
		}
		else if (option == "tbag"){
			cout<<"how many times?>>";
			int tbags;
			cin>>tbags;
			//static_cast<int>option;
			for(int i =1;i<=tbags; i++){
				cout<<player.getName()<<" T-bagged ";

				if(target.getName() == player.getName())
				cout<<"himself ";
				else
				cout<<target.getName()<<" ";

				cout<<i;
				if(i<=1)
				cout<<" time"<<endl;
				else
				cout<<" times"<<endl;
			}

		}
		//if you end up attacking yourself, stats wouldn't differ from saved info.
		//player.loadUnit(player.getName());
		else if(option =="save"){
		//	cout<<"who >>";
		//	cin>>option;
			player.saveUnit(player.getName() );
		}

		else if(option == "help" || option =="?"){
			cout<<"Command List: \n";
			cout<<"Actions,Stats or Other >>";
			cin>>option;
			if(option =="actions"){
				cout<<"Actions:"<<endl
				<<"attack: Deals damage to target"<<endl
				<<"equip: Equips item and gain stats"<<endl
				<<"un-equip: Un-equip item in order to equip another"<<endl
				<<"move: North,east,south,west for a distance"<<endl
				<<"give: give another target an item from your inventory"<<endl
				<<"loot: Put dead target's item into your inventory"<<endl
				<<"taret: Name a unit to target, get info and attack"<<endl
				<<"t-bag: Tbag your target!"<<endl;
			}
		}

		else
			cout<<"no such command\n";
	//welcome();
	}
	cout << "\x1B[2J\x1B[H";
		welcomeBanner("banners/banner.txt");
		welcomeBanner("banners/bannerOver.txt" );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
movq %rdi, %rbx
leaq -0x2c0(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rsi), %rax
movq 0x8(%rsi), %rdx
addq %rax, %rdx
leaq -0x2d0(%rbp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x347c
movq %rbx, %rdi
movq %r14, %rsi
callq 0x51b4
movq -0x2d0(%rbp), %rdi
cmpq %r15, %rdi
je 0x60d0
movq -0x2c0(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x240(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x4faa(%rip), %rsi      # 0xb08c
leaq 0x4fac(%rip), %rdx      # 0xb095
leaq -0x250(%rbp), %rdi
callq 0x351a
leaq -0x338(%rbp), %rdi
leaq -0x250(%rbp), %rsi
movl $0x20, %edx
movl $0x20, %ecx
xorl %r8d, %r8d
callq 0x7adc
movq -0x250(%rbp), %rdi
cmpq %r14, %rdi
je 0x6130
movq -0x240(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x68(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x37e0
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq 0x8e72(%rip), %rdi      # 0xefd0
callq 0x2230
leaq -0x40(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x617c
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x2b0(%rbp), %rdi
movq %rbx, %rsi
callq 0x37e0
leaq -0x338(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x7b70
leaq -0x2a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x61bd
movq -0x2a0(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x290(%rbp), %rdi
movq %rbx, %rsi
callq 0x37e0
leaq -0x338(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x8904
leaq -0x280(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x61fe
movq -0x280(%rbp), %rsi
incq %rsi
callq 0x2200
movq 0x8dcb(%rip), %rdi      # 0xefd0
leaq 0x51d4(%rip), %rsi      # 0xb3e0
movl $0x7, %edx
callq 0x2230
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3734
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq 0x8d9f(%rip), %r14      # 0xefd0
movq %r14, %rdi
callq 0x2230
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x624e
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2200
leaq 0x5193(%rip), %rsi      # 0xb3e8
leaq -0x78(%rbp), %rdi
callq 0x20c0
testl %eax, %eax
je 0x6e2b
leaq 0xa0(%rbx), %rax
movq %rax, -0x30(%rbp)
leaq 0x80(%rbx), %rax
movq %rax, -0x88(%rbp)
leaq 0x120(%rbx), %rax
movq %rax, -0x150(%rbp)
leaq -0x78(%rbp), %r12
leaq -0x148(%rbp), %r13
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4df0(%rip), %rsi      # 0xb0be
callq 0x2230
movq 0x8d06(%rip), %rdi      # 0xefe0
movq %r12, %rsi
callq 0x2250
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4d6c(%rip), %rsi      # 0xb05d
callq 0x2230
leaq -0x138(%rbp), %rax
movq %rax, -0x148(%rbp)
movq %r13, %rdi
leaq 0x4d2a(%rip), %rsi      # 0xb038
leaq 0x4d35(%rip), %rdx      # 0xb04a
callq 0x351a
movq %r13, %rsi
callq 0x7258
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x6344
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x2200
movq %r12, %rdi
leaq 0x509e(%rip), %rsi      # 0xb3ec
callq 0x20c0
testl %eax, %eax
je 0x6676
movq %r12, %rdi
leaq 0x5094(%rip), %rsi      # 0xb3f9
callq 0x20c0
testl %eax, %eax
je 0x6687
movq %r12, %rdi
leaq 0x51df(%rip), %rsi      # 0xb55b
callq 0x20c0
movq %rbx, %rdi
testl %eax, %eax
je 0x68cd
movq %r12, %rdi
leaq 0x5068(%rip), %rsi      # 0xb3fe
callq 0x20c0
testl %eax, %eax
je 0x66cf
movq %r12, %rdi
leaq 0x5056(%rip), %rsi      # 0xb403
callq 0x20c0
testl %eax, %eax
je 0x66ed
movq %r12, %rdi
leaq 0x504a(%rip), %rsi      # 0xb40e
callq 0x20c0
movq %rbx, %rdi
testl %eax, %eax
je 0x66e3
movq %r12, %rdi
leaq 0x5029(%rip), %rsi      # 0xb407
callq 0x20c0
movq -0x30(%rbp), %rdi
testl %eax, %eax
je 0x66e3
movq %r12, %rdi
leaq 0x503a(%rip), %rsi      # 0xb433
callq 0x20c0
testl %eax, %eax
je 0x671b
movq %r12, %rdi
leaq 0x5020(%rip), %rsi      # 0xb430
callq 0x20c0
testl %eax, %eax
je 0x6792
movq %r12, %rdi
leaq 0x5111(%rip), %rsi      # 0xb538
callq 0x20c0
testl %eax, %eax
je 0x6814
movq %r12, %rdi
leaq 0x502d(%rip), %rsi      # 0xb46b
callq 0x20c0
movq -0x30(%rbp), %rdi
testl %eax, %eax
je 0x68cd
movq %r12, %rdi
leaq 0x51f7(%rip), %rsi      # 0xb650
callq 0x20c0
testl %eax, %eax
je 0x68ee
movq %r12, %rdi
leaq 0x4dce(%rip), %rsi      # 0xb23e
callq 0x20c0
testl %eax, %eax
je 0x68fc
movq %r12, %rdi
leaq 0x5008(%rip), %rsi      # 0xb48f
callq 0x20c0
testl %eax, %eax
je 0x6923
movq %r12, %rdi
leaq 0x5117(%rip), %rsi      # 0xb5b5
callq 0x20c0
testl %eax, %eax
je 0x6a8a
movq %r12, %rdi
leaq 0x4fee(%rip), %rsi      # 0xb4a3
callq 0x20c0
testl %eax, %eax
je 0x6c22
movq %r12, %rdi
leaq 0x500f(%rip), %rsi      # 0xb4db
callq 0x20c0
testl %eax, %eax
je 0x6dea
movq %r12, %rdi
leaq 0x4ffd(%rip), %rsi      # 0xb4e0
callq 0x20c0
testl %eax, %eax
je 0x650f
movq %r12, %rdi
leaq 0x4b65(%rip), %rsi      # 0xb05b
callq 0x20c0
movl $0x10, %edx
leaq 0x5169(%rip), %rsi      # 0xb670
testl %eax, %eax
jne 0x6919
movl $0xf, %edx
movq %r14, %rdi
leaq 0x4fc7(%rip), %rsi      # 0xb4e5
callq 0x2230
movl $0x19, %edx
movq %r14, %rdi
leaq 0x4fc3(%rip), %rsi      # 0xb4f5
callq 0x2230
movq 0x8aa2(%rip), %rdi      # 0xefe0
movq %r12, %rsi
callq 0x2250
movq %r12, %rdi
leaq 0x4fbf(%rip), %rsi      # 0xb50f
callq 0x20c0
testl %eax, %eax
jne 0x68d2
movl $0x8, %edx
movq %r14, %rdi
leaq 0x4fab(%rip), %rsi      # 0xb517
callq 0x2230
movq %r14, %rdi
callq 0x2120
movq %rax, %r15
movl $0x1e, %edx
movq %rax, %rdi
leaq 0x4f95(%rip), %rsi      # 0xb520
callq 0x2230
movq %r15, %rdi
callq 0x2120
movq %rax, %r15
movl $0x21, %edx
movq %rax, %rdi
leaq 0x4f95(%rip), %rsi      # 0xb53f
callq 0x2230
movq %r15, %rdi
callq 0x2120
movq %rax, %r15
movl $0x31, %edx
movq %rax, %rdi
leaq 0x4f98(%rip), %rsi      # 0xb561
callq 0x2230
movq %r15, %rdi
callq 0x2120
movq %rax, %r15
movl $0x2a, %edx
movq %rax, %rdi
leaq 0x4fab(%rip), %rsi      # 0xb593
callq 0x2230
movq %r15, %rdi
callq 0x2120
movq %rax, %r15
movl $0x35, %edx
movq %rax, %rdi
leaq 0x4fb7(%rip), %rsi      # 0xb5be
callq 0x2230
movq %r15, %rdi
callq 0x2120
movq %rax, %r15
movl $0x30, %edx
movq %rax, %rdi
leaq 0x4fce(%rip), %rsi      # 0xb5f4
callq 0x2230
movq %r15, %rdi
callq 0x2120
movq %rax, %r15
movl $0x31, %edx
movq %rax, %rdi
leaq 0x4fe0(%rip), %rsi      # 0xb625
callq 0x2230
movq %r15, %rdi
callq 0x2120
movq %rax, %r15
movl $0x18, %edx
movq %rax, %rdi
leaq 0x4ff3(%rip), %rsi      # 0xb657
callq 0x2230
movq %r15, %rdi
callq 0x2120
jmp 0x68d2
movq -0x88(%rbp), %rdi
callq 0x941c
jmp 0x68d2
movl $0xd, %edx
movq %r14, %rdi
leaq 0x4d5a(%rip), %rsi      # 0xb3f0
callq 0x2230
movq %rbx, %rdi
callq 0x37d6
movl %eax, %r15d
movq %rbx, %rdi
callq 0x37cc
leaq -0x338(%rbp), %rdi
movl %r15d, %esi
movl %eax, %edx
movl $0xf, %ecx
movl $0xf, %r8d
callq 0x875c
jmp 0x68d2
movq %rbx, %rsi
leaq -0x338(%rbp), %rdx
callq 0x7426
jmp 0x68d2
callq 0x4b44
jmp 0x68d2
movq %rbx, %rdi
callq 0x37d6
movl %eax, %r15d
movq %rbx, %rdi
callq 0x37cc
leaq -0x338(%rbp), %rdi
movl %r15d, %esi
movl %eax, %edx
movl $0x5, %ecx
callq 0x8480
jmp 0x68d2
movl $0x1d, %edx
movq %r14, %rdi
leaq 0x4ce8(%rip), %rsi      # 0xb412
callq 0x2230
movq 0x88aa(%rip), %rdi      # 0xefe0
movq %r12, %rsi
callq 0x2250
leaq -0x118(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
addq %rsi, %rdx
leaq -0x128(%rbp), %rdi
callq 0x347c
movq %rbx, %rdi
leaq -0x128(%rbp), %rsi
callq 0x4b82
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x68d2
movq -0x118(%rbp), %rsi
jmp 0x6807
movl $0x20, %edx
movq %r14, %rdi
leaq 0x4c98(%rip), %rsi      # 0xb439
callq 0x2230
movq 0x8833(%rip), %rdi      # 0xefe0
movq %r12, %rsi
callq 0x2250
leaq -0xf8(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
addq %rsi, %rdx
leaq -0x108(%rbp), %rdi
callq 0x347c
movq %rbx, %rdi
leaq -0x108(%rbp), %rsi
callq 0x4736
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x68d2
movq -0xf8(%rbp), %rsi
incq %rsi
callq 0x2200
jmp 0x68d2
movl $0x6, %edx
movq %r14, %rdi
leaq 0x4c37(%rip), %rsi      # 0xb45a
callq 0x2230
movq 0x87b1(%rip), %rdi      # 0xefe0
movq %r12, %rsi
callq 0x2250
leaq -0xd8(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
addq %rsi, %rdx
leaq -0xe8(%rbp), %rdi
callq 0x347c
movq -0x30(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x51b4
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x688e
movq -0xd8(%rbp), %rsi
incq %rsi
callq 0x2200
movl $0x9, %edx
movq %r14, %rdi
leaq 0x4bc4(%rip), %rsi      # 0xb461
callq 0x2230
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x30(%rbp), %rdi
callq 0x3888
movq %r12, %rdi
leaq 0x4b0c(%rip), %rsi      # 0xb3e8
callq 0x20c0
testl %eax, %eax
jne 0x6298
jmp 0x6e2b
movq %rbx, %rdi
movq -0x30(%rbp), %rsi
callq 0x3b48
jmp 0x68d2
movq -0x30(%rbp), %rdi
callq 0x3774
movl $0xb, %edx
leaq 0x4926(%rip), %rsi      # 0xb237
testl %eax, %eax
je 0x6abb
movq %r14, %rdi
callq 0x2230
jmp 0x68d2
movq -0x88(%rbp), %rdi
callq 0x941c
movq %r14, %rdi
callq 0x2120
movl $0xe, %edx
movq %rax, %rdi
leaq 0x4b4e(%rip), %rsi      # 0xb494
callq 0x2230
movq 0x868e(%rip), %rdi      # 0xefe0
movq %r12, %rsi
callq 0x2250
movq %r12, %rdi
leaq 0x4b23(%rip), %rsi      # 0xb487
callq 0x20c0
testl %eax, %eax
je 0x69c7
leaq -0x98(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
addq %rsi, %rdx
leaq -0xa8(%rbp), %rdi
callq 0x347c
movq -0x30(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movq %rbx, %rdx
callq 0x4370
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x69c7
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x50(%rbp), %r15
movq %r15, %rdi
movq -0x30(%rbp), %rsi
callq 0x3734
movq %r15, %rdi
leaq 0x46a4(%rip), %rsi      # 0xb085
callq 0x20c0
movl %eax, %r15d
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6a02
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2200
testl %r15d, %r15d
je 0x6a49
leaq -0x1b0(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x3734
movq -0x30(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x4208
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x6a49
movq -0x1a0(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x190(%rbp), %rdi
movq %rbx, %rsi
callq 0x3734
movq %rbx, %rdi
leaq -0x190(%rbp), %rsi
callq 0x4208
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x68d2
movq -0x180(%rbp), %rsi
jmp 0x6807
movq -0x30(%rbp), %rdi
callq 0x37d6
movl %eax, %r15d
movq -0x30(%rbp), %rdi
callq 0x37cc
movq %rbx, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x41e0
movq %r14, %rdi
movl %eax, %esi
callq 0x2300
jmp 0x68d2
movq -0x150(%rbp), %rdi
callq 0x941c
movq %r14, %rdi
callq 0x2120
movl $0xe, %edx
movq %rax, %rdi
leaq 0x499a(%rip), %rsi      # 0xb478
callq 0x2230
movq 0x84f6(%rip), %rdi      # 0xefe0
movq %r12, %rsi
callq 0x2250
movq %r12, %rdi
leaq 0x498b(%rip), %rsi      # 0xb487
callq 0x20c0
testl %eax, %eax
je 0x6b5f
leaq -0xb8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
addq %rsi, %rdx
leaq -0xc8(%rbp), %rdi
callq 0x347c
movq %rbx, %rdi
leaq -0xc8(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x4370
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x6b5f
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x50(%rbp), %r15
movq %r15, %rdi
movq -0x30(%rbp), %rsi
callq 0x3734
movq %r15, %rdi
leaq 0x450c(%rip), %rsi      # 0xb085
callq 0x20c0
movl %eax, %r15d
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6b9a
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2200
testl %r15d, %r15d
je 0x6be1
leaq -0x1f0(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x3734
movq -0x30(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x4208
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x6be1
movq -0x1e0(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x1d0(%rbp), %rdi
movq %rbx, %rsi
callq 0x3734
movq %rbx, %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x4208
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x68d2
movq -0x1c0(%rbp), %rsi
jmp 0x6807
movl $0x11, %edx
movq %r14, %rdi
leaq 0x4877(%rip), %rsi      # 0xb4a8
callq 0x2230
movq 0x83a3(%rip), %rdi      # 0xefe0
leaq -0x58(%rbp), %rsi
callq 0x2150
cmpl $0x0, -0x58(%rbp)
jle 0x68d2
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3734
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
callq 0x2230
movl $0xa, %edx
movq %rax, %rdi
leaq 0x483c(%rip), %rsi      # 0xb4ba
callq 0x2230
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6c9c
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x3734
leaq -0x270(%rbp), %rdi
movq %rbx, %rsi
callq 0x3734
movl %r15d, -0x7c(%rbp)
movq -0x48(%rbp), %rdx
cmpq -0x268(%rbp), %rdx
jne 0x6ce8
movq -0x270(%rbp), %r15
testq %rdx, %rdx
je 0x6cf8
movq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x2210
testl %eax, %eax
sete %al
jmp 0x6cfa
movq -0x270(%rbp), %r15
movl $0x0, -0x54(%rbp)
jmp 0x6cfd
movb $0x1, %al
movl %eax, -0x54(%rbp)
leaq -0x260(%rbp), %rax
cmpq %rax, %r15
je 0x6d1b
movq -0x260(%rbp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x2200
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6d34
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2200
cmpb $0x0, -0x54(%rbp)
movl -0x7c(%rbp), %r15d
je 0x6d54
movl $0x8, %edx
movq %r14, %rdi
leaq 0x4778(%rip), %rsi      # 0xb4c5
callq 0x2230
jmp 0x6d9e
leaq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x3734
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
callq 0x2230
movl $0x1, %edx
movq %rax, %rdi
leaq 0x49b4(%rip), %rsi      # 0xb734
callq 0x2230
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6d9e
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2200
incl %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x2300
cmpl $0x2, %r15d
leaq 0x471d(%rip), %rsi      # 0xb4d4
leaq 0x4710(%rip), %rax      # 0xb4ce
cmovbq %rax, %rsi
movl $0x6, %edx
sbbq $0x0, %rdx
movq %r14, %rdi
callq 0x2230
movq %r14, %rdi
callq 0x2120
cmpl -0x58(%rbp), %r15d
jl 0x6c53
jmp 0x68d2
leaq -0x170(%rbp), %rdi
movq %rbx, %rsi
callq 0x3734
movq %rbx, %rdi
leaq -0x170(%rbp), %rsi
callq 0x4208
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x68d2
movq -0x160(%rbp), %rsi
jmp 0x6807
movq 0x819e(%rip), %rdi      # 0xefd0
leaq 0x4224(%rip), %rsi      # 0xb05d
movl $0x7, %edx
callq 0x2230
leaq -0x220(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x41e3(%rip), %rsi      # 0xb038
leaq 0x41ee(%rip), %rdx      # 0xb04a
leaq -0x230(%rbp), %rdi
callq 0x351a
leaq -0x230(%rbp), %rsi
callq 0x7258
movq -0x230(%rbp), %rdi
cmpq %r14, %rdi
je 0x6e8f
movq -0x220(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x200(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x47e0(%rip), %rsi      # 0xb681
leaq 0x47ef(%rip), %rdx      # 0xb697
leaq -0x210(%rbp), %rdi
callq 0x351a
leaq -0x210(%rbp), %rsi
callq 0x7258
movq -0x210(%rbp), %rdi
cmpq %r14, %rdi
je 0x6edb
movq -0x200(%rbp), %rsi
incq %rsi
callq 0x2200
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6ef4
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x2e0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f13
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x310(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6f32
movq -0x310(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x338(%rbp), %rdi
callq 0x7a18
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x160(%rbp), %rsi
jmp 0x721e
movq %rax, %rbx
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x1e0(%rbp), %rsi
jmp 0x721e
movq %rax, %rbx
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0xb8(%rbp), %rsi
jmp 0x721e
jmp 0x7228
movq %rax, %rbx
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x1c0(%rbp), %rsi
jmp 0x721e
jmp 0x7228
movq %rax, %rbx
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x1a0(%rbp), %rsi
jmp 0x721e
movq %rax, %rbx
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x98(%rbp), %rsi
jmp 0x721e
movq %rax, %rbx
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x180(%rbp), %rsi
jmp 0x721e
jmp 0x7228
jmp 0x7228
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0xd8(%rbp), %rsi
jmp 0x721e
jmp 0x70c8
jmp 0x70c8
jmp 0x7228
jmp 0x7228
movq %rax, %rbx
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0xf8(%rbp), %rsi
jmp 0x721e
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
jmp 0x71af
movq %rax, %rbx
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x118(%rbp), %rsi
jmp 0x721e
jmp 0x7228
movq %rax, %rbx
movq -0x210(%rbp), %rdi
cmpq %r14, %rdi
je 0x722b
movq -0x200(%rbp), %rsi
jmp 0x721e
jmp 0x7228
movq %rax, %rbx
movq -0x230(%rbp), %rdi
cmpq %r14, %rdi
je 0x722b
movq -0x220(%rbp), %rsi
jmp 0x721e
jmp 0x7228
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
jne 0x71b4
jmp 0x722b
jmp 0x7228
movq %rax, %rbx
leaq -0x280(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x722b
movq -0x280(%rbp), %rsi
jmp 0x721e
movq %rax, %rbx
leaq -0x2a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x722b
movq -0x2a0(%rbp), %rsi
jmp 0x721e
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x722b
movq -0x40(%rbp), %rsi
jmp 0x721e
jmp 0x7228
movq %rax, %rbx
movq -0x250(%rbp), %rdi
cmpq %r14, %rdi
je 0x7250
movq -0x240(%rbp), %rsi
jmp 0x71f3
movq %rax, %rbx
jmp 0x7250
movq %rax, %rbx
movq -0x2d0(%rbp), %rdi
cmpq %r15, %rdi
je 0x7250
movq -0x2c0(%rbp), %rsi
incq %rsi
callq 0x2200
jmp 0x7250
jmp 0x7228
jmp 0x7228
movq %rax, %rbx
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x722b
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x2200
jmp 0x722b
movq %rax, %rbx
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7244
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x2200
leaq -0x338(%rbp), %rdi
callq 0x79d0
movq %rbx, %rdi
callq 0x2310