// File: pstuifzand[P]magento-tools/src/magento-modules.cpp
// Function: parse_module_config::operator()(fs::file const&)
void operator()(const fs::file& f) {
        XML_SetUserData(parser.handle(), &data);
        XML_SetElementHandler(parser.handle(), root_start_element_handler, root_end_element_handler);
        XML_SetCharacterDataHandler(parser.handle(), character_data_handler);

        data.filename = f.name();

        std::stringstream name;
        name << "app/etc/modules/";
        name << f.name();

        struct stat stat_buf;
        stat(name.str().c_str(), &stat_buf);
        if (S_ISREG(stat_buf.st_mode)) {
            std::ifstream in{name.str()};
            if (in) parse_xml(parser, in, &data);
            else std::cerr << "Can't open " << name.str() << "\n";
        }
        parser.reset();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4d0, %rsp            # imm = 0x4D0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x34f0
movq -0x4a8(%rbp), %rsi
movq %rax, %rdi
addq $0x8, %rsi
callq 0x2060
movq -0x4a8(%rbp), %rdi
callq 0x34f0
movq %rax, %rdi
leaq -0xd1c(%rip), %rsi      # 0x2530
leaq -0xc13(%rip), %rdx      # 0x2640
callq 0x21a0
movq -0x4a8(%rbp), %rdi
callq 0x34f0
movq %rax, %rdi
leaq -0x9ce(%rip), %rsi      # 0x28a0
callq 0x2230
movq -0x10(%rbp), %rdi
callq 0x31e0
movq %rax, %rcx
movq -0x4a8(%rbp), %rax
movq %rcx, 0x10(%rax)
leaq -0x198(%rbp), %rdi
callq 0x2110
leaq -0x188(%rbp), %rdi
leaq 0xe3d(%rip), %rsi       # 0x40e1
callq 0x21c0
jmp 0x32ab
leaq -0x188(%rbp), %rax
movq %rax, -0x4b0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x31e0
movq -0x4b0(%rbp), %rdi
movq %rax, %rsi
callq 0x21c0
jmp 0x32d3
leaq -0x258(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x21b0
jmp 0x32e8
leaq -0x258(%rbp), %rdi
callq 0x20c0
movq %rax, %rdi
leaq -0x238(%rbp), %rsi
callq 0x2190
leaq -0x258(%rbp), %rdi
callq 0x20e0
movl -0x220(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x34aa
leaq -0x480(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x21b0
jmp 0x333a
leaq -0x460(%rbp), %rdi
leaq -0x480(%rbp), %rsi
movl $0x8, %edx
callq 0x2310
jmp 0x3354
leaq -0x480(%rbp), %rdi
callq 0x20e0
movq -0x460(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x460(%rbp,%rax), %rdi
callq 0x2250
movb %al, -0x4b1(%rbp)
jmp 0x3380
movb -0x4b1(%rbp), %al
testb $0x1, %al
jne 0x338c
jmp 0x33fe
movq -0x4a8(%rbp), %rdi
movq %rdi, %rdx
addq $0x8, %rdx
leaq -0x460(%rbp), %rsi
callq 0x3510
jmp 0x33a8
jmp 0x348e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
jmp 0x34cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x20e0
jmp 0x34cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
jmp 0x349c
movq 0x2beb(%rip), %rdi      # 0x5ff0
leaq 0xce6(%rip), %rsi       # 0x40f2
callq 0x21c0
movq %rax, -0x4c0(%rbp)
jmp 0x341a
leaq -0x4a0(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x21b0
jmp 0x342f
movq -0x4c0(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x2180
movq %rax, -0x4c8(%rbp)
jmp 0x344b
movq -0x4c8(%rbp), %rdi
leaq 0xc4c(%rip), %rsi       # 0x40a5
callq 0x21c0
jmp 0x3460
leaq -0x4a0(%rbp), %rdi
callq 0x20e0
jmp 0x348e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x20e0
jmp 0x349c
leaq -0x460(%rbp), %rdi
callq 0x2080
jmp 0x34aa
leaq -0x460(%rbp), %rdi
callq 0x2080
jmp 0x34cd
movq -0x4a8(%rbp), %rdi
callq 0x3690
jmp 0x34b8
leaq -0x198(%rbp), %rdi
callq 0x2130
addq $0x4d0, %rsp            # imm = 0x4D0
popq %rbp
retq
leaq -0x198(%rbp), %rdi
callq 0x2130
movq -0x1a0(%rbp), %rdi
callq 0x2350
nopw %cs:(%rax,%rax)
nop