WmipProbeWnodeWorker

INT64 __fastcall WmipProbeWnodeWorker(
        _WNODE_HEADER *WnodeHeader,
        UINT64 MinWnodeSize,
        UINT64 InstanceNameOffset,
        UINT64 DataBlockOffset,
        UINT64 DataBlockSize,
        UINT64 InBufferLen,
        UINT64 OutBufferLen,
        UINT8 CheckOutBound,
        UINT8 CheckInBound){
  unsigned int v9; 
  unsigned int v10; 
  NTSTATUS v11; 
  UINT64 pulResult; 
  LODWORD(pulResult) = InstanceNameOffset;
  v9 = InBufferLen;
  v10 = MinWnodeSize;
  v11 = 0;
  if( !(_DWORD)InstanceNameOffset )
  {
LABEL_11:
    if( (_DWORD)DataBlockOffset && (unsigned int)DataBlockOffset < v10 )
      return 3221225473i64;
    goto LABEL_13;
  }
  if( (unsigned int)InstanceNameOffset < v10 )
    return 3221225473i64;
  if( (((unsigned int)InstanceNameOffset + 1i64) & 0xFFFFFFFFFFFFFFFEui64) != (unsigned int)InstanceNameOffset )
    return 3221225473i64;
  if( (unsigned int)InstanceNameOffset > (unsigned __int64)(unsigned int)InBufferLen - 2 )
    return 3221225473i64;
  v11 = RtlULongAdd(
          (unsigned int)InstanceNameOffset,
          (unsigned int)*(unsigned __int16 *)((char *)&WnodeHeader->BufferSize + (unsigned int)InstanceNameOffset) + 2,
          &pulResult);
  if( v11 < 0 || (unsigned int)pulResult > v9 || CheckOutBound && (unsigned int)pulResult > (unsigned int)OutBufferLen )
    return 3221225473i64;
  if( (_DWORD)DataBlockOffset )
  {
    if( (unsigned int)DataBlockOffset < (unsigned int)pulResult )
      return 3221225473i64;
    goto LABEL_11;
  }
LABEL_13:
  if( (((unsigned int)DataBlockOffset + 7i64) & 0xFFFFFFFFFFFFFFF8ui64) == (unsigned int)DataBlockOffset
    && (!CheckInBound
     || !(_DWORD)DataBlockOffset
     || (unsigned int)DataBlockSize <= v9 && (unsigned int)DataBlockOffset <= v9 - (unsigned int)DataBlockSize)
    && (!CheckOutBound
     || (unsigned int)OutBufferLen >= v10
     && (unsigned int)DataBlockOffset <= (unsigned int)OutBufferLen
     && (_DWORD)DataBlockOffset) )
  {
    return(unsigned int)v11;
  }
  return 3221225473i64;
}

Referenced by:

WmipProbeWnodeMethodItem
WmipProbeWnodeSingleInstance
WmipProbeWnodeSingleItem