// File: /workspace/github_cpp_makefile_star2_O2/cmaureir[P]strip-packing/scattersearch.cpp
// Function: check_flags(int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool check_flags(int argc, char *argv[], string &path){

    po::options_description desc("Allowed options");
    desc.add_options()
        ("help,h"     , "Shows help message")
        ("input,i"    , po::value<std::string>() , "Path to the input file")
    ;

    po::variables_map vm;
    po::store(po::parse_command_line(argc, argv, desc), vm);
    po::notify(vm);

    if (vm.count("help")) {
        cout << desc << endl;
        return false;
    }

    if (vm.count("input")) {
        path = vm["input"].as<std::string>();
        cout << "Using input file: " << path << endl;
    } else { cout << "You must set the «input file»" << endl; cout << desc << endl; return false;}


    return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq %rdx, %rbx
movq %rsi, %r14
movl %edi, %ebp
leaq 0x5e18(%rip), %rsi      # 0xb030
leaq 0x58(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x7286
movq 0xbd82(%rip), %rax      # 0x10fb0
movl (%rax), %edx
movl %edx, %ecx
shrl %ecx
leaq 0xf8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x4320
leaq 0x58(%rsp), %rdi
callq 0x40f0
leaq 0xf8(%rsp), %rdi
callq 0x42c0
leaq 0x58(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x5dd4(%rip), %rsi      # 0xb040
leaq 0x5dd4(%rip), %rdx      # 0xb047
callq 0x4470
movq %rax, %r15
callq 0x72c1
leaq 0x5dd3(%rip), %rsi      # 0xb05a
leaq 0x5dd4(%rip), %rcx      # 0xb062
movq %r15, %rdi
movq %rax, %rdx
callq 0x44b0
leaq 0x58(%rsp), %rdi
callq 0x40d0
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %r9
movaps %xmm0, (%r9)
movaps %xmm0, 0x10(%r9)
leaq 0x8(%rsp), %rdi
leaq 0xf8(%rsp), %rcx
movl %ebp, %esi
movq %r14, %rdx
xorl %r8d, %r8d
callq 0x72c8
leaq 0x8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
xorl %edx, %edx
callq 0x4430
leaq 0x8(%rsp), %rdi
callq 0x758a
leaq 0x30(%rsp), %rdi
callq 0x7378
leaq 0x58(%rsp), %rdi
callq 0x4140
leaq 0x5d75(%rip), %rsi      # 0xb079
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x7286
leaq 0x68(%rsp), %r14
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x7388
movq %rax, %r15
leaq 0x8(%rsp), %rdi
callq 0x40f0
testq %r15, %r15
je 0x535a
movq 0xbc9a(%rip), %rdi      # 0x10fd8
leaq 0xf8(%rsp), %rsi
callq 0x4060
movq %rax, %rdi
callq 0x4100
xorl %ebx, %ebx
jmp 0x53fd
leaq 0x5d1d(%rip), %rsi      # 0xb07e
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x7286
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x7388
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x40f0
testq %r14, %r14
je 0x5424
leaq 0x5ce4(%rip), %rsi      # 0xb07e
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x7286
leaq 0x58(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x4290
movq %rax, %rdi
callq 0x8de3
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4130
leaq 0x8(%rsp), %rdi
callq 0x40f0
movq 0xbbfc(%rip), %rdi      # 0x10fd8
leaq 0x5ca1(%rip), %rsi      # 0xb084
callq 0x4240
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4200
movb $0x1, %bl
movq %rax, %rdi
callq 0x4100
leaq 0x58(%rsp), %rdi
callq 0x73a2
leaq 0xf8(%rsp), %rdi
callq 0x73d4
movl %ebx, %eax
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0xbbad(%rip), %rdi      # 0x10fd8
leaq 0x5c65(%rip), %rsi      # 0xb097
callq 0x4240
movq %rax, %rdi
callq 0x4100
jmp 0x5337
jmp 0x5491
jmp 0x544c
jmp 0x5491
jmp 0x544c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x40f0
jmp 0x5494
jmp 0x5491
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x758a
jmp 0x546f
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x7378
jmp 0x5494
jmp 0x54a0
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x40f0
jmp 0x54b0
movq %rax, %rbx
jmp 0x54b0
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x73a2
jmp 0x54a3
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0x73d4
movq %rbx, %rdi
callq 0x4440