// File: /workspace/github_cpp_makefile_star2_O1/gdaws[P]process-monitor/program_arguments.cpp
// Function: program_arguments::parser::help(char const*)
void parser::help(const char * program_name)
{
    std::cout<<"Usage: "<<program_name<<" [OPTION]... ";
    
     for(unsigned int i = 0; i < m_arguments.size(); i++)
    {
        std::cout<<(i > 0 ? " " : "" )
            <<uppercase(m_arguments[i].value_name)
            <<(i >= (m_arguments.size() - m_argument_repeat_last) ? "..." : "");
    }
    std::cout<<std::endl<<m_program_description<<std::endl;
    
    std::vector<options_group>::const_iterator group = m_groups.begin();
    
    for(; group != m_groups.end(); group++)
    {
        if(group->description) std::cout<<group->description<<":"<<std::endl;

        std::vector<option>::const_iterator option = group->options.begin();
        for(; option != group->options.end(); option++)
        {
            std::string name;
            std::string long_name;
            std::string description;
            
            if(option->name)
            {
                name = '-';
                name+= option->name;
            }
            
            if(option->verbose_name)
            {
                long_name = "--";
                long_name+= option->verbose_name;
                
                if(option->value_name)
                {
                    long_name += '=';
                    long_name += uppercase(option->value_name);
                }
            }
            
            if(option->description)
            {
                description = option->description;
            }
            
            name += std::string(std::max<int>(0, 2 - name.length()), ' ');
            long_name+=std::string(std::max<int>(0,22-long_name.length()), ' ');
            
            std::cout<<" "<<name<<", "<<long_name<<" "<<description<<std::endl;
        }
        
        std::cout<<std::endl;
    }
    
    std::cout<<std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rsi, %rbx
movq %rdi, %r15
movq 0x5328(%rip), %r14      # 0x8fc8
leaq 0x2472(%rip), %rsi      # 0x6119
movl $0x7, %edx
movq %r14, %rdi
callq 0x2200
testq %rbx, %rbx
je 0x3cd5
movq %rbx, %rdi
callq 0x20e0
movq 0x5300(%rip), %rdi      # 0x8fc8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2200
jmp 0x3ced
movq (%r14), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x22d0
movq 0x52d4(%rip), %rdi      # 0x8fc8
leaq 0x2426(%rip), %rsi      # 0x6121
movl $0xd, %edx
callq 0x2200
movq 0x80(%r15), %rax
cmpq 0x78(%r15), %rax
movq %r15, 0x68(%rsp)
je 0x3e29
movl $0x1, %r14d
xorl %r13d, %r13d
leaq 0x240c(%rip), %rbp      # 0x6137
movq 0x5296(%rip), %rbx      # 0x8fc8
leaq 0x48(%rsp), %r12
xorl %edx, %edx
cmpl $0x1, %r14d
setne %dl
movq %rbp, %rsi
leaq 0x23ec(%rip), %rax      # 0x6136
cmovneq %rax, %rsi
movq %rbx, %rdi
callq 0x2200
movq 0x78(%r15), %rax
movq %r13, %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rsi
movq %r12, %rdi
leaq 0x70(%rsp), %rdx
callq 0x46c4
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x43ec
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2200
movq 0x68(%rsp), %rdx
movq 0x80(%rdx), %rcx
subq 0x78(%rdx), %rcx
sarq $0x4, %rcx
movslq 0x98(%rdx), %rdx
subq %rdx, %rcx
xorl %edx, %edx
cmpq %r13, %rcx
setbe %dl
leaq 0x2371(%rip), %rsi      # 0x612f
cmovaq %rbp, %rsi
leaq (%rdx,%rdx,2), %rdx
movq %rax, %rdi
callq 0x2200
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3dea
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x3e06
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x68(%rsp), %r15
movq 0x80(%r15), %rax
subq 0x78(%r15), %rax
movl %r14d, %r13d
sarq $0x4, %rax
incl %r14d
cmpq %r13, %rax
ja 0x3d37
movq 0x5198(%rip), %rbx      # 0x8fc8
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movq %rax, %rbx
movq 0xa0(%r15), %r14
testq %r14, %r14
je 0x3e7e
movq %r14, %rdi
callq 0x20e0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x2200
jmp 0x3e97
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %rbx, %rdi
addq %rax, %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x22d0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movq 0x60(%r15), %r12
cmpq 0x68(%r15), %r12
movq 0x50fb(%rip), %r14      # 0x8fc8
je 0x42a3
leaq 0x38(%rsp), %rbp
xorl %r15d, %r15d
leaq 0x48(%rsp), %r13
movq (%r12), %rbx
testq %rbx, %rbx
je 0x3f3a
movq %rbx, %rdi
callq 0x20e0
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x2200
movl $0x1, %edx
movq %r14, %rdi
leaq 0x2225(%rip), %rsi      # 0x6133
callq 0x2200
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movq %r12, %rax
movq 0x8(%r12), %r12
movq %rax, 0x90(%rsp)
cmpq 0x10(%rax), %r12
je 0x4261
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movb %r15b, 0x18(%rsp)
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %r15, 0x50(%rsp)
movb %r15b, 0x58(%rsp)
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq %r15, 0x78(%rsp)
movb %r15b, 0x80(%rsp)
cmpb %r15b, (%r12)
je 0x3fc4
movl $0x1, %ecx
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
movl $0x2d, %r8d
callq 0x2320
movsbl (%r12), %esi
leaq 0x8(%rsp), %rdi
callq 0x2180
cmpq $0x0, 0x8(%r12)
je 0x4087
movq 0x50(%rsp), %rdx
movl $0x2, %r8d
movq %r13, %rdi
xorl %esi, %esi
leaq 0x20c0(%rip), %rcx      # 0x60a7
callq 0x2270
movq 0x8(%r12), %rsi
movq %r13, %rdi
callq 0x2330
cmpq $0x0, 0x10(%r12)
je 0x4087
movq %r13, %rdi
movl $0x3d, %esi
callq 0x2180
movq 0x10(%r12), %rsi
leaq 0x98(%rsp), %rbx
movq %rbx, %rdi
leaq 0x7(%rsp), %rdx
callq 0x46c4
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x43ec
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r13, %rdi
callq 0x2090
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4062
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x4087
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x18(%r12), %rbx
testq %rbx, %rbx
je 0x40ba
movq 0x78(%rsp), %r14
movq %rbx, %rdi
callq 0x20e0
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rdx
movq 0x4f19(%rip), %r14      # 0x8fc8
movq %rbx, %rcx
movq %rax, %r8
callq 0x2270
movl $0x2, %esi
subl 0x10(%rsp), %esi
testl %esi, %esi
cmovlel %r15d, %esi
movq %rbp, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x20, %edx
callq 0x2210
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rdi
callq 0x2090
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4108
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21d0
movl $0x16, %esi
subl 0x50(%rsp), %esi
testl %esi, %esi
cmovlel %r15d, %esi
movq %rbp, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
movl $0x20, %edx
callq 0x2210
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r13, %rdi
callq 0x2090
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4154
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21d0
movl $0x1, %edx
movq %r14, %rdi
leaq 0x1fd3(%rip), %rsi      # 0x6136
callq 0x2200
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r14, %rdi
callq 0x2200
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x1fa9(%rip), %rsi      # 0x6135
callq 0x2200
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %rbx, %rdi
callq 0x2200
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x1f81(%rip), %rsi      # 0x6136
callq 0x2200
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
movq %rbx, %rdi
callq 0x2200
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x4218
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x4234
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4250
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21d0
addq $0x28, %r12
movq 0x90(%rsp), %rax
jmp 0x3f4a
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
movq 0x90(%rsp), %r12
addq $0x20, %r12
movq 0x68(%rsp), %rax
cmpq 0x68(%rax), %r12
jne 0x3ee0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2110
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x43e4
movq %rax, %rbx
jmp 0x4308
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4308
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x43e4
movq 0x58(%rsp), %rsi
jmp 0x43dc
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4344
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x4344
movq %rax, %rbx
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x438a
movq 0xa8(%rsp), %rsi
jmp 0x437b
jmp 0x4387
jmp 0x4369
jmp 0x4387
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x438a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x438a
jmp 0x4387
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x43ac
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x43c8
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x43e4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21d0
movq %rbx, %rdi
callq 0x22f0