PnpGetMultiSzLength

NTSTATUS __stdcall PnpGetMultiSzLength(PWCHAR MultiSz, UINT64 MaxLength, UINT64 *MultiSzLength){
  __int64 v4; 
  signed int v6; 
  __int64 *v7; 
  size_t v8; 
  size_t v9; 
  size_t v10; 
  size_t v11; 
  size_t pcchLength; 
  pcchLength = 0i64;
  *MultiSzLength = 0i64;
  v4 = 0i64;
  do
  {
    v6 = RtlStringCchLengthW(&MultiSz[v4], MaxLength - 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 v6;
}

Referenced by:

PiSwStartCreate
PnpAllocateMultiSZ
PnpCompareMultiSz