// File: /workspace/github_cpp_makefile_star2_O3/helchr[P]reMap/sysinfo.cpp
// Function: SysInfo::getImcs[abi:cxx11]()
std::vector<std::string> SysInfo::getImcs()
{
    static std::vector<std::string> imcs;
    if(imcs.empty())
    {
        std::string path = "/sys/bus/event_source/devices/";
        std::string imc = path+"uncore_imc";
        for (const auto & entry : fs::directory_iterator(path))
        {
            if(entry.path().string().rfind(imc,0) == 0)
            {
                imcs.push_back(entry.path());
            }
        }
        std::sort(imcs.begin(),imcs.end());
    }
    return imcs;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movb 0x1e67b(%rip), %al      # 0x2c530
testb %al, %al
je 0xe125
movq 0x1e654(%rip), %rax     # 0x2c518
cmpq 0x1e655(%rip), %rax     # 0x2c520
jne 0xe101
movq %rdi, 0x60(%rsp)
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x146c6(%rip), %rsi     # 0x225ac
leaq 0x146dd(%rip), %rdx     # 0x225ca
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0xe97e
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0xb0d2
leaq 0x146ad(%rip), %rsi     # 0x225cb
leaq 0x10(%rsp), %rdi
callq 0x5840
leaq 0x68(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xe63a
leaq 0x30(%rsp), %rdi
leaq 0x68(%rsp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x13680
leaq 0x68(%rsp), %rdi
callq 0xe86c
movq 0x30(%rsp), %rcx
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xdf7d
movq 0x1e03e(%rip), %rax     # 0x2bfa8
cmpb $0x0, (%rax)
je 0xdf8c
incl 0x8(%rdi)
movq %rcx, (%rsp)
movq %rdi, 0x8(%rsp)
jmp 0xdfa6
movq %rcx, (%rsp)
movq $0x0, 0x8(%rsp)
jmp 0xdfb9
lock
incl 0x8(%rdi)
movq %rcx, (%rsp)
movq %rdi, 0x8(%rsp)
movq 0x38(%rsp), %rcx
movq %rcx, %rdi
testq %rcx, %rcx
je 0xdfb9
cmpb $0x0, (%rax)
je 0xdfb0
incl 0x8(%rdi)
jmp 0xdfb4
lock
incl 0x8(%rdi)
callq 0xe894
leaq 0x78(%rsp), %rbx
movq %rsp, %r14
leaq 0x68(%rsp), %r15
leaq 0x1e54b(%rip), %r12     # 0x2c518
cmpq $0x0, 0x8(%rsp)
je 0xe075
movq %r14, %rdi
callq 0x10e50
movq %rax, %r13
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rbx, 0x68(%rsp)
movq %r15, %rdi
callq 0xe904
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rcx
movq %r15, %rdi
xorl %edx, %edx
callq 0x55b0
movq %rax, %rbp
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe029
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5470
testq %rbp, %rbp
jne 0xe068
movq %rbx, 0x68(%rsp)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xb0d2
movq %r12, %rdi
movq %r15, %rsi
callq 0xeb66
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe068
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5470
movq %r14, %rdi
callq 0x123e0
jmp 0xdfcd
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xe084
callq 0xe894
movq 0x1e48d(%rip), %r14     # 0x2c518
movq 0x1e48e(%rip), %r15     # 0x2c520
cmpq %r15, %r14
je 0xe0c4
movq %r15, %rax
subq %r14, %rax
sarq $0x5, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0xedb9
movq %r14, %rdi
movq %r15, %rsi
callq 0xee8d
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xe0e0
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5470
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xe0fc
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5470
movq 0x60(%rsp), %rdi
leaq 0x1e410(%rip), %rsi     # 0x2c518
movq %rdi, %rbx
callq 0xe6a8
movq %rbx, %rax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdi, %rbx
callq 0x58cc
movq %rbx, %rdi
jmp 0xdebd
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0xe86c
jmp 0xe195
jmp 0xe14d
jmp 0xe14d
movq %rax, %r14
jmp 0xe1b1
movq %rax, %r14
jmp 0xe195
movq %rax, %r14
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe177
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5470
jmp 0xe177
jmp 0xe174
jmp 0xe174
jmp 0xe174
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xe186
callq 0xe894
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xe195
callq 0xe894
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xe1b1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5470
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xe1cd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5470
movq %r14, %rdi
callq 0x5790
nop