// File: /workspace/github_cpp_makefile_star2_O2/Se6[P]CmdLineArgs/./CmdLineArgs.h
// Function: CmdLineArgs::usage[abi:cxx11]()
std::string CmdLineArgs::usage()
{
    // First find the maxim size of the arguments names:
    std::string::size_type left_size=0;
    for( auto pos=usage_.begin(); pos!=usage_.end(); ++pos ) {
        left_size = std::max(left_size,pos->first.size());
    }
    left_size += 5;

    std::string usage(usage_intro_ + "\n");
    for( auto pos=usage_.begin(); pos!=usage_.end(); ++pos ) {

        if(pos->first == "SEP"){
            usage += pos->second;
            usage += "\n";
        }else{
            usage += pos->first;
            if(pos->first.size()<left_size)
                usage += std::string(left_size-pos->first.size(),' ');
            std::string right(pos->second);
            std::string::size_type idx=0;
            while( (idx = right.find('\n',idx)) != std::string::npos){
                right.insert(idx+1,std::string(left_size,' '));
                idx += left_size;
            }
            usage += right;
            usage += '\n';
        }
    }

    usage += usage_outro_;

    return usage;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdi, %rbp
movq 0x58(%rsi), %rax
movq %rsi, 0x8(%rsp)
movq 0x60(%rsi), %rcx
xorl %r15d, %r15d
cmpq %rcx, %rax
je 0x4613
movq 0x8(%rax), %rdx
cmpq %rdx, %r15
cmovbeq %rdx, %r15
addq $0x40, %rax
jmp 0x45fd
addq $0x5, %r15
movq 0x8(%rsp), %rbx
leaq 0x18(%rbx), %rsi
leaq 0x3bc6(%rip), %rdx      # 0x81ed
movq %rbp, %rdi
callq 0x56c1
movq 0x58(%rbx), %rdi
leaq 0x18(%rsp), %r12
pushq $0xa
popq %r14
leaq 0x38(%rsp), %rbx
movq %rbp, (%rsp)
movq 0x8(%rsp), %rax
cmpq 0x60(%rax), %rdi
je 0x475c
movq %rdi, %r13
leaq 0x3a5a(%rip), %rsi      # 0x80b8
callq 0x56f9
testb %al, %al
movq %r13, 0x10(%rsp)
je 0x468c
leaq 0x20(%r13), %rsi
movq %rbp, %rdi
callq 0x33e0
movq %rbp, %rdi
leaq 0x3b6b(%rip), %rsi      # 0x81ed
callq 0x33d0
jmp 0x474e
movq %rbp, %rdi
movq %r13, %rsi
callq 0x33e0
movq %r15, %rsi
movq 0x10(%rsp), %rax
subq 0x8(%rax), %rsi
jbe 0x46cd
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r12, %rdi
pushq $0x20
popq %rdx
callq 0x3250
movq %rbp, %rdi
movq %r12, %rsi
callq 0x33e0
movq %r12, %rdi
callq 0x30e0
movq 0x10(%rsp), %rax
leaq 0x20(%rax), %rsi
movq %r12, %rdi
callq 0x32a0
xorl %r13d, %r13d
movq %r12, %rdi
movl %r14d, %esi
movq %r13, %rdx
callq 0x3280
cmpq $-0x1, %rax
je 0x472c
movq %rax, %r13
leaq 0x48(%rsp), %rax
movq %rax, 0x38(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
pushq $0x20
popq %rdx
callq 0x3250
leaq 0x1(%r13), %rsi
movq %r12, %rdi
movq %rbx, %rdx
callq 0x3310
movq %rbx, %rdi
callq 0x30e0
addq %r15, %r13
jmp 0x46e1
movq (%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
callq 0x33e0
movq %rbp, %rdi
movl %r14d, %esi
callq 0x31e0
movq %r12, %rdi
callq 0x30e0
movq 0x10(%rsp), %rdi
addq $0x40, %rdi
jmp 0x4645
movq 0x8(%rsp), %rsi
addq $0x38, %rsi
movq %rbp, %rdi
callq 0x33e0
movq %rbp, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4799
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x30e0
jmp 0x47be
jmp 0x4799
movq %rax, %rbx
jmp 0x47ba
jmp 0x479e
movq %rax, %rbx
jmp 0x47be
movq %rax, %rbx
jmp 0x47b0
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x30e0
leaq 0x18(%rsp), %rdi
callq 0x30e0
movq (%rsp), %rbp
movq %rbp, %rdi
callq 0x30e0
movq %rbx, %rdi
callq 0x3390