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