// File: demon386[P]git-store/./libs/program_options/src/parsers.cpp
// Function: boost::program_options::parse_environment(boost::program_options::options_description const&, boost::function1<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> const&)
BOOST_PROGRAM_OPTIONS_DECL parsed_options
    parse_environment(const options_description& desc, 
                      const function1<std::string, std::string>& name_mapper)
    {
        parsed_options result(&desc);
        
        for(environment_iterator i(environ), e; i != e; ++i) {
            string option_name = name_mapper(i->first);

            if (!option_name.empty()) {
                option n;
                n.string_key = option_name;
                n.value.push_back(i->second);
                result.options.push_back(n);
            }                
        }

        return result;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x180(%rbp)
movq %rdi, %rax
movq %rax, -0x178(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x2edf0
movq 0x5f8ba(%rip), %rax     # 0x8dfc8
movq (%rax), %rsi
leaq -0x70(%rbp), %rdi
callq 0x2fc70
jmp 0x2e71c
leaq -0xd0(%rbp), %rdi
callq 0x2fcd0
jmp 0x2e72a
jmp 0x2e72c
leaq -0x70(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x2fd00
movb %al, -0x181(%rbp)
jmp 0x2e744
movb -0x181(%rbp), %al
testb $0x1, %al
jne 0x2e79d
jmp 0x2e750
leaq -0xd0(%rbp), %rdi
callq 0x2fe90
leaq -0x70(%rbp), %rdi
callq 0x2fe90
jmp 0x2e90b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2e931
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2e900
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2e8f4
movq -0x18(%rbp), %rax
movq %rax, -0x198(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x2fe30
movq %rax, -0x190(%rbp)
jmp 0x2e7ba
movq -0x190(%rbp), %rsi
leaq -0x110(%rbp), %rdi
callq 0xd230
jmp 0x2e7cf
movq -0x198(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rdx
callq 0x2fd30
jmp 0x2e7eb
leaq -0x110(%rbp), %rdi
callq 0xdca8
leaq -0xf0(%rbp), %rdi
callq 0xdab0
testb $0x1, %al
jne 0x2e8cc
leaq -0x170(%rbp), %rdi
callq 0x12760
jmp 0x2e819
leaq -0x170(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xd060
jmp 0x2e82e
leaq -0x148(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x2fe30
movq %rax, -0x1a0(%rbp)
jmp 0x2e84e
movq -0x1a8(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
addq $0x20, %rsi
callq 0x127b0
jmp 0x2e867
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x12690
jmp 0x2e87c
leaq -0x170(%rbp), %rdi
callq 0x12920
jmp 0x2e8cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0xdca8
jmp 0x2e8f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2e8e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x12920
jmp 0x2e8e8
leaq -0xf0(%rbp), %rdi
callq 0xdca8
leaq -0x70(%rbp), %rdi
callq 0x2fe60
jmp 0x2e8e3
jmp 0x2e72c
leaq -0xf0(%rbp), %rdi
callq 0xdca8
leaq -0xd0(%rbp), %rdi
callq 0x2fe90
leaq -0x70(%rbp), %rdi
callq 0x2fe90
jmp 0x2e931
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x2e921
movq -0x180(%rbp), %rdi
callq 0x2f180
movq -0x178(%rbp), %rax
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
movq -0x180(%rbp), %rdi
callq 0x2f180
movq -0x78(%rbp), %rdi
callq 0xdb30
nopw %cs:(%rax,%rax)