From 5953d087a9a104e7abb63c5739091214edf2faca Mon Sep 17 00:00:00 2001 From: Brandon Miller Date: Tue, 2 Jun 2026 09:00:15 -0400 Subject: Add support for multiple global pointer registers --- function.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'function.cpp') diff --git a/function.cpp b/function.cpp index bd7003e0..d81394f8 100644 --- a/function.cpp +++ b/function.cpp @@ -2428,8 +2428,24 @@ Ref Function::CreateUserFunctionTag(Ref tagType, const std::string Confidence Function::GetGlobalPointerValue() const { - BNRegisterValueWithConfidence value = BNGetFunctionGlobalPointerValue(m_object); - return Confidence(RegisterValue::FromAPIObject(value.value), value.confidence); + auto values = GetGlobalPointerValues(); + if (values.empty()) + return Confidence(); + return values[0].second; +} + + +vector>> Function::GetGlobalPointerValues() const +{ + size_t count; + BNRegisterValueWithConfidenceAndRegister* values = BNGetFunctionGlobalPointerValues(m_object, &count); + vector>> result; + result.reserve(count); + for (size_t i = 0; i < count; i++) + result.emplace_back(values[i].reg, + Confidence(RegisterValue::FromAPIObject(values[i].value.value), values[i].value.confidence)); + BNFreeRegisterValueWithConfidenceAndRegisterList(values); + return result; } -- cgit v1.3.1