PnpGetMultiSzLength

__int64 __fastcall PnpGetMultiSzLength(__int64 a1, __int64 a2, _QWORD *a3){
  __int64 v4; 
  NTSTATUS v6; 
  UINT64 *v7; 
  UINT64 v8; 
  unsigned __int64 v9; 
  UINT64 v10; 
  UINT64 v11; 
  UINT64 pcchLength; 

  pcchLength = 0i64;
  *a3 = 0i64;
  v4 = 0i64;
  do
  {
    v6 = RtlStringCchLengthW((WCHAR *)(a1 + 2 * v4), a2 - v4, &pcchLength);
    if( v6 < 0 )
      break;
    v8 = *v7;
    v9 = -1i64;
    v10 = pcchLength;
    v11 = *v7 + pcchLength;
    if( v11 >= *v7 )
      v9 = *v7 + pcchLength;
    v6 = v11 < *v7 ? 0xC0000095 : 0;
    *v7 = v9;
    if( v11 < v8 )
      break;
    v4 = -1i64;
    if( v9 + 1 >= v9 )
      v4 = v9 + 1;
    v6 = v9 + 1 < v9 ? 0xC0000095 : 0;
    *v7 = v4;
    if( v9 + 1 < v9 )
      break;
  }
  while( v10 );
  return(unsigned int)v6;
}

Referenced by:

PiSwStartCreate
PnpAllocateMultiSZ
PnpCompareMultiSz