// File: 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
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x230(%rbp)
movl $0x17, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movq -0x230(%rbp), %rdi
movl -0x10(%rbp), %eax
movq %rax, -0x238(%rbp)
addq $0x28, %rdi
callq 0x26dd0
movq %rax, %rcx
movq -0x238(%rbp), %rax
cmpq %rcx, %rax
jae 0x259ba
movq -0x230(%rbp), %rdi
addq $0x28, %rdi
movl -0x10(%rbp), %eax
movl %eax, %esi
callq 0x26df0
movq %rax, %rdi
callq 0x27240
movq %rax, -0x18(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0xd440
leaq -0x190(%rbp), %rdi
leaq 0x3ac4a(%rip), %rsi     # 0x6047a
callq 0xd610
movq %rax, -0x240(%rbp)
jmp 0x2583e
movq -0x18(%rbp), %rsi
leaq -0x1d0(%rbp), %rdi
callq 0x24900
jmp 0x25850
movq -0x240(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0xd570
movq %rax, -0x248(%rbp)
jmp 0x2586c
movq -0x248(%rbp), %rdi
movl $0x20, %esi
callq 0xd740
movq %rax, -0x250(%rbp)
jmp 0x25886
movq -0x18(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
callq 0x24af0
jmp 0x25898
movq -0x250(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0xd570
jmp 0x258ad
leaq -0x1f0(%rbp), %rdi
callq 0xdca8
leaq -0x1d0(%rbp), %rdi
callq 0xdca8
leaq -0x218(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0xd600
jmp 0x258da
leaq -0x218(%rbp), %rdi
callq 0xd430
movl %eax, -0x1f4(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x1f4(%rbp), %rsi
callq 0x27290
movq %rax, -0x258(%rbp)
jmp 0x25905
movq -0x258(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xc(%rbp)
leaq -0x218(%rbp), %rdi
callq 0xdca8
leaq -0x1a0(%rbp), %rdi
callq 0xd490
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x257c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
jmp 0x259a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
jmp 0x2597d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0xdca8
leaq -0x1d0(%rbp), %rdi
callq 0xdca8
jmp 0x259a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
leaq -0x218(%rbp), %rdi
callq 0xdca8
leaq -0x1a0(%rbp), %rdi
callq 0xd490
jmp 0x25a90
movl $0x0, -0x21c(%rbp)
movq -0x230(%rbp), %rdi
movl -0x21c(%rbp), %eax
movq %rax, -0x260(%rbp)
addq $0x68, %rdi
callq 0x272d0
movq %rax, %rcx
movq -0x260(%rbp), %rax
cmpq %rcx, %rax
jae 0x25a44
movq -0x230(%rbp), %rdi
addq $0x68, %rdi
movl -0x21c(%rbp), %eax
movl %eax, %esi
callq 0x272f0
movq %rax, %rdi
callq 0x27310
movq %rax, %rdi
callq 0x257a0
movl %eax, -0x220(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x27290
movl (%rax), %eax
movl %eax, -0xc(%rbp)
movl -0x21c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x21c(%rbp)
jmp 0x259c4
movq -0x230(%rbp), %rcx
movl 0x20(%rcx), %eax
subl 0x24(%rcx), %eax
movl %eax, -0x224(%rbp)
movl -0x224(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x228(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x27360
movl (%rax), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
movq -0x1a8(%rbp), %rdi
callq 0xdb30
nopl (%rax)