// File: /workspace/github_cpp_makefile_star2_O2/demon386[P]git-store/./libs/program_options/src/options_description.cpp
// Function: boost::program_options::options_description::get_option_column_width() const
unsigned                                                                    
    options_description::get_option_column_width() const                                
    {
        /* Find the maximum width of the option column */
        unsigned width(23);
        unsigned i; // vc6 has broken for loop scoping
        for (i = 0; i < m_options.size(); ++i)
        {
            const option_description& opt = *m_options[i];
            stringstream ss;
            ss << "  " << opt.format_name() << ' ' << opt.format_parameter();
            width = (max)(width, static_cast<unsigned>(ss.str().size()));            
        }

        /* Get width of groups as well*/
        for (unsigned j = 0; j < groups.size(); ++j)                            
            width = max(width, groups[j]->get_option_column_width());

        /* this is the column were description should start, if first
           column is longer, we go to a new line */
        const unsigned start_of_description_column = m_line_length - m_min_description_length;

        width = (min)(width, start_of_description_column-1);
        
        /* add an additional space to improve readability */
        ++width;
        return width;                                                       
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rdi, %rbx
xorl %r14d, %r14d
pushq $0x17
popq %r15
leaq -0x78(%rbp), %r12
movq %rdi, -0x38(%rbp)
movl %r14d, %r14d
movq 0x28(%rbx), %rdi
movq 0x30(%rbx), %rax
subq %rdi, %rax
sarq $0x4, %rax
cmpq %r14, %rax
jbe 0x156db
movq %r12, %r13
movl %r15d, -0x2c(%rbp)
movq %r14, %rax
shlq $0x4, %rax
addq %rax, %rdi
callq 0x1620c
movq %rax, %r15
leaq -0x200(%rbp), %rdi
callq 0xc370
leaq -0x1f0(%rbp), %rdi
leaq 0x17e4a(%rip), %rsi     # 0x2d488
callq 0xc4c0
movq %rax, %r12
leaq -0x58(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x14cb6
movq %r12, %rdi
movq %rbx, %rsi
callq 0xc460
movq %rax, %rdi
pushq $0x20
popq %rsi
callq 0xc560
movq %rax, %r12
movq %r13, %rdi
movq %r15, %rsi
callq 0x14d98
movq %r12, %rdi
movq %r13, %rsi
callq 0xc460
movq %r13, %r12
movq %r13, %rdi
callq 0xc9a0
leaq -0x58(%rbp), %r15
movq %r15, %rdi
callq 0xc9a0
movq %r15, %rdi
leaq -0x1e8(%rbp), %rsi
callq 0xc7a0
movl -0x50(%rbp), %eax
movl -0x2c(%rbp), %r13d
cmpl %eax, %r13d
cmovbel %eax, %r13d
movq %r15, %rdi
movl %r13d, %r15d
callq 0xc9a0
leaq -0x200(%rbp), %rdi
callq 0xc3b0
incl %r14d
movq -0x38(%rbp), %rbx
jmp 0x155f0
xorl %eax, %eax
movl %eax, %r14d
movq 0x68(%rbx), %rdi
movq 0x70(%rbx), %rax
subq %rdi, %rax
sarq $0x4, %rax
cmpq %r14, %rax
jbe 0x15718
movq %r14, %rax
shlq $0x4, %rax
addq %rax, %rdi
callq 0x16238
movq %rax, %rdi
callq 0x155ca
cmpl %eax, %r15d
cmovbel %eax, %r15d
leal 0x1(%r14), %eax
jmp 0x156dd
movl 0x24(%rbx), %eax
notl %eax
addl 0x20(%rbx), %eax
cmpl %r15d, %eax
cmovael %r15d, %eax
incl %eax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1573f
jmp 0x1573f
movq %rax, %rbx
jmp 0x15760
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0xc9a0
jmp 0x15757
jmp 0x15754
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xc9a0
leaq -0x200(%rbp), %rdi
callq 0xc3b0
movq %rbx, %rdi
callq 0xc850