def METHOD_NAME(self, iterations, write_count, random_order=False):
    if random_order:
        self.logger.log(f'[*] Fuzzing randomly chosen {iterations:d} I/O ports..\n')
    else:
        self.logger.log(f'[*] Fuzzing I/O ports in a range 0:0x{iterations - 1:X}..\n')
    io_addr = 0
    for it in range(iterations):
        if _FLUSH_LOG_EACH_ITER:
            self.logger.flush()
        if random_order:
            io_addr = random.randint(0, MAX_PORTS)
        else:
            io_addr = it
        if io_addr in _EXCLUDE_PORTS:
            self.logger.log(f'[*] Skipping port 0x{io_addr:04X}')
            continue
        self.logger.log(f'[*] Fuzzing I/O port 0x{io_addr:04X}')
        self.logger.log("    Reading port")
        port_value = self.cs.io.read_port_byte(io_addr)
        if _FUZZ_SPECIAL_VALUES:
            self.logger.log("    Writing special 1-2-4 byte values")
            try:
                self.cs.io.write_port_byte(io_addr, port_value)
                self.cs.io.write_port_byte(io_addr, (~port_value) & 0xFF)
                self.cs.io.write_port_byte(io_addr, 0xFF)
                self.cs.io.write_port_byte(io_addr, 0x00)
                self.cs.io.write_port_byte(io_addr, 0x5A)
                self.cs.io.write_port_word(io_addr, 0xFFFF)
                self.cs.io.write_port_word(io_addr, 0x0000)
                self.cs.io.write_port_word(io_addr, 0x5AA5)
                self.cs.io.write_port_dword(io_addr, 0xFFFFFFFF)
                self.cs.io.write_port_dword(io_addr, 0x00000000)
                self.cs.io.write_port_word(io_addr, 0x5AA55AA5)
            except:
                pass
        self.logger.log(f'    Writing values 0..{MAX_PORT_VALUE:X} ({write_count:d} times each)')
        for v in range(MAX_PORT_VALUE + 1):
            for _ in range(write_count):
                try:
                    self.cs.io.write_port_byte(io_addr, v)
                except:
                    pass
    return ModuleResult.WARNING