ViLookupThunkArray

UINT8 *__fastcall ViLookupThunkArray(UINT8 **a1, INT64 a2, INT64 a3){
  INT64 v5; 
  int v6; 
  int v7; 
  UINT8 *result; 

  while( 1 )
  {
    result = *a1;
    if( !*a1 )
      break;
    v5 = a3 - (_QWORD)result;
    do
    {
      v6 = result[v5];
      v7 = *result - v6;
      if( v7 )
        break;
      ++result;
    }
    while( v6 );
    if( !v7 )
      return a1[1];
    a1 = (UINT8 **)((char *)a1 + a2);
  }
  return result;
}

Referenced by:

VfGetHookAddressForOriginal