<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def __extract_file(self, path, fileinfo, destination):
 """Extracts the specified file to the specified destination. Args: path (str):
 Relative (to the root of the archive) path of the file to extract. fileinfo (dict):
 Dictionary containing the offset and size of the file (Extracted from the header). destination (str):
 Directory to extract the archive to. """


        if 'offset' not in fileinfo:
            self.__copy_extracted(path, destination)
            return

        self.asarfile.seek(
            self.__absolute_offset(fileinfo['offset'])
        )

        # TODO: read in chunks, ain't going to read multiple GB's in memory
        contents = self.asarfile.read(
            self.__absolute_offset(fileinfo['size'])
        )

        destination_path = os.path.join(destination, path)

        with open(destination_path, 'wb') as fp:
            fp.write(contents)

        LOGGER.debug('Extracted %s to %s', path, destination_path)