o
    j                     @   s(   d dl Z G dd dZG dd dZdS )    Nc                   @   s$   e Zd Zdd Zdd Zdd ZdS )FileSectionc                 C   s   || _ |t| | _|| _d S N)startposlenendposdata)selfr   r    r	   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/alsadecryptor/asbmfile.py__init__   s   
zFileSection.__init__c                 C   s    || j kr|| | jkrdS dS )NTF)r   r   r   startsizer	   r	   r
   inrange
   s   zFileSection.inrangec                 C   s   | j || j || j |  S r   )r   r   r   r	   r	   r
   read   s   zFileSection.readN)__name__
__module____qualname__r   r   r   r	   r	   r	   r
   r      s    r   c                   @   sJ   e Zd Zdd ZdddZdddZd	d
 Zdd Zdd ZdddZ	dS )SMBFileReaderc                 C   s   || _ g | _d| _d S )Nr   )smbfilecachecurpos)r   r   r	   r	   r
   r      s   
zSMBFileReader.__init__rc                    s   | j j||dI d H S )N)mode)r   open)r   
connectionr   r	   r	   r
   r      s   zSMBFileReader.openc                    s   |dkrdS |dkr.| j D ]}|| j|du r-|| j|}| |dI d H  |  S qt| jj| jj}d}t	t
t|| D ]}| j|I d H \}}|d urW|||7 }qDt| j|}| j | || j|}| | j| dI d H  |S )Nr       r   T   )r   r   r   r   seekminr   maxreadsizer   rangeintmathceilr   append)r   nsectionr   readsizebuffer_errr	   r	   r
   r      s,   

zSMBFileReader.readc                       | j  I d H S r   )r   closer   r	   r	   r
   r.   ?      zSMBFileReader.closec                    r-   r   )r   deleter/   r	   r	   r
   r1   B   r0   zSMBFileReader.deletec                 C   s   | j S r   )r   r/   r	   r	   r
   tellE   s   zSMBFileReader.tellr   c                    s6   | j ||I d H \}}|d ur|| j  | _d S r   )r   r   r2   r   )r   r'   whencer+   r,   r	   r	   r
   r   H   s
   zSMBFileReader.seekN)r   )r   )r   )
r   r   r   r   r   r   r.   r1   r2   r   r	   r	   r	   r
   r      s    

#r   )r$   r   r   r	   r	   r	   r
   <module>   s   