// File: /workspace/github_cpp_makefile_star2_O3/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 $0x88, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq -0x2c(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2b798
movb $0x1, 0x138(%rbx)
movq %rbx, -0x38(%rbp)
movl $0x8, 0x13c(%rbx)
movzbl (%r14), %eax
cmpq $0xf, %rax
ja 0x24111
leaq 0x1266b(%rip), %rcx     # 0x35100
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 -0xa0(%rbp), %r15
leaq -0x40(%rbp), %r12
leaq 0x221a7(%rip), %rbx     # 0x44c68
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x40(%rbp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x2b818
movl -0xa0(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq %r15, %rdi
callq 0x2b7a6
movq %r12, %rdi
callq 0x2b7a6
movq (%rbx), %rax
movswq -0x2a(%rbp), %rcx
movq 0x8(%rax), %rdx
leaq (%rcx,%rcx,2), %rcx
movswq -0x2c(%rbp), %rax
movq (%rdx,%rcx,8), %rcx
cmpb $0x5c, 0x2(%rcx,%rax,4)
jne 0x22b1f
movzwl (%rcx,%rax,4), %edx
testb $0x40, %dl
je 0x23759
movq %r14, %rdi
callq 0x2b74c
movl -0x80(%rbp), %edx
movq -0x38(%rbp), %rax
cmpl 0x168(%rax), %edx
jne 0x22ac1
jmp 0x24111
leaq 0x22126(%rip), %rax     # 0x44c68
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
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %rax
movb (%rax,%rdx,4), %bl
callq 0x2b7a6
testb $0x20, %bl
jne 0x24111
movq -0x38(%rbp), %rax
movb $0x6, 0x142(%rax)
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
movl $0x1, %esi
callq 0x208ed
jmp 0x22e57
movsbl 0x1(%r14), %edx
movq -0x38(%rbp), %rax
movl %edx, 0x168(%rax)
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0xa0(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x80(%rbp), %rdi
callq 0x2b818
leaq -0x80(%rbp), %rdi
movl (%rdi), %eax
leaq -0x2c(%rbp), %r15
movl %eax, (%r15)
callq 0x2b7a6
leaq -0xa0(%rbp), %rdi
callq 0x2b7a6
movsbl 0x1(%r14), %esi
movq %r15, %rdi
callq 0x254cf
cmpb $-0x1, %al
je 0x23793
movzbl %al, %eax
testl %eax, %eax
jne 0x24111
movq -0x38(%rbp), %rax
movb $0x5, 0x142(%rax)
leaq -0x2c(%rbp), %rdi
movl $0x5, %esi
callq 0x209ed
jmp 0x24111
movq -0x38(%rbp), %rcx
movq 0x118(%rcx), %rax
cmpq 0xf8(%rcx), %rax
je 0x22c8e
leaq 0x2201b(%rip), %rax     # 0x44c68
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
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %rax
movzwl (%rax,%rdx,4), %ebx
callq 0x2b7a6
btl $0xa, %ebx
jb 0x24111
movsbl 0x1(%r14), %r15d
movq -0x38(%rbp), %rax
movl %r15d, 0x168(%rax)
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0x40(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x3c(%rbp), %rdi
movl %r15d, %edx
callq 0x2b818
leaq 0x21fa7(%rip), %rax     # 0x44c68
movq (%rax), %rax
movswq -0x3c(%rbp), %r12
movswq -0x3a(%rbp), %rcx
movq 0x8(%rax), %rax
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %r13
movzwl (%r13,%r12,4), %eax
testb $0x1, %al
jne 0x23672
cmpb $0x2b, 0x2(%r13,%r12,4)
jne 0x240ff
movb $0x5c, 0x2(%r13,%r12,4)
orl $0x5, %eax
movw %ax, (%r13,%r12,4)
leaq -0x3c(%rbp), %rdi
callq 0x243e8
callq 0x41d0
testb $0x1, %al
jne 0x238d4
leaq 0x232b8(%rip), %rdi     # 0x45fd8
leaq -0x3c(%rbp), %rsi
callq 0x21934
jmp 0x240ff
movsbl 0x1(%r14), %edx
cmpl $0x8, %edx
jne 0x235d2
movq -0x38(%rbp), %rdi
callq 0x24e6d
jmp 0x24111
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
movl %eax, -0x2c(%rbp)
callq 0x2b7a6
leaq 0x21efb(%rip), %rax     # 0x44c68
movq (%rax), %rax
movswq -0x2a(%rbp), %rcx
movq 0x8(%rax), %rax
leaq (%rcx,%rcx,2), %rcx
movswq -0x2c(%rbp), %rdx
movq (%rax,%rcx,8), %rax
testb $0x20, (%rax,%rdx,4)
je 0x24111
leaq -0x2c(%rbp), %rdi
xorl %esi, %esi
callq 0x212c0
cmpq 0x1d21e(%rip), %rax     # 0x3ffc0
je 0x24111
movsbl 0x1d(%rax), %eax
movq -0x38(%rbp), %rcx
movl 0xbc(%rcx), %ecx
leaq 0x123cb(%rip), %rdx     # 0x35188
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0x24111
movq -0x38(%rbp), %rax
movb $0x7, 0x142(%rax)
leaq -0x2c(%rbp), %rdi
movl $0x3, %esi
callq 0x208ed
jmp 0x24111
leaq 0x21e7a(%rip), %rax     # 0x44c68
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
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax,%rdx,4), %ebx
callq 0x2b7a6
btl $0xb, %ebx
jae 0x24111
movq -0x38(%rbp), %rbx
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
callq 0x2134d
movq %rbx, %rdi
movq %rax, %rsi
movl $0x1, %edx
callq 0x2449c
leaq -0x80(%rbp), %rdi
jmp 0x2410c
movq -0x38(%rbp), %rbx
cmpb $0x0, 0x140(%rbx)
sete 0x140(%rbx)
je 0x2364f
movq 0xd0(%rbx), %rdi
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
callq 0x1eb62
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
movl 0xc0(%rbx), %eax
leaq (%rax,%rax,2), %rcx
leaq (%rax,%rcx,4), %rax
leaq 0x122de(%rip), %rcx     # 0x35190
movb 0x8(%rcx,%rax), %al
movb %al, 0x158(%rbx)
movq -0x38(%rbp), %rax
movb $0x1, 0x15d(%rax)
jmp 0x24111
leaq 0x2300d(%rip), %rbx     # 0x45ee0
movq (%rbx), %r15
cmpq %rbx, %r15
je 0x22f9e
leaq -0x80(%rbp), %r12
leaq -0xa0(%rbp), %r13
cmpb $0x0, 0x1e(%r15)
jne 0x22f92
movq -0x38(%rbp), %rax
movl 0xbc(%rax), %eax
cmpl %eax, 0x28(%r15)
je 0x22f92
movq 0x20(%r15), %rcx
cmpl %eax, 0xbc(%rcx)
je 0x22f92
leaq 0x21d4c(%rip), %rax     # 0x44c68
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, -0xa0(%rbp)
movl %ecx, -0x40(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
callq 0x2b7e4
movswl %ax, %r8d
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movl $0x3, %ecx
callq 0x1736e
movl %eax, %r14d
leaq -0x3c(%rbp), %rdi
callq 0x2b7a6
leaq -0x40(%rbp), %rdi
callq 0x2b7a6
movq %r13, %rdi
callq 0x2b7a6
movq %r12, %rdi
callq 0x2b7a6
testb %r14b, %r14b
jne 0x238e7
movq (%r15), %r15
cmpq %rbx, %r15
jne 0x22eea
movq -0x38(%rbp), %rdi
movq 0x160(%rdi), %rax
cmpq 0x1d000(%rip), %rax     # 0x3ffb0
je 0x2359c
cmpb $0x1, 0x153(%rdi)
jne 0x2359c
callq 0x24c63
jmp 0x24111
movq -0x38(%rbp), %rsi
movb 0x140(%rsi), %al
cmpb $0x9, %al
jg 0x22fe3
incb %al
movb %al, 0x140(%rsi)
addb %al, %al
addb %al, 0x141(%rsi)
movsbl 0x1(%r14), %edx
movl %edx, 0x168(%rsi)
leaq -0x80(%rbp), %rdi
callq 0x225f0
movl $0x30, %edi
callq 0x43e0
leaq -0x80(%rbp), %r14
movl 0x8(%r14), %ecx
movl 0xb(%r14), %edx
movl %edx, 0x1b(%rax)
movl %ecx, 0x18(%rax)
movq 0x10(%r14), %rcx
movq %rcx, 0x20(%rax)
leaq 0x1cc8e(%rip), %rcx     # 0x3fcb8
addq $0x10, %rcx
movq %rcx, 0x10(%rax)
movzwl 0x1c(%r14), %ecx
movw %cx, 0x2c(%rax)
movl 0x18(%r14), %ecx
movl %ecx, 0x28(%rax)
leaq 0x22e7f(%rip), %r15     # 0x45ec8
movq %rax, %rdi
movq %r15, %rsi
callq 0x4060
incq 0x10(%r15)
movq %r14, %rdi
callq 0x21cfc
movq -0x38(%rbp), %rax
movq 0x90(%rax), %rax
incq 0x130(%rax)
jmp 0x24111
movq -0x38(%rbp), %rbx
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
movl %eax, -0x2c(%rbp)
callq 0x2b7a6
movq 0x148(%rbx), %rdi
cmpb $0x1, 0x20(%rdi)
je 0x230e9
cmpw $0x0, 0x170(%rbx)
je 0x24111
movq -0x38(%rbp), %rax
cmpl $0x8, 0xc0(%rax)
je 0x230e9
leaq -0x2c(%rbp), %rdi
movl $0x6, %esi
callq 0x212c0
movl $0x90, %ecx
addq 0x1ceeb(%rip), %rcx     # 0x3ffc0
cmpq %rcx, %rax
je 0x23a20
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rdi
callq 0x21eca
leaq 0x22ee3(%rip), %rdi     # 0x45fd8
leaq -0x2c(%rbp), %rsi
callq 0x21934
jmp 0x24111
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 0x2b798
movl -0x2c(%rbp), %eax
leaq -0xa8(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x80(%rbp), %rdi
callq 0x2b8b6
movq -0x38(%rbp), %rbx
movl %eax, 0x168(%rbx)
leaq -0xa8(%rbp), %rdi
callq 0x2b7a6
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
movq 0x90(%rbx), %rax
incq 0x120(%rax)
movl -0x2c(%rbp), %eax
leaq -0xa4(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x80(%rbp), %rdi
movq %rbx, %rdx
callq 0x21ee0
leaq 0x22d15(%rip), %rbx     # 0x45e98
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x27c10
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4060
incq 0x10(%rbx)
leaq 0x1cab3(%rip), %rax     # 0x3fc58
addq $0x10, %rax
leaq -0x68(%rbp), %rdi
movq %rax, -0x18(%rdi)
callq 0x1da22
leaq -0x80(%rbp), %rdi
callq 0x21cfc
leaq -0xa4(%rbp), %rdi
jmp 0x2410c
movq -0x38(%rbp), %rcx
movb 0x140(%rcx), %al
cmpb $0x9, %al
jg 0x231e1
incb %al
movb %al, 0x140(%rcx)
addb %al, %al
addb %al, 0x141(%rcx)
leaq -0x78(%rbp), %rbx
xorl %r12d, %r12d
leaq -0x80(%rbp), %r14
leaq -0xa0(%rbp), %r15
leaq 0x1ca86(%rip), %rax     # 0x3fc88
addq $0x10, %rax
movq %rax, -0xb0(%rbp)
movq -0x38(%rbp), %rcx
movl 0x168(%rcx), %eax
movl %r12d, %r13d
addl %eax, %r13d
leal 0x7(%r12,%rax), %eax
cmovnsl %r13d, %eax
andl $-0x8, %eax
subl %eax, %r13d
movq 0x148(%rcx), %rax
movl 0x8(%rax), %eax
movl %eax, -0xa0(%rbp)
movq %r14, %rdi
movq %r15, %rsi
movl %r13d, %edx
callq 0x2b818
movl -0x80(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq %r14, %rdi
callq 0x2b7a6
movq %r15, %rdi
callq 0x2b7a6
leaq 0x21a01(%rip), %rax     # 0x44c68
movq (%rax), %rax
movswq -0x2a(%rbp), %rcx
movq 0x8(%rax), %rax
leaq (%rcx,%rcx,2), %rcx
movswq -0x2c(%rbp), %rdx
movq (%rax,%rcx,8), %rax
movzwl (%rax,%rdx,4), %eax
andl $0x41, %eax
cmpw $0x1, %ax
jne 0x232fe
movq %r14, %rdi
movq -0x38(%rbp), %rsi
movl %r13d, %edx
callq 0x222ba
movl $0x30, %edi
callq 0x43e0
movl (%rbx), %ecx
movl 0x3(%rbx), %edx
movl %edx, 0x1b(%rax)
movl %ecx, 0x18(%rax)
movq -0x70(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0xb0(%rbp), %rcx
movq %rcx, 0x10(%rax)
movb 0x14(%rbx), %cl
movb %cl, 0x2c(%rax)
movl 0x10(%rbx), %ecx
movl %ecx, 0x28(%rax)
movq %rax, %rdi
leaq 0x22bd6(%rip), %r13     # 0x45eb0
movq %r13, %rsi
callq 0x4060
incq 0x10(%r13)
movq %r14, %rdi
callq 0x21cfc
leaq 0x22ce3(%rip), %rdi     # 0x45fd8
leaq -0x2c(%rbp), %rsi
callq 0x21934
addl $0x2, %r12d
cmpl $0x8, %r12d
jne 0x2320d
jmp 0x24111
movq -0x38(%rbp), %rax
cmpb $0x0, 0x140(%rax)
je 0x24111
movq -0x38(%rbp), %rbx
movq 0x148(%rbx), %rax
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rdi
movl %eax, (%rdi)
callq 0x24d81
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
decb 0x140(%rbx)
jmp 0x24111
movsbl 0x1(%r14), %eax
movq -0x38(%rbp), %rcx
movl %eax, 0x168(%rcx)
movb $0x2, 0x142(%rcx)
jmp 0x24111
movq -0x38(%rbp), %rcx
movb 0x140(%rcx), %al
cmpb $0x9, %al
jg 0x23380
incb %al
movb %al, 0x140(%rcx)
addb %al, %al
addb %al, 0x141(%rcx)
movq 0x148(%rcx), %rax
movl 0x8(%rax), %eax
leaq -0xa0(%rbp), %rbx
movl %eax, (%rbx)
xorps %xmm0, %xmm0
leaq -0x80(%rbp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq -0x40(%rbp), %rcx
movl %eax, (%rcx)
xorl %r12d, %r12d
leaq 0x11f03(%rip), %r14     # 0x352c0
movslq %r12d, %rcx
shlq $0x3, %rcx
movzwl -0xa0(%rbp), %edx
movzwl -0x9e(%rbp), %esi
leaq 0x2188f(%rip), %rax     # 0x44c68
movq (%rax), %rax
movq 0x8(%rax), %rax
xorl %edi, %edi
movslq %edi, %r8
addq %rcx, %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
leaq (%r8,%r8,2), %r8
movswq %r9w, %r9
movq (%rax,%r8,8), %r8
testb $0x4, (%r8,%r9,4)
je 0x23437
movl -0x2c(%rbp), %r8d
movl %r8d, -0x40(%rbp)
addb $0x2, %dil
movsbl %dil, %edi
cmpl $0x8, %edi
jl 0x233e2
movl %r8d, %ecx
shrl $0x10, %ecx
jmp 0x23440
movzwl -0x40(%rbp), %r8d
movzwl -0x3e(%rbp), %ecx
movswq %cx, %rcx
leaq (%rcx,%rcx,2), %rcx
movswq %r8w, %rdx
movq (%rax,%rcx,8), %rax
movl (%rax,%rdx,4), %eax
andl $0x41, %eax
cmpl $0x1, %eax
jne 0x23514
movq -0x80(%rbp), %rax
movq -0x78(%rbp), %r15
cmpq %r15, %rax
je 0x234b4
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x2b7e4
movl %eax, %r13d
movq -0x80(%rbp), %rdi
movq %rbx, %rsi
callq 0x2b7e4
cmpw %ax, %r13w
jle 0x234c7
movq -0x80(%rbp), %r15
movq -0x78(%rbp), %rbx
cmpq %r15, %rbx
je 0x234f4
movq %r15, %r13
movq %r13, %rdi
callq 0x2b7a6
addq $0x4, %r13
cmpq %rbx, %r13
jne 0x2349d
movq %r15, -0x78(%rbp)
jmp 0x234f7
cmpq -0x70(%rbp), %rax
je 0x23504
movl -0x40(%rbp), %eax
movl %eax, (%r15)
addq $0x4, -0x78(%rbp)
jmp 0x23514
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x2b7e4
movl %eax, %r13d
movq -0x80(%rbp), %rdi
movq %rbx, %rsi
callq 0x2b7e4
cmpw %ax, %r13w
jne 0x23514
movq -0x78(%rbp), %r15
cmpq -0x70(%rbp), %r15
jne 0x234ba
jmp 0x23504
movq %rbx, %r15
cmpq -0x70(%rbp), %r15
leaq -0xa0(%rbp), %rbx
jne 0x234ba
leaq -0x80(%rbp), %rdi
movq %r15, %rsi
leaq -0x40(%rbp), %rdx
callq 0x18b6a
incl %r12d
cmpl $0x20, %r12d
jne 0x233bd
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %rax
cmpq %rax, %rcx
je 0x2357e
subl %ecx, %eax
shrl $0x2, %eax
movswl %ax, %edi
callq 0x2b980
movswq %ax, %rax
movq -0x80(%rbp), %rcx
movl (%rcx,%rax,4), %eax
movl %eax, -0x2c(%rbp)
leaq 0x22a88(%rip), %rdi     # 0x45fd8
leaq -0xa0(%rbp), %rsi
callq 0x21934
leaq -0x2c(%rbp), %rsi
movq -0x38(%rbp), %rdi
movl $0x1, %edx
callq 0x24f2b
movq -0x38(%rbp), %rdi
addq $0xe8, %rdi
callq 0x1d668
leaq -0x40(%rbp), %rdi
callq 0x2b7a6
leaq -0x80(%rbp), %rdi
callq 0x1875c
leaq -0xa0(%rbp), %rdi
jmp 0x2410c
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11e72(%rip), %rsi     # 0x3541d
leaq 0x11e75(%rip), %rdx     # 0x35427
leaq -0x80(%rbp), %rdi
callq 0xe01c
leaq -0x80(%rbp), %rsi
movq -0x38(%rbp), %rdi
movl $0x1, %edx
callq 0x249ec
jmp 0x237d4
movq -0x38(%rbp), %rcx
movq 0x148(%rcx), %rax
movl 0x8(%rax), %eax
leaq -0xa0(%rbp), %rsi
movl %eax, (%rsi)
movl %edx, 0x168(%rcx)
leaq -0x80(%rbp), %rdi
callq 0x2b818
leaq -0x80(%rbp), %rdi
movl (%rdi), %eax
leaq -0x2c(%rbp), %r14
movl %eax, (%r14)
callq 0x2b7a6
leaq -0xa0(%rbp), %rdi
callq 0x2b7a6
movq %r14, %rdi
callq 0x2122a
cmpq 0x1c983(%rip), %rax     # 0x3ffa8
je 0x24111
movq 0x20(%rax), %rdi
movl 0xbc(%rdi), %eax
movq -0x38(%rbp), %rcx
cmpl 0xbc(%rcx), %eax
jne 0x238ba
callq 0x24e6d
jmp 0x24111
movb $0xb, 0x158(%rbx)
movq -0x38(%rbp), %rax
movq 0xd0(%rax), %rdi
cmpb $0x0, 0x20(%rdi)
je 0x22ebc
callq 0x1ebd2
jmp 0x23656
testb $0x40, %al
jne 0x237f2
leaq 0x20ba3(%rip), %rbx     # 0x44224
cmpl $0x2, (%rbx)
jne 0x2386b
movq -0x38(%rbp), %rax
cmpl $0x0, 0xbc(%rax)
jne 0x2386b
leaq 0x22966(%rip), %r15     # 0x46008
movq (%r15), %rax
cmpq 0x1c904(%rip), %rax     # 0x3ffb0
jne 0x2386b
leaq 0x2295f(%rip), %rax     # 0x46018
movl 0x8(%rax), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
leaq -0x3c(%rbp), %rdi
callq 0x2b962
movl %eax, %r14d
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
testb %r14b, %r14b
je 0x2386b
movq -0x38(%rbp), %rax
movq %rax, (%r15)
leaq 0x22922(%rip), %rax     # 0x46010
movb $0x1, (%rax)
leaq 0x1f9c8(%rip), %rdi     # 0x430c0
callq 0x19e31
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11ebd(%rip), %rsi     # 0x355c9
leaq 0x11edd(%rip), %rdx     # 0x355f0
leaq -0x80(%rbp), %rdi
callq 0xe01c
leaq -0x80(%rbp), %rdi
movl $0x3c, %esi
callq 0xf3f0
leaq 0x1d9f7(%rip), %rsi     # 0x41128
movl $0xffff, %edi           # imm = 0xFFFF
callq 0xe3b3
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x23ff0
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x23ff0
movb $0x2b, 0x2(%rcx,%rax,4)
andl $0xffba, %edx           # imm = 0xFFBA
movw %dx, (%rcx,%rax,4)
leaq -0x2c(%rbp), %rdi
callq 0x243e8
callq 0x41d0
testb $0x1, %al
jne 0x2384b
leaq 0x22853(%rip), %rdi     # 0x45fd8
leaq -0x2c(%rbp), %rsi
callq 0x21934
jmp 0x23859
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11c86(%rip), %rsi     # 0x35428
leaq 0x11c94(%rip), %rdx     # 0x3543d
leaq -0x80(%rbp), %rdi
callq 0xe01c
leaq -0x80(%rbp), %rdi
movl $0x2e, %esi
callq 0xf3f0
movq -0x38(%rbp), %rdi
addq $0x10, %rdi
leaq 0x1d959(%rip), %rsi     # 0x41128
callq 0xf719
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x24111
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x24111
leaq -0x3c(%rbp), %rdi
callq 0x2122a
cmpq 0x1c7a6(%rip), %rax     # 0x3ffa8
je 0x2394b
movq 0x20(%rax), %r14
movq -0x38(%rbp), %rdi
movl 0xbc(%rdi), %eax
cmpl %eax, 0xbc(%r14)
jne 0x23aab
movl 0x13c(%r14), %ebx
movl %r15d, %edi
callq 0x2b77c
cmpl %eax, %ebx
jne 0x23c52
movq %r14, %rdi
movq -0x38(%rbp), %rsi
callq 0x259ee
jmp 0x240ff
leaq -0x2c(%rbp), %rdi
movl $0x1, %esi
callq 0x209ed
movl -0x80(%rbp), %eax
movq -0x38(%rbp), %rcx
movl %eax, 0x168(%rcx)
jmp 0x24111
testb $0x20, (%r13,%r12,4)
je 0x23ff0
leaq -0x3c(%rbp), %rdi
movl $0x5, %esi
callq 0x212c0
movq %rax, %r14
leaq 0x22531(%rip), %r15     # 0x45dc0
leaq 0x78(%r15), %rax
cmpq %rax, %r14
je 0x23ba3
movzbl 0x1f(%r14), %eax
cmpl $0x3, %eax
jne 0x23cd9
movq -0x38(%rbp), %rax
leaq 0xbc(%rax), %rbx
jmp 0x23f54
movq %rcx, 0x160(%rdi)
leaq -0x2c(%rbp), %rdi
movl $0x2, %esi
callq 0x208ed
jmp 0x24111
leaq -0x3c(%rbp), %rdi
movl $0x1, %esi
callq 0x209ed
jmp 0x240ff
movl $0x98, %edx
addq 0x20(%r15), %rdx
leaq 0x11b0d(%rip), %rsi     # 0x35404
leaq -0xa0(%rbp), %rdi
callq 0x11c74
leaq -0xa0(%rbp), %rdi
movq 0x8(%rdi), %rsi
movl $0x1, %ecx
xorl %edx, %edx
movl $0x2e, %r8d
callq 0x47a0
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x23c62
movq %rdx, -0x80(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x70(%rbp)
jmp 0x23c69
leaq -0x3c(%rbp), %rdi
callq 0x213e3
movq %rax, %r14
cmpq 0x1c672(%rip), %rax     # 0x3ffd0
je 0x23da9
movq -0x38(%rbp), %rax
cmpb $0x0, 0x15c(%rax)
je 0x240ff
leaq -0x80(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
movl %r15d, %edx
callq 0x2b818
testb $0x2, (%r13,%r12,4)
jne 0x23fe2
leaq 0x212d0(%rip), %rax     # 0x44c68
movq (%rax), %rax
movswq -0x7e(%rbp), %rcx
movq 0x8(%rax), %rax
leaq (%rcx,%rcx,2), %rcx
movswq -0x80(%rbp), %rbx
movq (%rax,%rcx,8), %r15
movzwl (%r15,%rbx,4), %eax
movl %eax, %ecx
andl $0x41, %ecx
cmpl $0x1, %ecx
jne 0x23fe2
cmpb $0x5c, 0x2(%r15,%rbx,4)
je 0x23fe2
testb $0x20, %al
je 0x239fb
leaq -0x80(%rbp), %rdi
movl $0x5, %esi
callq 0x212c0
leaq 0x223d7(%rip), %rcx     # 0x45dc0
addq $0x78, %rcx
cmpq %rcx, %rax
jne 0x23fe2
movzwl (%r15,%rbx,4), %eax
btl $0x9, %eax
jb 0x24140
btl $0xa, %eax
jb 0x2415e
movl -0x80(%rbp), %eax
movl %eax, 0x18(%r14)
orb $0x40, (%r15,%rbx,4)
jmp 0x2414f
leaq 0x224b9(%rip), %r13     # 0x45ee0
movq (%r13), %r12
cmpq %r13, %r12
je 0x24111
leaq -0x80(%rbp), %r14
leaq -0x2c(%rbp), %r15
movl 0x18(%r12), %eax
movl %eax, -0x80(%rbp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x2b7e4
cmpw $0x1, %ax
jne 0x23a95
cmpb $0x1, 0x30(%r12)
jne 0x23a95
movq 0x20(%r12), %rax
movl 0xbc(%rax), %eax
movl %eax, -0xb0(%rbp)
movq -0x38(%rbp), %rax
movq %r15, %rbx
movl 0xbc(%rax), %r15d
movq %r14, %rdi
callq 0x2b7a6
cmpl %r15d, -0xb0(%rbp)
movq %rbx, %r15
jne 0x23a9d
jmp 0x23e55
movq %r14, %rdi
callq 0x2b7a6
movq (%r12), %r12
cmpq %r13, %r12
jne 0x23a3c
jmp 0x24111
movb $0x1, %bl
cmpl $0x1, 0xc0(%rdi)
jne 0x23adc
movq 0x148(%rdi), %rcx
leaq 0x1175c(%rip), %rdx     # 0x35220
movl 0x18(%rcx), %ecx
movb $0x2, %bl
cmpl (%rdx,%rax,4), %ecx
je 0x23adc
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 0x26530
testb %al, %al
je 0x23ef9
cmpb $0x0, 0x153(%r14)
jg 0x23ef9
movq -0x38(%rbp), %rax
leaq 0x98(%rax), %rdx
cmpb $0x2, %bl
jne 0x23e7a
leaq 0x11a72(%rip), %rsi     # 0x355a4
leaq -0xa0(%rbp), %rdi
callq 0x11c74
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
movl $0x2e, %edx
callq 0x27ad4
leaq -0x80(%rbp), %rsi
movq %r14, %rdi
movl $0x1, %edx
callq 0x249ec
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23b7d
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
leaq -0x90(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23b9c
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x43f0
movb $0x7, %al
jmp 0x23eed
leaq -0x3c(%rbp), %rdi
movl $0x2, %esi
callq 0x212c0
leaq 0x30(%r15), %rcx
cmpq %rcx, %rax
je 0x23f5e
movswl 0x58(%r15), %edi
callq 0x2b980
leaq 0x48(%r15), %rbx
incb %al
movq (%rbx), %rbx
decb %al
testb %al, %al
jg 0x23bce
leaq -0x80(%rbp), %r14
addq $0x48, %r15
movq %rbx, %r12
leaq 0x2107f(%rip), %rax     # 0x44c68
movq (%rax), %rax
movl 0x18(%r12), %ecx
movl %ecx, -0x80(%rbp)
movswq %cx, %rdx
shrl $0x10, %ecx
movswq %cx, %rcx
movq 0x8(%rax), %rax
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %rax
movzwl (%rax,%rdx,4), %r13d
movq %r14, %rdi
callq 0x2b7a6
testb $0x40, %r13b
je 0x23e12
movq (%r12), %r12
cmpq %r15, %r12
jne 0x23c36
leaq 0x2218e(%rip), %rax     # 0x45dc0
movq 0x48(%rax), %r12
cmpq %rbx, %r12
jne 0x23be2
leaq -0x3c(%rbp), %rsi
movq -0x38(%rbp), %rdi
movl $0x1, %edx
callq 0x24f2b
jmp 0x240ff
movq -0x38(%rbp), %rax
movl %r15d, 0x13c(%rax)
jmp 0x240ff
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x80(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x38(%rbp), %rdi
movl $0x1, %edx
callq 0x249ec
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x23ca7
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
leaq -0x90(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23cc6
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x43f0
movq 0x20(%r15), %rdi
movl $0xa, %esi
callq 0x24c07
jmp 0x24111
movq -0x38(%rbp), %rdx
movl 0xbc(%rdx), %ecx
cmpl %eax, %ecx
jne 0x23df2
leaq 0x22316(%rip), %rbx     # 0x46008
cmpq %rdx, (%rbx)
jne 0x23f5e
leaq 0x221fe(%rip), %rdi     # 0x45f00
movq (%rdi), %rax
cmpq 0x10(%rax), %r14
jne 0x23f5e
addq $0x18, %rdi
callq 0x1d79a
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x118ca(%rip), %rsi     # 0x355f1
leaq 0x118eb(%rip), %rdx     # 0x35619
leaq -0x80(%rbp), %rdi
callq 0xe01c
leaq -0x80(%rbp), %rdi
movl $0x3c, %esi
callq 0xf3f0
leaq 0x1d3dc(%rip), %rsi     # 0x41128
movl $0xffff, %edi           # imm = 0xFFFF
callq 0xe3b3
leaq 0x1f363(%rip), %rax     # 0x430c0
movq %rax, (%rbx)
leaq -0xa0(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
callq 0x2b798
leaq -0xa0(%rbp), %rdi
movl (%rdi), %eax
leaq 0x22295(%rip), %rcx     # 0x46018
movl %eax, 0x8(%rcx)
callq 0x2b7a6
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x23f5e
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x23f5e
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rax
leaq -0x3c(%rbp), %rdi
movl (%rdi), %ecx
movl %ecx, 0x8(%rax)
callq 0x21479
movq -0x38(%rbp), %rdi
movq %rax, %rsi
movl $0x1, %edx
callq 0x26b28
movq -0x38(%rbp), %rax
cmpb $0x0, 0x153(%rax)
jle 0x23e2b
movq 0x148(%rax), %rax
movl -0x40(%rbp), %ecx
movl %ecx, 0x8(%rax)
jmp 0x2367a
movl (%rbx), %edx
testl %edx, %edx
je 0x23f22
cmpl $0x1, %edx
jne 0x23f0d
testl %ecx, %ecx
jne 0x23f5e
jmp 0x23f22
movl 0x18(%r12), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
movq -0x38(%rbp), %rdi
callq 0x27a1f
jmp 0x23fe2
leaq 0x20e36(%rip), %rax     # 0x44c68
movq (%rax), %rax
movswq -0x3e(%rbp), %rcx
movq 0x8(%rax), %rax
leaq (%rcx,%rcx,2), %rcx
movswq -0x40(%rbp), %rdx
movq (%rax,%rcx,8), %rax
andw $-0x41, (%rax,%rdx,4)
jmp 0x240ff
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rdi
callq 0x21eca
leaq 0x2216c(%rip), %rdi     # 0x45fd8
leaq -0x2c(%rbp), %rsi
callq 0x21934
jmp 0x24111
leaq 0x11738(%rip), %rsi     # 0x355b9
leaq -0xa0(%rbp), %rdi
callq 0x11c74
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
movl $0x2e, %edx
callq 0x27ad4
leaq -0x80(%rbp), %rsi
movq %r14, %rdi
movl $0x1, %edx
callq 0x249ec
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23ecc
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
leaq -0x90(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23eeb
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x43f0
xorl %eax, %eax
movzbl %al, %esi
movq -0x38(%rbp), %rdi
callq 0x24c07
movq -0x38(%rbp), %rax
movq 0x148(%rax), %rax
movb $0x0, 0x21(%rax)
jmp 0x240ff
movl %eax, %ecx
leaq (%rcx,%rcx,2), %rcx
leaq 0x21fe6(%rip), %rdx     # 0x45f00
cmpq $0x2, 0x10(%rdx,%rcx,8)
jb 0x23f5e
leaq (%rax,%rax,2), %rax
leaq 0x21fd3(%rip), %rcx     # 0x45f00
leaq (%rcx,%rax,8), %rdi
movq (%rdi), %rsi
cmpq %rdi, %rsi
je 0x23f44
cmpq %r14, 0x10(%rsi)
je 0x23f44
movq (%rsi), %rsi
jmp 0x23f34
movq -0x38(%rbp), %rax
leaq 0xbc(%rax), %rbx
callq 0x27be2
movl (%rbx), %esi
movq %r14, %rdi
callq 0x277a0
leaq -0x3c(%rbp), %rdi
movl $0x4, %esi
callq 0x212c0
movq %rax, %r14
leaq 0x60(%r15), %rbx
cmpq %rbx, %rax
je 0x23ff0
movq %r14, %r12
movq (%r12), %r12
cmpq %rbx, %r12
jne 0x23f88
movq 0x60(%r15), %r12
cmpq %r14, %r12
je 0x2412c
leaq 0x20cd0(%rip), %rax     # 0x44c68
movq (%rax), %rax
movl 0x18(%r12), %ecx
movl %ecx, -0x80(%rbp)
movswq %cx, %rdx
shrl $0x10, %ecx
movswq %cx, %rcx
movq 0x8(%rax), %rax
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %rax
movzwl (%rax,%rdx,4), %r13d
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
testb $0x40, %r13b
jne 0x23f7b
movl 0x18(%r12), %eax
leaq -0x80(%rbp), %rsi
movl %eax, (%rsi)
movq -0x38(%rbp), %rdi
callq 0x27a1f
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
jmp 0x240ff
movzwl (%r13,%r12,4), %eax
movl $0x3, %ebx
testb $0x10, %al
jne 0x240e3
movq -0x38(%rbp), %rcx
movl 0xc0(%rcx), %ecx
cmpl $0x9, %ecx
je 0x24024
cmpl $0x1, %ecx
jne 0x240e3
testb $0x8, %al
jne 0x24030
jmp 0x240e3
cmpb $0x54, 0x2(%r13,%r12,4)
jne 0x240e3
leaq -0x3c(%rbp), %rdi
callq 0x2106c
testb %al, %al
jne 0x240e3
leaq 0x1f078(%rip), %rbx     # 0x430c0
movq (%rbx), %r13
cmpq %rbx, %r13
je 0x240cf
leaq -0x80(%rbp), %r14
leaq -0x3c(%rbp), %r15
movl 0xbc(%r13), %eax
movq -0x38(%rbp), %rcx
cmpl 0xbc(%rcx), %eax
je 0x240c6
leaq 0x10(%r13), %rdi
callq 0x12496
testb %al, %al
je 0x240c6
movq 0xd0(%r13), %rax
cmpb $0x0, 0x20(%rax)
jne 0x240c6
leaq 0x20bdc(%rip), %rax     # 0x44c68
movq (%rax), %rdi
movq 0x148(%r13), %rax
movl 0x8(%rax), %eax
movl %eax, -0x80(%rbp)
movq %r14, %rsi
movq %r15, %rdx
movl $0x3, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1736e
movl %eax, %r12d
movq %r14, %rdi
callq 0x2b7a6
testb %r12b, %r12b
jne 0x24157
movq (%r13), %r13
cmpq %rbx, %r13
jne 0x24058
movq -0x38(%rbp), %rax
movl 0xbc(%rax), %eax
leaq 0x11140(%rip), %rcx     # 0x35220
movl (%rcx,%rax,4), %ebx
movq -0x38(%rbp), %rdi
movq 0x148(%rdi), %rax
movl %ebx, 0x18(%rax)
leaq -0x3c(%rbp), %rsi
movl $0x1, %edx
callq 0x24f2b
leaq -0x3c(%rbp), %rdi
callq 0x2b7a6
leaq -0x40(%rbp), %rdi
callq 0x2b7a6
leaq -0x2c(%rbp), %rdi
callq 0x2b7a6
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x3c(%rbp), %rsi
movq -0x38(%rbp), %rdi
movl $0x1, %edx
callq 0x24f2b
jmp 0x240ff
leaq 0x21d39(%rip), %rdi     # 0x45e80
movq %r14, %rsi
callq 0x1d5a0
andb $-0x41, (%r13,%r12,4)
jmp 0x24186
movl $0x3, %ebx
jmp 0x240e3
leaq 0x21d1b(%rip), %rdi     # 0x45e80
movq %r14, %rsi
callq 0x1d5a0
andb $-0x41, (%r13,%r12,4)
movl $0x1c2e0005, (%r15,%rbx,4) # imm = 0x1C2E0005
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
callq 0x209ed
movq -0x38(%rbp), %rax
incb 0x141(%rax)
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
jmp 0x2367a
jmp 0x24248
jmp 0x24248
jmp 0x2422e
jmp 0x242b2
jmp 0x2422e
jmp 0x241bd
jmp 0x241db
jmp 0x242b2
movq %rax, %rbx
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x241de
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x241de
movq %rax, %rbx
leaq -0x90(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x242b5
movq -0x90(%rbp), %rsi
jmp 0x2423e
jmp 0x242b2
jmp 0x242b2
jmp 0x24248
jmp 0x243a3
jmp 0x24248
jmp 0x242b2
jmp 0x24248
jmp 0x242b2
jmp 0x242b2
jmp 0x242b2
jmp 0x242b2
jmp 0x242b2
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x242b5
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x242b5
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
jmp 0x242b5
jmp 0x242b2
jmp 0x242b2
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x24277
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x24277
movq %rax, %rbx
leaq -0x90(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x243d7
movq -0x90(%rbp), %rsi
jmp 0x242fb
jmp 0x243a3
jmp 0x242b2
jmp 0x242b2
jmp 0x242b2
jmp 0x242b2
jmp 0x243a3
jmp 0x242b2
jmp 0x243a3
jmp 0x243a3
movq %rax, %rbx
leaq -0x3c(%rbp), %rdi
callq 0x2b7a6
jmp 0x243ab
jmp 0x243a3
jmp 0x243a3
jmp 0x243b1
jmp 0x24357
jmp 0x24357
jmp 0x24357
jmp 0x242e7
jmp 0x243a3
jmp 0x243a3
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x243d7
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x243d7
jmp 0x243a3
jmp 0x243a8
jmp 0x24357
movq %rax, %rbx
leaq 0x1b93a(%rip), %rax     # 0x3fc58
addq $0x10, %rax
leaq -0x68(%rbp), %rdi
movq %rax, -0x18(%rdi)
callq 0x1da22
leaq -0x80(%rbp), %rdi
callq 0x21cfc
jmp 0x2433d
movq %rax, %rbx
leaq -0xa4(%rbp), %rdi
jmp 0x243d2
movq %rax, %rbx
leaq -0xa8(%rbp), %rdi
jmp 0x24384
jmp 0x24391
movq %rax, %rbx
jmp 0x24389
jmp 0x243a3
jmp 0x243a3
jmp 0x243b1
jmp 0x243a3
jmp 0x243b6
jmp 0x243a3
movq %rax, %rbx
leaq -0x3c(%rbp), %rdi
callq 0x2b7a6
leaq -0x40(%rbp), %rdi
callq 0x2b7a6
leaq -0xa0(%rbp), %rdi
callq 0x2b7a6
leaq -0x80(%rbp), %rdi
jmp 0x243d2
jmp 0x243a3
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x21cfc
jmp 0x243d7
jmp 0x243a3
jmp 0x243a3
movq %rax, %rbx
jmp 0x243d7
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
jmp 0x243d2
movq %rax, %rbx
jmp 0x243cb
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x2b7a6
leaq -0x80(%rbp), %rdi
callq 0x1875c
leaq -0xa0(%rbp), %rdi
callq 0x2b7a6
leaq -0x2c(%rbp), %rdi
callq 0x2b7a6
movq %rbx, %rdi
callq 0x4740