// File: lotuskip[P]yuxtapa/server/chores.cpp
// Function: (anonymous namespace)::try_move(std::_List_iterator<Player>, e_Dir)
void try_move(const list<Player>::iterator pit, const e_Dir d)
{
	// get target tile and its position:
	Coords opos = pit->own_pc->getpos();
	Coords tarpos = opos.in(d);
	Tile *tar = Game::curmap->mod_tile(tarpos.x, tarpos.y);
	list<Player>::iterator them;
	// unwalkable tiles are unwalkable tiles:
	if(!(tar->flags & TF_WALKTHRU))
	{
		// Check if walking to a closed door; if so, open it
		if(tar->symbol == '+')
		{
			tar->symbol = '\\';
			tar->flags |= TF_WALKTHRU|TF_SEETHRU;
			update_lights_around(tarpos);
			if(random()%2)
				add_sound(tarpos, S_CREAK);
			else // a sound sets an event
				event_set.insert(tarpos);
		}
		return; // do not move
	}
	/*else*/ if(tar->flags & TF_OCCUPIED)
	{
		// Tile is occupied; first check for another PC:
		list<PCEnt>::iterator pc_it = any_pc_at(tarpos);
		if(pc_it != PCs.end())
		{
			them = pc_it->get_owner();
			if(them->team == pit->team) // teammate
			{
				if(them->wants_to_move_to == !d) // That player is willing to swap places
					swap_places(them, pit);
				else // the processing of this move is finished later
					pit->wants_to_move_to = d;
			}
			else // enemy, do melee attack:
			{
				// if a hiding assassin, damage is different:
				char multip = 1 + char(pit->cl == C_ASSASSIN
					&& (!pit->own_pc->visible_to_team(opp_team[pit->team])
					|| them->own_vp->is_blind()));
				if(test_hit(them, pit->cl_props.tohit, multip, pit->cl_props.dam_die,
					multip*(pit->cl_props.dam_add)) // was hit...
					&& them->cl_props.hp <= 0) // ...and died
				{
					if(multip == 2)
					{
						player_death(them, " was backstabbed by " + pit->nick + '.', true);
						record_kill(pit, WTK_BACKSTAB);
					}
					else
					{
						player_death(them, " was killed by " + pit->nick + '.', true);
						record_kill(pit, WTK_MELEE);
					}
				}
				pit->own_pc->set_disguised(false);
			}
			return; // do not move
		}
		// else check all other occents; first blocks:
		list<OccEnt>::iterator bl_it = any_boulder_at(tarpos);
		if(bl_it != boulders.end()) // there's a block
		{
			// First check if PC can push blocks:
			if(!pit->cl_props.can_push)
				return; // do not move
			// Get the tile where we'd push the block:
			Coords pushtarpos = tarpos.in(d);
			Tile *pushtar = Game::curmap->mod_tile(pushtarpos);
			// Cannot push if block is currently standing on nonflat terrain.
			// Cannot push into nonwalkables, occupieds, doorways, flags.
			if((tar->flags & TF_SLOWWALK) || (pushtar->flags & TF_OCCUPIED)
				|| !(pushtar->flags & TF_WALKTHRU) || pushtar->symbol == '\\'
				|| ((pushtar->flags & TF_NOCCENT)
				&& any_noccent_at(pushtarpos, NOE_FLAG) != noccents[NOE_FLAG].end()))
				return; // do not move
			// Pushing to a chasm destroys the block:
			if(pushtar->flags & TF_KILLS)
			{
				boulders.erase(bl_it);
				tar->flags &= ~(TF_OCCUPIED);
			}
			// Pushing to water makes a "bridge":
			else if(pushtar->flags & TF_DROWNS)
			{
				boulders.erase(bl_it);
				tar->flags &= ~(TF_OCCUPIED);
				*pushtar = T_FLOOR;
				add_sound(pushtarpos, S_SPLASH);
			}
			else // otherwise we just push:
			{
				bl_it->setpos(pushtarpos);
				pushtar->flags |= TF_OCCUPIED;
				tar->flags &= ~(TF_OCCUPIED);
			}
			pit->wait_turns++;
			// PC will be moved below, and that will also add to event_set.
		}
		else // no block, must be arrow/zap/mm
		{
			// A nasty hack needed. If the PC should die to the missile, that calls
			// player_death, which generates a corpse to pit->own_pc->getpos(), which
			// is the *wrong* place for it! Hence we move the PC (just the PC, nothing
			// else) already here:
			pit->own_pc->setpos(tarpos);
			missile_hit_PC(pit, any_missile_at(tarpos), true);
			if(pit->cl_props.hp <= 0) // died; don't walk!
			{
				// missile_hit_PC has called kill_player, which has unset the
				// occupied-flag of PC's position (which we just set with our
				// hack), but now we must unset the flag for the originating
				// position, too!
				Game::curmap->mod_tile(opos)->flags &= ~(TF_OCCUPIED);
				return;
			}
			// else survived; let walk; but so that the flags are updated
			// correctly, put the PC back where he's walking from:
			pit->own_pc->setpos(opos);
		}
	} // target tile is occupied

	// Check for various effects of *walking* into various things:
	// (the rest, those that apply regardless of whether walking or not,
	// are checked in move_player_to(...))
	if(gamemode == GM_STEAL && pit->team == T_GREEN
		&& pl_with_item == cur_players.end() && tarpos == the_item.getpos())
	{
		pl_with_item = pit;
		item_moved = true;
		Game::send_team_upds(cur_players.end());
		string msg = "The green team has stolen the treasure!";
		Network::construct_msg(msg, C_PORTAL_IN_LIT);
		Network::broadcast();
	}
	else if(tar->flags & TF_NOCCENT)
	{
		list<NOccEnt>::iterator noe_it = any_noccent_at(tarpos, NOE_FLAG);
		if(noe_it != noccents[NOE_FLAG].end()) // there's a flag
		{
			// A neutral flag is always captured:
			if(noe_it->get_m() == T_NO_TEAM)
				capt_flag(noe_it, pit->team);
			// Enemy flag capturing depends on game mode.
			else if(noe_it->get_m() != pit->team)
			{
				// dominion: capture always
				// conquest: green team can capture
				// others: capture if not their last flag
				if(gamemode == GM_DOM
					|| (gamemode == GM_CONQ && pit->team == T_GREEN)
					|| (gamemode != GM_CONQ &&
					team_flags[noe_it->get_m()].size() >= 2))
				{
					team_flags[noe_it->get_m()].erase(find(team_flags[noe_it->get_m()].begin(),
						team_flags[noe_it->get_m()].end(), noe_it));
					capt_flag(noe_it, pit->team);
				}
			}
			// else own flag:
			else if(pit == pl_with_item // is carrying item (implies team is green and gamemode steal)
				&& noe_it == *(team_flags[T_GREEN].begin())) // original flag
			{
				// Green wins. We ensure this by clearing the purple flags list,
				// so actually the map won't end until the next purple spawning:
				team_flags[T_PURPLE].clear();
				string msg = "The green team has secured the treasure!";
				Network::construct_msg(msg, C_PORTAL_IN_LIT);
				Network::broadcast();
				pl_with_item = cur_players.end();
				the_item.setpos(Coords(-1,0)); // ensure it doesn't get drawn anywhere
			}
		}
		else if((noe_it = any_noccent_at(tarpos, NOE_PORTAL_ENTRY))
			!= noccents[NOE_PORTAL_ENTRY].end())
		{
			// Get a random, non-blocked 1-way portal exit:
			char ind = randor0(noccents[NOE_PORTAL_EXIT].size());
			for(noe_it = noccents[NOE_PORTAL_EXIT].begin(); ind > 0; --ind)
				++noe_it;
			list<NOccEnt>::iterator startit = noe_it;
			while(Game::curmap->mod_tile(noe_it->getpos())->flags & TF_OCCUPIED)
			{
				if(++noe_it == noccents[NOE_PORTAL_EXIT].end())
					noe_it = noccents[NOE_PORTAL_EXIT].begin();
				if(noe_it == startit) // went around!
				{
					// Just move the PC onto the portal without jumping
					move_player_to(pit, tarpos, true);
					return;
				}
			}
			portal_jump(pit, noe_it->getpos());
			return;
		}// else
		if((noe_it = any_noccent_at(tarpos, NOE_PORTAL_2WAY))
			!= noccents[NOE_PORTAL_2WAY].end())
		{
			list<NOccEnt>::iterator startit = noe_it;
			do {
				if(++noe_it == noccents[NOE_PORTAL_2WAY].end())
					noe_it = noccents[NOE_PORTAL_2WAY].begin();
				if(noe_it == startit) // went around!
				{
					// Just move the PC onto the portal without jumping
					move_player_to(pit, tarpos, true);
					return;
				}
			}
			while(Game::curmap->mod_tile(noe_it->getpos())->flags & TF_OCCUPIED);
			portal_jump(pit, noe_it->getpos());
			return;
		}
	}

	// Hiding checks:
	bool hide = false;
	if(!(tar->flags & TF_LIT)
		&& ((pit->cl == C_ASSASSIN && (tar->flags & TF_BYWALL))
		|| (pit->cl == C_TRAPPER && tar->symbol == 'T'))
		&& !is_dynlit(tarpos))
	{
		// No enemy may see here; note that we use a fixed radius 3,
		// not the LOS radius of the respective enemy!
		for(them = cur_players.begin(); them != cur_players.end(); ++them)
		{
			if(them->team != pit->team && them->is_alive()
				&& !them->own_vp->is_blind()
				&& Game::curmap->LOS_between(them->own_pc->getpos(),
					tarpos, SNEAK_RADIUS))
				break; // seen by an enemy
		}
		if(them == cur_players.end()) // seen by no-one!
			hide = true;
	}
	pit->own_pc->set_invis_to_team(hide ? opp_team[pit->team] : T_NO_TEAM);

	// If we ever arrive here, we are to move the PC:
	move_player_to(pit, tarpos, true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4b0, %rsp            # imm = 0x4B0
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x10(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0x1b190
movq -0x340(%rbp), %rsi
movl -0xc(%rbp), %edx
leaq -0x14(%rbp), %rdi
callq 0x60550
jmp 0x51d67
leaq 0x4006a(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
movswl -0x14(%rbp), %esi
movswl -0x12(%rbp), %edx
callq 0x2e400
movq %rax, -0x348(%rbp)
jmp 0x51d87
movq -0x348(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x1b010
movq -0x30(%rbp), %rax
movzwl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x51e6a
movq -0x30(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x2b, %eax
jne 0x51e5e
movq -0x30(%rbp), %rax
movb $0x5c, 0x2(%rax)
movq -0x30(%rbp), %rax
movw (%rax), %cx
orw $0x5, %cx
movw %cx, (%rax)
leaq -0x14(%rbp), %rdi
callq 0x50c40
jmp 0x51de0
callq 0x5270
movl $0x2, %ecx
cqto
idivq %rcx
cmpq $0x0, %rdx
je 0x51e29
leaq -0x14(%rbp), %rdi
movl $0x1, %esi
callq 0x48080
jmp 0x51e05
jmp 0x51e5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x5350f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x53506
leaq 0x41318(%rip), %rdi     # 0x93148
leaq -0x14(%rbp), %rsi
callq 0x4a010
movb %dl, -0x351(%rbp)
movq %rax, -0x350(%rbp)
jmp 0x51e48
movb -0x351(%rbp), %al
movq -0x350(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movb %al, -0x40(%rbp)
jmp 0x51e5e
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
movq -0x30(%rbp), %rax
movzwl (%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x5268a
leaq -0x14(%rbp), %rdi
callq 0x49290
movq %rax, -0x360(%rbp)
jmp 0x51e8f
movq -0x360(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x411af(%rip), %rdi     # 0x93050
callq 0x3d010
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3cfe0
testb $0x1, %al
jne 0x51ec0
jmp 0x522e1
leaq -0x58(%rbp), %rdi
callq 0x3d040
movq %rax, %rdi
callq 0x3d0f0
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x1b050
movl 0xac(%rax), %eax
movl %eax, -0x364(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x364(%rbp), %eax
cmpl 0xac(%rcx), %eax
jne 0x51f85
leaq -0x38(%rbp), %rdi
callq 0x1b050
movl 0x12c(%rax), %eax
movl %eax, -0x36c(%rbp)
movl -0xc(%rbp), %edi
callq 0x60410
movl %eax, -0x368(%rbp)
jmp 0x51f31
movl -0x36c(%rbp), %eax
movl -0x368(%rbp), %ecx
cmpl %ecx, %eax
jne 0x51f62
movq -0x38(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x70(%rbp), %rdi
movq -0x78(%rbp), %rsi
callq 0x54ee0
jmp 0x51f60
jmp 0x51f80
movl -0xc(%rbp), %eax
movl %eax, -0x370(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl -0x370(%rbp), %ecx
movl %ecx, 0x12c(%rax)
jmp 0x522d5
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
xorl %eax, %eax
cmpl $0x1, 0xb0(%rcx)
movb %al, -0x371(%rbp)
jne 0x5202c
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rax
movq %rax, -0x380(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq -0x380(%rbp), %rdi
movl 0xac(%rax), %eax
movl %eax, %ecx
leaq 0x183b4(%rip), %rax     # 0x6a390
movl (%rax,%rcx,4), %esi
callq 0x43050
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x372(%rbp)
jne 0x51ff5
jmp 0x52020
leaq -0x38(%rbp), %rdi
callq 0x1b050
movq 0xc0(%rax), %rdi
callq 0x3d340
movb %al, -0x381(%rbp)
jmp 0x52012
movb -0x381(%rbp), %al
movb %al, -0x372(%rbp)
jmp 0x52020
movb -0x372(%rbp), %al
movb %al, -0x371(%rbp)
movb -0x371(%rbp), %al
andb $0x1, %al
incb %al
movb %al, -0x79(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0x8(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x1b050
movq -0x3a0(%rbp), %rdi
movsbl 0x144(%rax), %eax
movl %eax, -0x394(%rbp)
movsbl -0x79(%rbp), %eax
movl %eax, -0x390(%rbp)
callq 0x1b050
movq -0x3a0(%rbp), %rdi
movsbl 0x146(%rax), %eax
movl %eax, -0x38c(%rbp)
movzbl -0x79(%rbp), %eax
movl %eax, -0x388(%rbp)
callq 0x1b050
movl -0x394(%rbp), %esi
movl -0x390(%rbp), %edx
movl -0x38c(%rbp), %ecx
movq %rax, %rdi
movl -0x388(%rbp), %eax
movzbl 0x147(%rdi), %edi
imull %edi, %eax
movq -0x88(%rbp), %rdi
movsbl %al, %r8d
callq 0x56120
movb %al, -0x382(%rbp)
jmp 0x520d7
movb -0x382(%rbp), %al
testb $0x1, %al
jne 0x520e6
jmp 0x522ba
leaq -0x38(%rbp), %rdi
callq 0x1b050
movsbl 0x143(%rax), %eax
cmpl $0x0, %eax
jg 0x522ba
movsbl -0x79(%rbp), %eax
cmpl $0x2, %eax
jne 0x521e5
movq -0x38(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rdx
addq $0x88, %rdx
leaq 0x1a3ec(%rip), %rsi     # 0x6c51d
leaq -0xd0(%rbp), %rdi
callq 0x1f390
jmp 0x5213f
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
movl $0x2e, %edx
callq 0x3ca50
jmp 0x52159
movq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
movl $0x1, %edx
callq 0x517d0
jmp 0x52173
leaq -0xb0(%rbp), %rdi
callq 0x5a48
leaq -0xd0(%rbp), %rdi
callq 0x5a48
movq -0x8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rdi
movl $0x7, %esi
callq 0x51b40
jmp 0x521a9
jmp 0x522b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x521d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x5a48
leaq -0xd0(%rbp), %rdi
callq 0x5a48
jmp 0x53506
movq -0x38(%rbp), %rax
movq %rax, -0xe0(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rdx
addq $0x88, %rdx
leaq 0x1a328(%rip), %rsi     # 0x6c532
leaq -0x120(%rbp), %rdi
callq 0x1f390
jmp 0x52218
leaq -0x100(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movl $0x2e, %edx
callq 0x3ca50
jmp 0x52232
movq -0xe0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movl $0x1, %edx
callq 0x517d0
jmp 0x5224c
leaq -0x100(%rbp), %rdi
callq 0x5a48
leaq -0x120(%rbp), %rdi
callq 0x5a48
movq -0x8(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x128(%rbp), %rdi
xorl %esi, %esi
callq 0x51b40
jmp 0x5227f
jmp 0x522b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x522a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x5a48
leaq -0x120(%rbp), %rdi
callq 0x5a48
jmp 0x53506
jmp 0x522ba
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rdi
xorl %esi, %esi
callq 0x58450
jmp 0x522d3
jmp 0x522d5
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
leaq -0x14(%rbp), %rdi
callq 0x495b0
movq %rax, -0x3a8(%rbp)
jmp 0x522f3
movq -0x3a8(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq 0x40ce8(%rip), %rdi     # 0x92ff0
callq 0x3d190
movq %rax, -0x138(%rbp)
leaq -0x130(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x3d160
testb $0x1, %al
jne 0x52330
jmp 0x525dc
leaq -0x8(%rbp), %rdi
callq 0x1b050
testb $0x1, 0x14c(%rax)
jne 0x5234e
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
movl -0xc(%rbp), %edx
leaq -0x13c(%rbp), %rdi
leaq -0x14(%rbp), %rsi
callq 0x60550
jmp 0x52363
leaq 0x3fa6e(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
leaq -0x13c(%rbp), %rsi
callq 0x3d2d0
movq %rax, -0x148(%rbp)
movq -0x30(%rbp), %rax
movzwl (%rax), %ecx
andl $0x2, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x3a9(%rbp)
jne 0x5246d
movq -0x148(%rbp), %rax
movzwl (%rax), %ecx
andl $0x40, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x3a9(%rbp)
jne 0x5246d
movq -0x148(%rbp), %rax
movzwl (%rax), %ecx
andl $0x1, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x3a9(%rbp)
je 0x5246d
movq -0x148(%rbp), %rax
movsbl 0x2(%rax), %ecx
movb $0x1, %al
cmpl $0x5c, %ecx
movb %al, -0x3a9(%rbp)
je 0x5246d
movq -0x148(%rbp), %rax
movzwl (%rax), %ecx
andl $0x20, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x3aa(%rbp)
je 0x52461
leaq -0x13c(%rbp), %rdi
movl $0x5, %esi
callq 0x49390
movq %rax, -0x3b8(%rbp)
jmp 0x52423
movq -0x3b8(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq 0x40af8(%rip), %rdi     # 0x92f30
addq $0x78, %rdi
callq 0x3c9d0
movq %rax, -0x158(%rbp)
leaq -0x150(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3cdc0
movb %al, -0x3aa(%rbp)
movb -0x3aa(%rbp), %al
movb %al, -0x3a9(%rbp)
movb -0x3a9(%rbp), %al
testb $0x1, %al
jne 0x52479
jmp 0x524a2
movl $0x1, -0x4c(%rbp)
jmp 0x525be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x13c(%rbp), %rdi
callq 0x60460
jmp 0x53506
movq -0x148(%rbp), %rax
movzwl (%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x524f5
leaq -0x160(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x3d240
movq -0x160(%rbp), %rsi
leaq 0x40b19(%rip), %rdi     # 0x92ff0
callq 0x3d1f0
movq %rax, -0x168(%rbp)
movq -0x30(%rbp), %rax
movzwl (%rax), %ecx
andl $-0x41, %ecx
movw %cx, (%rax)
jmp 0x5259f
movq -0x148(%rbp), %rax
movzwl (%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x52563
leaq -0x170(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x3d240
movq -0x170(%rbp), %rsi
leaq 0x40ac6(%rip), %rdi     # 0x92ff0
callq 0x3d1f0
movq %rax, -0x178(%rbp)
movq -0x30(%rbp), %rax
movw (%rax), %cx
andw $-0x41, %cx
movw %cx, (%rax)
movq -0x148(%rbp), %rax
movl $0x1c2e0005, (%rax)     # imm = 0x1C2E0005
leaq -0x13c(%rbp), %rdi
xorl %esi, %esi
callq 0x48080
jmp 0x52561
jmp 0x5259d
leaq -0x130(%rbp), %rdi
callq 0x3d1c0
movq %rax, %rdi
leaq -0x13c(%rbp), %rsi
callq 0x49fd0
jmp 0x52580
movq -0x148(%rbp), %rax
movzwl (%rax), %ecx
orl $0x40, %ecx
movw %cx, (%rax)
movq -0x30(%rbp), %rax
movzwl (%rax), %ecx
andl $-0x41, %ecx
movw %cx, (%rax)
jmp 0x5259f
leaq -0x8(%rbp), %rdi
callq 0x1b050
movb 0x131(%rax), %cl
addb $0x1, %cl
movb %cl, 0x131(%rax)
movl $0x0, -0x4c(%rbp)
leaq -0x13c(%rbp), %rdi
callq 0x60460
movl -0x4c(%rbp), %eax
testl %eax, %eax
jne 0x534eb
jmp 0x525d7
jmp 0x52688
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x49fd0
jmp 0x525f7
movq -0x8(%rbp), %rax
movq %rax, -0x180(%rbp)
leaq -0x14(%rbp), %rdi
callq 0x496b0
movq %rax, -0x3c0(%rbp)
jmp 0x52614
movq -0x3c0(%rbp), %rsi
movq -0x180(%rbp), %rdi
movl $0x1, %edx
callq 0x56b90
jmp 0x5262e
leaq -0x8(%rbp), %rdi
callq 0x1b050
movsbl 0x143(%rax), %eax
cmpl $0x0, %eax
jg 0x5266b
leaq 0x3f78e(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3d2d0
movzwl (%rax), %ecx
andl $-0x41, %ecx
movw %cx, (%rax)
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rdi
leaq -0x10(%rbp), %rsi
callq 0x49fd0
jmp 0x52686
jmp 0x52688
jmp 0x5268a
leaq 0x3ed03(%rip), %rax     # 0x91394
movl (%rax), %ecx
movb $0x0, -0x195(%rbp)
xorl %eax, %eax
cmpl $0x2, %ecx
movb %al, -0x3c1(%rbp)
jne 0x5275d
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
xorl %eax, %eax
cmpl $0x0, 0xac(%rcx)
movb %al, -0x3c1(%rbp)
jne 0x5275d
leaq 0x3db5d(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x190(%rbp)
leaq -0x188(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x18a20
leaq 0x40a7f(%rip), %rdi     # 0x93178
leaq -0x188(%rbp), %rsi
callq 0x3d5a0
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x3c1(%rbp)
jne 0x52716
jmp 0x5275d
leaq 0x40a6b(%rip), %rsi     # 0x93188
leaq -0x194(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x1b190
movq -0x3d0(%rbp), %rsi
movb $0x1, -0x195(%rbp)
leaq -0x14(%rbp), %rdi
callq 0x60860
movb %al, -0x3c2(%rbp)
jmp 0x5274f
movb -0x3c2(%rbp), %al
movb %al, -0x3c1(%rbp)
jmp 0x5275d
movb -0x3c1(%rbp), %al
movb %al, -0x3d1(%rbp)
testb $0x1, -0x195(%rbp)
jne 0x52774
jmp 0x52780
leaq -0x194(%rbp), %rdi
callq 0x60460
movb -0x3d1(%rbp), %al
testb $0x1, %al
jne 0x5278f
jmp 0x528c2
leaq -0x1a0(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq 0x18a20
leaq 0x409d2(%rip), %rax     # 0x93178
movq -0x1a0(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x409c9(%rip), %rax     # 0x93180
movb $0x1, (%rax)
leaq 0x3da6f(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x1b0(%rbp)
leaq -0x1a8(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x18a20
movq -0x1a8(%rbp), %rdi
callq 0x36ce0
jmp 0x527ee
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x5930
movq -0x3e0(%rbp), %rdx
leaq 0x19d33(%rip), %rsi     # 0x6c542
leaq -0x1d0(%rbp), %rdi
callq 0x18880
jmp 0x5281d
leaq -0x1d1(%rbp), %rdi
callq 0x5590
leaq -0x1d0(%rbp), %rdi
movl $0x3c, %esi
callq 0x1ab10
jmp 0x5283c
leaq 0x3ba55(%rip), %rsi     # 0x8e298
movl $0xffff, %edi           # imm = 0xFFFF
callq 0x19160
jmp 0x5284f
leaq -0x1d0(%rbp), %rdi
callq 0x5a48
jmp 0x531df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
testb $0x1, -0x195(%rbp)
jne 0x52877
jmp 0x52883
leaq -0x194(%rbp), %rdi
callq 0x60460
jmp 0x53506
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x1d1(%rbp), %rdi
callq 0x5590
jmp 0x53506
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x5a48
jmp 0x53506
movq -0x30(%rbp), %rax
movzwl (%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x531dd
leaq -0x14(%rbp), %rdi
movl $0x5, %esi
callq 0x49390
movq %rax, -0x3e8(%rbp)
jmp 0x528ec
movq -0x3e8(%rbp), %rax
movq %rax, -0x1e0(%rbp)
leaq 0x4062f(%rip), %rdi     # 0x92f30
addq $0x78, %rdi
callq 0x3c9d0
movq %rax, -0x1e8(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3cdc0
testb $0x1, %al
jne 0x5292d
jmp 0x52d57
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rdi
callq 0x3d8b0
movb %al, -0x3e9(%rbp)
jmp 0x52949
movb -0x3e9(%rbp), %al
movzbl %al, %eax
cmpl $0x3, %eax
jne 0x52987
movq -0x1e0(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0xac(%rax), %esi
movq -0x1f0(%rbp), %rdi
callq 0x57e50
jmp 0x52982
jmp 0x52d52
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rdi
callq 0x3d8b0
movb %al, -0x3ea(%rbp)
jmp 0x529a3
movb -0x3ea(%rbp), %al
movzbl %al, %eax
movl %eax, -0x3f0(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x3f0(%rbp), %eax
cmpl 0xac(%rcx), %eax
je 0x52b97
leaq 0x3e9bd(%rip), %rax     # 0x91394
cmpl $0x0, (%rax)
je 0x52a4c
leaq 0x3e9b1(%rip), %rax     # 0x91394
cmpl $0x1, (%rax)
jne 0x529fa
leaq -0x8(%rbp), %rdi
callq 0x1b050
cmpl $0x0, 0xac(%rax)
je 0x52a4c
leaq 0x3e993(%rip), %rax     # 0x91394
cmpl $0x1, (%rax)
je 0x52b92
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rdi
callq 0x3d8b0
movb %al, -0x3f1(%rbp)
jmp 0x52a26
movb -0x3f1(%rbp), %al
movzbl %al, %eax
leaq 0x4063a(%rip), %rdi     # 0x93070
imulq $0x18, %rax, %rax
addq %rax, %rdi
callq 0x3d850
cmpq $0x2, %rax
jb 0x52b92
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rdi
callq 0x3d8b0
movb %al, -0x3f2(%rbp)
jmp 0x52a68
movb -0x3f2(%rbp), %al
movzbl %al, %eax
leaq (%rax,%rax,2), %rcx
leaq 0x405f4(%rip), %rax     # 0x93070
leaq (%rax,%rcx,8), %rax
movq %rax, -0x400(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rdi
callq 0x3d8b0
movb %al, -0x3f3(%rbp)
jmp 0x52aa3
movb -0x3f3(%rbp), %al
movzbl %al, %eax
leaq (%rax,%rax,2), %rcx
leaq 0x405b9(%rip), %rax     # 0x93070
leaq (%rax,%rcx,8), %rdi
callq 0x3ddf0
movq %rax, -0x208(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rdi
callq 0x3d8b0
movb %al, -0x401(%rbp)
jmp 0x52ae3
movb -0x401(%rbp), %al
movzbl %al, %eax
leaq (%rax,%rax,2), %rcx
leaq 0x40579(%rip), %rax     # 0x93070
leaq (%rax,%rcx,8), %rdi
callq 0x3d900
movq %rax, -0x210(%rbp)
movq -0x208(%rbp), %rdi
movq -0x210(%rbp), %rsi
leaq -0x1e0(%rbp), %rdx
callq 0x58540
movq %rax, -0x410(%rbp)
jmp 0x52b2a
movq -0x410(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq -0x1f8(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3dc80
movq -0x400(%rbp), %rdi
movq -0x1f8(%rbp), %rsi
callq 0x584f0
movq %rax, -0x218(%rbp)
movq -0x1e0(%rbp), %rax
movq %rax, -0x220(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0xac(%rax), %esi
movq -0x220(%rbp), %rdi
callq 0x57e50
jmp 0x52b90
jmp 0x52b92
jmp 0x52d50
leaq -0x228(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq 0x18a20
leaq -0x228(%rbp), %rdi
leaq 0x405c3(%rip), %rsi     # 0x93178
callq 0x3d5a0
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x411(%rbp)
jne 0x52bcb
jmp 0x52bff
leaq 0x4049e(%rip), %rdi     # 0x93070
callq 0x3ddf0
movq %rax, -0x230(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x3d950
movq %rax, %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x58590
movb %al, -0x411(%rbp)
movb -0x411(%rbp), %al
testb $0x1, %al
jne 0x52c0e
jmp 0x52d4e
leaq 0x4045b(%rip), %rdi     # 0x93070
addq $0x18, %rdi
callq 0x3dc50
leaq -0x251(%rbp), %rdi
movq %rdi, -0x420(%rbp)
callq 0x5930
movq -0x420(%rbp), %rdx
leaq 0x1992b(%rip), %rsi     # 0x6c56a
leaq -0x250(%rbp), %rdi
callq 0x18880
jmp 0x52c4d
leaq -0x251(%rbp), %rdi
callq 0x5590
leaq -0x250(%rbp), %rdi
movl $0x3c, %esi
callq 0x1ab10
jmp 0x52c6c
leaq 0x3b625(%rip), %rsi     # 0x8e298
movl $0xffff, %edi           # imm = 0xFFFF
callq 0x19160
jmp 0x52c7f
leaq 0x3d5aa(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x268(%rbp)
leaq -0x260(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x18a20
leaq 0x404cc(%rip), %rax     # 0x93178
movq -0x260(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x26c(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
callq 0x60430
jmp 0x52ccb
leaq 0x404b6(%rip), %rdi     # 0x93188
leaq -0x26c(%rbp), %rsi
callq 0x49fd0
jmp 0x52ce0
leaq -0x26c(%rbp), %rdi
callq 0x60460
leaq -0x250(%rbp), %rdi
callq 0x5a48
jmp 0x52d4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x251(%rbp), %rdi
callq 0x5590
jmp 0x53506
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x52d3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x26c(%rbp), %rdi
callq 0x60460
leaq -0x250(%rbp), %rdi
callq 0x5a48
jmp 0x53506
jmp 0x52d50
jmp 0x52d52
jmp 0x52fd9
leaq -0x14(%rbp), %rdi
movl $0x2, %esi
callq 0x49390
movq %rax, -0x428(%rbp)
jmp 0x52d6e
movq -0x428(%rbp), %rax
movq %rax, -0x278(%rbp)
movq -0x278(%rbp), %rax
movq %rax, -0x1e0(%rbp)
leaq 0x4019f(%rip), %rdi     # 0x92f30
addq $0x30, %rdi
callq 0x3c9d0
movq %rax, -0x280(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x3cdc0
testb $0x1, %al
jne 0x52dbd
jmp 0x52fd7
leaq 0x4016c(%rip), %rdi     # 0x92f30
addq $0x48, %rdi
callq 0x3d880
movswl %ax, %edi
callq 0x608b0
movw %ax, -0x42a(%rbp)
jmp 0x52dde
movw -0x42a(%rbp), %ax
movb %al, -0x281(%rbp)
leaq 0x4013e(%rip), %rdi     # 0x92f30
addq $0x48, %rdi
callq 0x3c950
movq %rax, -0x290(%rbp)
movq -0x290(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movsbl -0x281(%rbp), %eax
cmpl $0x0, %eax
jle 0x52e38
leaq -0x1e0(%rbp), %rdi
callq 0x3ce20
movb -0x281(%rbp), %al
addb $-0x1, %al
movb %al, -0x281(%rbp)
jmp 0x52e10
movq -0x1e0(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq 0x3ef8b(%rip), %rax     # 0x91dd8
movq (%rax), %rax
movq %rax, -0x438(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rsi
leaq -0x29c(%rbp), %rdi
callq 0x1b190
movq -0x438(%rbp), %rdi
leaq -0x29c(%rbp), %rsi
callq 0x3d2d0
movzwl (%rax), %eax
andl $0x40, %eax
movl %eax, -0x430(%rbp)
leaq -0x29c(%rbp), %rdi
callq 0x60460
movl -0x430(%rbp), %eax
cmpl $0x0, %eax
je 0x52f60
leaq -0x1e0(%rbp), %rdi
callq 0x3ce20
movq %rax, -0x440(%rbp)
leaq 0x4006a(%rip), %rdi     # 0x92f30
addq $0x48, %rdi
callq 0x3c9d0
movq -0x440(%rbp), %rdi
movq %rax, -0x2a8(%rbp)
leaq -0x2a8(%rbp), %rsi
callq 0x58590
testb $0x1, %al
jne 0x52eef
jmp 0x52f14
leaq 0x4003a(%rip), %rdi     # 0x92f30
addq $0x48, %rdi
callq 0x3c950
movq %rax, -0x2b0(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x58590
testb $0x1, %al
jne 0x52f2d
jmp 0x52f5b
movq -0x8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rdi
leaq -0x14(%rbp), %rsi
movl $0x1, %edx
callq 0x53890
jmp 0x52f4f
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
jmp 0x52e46
movq -0x8(%rbp), %rax
movq %rax, -0x2c0(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rsi
leaq -0x2c4(%rbp), %rdi
movq %rdi, -0x448(%rbp)
callq 0x1b190
movq -0x448(%rbp), %rsi
movq -0x2c0(%rbp), %rdi
callq 0x580e0
jmp 0x52fa2
leaq -0x2c4(%rbp), %rdi
callq 0x60460
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2c4(%rbp), %rdi
callq 0x60460
jmp 0x53506
jmp 0x52fd9
leaq -0x14(%rbp), %rdi
movl $0x4, %esi
callq 0x49390
movq %rax, -0x450(%rbp)
jmp 0x52ff0
movq -0x450(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq -0x2d0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
leaq 0x3ff1d(%rip), %rdi     # 0x92f30
addq $0x60, %rdi
callq 0x3c9d0
movq %rax, -0x2d8(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x3cdc0
testb $0x1, %al
jne 0x5303f
jmp 0x531db
movq -0x1e0(%rbp), %rax
movq %rax, -0x2e0(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3ce20
movq %rax, -0x458(%rbp)
leaq 0x3fec9(%rip), %rdi     # 0x92f30
addq $0x60, %rdi
callq 0x3c9d0
movq -0x458(%rbp), %rdi
movq %rax, -0x2e8(%rbp)
leaq -0x2e8(%rbp), %rsi
callq 0x58590
testb $0x1, %al
jne 0x53090
jmp 0x530b5
leaq 0x3fe99(%rip), %rdi     # 0x92f30
addq $0x60, %rdi
callq 0x3c950
movq %rax, -0x2f0(%rbp)
movq -0x2f0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x58590
testb $0x1, %al
jne 0x530ce
jmp 0x530fc
movq -0x8(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq -0x2f8(%rbp), %rdi
leaq -0x14(%rbp), %rsi
movl $0x1, %edx
callq 0x53890
jmp 0x530f0
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
jmp 0x530fe
leaq 0x3ecd3(%rip), %rax     # 0x91dd8
movq (%rax), %rax
movq %rax, -0x468(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rsi
leaq -0x2fc(%rbp), %rdi
callq 0x1b190
movq -0x468(%rbp), %rdi
leaq -0x2fc(%rbp), %rsi
callq 0x3d2d0
movzwl (%rax), %eax
andl $0x40, %eax
movl %eax, -0x45c(%rbp)
leaq -0x2fc(%rbp), %rdi
callq 0x60460
movl -0x45c(%rbp), %eax
cmpl $0x0, %eax
jne 0x5304d
movq -0x8(%rbp), %rax
movq %rax, -0x308(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3cdf0
movq %rax, %rsi
leaq -0x30c(%rbp), %rdi
movq %rdi, -0x470(%rbp)
callq 0x1b190
movq -0x470(%rbp), %rsi
movq -0x308(%rbp), %rdi
callq 0x580e0
jmp 0x531a6
leaq -0x30c(%rbp), %rdi
callq 0x60460
movl $0x1, -0x4c(%rbp)
jmp 0x534eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x30c(%rbp), %rdi
callq 0x60460
jmp 0x53506
jmp 0x531dd
jmp 0x531df
movb $0x0, -0x30d(%rbp)
movq -0x30(%rbp), %rax
movzwl (%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x5345e
leaq -0x8(%rbp), %rdi
callq 0x1b050
cmpl $0x1, 0xb0(%rax)
jne 0x5321a
movq -0x30(%rbp), %rax
movzwl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x53241
leaq -0x8(%rbp), %rdi
callq 0x1b050
cmpl $0x9, 0xb0(%rax)
jne 0x5345e
movq -0x30(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x54, %eax
jne 0x5345e
leaq -0x14(%rbp), %rdi
callq 0x48d60
movb %al, -0x471(%rbp)
jmp 0x53252
movb -0x471(%rbp), %al
testb $0x1, %al
jne 0x5345e
jmp 0x53262
leaq 0x3cfc7(%rip), %rdi     # 0x90230
callq 0x1b360
movq %rax, -0x318(%rbp)
movq -0x318(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x3cfa9(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x320(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x1b100
testb $0x1, %al
jne 0x532ac
jmp 0x5342c
leaq -0x38(%rbp), %rdi
callq 0x1b050
movl 0xac(%rax), %eax
movl %eax, -0x478(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl -0x478(%rbp), %ecx
movl 0xac(%rax), %edx
movb $0x0, -0x325(%rbp)
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x472(%rbp)
je 0x533c3
leaq -0x38(%rbp), %rdi
callq 0x1b050
movq %rax, %rdi
callq 0x21cd0
movb %al, -0x479(%rbp)
jmp 0x53306
movb -0x479(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x472(%rbp)
jne 0x5331e
jmp 0x533c3
leaq -0x38(%rbp), %rdi
callq 0x1b050
movq 0xc0(%rax), %rdi
callq 0x3d340
movb %al, -0x47a(%rbp)
jmp 0x5333b
movb -0x47a(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x472(%rbp)
jne 0x533c3
jmp 0x53350
leaq 0x3ea81(%rip), %rax     # 0x91dd8
movq (%rax), %rax
movq %rax, -0x490(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x324(%rbp), %rdi
movq %rdi, -0x488(%rbp)
callq 0x1b190
movq -0x490(%rbp), %rdi
movq -0x488(%rbp), %rsi
movb $0x1, -0x325(%rbp)
leaq -0x14(%rbp), %rdx
movl $0x3, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x2c2b0
movb %al, -0x47b(%rbp)
jmp 0x533b5
movb -0x47b(%rbp), %al
movb %al, -0x472(%rbp)
jmp 0x533c3
movb -0x472(%rbp), %al
movb %al, -0x491(%rbp)
testb $0x1, -0x325(%rbp)
jne 0x533da
jmp 0x533e6
leaq -0x324(%rbp), %rdi
callq 0x60460
movb -0x491(%rbp), %al
testb $0x1, %al
jne 0x533f2
jmp 0x5341c
jmp 0x5342c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
testb $0x1, -0x325(%rbp)
jne 0x5340b
jmp 0x53417
leaq -0x324(%rbp), %rdi
callq 0x60460
jmp 0x53506
jmp 0x5341e
leaq -0x38(%rbp), %rdi
callq 0x1b3c0
jmp 0x53280
leaq 0x3cdfd(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x330(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x3d990
testb $0x1, %al
jne 0x53455
jmp 0x5345c
movb $0x1, -0x30d(%rbp)
jmp 0x5345e
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rax
movq %rax, -0x4a0(%rbp)
testb $0x1, -0x30d(%rbp)
je 0x534a1
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0xac(%rax), %eax
movl %eax, %ecx
leaq 0x16efa(%rip), %rax     # 0x6a390
movl (%rax,%rcx,4), %eax
movl %eax, -0x4a4(%rbp)
jmp 0x534ae
movl $0x3, %eax
movl %eax, -0x4a4(%rbp)
jmp 0x534ae
movq -0x4a0(%rbp), %rdi
movl -0x4a4(%rbp), %esi
callq 0x585c0
jmp 0x534c2
movq -0x8(%rbp), %rax
movq %rax, -0x338(%rbp)
movq -0x338(%rbp), %rdi
leaq -0x14(%rbp), %rsi
movl $0x1, %edx
callq 0x53890
jmp 0x534e4
movl $0x0, -0x4c(%rbp)
leaq -0x14(%rbp), %rdi
callq 0x60460
leaq -0x10(%rbp), %rdi
callq 0x60460
addq $0x4b0, %rsp            # imm = 0x4B0
popq %rbp
retq
leaq -0x14(%rbp), %rdi
callq 0x60460
leaq -0x10(%rbp), %rdi
callq 0x60460
movq -0x20(%rbp), %rdi
callq 0x5920
nopw %cs:(%rax,%rax)