// File: /workspace/github_cpp_makefile_star2_O1/realuptime[P]PolyDetector/PolyDetector.cpp
// Function: PolyLine::neighToString[abi:cxx11](PolyDetector&, unsigned int*) const
std::string PolyLine::neighToString(PolyDetector &pd, uint32_t *retNNeigh) const
{
    auto search = pd._neighbors.find(id);
    if (search == pd._neighbors.end())
        return "[]";
    std::string str;
    uint32_t nNeigh = 0;
    for (auto &n : search->second)
    {
        auto l = pd.findLine(n);
        if (l)
        {
            str += std::to_string(n) + " ";
            nNeigh++;
        }
    }
    if (!str.empty())
        str.pop_back();
    if (retNNeigh)
        *retNNeigh = nNeigh;
    return str;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbp
movq 0x78(%rdx), %r10
movq %rdx, 0x60(%rsp)
leaq 0x70(%rdx), %rax
movq %rax, %r9
testq %r10, %r10
je 0x54d5
movl 0x60(%rsi), %edi
movq %rax, %r9
xorl %r8d, %r8d
cmpl %edi, 0x20(%r10)
setb %r8b
cmovaeq %r10, %r9
movq 0x10(%r10,%r8,8), %r10
testq %r10, %r10
jne 0x54bc
movq %rax, %rdx
cmpq %rax, %r9
je 0x54eb
movl 0x60(%rsi), %edx
cmpl 0x20(%r9), %edx
cmovbq %rax, %r9
movq %r9, %rdx
leaq 0x10(%rbp), %rsi
movq %rsi, (%rbp)
cmpq %rax, %rdx
je 0x5673
movq %rcx, 0x50(%rsp)
movq $0x0, 0x8(%rbp)
movb $0x0, 0x10(%rbp)
movq 0x28(%rdx), %r14
movq 0x30(%rdx), %rax
movq %rax, 0x58(%rsp)
cmpq %rax, %r14
je 0x568b
movq %rsi, 0x48(%rsp)
xorl %ebx, %ebx
leaq 0x28(%rsp), %r13
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
movl (%r14), %esi
movq 0x60(%rsp), %rdi
movl $0x1, %edx
callq 0x5706
testq %rax, %rax
je 0x5662
movq %rbp, %r15
movl (%r14), %ebp
movl $0x1, %eax
cmpl $0xa, %ebp
jb 0x559f
movl $0x4, %eax
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0x5598
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x559d
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x559f
movl %ecx, %edx
imulq %r12, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x5567
addl $-0x3, %eax
jmp 0x559f
addl $-0x2, %eax
jmp 0x559f
decl %eax
movl %eax, %esi
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq %r13, %r12
movq %r13, %rdi
xorl %edx, %edx
callq 0x2190
movq 0x28(%rsp), %rdi
movl 0x30(%rsp), %esi
movl %ebp, %edx
callq 0xbea5
movq %r12, %rdi
leaq 0xb4a2(%rip), %rsi      # 0x10a74
callq 0x2230
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r15, %rbp
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
je 0x5608
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x560e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbp, %rdi
callq 0x2060
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x564c
callq 0x2140
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5660
callq 0x2140
incl %ebx
addq $0x4, %r14
cmpq 0x58(%rsp), %r14
jne 0x5535
jmp 0x568d
leaq 0xb0f0(%rip), %rsi      # 0x1076a
leaq 0xb0eb(%rip), %rdx      # 0x1076c
movq %rbp, %rdi
callq 0xe1f8
jmp 0x56a8
xorl %ebx, %ebx
cmpq $0x0, 0x8(%rbp)
je 0x569c
movq %rbp, %rdi
callq 0x21a0
movq 0x50(%rsp), %rax
testq %rax, %rax
je 0x56a8
movl %ebx, (%rax)
movq %rbp, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x56db
callq 0x2140
jmp 0x56db
movq %rax, %rbx
jmp 0x56ef
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x56ef
callq 0x2140
movq (%r15), %rdi
cmpq 0x48(%rsp), %rdi
je 0x56fe
callq 0x2140
movq %rbx, %rdi
callq 0x2200