// File: 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
movq %rsp, %rbp
subq $0x2e0, %rsp            # imm = 0x2E0
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x4560
movq -0x240(%rbp), %rdx
leaq 0xf9b9(%rip), %rsi      # 0x17020
leaq -0xb8(%rbp), %rdi
callq 0xb810
jmp 0x7675
movq 0x1a924(%rip), %rax     # 0x21fa0
movl (%rax), %edx
movl %edx, %ecx
shrl %ecx
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x4410
jmp 0x7697
leaq -0xb8(%rbp), %rdi
callq 0x4190
leaq -0xb9(%rbp), %rdi
callq 0x4340
leaq -0x98(%rbp), %rdi
callq 0x43b0
movq %rax, -0x248(%rbp)
jmp 0x76c4
movq -0x248(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq 0xf957(%rip), %rsi      # 0x17030
leaq 0xf957(%rip), %rdx      # 0x17037
leaq -0xd8(%rbp), %rdi
callq 0x4590
movq %rax, -0x250(%rbp)
jmp 0x76f5
callq 0xb8c0
movq %rax, -0x258(%rbp)
jmp 0x7703
movq -0x258(%rbp), %rdx
movq -0x250(%rbp), %rdi
leaq 0xf932(%rip), %rsi      # 0x1704a
leaq 0xf933(%rip), %rcx      # 0x17052
callq 0x45e0
jmp 0x7726
leaq -0x178(%rbp), %rdi
callq 0x4110
jmp 0x7734
movl -0x8(%rbp), %eax
movl %eax, -0x264(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x260(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x1b0(%rbp)
movaps %xmm0, -0x1c0(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0xba10
jmp 0x7767
movq -0x260(%rbp), %rdx
movl -0x264(%rbp), %esi
leaq -0x1a0(%rbp), %rdi
leaq -0x98(%rbp), %rcx
xorl %r8d, %r8d
leaq -0x1c0(%rbp), %r9
callq 0xb8d0
jmp 0x7793
leaq -0x1a0(%rbp), %rdi
leaq -0x178(%rbp), %rsi
xorl %edx, %edx
callq 0x4540
jmp 0x77aa
leaq -0x1a0(%rbp), %rdi
callq 0xba30
leaq -0x1c0(%rbp), %rdi
callq 0xba50
leaq -0x178(%rbp), %rdi
callq 0x4170
jmp 0x77d0
leaq -0x168(%rbp), %rax
movq %rax, -0x278(%rbp)
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0x4560
movq -0x270(%rbp), %rdx
leaq 0xf86a(%rip), %rsi      # 0x17069
leaq -0x1e0(%rbp), %rdi
callq 0xb810
jmp 0x780d
movq -0x278(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0xba80
movq %rax, -0x280(%rbp)
jmp 0x7829
leaq -0x1e0(%rbp), %rdi
callq 0x4190
leaq -0x1e1(%rbp), %rdi
callq 0x4340
movq -0x280(%rbp), %rax
cmpq $0x0, %rax
je 0x798d
movq 0x1a77f(%rip), %rdi     # 0x21fd8
leaq -0x98(%rbp), %rsi
callq 0x4080
movq %rax, -0x288(%rbp)
jmp 0x786e
movq -0x288(%rbp), %rdi
movq 0x1a71c(%rip), %rsi     # 0x21f98
callq 0x4320
jmp 0x7883
movb $0x0, -0x1(%rbp)
movl $0x1, -0x1e8(%rbp)
jmp 0x7bee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x78c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x4190
leaq -0xb9(%rbp), %rdi
callq 0x4340
jmp 0x7c2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x7c20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x7c14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x7939
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0xba30
leaq -0x1c0(%rbp), %rdi
callq 0xba50
jmp 0x7c14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x797c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x4190
leaq -0x1e1(%rbp), %rdi
callq 0x4340
jmp 0x7c14
leaq -0x168(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x209(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x4560
movq -0x290(%rbp), %rdx
leaq 0xf6b2(%rip), %rsi      # 0x1706e
leaq -0x208(%rbp), %rdi
callq 0xb810
jmp 0x79ca
movq -0x298(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0xba80
movq %rax, -0x2a0(%rbp)
jmp 0x79e6
leaq -0x208(%rbp), %rdi
callq 0x4190
leaq -0x209(%rbp), %rdi
callq 0x4340
movq -0x2a0(%rbp), %rax
cmpq $0x0, %rax
je 0x7b6e
leaq -0x231(%rbp), %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x4560
movq -0x2a8(%rbp), %rdx
leaq 0xf63e(%rip), %rsi      # 0x1706e
leaq -0x230(%rbp), %rdi
callq 0xb810
jmp 0x7a3e
leaq -0x178(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0xbae0
movq %rax, -0x2b0(%rbp)
jmp 0x7a5a
movq -0x2b0(%rbp), %rdi
callq 0xbb10
movq %rax, -0x2b8(%rbp)
jmp 0x7a6f
movq -0x2b8(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x4050
jmp 0x7a81
leaq -0x230(%rbp), %rdi
callq 0x4190
leaq -0x231(%rbp), %rdi
callq 0x4340
movq 0x1a538(%rip), %rdi     # 0x21fd8
leaq 0xf5cd(%rip), %rsi      # 0x17074
callq 0x42e0
movq %rax, -0x2c0(%rbp)
jmp 0x7ab5
movq -0x2c0(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x4290
movq %rax, -0x2c8(%rbp)
jmp 0x7ace
movq -0x2c8(%rbp), %rdi
movq 0x1a4bc(%rip), %rsi     # 0x21f98
callq 0x4320
jmp 0x7ae3
jmp 0x7be0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x7b1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x4190
leaq -0x209(%rbp), %rdi
callq 0x4340
jmp 0x7c14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x7b5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x4190
leaq -0x231(%rbp), %rdi
callq 0x4340
jmp 0x7c14
movq 0x1a463(%rip), %rdi     # 0x21fd8
leaq 0xf50b(%rip), %rsi      # 0x17087
callq 0x42e0
movq %rax, -0x2d0(%rbp)
jmp 0x7b8a
movq -0x2d0(%rbp), %rdi
movq 0x1a400(%rip), %rsi     # 0x21f98
callq 0x4320
jmp 0x7b9f
movq 0x1a432(%rip), %rdi     # 0x21fd8
leaq -0x98(%rbp), %rsi
callq 0x4080
movq %rax, -0x2d8(%rbp)
jmp 0x7bbb
movq -0x2d8(%rbp), %rdi
movq 0x1a3cf(%rip), %rsi     # 0x21f98
callq 0x4320
jmp 0x7bd0
movb $0x0, -0x1(%rbp)
movl $0x1, -0x1e8(%rbp)
jmp 0x7bee
movb $0x1, -0x1(%rbp)
movl $0x1, -0x1e8(%rbp)
leaq -0x178(%rbp), %rdi
callq 0xbb30
leaq -0x98(%rbp), %rdi
callq 0xbb90
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x2e0, %rsp            # imm = 0x2E0
popq %rbp
retq
leaq -0x178(%rbp), %rdi
callq 0xbb30
leaq -0x98(%rbp), %rdi
callq 0xbb90
movq -0xc8(%rbp), %rdi
callq 0x4550
nopl (%rax,%rax)