PiIommuFreeExtension

NTSTATUS __stdcall PiIommuFreeExtension(ULONG_PTR BugCheckParameter2){
  _QWORD *v1; 
  void *v2; 
  void *v3; 

  v1 = *(_QWORD **)&BugCheckParameter2;
  if( (*(_BYTE *)(*(_QWORD *)&BugCheckParameter2 + 16i64) & 2) != 0 )
    KeBugCheckEx(
      0xCAu,
      (PVOID)0x11,
      *(PVOID *)&BugCheckParameter2,
      (PVOID)*(unsigned __int8 *)(*(_QWORD *)&BugCheckParameter2 + 16i64),
      (PVOID)0x1001);
  v2 = **(void ***)&BugCheckParameter2;
  if( v2 )
  {
    ExFreePoolWithTag(v2, 0x64706E50u);
    *v1 = 0i64;
  }
  v3 = (void *)v1[3];
  if( v3 )
  {
    ExFreePoolWithTag(v3, 0x64706E50u);
    v1[3] = 0i64;
  }
  return(unsigned int)ExFreePoolWithTag(v1, 0x64706E50u);
}

Referenced by:

PiIommuAllocateExtension
PipDmgDestroyIommuExtension