CmpFreeDriverList

__int64 __fastcall CmpFreeDriverList(__int64 a1, _QWORD *a2){
  _QWORD *v2; 
  __int64 v5; 
  _QWORD *v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 result; 

  v2 = (_QWORD *)*a2;
  if( (_QWORD *)*a2 != a2 )
  {
    do
    {
      v5 = v2[16];
      v6 = (_QWORD *)*v2;
      if( v5 )
        (*(void(__fastcall **)(__int64, _QWORD))(a1 + 32))(v5, *((unsigned __int16 *)v2 + 60));
      v7 = v2[5];
      if( v7 )
        (*(void(__fastcall **)(__int64, _QWORD))(a1 + 32))(v7, *((unsigned __int16 *)v2 + 17));
      v8 = v2[3];
      if( v8 )
        (*(void(__fastcall **)(__int64, _QWORD))(a1 + 32))(v8, *((unsigned __int16 *)v2 + 9));
      result = (*(__int64(__fastcall **)(_QWORD *, __int64))(a1 + 32))(v2, 144i64);
      v2 = v6;
    }
    while( v6 != a2 );
  }
  return result;
}

Referenced by:

CmGetSystemDriverList