o
    õ±j}b  ã                   @   sv   G d d„ dƒZ G dd„ de ƒZG dd„ dƒZG dd„ dƒZG dd	„ d	ƒZG d
d„ dƒZG dd„ dƒZG dd„ dƒZdS )c                   @   s4   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdd„ Zd	S )
ÚM128Ac                 C   s   d| _ d| _d S ©Né    ©ÚLowÚHigh©Úself© r	   ú‘/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minidump/streams/ContextStream.pyÚ__init__   s   
zM128A.__init__c                 C   s:   | ƒ }t j| d¡ddd|_t j| d¡ddd|_|S )Né   ÚlittleF©Ú	byteorderÚsignedT)ÚintÚ
from_bytesÚreadr   r   )ÚclsÚbuffÚm128ar	   r	   r
   Úparse	   s   zM128A.parsec                 C   s&   g }t |ƒD ]
}| |  |¡¡ q|S ©N)ÚrangeÚappendr   )r   r   ÚlengthÚarrÚir	   r	   r
   Úparse_array   s   zM128A.parse_arrayc                 C   s0   d}|d| j | j f 7 }|d| j| jf 7 }|S )NÚ zLow: %x (%d)zHigh: %x (%d)
r   ©r   Úsr	   r	   r
   Ú__str__   s   zM128A.__str__N)Ú__name__Ú
__module__Ú__qualname__r   Úclassmethodr   r   r"   r	   r	   r	   r
   r      s    

r   c                   @   s   e Zd ZdS )ÚNEON128N)r#   r$   r%   r	   r	   r	   r
   r'   !   s    r'   c                   @   ó(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )ÚXMM_SAVE_AREA32c                 C   sd   d| _ d| _d| _d| _d| _d| _d| _d| _d| _d| _	d| _
d| _d| _g | _g | _g | _d S r   )ÚControlWordÚ
StatusWordÚTagWordÚ	Reserved1ÚErrorOpcodeÚErrorOffsetÚErrorSelectorÚ	Reserved2Ú
DataOffsetÚDataSelectorÚ	Reserved3ÚMxCsrÚ
MxCsr_MaskÚFloatRegistersÚXmmRegistersÚ	Reserved4r   r	   r	   r
   r   (   s    
zXMM_SAVE_AREA32.__init__c                    s~  | ƒ }t jˆ  d¡ddd|_t jˆ  d¡ddd|_tt jˆ  d¡dddƒ|_tt jˆ  d¡dddƒ|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_	t jˆ  d¡ddd|_
t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t ˆ d¡|_t ˆ d¡|_‡ fd	d
„tdƒD ƒ|_|S )Né   r   Fr   é   é   r   é   c                    s&   g | ]}t tjˆ  d ¡dddƒ‘qS ©r;   r   Fr   )Úchrr   r   r   ©Ú.0r   ©r   r	   r
   Ú
<listcomp>M   s    ÿÿz)XMM_SAVE_AREA32.parse.<locals>.<listcomp>é`   )r   r   r   r*   r+   r?   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r7   r8   r   r9   )r   r   Úxmmr	   rB   r
   r   :   s(   
þzXMM_SAVE_AREA32.parsec                 C   s~  d}|dd| j | j f 7 }|dd| j| jf 7 }|dd| jf 7 }|dd| jf 7 }|dd| j| jf 7 }|dd	| j| jf 7 }|dd
| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j	| j	f 7 }|dd| j
| j
f 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd 7 }| jD ]}|d| 7 }q–|dd 7 }| jD ]}|d| 7 }q¨|ddd | j¡f 7 }|S )Nr   ú%s: %x (%d)
r*   r+   ú%s: %s
r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   ú%s:
zFloatRegisters:ú	%sr8   r9   )r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   Újoinr9   )r   r!   ÚfregÚxregr	   r	   r
   r"   T   s,   

zXMM_SAVE_AREA32.__str__N©r#   r$   r%   r   r&   r   r"   r	   r	   r	   r
   r)   '   s
    
r)   c                   @   r(   )ÚCTX_DUMMYSTRUCTNAMEc                 C   sp   g | _ g | _d| _d| _d| _d| _d| _d| _d| _d| _	d| _
d| _d| _d| _d| _d| _d| _d| _d S r   ©ÚHeaderÚLegacyÚXmm0ÚXmm1ÚXmm2ÚXmm3ÚXmm4ÚXmm5ÚXmm6ÚXmm7ÚXmm8ÚXmm9ÚXmm10ÚXmm11ÚXmm12ÚXmm13ÚXmm14ÚXmm15r   r	   r	   r
   r   o   s$   
zCTX_DUMMYSTRUCTNAME.__init__c                 C   sæ   | ƒ }t  |d¡|_t  |d¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_	t  |¡|_
t  |¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_t  |¡|_|S )Nr:   r   )r   r   rP   rQ   r   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   )r   r   Údsnr	   r	   r
   r   „   s(   zCTX_DUMMYSTRUCTNAME.parsec                 C   sp  d}|dd 7 }| j D ]}|d| 7 }q|dd 7 }| jD ]}|d| 7 }q|dd| jf 7 }|dd| jf 7 }|dd	| jf 7 }|dd
| jf 7 }|dd| jf 7 }|dd| jf 7 }|dd| jf 7 }|dd| j	f 7 }|dd| j
f 7 }|dd| jf 7 }|dd| jf 7 }|dd| jf 7 }|dd| jf 7 }|dd| jf 7 }|dd| jf 7 }|dd| jf 7 }|S )Nr   rH   rP   rI   rQ   ú%s: %srR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rO   )r   r!   ÚheadÚlegr	   r	   r
   r"      s0   

zCTX_DUMMYSTRUCTNAME.__str__NrM   r	   r	   r	   r
   rN   n   s
    
rN   c                   @   r(   )ÚCTX_DUMMYUNIONNAMEc                 C   s"   g | _ g | _g | _g | _g | _d S r   )ÚFltSaveÚQÚDÚDUMMYSTRUCTNAMEÚSr   r	   r	   r
   r   º   s
   
zCTX_DUMMYUNIONNAME.__init__c                    s`   | ƒ }t  ˆ ¡|_t ˆ d¡|_‡ fdd„tdƒD ƒ|_t ˆ ¡|_	‡ fdd„tdƒD ƒ|_
|S )Nr=   c                    ó"   g | ]}t jˆ  d ¡ddd‘qS )r   r   Fr   ©r   r   r   r@   rB   r	   r
   rC   Ç   ó    ÿÿz,CTX_DUMMYUNIONNAME.parse.<locals>.<listcomp>é    c                    rl   )r<   r   Fr   rm   r@   rB   r	   r
   rC   Ì   rn   )r)   r   rg   r'   r   rh   r   ri   rN   rj   rk   )r   r   Údunr	   rB   r
   r   Á   s   
þ
þzCTX_DUMMYUNIONNAME.parsec                 C   s   d}|dd| j f 7 }|dd 7 }| jD ]
}|d| ¡  7 }q| jD ]}|d| 7 }q"|dd	| jf 7 }|dd
 7 }| jD ]}|d| 7 }q=|S )Nr   rG   rg   rH   rh   rI   z	%drc   rj   rk   )rg   rh   r"   ri   rj   rk   )r   r!   ÚqÚdÚer	   r	   r
   r"   Ò   s   


zCTX_DUMMYUNIONNAME.__str__NrM   r	   r	   r	   r
   rf   ¹   s
    
rf   c                   @   r(   )ÚCONTEXTc                 C   s  d| _ d| _d| _d| _d| _d| _d| _d| _d| _d| _	d| _
d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _ d| _!d| _"d| _#d| _$d| _%d | _&g | _'d| _(d| _)d| _*d| _+d| _,d| _-d S r   ).ÚP1HomeÚP2HomeÚP3HomeÚP4HomeÚP5HomeÚP6HomeÚContextFlagsr5   ÚSegCsÚSegDsÚSegEsÚSegFsÚSegGsÚSegSsÚEFlagsÚDr0ÚDr1ÚDr2ÚDr3ÚDr6ÚDr7ÚRaxÚRcxÚRdxÚRbxÚRspÚRbpÚRsiÚRdiÚR8ÚR9ÚR10ÚR11ÚR12ÚR13ÚR14ÚR15ÚRipÚDUMMYUNIONNAMEÚVectorRegisterÚVectorControlÚDebugControlÚLastBranchToRipÚLastBranchFromRipÚLastExceptionToRipÚLastExceptionFromRipr   r	   r	   r
   r   ä   s\   
zCONTEXT.__init__c                 C   sD  | ƒ }t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_	t j| d¡ddd|_
t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_ t j| d¡ddd|_!t j| d¡ddd|_"t j| d¡ddd|_#t j| d¡ddd|_$t j| d¡ddd|_%t j| d¡ddd|_&t j| d¡ddd|_'t j| d¡ddd|_(t) *|¡|_+t, -|d¡|_.t j| d¡ddd|_/t j| d¡ddd|_0t j| d¡ddd|_1t j| d¡ddd|_2t j| d¡ddd|_3t j| d¡ddd|_4|S )Nr   r   Fr   r<   r:   é   )5r   r   r   ru   rv   rw   rx   ry   rz   r{   r5   r|   r}   r~   r   r€   r   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r   rŽ   r   r   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rf   r   rš   r   r   r›   rœ   r   rž   rŸ   r    r¡   ©r   r   Úctxr	   r	   r
   r     s`   zCONTEXT.parsec                 C   sf  d}|dd| j | j f 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd	| j| jf 7 }|dd
| j| jf 7 }|dd| j| jf 7 }|dd| j	| j	f 7 }|dd| j
| j
f 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd | j| jf 7 }|dd!| j| jf 7 }|dd"| j| jf 7 }|dd#| j | j f 7 }|dd$| j!| j!f 7 }|dd%| j"| j"f 7 }|dd&| j#| j#f 7 }|dd'| j$| j$f 7 }|dd(| j%| j%f 7 }|d)d* 7 }|| j& '¡ 7 }|S )+Nr   z%s: 0x%x (%d)
ru   rv   rw   rx   ry   rz   r{   r5   r|   r}   r~   r   r€   r   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r   rŽ   r   r   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   z%s:rš   )(ru   rv   rw   rx   ry   rz   r{   r5   r|   r}   r~   r   r€   r   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r   rŽ   r   r   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r"   r    r	   r	   r
   r"   K  sT   zCONTEXT.__str__NrM   r	   r	   r	   r
   rt   ã   s
    1
5rt   c                   @   r(   )ÚWOW64_FLOATING_SAVE_AREAc                 C   s:   d| _ d| _d| _d| _d| _d| _d| _g | _d| _d S r   )	r*   r+   r,   r/   r0   r2   r3   ÚRegisterAreaÚCr0NpxStater   r	   r	   r
   r   {  s   
z!WOW64_FLOATING_SAVE_AREA.__init__c                 C   sâ   | ƒ }t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_t j| d¡ddd|_	t j| d¡ddd|_
t j| d¡ddd|_|S )Nr<   r   Fr   éP   )r   r   r   r*   r+   r,   r/   r0   r2   r3   r¦   r§   r£   r	   r	   r
   r   †  s   zWOW64_FLOATING_SAVE_AREA.parsec                 C   sº   d}|d| j | j f 7 }|d| j| jf 7 }|d| j| jf 7 }|d| j| jf 7 }|d| j| jf 7 }|d| j| jf 7 }|d| j| jf 7 }|d	t| jƒ 7 }|d
| j	| j	f 7 }|S )Nr   zControlWord: %x (%d)
zStatusWord: %x (%d)
zTagWord: %x (%d)
zErrorOffset: %x (%d)
zErrorSelector: %x (%d)
zDataOffset: %x (%d)
zDataSelector: %x (%d)
zRegisterArea: %s
zCr0NpxState: %x (%d))
r*   r+   r,   r/   r0   r2   r3   Ústrr¦   r§   r    r	   r	   r
   r"   ”  s   z WOW64_FLOATING_SAVE_AREA.__str__NrM   r	   r	   r	   r
   r¥   z  s
    
r¥   c                   @   r(   )ÚWOW64_CONTEXTc                 C   sš   d| _ d| _d| _d| _d| _d| _d| _d| _d| _d| _	d| _
d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _g | _d S r   )r{   rƒ   r„   r…   r†   r‡   rˆ   Ú	FloatSaver€   r   r~   r}   ÚEdiÚEsiÚEbxÚEdxÚEcxÚEaxÚEbpÚEipr|   r‚   ÚEspr   ÚExtendedRegistersr   r	   r	   r
   r   £  s2   
zWOW64_CONTEXT.__init__c                    sV  | ƒ }t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_	t
 ˆ ¡|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_t jˆ  d¡ddd|_‡ fdd„tdƒD ƒ|_|S )Nr<   r   Fr   c                    rl   r>   rm   r@   rB   r	   r
   rC   Ú  rn   z'WOW64_CONTEXT.parse.<locals>.<listcomp>i   )r   r   r   r{   rƒ   r„   r…   r†   r‡   rˆ   r¥   r   r«   r€   r   r~   r}   r¬   r­   r®   r¯   r°   r±   r²   r³   r|   r‚   r´   r   r   rµ   r£   r	   rB   r
   r   ¾  s:   
þzWOW64_CONTEXT.parsec                 C   s.  d}|dd| j | j f 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd	| j| jf 7 }|d
d| j ¡ f 7 }|dd| j	| j	f 7 }|dd| j
| j
f 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|dd| j| jf 7 }|d
dt| jƒf 7 }|S )Nr   rF   r{   rƒ   r„   r…   r†   r‡   rˆ   rG   r«   r€   r   r~   r}   r¬   r­   r®   r¯   r°   r±   r²   r³   r|   r‚   r´   r   rµ   )r{   rƒ   r„   r…   r†   r‡   rˆ   r«   r"   r€   r   r~   r}   r¬   r­   r®   r¯   r°   r±   r²   r³   r|   r‚   r´   r   r©   rµ   r    r	   r	   r
   r"   à  s6   zWOW64_CONTEXT.__str__NrM   r	   r	   r	   r
   rª   ¢  s
    
!rª   N)r   r'   r)   rN   rf   rt   r¥   rª   r	   r	   r	   r
   Ú<module>   s   GK* (