// File: vsklad[P]cgen/commandline.cpp
// Function: CGenCommandLineReader::parse_variable_replace(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, CGenVariableInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, CGenVariableInfo>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void CGenCommandLineReader::parse_variable_replace(CGenVariablesMap& variables_map, const std::string& variable_name) {
    if (variable_name.empty()) {
        parse_error(ERROR_REPLACE_MUST_FOLLOW_DEFINITION);
    };
    if (is_binary_variable_name(variable_name)) {
        parse_error(ERROR_BINARY_VARIABLE_REPLACE_INCOMPATIBLE);
    };
    
    CGenVariableInfo& variable_value = variables_map.find(variable_name)->second;
    
    if (variable_value.except_count > 0 || variable_value.except_range_size > 0) {
        parse_error(ERROR_EXCEPT_REPLACE_INCOMPATIBLE);
    };

    variable_value.replace_existing = true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rdi
callq 0xd540
testb $0x1, %al
jne 0x23204
jmp 0x2329c
movq -0xb8(%rbp), %rax
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0xd5b0
movq -0xc0(%rbp), %rdx
leaq 0x3e615(%rip), %rsi     # 0x6184f
leaq -0x38(%rbp), %rdi
callq 0xd440
jmp 0x23245
movq -0xc8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x262a0
jmp 0x23257
leaq -0x38(%rbp), %rdi
callq 0xd1b0
leaq -0x39(%rbp), %rdi
callq 0xd370
jmp 0x2329c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2328e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xd1b0
leaq -0x39(%rbp), %rdi
callq 0xd370
jmp 0x23441
movq -0x18(%rbp), %rdi
callq 0x26c60
testb $0x1, %al
jne 0x232ae
jmp 0x23346
movq -0xb8(%rbp), %rax
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0xd8(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0xd5b0
movq -0xd0(%rbp), %rdx
leaq 0x3e5ab(%rip), %rsi     # 0x6188f
leaq -0x70(%rbp), %rdi
callq 0xd440
jmp 0x232ef
movq -0xd8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x262a0
jmp 0x23301
leaq -0x70(%rbp), %rdi
callq 0xd1b0
leaq -0x71(%rbp), %rdi
callq 0xd370
jmp 0x23346
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x23338
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0xd1b0
leaq -0x71(%rbp), %rdi
callq 0xd370
jmp 0x23441
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x26cc0
movq %rax, -0x88(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x26cf0
addq $0x20, %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
cmpl $0x0, 0x8(%rax)
ja 0x23386
movq -0x80(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jbe 0x23430
movq -0xb8(%rbp), %rax
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0xe8(%rbp)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0xd5b0
movq -0xe0(%rbp), %rdx
leaq 0x3e254(%rip), %rsi     # 0x61613
leaq -0xa8(%rbp), %rdi
callq 0xd440
jmp 0x233cd
movq -0xe8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x262a0
jmp 0x233e2
leaq -0xa8(%rbp), %rdi
callq 0xd1b0
leaq -0xa9(%rbp), %rdi
callq 0xd370
jmp 0x23430
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x23422
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0xd1b0
leaq -0xa9(%rbp), %rdi
callq 0xd370
jmp 0x23441
movq -0x80(%rbp), %rax
movb $0x1, 0x38(%rax)
addq $0xf0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0xd5a0
nopw (%rax,%rax)