// SPDX-License-Identifier: Apache-2.0

///|
pub fn PEImage::overlay(self : Self) -> OverlayInfo? {
  let mut max_end = self.size_of_headers
  for section in self.sections {
    let end = section.raw_offset + section.raw_size
    if end > max_end {
      max_end = end
    }
  }
  match self.directory(4) {
    Some(directory) if directory.virtual_address != 0UL && directory.size > 0 =>
      if directory.virtual_address <= 0x7fffffffUL {
        let end = directory.virtual_address.to_int() + directory.size
        if end > max_end {
          max_end = end
        }
      }
    _ => ()
  }
  if max_end < self.data.length() {
    Some({ offset: max_end, size: self.data.length() - max_end, })
  } else {
    None
  }
}