// File: /workspace/github_cpp_makefile_star2_O1/alex-courtis[P]xlayoutdisplay/src/calculations.cpp
// Function: renderUserInfo(std::__cxx11::list<std::shared_ptr<Output>, std::allocator<std::shared_ptr<Output>>> const&)
const string renderUserInfo(const list<shared_ptr<Output>> &outputs) {
    stringstream ss;
    for (const auto &output : outputs) {
        ss << output->name;
        switch (output->state) {
            case Output::active:
                ss << " active";
                break;
            case Output::connected:
                ss << " connected";
                break;
            case Output::disconnected:
                ss << " disconnected";
                break;
        }
        if (output->edid) {
            ss << ' ' << output->edid->maxCmHoriz() << "cm/" << output->edid->maxCmVert() << "cm";
        }
        if (output->currentMode && output->currentPos) {
            ss << ' ' << output->currentMode->width << 'x' << output->currentMode->height;
            ss << '+' << output->currentPos->x << '+' << output->currentPos->y;
            ss << ' ' << output->currentMode->refresh << "Hz";
        }
        ss << endl;
        for (const auto &mode : output->modes) {
            ss << (mode == output->currentMode ? '*' : ' ');
            ss << (mode == output->preferredMode ? '+' : ' ');
            ss << (mode == output->optimalMode ? '!' : ' ');
            ss << mode->width << 'x' << mode->height << ' ' << mode->refresh << "Hz";
            ss << endl;
        }
    }
    ss << "*current +preferred !optimal";
    return ss.str();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, 0x10(%rsp)
leaq 0x20(%rsp), %rdi
callq 0x6290
movq (%r14), %rbx
movq %r14, 0x18(%rsp)
cmpq %r14, %rbx
je 0x84df
leaq 0x30(%rsp), %r15
leaq 0xf(%rsp), %r12
leaq 0x121aa(%rip), %r13     # 0x1a372
movq 0x10(%rbx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r15, %rdi
callq 0x6460
movq 0x10(%rbx), %rax
movl 0x20(%rax), %eax
cmpq $0x3, %rax
jae 0x8204
leaq 0x12399(%rip), %rcx     # 0x1a588
movslq (%rcx,%rax,4), %rsi
addq %rcx, %rsi
leal (%rax,%rax,2), %edx
addl $0x7, %edx
movq %r15, %rdi
callq 0x6460
movq 0x10(%rbx), %rax
cmpq $0x0, 0x80(%rax)
je 0x828b
movb $0x20, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x6460
movq %rax, %rbp
movq 0x10(%rbx), %rax
movq 0x80(%rax), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movl %eax, %esi
movq %rbp, %rdi
callq 0x6260
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x12114(%rip), %rsi     # 0x1a36b
callq 0x6460
movq 0x10(%rbx), %rax
movq 0x80(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movl %eax, %esi
movq %rbp, %rdi
callq 0x6260
movl $0x2, %edx
movq %rax, %rdi
leaq 0x120e9(%rip), %rsi     # 0x1a36f
callq 0x6460
movq 0x10(%rbx), %rax
cmpq $0x0, 0x40(%rax)
je 0x837c
cmpq $0x0, 0x70(%rax)
je 0x837c
movb $0x20, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbx), %rcx
movq 0x40(%rcx), %rcx
movl 0x8(%rcx), %esi
movq %rax, %rdi
callq 0x6260
movb $0x78, 0xf(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbx), %rcx
movq 0x40(%rcx), %rcx
movl 0xc(%rcx), %esi
movq %rax, %rdi
callq 0x6260
movb $0x2b, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbx), %rcx
movq 0x70(%rcx), %rcx
movl (%rcx), %esi
movq %rax, %rdi
callq 0x66d0
movb $0x2b, 0xf(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbx), %rcx
movq 0x70(%rcx), %rcx
movl 0x4(%rcx), %esi
movq %rax, %rdi
callq 0x66d0
movb $0x20, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbx), %rcx
movq 0x40(%rcx), %rcx
movl 0x10(%rcx), %esi
movq %rax, %rdi
callq 0x6260
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x6460
movq 0x30(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6350
movsbl %al, %esi
movq %r15, %rdi
callq 0x6040
movq %rax, %rdi
callq 0x6270
movq 0x10(%rbx), %r14
addq $0x28, %r14
movq %r14, %rbp
movq (%rbp), %rbp
cmpq %r14, %rbp
je 0x84d1
movq 0x10(%rbx), %rax
movq 0x10(%rbp), %rcx
cmpq 0x40(%rax), %rcx
movl $0x20, %eax
movl $0x2a, %ecx
cmovel %ecx, %eax
movb %al, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbx), %rax
movq 0x10(%rbp), %rcx
cmpq 0x50(%rax), %rcx
movl $0x20, %eax
movl $0x2b, %ecx
cmovel %ecx, %eax
movb %al, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbx), %rax
movq 0x10(%rbp), %rcx
cmpq 0x60(%rax), %rcx
sete %al
orb $0x20, %al
movb %al, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbp), %rax
movl 0x8(%rax), %esi
movq %r15, %rdi
callq 0x6260
movb $0x78, 0xf(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbp), %rcx
movl 0xc(%rcx), %esi
movq %rax, %rdi
callq 0x6260
movb $0x20, 0xf(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x6460
movq 0x10(%rbp), %rcx
movl 0x10(%rcx), %esi
movq %rax, %rdi
callq 0x6260
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x6460
movq 0x30(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6350
movsbl %al, %esi
movq %r15, %rdi
callq 0x6040
movq %rax, %rdi
callq 0x6270
jmp 0x83b0
movq (%rbx), %rbx
cmpq 0x18(%rsp), %rbx
jne 0x81c8
leaq 0x30(%rsp), %rdi
leaq 0x11e8a(%rip), %rsi     # 0x1a375
movl $0x1c, %edx
callq 0x6460
movq 0x10(%rsp), %rbx
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0x6630
movq 0x1ca3a(%rip), %rsi     # 0x24f48
leaq 0x20(%rsp), %rdi
callq 0x62c0
leaq 0xa0(%rsp), %rdi
callq 0x6110
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x853e
jmp 0x853e
movq %rax, %rbx
movq 0x1ca00(%rip), %rsi     # 0x24f48
leaq 0x20(%rsp), %rdi
callq 0x62c0
leaq 0xa0(%rsp), %rdi
callq 0x6110
movq %rbx, %rdi
callq 0x6700