А если переписать код, для того, чтобы все вычисления производились на видеокарте? Код не сложный, пара математических операций. В итоге вычисление будут быстрее раз в 20 производиться. Опять же, в этом есть смысл, если проект собирается быть долгоживущим, иначе , результат не окупит затраты на написание кода.
Так же можно сделать минибазу, чтобы разбить поиск на блоки, а не перебирать все значения. Я подобное делал в GTA 5, для поиска значений работающих со скриптами и этот способ показал отличную эффективность и производительность. Задача была похожая.
newGlobalPageBase = this->read<DWORD64, PBYTE*>(Global_struct + ((index >> 18 & 0x3F) << 3))
if (newGlobalPageBase != 0)
{
return (newGlobalPageBase + ((index & 0x3FFFF) << 3));
}