// File: /workspace/github_cpp_makefile_star2_O2/lotuskip[P]yuxtapa/server/viewpoint.cpp
// Function: ViewPoint::render_pc_at(Coords const&, char*, bool, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&) const
bool ViewPoint::render_pc_at(const Coords &c, char* const target, const bool lit,
	list<string> &titles) const
{
	string tstr;
	for(list<PCEnt>::iterator it = PCs.begin(); it != PCs.end(); ++it)
	{
		if(it->getpos() == c && it->visible_to_team(owner->team)
			&& !it->isvoid())
		{
			// Drawing:
			it->draw(target, lit);
			if(it->is_disguised())
			{
				// disguised: brown for teammates & specs; for enemies their colour
				if(it->get_owner()->team == owner->team || owner->team == T_SPEC)
					*target = C_BROWN_PC;
				else
					*target = team_colour[owner->team];
				if(lit)
					*target += NUM_NORM_COLS;
			}

			// Title:
			if(owner->team == T_SPEC || owner->team == it->get_owner()->team)
				tstr = it->get_owner()->nick + '|';
			else
				tstr.clear();
			tstr += it->get_owner()->cl_props.abbr;
			titles.push_back(tstr);

			return true;
		}
	}
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %r8, -0x40(%rbp)
movl %ecx, -0x2c(%rbp)
movq %rdx, -0x38(%rbp)
movq %rsi, %r13
movq %rdi, %r14
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x29c59(%rip), %r12     # 0x42ed0
leaq -0x88(%rbp), %rbx
movq %r12, %r15
movq %rsi, -0x48(%rbp)
movq (%r15), %r15
cmpq %r12, %r15
je 0x193b8
movl 0x18(%r15), %eax
movl %eax, -0x88(%rbp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x24f42
testb %al, %al
je 0x192ba
movq 0x28(%r14), %rax
movl 0x28(%r15), %ecx
cmpl 0xbc(%rax), %ecx
jne 0x192c4
movq %rbx, %rdi
callq 0x24d9e
jmp 0x19285
movq %r12, %r13
movq %r14, %r12
movb 0x1e(%r15), %r14b
movq %rbx, %rdi
callq 0x24d9e
testb %r14b, %r14b
movq %r12, %r14
movq %r13, %r12
movq -0x48(%rbp), %r13
jne 0x19285
leaq 0x10(%r15), %rdi
movzbl -0x2c(%rbp), %edx
movq -0x38(%rbp), %rsi
callq 0x1c9e6
cmpb $0x1, 0x31(%r15)
jne 0x1933f
movq 0x20(%r15), %rcx
movq 0x28(%r14), %rax
movl 0xbc(%rax), %eax
cmpl %eax, 0xbc(%rcx)
sete %cl
cmpl $0x2, %eax
sete %dl
orb %cl, %dl
movb $0x20, %cl
jne 0x1932a
leaq 0xfebc(%rip), %rcx      # 0x291e3
movb (%rax,%rcx), %cl
movq -0x38(%rbp), %rax
movb %cl, (%rax)
cmpb $0x0, -0x2c(%rbp)
je 0x1933f
addb $0x14, %cl
movq -0x38(%rbp), %rax
movb %cl, (%rax)
movq 0x28(%r14), %rax
movl 0xbc(%rax), %eax
movq 0x20(%r15), %rsi
cmpl $0x2, %eax
je 0x1935a
cmpl 0xbc(%rsi), %eax
jne 0x1938d
addq $0x98, %rsi
leaq -0x88(%rbp), %rdi
pushq $0x7c
popq %rdx
callq 0xe0b7
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rbx
movq %rbx, %rsi
callq 0x44b0
movq %rbx, %rdi
callq 0x47e8
jmp 0x19399
andq $0x0, -0x60(%rbp)
movq -0x68(%rbp), %rax
movb $0x0, (%rax)
movl $0x150, %esi            # imm = 0x150
addq 0x20(%r15), %rsi
leaq -0x68(%rbp), %rdi
callq 0x4770
leaq -0x68(%rbp), %rsi
movq -0x40(%rbp), %rdi
callq 0x19756
cmpq 0x23be9(%rip), %r15     # 0x3cfa8
setne %bl
leaq -0x68(%rbp), %rdi
callq 0x47e8
movl %ebx, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x193e0
jmp 0x193e0
movq %rax, %rbx
jmp 0x193f4
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
callq 0x24d9e
leaq -0x68(%rbp), %rdi
callq 0x47e8
movq %rbx, %rdi
callq 0x4710
nop