PipInitializeDriverDependentDLLs

void __fastcall PipInitializeDriverDependentDLLs(int a1, _LIST_ENTRY *a2){
  _LIST_ENTRY *v4; 
  _LIST_ENTRY *Flink; 
  bool v6; 
  _LIST_ENTRY *v7; 
  int Flink_high; 
  char v9; 
  _QWORD v10[14]; 
  int v11; 

  memset(v10, 0i64, 0x68u);
  v11 = 0;
  v4 = a2 + 1;
  Flink = v4->Flink;
  while( Flink != v4 )
  {
    v7 = Flink;
    Flink = Flink->Flink;
    if( ((__int64)v7[6].Blink & 0x4000000) != 0 )
    {
      Flink_high = HIDWORD(v7[14].Flink);
      if( a1 )
      {
        if( a1 == 1 )
        {
          v6 = (HIDWORD(v7[14].Flink) & 2) != 0;
LABEL_3:
          if( v6 )
          {
            if( a1 )
            {
              v11 = 0;
              LODWORD(v10[0]) = 0;
              *(_LIST_ENTRY *)&v10[1] = *(_LIST_ENTRY *)((char *)v7 + 72);
              HIDWORD(v10[0]) = (__int64)v7[14].Flink & 1;
              LODWORD(v10[11]) = v7[13].Flink;
              LODWORD(v10[12]) = v7[13].Blink;
              v10[9] = v7[12].Flink;
              HIDWORD(v10[11]) = HIDWORD(v7[13].Flink);
              HIDWORD(v10[12]) = HIDWORD(v7[13].Blink);
              v10[10] = v7[12].Blink;
              v10[4] = &word_140A76040;
              v10[3] = 0x20000i64;
              *(_LIST_ENTRY *)&v10[7] = v7[11];
              *(_LIST_ENTRY *)&v10[5] = v7[10];
              PnpNotifyEarlyLaunchImageLoad((__int64)v10, (__int64)&v11);
              v9 = PnpDoPolicyCheck(v11, a1 != 1);
            }
            else
            {
              v9 = 1;
            }
            if( v9 )
              MmCallDllInitialize((_KLDR_DATA_TABLE_ENTRY *)v7, v4);
          }
        }
        else if( a1 == 2 )
        {
          v6 = (Flink_high & 3) == 0;
          goto LABEL_3;
        }
      }
      else if( (Flink_high & 1) != 0 )
      {
        v6 = 1;
        goto LABEL_3;
      }
    }
  }
}

Referenced by:

IopInitializeBootDrivers