WheapWmiExecuteErrorInjectionMethod

INT64 __stdcall WheapWmiExecuteErrorInjectionMethod(
        UINT64 MethodId,
        UINT64 BufferSize,
        UINT8 *Buffer,
        UINT64 InputBufferSize,
        UINT64 *BytesUsed){
  unsigned int v6; 
  int v7; 
  int v8; 
  int v9; 
  __int64 v10; 
  __int64 v11; 
  UINT8 *v12; 
  __int64 v13; 
  _QWORD *v14; 
  int v15; 
  int InjectionCapabilities; 
  int v18; 
  int v19; 
  v6 = BufferSize;
  v7 = MethodId - 1;
  if( !v7 )
  {
    v19 = 0;
    InjectionCapabilities = PshedGetInjectionCapabilities(&v19);
    v9 = 8;
    if( v6 >= 8 )
    {
      if( InjectionCapabilities >= 0 )
      {
        v18 = v19;
        v8 = 0;
        *(_DWORD *)Buffer = 0;
        *((_DWORD *)Buffer + 1) = v18;
        goto LABEL_10;
      }
      goto LABEL_8;
    }
LABEL_12:
    v8 = -1073741789;
    goto LABEL_10;
  }
  if( v7 == 1 )
  {
    if( (unsigned int)InputBufferSize < 0x24 )
    {
      v8 = -1073741811;
      v9 = 0;
      goto LABEL_10;
    }
    v10 = *(unsigned int *)Buffer;
    v11 = *((_QWORD *)Buffer + 1);
    v12 = Buffer + 16;
    v13 = *((_QWORD *)Buffer + 2);
    v14 = v12 + 8;
    v9 = 4;
    if( v6 >= 4 )
    {
      v15 = 0;
      v8 = PshedInjectError(v10, v11, v13, *v14, v14[1]);
      if( v8 >= 0 )
      {
LABEL_9:
        *(_DWORD *)Buffer = v15;
        goto LABEL_10;
      }
LABEL_8:
      v8 = -1073741823;
      v15 = -1073741823;
      goto LABEL_9;
    }
    goto LABEL_12;
  }
  v8 = -1073741161;
  v9 = 0;
LABEL_10:
  *(_DWORD *)BytesUsed = v9;
  return(unsigned int)v8;
}

Referenced by:

WheapWmiExecuteMethod