LdrpCompareResourceNamesWithValidation

INT64 __fastcall LdrpCompareResourceNamesWithValidation(
        INT64 a1,
        INT64 a2,
        const WCHAR *a3,
        INT64 a4,
        UINT64 *a5,
        BYTE *a6){
  __int64 v7; 
  unsigned __int16 *v9; 
  unsigned int v10; 
  __int64 v11; 
  *a6 = 1;
  v7 = *(unsigned int *)a5;
  if( ((unsigned __int64)a3 & 0xFFFFFFFFFFFF0000ui64) != 0 )
  {
    if( (int)v7 >= 0 )
      return -1i64;
    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 1i64;
  }
  if( (int)v7 < 0 )
    return 1i64;
  return(unsigned int)((_DWORD)a3 - v7);
}

Referenced by:

LdrEnumResources
LdrpSearchResourceSection_U