KiTpAccessMemory
VOID __fastcall KiTpAccessMemory(){
_BYTE *v0;
_BYTE *v1;
char v2;
_BYTE *v3;
_BYTE *v4;
unsigned __int64 v5;
_BYTE *v6;
__int64 v7;
char v8;
unsigned __int8 v9;
char v10;
v3 = v1;
v4 = v0;
if( v2 == 1 )
{
if( v10 )
{
ProbeForWrite(v1, v9, 1ui64);
}
else if( v9 )
{
v5 = (unsigned __int64)&v1[v9];
if( v5 > 0x7FFFFFFF0000i64 || v5 < (unsigned __int64)v1 )
MEMORY[0x7FFFFFFF0000] = 0;
}
}
v6 = v3;
if( !v10 )
v6 = v4;
if( !v10 )
v4 = v3;
switch( v9 )
{
case 1u:
*v6 = *v4;
break;
case 2u:
*(_WORD *)v6 = *(_WORD *)v4;
break;
case 4u:
if( v10 && v8 )
{
v7 = *(unsigned int *)v4;
goto LABEL_16;
}
*(_DWORD *)v6 = *(_DWORD *)v4;
break;
default:
v7 = *(_QWORD *)v4;
LABEL_16:
*(_QWORD *)v6 = v7;
return;
}
}Referenced by:
KiTpEmulateGroup0Instruction
KiTpEmulateGroup11Instruction
KiTpEmulateGroup1Instruction
KiTpEmulateInstruction
KiTpEmulateMovzx
KiTpEmulateRegisterPushPop
KiTpReadOperandValue