ViThunkCreateSharedExportInformation

__int64 __fastcall ViThunkCreateSharedExportInformation(char *a1, __int64 a2, __int64 a3, _RTL_BITMAP *a4, void **a5){
  unsigned int v9; 
  unsigned int v10; 
  unsigned int v11; 
  VOID **PoolWithTag; 

  v9 = 1;
  v10 = RtlNumberOfClearBits((UINT64 *)&a4->SizeOfBitMap);
  v11 = v10;
  if( v10 )
  {
    PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 32i64 * v10, 1414096470i64);
    *a5 = PoolWithTag;
    if( PoolWithTag )
    {
      memset(PoolWithTag, 0i64, 32 * v11);
      if( !(unsigned int)ViThunkSnapSharedExports(a1, a2, a3, a4, v11, (__int64)*a5) )
        ViThunkFreeSharedThunksArray(a5);
    }
    else
    {
      return 0;
    }
  }
  else
  {
    *a5 = 0i64;
  }
  return v9;
}

Referenced by:

VfThunkAddTargetNotify