#1228·retdec

[capstone2llvmir]: Missing type for register number: 244

Author: dedz212Created Mar 20, 2026Updated Sep 18, 2026

Environment

  • retdec version: v5.0
  • OS: Windows 11
  • Target binary: MSVC 6.0 / 32-bit PE (x86)

Command

retdec-decompiler YDKJ6.exe

Output

Running phase: Unpacking ( 0.08s )
No matching plugins found for 'Microsoft Linker 6.0'
No matching plugins found for 'MSVC 6.0'
No matching plugins found for 'Microsoft'
Running phase: Initialization ( 0.22s )
Running phase: Providers initialization ( 0.26s )
Running phase: Input binary to LLVM IR decoding ( 0.78s )
[capstone2llvmir]: Missing type for register number: 244

Analysis

Register 244 corresponds to X86_REG_PF (Parity Flag), defined in include/retdec/capstone2llvmir/x86/x86_defs.h:

cpp
enum x86_reg_rflags
{
    X86_REG_CF = X86_REG_ENDING + 1, // = 243
    // reserved 1
    X86_REG_PF,                       // = 244
    ...
};

The error originates from getRegisterType() in src/capstone2llvmir/capstone2llvmir_impl.cpp:

cpp
llvm::Type* getRegisterType(uint32_t r) const
{
    auto fIt = _reg2type.find(r);
    if (fIt == _reg2type.end())
    {
        throw GenericError(
                "Missing type for register number: " + std::to_string(r));
    }
    return fIt->second;
}

X86_REG_PF = 244 is missing from the _reg2type map populated by initializeRegTypeMap() in the version I am using. Note: checking the current master, X86_REG_PF appears to already be present in _reg2type — so this bug may have been fixed after the release I am using. The version field above should help identify whether this is a regression or a known fixed issue.