def METHOD_NAME(self, addr, value, depth=0):
    try:
        value = self.dev.ctrl_transfer(bmRequestType=0x43, bRequest=0x00,
                wValue=addr & 0xffff,
                wIndex=(addr >> 16) & 0xffff,
                data_or_wLength=bytes([(value >> 0) & 0xff,
                                       (value >> 8) & 0xff,
                                       (value >> 16) & 0xff,
                                       (value >> 24) & 0xff]
                                      ), timeout=None)
    except usb.core.USBError as e:
        if e.errno == 13:
            print("Access Denied. Maybe try using sudo?")
        self.close()
        self.open()
        if depth < self.max_recursion_count:
            return self.METHOD_NAME(addr, value, depth+1)