// File: /workspace/github_cpp_makefile_star2_O3/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
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x27661(%rip), %r12     # 0x45ee0
movq (%r12), %r15
cmpq %r12, %r15
je 0x1e907
movq %rsi, %r13
movq %rdi, %r14
movl %ecx, -0x2c(%rbp)
movq %rdx, -0x60(%rbp)
movq %r8, -0x58(%rbp)
leaq -0x80(%rbp), %rbx
movq %rsi, -0x88(%rbp)
movl 0x18(%r15), %eax
movl %eax, -0x80(%rbp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2b962
testb %al, %al
je 0x1e8ca
movq 0x28(%r14), %rax
movl 0x28(%r15), %ecx
cmpl 0xbc(%rax), %ecx
jne 0x1e8d4
movq %rbx, %rdi
callq 0x2b7a6
jmp 0x1e8f8
movq %r12, %r13
movq %r14, %r12
movb 0x1e(%r15), %r14b
movq %rbx, %rdi
callq 0x2b7a6
testb %r14b, %r14b
movq %r12, %r14
movq %r13, %r12
movq -0x88(%rbp), %r13
je 0x1e90e
movq (%r15), %r15
cmpq %r12, %r15
jne 0x1e8a4
xorl %ebx, %ebx
jmp 0x1ea27
xorl %ebx, %ebx
jmp 0x1ea2b
leaq 0x10(%r15), %rdi
movzbl -0x2c(%rbp), %edx
movq -0x60(%rbp), %rsi
callq 0x21d1a
movq -0x58(%rbp), %rbx
cmpb $0x1, 0x31(%r15)
movq -0x60(%rbp), %rsi
jne 0x1e968
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 0x1e95b
leaq 0x1084b(%rip), %rcx     # 0x2f1a3
movb (%rax,%rcx), %cl
movb %cl, (%rsi)
cmpb $0x0, -0x2c(%rbp)
je 0x1e968
addb $0x14, %cl
movb %cl, (%rsi)
movq 0x28(%r14), %rax
movl 0xbc(%rax), %ecx
movq 0x20(%r15), %rax
cmpl $0x2, %ecx
je 0x1e983
cmpl 0xbc(%rax), %ecx
jne 0x1e9e9
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x98(%rax), %rsi
movq 0xa0(%rax), %rdx
addq %rsi, %rdx
leaq -0x80(%rbp), %rdi
callq 0xf988
leaq -0x80(%rbp), %rdi
movq 0x8(%rdi), %rsi
movl $0x1, %ecx
xorl %edx, %edx
movl $0x7c, %r8d
callq 0x47a0
leaq -0x50(%rbp), %rdi
leaq -0x80(%rbp), %rbx
movq %rbx, %rsi
callq 0x44c0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x1e9e3
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
movq -0x58(%rbp), %rbx
jmp 0x1e9f8
movq $0x0, -0x48(%rbp)
movq -0x50(%rbp), %rax
movb $0x0, (%rax)
movl $0x150, %esi            # imm = 0x150
addq 0x20(%r15), %rsi
leaq -0x50(%rbp), %rdi
callq 0x47b0
leaq -0x50(%rbp), %rsi
movq %rbx, %rdi
callq 0x1f5a0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4060
incq 0x10(%rbx)
movb $0x1, %bl
leaq -0x40(%rbp), %rax
movq -0x50(%rbp), %rdi
cmpq %rax, %rdi
je 0x1ea40
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x43f0
movl %ebx, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x1ea80
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x43f0
jmp 0x1ea80
jmp 0x1ea6f
jmp 0x1ea6f
movq %rax, %rbx
jmp 0x1ea80
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x2b7a6
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x1ea99
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x43f0
movq %rbx, %rdi
callq 0x4740
nop