HalpInterruptGetRemappedLineState

VOID __stdcall HalpInterruptGetRemappedLineState(_POP_PPM_PROFILE *Profile, UINT64 CurrentTime){
  ULONG_PTR **v2; 
  __int64 v3; 
  __int64 v4; 
  int v5; 
  _OWORD *v6; 
  _OWORD *v7; 
  v7 = 0i64;
  v4 = v3;
  if( *(_DWORD *)CurrentTime )
  {
    if( *(_DWORD *)CurrentTime == 3 )
    {
      *(_OWORD *)v3 = 0i64;
      *(_OWORD *)(v3 + 16) = 0i64;
      *(_OWORD *)(v3 + 32) = 0i64;
      *(_QWORD *)(v3 + 48) = 0i64;
      *(_DWORD *)v3 = *(_DWORD *)(CurrentTime + 12);
      v5 = *(_DWORD *)(CurrentTime + 16);
      *(_DWORD *)(v3 + 16) = -1;
      *(_DWORD *)(v3 + 8) = v5;
      *(_DWORD *)(v3 + 12) = 16;
      *(_DWORD *)(v3 + 20) = 1;
      *(_DWORD *)(v3 + 48) = *(_DWORD *)(CurrentTime + 4);
      *v2 = (ULONG_PTR *)HalpInterruptController;
    }
  }
  else if( (int)HalpInterruptFindControllerAndLineState((unsigned int)Profile->Name, v2, (ULONG_PTR *)&v7) >= 0 )
  {
    v6 = v7;
    *(_OWORD *)v4 = *v7;
    *(_OWORD *)(v4 + 16) = v6[1];
    *(_OWORD *)(v4 + 32) = v6[2];
    *(_QWORD *)(v4 + 48) = *((_QWORD *)v6 + 6);
    *(_DWORD *)(v4 + 12) |= 0x10u;
  }
}

Referenced by:

HalpInterruptSetRemappedDestination