///|
pub fn PEImage::delay_imports(
  self : Self,
) -> Array[DelayImportLibrary] raise PeError {
  let directory = match self.directory(13) {
    Some(directory) if directory.virtual_address != 0UL && directory.size > 0 =>
      directory
    _ => return []
  }
  let start = self.rva_to_offset(directory.virtual_address)
  let limit = if directory.size >= 32 { directory.size / 32 } else { 4096 }
  let descriptor_limit = if limit < 4096 { limit } else { 4096 }
  let libraries = []
  for index in 0.. UInt64 raise PeError {
  if value == 0UL || (attributes & 1) != 0 {
    return value
  }
  match self.va_to_rva(value) {
    Some(rva) => rva
    None => raise PeError(0, "delay-import VA is outside the image")
  }
}