LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/anf/anfpolybori.hpp
// Function: bal::PolyBoRiStreamReader::read_parameter(bal::Anf&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void read_parameter(Anf& anf, const std::string key) {
            const std::string name = read_literal();
            skip_space();
            read_symbol(':');
            skip_space();
            if (is_token(ttDec)) {
                anf.add_parameter(key, name, read_uint32());
            } else {
                anf.add_parameter(key, name, read_quoted());
            };
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq (%rdi), %rax
movq -0x18(%rax), %rsi
addq %rdi, %rsi
leaq -0x38(%rbp), %rdi
callq 0x18938
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
callq 0x2d286
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
pushq $0x3a
popq %rsi
callq 0x18ac2
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
callq 0x2d286
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
pushq $0x1
popq %rsi
callq 0x18644
testb %al, %al
je 0x2d612
movq (%r15), %rax
addq -0x18(%rax), %r15
pushq $-0x1
popq %rdx
movq %r15, %rdi
xorl %esi, %esi
callq 0x1866c
leaq -0x38(%rbp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
movl %eax, %ecx
callq 0x2e5dc
jmp 0x2d645
movq (%r15), %rax
addq -0x18(%rax), %r15
leaq -0x58(%rbp), %rdi
movq %r15, %rsi
callq 0x2d67e
leaq -0x38(%rbp), %rdx
leaq -0x58(%rbp), %rcx
pushq $0x1
popq %r8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2e47c
leaq -0x58(%rbp), %rdi
callq 0xc110
leaq -0x38(%rbp), %rdi
callq 0xc110
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xc110
jmp 0x2d66c
jmp 0x2d669
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/io/textreader.hpp
// Function: TextReader::read_quoted[abi:cxx11]()
std::string read_quoted() {
        load_next_token();
        if (current_token_type_ == ttQuoted) {
            std::string result = current_line_.substr(current_token_pos_ + 1, current_token_len_ - 2);
            skip_token();
            return result;
        } else {
            parse_error("Expect a quoted value");
            return std::string();
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq %rsi, %rdi
callq 0x19176
cmpl $0x7, 0x40(%r14)
jne 0x2d6cf
leaq 0x18(%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x10(%r14), %rcx
incq %rdx
addq $-0x2, %rcx
movq %rbx, %rdi
callq 0xc2b0
movq 0x10(%r14), %rax
addq %rax, 0x8(%r14)
andq $0x0, 0x10(%r14)
andl $0x0, 0x40(%r14)
jmp 0x2d70a
leaq 0xf4cd(%rip), %rsi      # 0x3cba3
leaq -0x40(%rbp), %r15
leaq -0x19(%rbp), %rdx
movq %r15, %rdi
callq 0xc0e0
movq %r14, %rdi
movq %r15, %rsi
callq 0x189ce
leaq -0x40(%rbp), %rdi
callq 0xc110
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
andq $0x0, 0x8(%rbx)
movb $0x0, 0x10(%rbx)
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/cnf/io/cnfdimacs.hpp
// Function: bal::DimacsStreamReader::read_parameters(bal::Cnf&)
void read_parameters(Cnf& cnf) {
            const std::string key = read_literal();
            skip_space();
            read_symbol('=');
            skip_space();
            read_symbol('{');
            skip_space();
            
            read_parameter(cnf, key);
            skip_space();
            while (is_symbol(',')) {
                read_symbol(',');
                skip_space();
                read_parameter(cnf, key);
                skip_space();
            };

            read_symbol('}');
            skip_space();
            read_eol();
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdi), %rax
movq -0x18(%rax), %rsi
addq %rdi, %rsi
leaq -0x48(%rbp), %rdi
callq 0x18938
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x2d286
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
pushq $0x3d
popq %rsi
callq 0x18ac2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x2d286
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
pushq $0x7b
popq %rsi
callq 0x18ac2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x2d286
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xc360
leaq -0x68(%rbp), %r12
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x2de94
pushq $0x2c
popq %r15
leaq -0x88(%rbp), %r13
movq %r12, %rdi
callq 0xc110
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x2d286
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl %r15d, %esi
callq 0x18a92
movq (%rbx), %rcx
movq -0x18(%rcx), %rdi
addq %rbx, %rdi
testb %al, %al
je 0x2dbea
movl %r15d, %esi
callq 0x18ac2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x2d286
movq %r13, %rdi
leaq -0x48(%rbp), %rsi
callq 0xc360
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x2de94
movq %r13, %r12
jmp 0x2db7d
pushq $0x7d
popq %rsi
callq 0x18ac2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x2d286
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
callq 0x18c3c
leaq -0x48(%rbp), %rdi
callq 0xc110
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
jmp 0x2dc3d
jmp 0x2dc44
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
callq 0xc110
jmp 0x2dc47
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/cnf/io/cnfdimacs.hpp
// Function: bal::DimacsStreamReader::read_header(bal::Cnf&)
void read_header(Cnf& cnf) {
            read_token("p");
            skip_space();
            read_token("cnf");
            skip_space();
            variables_size_t variables_size = read_uint32();
            skip_space();
            clauses_size_t clauses_size = read_uint32();
            skip_space();
            read_eol();
            cnf.resize(variables_size, clauses_size);
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq (%rdi), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
leaq 0x992f(%rip), %rsi      # 0x3767d
callq 0x2df96
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
leaq 0x101b8(%rip), %rsi     # 0x3df2b
callq 0x2df96
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
pushq $-0x1
popq %r12
xorl %esi, %esi
movl %r12d, %edx
callq 0x1866c
movl %eax, %r15d
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
xorl %esi, %esi
movl %r12d, %edx
callq 0x1866c
movl %eax, %r12d
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
callq 0x18c3c
movq %rbx, %rdi
movl %r15d, %esi
movl %r12d, %edx
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x2034a
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/io/textreader.hpp
// Function: TextReader::read_sint32()
inline int32_t read_sint32() {
        bool is_negative = is_symbol('-');
        if (is_negative) {
            skip_symbol();
        };
        int64_t result = read_uint32();
        if (is_negative) result = -result;
        
        if (result > INT32_MAX || result < INT32_MIN) {
            parse_error("The signed int 32 bit value is out of bounds");
        };
        return (int32_t)result;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
pushq $0x2d
popq %rsi
callq 0x18a92
movl %eax, %r15d
testb %al, %al
je 0x2de23
movq %rbx, %rdi
callq 0x197ba
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1866c
movl %eax, %eax
movq %rax, %r14
negq %r14
testb %r15b, %r15b
cmoveq %rax, %r14
movslq %r14d, %rax
cmpq %r14, %rax
je 0x2de72
leaq 0xee1f(%rip), %rsi      # 0x3cc6d
leaq -0x40(%rbp), %r15
leaq -0x19(%rbp), %rdx
movq %r15, %rdi
callq 0xc0e0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x189ce
leaq -0x40(%rbp), %rdi
callq 0xc110
movl %r14d, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/cnf/io/cnfdimacs.hpp
// Function: bal::DimacsStreamReader::read_parameter(bal::Cnf&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void read_parameter(Cnf& cnf, const std::string key) {
            const std::string name = read_literal();
            skip_space();
            read_symbol(':');
            skip_space();
            if (is_token(ttDec)) {
                cnf.add_parameter(key, name, read_uint32());
            } else {
                cnf.add_parameter(key, name, read_quoted());
            };
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq (%rdi), %rax
movq -0x18(%rax), %rsi
addq %rdi, %rsi
leaq -0x38(%rbp), %rdi
callq 0x18938
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
callq 0x2d286
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
pushq $0x3a
popq %rsi
callq 0x18ac2
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
callq 0x2d286
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
pushq $0x1
popq %rsi
callq 0x18644
testb %al, %al
je 0x2df2a
movq (%r15), %rax
addq -0x18(%rax), %r15
pushq $-0x1
popq %rdx
movq %r15, %rdi
xorl %esi, %esi
callq 0x1866c
leaq -0x38(%rbp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
movl %eax, %ecx
callq 0x2e5dc
jmp 0x2df5d
movq (%r15), %rax
addq -0x18(%rax), %r15
leaq -0x58(%rbp), %rdi
movq %r15, %rsi
callq 0x2d67e
leaq -0x38(%rbp), %rdx
leaq -0x58(%rbp), %rcx
pushq $0x1
popq %r8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2e47c
leaq -0x58(%rbp), %rdi
callq 0xc110
leaq -0x38(%rbp), %rdi
callq 0xc110
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xc110
jmp 0x2df84
jmp 0x2df81
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/io/textreader.hpp
// Function: TextReader::read_token(char const*)
inline void read_token(const char* value) {
        if (is_token(value))
            skip_token();
        else
            parse_error(std::string("Expect \"") + std::string(value) + std::string("\" token"));
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0xb0, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x18cd6
testb %al, %al
je 0x2dfc9
movq 0x10(%rbx), %rax
addq %rax, 0x8(%rbx)
andq $0x0, 0x10(%rbx)
andl $0x0, 0x40(%rbx)
jmp 0x2e06e
leaq 0x9f90(%rip), %rsi      # 0x37f60
leaq -0x78(%rbp), %rdi
leaq -0x13(%rbp), %rdx
callq 0xc0e0
leaq -0x58(%rbp), %rdi
leaq -0x12(%rbp), %rdx
movq %r14, %rsi
callq 0xc0e0
leaq -0x98(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x58(%rbp), %rdx
callq 0x195f2
leaq 0xec5d(%rip), %rsi      # 0x3cc65
leaq -0x38(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xc0e0
leaq -0xb8(%rbp), %rdi
leaq -0x98(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x195f2
leaq -0xb8(%rbp), %rsi
movq %rbx, %rdi
callq 0x189ce
leaq -0xb8(%rbp), %rdi
callq 0xc110
leaq -0x38(%rbp), %rdi
callq 0xc110
leaq -0x98(%rbp), %rdi
callq 0xc110
leaq -0x58(%rbp), %rdi
callq 0xc110
leaq -0x78(%rbp), %rdi
callq 0xc110
addq $0xb0, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
leaq -0xb8(%rbp), %rdi
callq 0xc110
jmp 0x2e08e
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0xc110
jmp 0x2e09c
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0xc110
jmp 0x2e0ad
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0xc110
jmp 0x2e0bb
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/formula/formula.cpp
// Function: bal::Formula::initialize()
void Formula::initialize() {
        VariableGenerator::reset(0);
        named_variables_.clear();
        parameters_.clear();
        
        add_max_args_ = 0; // 0 means default value
        xor_max_args_ = 0; // 0 means default value
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
andl $0x0, 0x8(%rdi)
addq $0x40, %rdi
callq 0x2eaa0
leaq 0x10(%rbx), %rdi
callq 0x2ead8
andq $0x0, 0x70(%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/formula/formula.cpp
// Function: bal::Formula::add_named_variable(char const*, bal::VariablesArray const&)
void Formula::add_named_variable(const char* const name, const VariablesArray& value) {
        // a copy of value is made here; overwrites any previous value
        auto it = named_variables_.find(name);
        if (it == named_variables_.end()) {
            named_variables_.insert({name, value});
        } else {
            it->second = value;
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rdx, %rbx
movq %rdi, %r15
movq %rsi, -0x30(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0xc0e0
leaq 0x40(%r15), %r14
leaq -0x70(%rbp), %rsi
movq %r14, %rdi
callq 0x2eb10
movq %rax, %r12
leaq -0x70(%rbp), %rdi
callq 0xc110
addq $0x48, %r15
cmpq %r15, %r12
je 0x2e15e
addq $0x40, %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x1c424
jmp 0x2e185
leaq -0x70(%rbp), %r15
leaq -0x30(%rbp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x2e674
movq %r14, %rdi
movq %r15, %rsi
callq 0x2eb9a
leaq -0x70(%rbp), %rdi
callq 0x1f554
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x1f554
jmp 0x2e1b1
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0xc110
jmp 0x2e1b1
movq %rax, %rbx
movq %rbx, %rdi
callq 0xc4c0
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/formula/formula.cpp
// Function: bal::Formula::add_named_variable(char const*, bal::VariablesArray const&, unsigned int)
void Formula::add_named_variable(const char* const name, const VariablesArray& value, const variables_size_t index) {
        auto it = named_variables_.find(name);
        if (it == named_variables_.end()) {
            VariablesArray variable_value(0, value.size());
            variable_value.expand_append_element(index, value);
            named_variables_.insert({name, variable_value});
        } else {
            it->second.expand_append_element(index, value);
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %ecx, %r15d
movq %rdx, %rbx
movq %rdi, %r12
movq %rsi, -0x30(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xc0e0
leaq 0x40(%r12), %r14
leaq -0x90(%rbp), %rsi
movq %r14, %rdi
callq 0x2eb10
movq %rax, %r13
leaq -0x90(%rbp), %rdi
callq 0xc110
addq $0x48, %r12
cmpq %r12, %r13
je 0x2e228
addq $0x40, %r13
movq %r13, %rdi
movl %r15d, %esi
movq %rbx, %rdx
callq 0x2e6ba
jmp 0x2e285
movl 0x8(%rbx), %r13d
leaq -0x50(%rbp), %r12
movq %r12, %rdi
xorl %esi, %esi
callq 0xdf92
movl %r13d, 0x1c(%r12)
movq %r12, %rdi
movl %r15d, %esi
movq %rbx, %rdx
callq 0x2e6ba
leaq -0x90(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x2e742
leaq -0x90(%rbp), %rsi
movq %r14, %rdi
callq 0x2eb9a
leaq -0x90(%rbp), %rdi
callq 0x1f554
leaq -0x50(%rbp), %rdi
callq 0xde58
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x1f554
jmp 0x2e2aa
jmp 0x2e2a7
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0xde58
jmp 0x2e2c9
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0xc110
jmp 0x2e2c9
movq %rax, %rbx
movq %rbx, %rdi
callq 0xc4c0
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/formula/formula.cpp
// Function: bal::Formula::is_variable_named(unsigned int) const
bool Formula::is_variable_named(const variableid_t variable_id) const {
        for (auto vit = named_variables_.begin(); vit != named_variables_.end(); vit++) {
            if (vit->second.contains(variable_id)) {
                return true;
            };
        };
        return false;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %esi, %r14d
movq %rdi, %rbx
movq 0x58(%rdi), %r15
addq $0x48, %rbx
cmpq %rbx, %r15
je 0x2e30c
leaq 0x40(%r15), %rdi
movl %r14d, %esi
callq 0x2e788
testb %al, %al
jne 0x2e30c
movq %r15, %rdi
callq 0xc2e0
movq %rax, %r15
jmp 0x2e2ea
cmpq %rbx, %r15
setne %al
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/formula/formula.cpp
// Function: bal::Formula::named_variable_update_unassigned(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bal::VariablesArray const&)
variables_size_t Formula::named_variable_update_unassigned(const std::string& name, const VariablesArray& source) {
        auto it = named_variables_.find(name);
        if (it != named_variables_.end()) {
            _assert_level_1(source.size() == it->second.size());
            const bal::literalid_t* const p_src = source.data();
            bal::literalid_t* const p_dst = it->second.data();
            variables_size_t changes_count = 0;
            
            for (auto i = 0; i < source.size(); i++) {
                if (literal_t__is_unassigned(p_dst[i]) && !literal_t__is_unassigned(p_src[i])) {
                    p_dst[i] = p_src[i];
                    changes_count++;
                };
            };
            
            return changes_count;
        } else {
            return VARIABLEID_ERROR;
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
addq $0x40, %rdi
callq 0x2eb10
addq $0x48, %r14
cmpq %r14, %rax
je 0x2e3ba
movl 0x8(%rbx), %ecx
cmpl 0x48(%rax), %ecx
jne 0x2e3c4
movq (%rbx), %rdx
movq 0x40(%rax), %rsi
xorl %edi, %edi
xorl %eax, %eax
movl %ecx, %r8d
cmpq %r8, %rdi
jae 0x2e3bf
cmpl $-0x1, (%rsi,%rdi,4)
jne 0x2e3b5
movl (%rdx,%rdi,4), %r8d
cmpl $-0x1, %r8d
je 0x2e3b5
movl %r8d, (%rsi,%rdi,4)
incl %eax
movl 0x8(%rbx), %ecx
incq %rdi
jmp 0x2e394
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
popq %rbx
popq %r14
popq %rbp
retq
leaq 0xf4f7(%rip), %rdi      # 0x3d8c2
leaq 0xf513(%rip), %rsi      # 0x3d8e5
leaq 0xf526(%rip), %rcx      # 0x3d8ff
pushq $0x44
popq %rdx
callq 0xc180
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/formula/formula.cpp
// Function: bal::Formula::named_variables_assign_negations(bal::VariablesArray&) const
void Formula::named_variables_assign_negations(VariablesArray& destination) const {
        literalid_t* data = destination.data();
        // this assigns any negations into variables_
        for (auto vit = named_variables_.begin(); vit != named_variables_.end(); vit++) {
            const literalid_t* const template_ = vit->second.data();
            for (auto j = 0; j < vit->second.size(); j++) {
                if (literal_t__is_variable(template_[j])) {
                    const variableid_t variable_id = literal_t__variable_id(template_[j]);
                    assert(variable_id < destination.size());
                    data[variable_id] = template_[j];
                };
            };
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq (%rsi), %r15
movq 0x58(%rdi), %rax
addq $0x48, %r14
cmpq %r14, %rax
je 0x2e43b
movq 0x40(%rax), %rcx
xorl %edx, %edx
movl 0x48(%rax), %esi
cmpq %rsi, %rdx
jae 0x2e431
movl (%rcx,%rdx,4), %esi
leal 0x1(%rsi), %edi
cmpl $0x3, %edi
jb 0x2e42c
movl %esi, %edi
shrl %edi
decl %edi
cmpl 0x8(%rbx), %edi
jae 0x2e446
movl %edi, %edi
movl %esi, (%r15,%rdi,4)
incq %rdx
jmp 0x2e408
movq %rax, %rdi
callq 0xc2e0
jmp 0x2e3fd
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0xf51f(%rip), %rdi      # 0x3d96c
leaq 0xf491(%rip), %rsi      # 0x3d8e5
leaq 0xf532(%rip), %rcx      # 0x3d98d
pushq $0x61
popq %rdx
callq 0xc180
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/formula/formula.cpp
// Function: bal::Formula::add_parameter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
void Formula::add_parameter(const std::string& key, const std::string& name,
                       const std::string& value, const bool b_quote) {
        std::string item = (b_quote) ?
        std::string(name).append(": \"").append(value).append("\"") :
        std::string(name).append(": ").append(value);
        
        auto it = parameters_.find(key);
        if (it != parameters_.end()) {
            if (it->second.size() > 0) {
                it->second.append(", ");
            };
            it->second.append(item);
        } else {
            parameters_.insert({key, item});
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movl %r8d, %r15d
movq %rcx, %r12
movq %rsi, %rbx
movq %rdi, %r14
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rdx, %rsi
testl %r8d, %r8d
je 0x2e4db
callq 0xc360
leaq 0xf522(%rip), %rsi      # 0x3d9d9
movq %r13, %rdi
callq 0xc4f0
movq %rax, %rdi
movq %r12, %rsi
callq 0xc510
leaq 0xe712(%rip), %rsi      # 0x3cbe3
movq %rax, %rdi
callq 0xc4f0
jmp 0x2e4fa
callq 0xc360
leaq 0x9e22(%rip), %rsi      # 0x38309
movq %r13, %rdi
callq 0xc4f0
movq %rax, %rdi
movq %r12, %rsi
callq 0xc510
leaq -0x68(%rbp), %rdi
movq %rax, %rsi
callq 0xc360
testb %r15b, %r15b
leaq -0x48(%rbp), %rdi
callq 0xc110
leaq 0x10(%r14), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2edfa
movq %rax, %r12
addq $0x18, %r14
cmpq %r14, %rax
je 0x2e558
movq %r12, %rax
addq $0x40, %r12
cmpq $0x0, 0x48(%rax)
je 0x2e54a
leaq 0x9dd4(%rip), %rsi      # 0x38316
movq %r12, %rdi
callq 0xc4f0
leaq -0x68(%rbp), %rsi
movq %r12, %rdi
callq 0xc510
jmp 0x2e586
leaq -0xa8(%rbp), %rdi
leaq -0x68(%rbp), %rdx
movq %rbx, %rsi
callq 0x2e7b8
leaq -0xa8(%rbp), %rsi
movq %r15, %rdi
callq 0x2ee84
leaq -0xa8(%rbp), %rdi
callq 0x1f5ec
leaq -0x68(%rbp), %rdi
callq 0xc110
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0xa8(%rbp), %rdi
callq 0x1f5ec
jmp 0x2e5ca
jmp 0x2e5c7
movq %rax, %rbx
testb %r15b, %r15b
jmp 0x2e5c1
jmp 0x2e5be
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
jmp 0x2e5ce
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/variables/variablesarray.hpp
// Function: bal::VariablesArray::expand_append_element(unsigned int, bal::VariablesArray const&)
inline void expand_append_element(const variables_size_t index, const VariablesArray& value) {
            assert(value.size_ == element_size_);
            if ((index + 1) * element_size_ > size_) {
                // fill in the missing elements with unassigned literals
                append(LITERALID_UNASSIGNED, (index + 1) * element_size_ - size_);
            };
            std::copy(value.data_, value.data_ + value.size_, data_ + (index * element_size_));
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl 0x8(%rdx), %eax
cmpl 0x1c(%rdi), %eax
jne 0x2e724
movq %rdx, %r15
movl %esi, %ebx
movq %rdi, %r14
leal 0x1(%rbx), %edx
imull %eax, %edx
subl 0x8(%rdi), %edx
jbe 0x2e6ee
pushq $-0x1
popq %rsi
movq %r14, %rdi
callq 0x10204
movl 0x8(%r15), %eax
testl %eax, %eax
je 0x2e719
movl %eax, %edx
imull 0x1c(%r14), %ebx
movq (%r15), %rsi
shlq $0x2, %rbx
addq (%r14), %rbx
shlq $0x2, %rdx
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xc440
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0xf2b2(%rip), %rdi      # 0x3d9dd
leaq 0x2ffa(%rip), %rsi      # 0x3172c
leaq 0xf2c1(%rip), %rcx      # 0x3d9fa
pushq $0x6d
popq %rdx
callq 0xc180
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/variables/variablesarray.hpp
// Function: bal::VariablesArray::contains(unsigned int) const
inline bool contains(const variableid_t variable_id) const {
            for (container_size_t i = 0; i < size_; i++) {
                if (literal_t__variable_id(data_[i]) == variable_id) {
                    return true;
                };
            };
            return false;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl 0x8(%rdi), %eax
movq (%rdi), %rcx
xorl %edi, %edi
movq %rdi, %rdx
cmpq %rdi, %rax
je 0x2e7af
movl (%rcx,%rdx,4), %r8d
shrl %r8d
decl %r8d
leaq 0x1(%rdx), %rdi
cmpl %esi, %r8d
jne 0x2e794
cmpq %rax, %rdx
setb %al
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/main.cpp
// Function: print_help()
void print_help() {
    print_version();
    std::cout << APP_DESCRIPTION << std::endl;
    std::cout << APP_USAGE_SHORT;
    std::cout << APP_USAGE_LONG;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
callq 0x2f0e0
movq 0x21e80(%rip), %rbx     # 0x50fb0
leaq 0xe99b(%rip), %rsi      # 0x3dad2
movq %rbx, %rdi
callq 0xc290
movq %rax, %rdi
callq 0xc120
leaq 0xe9ea(%rip), %rsi      # 0x3db38
movq %rbx, %rdi
callq 0xc290
leaq 0xeae1(%rip), %rsi      # 0x3dc3e
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0xc290
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/main.cpp
// Function: generate_output_file_name_var(CGenCommandInfo&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void generate_output_file_name_var(CGenCommandInfo& info, const std::string variable_name, std::string& output_file_name) {
    auto map_entry = info.variables_map.find(variable_name);
    if (map_entry != info.variables_map.end()) {
        std::string prefix = variable_name;
        transform(prefix.begin(), prefix.end(), prefix.begin(), ::tolower);
        output_file_name += prefix;
        
        const CGenVariableInfo* p_value = &(map_entry->second);
        if (p_value->except_count > 0) {
            output_file_name += "v" + std::to_string(p_value->except_count);
        } else if (p_value->except_range_size) {
            output_file_name += "v" + std::to_string(p_value->except_range_size);
        } else {
            output_file_name += "c";
        };
    };
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r12
addq $0x18, %rdi
callq 0x19c10
addq $0x20, %r12
cmpq %r12, %rax
je 0x2f265
movq %rax, %r14
leaq -0x88(%rbp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0xc360
movq (%r12), %r15
movq 0x8(%r12), %r12
xorl %r13d, %r13d
cmpq %r13, %r12
je 0x2f1d4
movsbl (%r15,%r13), %edi
callq 0xc390
movb %al, (%r15,%r13)
incq %r13
jmp 0x2f1bc
leaq -0x88(%rbp), %rsi
movq %rbx, %rdi
callq 0xc510
movl 0x48(%r14), %esi
testl %esi, %esi
je 0x2f216
leaq -0x48(%rbp), %rdi
callq 0x188f9
leaq 0xb32c(%rip), %rsi      # 0x3a527
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x1c480
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0xc510
jmp 0x2f247
movl 0x50(%r14), %esi
testl %esi, %esi
je 0x2f274
leaq -0x48(%rbp), %rdi
callq 0x188f9
leaq 0xb2f9(%rip), %rsi      # 0x3a527
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x1c480
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0xc510
leaq -0x68(%rbp), %rdi
callq 0xc110
leaq -0x48(%rbp), %rdi
callq 0xc110
leaq -0x88(%rbp), %rdi
callq 0xc110
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xec6a(%rip), %rsi      # 0x3dee5
movq %rbx, %rdi
callq 0xc4f0
jmp 0x2f259
jmp 0x2f2ab
jmp 0x2f28d
jmp 0x2f29b
jmp 0x2f2ab
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0xc110
jmp 0x2f29e
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0xc110
jmp 0x2f2ae
jmp 0x2f2ab
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/variables/variablesio.cpp
// Function: bal::write_sequence_parameters_(std::ostream&, unsigned long, int)
void write_sequence_parameters_(std::ostream& stream,
                                    const size_t sequence_size, const int sequence_step) {
        if (sequence_size > 1) {
            stream << "/" << std::dec << sequence_size;
            if (sequence_step != 0) {
                stream << "/" << std::dec << sequence_step;
            };
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
cmpq $0x2, %rsi
jb 0x2fd88
movl %edx, %ebx
movq %rsi, %r15
movq %rdi, %r14
leaq 0x2037(%rip), %rsi      # 0x31d5e
callq 0xc290
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
movq %rax, %rdi
movq %r15, %rsi
callq 0xc190
testl %ebx, %ebx
je 0x2fd88
leaq 0x2007(%rip), %rsi      # 0x31d5e
movq %r14, %rdi
callq 0xc290
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
movq %rax, %rdi
movl %ebx, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xc4a0
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/variables/variablesio.cpp
// Function: bal::get_variables_sequence_(unsigned int const*, unsigned long, unsigned long&, int&)
inline void get_variables_sequence_(const literalid_t* const data, const size_t size,
                                              size_t& sequence_size, int& sequence_step) {
        sequence_size = 0;
        sequence_step = 0;
        
        if (size > 0 && !literal_t__is_constant(data[0])) {
            sequence_size = 1;
            if (size > 1) {
                if (literal_t__is_variable(data[0]) && literal_t__is_variable(data[1])) {
                    // determine direction
                    sequence_step = data[sequence_size] - data[sequence_size-1];
                    // difference 1 means opposit negation, i.e. no sequence
                    if ((sequence_step & 0x1) == 0) {
                        // determine length, already have 2
                        sequence_size = 2;
                        while (sequence_size < size) {
                            if (literal_t__is_variable(data[sequence_size])) {
                                if (data[sequence_size - 1] + sequence_step == data[sequence_size]) {
                                    sequence_size++;
                                    continue;
                                };
                            };
                            break;
                        };
                        // two variables with step > 1 (2) is not a sequence
                        if (sequence_size == 2 && sequence_step != 2 && sequence_step != -2) {
                            sequence_size = 1;
                        };
                    };
                    // 2 between literals, 1 between variables
                    sequence_step >>= 1;
                } else if (literal_t__is_unassigned(data[0]) && literal_t__is_unassigned(data[1])) {
                    // simply count the unassigned literals
                    while (sequence_size < size && literal_t__is_unassigned(data[sequence_size])) {
                        sequence_size++;
                    };
                };
            };
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
andq $0x0, (%rdx)
andl $0x0, (%rcx)
testq %rsi, %rsi
je 0x304f1
movl (%rdi), %r8d
cmpl $0x2, %r8d
jb 0x304f1
movq $0x1, (%rdx)
cmpq $0x1, %rsi
je 0x304f1
movl 0x4(%rdi), %eax
cmpl $-0x1, %r8d
je 0x304ae
leal 0x1(%rax), %r9d
cmpl $0x3, %r9d
jb 0x304f1
subl %r8d, %eax
movl %eax, (%rcx)
testb $0x1, %al
jne 0x304ed
movabsq $0x2, %r8
cmpq %r8, %rsi
je 0x304d0
movl (%rdi,%r8,4), %r9d
leal 0x1(%r9), %r10d
cmpl $0x3, %r10d
jb 0x304d3
movl -0x4(%rdi,%r8,4), %r10d
addl %eax, %r10d
cmpl %r9d, %r10d
jne 0x304d3
incq %r8
jmp 0x30489
cmpl $-0x1, %eax
jne 0x304f1
movabsq $0x1, %rax
cmpq %rsi, %rax
jae 0x304f1
cmpl $-0x1, (%rdi,%rax,4)
jne 0x304f1
incq %rax
movq %rax, (%rdx)
jmp 0x304bd
movq %rsi, %r8
movq %r8, (%rdx)
cmpq $0x2, %r8
jne 0x304ed
cmpl $-0x2, %eax
je 0x304ed
cmpl $0x2, %eax
je 0x304ed
movq $0x1, (%rdx)
sarl %eax
movl %eax, (%rcx)
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/./bal/variables/variablesio.cpp
// Function: bal::VariableTextReader::read_variable_element_sequence_(unsigned int&, int&)
inline void VariableTextReader::read_variable_element_sequence_(unsigned int& sequence_size, signed int& step_size) {
        sequence_size = 1;
        step_size = 0;
        
        skip_space();
        if (is_symbol('/')) {
            skip_symbol();
            skip_space();
            sequence_size = read_uint32(1);
            skip_space();
            if (is_symbol('/')) {
                skip_symbol();
                skip_space();
                step_size = read_sint32();
                skip_space();
            };
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movl $0x1, (%rsi)
andl $0x0, (%rdx)
movq %rdi, %r14
movq (%rdi), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
pushq $0x2f
popq %rsi
callq 0x18a92
testb %al, %al
je 0x30d50
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x197ba
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
pushq $0x1
popq %rsi
pushq $-0x1
popq %rdx
callq 0x1866c
movl %eax, (%r15)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
pushq $0x2f
popq %rsi
callq 0x18a92
testb %al, %al
je 0x30d50
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x197ba
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2d286
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
callq 0x2ddfc
movl %eax, (%rbx)
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x2d286
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/vividvilla[P]hackerrank/src/oobleck-boxes.cpp
// Function: getWays(int, int)
int getWays(int n, int m) {
    vector<int> w = vector<int>(n + 1, 0);

    for (long long i = 1; i <= n; i *= m) {
        w[i] = (w[i] + 1) % MOD;
        for (int j = i + 1; j <= n; j++) {
            w[j] = (w[j] + w[j - i]) % MOD;
        }
    }

    return w[n];
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movl %esi, %ebp
movl %edi, %ebx
leal 0x1(%rbx), %eax
movslq %eax, %rsi
leaq 0x4(%rsp), %rdx
andl $0x0, (%rdx)
leaq 0x8(%rsp), %r14
leaq 0x3(%rsp), %rcx
movq %r14, %rdi
callq 0x1312
movslq %ebx, %rcx
movq (%r14), %rsi
movslq %ebp, %rdi
pushq $0x1
popq %r8
movl $0x3b9aca07, %r9d       # imm = 0x3B9ACA07
cmpq %rcx, %r8
jg 0x12aa
movl (%rsi,%r8,4), %eax
incl %eax
cltd
idivl %r9d
movl %edx, (%rsi,%r8,4)
leal 0x1(%r8), %r10d
cmpl %ebx, %r10d
jg 0x12a4
movslq %r10d, %r11
movq %r11, %rax
subq %r8, %rax
movl (%rsi,%rax,4), %eax
addl (%rsi,%r11,4), %eax
cltd
idivl %r9d
movl %edx, (%rsi,%r11,4)
incl %r10d
jmp 0x1282
imulq %rdi, %r8
jmp 0x126b
movl (%rsi,%rcx,4), %ebx
leaq 0x8(%rsp), %rdi
callq 0x1394
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/vividvilla[P]hackerrank/src/oobleck-boxes.cpp
// Function: main
int main() {
    int n, m;
    cin >> n >> m;

    cout << getWays(n, m) << endl;

    return 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq 0x2d13(%rip), %rdi      # 0x3fe0
leaq 0x4(%rsp), %rbx
movq %rbx, %rsi
callq 0x1080
movq %rsp, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x1080
movl (%rbx), %edi
movl (%r14), %esi
callq 0x122c
movq 0x2cd7(%rip), %rdi      # 0x3fd0
movl %eax, %esi
callq 0x10e0
movq %rax, %rdi
callq 0x1060
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O2/iZhangHui[P]CppPrimer/CH08_TheIOLibrary/examples/add_item.cc
// Function: main
int main()
{
	Sales_data data1, data2;
	read(cin, data1);                       // read the transactions
	read(cin, data2);                      
	// code to add into data1 and data2 unchanged from chapter 7
	if (data1.isbn() == data2.isbn()) {     // check isbns
		Sales_data sum = add(data1, data2); // add the transactions
		print(cout, sum);                   // print the results
		cout << endl;                       // followed by a newline 
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0xb8, %rsp
leaq -0x98(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
andl $0x0, 0x10(%rax)
andq $0x0, 0x18(%rax)
leaq -0x68(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
andl $0x0, 0x10(%rax)
andq $0x0, 0x18(%rax)
movq 0x2d18(%rip), %rdi      # 0x3fe0
leaq -0xa8(%rbp), %rsi
callq 0x1442
movq 0x2d05(%rip), %rdi      # 0x3fe0
leaq -0x78(%rbp), %rsi
callq 0x1442
leaq -0x48(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x10c0
leaq -0xc8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x10c0
leaq -0x48(%rbp), %rbx
leaq -0xc8(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x13c4
movl %eax, %r15d
movq %r14, %rdi
callq 0x1040
movq %rbx, %rdi
callq 0x1040
testb %r15b, %r15b
je 0x136b
leaq -0x48(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x14d4
movq 0x2c83(%rip), %rdi      # 0x3fd0
leaq -0x48(%rbp), %rsi
callq 0x1506
movq 0x2c73(%rip), %rdi      # 0x3fd0
callq 0x1050
leaq -0x48(%rbp), %rdi
callq 0x1040
leaq -0x78(%rbp), %rdi
callq 0x1040
leaq -0xa8(%rbp), %rdi
callq 0x1040
xorl %eax, %eax
addq $0xb8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x13a4
jmp 0x1394
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x1040
jmp 0x13a7
jmp 0x13a4
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x1040
leaq -0xa8(%rbp), %rdi
callq 0x1040
movq %rbx, %rdi
callq 0x1100
// File: /workspace/github_cpp_makefile_star2_O2/Wombozo[P]harmony/src/main.cpp
// Function: main
int main(int argc, char *argv[])
{
    Note::initialize();
    try
    {
        std::cout << "// WELCOME TO HARMONY ANALYSER \\" << std::endl;
        std::cout << "This software has many features and will be improved by time. "
                     "Please use 'git pull' each time you want to use it to keep you updated."
                  << std::endl;
        if (argc > 1)
            interact(atoi(argv[1]));
        else
        {
            help();
            interact(0);
        }
    }
    catch (H_ERR err)
    {
        std::cout << "ERROR: " << handle_H_ERR(err) << std::endl;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rsi, %rbx
movl %edi, %r14d
callq 0x3f00
movq 0xe19f(%rip), %rdi      # 0x11fc8
leaq 0x81db(%rip), %rsi      # 0xc00b
callq 0x3190
movq %rax, %rdi
callq 0x30e0
movq 0xe184(%rip), %rdi      # 0x11fc8
leaq 0x81e1(%rip), %rsi      # 0xc02c
callq 0x3190
movq %rax, %rdi
callq 0x30e0
cmpl $0x2, %r14d
jl 0x3e6b
movq 0x8(%rbx), %rdi
callq 0x3230
movl %eax, %ebx
jmp 0x3e72
xorl %ebx, %ebx
callq 0xafa7
movl %ebx, %edi
callq 0xaf03
xorl %eax, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
cmpl $0x1, %edx
jne 0x3ef5
movq %rbx, %rdi
callq 0x30a0
movl (%rax), %r14d
movq 0xe12a(%rip), %rdi      # 0x11fc8
leaq 0x820d(%rip), %rsi      # 0xc0b2
callq 0x3190
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
movl %r14d, %esi
callq 0x5de4
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x3180
movq %rax, %rdi
callq 0x30e0
leaq -0x30(%rbp), %rdi
callq 0x30d0
callq 0x3270
jmp 0x3e79
jmp 0x3edf
movq %rax, %rbx
jmp 0x3ef0
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x30d0
callq 0x3270
movq %rbx, %rdi
callq 0x32b0
nopl (%rax)
// File: /workspace/github_cpp_makefile_star2_O2/Wombozo[P]harmony/src/utils.cpp
// Function: valid_user_note_input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool valid_user_note_input(const std::string &str)
{
    for (auto snote : snotes)
    {
        if (!snote.compare(str))
            return true;
    }
    std::cout << "Available answers : ";
    for (auto snote : snotes)
    {
        std::cout << "| " + snote + " | ";
    }
    std::cout << std::endl;
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdi, %r14
movq 0xd2ed(%rip), %rax      # 0x122e8
movq 0xd2ee(%rip), %r13      # 0x122f0
leaq -0x58(%rbp), %r15
movq %rax, %rbx
cmpq %r13, %rax
je 0x503d
movq %r15, %rdi
movq %rbx, %rsi
callq 0x31f0
movq %r15, %rdi
movq %r14, %rsi
callq 0x3030
movl %eax, %r12d
movq %r15, %rdi
callq 0x30d0
leaq 0x20(%rbx), %rax
testl %r12d, %r12d
jne 0x5006
jmp 0x50e7
movq %r13, -0x30(%rbp)
movq 0xcf80(%rip), %rdi      # 0x11fc8
leaq 0x714d(%rip), %rsi      # 0xc19c
callq 0x3190
movq 0xd28d(%rip), %r15      # 0x122e8
movq 0xd28e(%rip), %rax      # 0x122f0
movq %rax, -0x38(%rbp)
leaq -0x58(%rbp), %r12
leaq -0x78(%rbp), %r14
leaq -0x98(%rbp), %r13
cmpq -0x38(%rbp), %r15
je 0x50d7
movq %r12, %rdi
movq %r15, %rsi
callq 0x31f0
movq %r14, %rdi
leaq 0x7122(%rip), %rsi      # 0xc1b2
movq %r12, %rdx
callq 0x5b4e
movq %r13, %rdi
movq %r14, %rsi
leaq 0x710c(%rip), %rdx      # 0xc1b1
callq 0x5b25
movq 0xcf17(%rip), %rdi      # 0x11fc8
movq %r13, %rsi
callq 0x3180
movq %r13, %rdi
callq 0x30d0
movq %r14, %rdi
callq 0x30d0
movq %r12, %rdi
callq 0x30d0
addq $0x20, %r15
jmp 0x5075
movq 0xceea(%rip), %rdi      # 0x11fc8
callq 0x30e0
movq -0x30(%rbp), %r13
cmpq %r13, %rbx
setne %al
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x511d
movq %rax, %rbx
jmp 0x5112
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x30d0
leaq -0x78(%rbp), %rdi
callq 0x30d0
jmp 0x5120
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x30d0
movq %rbx, %rdi
callq 0x32b0
// File: /workspace/github_cpp_makefile_star2_O2/Wombozo[P]harmony/src/utils.cpp
// Function: valid_user_type_scale_input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool valid_user_type_scale_input(const std::string &str)
{
    std::string sscales[] = {"Major",
                             "Minor"};
    for (auto scale : sscales)
    {
        if (!scale.compare(str))
            return true;
    }
    std::cout << "Available answers : ";
    for (auto sscale : sscales)
    {
        std::cout << "| " + sscale + " | ";
    }
    std::cout << std::endl;
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdi, %rbx
leaq 0x6db8(%rip), %rsi      # 0xc2e2
leaq -0x90(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x4d30
leaq -0x70(%rbp), %rdi
leaq 0x6da3(%rip), %rsi      # 0xc2e8
leaq -0xb0(%rbp), %rdx
callq 0x4d30
xorl %eax, %eax
leaq -0x48(%rbp), %r14
movq %rax, %r12
cmpq $0x40, %rax
je 0x5598
leaq (%r12,%rbp), %rsi
addq $-0x90, %rsi
movq %r14, %rdi
callq 0x31f0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3030
movl %eax, %r15d
movq %r14, %rdi
callq 0x30d0
leaq 0x20(%r12), %rax
testl %r15d, %r15d
jne 0x5557
jmp 0x5636
movq 0xca29(%rip), %rdi      # 0x11fc8
leaq 0x6bf6(%rip), %rsi      # 0xc19c
callq 0x3190
xorl %r14d, %r14d
leaq -0x48(%rbp), %rbx
leaq -0xd0(%rbp), %r15
leaq -0xb0(%rbp), %r13
cmpq $0x40, %r14
je 0x562a
leaq (%r14,%rbp), %rsi
addq $-0x90, %rsi
movq %rbx, %rdi
callq 0x31f0
movq %r15, %rdi
leaq 0x6bcf(%rip), %rsi      # 0xc1b2
movq %rbx, %rdx
callq 0x5b4e
movq %r13, %rdi
movq %r15, %rsi
leaq 0x6bb9(%rip), %rdx      # 0xc1b1
callq 0x5b25
movq 0xc9c4(%rip), %rdi      # 0x11fc8
movq %r13, %rsi
callq 0x3180
movq %r13, %rdi
callq 0x30d0
movq %r15, %rdi
callq 0x30d0
movq %rbx, %rdi
callq 0x30d0
addq $0x20, %r14
jmp 0x55c0
movq 0xc997(%rip), %rdi      # 0x11fc8
callq 0x30e0
pushq $0x20
popq %rbx
leaq (%rbx,%rbp), %rdi
addq $-0x90, %rdi
callq 0x30d0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x5639
cmpq $0x40, %r12
setne %al
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x30d0
jmp 0x56d4
jmp 0x56a5
jmp 0x56a5
jmp 0x56aa
movq %rax, %rbx
jmp 0x5697
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x30d0
leaq -0xd0(%rbp), %rdi
callq 0x30d0
jmp 0x56ad
movq %rax, %rbx
jmp 0x56b6
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x30d0
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x90, %rdi
callq 0x30d0
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x56ba
movq %rbx, %rdi
callq 0x32b0
// File: /workspace/github_cpp_makefile_star2_O2/Wombozo[P]harmony/src/utils.cpp
// Function: u_parse_note(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
Note *u_parse_note(const std::string &str)
{
    Note *tmp;
    for (int i = 0; i < snotes.size(); i++)
    {
        if (!str.compare(snotes.at(i)))
        {
            tmp = Notes.at(i);
        }
    }
    return tmp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %r14d, %r14d
leaq 0xc886(%rip), %r15      # 0x122e8
leaq 0xc85f(%rip), %r12      # 0x122c8
movq 0xc880(%rip), %rax      # 0x122f0
subq 0xc871(%rip), %rax      # 0x122e8
sarq $0x5, %rax
cmpq %r14, %rax
jbe 0x5aad
movq %r15, %rdi
movq %r14, %rsi
callq 0x5bc4
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3030
testl %eax, %eax
jne 0x5aa8
movq %r12, %rdi
movq %r14, %rsi
callq 0x5be6
movq (%rax), %r13
incq %r14
jmp 0x5a69
movq %r13, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop