MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / GetMediumLevelILSSAVariablesIfAvailable

Method GetMediumLevelILSSAVariablesIfAvailable

function.cpp:1557–1578  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1555
1556
1557set<SSAVariable> Function::GetMediumLevelILSSAVariablesIfAvailable()
1558{
1559 Ref<MediumLevelILFunction> mlil = this->GetMediumLevelILIfAvailable();
1560 if (!mlil)
1561 return {};
1562
1563 size_t count;
1564 BNVariable* vars = BNGetMediumLevelILVariables(mlil->GetObject(), &count);
1565
1566 set<SSAVariable> result;
1567 for (size_t i = 0; i < count; ++i)
1568 {
1569 size_t versionCount;
1570 size_t* versions = BNGetMediumLevelILVariableSSAVersions(mlil->GetObject(), &vars[i], &versionCount);
1571 for (size_t j = 0; j < versionCount; ++j)
1572 result.emplace(vars[i], versions[j]);
1573 BNFreeILInstructionList(versions);
1574 }
1575
1576 BNFreeVariableList(vars);
1577 return result;
1578}
1579
1580
1581set<Variable> Function::GetHighLevelILVariablesIfAvailable()

Callers

nothing calls this directly

Calls 2

GetObjectMethod · 0.45

Tested by

no test coverage detected