// File: /workspace/github_cpp_makefile_star2_O3/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 0x28(%rdi), %rax
movq %rdi, -0x38(%rbp)
cmpq %rax, 0x30(%rdi)
je 0x168ec
movl $0x17, -0x2c(%rbp)
movl $0x1, %r12d
xorl %ecx, %ecx
leaq -0x78(%rbp), %r14
shlq $0x4, %rcx
movq (%rax,%rcx), %r15
testq %r15, %r15
je 0x16985
leaq -0x200(%rbp), %rdi
callq 0xb340
movl $0x2, %edx
leaq -0x1f0(%rbp), %rdi
leaq 0x1ccb9(%rip), %rsi     # 0x334b0
callq 0xb500
leaq -0x58(%rbp), %rdi
movq %r15, %rsi
callq 0x15bc2
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x1f0(%rbp), %rdi
callq 0xb500
movq %r14, %rbx
movb $0x20, -0x78(%rbp)
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0xb500
movq %rax, %r13
movq %rbx, %rdi
movq %r15, %rsi
callq 0x15d08
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
movq %r13, %rdi
callq 0xb500
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x16863
callq 0xb430
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x16875
callq 0xb430
leaq -0x58(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0xb740
movl -0x50(%rbp), %r15d
movl -0x2c(%rbp), %eax
cmpl %r15d, %eax
cmoval %eax, %r15d
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x168a5
callq 0xb430
leaq -0x200(%rbp), %rdi
movq 0x356c5(%rip), %rsi     # 0x4bf78
callq 0xb380
leaq -0x180(%rbp), %rdi
callq 0xb170
movl %r12d, %ecx
movq -0x38(%rbp), %rdx
movq 0x28(%rdx), %rax
movq 0x30(%rdx), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
incl %r12d
movl %r15d, -0x2c(%rbp)
cmpq %rcx, %rdx
ja 0x167c7
jmp 0x168f2
movl $0x17, %r15d
movq -0x38(%rbp), %rbx
movq 0x68(%rbx), %rcx
cmpq %rcx, 0x70(%rbx)
je 0x16940
movl $0x1, %r14d
xorl %edx, %edx
shlq $0x4, %rdx
movq (%rcx,%rdx), %rdi
testq %rdi, %rdi
je 0x16966
callq 0x1678e
cmpl %eax, %r15d
cmoval %r15d, %eax
movl %r14d, %edx
movq 0x68(%rbx), %rcx
movq 0x70(%rbx), %rsi
subq %rcx, %rsi
sarq $0x4, %rsi
incl %r14d
movl %eax, %r15d
cmpq %rdx, %rsi
ja 0x16908
jmp 0x16943
movl %r15d, %eax
movl 0x24(%rbx), %ecx
notl %ecx
addl 0x20(%rbx), %ecx
cmpl %eax, %ecx
cmovael %eax, %ecx
incl %ecx
movl %ecx, %eax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1bcc7(%rip), %rdi     # 0x32634
leaq 0x1bcc8(%rip), %rsi     # 0x3263c
leaq 0x1d12b(%rip), %rcx     # 0x33aa6
movl $0x2af, %edx            # imm = 0x2AF
callq 0xb310
leaq 0x1bca8(%rip), %rdi     # 0x32634
leaq 0x1bca9(%rip), %rsi     # 0x3263c
leaq 0x1d05a(%rip), %rcx     # 0x339f4
movl $0x2a8, %edx            # imm = 0x2A8
callq 0xb310
jmp 0x169c1
jmp 0x169c1
jmp 0x169c6
movq %rax, %rbx
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x169c9
callq 0xb430
jmp 0x169c9
movq %rax, %rbx
jmp 0x169db
movq %rax, %rbx
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x169db
callq 0xb430
movq 0x35596(%rip), %rsi     # 0x4bf78
leaq -0x200(%rbp), %rdi
callq 0xb380
leaq -0x180(%rbp), %rdi
callq 0xb170
movq %rbx, %rdi
callq 0xb7f0