// File: /workspace/github_cpp_makefile_star2_O2/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 $0x198, %rsp            # imm = 0x198
movq %rsi, %r13
movq %rdi, (%rsp)
leaq 0x10(%rsp), %rdi
callq 0x62a0
leaq 0x20(%rsp), %r15
pushq $0x20
popq %rbp
pushq $0x2b
popq %r12
movq %r13, 0x8(%rsp)
movq (%r13), %r13
cmpq 0x8(%rsp), %r13
je 0x7e48
movq 0x10(%r13), %rsi
movq %r15, %rdi
callq 0x6340
movq 0x10(%r13), %rax
movl 0x20(%rax), %eax
cmpq $0x3, %rax
jae 0x7c4a
leaq 0x1094d(%rip), %rcx     # 0x18588
movslq (%rcx,%rax,4), %rsi
addq %rcx, %rsi
movq %r15, %rdi
callq 0x6370
movq 0x10(%r13), %rax
cmpq $0x0, 0x80(%rax)
je 0x7cc0
movq %r15, %rdi
movl %ebp, %esi
callq 0x6480
movq %rax, %r14
movq 0x10(%r13), %rax
movq 0x80(%rax), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movl %eax, %esi
movq %r14, %rdi
callq 0x6280
movq %rax, %rdi
leaq 0x106e1(%rip), %rsi     # 0x1836b
callq 0x6370
movq %rax, %r14
movq 0x10(%r13), %rax
movq 0x80(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movl %eax, %esi
movq %r14, %rdi
callq 0x6280
movq %rax, %rdi
leaq 0x106b8(%rip), %rsi     # 0x1836f
callq 0x6370
movq 0x10(%r13), %rax
cmpq $0x0, 0x40(%rax)
je 0x7d78
cmpq $0x0, 0x70(%rax)
je 0x7d78
movq %r15, %rdi
movl %ebp, %esi
callq 0x6480
movq 0x10(%r13), %rcx
movq 0x40(%rcx), %rcx
movl 0x8(%rcx), %esi
movq %rax, %rdi
callq 0x6280
movq %rax, %rdi
pushq $0x78
popq %rsi
callq 0x6480
movq 0x10(%r13), %rcx
movq 0x40(%rcx), %rcx
movl 0xc(%rcx), %esi
movq %rax, %rdi
callq 0x6280
movq %r15, %rdi
movl %r12d, %esi
callq 0x6480
movq 0x10(%r13), %rcx
movq 0x70(%rcx), %rcx
movl (%rcx), %esi
movq %rax, %rdi
callq 0x66d0
movq %rax, %rdi
movl %r12d, %esi
callq 0x6480
movq 0x10(%r13), %rcx
movq 0x70(%rcx), %rcx
movl 0x4(%rcx), %esi
movq %rax, %rdi
callq 0x66d0
movq %r15, %rdi
movl %ebp, %esi
callq 0x6480
movq 0x10(%r13), %rcx
movq 0x40(%rcx), %rcx
movl 0x10(%rcx), %esi
movq %rax, %rdi
callq 0x6280
movq %rax, %rdi
leaq 0x105ff(%rip), %rsi     # 0x18372
callq 0x6370
movq %r15, %rdi
callq 0x61d0
movq 0x10(%r13), %rbx
addq $0x28, %rbx
movq %rbx, %r14
movq (%r14), %r14
cmpq %rbx, %r14
je 0x7c0c
movq 0x10(%r13), %rax
movq 0x10(%r14), %rcx
cmpq 0x40(%rax), %rcx
movl %ebp, %esi
pushq $0x2a
popq %rax
cmovel %eax, %esi
movq %r15, %rdi
callq 0x6480
movq 0x10(%r13), %rax
movq 0x10(%r14), %rcx
cmpq 0x50(%rax), %rcx
movl %ebp, %esi
cmovel %r12d, %esi
movq %r15, %rdi
callq 0x6480
movq 0x10(%r13), %rax
movq 0x10(%r14), %rcx
xorl %esi, %esi
cmpq 0x60(%rax), %rcx
sete %sil
orl $0x20, %esi
movq %r15, %rdi
callq 0x6480
movq 0x10(%r14), %rax
movl 0x8(%rax), %esi
movq %r15, %rdi
callq 0x6280
movq %rax, %rdi
pushq $0x78
popq %rsi
callq 0x6480
movq 0x10(%r14), %rcx
movl 0xc(%rcx), %esi
movq %rax, %rdi
callq 0x6280
movq %rax, %rdi
movl %ebp, %esi
callq 0x6480
movq 0x10(%r14), %rcx
movl 0x10(%rcx), %esi
movq %rax, %rdi
callq 0x6280
movq %rax, %rdi
leaq 0x1053c(%rip), %rsi     # 0x18372
callq 0x6370
movq %r15, %rdi
callq 0x61d0
jmp 0x7d8b
leaq 0x10526(%rip), %rsi     # 0x18375
movq %r15, %rdi
callq 0x6370
movq (%rsp), %rbx
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
callq 0x6620
leaq 0x10(%rsp), %rdi
callq 0x62d0
movq %rbx, %rax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x7e8b
jmp 0x7e8b
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x62d0
movq %rbx, %rdi
callq 0x6710