KiTpSetupCompletion
__int64 __fastcall KiTpSetupCompletion(ULONG_PTR a1, char a2, const void *a3, void *a4, unsigned int Size, __int64 a6){
unsigned int v10;
int ImageData;
*(_OWORD *)a6 = 0i64;
*(_OWORD *)(a6 + 16) = 0i64;
*(_QWORD *)(a6 + 32) = 0i64;
v10 = 4096 - ((unsigned __int16)a3 & 0xFFF);
if( v10 > 0xF )
v10 = 15;
ImageData = KiTpReadImageData(a1, a2, a3, (void *)(a6 + 6), v10);
if( ImageData >= 0 )
{
*(_BYTE *)(a6 + 5) = v10;
ImageData = KiTpParseInstruction((CHAR *)a6);
if( ImageData == -1073741306 )
{
if( v10 >= 0xF )
return(unsigned int)ImageData;
*(_OWORD *)a6 = 0i64;
*(_OWORD *)(a6 + 16) = 0i64;
*(_QWORD *)(a6 + 32) = 0i64;
ImageData = KiTpReadImageData(a1, a2, a3, (void *)(a6 + 6), 0xFu);
if( ImageData < 0 )
return(unsigned int)ImageData;
*(_BYTE *)(a6 + 5) = 15;
ImageData = KiTpParseInstruction((CHAR *)a6);
}
if( ImageData >= 0 )
memmove((UINT8 *)a4, (UINT8 *)(a6 + 6), Size);
}
return(unsigned int)ImageData;
}Referenced by:
KeSetTracepoint