// File: /workspace/github_cpp_makefile_star2_O2/lotuskip[P]yuxtapa/server/chores.cpp
// Function: process_action(Axn const&, std::_List_iterator<Player>)
void process_action(const Axn &axn, const list<Player>::iterator pit)
{
	Coords c;
	// Stuff that happens whenever a PC acts:
	pit->acted_this_turn = true;
	pit->wants_to_move_to = MAX_D;

	switch(axn.xncode)
	{
	case XN_CLOSE_DOOR:
	{
		// Find an open door, starting the search from the facing direction:
		e_Dir d = pit->facing;
		Tile *t;
		do {
			c = pit->own_pc->getpos().in(d);
			t = Game::curmap->mod_tile(c);
			if(t->symbol == '\\' && !(t->flags & TF_OCCUPIED))
			{
				t->symbol = '+';
				t->flags &= ~(TF_WALKTHRU|TF_SEETHRU);
				update_lights_around(c);
				if(random()%2)
					add_sound(c, S_CREAK);
				else // a sound sets an event
					event_set.insert(c);
				pit->facing = d;
				break;
			}
			++d;
		} while(d != pit->facing);
		break;
	}
	case XN_TORCH_HANDLE:
	{
		c = pit->own_pc->getpos();
		if(pit->own_pc->torch_is_lit())
		{
			pit->own_pc->toggle_torch();
			event_set.insert(c);
		}
		else if(pit->torch_left) // wants to light it
		{
			// Check the three conditions: wizard, on a static torch, or
			// next to a teammate with a lit torch:
			if(pit->cl == C_WIZARD || any_noccent_at(c, NOE_TORCH) != noccents[NOE_TORCH].end())
			{
				pit->own_pc->toggle_torch();
				event_set.insert(c);
			}
			else // Check the teammates:
			{
				for(list<PCEnt>::const_iterator pcit = PCs.begin();
					pcit != PCs.end(); ++pcit)
				{
					if(pcit->getpos().dist_walk(c) == 1
						&& pcit->torch_is_lit()
						&& pcit->get_owner()->team == pit->team)
					{
						pit->own_pc->toggle_torch();
						event_set.insert(c);
						break;
					}
				}
			}
		} // trying to light a torch
		break;
	}
	case XN_TRAP_TRIGGER:
		if(Game::curmap->get_tile(pit->own_pc->getpos()).flags & TF_TRAP)
			trigger_trap(pit, any_trap_at(pit->own_pc->getpos()), true);
		break;
	case XN_SUICIDE:
	{
		// Check for "scared to death" possibility:
		// Go through the PCs looking for any visible enemy close enough
		list<PCEnt>::iterator it = PCs.begin();
		while(it != PCs.end())
		{
			// not void, visible, enemy (NOTE: pass the actual
			// distance to LOS_between; this way it will only check one
			// direction (whether 'pit' sees 'it', not if 'it' sees 'pit'))
			if(!it->isvoid() && it->visible_to_team(pit->team)
				&& it->get_owner()->team != pit->team
				&& Game::curmap->LOS_between(pit->own_pc->getpos(), it->getpos(),
					SCARED_TO_DEATH_DIST, it->getpos().dist_walk(pit->own_pc->getpos())))
			{
				player_death(pit, " was scared to death by "
					+ it->get_owner()->nick + '.', true);
				record_kill(it->get_owner(), WTK_SCARE);
				break;
			}
			++it;
		}
		if(it != PCs.end()) // was broken
			break;
		// If here, check for being poisoned with just 1 hp:
		if(pit->poisoner != cur_players.end() && pit->cl_props.hp == 1)
			player_poisoned(pit);
		else // a valid suicide
			player_death(pit, " suicided.", true);
		break;
	}
	case XN_MOVE:
		// If player is in water and action queue is nonempty, do not allow swimming
		if(pit->action_queue.empty() ||
			!(Game::curmap->mod_tile(pit->own_pc->getpos())->flags & TF_DROWNS))
			try_move(pit, (pit->facing = e_Dir(axn.var1)));
		break;
	case XN_SHOOT:
	{
		// The coords are already validated in network.cpp upon receiving!
		c.x = axn.var1; c.y = axn.var2;
		pit->facing = Coords(0,0).dir_of(c);
		pit->stats_i->arch_shots++;
		arrows.push_back(Arrow(c, pit));
		break;
	}
	case XN_FLASH:
		if(pit->limiter) // have flashbombs left
		{
			flash_at(pit->own_pc->getpos());
			pit->limiter--;
		}
		break;
	case XN_ZAP:
		limiter_upd(pit);

		pit->facing = e_Dir(axn.var1);
		zaps.push_back(Zap(pit, pit->facing));
		pit->stats_i->cm_shots++;
		break;
	case XN_CIRCLE_ATTACK:
		pit->facing = e_Dir(axn.var1);
		pit->doing_a_chore = 2;
		break;
	case XN_HEAL:
		if(axn.var1 != MAX_D)
		{
			c = pit->own_pc->getpos().in((pit->facing = e_Dir(axn.var1)));
			list<PCEnt>::iterator pc_it = any_pc_at(c);
			if(pc_it != PCs.end())
			{
				list<Player>::iterator nit = pc_it->get_owner();
				if(nit->team == pit->team) // teammate => heal
					heal_PC(nit);
				else // enemy => poison
				{
					nit->poisoner = pit;
					add_action_ind(c, A_POISON);
				}
			}
		}
		else // healing self
			heal_PC(pit);
		break;
	case XN_BLINK:
	{
		limiter_upd(pit);

		// Determine a point to blink to, if any:
		Coords opos = pit->own_pc->getpos();
		vector<Coords> optimals;
		Coords cg = opos; // "good" coords
		char line, ind;
		for(line = 0; line < MAX_BLK_DIST*8; ++line)
		{
			for(ind = 0; ind < 2*MAX_BLK_DIST; ind += 2)
			{
				c.x = loslookup[MAX_BLK_DIST-2][line*2*MAX_BLK_DIST+ind]
					+ opos.x;
				c.y = loslookup[MAX_BLK_DIST-2][line*2*MAX_BLK_DIST+ind+1]
					+ opos.y;
				// the point must be visible:
				if(!(Game::curmap->get_tile(c).flags & TF_SEETHRU))
					break;
				//else
				cg = c;
			}
			// Note that points outside of the map cannot be reached; the edge
			// wall prevents them from being visible!
			// Endpoint must be walkable and not occupied:
			if((Game::curmap->get_tile(cg).flags & TF_WALKTHRU)
				&& !(Game::curmap->get_tile(cg).flags & TF_OCCUPIED))
			{
				// Trying to get as far as possible:
				if(optimals.empty())
					optimals.push_back(cg); // no previous record
				else if(cg.dist_walk(opos) > optimals.front().dist_walk(opos))
				{
					optimals.clear(); // a new record!
					optimals.push_back(cg);
				}
				else if(cg.dist_walk(opos) == optimals.front().dist_walk(opos))
					optimals.push_back(cg); // repeat old record
			}
		}
		if(optimals.empty())
			break; // cannot blink!
		c = optimals[randor0(optimals.size())];

		// Do the transfer:
		event_set.insert(opos);
		move_player_to(pit, c, true);
		pit->action_queue.clear(); /* Rarely does one plan her actions
			beyond a blink. */
		break;
	}
	case XN_MINE:
	{
		pit->facing = e_Dir(axn.var1);
		c = pit->own_pc->getpos().in(e_Dir(axn.var1));
		char rv;
		if(!(rv = cant_dig_in(c, e_Dir(axn.var1))))
		{
			pit->doing_a_chore = DIG_TURNS;
			add_sound(c, S_RUMBLE);
		}
		else if(rv == -1) // illusory wall
		{
			string msg = "That is no real wall!";
			Network::construct_msg(msg, C_WALL_LIT);
			Network::send_to_player(*pit);
		}
		// else there is nothing to dig
		break;
	}
	case XN_DISGUISE:
	{
		c = pit->own_pc->getpos();
		if(Game::curmap->get_tile(c).flags & TF_NOCCENT)
		{
			// check that there's an enemy corpse
			list<NOccEnt>::iterator c_it = any_noccent_at(c, NOE_CORPSE);
			if(c_it != noccents[NOE_CORPSE].end()
				&& c_it->get_colour() != team_colour[pit->team])
			{
				pit->doing_a_chore = DISGUISE_TURNS;
				add_action_ind(c, A_DISGUISE);
			}
		}
		break;
	}
	case XN_SET_TRAP:
	{
		// A trap can be set/disarmed where there is no noccent:
		if(!(Game::curmap->get_tile(pit->own_pc->getpos()).flags
			& TF_NOCCENT))
		{
			pit->doing_a_chore = TRAP_TURNS;
			add_action_ind(pit->own_pc->getpos(), A_TRAP);
		}
		break;
	}
	case XN_MM:
	{
		limiter_upd(pit);

		e_Dir d;
		unsigned short flgs;
		for(char ch = 0; ch < 4; ++ch)
		{
			d = e_Dir((pit->facing + 2*ch)%MAX_D);
			c = pit->own_pc->getpos().in(d);
			flgs = Game::curmap->mod_tile(c)->flags;
			if(flgs & TF_WALKTHRU && !(flgs & TF_OCCUPIED))
			{
				MMs.push_back(MM(pit, d));
				event_set.insert(c);
			}
			// else cannot conjure a MM there
		}
		break;
	}
	case XN_MINDS_EYE:
		if(!(pit->limiter = !pit->limiter)) // turning mind's eye off
		{
			pit->own_vp->set_pos(pit->own_pc->getpos());
			pit->cl_props.dv = classes[pit->cl].dv;
		}
		else // turning mind's eye on
		{
			pit->cl_props.dv = 11;
			while(pit->own_vp->is_blind())
				pit->own_vp->reduce_blind();
		}
		pit->needs_state_upd = true;
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq -0x2c(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x24d90
movb $0x1, 0x138(%rbx)
movq %rbx, -0x38(%rbp)
movl $0x8, 0x13c(%rbx)
movzbl (%r14), %eax
cmpq $0xf, %rax
ja 0x1ebff
leaq 0x11aeb(%rip), %rcx     # 0x2f150
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x38(%rbp), %rax
movl 0x168(%rax), %edx
leaq -0x80(%rbp), %r14
movl %edx, (%r14)
leaq -0xb0(%rbp), %r15
leaq -0xe8(%rbp), %r12
leaq 0x245c4(%rip), %rbx     # 0x41c58
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0xe8(%rbp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x24e0c
movl -0xb0(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq %r15, %rdi
callq 0x24d9e
movq %r12, %rdi
callq 0x24d9e
movq (%rbx), %rax
movswq -0x2a(%rbp), %rcx
movq 0x8(%rax), %rdx
imulq $0x18, %rcx, %rcx
movswq -0x2c(%rbp), %rax
movq (%rdx,%rcx), %rcx
cmpb $0x5c, 0x2(%rcx,%rax,4)
jne 0x1d6f5
movzwl (%rcx,%rax,4), %edx
testb $0x40, %dl
je 0x1e20e
movq %r14, %rdi
callq 0x24d4c
movl -0x80(%rbp), %edx
movq -0x38(%rbp), %rax
cmpl 0x168(%rax), %edx
jne 0x1d694
jmp 0x1ebff
leaq 0x24540(%rip), %rax     # 0x41c58
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq 0x148(%rcx), %rcx
movl 0x8(%rcx), %ecx
leaq -0x80(%rbp), %rdi
movl %ecx, (%rdi)
movswq %cx, %rdx
shrl $0x10, %ecx
movswq %cx, %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movq (%rax,%rcx), %rax
movb (%rax,%rdx,4), %bl
callq 0x24d9e
testb $0x20, %bl
jne 0x1ebff
movq -0x38(%rbp), %rax
movb $0x6, 0x142(%rax)
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
pushq $0x1
popq %rsi
callq 0x1b103
jmp 0x1da28
movsbl 0x1(%r14), %edx
movq -0x38(%rbp), %rax
movl %edx, 0x168(%rax)
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0xb0(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x80(%rbp), %rdi
callq 0x24e0c
leaq -0x80(%rbp), %rdi
movl (%rdi), %eax
leaq -0x2c(%rbp), %r15
movl %eax, (%r15)
callq 0x24d9e
leaq -0xb0(%rbp), %rdi
callq 0x24d9e
movsbl 0x1(%r14), %esi
movq %r15, %rdi
callq 0x1fd05
cmpb $-0x1, %al
je 0x1e248
movzbl %al, %eax
testl %eax, %eax
jne 0x1ebff
movq -0x38(%rbp), %rax
movb $0x5, 0x142(%rax)
leaq -0x2c(%rbp), %rdi
pushq $0x5
popq %rsi
callq 0x1b202
jmp 0x1ebff
movq -0x38(%rbp), %rcx
movq 0x118(%rcx), %rax
cmpq 0xf8(%rcx), %rax
je 0x1d860
leaq 0x24439(%rip), %rax     # 0x41c58
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq 0x148(%rcx), %rcx
movl 0x8(%rcx), %ecx
leaq -0x80(%rbp), %rdi
movl %ecx, (%rdi)
movswq %cx, %rdx
shrl $0x10, %ecx
movswq %cx, %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movq (%rax,%rcx), %rax
movzwl (%rax,%rdx,4), %ebx
callq 0x24d9e
btl $0xa, %ebx
jb 0x1ebff
movsbl 0x1(%r14), %r15d
movq -0x38(%rbp), %rax
movl %r15d, 0x168(%rax)
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0x8c(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x3c(%rbp), %rdi
movl %r15d, %edx
callq 0x24e0c
leaq 0x243c2(%rip), %rax     # 0x41c58
movq (%rax), %rax
movswq -0x3c(%rbp), %r12
movswq -0x3a(%rbp), %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movq (%rax,%rcx), %r13
movzwl (%r13,%r12,4), %eax
testb $0x1, %al
jne 0x1e140
cmpb $0x2b, 0x2(%r13,%r12,4)
jne 0x1ebea
movb $0x5c, 0x2(%r13,%r12,4)
orl $0x5, %eax
movw %ax, (%r13,%r12,4)
leaq -0x3c(%rbp), %rdi
callq 0x1ee7b
callq 0x41e0
testb $0x1, %al
jne 0x1e36c
leaq 0x256d3(%rip), %rdi     # 0x42fc8
leaq -0x3c(%rbp), %rsi
callq 0x1c558
jmp 0x1ebea
movsbl 0x1(%r14), %edx
cmpl $0x8, %edx
jne 0x1e0a0
movq -0x38(%rbp), %rdi
callq 0x1f740
jmp 0x1ebff
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
movl %eax, -0x2c(%rbp)
callq 0x24d9e
leaq 0x24316(%rip), %rax     # 0x41c58
movq (%rax), %rax
movswq -0x2a(%rbp), %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movswq -0x2c(%rbp), %rdx
movq (%rax,%rcx), %rax
testb $0x20, (%rax,%rdx,4)
je 0x1ebff
leaq -0x2c(%rbp), %rdi
xorl %esi, %esi
callq 0x1ba5b
cmpq 0x1f651(%rip), %rax     # 0x3cfc8
je 0x1ebff
movsbl 0x1d(%rax), %eax
movq -0x38(%rbp), %rcx
movl 0xbc(%rcx), %ecx
leaq 0x11846(%rip), %rdx     # 0x2f1d8
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0x1ebff
movq -0x38(%rbp), %rax
movb $0x7, 0x142(%rax)
leaq -0x2c(%rbp), %rdi
pushq $0x3
popq %rsi
callq 0x1b103
jmp 0x1ebff
leaq 0x24297(%rip), %rax     # 0x41c58
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq 0x148(%rcx), %rcx
movl 0x8(%rcx), %ecx
leaq -0x80(%rbp), %rdi
movl %ecx, (%rdi)
movswq %cx, %rdx
shrl $0x10, %ecx
movswq %cx, %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movq (%rax,%rcx), %rax
movl (%rax,%rdx,4), %ebx
callq 0x24d9e
btl $0xb, %ebx
jae 0x1ebff
movq -0x38(%rbp), %rbx
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
callq 0x1bae4
pushq $0x1
popq %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1ef1b
leaq -0x80(%rbp), %rdi
jmp 0x1ebfa
movq -0x38(%rbp), %rbx
cmpb $0x0, 0x140(%rbx)
sete 0x140(%rbx)
je 0x1e11d
movq 0xd0(%rbx), %rdi
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
callq 0x194b2
leaq -0x80(%rbp), %rdi
callq 0x24d9e
movl 0xc0(%rbx), %eax
imulq $0xd, %rax, %rax
leaq 0x11761(%rip), %rcx     # 0x2f1e0
movb 0x8(%rax,%rcx), %al
movb %al, 0x158(%rbx)
movq -0x38(%rbp), %rax
movb $0x1, 0x15d(%rax)
jmp 0x1ebff
leaq 0x25430(%rip), %rbx     # 0x42ed0
leaq -0x80(%rbp), %r12
leaq -0xb0(%rbp), %r13
movq %rbx, %r15
movq (%r15), %r15
cmpq %rbx, %r15
je 0x1e04d
cmpb $0x0, 0x1e(%r15)
jne 0x1daae
movq -0x38(%rbp), %rax
movl 0xbc(%rax), %eax
cmpl %eax, 0x28(%r15)
je 0x1daae
movq 0x20(%r15), %rcx
cmpl %eax, 0xbc(%rcx)
je 0x1daae
leaq 0x24174(%rip), %rax     # 0x41c58
movq (%rax), %r14
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x80(%rbp)
movl 0x18(%r15), %ecx
movl %ecx, -0xb0(%rbp)
movl %ecx, -0xe8(%rbp)
movl %eax, -0xb8(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x24dd8
movswl %ax, %r8d
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
pushq $0x3
popq %rcx
callq 0x1293c
movl %eax, %r14d
leaq -0xb8(%rbp), %rdi
callq 0x24d9e
leaq -0xe8(%rbp), %rdi
callq 0x24d9e
movq %r13, %rdi
callq 0x24d9e
movq %r12, %rdi
callq 0x24d9e
testb %r14b, %r14b
je 0x1daae
movl $0x98, %edx
addq 0x20(%r15), %rdx
leaq 0x118e3(%rip), %rsi     # 0x2f45d
leaq -0xb0(%rbp), %rdi
callq 0xde6a
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
pushq $0x2e
popq %rdx
callq 0x17d8b
leaq -0x80(%rbp), %rsi
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
callq 0x1f393
leaq -0x80(%rbp), %rdi
callq 0x47e8
leaq -0xb0(%rbp), %rdi
callq 0x47e8
movq 0x20(%r15), %rdi
pushq $0xa
popq %rsi
callq 0x1f544
jmp 0x1ebff
movq -0x38(%rbp), %rbx
movq %rbx, %rdi
callq 0x1f720
movsbl 0x1(%r14), %edx
movl %edx, 0x168(%rbx)
leaq -0x80(%rbp), %rdi
movq %rbx, %rsi
callq 0x1d20a
leaq 0x252bf(%rip), %rdi     # 0x42eb8
leaq -0x80(%rbp), %rsi
callq 0x21acc
leaq -0x80(%rbp), %rdi
callq 0x1c9c8
movq -0x38(%rbp), %rax
movq 0x90(%rax), %rax
incq 0x130(%rax)
jmp 0x1ebff
movq -0x38(%rbp), %rbx
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
movl %eax, -0x2c(%rbp)
callq 0x24d9e
movq 0x148(%rbx), %rdi
cmpb $0x1, 0x20(%rdi)
je 0x1dc92
cmpw $0x0, 0x170(%rbx)
je 0x1ebff
movq -0x38(%rbp), %rax
cmpl $0x8, 0xc0(%rax)
je 0x1dc92
leaq -0x2c(%rbp), %rdi
pushq $0x6
popq %rsi
callq 0x1ba5b
movl $0x90, %ecx
addq 0x1f34a(%rip), %rcx     # 0x3cfc8
cmpq %rcx, %rax
je 0x1e450
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rdi
callq 0x1cb8c
leaq 0x2532a(%rip), %rdi     # 0x42fc8
leaq -0x2c(%rbp), %rsi
callq 0x1c558
jmp 0x1ebff
movsbl 0x1(%r14), %eax
movw %ax, -0x2c(%rbp)
movsbl 0x2(%r14), %eax
movw %ax, -0x2a(%rbp)
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x24d90
movl -0x2c(%rbp), %eax
leaq -0xc0(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x80(%rbp), %rdi
callq 0x24e9e
movq -0x38(%rbp), %rbx
movl %eax, 0x168(%rbx)
leaq -0xc0(%rbp), %rdi
callq 0x24d9e
leaq -0x80(%rbp), %rdi
callq 0x24d9e
movq 0x90(%rbx), %rax
incq 0x120(%rax)
movl -0x2c(%rbp), %eax
leaq -0xbc(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x80(%rbp), %rdi
movq %rbx, %rdx
callq 0x1cba2
leaq 0x2515c(%rip), %rdi     # 0x42e88
leaq -0x80(%rbp), %rsi
callq 0x21abc
leaq -0x80(%rbp), %rdi
callq 0x1d462
leaq -0xbc(%rbp), %rdi
jmp 0x1ebfa
movq -0x38(%rbp), %rdi
callq 0x1f720
xorl %r12d, %r12d
leaq -0x80(%rbp), %r14
leaq -0xb0(%rbp), %r15
leaq 0x23ef0(%rip), %rbx     # 0x41c58
cmpl $0x8, %r12d
je 0x1ebff
movq -0x38(%rbp), %rcx
movl 0x168(%rcx), %eax
addl %r12d, %eax
cltd
pushq $0x8
popq %rsi
idivl %esi
movl %edx, %r13d
movq 0x148(%rcx), %rax
movl 0x8(%rax), %eax
movl %eax, -0xb0(%rbp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x24e0c
movl -0x80(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq %r14, %rdi
callq 0x24d9e
movq %r15, %rdi
callq 0x24d9e
movq (%rbx), %rax
movswq -0x2a(%rbp), %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movswq -0x2c(%rbp), %rdx
movq (%rax,%rcx), %rax
movzwl (%rax,%rdx,4), %eax
andl $0x41, %eax
cmpw $0x1, %ax
jne 0x1de15
movq %r14, %rdi
movq -0x38(%rbp), %rsi
movl %r13d, %edx
callq 0x1cf04
leaq 0x250ab(%rip), %rdi     # 0x42ea0
movq %r14, %rsi
callq 0x21aea
movq %r14, %rdi
callq 0x1c9c8
leaq 0x251bc(%rip), %rdi     # 0x42fc8
leaq -0x2c(%rbp), %rsi
callq 0x1c558
addl $0x2, %r12d
jmp 0x1dd68
movq -0x38(%rbp), %rax
cmpb $0x0, 0x140(%rax)
je 0x1ebff
movq -0x38(%rbp), %rbx
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
callq 0x1f635
leaq -0x80(%rbp), %rdi
callq 0x24d9e
decb 0x140(%rbx)
jmp 0x1ebff
movsbl 0x1(%r14), %eax
movq -0x38(%rbp), %rcx
movl %eax, 0x168(%rcx)
movb $0x2, 0x142(%rcx)
jmp 0x1ebff
movq -0x38(%rbp), %rbx
movq %rbx, %rdi
callq 0x1f720
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0xb0(%rbp), %rbx
movl %eax, (%rbx)
xorps %xmm0, %xmm0
leaq -0x80(%rbp), %rcx
movaps %xmm0, (%rcx)
andq $0x0, 0x10(%rcx)
leaq -0xe8(%rbp), %rcx
movl %eax, (%rcx)
xorl %r15d, %r15d
leaq 0x23da0(%rip), %r12     # 0x41c58
leaq 0x11451(%rip), %r14     # 0x2f310
cmpl $0x20, %r15d
je 0x1dfd1
movslq %r15d, %rax
shlq $0x3, %rax
movzwl -0xb0(%rbp), %edx
movzwl -0xae(%rbp), %esi
movq (%r12), %rcx
movq 0x8(%rcx), %rcx
xorl %edi, %edi
movsbl %dil, %edi
cmpl $0x7, %edi
jg 0x1df39
movslq %edi, %r8
addq %rax, %r8
movsbl (%r14,%r8), %r9d
addl %edx, %r9d
movw %r9w, -0x2c(%rbp)
movsbl 0x1(%r14,%r8), %r8d
addl %esi, %r8d
movw %r8w, -0x2a(%rbp)
movswq %r8w, %r8
imulq $0x18, %r8, %r8
movswq %r9w, %r9
movq (%rcx,%r8), %r8
testb $0x4, (%r8,%r9,4)
je 0x1df39
movl -0x2c(%rbp), %r8d
movl %r8d, -0xe8(%rbp)
addl $0x2, %edi
jmp 0x1dee8
movswq -0xe6(%rbp), %rax
imulq $0x18, %rax, %rax
movswq -0xe8(%rbp), %rdx
movq (%rcx,%rax), %rax
movl (%rax,%rdx,4), %eax
andl $0x41, %eax
cmpl $0x1, %eax
jne 0x1dfc9
movq -0x80(%rbp), %rax
cmpq -0x78(%rbp), %rax
je 0x1dfb9
leaq -0xe8(%rbp), %rdi
movq %rbx, %rsi
callq 0x24dd8
movl %eax, %r13d
movq -0x80(%rbp), %rdi
movq %rbx, %rsi
callq 0x24dd8
cmpw %ax, %r13w
jle 0x1df95
leaq -0x80(%rbp), %rdi
callq 0x21adc
jmp 0x1dfb9
leaq -0xe8(%rbp), %rdi
movq %rbx, %rsi
callq 0x24dd8
movl %eax, %r13d
movq -0x80(%rbp), %rdi
movq %rbx, %rsi
callq 0x24dd8
cmpw %ax, %r13w
jne 0x1dfc9
leaq -0x80(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x139a6
incl %r15d
jmp 0x1debf
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %rax
cmpq %rax, %rcx
je 0x1e02c
subl %ecx, %eax
shrl $0x2, %eax
movswl %ax, %edi
callq 0x24f60
movswq %ax, %rax
movq -0x80(%rbp), %rcx
movl (%rcx,%rax,4), %eax
movl %eax, -0x2c(%rbp)
leaq 0x24fc8(%rip), %rdi     # 0x42fc8
leaq -0xb0(%rbp), %rsi
callq 0x1c558
leaq -0x2c(%rbp), %rsi
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
callq 0x1f7f6
movq -0x38(%rbp), %rdi
addq $0xe8, %rdi
callq 0x17e6e
leaq -0xe8(%rbp), %rdi
callq 0x24d9e
leaq -0x80(%rbp), %rdi
callq 0x139c8
leaq -0xb0(%rbp), %rdi
jmp 0x1ebfa
movq -0x38(%rbp), %rdi
movq 0x160(%rdi), %rax
cmpq 0x1ef51(%rip), %rax     # 0x3cfb0
je 0x1e074
cmpb $0x1, 0x153(%rdi)
jne 0x1e074
callq 0x1f59d
jmp 0x1ebff
leaq 0x113fb(%rip), %rsi     # 0x2f476
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0xb292
leaq -0x80(%rbp), %rsi
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
callq 0x1f393
jmp 0x1e27f
movq -0x38(%rbp), %rcx
movq 0x148(%rcx), %rax
movl 0x8(%rax), %eax
leaq -0xb0(%rbp), %rsi
movl %eax, (%rsi)
movl %edx, 0x168(%rcx)
leaq -0x80(%rbp), %rdi
callq 0x24e0c
leaq -0x80(%rbp), %rdi
movl (%rdi), %eax
leaq -0x2c(%rbp), %r14
movl %eax, (%r14)
callq 0x24d9e
leaq -0xb0(%rbp), %rdi
callq 0x24d9e
movq %r14, %rdi
callq 0x1b9db
cmpq 0x1eeb5(%rip), %rax     # 0x3cfa8
je 0x1ebff
movq 0x20(%rax), %rdi
movl 0xbc(%rdi), %eax
movq -0x38(%rbp), %rcx
cmpl 0xbc(%rcx), %eax
jne 0x1e354
callq 0x1f740
jmp 0x1ebff
movb $0xb, 0x158(%rbx)
movq -0x38(%rbp), %rax
movq 0xd0(%rax), %rdi
cmpb $0x0, 0x20(%rdi)
je 0x1da89
callq 0x1950a
jmp 0x1e124
testb $0x40, %al
jne 0x1e28d
leaq 0x230c5(%rip), %r15     # 0x41214
cmpl $0x2, (%r15)
jne 0x1e304
movq -0x38(%rbp), %rax
cmpl $0x0, 0xbc(%rax)
jne 0x1e304
leaq 0x24e87(%rip), %rbx     # 0x42ff8
movq (%rbx), %rax
cmpq 0x1ee35(%rip), %rax     # 0x3cfb0
jne 0x1e304
leaq 0x24e80(%rip), %rax     # 0x43008
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x3c(%rbp), %rdi
callq 0x24f42
movl %eax, %r14d
leaq -0x80(%rbp), %rdi
callq 0x24d9e
testb %r14b, %r14b
je 0x1e304
movq -0x38(%rbp), %rax
movq %rax, (%rbx)
leaq 0x24e43(%rip), %rax     # 0x43000
movb $0x1, (%rax)
leaq 0x21ee9(%rip), %rdi     # 0x400b0
callq 0x152e9
leaq 0x1144f(%rip), %rsi     # 0x2f622
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0xb292
leaq -0x80(%rbp), %rdi
pushq $0x3c
popq %rsi
callq 0xc0f2
leaq 0x1ff22(%rip), %rsi     # 0x3e118
movl $0xffff, %edi           # imm = 0xFFFF
callq 0xb61b
leaq -0x80(%rbp), %rdi
callq 0x47e8
jmp 0x1ead8
movb $0x2b, 0x2(%rcx,%rax,4)
andl $0xffba, %edx           # imm = 0xFFBA
movw %dx, (%rcx,%rax,4)
leaq -0x2c(%rbp), %rdi
callq 0x1ee7b
callq 0x41e0
testb $0x1, %al
jne 0x1e2e6
leaq 0x24d8e(%rip), %rdi     # 0x42fc8
leaq -0x2c(%rbp), %rsi
callq 0x1c558
jmp 0x1e2f2
leaq 0x11232(%rip), %rsi     # 0x2f481
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0xb292
leaq -0x80(%rbp), %rdi
pushq $0x2e
popq %rsi
callq 0xc0f2
movq -0x38(%rbp), %rdi
addq $0x10, %rdi
leaq 0x1fe9e(%rip), %rsi     # 0x3e118
callq 0xc3a6
leaq -0x80(%rbp), %rdi
callq 0x47e8
jmp 0x1ebff
leaq -0x3c(%rbp), %rdi
callq 0x1b9db
cmpq 0x1ed0b(%rip), %rax     # 0x3cfa8
je 0x1e37d
movq 0x20(%rax), %r14
movq -0x38(%rbp), %rdi
movl 0xbc(%rdi), %eax
cmpl %eax, 0xbc(%r14)
jne 0x1e4d0
movl 0x13c(%r14), %ebx
movl %r15d, %edi
callq 0x24d7c
cmpl %eax, %ebx
jne 0x1e5fa
movq %r14, %rdi
movq -0x38(%rbp), %rsi
callq 0x201e6
jmp 0x1ebea
leaq -0x2c(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0x1b202
movl -0x80(%rbp), %eax
movq -0x38(%rbp), %rcx
movl %eax, 0x168(%rcx)
jmp 0x1ebff
testb $0x20, (%r13,%r12,4)
je 0x1ead8
leaq -0x3c(%rbp), %rdi
pushq $0x5
popq %rsi
callq 0x1ba5b
movq %rax, -0x88(%rbp)
leaq 0x24a86(%rip), %rcx     # 0x42db0
addq $0x78, %rcx
cmpq %rcx, %rax
je 0x1e5a1
movzbl 0x1f(%rax), %ecx
cmpl $0x3, %ecx
jne 0x1e60a
movq -0x38(%rbp), %rcx
leaq 0xbc(%rcx), %rbx
jmp 0x1e8df
movq %rcx, 0x160(%rdi)
leaq -0x2c(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x1b103
jmp 0x1ebff
leaq -0x3c(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0x1b202
jmp 0x1ebea
leaq -0x3c(%rbp), %rdi
callq 0x1bb64
movq %rax, %r14
cmpq 0x1ec48(%rip), %rax     # 0x3cfd8
je 0x1e6b5
movq -0x38(%rbp), %rax
cmpb $0x0, 0x15c(%rax)
je 0x1ebea
leaq -0x80(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
movl %r15d, %edx
callq 0x24e0c
testb $0x2, (%r13,%r12,4)
jne 0x1eaca
leaq 0x2388e(%rip), %rax     # 0x41c58
movq (%rax), %rax
movswq -0x7e(%rbp), %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movswq -0x80(%rbp), %rbx
movq (%rax,%rcx), %r15
movzwl (%r15,%rbx,4), %eax
movl %eax, %ecx
andl $0x41, %ecx
cmpl $0x1, %ecx
jne 0x1eaca
cmpb $0x5c, 0x2(%r15,%rbx,4)
je 0x1eaca
testb $0x20, %al
je 0x1e42b
leaq -0x80(%rbp), %rdi
pushq $0x5
popq %rsi
callq 0x1ba5b
leaq 0x24997(%rip), %rcx     # 0x42db0
addq $0x78, %rcx
cmpq %rcx, %rax
jne 0x1eaca
movzwl (%r15,%rbx,4), %eax
btl $0x9, %eax
jb 0x1ec1a
btl $0xa, %eax
jb 0x1ec31
movl -0x80(%rbp), %eax
movl %eax, 0x18(%r14)
orb $0x40, (%r15,%rbx,4)
jmp 0x1ec29
leaq 0x24a79(%rip), %rbx     # 0x42ed0
leaq -0x80(%rbp), %r14
leaq -0x2c(%rbp), %r15
movq %rbx, %r12
movq (%r12), %r12
cmpq %rbx, %r12
je 0x1ebff
movl 0x18(%r12), %eax
movl %eax, -0x80(%rbp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x24dd8
cmpw $0x1, %ax
jne 0x1e4c6
cmpb $0x1, 0x30(%r12)
jne 0x1e4c6
movq 0x20(%r12), %rax
movl 0xbc(%rax), %r13d
movq -0x38(%rbp), %rax
movq %r15, %rbx
movl 0xbc(%rax), %r15d
movq %r14, %rdi
callq 0x24d9e
cmpl %r15d, %r13d
movq %rbx, %r15
leaq 0x24a11(%rip), %rbx     # 0x42ed0
jne 0x1e462
jmp 0x1e7a8
movq %r14, %rdi
callq 0x24d9e
jmp 0x1e462
movb $0x1, %bl
cmpl $0x1, 0xc0(%rdi)
jne 0x1e501
movq 0x148(%rdi), %rcx
leaq 0x10d87(%rip), %rdx     # 0x2f270
movl 0x18(%rcx), %ecx
movb $0x2, %bl
cmpl (%rdx,%rax,4), %ecx
je 0x1e501
movq 0xd0(%r14), %rax
cmpb $0x1, 0x20(%rax)
sbbb $0x0, %bl
movsbl 0x154(%rdi), %esi
movsbl 0x156(%rdi), %ecx
movb 0x157(%rdi), %al
mulb %bl
movsbl %al, %r8d
movsbl %bl, %edx
movq %r14, %rdi
callq 0x20b21
testb %al, %al
je 0x1e873
cmpb $0x0, 0x153(%r14)
jg 0x1e873
movq -0x38(%rbp), %rax
leaq 0x98(%rax), %rdx
cmpb $0x2, %bl
jne 0x1e81b
leaq 0x110a6(%rip), %rsi     # 0x2f5fd
leaq -0xb0(%rbp), %rdi
callq 0xde6a
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
pushq $0x2e
popq %rdx
callq 0x17d8b
leaq -0x80(%rbp), %rsi
pushq $0x1
popq %rdx
movq %r14, %rdi
callq 0x1f393
leaq -0x80(%rbp), %rdi
callq 0x47e8
leaq -0xb0(%rbp), %rdi
callq 0x47e8
movb $0x7, %al
jmp 0x1e867
leaq -0x3c(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x1ba5b
movq %rax, -0x88(%rbp)
leaq 0x247f5(%rip), %rcx     # 0x42db0
addq $0x30, %rcx
cmpq %rcx, %rax
je 0x1ea18
leaq 0x247e1(%rip), %r13     # 0x42db0
movswl 0x58(%r13), %edi
callq 0x24f60
movq 0x48(%r13), %rbx
movq %rbx, -0x88(%rbp)
testb %al, %al
jle 0x1e703
movq (%rbx), %rbx
movq %rbx, -0x88(%rbp)
decb %al
jmp 0x1e5e4
movq -0x38(%rbp), %rax
movl %r15d, 0x13c(%rax)
jmp 0x1ebea
movq -0x38(%rbp), %rsi
movl 0xbc(%rsi), %edx
cmpl %ecx, %edx
jne 0x1e787
leaq 0x249d5(%rip), %rbx     # 0x42ff8
cmpq %rsi, (%rbx)
jne 0x1ea18
leaq 0x248bd(%rip), %rdi     # 0x42ef0
movq (%rdi), %rcx
cmpq 0x10(%rcx), %rax
jne 0x1ea18
addq $0x18, %rdi
callq 0x17f74
leaq 0x10ffa(%rip), %rsi     # 0x2f64a
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0xb292
leaq -0x80(%rbp), %rdi
pushq $0x3c
popq %rsi
callq 0xc0f2
leaq 0x1faa5(%rip), %rsi     # 0x3e118
movl $0xffff, %edi           # imm = 0xFFFF
callq 0xb61b
leaq 0x21a2c(%rip), %rax     # 0x400b0
movq %rax, (%rbx)
leaq -0xb0(%rbp), %rdi
pushq $-0x1
popq %rsi
xorl %edx, %edx
callq 0x24d90
leaq -0xb0(%rbp), %rdi
movl (%rdi), %eax
leaq 0x24960(%rip), %rcx     # 0x43008
movl %eax, 0x8(%rcx)
callq 0x24d9e
jmp 0x1ea0f
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rax
leaq -0x3c(%rbp), %rdi
movl (%rdi), %ecx
movl %ecx, 0x8(%rax)
callq 0x1bbe4
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x21033
movq -0x38(%rbp), %rax
cmpb $0x0, 0x153(%rax)
jle 0x1e7eb
movq 0x148(%rax), %rax
movl -0x8c(%rbp), %ecx
movl %ecx, 0x8(%rax)
jmp 0x1e148
leaq -0x80(%rbp), %r14
leaq 0x48(%r13), %r15
movq %rbx, %rax
leaq 0x23543(%rip), %rcx     # 0x41c58
movq (%rcx), %rcx
movl 0x18(%rax), %eax
movl %eax, -0x80(%rbp)
movswq %ax, %rdx
shrl $0x10, %eax
movswq %ax, %rax
movq 0x8(%rcx), %rcx
imulq $0x18, %rax, %rax
movq (%rcx,%rax), %rax
movzwl (%rax,%rdx,4), %r12d
movq %r14, %rdi
callq 0x24d9e
testb $0x40, %r12b
je 0x1e7cd
movq -0x88(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x88(%rbp)
cmpq %r15, %rax
jne 0x1e76d
movq 0x48(%r13), %rax
movq %rax, -0x88(%rbp)
cmpq %rbx, %rax
jne 0x1e70e
leaq -0x3c(%rbp), %rsi
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
callq 0x1f7f6
jmp 0x1ebea
movl (%r15), %eax
testl %eax, %eax
je 0x1e8a0
cmpl $0x1, %eax
jne 0x1e887
testl %edx, %edx
jne 0x1ea18
jmp 0x1e8a0
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rdi
callq 0x1cb8c
leaq 0x24809(%rip), %rdi     # 0x42fc8
leaq -0x2c(%rbp), %rsi
callq 0x1c558
jmp 0x1ebff
movq -0x88(%rbp), %rax
movl 0x18(%rax), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
movq -0x38(%rbp), %rdi
callq 0x21a0e
jmp 0x1eaca
leaq 0x23466(%rip), %rax     # 0x41c58
movq (%rax), %rax
movswq -0x8a(%rbp), %rcx
movq 0x8(%rax), %rax
imulq $0x18, %rcx, %rcx
movswq -0x8c(%rbp), %rdx
movq (%rax,%rcx), %rax
andw $-0x41, (%rax,%rdx,4)
jmp 0x1ebea
leaq 0x10df0(%rip), %rsi     # 0x2f612
leaq -0xb0(%rbp), %rdi
callq 0xde6a
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
pushq $0x2e
popq %rdx
callq 0x17d8b
leaq -0x80(%rbp), %rsi
pushq $0x1
popq %rdx
movq %r14, %rdi
callq 0x1f393
leaq -0x80(%rbp), %rdi
callq 0x47e8
leaq -0xb0(%rbp), %rdi
callq 0x47e8
xorl %eax, %eax
movzbl %al, %esi
movq -0x38(%rbp), %rdi
callq 0x1f544
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rax
movb $0x0, 0x21(%rax)
jmp 0x1ebea
movl %ecx, %eax
imulq $0x18, %rax, %rax
leaq 0x2465c(%rip), %rdx     # 0x42ef0
cmpq $0x2, 0x10(%rdx,%rax)
jb 0x1ea18
imulq $0x18, %rcx, %rax
leaq 0x24645(%rip), %rcx     # 0x42ef0
leaq (%rcx,%rax), %r14
movq (%rcx,%rax), %rdi
leaq -0x88(%rbp), %rdx
movq %r14, %rsi
callq 0x21b38
movq -0x38(%rbp), %rcx
leaq 0xbc(%rcx), %rbx
movq %r14, %rdi
movq %rax, %rsi
callq 0x21afa
movq -0x88(%rbp), %rax
movl (%rbx), %ebx
movq %rax, -0xb8(%rbp)
cmpq $0x1, %rbx
jne 0x1e909
cmpl $0x2, (%r15)
jne 0x1e909
leaq 0x245f5(%rip), %rcx     # 0x42ef0
leaq 0x18(%rcx), %rdx
cmpq %rdx, 0x18(%rcx)
je 0x1ea18
leaq 0x108c8(%rip), %rcx     # 0x2f1d8
movb (%rbx,%rcx), %r14b
movb %r14b, 0x1d(%rax)
movb %bl, 0x1f(%rax)
imulq $0x18, %rbx, %rdi
addq 0x1e692(%rip), %rdi     # 0x3cfb8
leaq -0xb8(%rbp), %rsi
callq 0x1c232
shlq $0x5, %rbx
leaq 0x25183(%rip), %rsi     # 0x43ac0
addq %rbx, %rsi
leaq 0x10d2c(%rip), %rdx     # 0x2f673
leaq -0xe8(%rbp), %rdi
callq 0xc40d
leaq 0x232fe(%rip), %rax     # 0x41c58
movq (%rax), %rdi
movq -0xb8(%rbp), %rax
movl 0x18(%rax), %eax
leaq -0xc4(%rbp), %rsi
movl %eax, (%rsi)
callq 0x128ac
movl %eax, %eax
shlq $0x5, %rax
leaq 0x251de(%rip), %rdx     # 0x43b60
addq %rax, %rdx
leaq -0xb0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0xe08e
leaq 0x10ce8(%rip), %rdx     # 0x2f687
leaq -0x80(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xb309
leaq -0xb0(%rbp), %rdi
callq 0x47e8
leaq -0xc4(%rbp), %rdi
callq 0x24d9e
leaq -0xe8(%rbp), %rdi
callq 0x47e8
movzbl %r14b, %esi
leaq -0x80(%rbp), %rdi
callq 0xc0f2
leaq 0x1f731(%rip), %rsi     # 0x3e118
movl $0xffff, %edi           # imm = 0xFFFF
callq 0xb61b
cmpl $0x1, (%r15)
ja 0x1ea03
leaq 0x216b2(%rip), %rdi     # 0x400b0
callq 0x152e9
leaq 0x216a6(%rip), %rdi     # 0x400b0
callq 0x15ff0
leaq -0x80(%rbp), %rdi
callq 0x47e8
leaq -0x3c(%rbp), %rdi
pushq $0x4
popq %rsi
callq 0x1ba5b
movq %rax, %r14
movq %rax, -0x88(%rbp)
leaq 0x2437b(%rip), %rax     # 0x42db0
leaq 0x60(%rax), %rbx
cmpq %rbx, %r14
je 0x1ead8
leaq -0x80(%rbp), %r15
leaq 0x24363(%rip), %r13     # 0x42db0
movq -0x88(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x88(%rbp)
cmpq %rbx, %rax
jne 0x1ea6e
movq 0x60(%r13), %rax
movq %rax, -0x88(%rbp)
cmpq %r14, %rax
je 0x1eba8
leaq 0x231da(%rip), %rcx     # 0x41c58
movq (%rcx), %rcx
movl 0x18(%rax), %eax
movl %eax, -0x80(%rbp)
movswq %ax, %rdx
shrl $0x10, %eax
movswq %ax, %rax
movq 0x8(%rcx), %rcx
imulq $0x18, %rax, %rax
movq (%rcx,%rax), %rax
movzwl (%rax,%rdx,4), %r12d
movq %r15, %rdi
callq 0x24d9e
testb $0x40, %r12b
jne 0x1ea4d
movq -0x88(%rbp), %rax
movl 0x18(%rax), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
movq -0x38(%rbp), %rdi
callq 0x21a0e
leaq -0x80(%rbp), %rdi
callq 0x24d9e
jmp 0x1ebea
movzwl (%r13,%r12,4), %eax
pushq $0x3
popq %r14
testb $0x10, %al
jne 0x1ebcf
movq -0x38(%rbp), %rcx
movl 0xc0(%rcx), %ecx
cmpl $0x9, %ecx
je 0x1eb0b
cmpl $0x1, %ecx
jne 0x1ebcf
testb $0x8, %al
jne 0x1eb17
jmp 0x1ebcf
cmpb $0x54, 0x2(%r13,%r12,4)
jne 0x1ebcf
leaq -0x3c(%rbp), %rdi
callq 0x1b84e
testb %al, %al
jne 0x1ebcf
leaq 0x21581(%rip), %rbx     # 0x400b0
leaq -0x80(%rbp), %r15
movq %rbx, %r13
movq (%r13), %r13
cmpq %rbx, %r13
je 0x1ebba
movl 0xbc(%r13), %eax
movq -0x38(%rbp), %rcx
cmpl 0xbc(%rcx), %eax
je 0x1eb36
leaq 0x10(%r13), %rdi
callq 0xe68e
testb %al, %al
je 0x1eb36
movq 0xd0(%r13), %rax
cmpb $0x0, 0x20(%rax)
jne 0x1eb36
leaq 0x230e5(%rip), %rax     # 0x41c58
movq (%rax), %rdi
movq 0x148(%r13), %rax
movl 0x8(%rax), %eax
movl %eax, -0x80(%rbp)
movq %r15, %rsi
leaq -0x3c(%rbp), %rdx
movl %r14d, %ecx
pushq $-0x1
popq %r8
callq 0x1293c
movl %eax, %r12d
movq %r15, %rdi
callq 0x24d9e
testb %r12b, %r12b
je 0x1eb36
jmp 0x1ebcf
leaq -0x3c(%rbp), %rsi
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
callq 0x1f7f6
jmp 0x1ebea
movq -0x38(%rbp), %rax
movl 0xbc(%rax), %eax
leaq 0x106a5(%rip), %rcx     # 0x2f270
movl (%rcx,%rax,4), %r14d
movq -0x38(%rbp), %rdi
movq 0x148(%rdi), %rax
movl %r14d, 0x18(%rax)
leaq -0x3c(%rbp), %rsi
pushq $0x1
popq %rdx
callq 0x1f7f6
leaq -0x3c(%rbp), %rdi
callq 0x24d9e
leaq -0x8c(%rbp), %rdi
callq 0x24d9e
leaq -0x2c(%rbp), %rdi
callq 0x24d9e
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2424f(%rip), %rdi     # 0x42e70
movq %r14, %rsi
callq 0x17e18
andb $-0x41, (%r13,%r12,4)
jmp 0x1ec59
leaq 0x24238(%rip), %rdi     # 0x42e70
movq %r14, %rsi
callq 0x17e18
andb $-0x41, (%r13,%r12,4)
movl $0x1c2e0005, (%r15,%rbx,4) # imm = 0x1C2E0005
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
callq 0x1b202
movq -0x38(%rbp), %rax
incb 0x141(%rax)
leaq -0x80(%rbp), %rdi
callq 0x24d9e
jmp 0x1e148
jmp 0x1ed13
jmp 0x1ed13
jmp 0x1ed05
jmp 0x1ed5d
jmp 0x1ed05
jmp 0x1ec90
jmp 0x1ec9e
jmp 0x1ed5d
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x47e8
jmp 0x1eca1
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
jmp 0x1ed0c
jmp 0x1ed5d
jmp 0x1ed5d
jmp 0x1ed05
jmp 0x1ed5d
jmp 0x1ed13
jmp 0x1ed05
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x47e8
jmp 0x1ecf0
jmp 0x1ed5d
jmp 0x1ed13
jmp 0x1ed5d
jmp 0x1ed5d
jmp 0x1ee30
jmp 0x1ed5d
jmp 0x1ed5d
jmp 0x1ed13
jmp 0x1ed5d
jmp 0x1ed05
movq %rax, %rbx
leaq -0xc4(%rbp), %rdi
callq 0x24d9e
leaq -0xe8(%rbp), %rdi
jmp 0x1ed0c
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x47e8
jmp 0x1ed60
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x24d9e
jmp 0x1ed60
jmp 0x1ed5d
jmp 0x1ed5d
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x47e8
jmp 0x1ed36
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
jmp 0x1ed93
jmp 0x1ee30
jmp 0x1ed5d
jmp 0x1ed5d
jmp 0x1ed5d
jmp 0x1ed5d
jmp 0x1ee30
jmp 0x1ed5d
jmp 0x1ee30
jmp 0x1ee30
movq %rax, %rbx
leaq -0x3c(%rbp), %rdi
callq 0x24d9e
jmp 0x1eda5
jmp 0x1ee30
jmp 0x1ee30
jmp 0x1ee41
jmp 0x1ede6
jmp 0x1ed8c
jmp 0x1ee30
jmp 0x1ede6
jmp 0x1ede6
jmp 0x1ee30
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x47e8
jmp 0x1ee6a
jmp 0x1ee30
movq %rax, %rbx
leaq -0x8c(%rbp), %rdi
jmp 0x1ee65
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x1d462
jmp 0x1edc2
movq %rax, %rbx
leaq -0xbc(%rbp), %rdi
jmp 0x1ee65
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
jmp 0x1ee11
jmp 0x1ee1e
jmp 0x1ede6
jmp 0x1ee30
jmp 0x1ee30
jmp 0x1ee41
jmp 0x1ee30
movq %rax, %rbx
jmp 0x1ee16
jmp 0x1ee46
jmp 0x1ee30
movq %rax, %rbx
leaq -0xb8(%rbp), %rdi
callq 0x24d9e
leaq -0xe8(%rbp), %rdi
callq 0x24d9e
leaq -0xb0(%rbp), %rdi
callq 0x24d9e
leaq -0x80(%rbp), %rdi
jmp 0x1ee65
jmp 0x1ee30
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x1c9c8
jmp 0x1ee6a
jmp 0x1ee30
jmp 0x1ee30
movq %rax, %rbx
jmp 0x1ee6a
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
jmp 0x1ee65
movq %rax, %rbx
jmp 0x1ee5e
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0x24d9e
leaq -0x80(%rbp), %rdi
callq 0x139c8
leaq -0xb0(%rbp), %rdi
callq 0x24d9e
leaq -0x2c(%rbp), %rdi
callq 0x24d9e
movq %rbx, %rdi
callq 0x4710