MiUpdateCfgSystemWideBitmap

VOID __fastcall MiUpdateCfgSystemWideBitmap(INT64 a1, INT64 a2, UINT64 a3){
  INT64 v4; 
  UINT64 v5; 
  UINT64 v6; 
  int v7; 
  INT64 v8; 
  v4 = *(_QWORD *)a1;
  if( *(_DWORD *)(a1 + 88) != -1 && (*(_DWORD *)(a1 + 56) & 0x10000000) == 0 )
  {
    v5 = 2 * ((unsigned __int64)a2 >> 4);
    v6 = 2 * ((unsigned __int64)_InterlockedCompareExchange64((volatile signed __int64 *)(v4 + 24), -1i64, -1i64) >> 4);
    v7 = 0;
    do
    {
      v8 = Section;
      if( !v7 && (*(_BYTE *)(v4 + 14) & 0x40) != 0 )
        v8 = qword_140C4C8F8[8 * (unsigned __int64)(unsigned int)MiGetImageWowSubsystemIndex(v4)];
      if( (int)MiUpdateCfgSystemWideBitmapWorker(v8, (_DWORD *)a3, v5, v6) < 0 )
        break;
      ++v7;
      if( !a3 )
        break;
    }
    while( v7 < 1 );
  }
}

Referenced by:

MiRelocateImage
MiRelocateImageAgain