// File: 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
subq $0x5f0, %rsp            # imm = 0x5F0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x408(%rbp)
leaq -0x30(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x3140
movq -0x408(%rbp), %rdi
movq -0x400(%rbp), %rsi
callq 0x7270
jmp 0x8fc3
leaq -0x30(%rbp), %rdi
callq 0x31c0
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x410(%rbp)
callq 0x3450
movq -0x410(%rbp), %rdx
leaq 0x906b(%rip), %rsi      # 0x12058
leaq -0xc8(%rbp), %rdi
callq 0x47d0
jmp 0x8ffb
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
movl $0x20, %ecx
xorl %r8d, %r8d
movl %ecx, %edx
callq 0xb590
jmp 0x901a
leaq -0xc8(%rbp), %rdi
callq 0x31c0
leaq -0xc9(%rbp), %rdi
callq 0x32d0
leaq -0xf0(%rbp), %rdi
callq 0x3390
movq -0x408(%rbp), %rsi
leaq -0x118(%rbp), %rdi
callq 0x5280
jmp 0x9053
movq 0xff76(%rip), %rdi      # 0x18fd0
leaq -0x118(%rbp), %rsi
callq 0x3270
jmp 0x9068
leaq -0x118(%rbp), %rdi
callq 0x31c0
movq -0x408(%rbp), %rsi
leaq -0x138(%rbp), %rdi
callq 0x5280
jmp 0x9089
leaq -0xa8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0xb640
jmp 0x909e
leaq -0x138(%rbp), %rdi
callq 0x31c0
movq -0x408(%rbp), %rsi
leaq -0x158(%rbp), %rdi
callq 0x5280
jmp 0x90bf
leaq -0xa8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0xcb60
jmp 0x90d4
leaq -0x158(%rbp), %rdi
callq 0x31c0
movq 0xfee9(%rip), %rdi      # 0x18fd0
leaq 0x9289(%rip), %rsi      # 0x12377
callq 0x3280
movq %rax, -0x418(%rbp)
jmp 0x90fc
movq -0x408(%rbp), %rsi
leaq -0x178(%rbp), %rdi
callq 0x50d0
jmp 0x9111
movq -0x418(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x3270
jmp 0x9126
leaq -0x178(%rbp), %rdi
callq 0x31c0
leaq 0x9246(%rip), %rsi      # 0x1237f
leaq -0xf0(%rbp), %rdi
callq 0x48e0
movb %al, -0x419(%rbp)
jmp 0x914d
movb -0x419(%rbp), %al
testb $0x1, %al
jne 0x915c
jmp 0xa3e9
movq 0xfe6d(%rip), %rdi      # 0x18fd0
movq 0xfe56(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x428(%rbp)
jmp 0x9178
movq -0x428(%rbp), %rdi
leaq 0x8f04(%rip), %rsi      # 0x1208a
callq 0x3280
jmp 0x918d
movq 0xfe4c(%rip), %rdi      # 0x18fe0
leaq -0xf0(%rbp), %rsi
callq 0x3350
jmp 0x91a2
movq 0xfe27(%rip), %rdi      # 0x18fd0
leaq 0x8e79(%rip), %rsi      # 0x12029
callq 0x3280
jmp 0x91b7
leaq -0x199(%rbp), %rdi
movq %rdi, -0x430(%rbp)
callq 0x3450
movq -0x430(%rbp), %rdx
leaq 0x8e2c(%rip), %rsi      # 0x12004
leaq -0x198(%rbp), %rdi
callq 0x47d0
jmp 0x91e6
movq -0x408(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0xa560
jmp 0x91fb
leaq -0x198(%rbp), %rdi
callq 0x31c0
leaq -0x199(%rbp), %rdi
callq 0x32d0
leaq 0x9169(%rip), %rsi      # 0x12383
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x431(%rbp)
jmp 0x922e
movb -0x431(%rbp), %al
testb $0x1, %al
jne 0x923d
jmp 0x9361
movq -0x408(%rbp), %rdi
subq $-0x80, %rdi
callq 0xfb40
jmp 0x924f
jmp 0xa3e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x31c0
jmp 0xa555
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x9294
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x31c0
leaq -0xc9(%rbp), %rdi
callq 0x32d0
jmp 0xa555
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x9350
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x31c0
leaq -0x199(%rbp), %rdi
callq 0x32d0
jmp 0xa53d
leaq 0x9028(%rip), %rsi      # 0x12390
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x432(%rbp)
jmp 0x937c
movb -0x432(%rbp), %al
testb $0x1, %al
jne 0x9388
jmp 0x93ed
movq 0xfc41(%rip), %rdi      # 0x18fd0
leaq 0x8ff1(%rip), %rsi      # 0x12387
callq 0x3280
jmp 0x939d
movq -0x408(%rbp), %rdi
callq 0x5260
movl %eax, -0x438(%rbp)
jmp 0x93b1
movq -0x408(%rbp), %rdi
callq 0x5240
movl %eax, -0x43c(%rbp)
jmp 0x93c5
movl -0x43c(%rbp), %edx
movl -0x438(%rbp), %esi
leaq -0xa8(%rbp), %rdi
movl $0xf, %r8d
movl %r8d, %ecx
callq 0xc8a0
jmp 0x93e8
jmp 0xa3e2
leaq 0x90fe(%rip), %rsi      # 0x124f2
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x43d(%rbp)
jmp 0x9408
movb -0x43d(%rbp), %al
testb $0x1, %al
jne 0x9414
jmp 0x9427
movq -0x408(%rbp), %rdi
callq 0x53b0
jmp 0x9422
jmp 0xa3e0
leaq 0x8f67(%rip), %rsi      # 0x12395
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x43e(%rbp)
jmp 0x9442
movb -0x43e(%rbp), %al
testb $0x1, %al
jne 0x944e
jmp 0x946b
movq -0x408(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
movq %rsi, %rdi
callq 0xa770
jmp 0x9466
jmp 0xa3de
leaq 0x8f28(%rip), %rsi      # 0x1239a
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x43f(%rbp)
jmp 0x9486
movb -0x43f(%rbp), %al
testb $0x1, %al
jne 0x9492
jmp 0x94de
movq -0x408(%rbp), %rdi
callq 0x5260
movl %eax, -0x444(%rbp)
jmp 0x94a6
movq -0x408(%rbp), %rdi
callq 0x5240
movl %eax, -0x448(%rbp)
jmp 0x94ba
movl -0x448(%rbp), %edx
movl -0x444(%rbp), %esi
leaq -0xa8(%rbp), %rdi
movl $0x5, %ecx
callq 0xc1f0
jmp 0x94d9
jmp 0xa3dc
leaq 0x8ec0(%rip), %rsi      # 0x123a5
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x449(%rbp)
jmp 0x94f9
movb -0x449(%rbp), %al
testb $0x1, %al
jne 0x9505
jmp 0x9518
movq -0x408(%rbp), %rdi
callq 0x6960
jmp 0x9513
jmp 0xa3da
leaq 0x8e7f(%rip), %rsi      # 0x1239e
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x44a(%rbp)
jmp 0x9533
movb -0x44a(%rbp), %al
testb $0x1, %al
jne 0x953f
jmp 0x9559
movq -0x408(%rbp), %rdi
addq $0xa0, %rdi
callq 0x6960
jmp 0x9554
jmp 0xa3d8
leaq 0x8e6a(%rip), %rsi      # 0x123ca
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x44b(%rbp)
jmp 0x9574
movb -0x44b(%rbp), %al
testb $0x1, %al
jne 0x9583
jmp 0x9613
movq 0xfa46(%rip), %rdi      # 0x18fd0
leaq 0x8e18(%rip), %rsi      # 0x123a9
callq 0x3280
jmp 0x9598
movq 0xfa41(%rip), %rdi      # 0x18fe0
leaq -0xf0(%rbp), %rsi
callq 0x3350
jmp 0x95ad
movq -0x408(%rbp), %rax
movq %rax, -0x458(%rbp)
leaq -0x1c0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3140
jmp 0x95d0
movq -0x458(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x69b0
jmp 0x95e5
leaq -0x1c0(%rbp), %rdi
callq 0x31c0
jmp 0xa3d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
leaq 0x8dad(%rip), %rsi      # 0x123c7
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x459(%rbp)
jmp 0x962e
movb -0x459(%rbp), %al
testb $0x1, %al
jne 0x963d
jmp 0x96cd
movq 0xf98c(%rip), %rdi      # 0x18fd0
leaq 0x8d85(%rip), %rsi      # 0x123d0
callq 0x3280
jmp 0x9652
movq 0xf987(%rip), %rdi      # 0x18fe0
leaq -0xf0(%rbp), %rsi
callq 0x3350
jmp 0x9667
movq -0x408(%rbp), %rax
movq %rax, -0x468(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3140
jmp 0x968a
movq -0x468(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x6210
jmp 0x969f
leaq -0x1e0(%rbp), %rdi
callq 0x31c0
jmp 0xa3d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
leaq 0x8dfb(%rip), %rsi      # 0x124cf
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x469(%rbp)
jmp 0x96e8
movb -0x469(%rbp), %al
testb $0x1, %al
jne 0x96f7
jmp 0x97d3
movq 0xf8d2(%rip), %rdi      # 0x18fd0
leaq 0x8cec(%rip), %rsi      # 0x123f1
callq 0x3280
jmp 0x970c
movq 0xf8cd(%rip), %rdi      # 0x18fe0
leaq -0xf0(%rbp), %rsi
callq 0x3350
jmp 0x9721
movq -0x408(%rbp), %rax
addq $0xa0, %rax
movq %rax, -0x478(%rbp)
leaq -0x200(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3140
jmp 0x974a
movq -0x478(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x7270
jmp 0x975f
leaq -0x200(%rbp), %rdi
callq 0x31c0
movq 0xf85e(%rip), %rdi      # 0x18fd0
leaq 0x8c7f(%rip), %rsi      # 0x123f8
callq 0x3280
movq %rax, -0x480(%rbp)
jmp 0x9787
movq -0x480(%rbp), %rdi
movq 0xf82b(%rip), %rsi      # 0x18fc0
callq 0x32b0
jmp 0x979c
movq -0x408(%rbp), %rdi
addq $0xa0, %rdi
callq 0x53b0
jmp 0x97b1
jmp 0xa3d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
leaq 0x8c28(%rip), %rsi      # 0x12402
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x481(%rbp)
jmp 0x97ee
movb -0x481(%rbp), %al
testb $0x1, %al
jne 0x97fa
jmp 0x9814
movq -0x408(%rbp), %rdi
addq $0xa0, %rdi
callq 0x53b0
jmp 0x980f
jmp 0xa3d0
leaq 0x8dcc(%rip), %rsi      # 0x125e7
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x482(%rbp)
jmp 0x982f
movb -0x482(%rbp), %al
testb $0x1, %al
jne 0x983b
jmp 0x9858
movq -0x408(%rbp), %rdi
movq %rdi, %rsi
addq $0xa0, %rsi
callq 0x55d0
jmp 0x9853
jmp 0xa3ce
leaq 0x89ab(%rip), %rsi      # 0x1220a
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x483(%rbp)
jmp 0x9873
movb -0x483(%rbp), %al
testb $0x1, %al
jne 0x9882
jmp 0x9aec
movq -0x408(%rbp), %rdi
addq $0xa0, %rdi
callq 0x5140
movl %eax, -0x488(%rbp)
jmp 0x989d
movl -0x488(%rbp), %eax
cmpl $0x0, %eax
jne 0x9ad0
movq -0x408(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0xfb40
jmp 0x98c1
movq 0xf708(%rip), %rdi      # 0x18fd0
movq 0xf6f1(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x490(%rbp)
jmp 0x98dd
movq -0x490(%rbp), %rdi
leaq 0x8b24(%rip), %rsi      # 0x1240f
callq 0x3280
jmp 0x98f2
movq 0xf6e7(%rip), %rdi      # 0x18fe0
leaq -0xf0(%rbp), %rsi
callq 0x3350
jmp 0x9907
leaq 0x8b10(%rip), %rsi      # 0x1241e
leaq -0xf0(%rbp), %rdi
callq 0x48e0
movb %al, -0x491(%rbp)
jmp 0x9922
movb -0x491(%rbp), %al
testb $0x1, %al
jne 0x992e
jmp 0x999f
movq -0x408(%rbp), %rax
movq %rax, -0x4a0(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3140
jmp 0x9951
movq -0x4a0(%rbp), %rdi
movq -0x408(%rbp), %rdx
addq $0xa0, %rdx
leaq -0x220(%rbp), %rsi
callq 0x5eb0
jmp 0x9974
leaq -0x220(%rbp), %rdi
callq 0x31c0
jmp 0x999f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq -0x408(%rbp), %rsi
addq $0xa0, %rsi
leaq -0x240(%rbp), %rdi
callq 0x50d0
jmp 0x99bb
leaq 0x868f(%rip), %rsi      # 0x12051
leaq -0x240(%rbp), %rdi
callq 0x48e0
movb %al, -0x4a1(%rbp)
jmp 0x99d6
leaq -0x240(%rbp), %rdi
callq 0x31c0
movb -0x4a1(%rbp), %al
testb $0x1, %al
jne 0x99f1
jmp 0x9a71
movq -0x408(%rbp), %rsi
addq $0xa0, %rsi
movq %rsi, -0x4b0(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x50d0
jmp 0x9a14
movq -0x4b0(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x5d30
jmp 0x9a29
leaq -0x260(%rbp), %rdi
callq 0x31c0
jmp 0x9a71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq -0x408(%rbp), %rsi
movq %rsi, %rax
movq %rax, -0x4b8(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x50d0
jmp 0x9a90
movq -0x4b8(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x5d30
jmp 0x9aa5
leaq -0x280(%rbp), %rdi
callq 0x31c0
jmp 0x9ae7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq 0xf4f9(%rip), %rdi      # 0x18fd0
leaq 0x8725(%rip), %rsi      # 0x12203
callq 0x3280
jmp 0x9ae5
jmp 0x9ae7
jmp 0xa3cc
leaq 0x8933(%rip), %rsi      # 0x12426
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x4b9(%rbp)
jmp 0x9b07
movb -0x4b9(%rbp), %al
testb $0x1, %al
jne 0x9b16
jmp 0x9d39
movq -0x408(%rbp), %rdi
subq $-0x80, %rdi
callq 0xfb40
jmp 0x9b28
movq 0xf4a1(%rip), %rdi      # 0x18fd0
movq 0xf48a(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x4c8(%rbp)
jmp 0x9b44
movq -0x4c8(%rbp), %rdi
leaq 0x88d9(%rip), %rsi      # 0x1242b
callq 0x3280
jmp 0x9b59
movq 0xf480(%rip), %rdi      # 0x18fe0
leaq -0xf0(%rbp), %rsi
callq 0x3350
jmp 0x9b6e
leaq 0x88a9(%rip), %rsi      # 0x1241e
leaq -0xf0(%rbp), %rdi
callq 0x48e0
movb %al, -0x4c9(%rbp)
jmp 0x9b89
movb -0x4c9(%rbp), %al
testb $0x1, %al
jne 0x9b95
jmp 0x9c05
movq -0x408(%rbp), %rax
addq $0xa0, %rax
movq %rax, -0x4d8(%rbp)
leaq -0x2a0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3140
jmp 0x9bbe
movq -0x408(%rbp), %rdx
movq -0x4d8(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x5eb0
jmp 0x9bda
leaq -0x2a0(%rbp), %rdi
callq 0x31c0
jmp 0x9c05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq -0x408(%rbp), %rsi
addq $0xa0, %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x50d0
jmp 0x9c21
leaq 0x8429(%rip), %rsi      # 0x12051
leaq -0x2c0(%rbp), %rdi
callq 0x48e0
movb %al, -0x4d9(%rbp)
jmp 0x9c3c
leaq -0x2c0(%rbp), %rdi
callq 0x31c0
movb -0x4d9(%rbp), %al
testb $0x1, %al
jne 0x9c57
jmp 0x9cd7
movq -0x408(%rbp), %rsi
addq $0xa0, %rsi
movq %rsi, -0x4e8(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x50d0
jmp 0x9c7a
movq -0x4e8(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x5d30
jmp 0x9c8f
leaq -0x2e0(%rbp), %rdi
callq 0x31c0
jmp 0x9cd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq -0x408(%rbp), %rsi
movq %rsi, %rax
movq %rax, -0x4f0(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x50d0
jmp 0x9cf6
movq -0x4f0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x5d30
jmp 0x9d0b
leaq -0x300(%rbp), %rdi
callq 0x31c0
jmp 0xa3ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
leaq 0x880c(%rip), %rsi      # 0x1254c
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x4f1(%rbp)
jmp 0x9d54
movb -0x4f1(%rbp), %al
testb $0x1, %al
jne 0x9d60
jmp 0x9dd9
movq -0x408(%rbp), %rdi
movq %rdi, %rax
movq %rax, -0x500(%rbp)
addq $0xa0, %rdi
callq 0x5260
movl %eax, -0x4f8(%rbp)
jmp 0x9d85
movq -0x408(%rbp), %rdi
addq $0xa0, %rdi
callq 0x5240
movl %eax, -0x504(%rbp)
jmp 0x9da0
movl -0x504(%rbp), %edx
movl -0x4f8(%rbp), %esi
movq -0x500(%rbp), %rdi
callq 0x5c70
movl %eax, -0x508(%rbp)
jmp 0x9dc0
movl -0x508(%rbp), %esi
movq 0xf203(%rip), %rdi      # 0x18fd0
callq 0x3430
jmp 0x9dd4
jmp 0xa3c8
leaq 0x865a(%rip), %rsi      # 0x1243a
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x509(%rbp)
jmp 0x9df4
movb -0x509(%rbp), %al
testb $0x1, %al
jne 0x9e03
jmp 0xa073
movq 0xf1c6(%rip), %rdi      # 0x18fd0
leaq 0x862e(%rip), %rsi      # 0x1243f
callq 0x3280
jmp 0x9e18
movq 0xf1c1(%rip), %rdi      # 0x18fe0
leaq -0x304(%rbp), %rsi
callq 0x31b0
jmp 0x9e2d
movl $0x1, -0x308(%rbp)
movl -0x308(%rbp), %eax
cmpl -0x304(%rbp), %eax
jg 0xa06e
movq -0x408(%rbp), %rsi
leaq -0x328(%rbp), %rdi
callq 0x50d0
jmp 0x9e5e
movq 0xf16b(%rip), %rdi      # 0x18fd0
leaq -0x328(%rbp), %rsi
callq 0x3270
movq %rax, -0x518(%rbp)
jmp 0x9e7a
movq -0x518(%rbp), %rdi
leaq 0x85c9(%rip), %rsi      # 0x12451
callq 0x3280
jmp 0x9e8f
leaq -0x328(%rbp), %rdi
callq 0x31c0
movq -0x408(%rbp), %rsi
addq $0xa0, %rsi
leaq -0x348(%rbp), %rdi
callq 0x50d0
jmp 0x9eb7
movq -0x408(%rbp), %rsi
leaq -0x368(%rbp), %rdi
callq 0x50d0
jmp 0x9ecc
leaq -0x348(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x7b60
movb %al, -0x519(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x31c0
leaq -0x348(%rbp), %rdi
callq 0x31c0
movb -0x519(%rbp), %al
testb $0x1, %al
jne 0x9f09
jmp 0x9f5d
movq 0xf0c0(%rip), %rdi      # 0x18fd0
leaq 0x8545(%rip), %rsi      # 0x1245c
callq 0x3280
jmp 0x9f1e
jmp 0x9fd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x328(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movq -0x408(%rbp), %rsi
addq $0xa0, %rsi
leaq -0x388(%rbp), %rdi
callq 0x50d0
jmp 0x9f79
movq 0xf050(%rip), %rdi      # 0x18fd0
leaq -0x388(%rbp), %rsi
callq 0x3270
movq %rax, -0x528(%rbp)
jmp 0x9f95
movq -0x528(%rbp), %rdi
leaq 0x8889(%rip), %rsi      # 0x1282c
callq 0x3280
jmp 0x9faa
leaq -0x388(%rbp), %rdi
callq 0x31c0
jmp 0x9fd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
movl -0x308(%rbp), %esi
movq 0xefee(%rip), %rdi      # 0x18fd0
callq 0x3430
jmp 0x9fe9
cmpl $0x1, -0x308(%rbp)
jg 0xa025
movq 0xefd7(%rip), %rdi      # 0x18fd0
leaq 0x8465(%rip), %rsi      # 0x12465
callq 0x3280
movq %rax, -0x530(%rbp)
jmp 0xa00e
movq -0x530(%rbp), %rdi
movq 0xefa4(%rip), %rsi      # 0x18fc0
callq 0x32b0
jmp 0xa023
jmp 0xa058
movq 0xefa4(%rip), %rdi      # 0x18fd0
leaq 0x8438(%rip), %rsi      # 0x1246b
callq 0x3280
movq %rax, -0x538(%rbp)
jmp 0xa041
movq -0x538(%rbp), %rdi
movq 0xef71(%rip), %rsi      # 0x18fc0
callq 0x32b0
jmp 0xa056
jmp 0xa058
jmp 0xa05a
movl -0x308(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x308(%rbp)
jmp 0x9e37
jmp 0xa3c6
leaq 0x83f8(%rip), %rsi      # 0x12472
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x539(%rbp)
jmp 0xa08e
movb -0x539(%rbp), %al
testb $0x1, %al
jne 0xa09a
jmp 0xa0fc
movq -0x408(%rbp), %rsi
movq %rsi, %rax
movq %rax, -0x548(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x50d0
jmp 0xa0b9
movq -0x548(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0x5d30
jmp 0xa0ce
leaq -0x3a8(%rbp), %rdi
callq 0x31c0
jmp 0xa3c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x31c0
jmp 0xa53d
leaq 0x8374(%rip), %rsi      # 0x12477
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x549(%rbp)
jmp 0xa117
movb -0x549(%rbp), %al
testb $0x1, %al
jne 0xa14d
jmp 0xa123
leaq 0x7efd(%rip), %rsi      # 0x12027
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x54a(%rbp)
jmp 0xa13e
movb -0x54a(%rbp), %al
testb $0x1, %al
jne 0xa14d
jmp 0xa3ab
movq 0xee7c(%rip), %rdi      # 0x18fd0
leaq 0x8321(%rip), %rsi      # 0x1247c
callq 0x3280
jmp 0xa162
movq 0xee67(%rip), %rdi      # 0x18fd0
leaq 0x831c(%rip), %rsi      # 0x1248c
callq 0x3280
jmp 0xa177
movq 0xee62(%rip), %rdi      # 0x18fe0
leaq -0xf0(%rbp), %rsi
callq 0x3350
jmp 0xa18c
leaq 0x8313(%rip), %rsi      # 0x124a6
leaq -0xf0(%rbp), %rdi
callq 0x4880
movb %al, -0x54b(%rbp)
jmp 0xa1a7
movb -0x54b(%rbp), %al
testb $0x1, %al
jne 0xa1b6
jmp 0xa3a9
movq 0xee13(%rip), %rdi      # 0x18fd0
leaq 0x82ea(%rip), %rsi      # 0x124ae
callq 0x3280
movq %rax, -0x558(%rbp)
jmp 0xa1d2
movq -0x558(%rbp), %rdi
movq 0xede0(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x560(%rbp)
jmp 0xa1ee
movq -0x560(%rbp), %rdi
leaq 0x82bb(%rip), %rsi      # 0x124b7
callq 0x3280
movq %rax, -0x568(%rbp)
jmp 0xa20a
movq -0x568(%rbp), %rdi
movq 0xeda8(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x570(%rbp)
jmp 0xa226
movq -0x570(%rbp), %rdi
leaq 0x82a2(%rip), %rsi      # 0x124d6
callq 0x3280
movq %rax, -0x578(%rbp)
jmp 0xa242
movq -0x578(%rbp), %rdi
movq 0xed70(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x580(%rbp)
jmp 0xa25e
movq -0x580(%rbp), %rdi
leaq 0x828c(%rip), %rsi      # 0x124f8
callq 0x3280
movq %rax, -0x588(%rbp)
jmp 0xa27a
movq -0x588(%rbp), %rdi
movq 0xed38(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x590(%rbp)
jmp 0xa296
movq -0x590(%rbp), %rdi
leaq 0x8286(%rip), %rsi      # 0x1252a
callq 0x3280
movq %rax, -0x598(%rbp)
jmp 0xa2b2
movq -0x598(%rbp), %rdi
movq 0xed00(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x5a0(%rbp)
jmp 0xa2ce
movq -0x5a0(%rbp), %rdi
leaq 0x8279(%rip), %rsi      # 0x12555
callq 0x3280
movq %rax, -0x5a8(%rbp)
jmp 0xa2ea
movq -0x5a8(%rbp), %rdi
movq 0xecc8(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x5b0(%rbp)
jmp 0xa306
movq -0x5b0(%rbp), %rdi
leaq 0x8277(%rip), %rsi      # 0x1258b
callq 0x3280
movq %rax, -0x5b8(%rbp)
jmp 0xa322
movq -0x5b8(%rbp), %rdi
movq 0xec90(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x5c0(%rbp)
jmp 0xa33e
movq -0x5c0(%rbp), %rdi
leaq 0x8270(%rip), %rsi      # 0x125bc
callq 0x3280
movq %rax, -0x5c8(%rbp)
jmp 0xa35a
movq -0x5c8(%rbp), %rdi
movq 0xec58(%rip), %rsi      # 0x18fc0
callq 0x32b0
movq %rax, -0x5d0(%rbp)
jmp 0xa376
movq -0x5d0(%rbp), %rdi
leaq 0x826a(%rip), %rsi      # 0x125ee
callq 0x3280
movq %rax, -0x5d8(%rbp)
jmp 0xa392
movq -0x5d8(%rbp), %rdi
movq 0xec20(%rip), %rsi      # 0x18fc0
callq 0x32b0
jmp 0xa3a7
jmp 0xa3a9
jmp 0xa3c2
movq 0xec1e(%rip), %rdi      # 0x18fd0
leaq 0x824e(%rip), %rsi      # 0x12607
callq 0x3280
jmp 0xa3c0
jmp 0xa3c2
jmp 0xa3c4
jmp 0xa3c6
jmp 0xa3c8
jmp 0xa3ca
jmp 0xa3cc
jmp 0xa3ce
jmp 0xa3d0
jmp 0xa3d2
jmp 0xa3d4
jmp 0xa3d6
jmp 0xa3d8
jmp 0xa3da
jmp 0xa3dc
jmp 0xa3de
jmp 0xa3e0
jmp 0xa3e2
jmp 0xa3e4
jmp 0x9132
movq 0xebe0(%rip), %rdi      # 0x18fd0
leaq 0x7c32(%rip), %rsi      # 0x12029
callq 0x3280
jmp 0xa3fe
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x3450
movq -0x5e0(%rbp), %rdx
leaq 0x7be5(%rip), %rsi      # 0x12004
leaq -0x3c8(%rbp), %rdi
callq 0x47d0
jmp 0xa42d
movq -0x408(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0xa560
jmp 0xa442
leaq -0x3c8(%rbp), %rdi
callq 0x31c0
leaq -0x3c9(%rbp), %rdi
callq 0x32d0
leaq -0x3f1(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x3450
movq -0x5e8(%rbp), %rdx
leaq 0x819d(%rip), %rsi      # 0x12618
leaq -0x3f0(%rbp), %rdi
callq 0x47d0
jmp 0xa489
movq -0x408(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0xa560
jmp 0xa49e
leaq -0x3f0(%rbp), %rdi
callq 0x31c0
leaq -0x3f1(%rbp), %rdi
callq 0x32d0
leaq -0xf0(%rbp), %rdi
callq 0x31c0
leaq -0xa8(%rbp), %rdi
callq 0xb050
addq $0x5f0, %rsp            # imm = 0x5F0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa4fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x31c0
leaq -0x3c9(%rbp), %rdi
callq 0x32d0
jmp 0xa53d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xa531
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x31c0
leaq -0x3f1(%rbp), %rdi
callq 0x32d0
leaq -0xf0(%rbp), %rdi
callq 0x31c0
leaq -0xa8(%rbp), %rdi
callq 0xb050
movq -0x38(%rbp), %rdi
callq 0x3440
nop