KiTpSetFlagsSub

NTSTATUS __stdcall KiTpSetFlagsSub(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5){
  char v5; 

  v5 = *(_BYTE *)(a1 + 1);
  *(_DWORD *)(*(_QWORD *)(a2 + 8) + 68i64) &= 0xFFFFF7EF;
  *(_DWORD *)(*(_QWORD *)(a2 + 8) + 68i64) |= 16
                                            * ((((((a5 ^ a4) & ~(a5 ^ a3)) >> (v5 - 1)) & 1) << 7) | ((unsigned __int8)((a5 >> 3) & (a3 >> 3) & (a4 >> 3)) | (unsigned __int8)((~a4 >> 3) & ((a5 >> 3) | (a3 >> 3)))) & 1);
  *(_DWORD *)(*(_QWORD *)(a2 + 8) + 68i64) &= ~1u;
  *(_DWORD *)(*(_QWORD *)(a2 + 8) + 68i64) |= ((a5 & a4 & a3 | ~a4 & (a5 | a3)) >> (v5 - 1)) & 1;
  return KiTpSetFlagsZeroSignParity(a1, a2, a3);
}

Referenced by:

KiTpEmulateGroup0Instruction
KiTpEmulateGroup1Instruction