LdrpCompareResourceNamesWithValidation

NTSTATUS __stdcall LdrpCompareResourceNamesWithValidation(
        INT64 a1,
        INT64 a2,
        const WCHAR *a3,
        INT64 a4,
        UINT64 *a5,
        _BYTE *a6){
  __int64 v7; 
  unsigned __int16 *v9; 
  NTSTATUS v10; 
  __int64 v11; 

  *a6 = 1;
  v7 = *(unsigned int *)a5;
  if( ((unsigned __int64)a3 & 0xFFFFFFFFFFFF0000ui64) != 0 )
  {
    if( (int)v7 >= 0 )
      return -1;
    LODWORD(v7) = v7 & 0x7FFFFFFF;
    v9 = (unsigned __int16 *)(a4 + v7);
    v10 = wcsncmp(a3, v9 + 1, *v9);
    if( v10 )
      return v10;
    v11 = -1i64;
    do
      ++v11;
    while( a3[v11] );
    if( v11 == *v9 )
      return v10;
    return 1;
  }
  if( (int)v7 < 0 )
    return 1;
  return(_DWORD)a3 - v7;
}

Referenced by:

LdrEnumResources
LdrpSearchResourceSection_U