KiTpWriteRegisterValue

CHAR __stdcall KiTpWriteRegisterValue(INT64 a1, INT64 a2, UINT64 a3, CHAR a4, INT64 a5){
  _BYTE *v5; 
  _BYTE *v6; 
  __int64 v7; 
  CHAR result; 

  LODWORD(v5) = KiTpGetRegisterAddressByIndex(a1, a2, a3, a4, 1);
  v6 = v5;
  result = *(_BYTE *)(v7 + 1);
  switch( result )
  {
    case 8:
      result = a5;
      *v6 = a5;
      break;
    case 16:
      result = a5;
      *(_WORD *)v6 = a5;
      break;
    case 32:
      result = a5;
      *(_QWORD *)v6 = (unsigned int)a5;
      break;
    default:
      *(_QWORD *)v6 = a5;
      break;
  }
  return result;
}

Referenced by:

KiTpEmulateGroup0Instruction
KiTpEmulateInstruction
KiTpEmulateMovRegImm