HalpInterruptEnumerateUnmaskedInterrupts

VOID __stdcall HalpInterruptEnumerateUnmaskedInterrupts(){
  __int64 v0; 
  __int64(__fastcall *v1)(__int64, __int64); 
  _WORD *v2; 
  _WORD *v3; 
  unsigned int v4; 
  char v5; 
  unsigned __int8 v6; 
  PVOID *v7; 
  unsigned __int64 v8; 
  PVOID *v9; 
  PVOID *v10; 
  PVOID *v11; 
  PVOID *v12; 
  int v13; 
  _DWORD *v14; 
  __int64(__fastcall *v15)(__int64, __int64); 
  __int64 v16; 
  PVOID *v17; 
  PVOID *v18; 

  v16 = v0;
  v15 = v1;
  v3 = v2;
  v4 = (unsigned __int16)v2[1];
  if( *v3 && v4 >= 0x20 )
  {
    memset(v3, 0i64, v4 - 4);
    v5 = 1;
    v6 = HalpAcquireHighLevelLock(&qword_140C49C40);
    v7 = (PVOID *)qword_140C4B850;
    v8 = v6;
    while( v7 != &qword_140C4B850 )
    {
      v17 = v7;
      v9 = v7;
      v7 = (PVOID *)*v7;
      v10 = v9 + 30;
      v11 = (PVOID *)v9[30];
      v18 = v9 + 30;
      while( v11 != v10 )
      {
        v12 = v11;
        v11 = (PVOID *)*v11;
        if( *((_DWORD *)v12 + 7) != -1 )
        {
          v13 = *((_DWORD *)v12 + 5);
          if( v13 < *((_DWORD *)v12 + 6) )
          {
            do
            {
              v14 = (char *)v12[5] + 56 * (unsigned int)(v13 - *((_DWORD *)v12 + 5));
              if( (v14[3] & 1) != 0 )
              {
                *((_DWORD *)v3 + 4) = *((_DWORD *)v12 + 7) + v13 - *((_DWORD *)v12 + 5);
                v3[2] = 0;
                *((_DWORD *)v3 + 2) = v14[2];
                *((_DWORD *)v3 + 3) = *v14;
                *((_QWORD *)v3 + 3) = v9[43];
                v5 = v15(v16, (__int64)v3);
                if( !v5 )
                  goto LABEL_16;
                v9 = v17;
              }
              ++v13;
            }
            while( v13 < *((_DWORD *)v12 + 6) );
            v10 = v18;
          }
        }
      }
    }
LABEL_16:
    KxReleaseSpinLock(&qword_140C49C40);
    __writecr8(v8);
    if( v5 )
    {
      if( byte_140C50754 )
        HalpInterruptEnumerateUnmaskedSecondaryInterrupts(v15, v16, (__int64)v3);
    }
  }
}

Referenced by:

No references.