IommuGetLibraryContext

INT64 __fastcall IommuGetLibraryContext(INT64 a1, UINT64 a2, UINT8 **a3){
  int v3; 
  int v5; 
  VOID **SystemContext; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  INT64 result; 
  __int64 v11; 
  *a3 = 0i64;
  v3 = a1;
  v5 = a2;
  SystemContext = IommupGetSystemContext((unsigned int)a2);
  v9 = HalpMmAllocCtxAlloc(v7, 56i64);
  if( !v9 )
    return 3221225626i64;
  v11 = HalpMmAllocCtxAlloc(v8, 16i64);
  if( !v11 )
  {
    HalpMmAllocCtxFree(0i64, v9);
    return 3221225626i64;
  }
  *(_QWORD *)v9 = 0i64;
  *(_QWORD *)(v9 + 8) = 0i64;
  *(_QWORD *)(v9 + 48) = 0i64;
  *(_QWORD *)(v9 + 32) = 0i64;
  *(_QWORD *)(v9 + 48) = v9 + 40;
  *(_QWORD *)(v9 + 40) = v9 + 40;
  *(_QWORD *)(v9 + 24) = 0i64;
  *(_DWORD *)(v9 + 16) = v3;
  result = 0i64;
  *(_DWORD *)(v9 + 20) = v5;
  *(_QWORD *)v11 = SystemContext;
  *(_QWORD *)(v11 + 8) = v9;
  *a3 = (UINT8 *)v11;
  return result;
}

Referenced by:

No references.