IopCallBootDriverReinitializationRoutines

UINT8 __stdcall IopCallBootDriverReinitializationRoutines(){
  UINT8 v0; 
  _LIST_ENTRY *v1; 
  VOID **p_Flink; 

  v0 = 0;
  PnpDiagnosticTrace(&KMPnPEvt_BootDriverReinit_Start, 0, 0i64);
  while( 1 )
  {
    v1 = IopInterlockedRemoveHeadList((_LIST_ENTRY *)&stru_140C452E0 + 101);
    p_Flink = (VOID **)&v1->Flink;
    if( !v1 )
      break;
    v0 = 1;
    ++LODWORD(v1[1].Flink[3].Flink[1].Flink);
    LODWORD(v1[1].Flink[1].Flink) &= ~0x20u;
    ((void(__fastcall *)(_LIST_ENTRY *, _LIST_ENTRY *, _QWORD))v1[1].Blink)(
      v1[1].Flink,
      v1[2].Flink,
      LODWORD(v1[1].Flink[3].Flink[1].Flink));
    ObfDereferenceObjectWithTag(p_Flink[2], 0x746C6644ui64);
    ExFreePoolWithTag(p_Flink, 0);
  }
  byte_140C50A1C = 1;
  PnpDiagnosticTrace(&KMPnPEvt_BootDriverReinit_Stop, 0, 0i64);
  return v0;
}

Referenced by:

IopInitializeBootDrivers