// File: pstuifzand[P]magento-tools/src/magento-config.cpp
// Function: main
int main(int argc, char** argv) {
    parse_module_config parse;

    argc--;
    argv++;

    int names = 0;
    while (argc) {
        if (strcmp(*argv, "--names") == 0) {
            names = 1;
        }
        else if (argv[0][0] == '-' && argv[0][1] == '-') {
            // unknown argument
        }
        else {
            parse(*argv);
        }
        argc--;
        argv++;
    }

    std::sort(std::begin(parse.data.names), std::end(parse.data.names));

    if (names) {
        for (auto& s : parse.data.names) {
            std::cout << s << "\n";
        }
        exit(0);
    }

    std::string s;
    while (std::getline(std::cin, s)) {
        std::string key = s;

        auto p = std::equal_range(
            std::begin(parse.data.names),
            std::end(parse.data.names),
            key);

        if (p.first == p.second) {
            std::cout << "not found " << '"' << key << '"' << "\n";
        } else {
            std::cout << "found " << '"' << key << '"' << "\n";
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x2d50
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
movl $0x0, -0xa4(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0x295d
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x37f6(%rip), %rsi      # 0x60d2
callq 0x2270
cmpl $0x0, %eax
jne 0x28f2
movl $0x1, -0xa4(%rbp)
jmp 0x2943
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x2913
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl 0x1(%rax), %eax
cmpl $0x2d, %eax
jne 0x2913
jmp 0x2941
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x2da0
jmp 0x2928
jmp 0x2941
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x2d03
jmp 0x2943
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
jmp 0x28c4
leaq -0x28(%rbp), %rdi
callq 0x2f70
movq %rax, -0x150(%rbp)
jmp 0x296f
movq -0x150(%rbp), %rax
movq %rax, -0xc0(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x2fa0
movq %rax, -0x158(%rbp)
jmp 0x298f
movq -0x158(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x2f30
jmp 0x29b2
cmpl $0x0, -0xa4(%rbp)
je 0x2a6f
leaq -0xa0(%rbp), %rax
addq $0x8, %rax
addq $0x70, %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdi
callq 0x2fd0
movq %rax, -0xd8(%rbp)
movq -0xd0(%rbp), %rdi
callq 0x3000
movq %rax, -0xe0(%rbp)
leaq -0xd8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3030
testb $0x1, %al
jne 0x2a14
jmp 0x2a68
leaq -0xd8(%rbp), %rdi
callq 0x3070
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rsi
movq 0x6593(%rip), %rdi      # 0x8fc8
callq 0x2170
movq %rax, -0x160(%rbp)
jmp 0x2a43
movq -0x160(%rbp), %rdi
leaq 0x3689(%rip), %rsi      # 0x60da
callq 0x21a0
jmp 0x2a58
jmp 0x2a5a
leaq -0xd8(%rbp), %rdi
callq 0x3090
jmp 0x29fb
xorl %edi, %edi
callq 0x2200
leaq -0x108(%rbp), %rdi
callq 0x2260
movq 0x6556(%rip), %rdi      # 0x8fd8
leaq -0x108(%rbp), %rsi
callq 0x2060
movq %rax, -0x168(%rbp)
jmp 0x2a97
movq -0x168(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x2220
movb %al, -0x169(%rbp)
jmp 0x2ab5
movb -0x169(%rbp), %al
testb $0x1, %al
jne 0x2ac4
jmp 0x2cd3
leaq -0x128(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x20c0
jmp 0x2ad9
leaq -0x28(%rbp), %rdi
callq 0x2f70
movq %rax, -0x178(%rbp)
jmp 0x2aeb
movq -0x178(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x2fa0
movq %rax, -0x180(%rbp)
jmp 0x2b0b
movq -0x180(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x140(%rbp), %rdi
movq -0x148(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0x30b0
movq %rdx, -0x190(%rbp)
movq %rax, -0x188(%rbp)
jmp 0x2b43
movq -0x190(%rbp), %rax
movq -0x188(%rbp), %rcx
movq %rcx, -0x138(%rbp)
movq %rax, -0x130(%rbp)
leaq -0x138(%rbp), %rdi
leaq -0x138(%rbp), %rsi
addq $0x8, %rsi
callq 0x3110
testb $0x1, %al
jne 0x2b7f
jmp 0x2c3f
movq 0x6442(%rip), %rdi      # 0x8fc8
leaq 0x354f(%rip), %rsi      # 0x60dc
callq 0x21a0
movq %rax, -0x198(%rbp)
jmp 0x2b9b
movq -0x198(%rbp), %rdi
movl $0x22, %esi
callq 0x21e0
movq %rax, -0x1a0(%rbp)
jmp 0x2bb5
movq -0x1a0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x2170
movq %rax, -0x1a8(%rbp)
jmp 0x2bd1
movq -0x1a8(%rbp), %rdi
movl $0x22, %esi
callq 0x21e0
movq %rax, -0x1b0(%rbp)
jmp 0x2beb
movq -0x1b0(%rbp), %rdi
leaq 0x34e1(%rip), %rsi      # 0x60da
callq 0x21a0
jmp 0x2c00
jmp 0x2cc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x2cf7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x20f0
jmp 0x2cf7
movq 0x6382(%rip), %rdi      # 0x8fc8
leaq 0x3493(%rip), %rsi      # 0x60e0
callq 0x21a0
movq %rax, -0x1b8(%rbp)
jmp 0x2c5b
movq -0x1b8(%rbp), %rdi
movl $0x22, %esi
callq 0x21e0
movq %rax, -0x1c0(%rbp)
jmp 0x2c75
movq -0x1c0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x2170
movq %rax, -0x1c8(%rbp)
jmp 0x2c91
movq -0x1c8(%rbp), %rdi
movl $0x22, %esi
callq 0x21e0
movq %rax, -0x1d0(%rbp)
jmp 0x2cab
movq -0x1d0(%rbp), %rdi
leaq 0x3421(%rip), %rsi      # 0x60da
callq 0x21a0
jmp 0x2cc0
jmp 0x2cc2
leaq -0x128(%rbp), %rdi
callq 0x20f0
jmp 0x2a7b
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x3150
movl -0x4(%rbp), %eax
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xa0(%rbp), %rdi
callq 0x3150
movq -0xb0(%rbp), %rdi
callq 0x22b0
nopl (%rax,%rax)