// File: lotuskip[P]yuxtapa/server/chores.cpp
// Function: progress_chore(std::_List_iterator<Player>)
void progress_chore(const list<Player>::iterator pit)
{
	Coords c;
	--(pit->doing_a_chore);
	switch(pit->cl)
	{
	case C_SCOUT: // disguise
		if(!pit->doing_a_chore) // done
		{
			c = pit->own_pc->getpos();
			list<NOccEnt>::iterator c_it = any_noccent_at(c, NOE_CORPSE);
			if(c_it != noccents[NOE_CORPSE].end()) // corpse might've been removed already
			{
				noccents[NOE_CORPSE].erase(c_it);
				Game::curmap->mod_tile(c)->flags &= ~(TF_NOCCENT);
			}
			pit->own_pc->set_disguised(true);
			string msg = "You are now disguised as the enemy.";
			Network::construct_msg(msg, C_BROWN_PC);
			Network::send_to_player(*pit);
			event_set.insert(c);
		}
		break;
	case C_FIGHTER: // circle strike 
	{
		list<Player>::iterator them;
		list<PCEnt>::const_iterator pc_it;
		c = pit->own_pc->getpos();
		Coords d;
		char die = 8, add = 0;
		// see if weapon has rusted:
		if(pit->cl_props.tohit != classes[pit->cl].tohit)
		{
			die -= RUST_MOD;
			add -= RUST_MOD;
		}
		for(char ch = 0; ch < 4; ++ch)
		{
			d = c.in(pit->facing);
			if((pc_it = any_pc_at(d)) != PCs.end())
			{
				them = pc_it->get_owner();
				if(test_hit(them, 5, 1, die, add) // was hit...
				&& them->cl_props.hp <= 0) // ...and died
				{
					string msg = " was sliced in half by ";
					if(pit->team == them->team)
					{
						msg += teammate_str;
						pit->stats_i->tks++;
					}
					else
						record_kill(pit, WTK_CIRCLE);
					player_death(them, msg + pit->nick + '.', true);
				}
			}
			else
				add_action_ind(d, A_MISS);
			++(pit->facing);
		}
		break;
	}
	case C_MINER: // mine
	{
		c = pit->own_pc->getpos().in(pit->facing);
		if(!pit->doing_a_chore) // done
		{
			// Digging is done; outcome depends on what exactly is there:
			Tile* tp = Game::curmap->mod_tile(c);
			list<OccEnt>::iterator b_it;
			if(tp->symbol == '#') // wall; dig a passage unless NODIG
			{
				if(tp->flags & TF_NODIG)
				{
					string msg = "The wall resists.";
					Network::construct_msg(msg, C_WALL_LIT);
					Network::send_to_player(*pit);
					break;
				}
				dig_open(tp);
				finish_wall_dig(c);
			}
			// windows&doors -- same thing but no NODIG check:
			else if(tp->symbol == '|' || tp->symbol == '-' || tp->symbol == '+')
			{
				dig_open(tp);
				if(tp->symbol == '+') // since doors are not seethru
					update_lights_around(c);
				event_set.insert(c);
			}
			// Destroying a boulder:
			else if(tp->flags & TF_OCCUPIED && (b_it = any_boulder_at(c)) != boulders.end())
			{
				// boulder; made this far so just destroy it:
				boulders.erase(b_it);
				tp->flags &= ~(TF_OCCUPIED);
				event_set.insert(c);
			}
			// Carving a new boulder:
			else if(tp->flags & TF_NOCCENT
				&& any_noccent_at(c, NOE_BLOCK_SOURCE) != noccents[NOE_BLOCK_SOURCE].end())
			{
				boulders.push_back(OccEnt(c, 'O', C_WALL));
				if(tp->flags & TF_OCCUPIED) // we know it's not a boulder!
				{
					list<PCEnt>::iterator pc_it = any_pc_at(c);
					if(pc_it != PCs.end())
					{
						list<Player>::iterator pit2 = pc_it->get_owner();
						string msg = " was squashed by ";
						if(pit->team == pit2->team) // note: no team kill recorded
							msg += teammate_str;
						else
							record_kill(pit, WTK_SQUASH);
						msg += pit->nick + "\'s carving frenzy.";
						player_death(pit2, msg, false);
					}
					else // may assume it's a missile
						any_missile_at(c)->makevoid(); // tile remains occupied by the boulder
				}
				tp->flags |= TF_OCCUPIED; /* Note: set in any case; if a player
					was killed, that cleared the occupied-flag! */
				event_set.insert(c);
			}
			// else it is not possible to finish for some reason
		}
		else if(cant_dig_in(c, pit->facing))
			pit->doing_a_chore = 0; // must abort
		else
			add_sound(c, S_RUMBLE);
		break;
	}
	case C_TRAPPER: // plant trap
		if(!pit->doing_a_chore) // done
		{
			c = pit->own_pc->getpos();
			string msg;
			// If there is a trap, disarm it, else plant one:
			if(Game::curmap->mod_tile(c)->flags & TF_TRAP)
			{
				traps.erase(any_trap_at(c));
				Game::curmap->mod_tile(c)->flags &= ~TF_TRAP;
				msg = "You disarm the trap.";
			}
			else
			{
				traps.push_back(Trap(c, TRAP_BOOBY, pit));
				traps.back().set_seen_by(pit->team);
				Game::curmap->mod_tile(c)->flags |= TF_TRAP;
				msg = "You set a boobytrap.";
			}
			Network::construct_msg(msg, C_BOOBY_TRAP_LIT);
			Network::send_to_player(*pit);
		}
		break;
#ifdef DEBUG
	default: // Reaching this is an error!
		to_log("Error: progress_chore called with class "
			+ lex_cast(pit->cl));
		break;
#endif
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x410, %rsp            # imm = 0x410
movq %rdi, -0x8(%rbp)
leaq -0xc(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x60430
leaq -0x8(%rbp), %rdi
movq %rdi, -0x318(%rbp)
callq 0x1b050
movq -0x318(%rbp), %rdi
movb 0x132(%rax), %cl
decb %cl
movb %cl, 0x132(%rax)
callq 0x1b050
movl 0xb0(%rax), %eax
addl $-0x4, %eax
movl %eax, %ecx
movq %rcx, -0x310(%rbp)
subl $0x5, %eax
ja 0x56064
movq -0x310(%rbp), %rax
leaq 0x15219(%rip), %rcx     # 0x6a2c8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x8(%rbp), %rdi
callq 0x1b050
cmpb $0x0, 0x132(%rax)
jne 0x55284
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x10(%rbp), %rdi
callq 0x1b190
jmp 0x550e9
movl -0x10(%rbp), %eax
movl %eax, -0xc(%rbp)
leaq -0x10(%rbp), %rdi
callq 0x60460
leaq -0xc(%rbp), %rdi
xorl %esi, %esi
callq 0x49390
movq %rax, -0x320(%rbp)
jmp 0x5510c
movq -0x320(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq 0x3de12(%rip), %rdi     # 0x92f30
callq 0x3c9d0
movq %rax, -0x30(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3cdc0
testb $0x1, %al
jne 0x5513a
jmp 0x5519a
leaq -0x38(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3c980
movq -0x38(%rbp), %rsi
leaq 0x3ddde(%rip), %rdi     # 0x92f30
callq 0x3d280
movq %rax, -0x40(%rbp)
leaq 0x3cc76(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
leaq -0xc(%rbp), %rsi
callq 0x3d2d0
movq %rax, -0x328(%rbp)
jmp 0x55177
movq -0x328(%rbp), %rax
movzwl (%rax), %ecx
andl $-0x21, %ecx
movw %cx, (%rax)
jmp 0x5519a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5610b
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rdi
movl $0x1, %esi
callq 0x58450
jmp 0x551b6
leaq -0x61(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x5930
movq -0x330(%rbp), %rdx
leaq 0x17207(%rip), %rsi     # 0x6c3db
leaq -0x60(%rbp), %rdi
callq 0x18880
jmp 0x551df
leaq -0x61(%rbp), %rdi
callq 0x5590
leaq -0x60(%rbp), %rdi
movl $0x20, %esi
callq 0x1ab10
jmp 0x551f8
leaq -0x8(%rbp), %rdi
callq 0x28450
movq %rax, %rdi
leaq 0x3908d(%rip), %rsi     # 0x8e298
callq 0x1af60
jmp 0x55212
leaq 0x3df2f(%rip), %rdi     # 0x93148
leaq -0xc(%rbp), %rsi
callq 0x4a010
movb %dl, -0x339(%rbp)
movq %rax, -0x338(%rbp)
jmp 0x55231
movb -0x339(%rbp), %al
movq -0x338(%rbp), %rcx
movq %rcx, -0x78(%rbp)
movb %al, -0x70(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a48
jmp 0x55284
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x61(%rbp), %rdi
callq 0x5590
jmp 0x5610b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a48
jmp 0x5610b
jmp 0x560f9
leaq -0x80(%rbp), %rdi
callq 0x1b010
leaq -0x88(%rbp), %rdi
callq 0x58470
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x8c(%rbp), %rdi
callq 0x1b190
jmp 0x552bc
movl -0x8c(%rbp), %eax
movl %eax, -0xc(%rbp)
leaq -0x8c(%rbp), %rdi
callq 0x60460
leaq -0x90(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x60430
jmp 0x552e3
movb $0x8, -0x91(%rbp)
movb $0x0, -0x92(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movsbl 0x144(%rax), %eax
movl %eax, -0x340(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x340(%rbp), %eax
movl 0xb0(%rcx), %ecx
movl %ecx, %edx
leaq 0x14fd8(%rip), %rcx     # 0x6a300
imulq $0xd, %rdx, %rdx
addq %rdx, %rcx
movsbl 0x4(%rcx), %ecx
cmpl %ecx, %eax
je 0x55357
movsbl -0x91(%rbp), %eax
subl $0x2, %eax
movb %al, -0x91(%rbp)
movsbl -0x92(%rbp), %eax
subl $0x2, %eax
movb %al, -0x92(%rbp)
movb $0x0, -0x93(%rbp)
movsbl -0x93(%rbp), %eax
cmpl $0x4, %eax
jge 0x556e4
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0x158(%rax), %edx
leaq -0x98(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq 0x60550
jmp 0x5538f
movl -0x98(%rbp), %eax
movl %eax, -0x90(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x60460
leaq -0x90(%rbp), %rdi
callq 0x49290
movq %rax, -0x348(%rbp)
jmp 0x553bc
movq -0x348(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3d0b0
movq -0xa0(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq 0x3dc5e(%rip), %rdi     # 0x93050
callq 0x3d010
movq %rax, -0xb8(%rbp)
leaq -0xb0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3d0b0
leaq -0x88(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x4a4f0
testb $0x1, %al
jne 0x5542d
jmp 0x556a0
leaq -0x88(%rbp), %rdi
callq 0x4a520
movq %rax, %rdi
callq 0x3d0f0
movq %rax, -0x350(%rbp)
jmp 0x5544a
movq -0x350(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0xc8(%rbp)
movsbl -0x91(%rbp), %ecx
movsbl -0x92(%rbp), %r8d
movq -0xc8(%rbp), %rdi
movl $0x5, %esi
movl $0x1, %edx
callq 0x56120
movb %al, -0x351(%rbp)
jmp 0x5549b
movb -0x351(%rbp), %al
testb $0x1, %al
jne 0x554aa
jmp 0x5569e
leaq -0x80(%rbp), %rdi
callq 0x1b050
movsbl 0x143(%rax), %eax
cmpl $0x0, %eax
jg 0x5569e
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x360(%rbp)
callq 0x5930
movq -0x360(%rbp), %rdx
leaq 0x16f1b(%rip), %rsi     # 0x6c3ff
leaq -0xe8(%rbp), %rdi
callq 0x18880
jmp 0x554f2
leaq -0xe9(%rbp), %rdi
callq 0x5590
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0xac(%rax), %eax
movl %eax, -0x364(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x364(%rbp), %eax
cmpl 0xac(%rcx), %eax
jne 0x555b1
leaq 0x3eb90(%rip), %rsi     # 0x940c8
leaq -0xe8(%rbp), %rdi
callq 0x56e0
jmp 0x55546
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rdi
addq $0x80, %rdi
callq 0x1b390
movq 0x90(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x90(%rax)
jmp 0x555d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x556f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0xe9(%rbp), %rdi
callq 0x5590
jmp 0x556f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x55690
movq -0x8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rdi
movl $0x2, %esi
callq 0x51b40
jmp 0x555cf
jmp 0x555d1
movq -0x80(%rbp), %rax
movq %rax, -0x100(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rdx
addq $0x88, %rdx
leaq -0x140(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x24cb0
jmp 0x55604
leaq -0x120(%rbp), %rdi
leaq -0x140(%rbp), %rsi
movl $0x2e, %edx
callq 0x3ca50
jmp 0x5561e
movq -0x100(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movl $0x1, %edx
callq 0x517d0
jmp 0x55638
leaq -0x120(%rbp), %rdi
callq 0x5a48
leaq -0x140(%rbp), %rdi
callq 0x5a48
leaq -0xe8(%rbp), %rdi
callq 0x5a48
jmp 0x5569e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x55684
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x5a48
leaq -0x140(%rbp), %rdi
callq 0x5a48
leaq -0xe8(%rbp), %rdi
callq 0x5a48
jmp 0x556f5
jmp 0x556b5
leaq -0x90(%rbp), %rdi
movl $0x5, %esi
callq 0x47f20
jmp 0x556b3
jmp 0x556b5
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rdi
addq $0x158, %rdi            # imm = 0x158
callq 0x60390
jmp 0x556cf
jmp 0x556d1
movb -0x93(%rbp), %al
addb $0x1, %al
movb %al, -0x93(%rbp)
jmp 0x5535e
leaq -0x90(%rbp), %rdi
callq 0x60460
jmp 0x560f9
leaq -0x90(%rbp), %rdi
callq 0x60460
jmp 0x5610b
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x148(%rbp), %rdi
callq 0x1b190
jmp 0x55724
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0x158(%rax), %edx
leaq -0x144(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x60550
jmp 0x55748
movl -0x144(%rbp), %eax
movl %eax, -0xc(%rbp)
leaq -0x144(%rbp), %rdi
callq 0x60460
leaq -0x148(%rbp), %rdi
callq 0x60460
leaq -0x8(%rbp), %rdi
callq 0x1b050
cmpb $0x0, 0x132(%rax)
jne 0x55db9
leaq 0x3c652(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
leaq -0xc(%rbp), %rsi
callq 0x3d2d0
movq %rax, -0x370(%rbp)
jmp 0x5579b
movq -0x370(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x4a680
movq -0x150(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x23, %eax
jne 0x558cf
movq -0x150(%rbp), %rax
movzwl (%rax), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x558b1
leaq -0x179(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x5930
movq -0x378(%rbp), %rdx
leaq 0x16c15(%rip), %rsi     # 0x6c417
leaq -0x178(%rbp), %rdi
callq 0x18880
jmp 0x55810
leaq -0x179(%rbp), %rdi
callq 0x5590
leaq -0x178(%rbp), %rdi
movl $0x2e, %esi
callq 0x1ab10
jmp 0x5582f
leaq -0x8(%rbp), %rdi
callq 0x28450
movq %rax, %rdi
leaq 0x38a56(%rip), %rsi     # 0x8e298
callq 0x1af60
jmp 0x55849
leaq -0x178(%rbp), %rdi
callq 0x5a48
jmp 0x560f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x60460
jmp 0x5610b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x179(%rbp), %rdi
callq 0x5590
jmp 0x5610b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x5a48
jmp 0x5610b
movq -0x150(%rbp), %rdi
callq 0x562d0
jmp 0x558bf
leaq -0xc(%rbp), %rdi
callq 0x562f0
jmp 0x558ca
jmp 0x55db7
movq -0x150(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x7c, %eax
je 0x558ff
movq -0x150(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x2d, %eax
je 0x558ff
movq -0x150(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x2b, %eax
jne 0x55968
movq -0x150(%rbp), %rdi
callq 0x562d0
jmp 0x5590d
movq -0x150(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x2b, %eax
jne 0x5592a
leaq -0xc(%rbp), %rdi
callq 0x50c40
jmp 0x55928
jmp 0x5592a
leaq 0x3d817(%rip), %rdi     # 0x93148
leaq -0xc(%rbp), %rsi
callq 0x4a010
movb %dl, -0x381(%rbp)
movq %rax, -0x380(%rbp)
jmp 0x55949
movb -0x381(%rbp), %al
movq -0x380(%rbp), %rcx
movq %rcx, -0x190(%rbp)
movb %al, -0x188(%rbp)
jmp 0x55db5
movq -0x150(%rbp), %rax
movzwl (%rax), %ecx
andl $0x40, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x382(%rbp)
je 0x559dc
leaq -0xc(%rbp), %rdi
callq 0x495b0
movq %rax, -0x390(%rbp)
jmp 0x55994
movq -0x390(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq 0x3d639(%rip), %rdi     # 0x92ff0
callq 0x3d190
movq %rax, -0x1a0(%rbp)
leaq -0x158(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3d160
movb %al, -0x382(%rbp)
movb -0x382(%rbp), %al
testb $0x1, %al
jne 0x559e8
jmp 0x55a64
leaq -0x1a8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3d240
movq -0x1a8(%rbp), %rsi
leaq 0x3d5e7(%rip), %rdi     # 0x92ff0
callq 0x3d1f0
movq %rax, -0x1b0(%rbp)
movq -0x150(%rbp), %rax
movw (%rax), %cx
andw $-0x41, %cx
movw %cx, (%rax)
leaq 0x3d71b(%rip), %rdi     # 0x93148
leaq -0xc(%rbp), %rsi
callq 0x4a010
movb %dl, -0x399(%rbp)
movq %rax, -0x398(%rbp)
jmp 0x55a45
movb -0x399(%rbp), %al
movq -0x398(%rbp), %rcx
movq %rcx, -0x1c0(%rbp)
movb %al, -0x1b8(%rbp)
jmp 0x55db3
movq -0x150(%rbp), %rax
movzwl (%rax), %ecx
andl $0x20, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x39a(%rbp)
je 0x55ad3
leaq -0xc(%rbp), %rdi
movl $0x1, %esi
callq 0x49390
movq %rax, -0x3a8(%rbp)
jmp 0x55a95
movq -0x3a8(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq 0x3d486(%rip), %rdi     # 0x92f30
addq $0x18, %rdi
callq 0x3c9d0
movq %rax, -0x1d0(%rbp)
leaq -0x1c8(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x3cdc0
movb %al, -0x39a(%rbp)
movb -0x39a(%rbp), %al
testb $0x1, %al
jne 0x55ae2
jmp 0x55db1
leaq -0x1e0(%rbp), %rdi
leaq -0xc(%rbp), %rsi
movl $0x4f, %edx
movl $0x1a, %ecx
callq 0x4d920
jmp 0x55afe
leaq 0x3d4eb(%rip), %rdi     # 0x92ff0
leaq -0x1e0(%rbp), %rsi
callq 0x4b7d0
jmp 0x55b13
leaq -0x1e0(%rbp), %rdi
callq 0x3e500
movq -0x150(%rbp), %rax
movzwl (%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x55d67
leaq -0xc(%rbp), %rdi
callq 0x49290
movq %rax, -0x3b0(%rbp)
jmp 0x55b47
movq -0x3b0(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq 0x3d4f4(%rip), %rdi     # 0x93050
callq 0x3d010
movq %rax, -0x1f0(%rbp)
leaq -0x1e8(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x3cfe0
testb $0x1, %al
jne 0x55b84
jmp 0x55d43
leaq -0x1e8(%rbp), %rdi
callq 0x3d040
movq %rax, %rdi
callq 0x3d0f0
movq %rax, -0x3b8(%rbp)
jmp 0x55ba1
movq -0x3b8(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x219(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
callq 0x5930
movq -0x3c0(%rbp), %rdx
leaq 0x16859(%rip), %rsi     # 0x6c429
leaq -0x218(%rbp), %rdi
callq 0x18880
jmp 0x55bde
leaq -0x219(%rbp), %rdi
callq 0x5590
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0xac(%rax), %eax
movl %eax, -0x3c4(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x3c4(%rbp), %eax
cmpl 0xac(%rcx), %eax
jne 0x55c7e
leaq 0x3e4a5(%rip), %rsi     # 0x940c8
leaq -0x218(%rbp), %rdi
callq 0x56e0
jmp 0x55c31
jmp 0x55c9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3e500
jmp 0x5610b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x219(%rbp), %rdi
callq 0x5590
jmp 0x5610b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x55d32
movq -0x8(%rbp), %rax
movq %rax, -0x228(%rbp)
movq -0x228(%rbp), %rdi
movl $0x8, %esi
callq 0x51b40
jmp 0x55c9c
jmp 0x55c9e
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq %rax, %rsi
addq $0x88, %rsi
leaq 0x16783(%rip), %rdx     # 0x6c43b
leaq -0x248(%rbp), %rdi
callq 0x1b080
jmp 0x55cc6
leaq -0x218(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x56e0
jmp 0x55cdb
leaq -0x248(%rbp), %rdi
callq 0x5a48
movq -0x1f8(%rbp), %rax
movq %rax, -0x250(%rbp)
movq -0x250(%rbp), %rdi
leaq -0x218(%rbp), %rsi
xorl %edx, %edx
callq 0x517d0
jmp 0x55d0c
leaq -0x218(%rbp), %rdi
callq 0x5a48
jmp 0x55d65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x5a48
leaq -0x218(%rbp), %rdi
callq 0x5a48
jmp 0x5610b
leaq -0xc(%rbp), %rdi
callq 0x496b0
movq %rax, -0x3d0(%rbp)
jmp 0x55d55
movq -0x3d0(%rbp), %rdi
callq 0x4d8d0
jmp 0x55d63
jmp 0x55d65
jmp 0x55d67
movq -0x150(%rbp), %rax
movw (%rax), %cx
orw $0x40, %cx
movw %cx, (%rax)
leaq 0x3d3c9(%rip), %rdi     # 0x93148
leaq -0xc(%rbp), %rsi
callq 0x4a010
movb %dl, -0x3d9(%rbp)
movq %rax, -0x3d8(%rbp)
jmp 0x55d97
movb -0x3d9(%rbp), %al
movq -0x3d8(%rbp), %rcx
movq %rcx, -0x260(%rbp)
movb %al, -0x258(%rbp)
jmp 0x55db3
jmp 0x55db5
jmp 0x55db7
jmp 0x55e09
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0x158(%rax), %esi
leaq -0xc(%rbp), %rdi
callq 0x54410
movb %al, -0x3da(%rbp)
jmp 0x55dd9
movb -0x3da(%rbp), %al
cmpb $0x0, %al
je 0x55df5
leaq -0x8(%rbp), %rdi
callq 0x1b050
movb $0x0, 0x132(%rax)
jmp 0x55e07
leaq -0xc(%rbp), %rdi
movl $0x5, %esi
callq 0x48080
jmp 0x55e05
jmp 0x55e07
jmp 0x55e09
jmp 0x560f9
leaq -0x8(%rbp), %rdi
callq 0x1b050
cmpb $0x0, 0x132(%rax)
jne 0x5605f
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x264(%rbp), %rdi
callq 0x1b190
jmp 0x55e42
movl -0x264(%rbp), %eax
movl %eax, -0xc(%rbp)
leaq -0x264(%rbp), %rdi
callq 0x60460
leaq -0x288(%rbp), %rdi
callq 0x5770
leaq 0x3bf6e(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
leaq -0xc(%rbp), %rsi
callq 0x3d2d0
movq %rax, -0x3e8(%rbp)
jmp 0x55e7f
movq -0x3e8(%rbp), %rax
movzwl (%rax), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x55f3b
leaq -0xc(%rbp), %rdi
callq 0x494b0
movq %rax, -0x3f0(%rbp)
jmp 0x55ea9
movq -0x3f0(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x290(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x3db40
movq -0x290(%rbp), %rsi
leaq 0x3d100(%rip), %rdi     # 0x92fd8
callq 0x3daf0
movq %rax, -0x2a0(%rbp)
leaq 0x3beed(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
leaq -0xc(%rbp), %rsi
callq 0x3d2d0
movq %rax, -0x3f8(%rbp)
jmp 0x55f00
movq -0x3f8(%rbp), %rax
movb 0x1(%rax), %cl
andb $-0x9, %cl
movb %cl, 0x1(%rax)
leaq 0x16537(%rip), %rsi     # 0x6c44e
leaq -0x288(%rbp), %rdi
callq 0x5760
jmp 0x55f25
jmp 0x56013
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5604e
movq -0x8(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0x2c8(%rbp), %rcx
leaq -0x2c0(%rbp), %rdi
leaq -0xc(%rbp), %rsi
movl $0x3, %edx
callq 0x4d7d0
jmp 0x55f64
leaq 0x3d06d(%rip), %rdi     # 0x92fd8
leaq -0x2c0(%rbp), %rsi
callq 0x49f50
jmp 0x55f79
leaq -0x2c0(%rbp), %rdi
callq 0x49f90
leaq 0x3d04c(%rip), %rdi     # 0x92fd8
callq 0x58490
movq %rax, -0x400(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1b050
movq -0x400(%rbp), %rdi
movzbl 0xac(%rax), %esi
callq 0x4d860
jmp 0x55fb6
leaq 0x3be1b(%rip), %rax     # 0x91dd8
movq (%rax), %rdi
leaq -0xc(%rbp), %rsi
callq 0x3d2d0
movq %rax, -0x408(%rbp)
jmp 0x55fd2
movq -0x408(%rbp), %rax
movb 0x1(%rax), %cl
orb $0x8, %cl
movb %cl, 0x1(%rax)
leaq 0x1647a(%rip), %rsi     # 0x6c463
leaq -0x288(%rbp), %rdi
callq 0x5760
jmp 0x55ff7
jmp 0x56013
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x49f90
jmp 0x5604e
leaq -0x288(%rbp), %rdi
movl $0x38, %esi
callq 0x1ab10
jmp 0x56026
leaq -0x8(%rbp), %rdi
callq 0x28450
movq %rax, %rdi
leaq 0x3825f(%rip), %rsi     # 0x8e298
callq 0x1af60
jmp 0x56040
leaq -0x288(%rbp), %rdi
callq 0x5a48
jmp 0x5605f
leaq -0x288(%rbp), %rdi
callq 0x5a48
jmp 0x5610b
jmp 0x560f9
leaq -0x8(%rbp), %rdi
callq 0x1b050
movl 0xb0(%rax), %esi
leaq -0x308(%rbp), %rdi
callq 0x609d0
jmp 0x56081
leaq 0x163f0(%rip), %rsi     # 0x6c478
leaq -0x2e8(%rbp), %rdi
leaq -0x308(%rbp), %rdx
callq 0x18a90
jmp 0x5609d
leaq -0x2e8(%rbp), %rdi
callq 0x28d70
jmp 0x560ab
leaq -0x2e8(%rbp), %rdi
callq 0x5a48
leaq -0x308(%rbp), %rdi
callq 0x5a48
jmp 0x560f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x560eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x5a48
leaq -0x308(%rbp), %rdi
callq 0x5a48
jmp 0x5610b
leaq -0xc(%rbp), %rdi
callq 0x60460
addq $0x410, %rsp            # imm = 0x410
popq %rbp
retq
leaq -0xc(%rbp), %rdi
callq 0x60460
movq -0x18(%rbp), %rdi
callq 0x5920
nopl (%rax)