NtUnmapViewOfSectionEx

NTSTATUS __stdcall NtUnmapViewOfSectionEx(VOID *ProcessHandle, VOID *BaseAddress, UINT64 Flags){
  char v3; 
  char PreviousMode; 
  NTSTATUS result; 
  NTSTATUS v7; 
  UINT64 Tag; 
  PVOID Object; 

  Object = 0i64;
  v3 = Flags;
  if( (Flags & 0xFFFFFFFC) != 0 )
    return -1073741583;
  PreviousMode = KeGetCurrentThread()->PreviousMode;
  if( PreviousMode == 1 && (unsigned __int64)BaseAddress > 0x7FFFFFFEFFFFi64 )
    return -1073741799;
  LODWORD(Tag) = 2002152781;
  result = ObReferenceObjectByHandleWithTag(
             ProcessHandle,
             8ui64,
             (_OBJECT_TYPE *)PsProcessType,
             PreviousMode,
             Tag,
             &Object,
             0i64);
  if( result >= 0 )
  {
    v7 = MiUnmapViewOfSection((_EPROCESS *)Object, BaseAddress, v3 & 1);
    ObfDereferenceObjectWithTag(Object, 0x77566D4Dui64);
    return v7;
  }
  return result;
}

Referenced by:

NtUnmapViewOfSection