WmipFindMRByNames

MOFRESOURCE *__stdcall WmipFindMRByNames(WCHAR *ImagePath, WCHAR *MofResourceName){
  INT64 v4; 
  char *v5; 
  char *v6; 
  int v7; 
  int v8; 
  char *v10; 
  char *v11; 
  int v12; 
  int v13; 

  KeWaitForSingleObject((UINT64)&ExBootDevicesRemovedEvent + 3072, 0, 0, 0, 0i64);
  v4 = **(&ExBootDevicesRemovedEvent + 398);
  if( **(&ExBootDevicesRemovedEvent + 398) == *(&ExBootDevicesRemovedEvent + 398) )
  {
LABEL_7:
    v4 = 0i64;
  }
  else
  {
    while( 1 )
    {
      v5 = *(char **)(v4 + 40);
      v6 = (char *)((char *)ImagePath - v5);
      do
      {
        v7 = *(unsigned __int16 *)&v6[(_QWORD)v5];
        v8 = *(unsigned __int16 *)v5 - v7;
        if( v8 )
          break;
        v5 += 2;
      }
      while( v7 );
      if( !v8 )
      {
        v10 = *(char **)(v4 + 48);
        v11 = (char *)((char *)MofResourceName - v10);
        do
        {
          v12 = *(unsigned __int16 *)&v11[(_QWORD)v10];
          v13 = *(unsigned __int16 *)v10 - v12;
          if( v13 )
            break;
          v10 += 2;
        }
        while( v12 );
        if( !v13 )
          break;
      }
      v4 = *(_QWORD *)v4;
      if( v4 == *(&ExBootDevicesRemovedEvent + 398) )
        goto LABEL_7;
    }
    WmipReferenceEntry(v4);
  }
  KeReleaseMutex((_KMUTANT *)((char *)&ExBootDevicesRemovedEvent + 3072), 0);
  return(MOFRESOURCE *)v4;
}

Referenced by:

WmipAddMofResource