// File: davmac314[P]dinit/src/includes/load-service.h
// Function: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> dinit_load::read_value_resolved<load_service(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, service_record*, 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, service_record*>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<dir_entry, std::allocator<dir_entry>> const&)::$_1>(char const*, file_pos_ref, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, char const*, load_service(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, service_record*, 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, service_record*>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<dir_entry, std::allocator<dir_entry>> const&)::$_1 const&)
inline string read_value_resolved(const char *setting_name, file_pos_ref input_pos, string_iterator &i,
        string_iterator end, const char *argval, const resolve_var_t &resolve_var)
{
    string rval;
    read_setting_value(rval, setting_op_t::ASSIGN, input_pos, i, end, nullptr);

    std::list<std::pair<unsigned,unsigned>> offsets;
    offsets.emplace_back(0, rval.size());
    value_var_subst(setting_name, rval, offsets, resolve_var, argval);
    return rval;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x98(%rbp)
movq %rdi, %rax
movq %rax, -0xa0(%rbp)
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x10(%rbp)
movq %r9, -0x20(%rbp)
movq %rsi, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movb $0x0, -0x31(%rbp)
callq 0x5700
movq -0x98(%rbp), %rdi
movups -0x18(%rbp), %xmm0
movaps %xmm0, -0x50(%rbp)
movq -0x30(%rbp), %r8
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x50(%rbp), %edx
movq -0x48(%rbp), %rcx
movq -0x58(%rbp), %r9
movq %rsp, %rax
movl $0x20, 0x8(%rax)
movq $0x0, (%rax)
xorl %esi, %esi
callq 0x2e790
jmp 0x12a64
leaq -0x80(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x1ffa0
movq -0x98(%rbp), %rdi
movl $0x0, -0x84(%rbp)
callq 0x5370
movq -0xa8(%rbp), %rdi
movq %rax, -0x90(%rbp)
leaq -0x84(%rbp), %rsi
leaq -0x90(%rbp), %rdx
callq 0x2edd0
jmp 0x12aad
movq -0x98(%rbp), %rsi
movq -0x28(%rbp), %rdi
movq 0x18(%rbp), %rcx
movq 0x10(%rbp), %r8
leaq -0x80(%rbp), %rdx
callq 0xd670
jmp 0x12acb
movb $0x1, -0x31(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x200f0
testb $0x1, -0x31(%rbp)
jne 0x12b11
jmp 0x12b05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x12b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x200f0
jmp 0x12b21
movq -0x98(%rbp), %rdi
callq 0x5320
movq -0xa0(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x98(%rbp), %rdi
callq 0x5320
movq -0x60(%rbp), %rdi
callq 0x5870
nopw %cs:(%rax,%rax)