// File: establishment[P]sandman/src/rules.hpp
// Function: Rules::Environment::Environment(ProcessConfig::Environment const&)
Environment(const ProcessConfig::Environment& config)
                : allRules({}) {
            this->passEnvironment = config.passEnvironment;

            for (int itr = 0; environ[itr]; itr += 1) {
                auto rule = getRule(environ[itr]);
                allRules[rule.first] = rule.second;
            }

            addDefaultRules();

            for (const auto& rule : config.rules) {
                addRule(rule);
            }
        }

// Assembly:
subq $0xf8, %rsp
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x20(%rsp)
addq $0x8, %rax
movq %rax, 0x28(%rsp)
leaq 0xd8(%rsp), %rdi
callq 0xb3a50
leaq 0xd6(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xb3a70
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %r8
movq 0xd8(%rsp), %rsi
movq 0xe0(%rsp), %rdx
leaq 0xd7(%rsp), %rcx
callq 0xb3a80
jmp 0xa32f5
leaq 0xd6(%rsp), %rdi
callq 0xb3b60
movq 0x20(%rsp), %rax
movq 0xe8(%rsp), %rcx
movl 0x4(%rcx), %ecx
movl %ecx, (%rax)
movl $0x0, 0xc0(%rsp)
movq 0x7ac8a(%rip), %rax     # 0x11dfb0
movq (%rax), %rax
movslq 0xc0(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0xa3494
movq 0x7ac6d(%rip), %rax     # 0x11dfb0
movq (%rax), %rax
movslq 0xc0(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x8ca50
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0xa0a90
jmp 0xa337c
movq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0xb3b70
jmp 0xa3395
leaq 0x60(%rsp), %rdi
callq 0x8cbd8
leaq 0x5f(%rsp), %rdi
callq 0x8c630
movq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rax
movq %rax, (%rsp)
addq $0x8, %rdi
leaq 0x80(%rsp), %rsi
callq 0xb3cc0
movq %rax, 0x8(%rsp)
jmp 0xa33d2
movq (%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x8c060
jmp 0xa33e2
leaq 0x80(%rsp), %rdi
callq 0xb3db0
movl 0xc0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc0(%rsp)
jmp 0xa331f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0xd6(%rsp), %rdi
callq 0xb3b60
jmp 0xa353a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0xa345f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x8cbd8
leaq 0x5f(%rsp), %rdi
callq 0x8c630
jmp 0xa3530
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x80(%rsp), %rdi
callq 0xb3db0
jmp 0xa3530
movq 0x20(%rsp), %rdi
callq 0xb3de0
jmp 0xa34a0
movq 0xe8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rdi
callq 0xa8bd0
movq %rax, 0x48(%rsp)
movq 0x50(%rsp), %rdi
callq 0xa8c00
movq %rax, 0x40(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xa9070
testb $0x1, %al
jne 0xa34e4
jmp 0xa3528
leaq 0x48(%rsp), %rdi
callq 0xa90e0
movq 0x20(%rsp), %rdi
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rsi
callq 0xb3e80
jmp 0xa3504
jmp 0xa3506
leaq 0x48(%rsp), %rdi
callq 0xa90f0
jmp 0xa34cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0xa3530
addq $0xf8, %rsp
retq
movq 0x28(%rsp), %rdi
callq 0xb3f80
movq 0xc8(%rsp), %rdi
callq 0x8ca40
nopw (%rax,%rax)