PiCMCaptureProblemInputData
NTSTATUS __stdcall PiCMCaptureProblemInputData(
VOID *IoctlInputBuffer,
UINT64 IoctlInputBufferSize,
_CMAPI_INPUT_PROBLEM_DATA *ProblemData){
_OWORD *v3;
NTSTATUS v4;
__int64 v5;
char *v6;
_OWORD *v7;
v4 = 0;
if( IoctlInputBuffer && (unsigned int)IoctlInputBufferSize >= 0x1A0 )
{
v5 = 3i64;
if( ((unsigned __int8)IoctlInputBuffer & 3) != 0 )
ExRaiseDatatypeMisalignment();
v6 = (char *)IoctlInputBuffer + (unsigned int)IoctlInputBufferSize;
if( (unsigned __int64)v6 > 0x7FFFFFFF0000i64 || v6 < IoctlInputBuffer )
MEMORY[0x7FFFFFFF0000] = 0;
v7 = v3;
do
{
*v7 = *(_OWORD *)IoctlInputBuffer;
v7[1] = *((_OWORD *)IoctlInputBuffer + 1);
v7[2] = *((_OWORD *)IoctlInputBuffer + 2);
v7[3] = *((_OWORD *)IoctlInputBuffer + 3);
v7[4] = *((_OWORD *)IoctlInputBuffer + 4);
v7[5] = *((_OWORD *)IoctlInputBuffer + 5);
v7[6] = *((_OWORD *)IoctlInputBuffer + 6);
v7 += 8;
*(v7 - 1) = *((_OWORD *)IoctlInputBuffer + 7);
IoctlInputBuffer = (char *)IoctlInputBuffer + 128;
--v5;
}
while( v5 );
*v7 = *(_OWORD *)IoctlInputBuffer;
v7[1] = *((_OWORD *)IoctlInputBuffer + 1);
if( *(_DWORD *)v3 == 416 )
*((_WORD *)v3 + 203) = 0;
else
v4 = -1073741811;
}
else
{
v4 = -1073741811;
}
if( v4 < 0 )
memset(v3, 0i64, 0x1A0u);
return v4;
}Referenced by:
PiCMSetDeviceProblem