// File: /workspace/github_cpp_makefile_star2_O1/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 0x1e5f5(%rip), %al      # 0x2c530
testb %al, %al
je 0xe1a8
movq 0x1e5ce(%rip), %rax     # 0x2c518
cmpq 0x1e5cf(%rip), %rax     # 0x2c520
jne 0xe184
movq %rdi, 0x60(%rsp)
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x14640(%rip), %rsi     # 0x225ac
leaq 0x14657(%rip), %rdx     # 0x225ca
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0xe9e6
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xb118
leaq 0x14629(%rip), %rsi     # 0x225cb
movq %rsp, %rdi
callq 0x5840
leaq 0x68(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xe6aa
leaq 0x30(%rsp), %rdi
leaq 0x68(%rsp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x13700
leaq 0x68(%rsp), %rdi
callq 0xe8da
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
testq %rcx, %rcx
je 0xdffa
movq 0x1dfbc(%rip), %rdx     # 0x2bfa8
cmpb $0x0, (%rdx)
je 0xdff6
incl 0x8(%rcx)
jmp 0xdffa
lock
incl 0x8(%rcx)
movq %rax, 0x20(%rsp)
movq %rcx, 0x28(%rsp)
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xe02d
movq 0x1df93(%rip), %rax     # 0x2bfa8
cmpb $0x0, (%rax)
je 0xe01f
incl 0x8(%rdi)
jmp 0xe023
lock
incl 0x8(%rdi)
testq %rdi, %rdi
je 0xe02d
callq 0xe902
leaq 0x78(%rsp), %rbx
leaq 0x20(%rsp), %r14
leaq 0x68(%rsp), %r15
leaq 0x1e4d5(%rip), %r12     # 0x2c518
cmpq $0x0, 0x28(%rsp)
je 0xe0ea
movq %r14, %rdi
callq 0x10ed0
movq %rax, %r13
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rbx, 0x68(%rsp)
movq %r15, %rdi
callq 0xe972
movq (%rsp), %rsi
movq 0x8(%rsp), %rcx
movq %r15, %rdi
xorl %edx, %edx
callq 0x55b0
movq %rax, %rbp
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe09e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5470
testq %rbp, %rbp
jne 0xe0dd
movq %rbx, 0x68(%rsp)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xb118
movq %r12, %rdi
movq %r15, %rsi
callq 0xebc8
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe0dd
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5470
movq %r14, %rdi
callq 0x12460
jmp 0xe043
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0xe0f9
callq 0xe902
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xe108
callq 0xe902
movq 0x1e409(%rip), %r14     # 0x2c518
movq 0x1e40a(%rip), %r15     # 0x2c520
cmpq %r15, %r14
je 0xe148
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 0xee13
movq %r14, %rdi
movq %r15, %rsi
callq 0xeef7
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xe163
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5470
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xe17f
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5470
movq 0x60(%rsp), %rdi
leaq 0x1e38d(%rip), %rsi     # 0x2c518
movq %rdi, %rbx
callq 0xe718
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 0xdf43
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0xe8da
jmp 0xe218
jmp 0xe1d0
jmp 0xe1d0
movq %rax, %r14
jmp 0xe233
movq %rax, %r14
jmp 0xe218
movq %rax, %r14
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe1fa
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5470
jmp 0xe1fa
jmp 0xe1f7
jmp 0xe1f7
jmp 0xe1f7
movq %rax, %r14
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0xe209
callq 0xe902
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xe218
callq 0xe902
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xe233
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5470
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xe24f
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5470
movq %r14, %rdi
callq 0x5790
nop