ó
    “~i¢  ã                   ó  • S SK r S SKrS SKrS SKrS SKr\R
                  " S5      r\R
                  " S5      r\R
                  " S5      r\R
                  " S5      r	S r
S r\ R                  " 5       SS j5       rS	 rS
 rg)é    Nz1\s*/\*\w{4}\*/\s*([^;]*;)\s*/\* 0x(\w{16}) \*/\s*z\s*/\* 0x(\w{16}) \*/\s*z\s*Function : (\w+)\s*z(.*BRA(?:\.U)? )(0x\w+);c           
      óH  • [        [        R                  U 5      R                  S5      S5      nUS-	  S-  nUS-	  S-  nUS-	  S-  nUS-	  S-  nUS	-	  S
-  nUS:X  a  SOSnUS:X  a  SO
[	        U5      nUS:X  a  SO
[	        U5      n	US:X  a  SOUS n
U
 SU	 SU SU SUS 3	$ )Né   é   é)   é   é-   é.   é   é1   é4   é?   r   ÚYÚ-z--Ú02dÚ:Úx)ÚintÚSLINE_REÚmatchÚgroupÚstr)ÚslineÚencÚstallÚyldÚwrtdbÚreadbÚwatdbÚyld_strÚ	wrtdb_strÚ	readb_strÚ	watdb_strs              ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/triton/tools/disasm.pyÚ	parseCtrlr$   #   sÍ   € Ü
Œh�n‰n˜UÓ#×)Ñ)¨!Ó,¨bÓ
1€CØ�B‰Y˜#Ñ€EØ�"‰9˜Ñ
€CØ�B‰Y˜#Ñ€EØ�B‰Y˜#Ñ€EØ�B‰Y˜$Ñ€Eà˜A“X‰c 3€GØ “z‘¤s¨5£z€IØ “z‘¤s¨5£z€IØ ›
‘¨5°¨+€IØˆ[˜˜)˜ A i [°°'°¸!¸EÀ!¸9ÐEÐEó    c                 óV  • [         R                  U 5      R                  S5      nUR                  S5      (       a  US S S-   n[	        U5      n[
        R                  U5      bA  [        [
        R                  U5      R                  S5      S5      nXR;   a  O[        U5      X%'   U U 4$ )Nr   z ;éþÿÿÿÚ;é   r   )ÚFLINE_REr   r   Úendswithr$   ÚBRA_REr   Úlen)Úfliner   ÚlabelsÚasmÚctrlÚtargets         r#   ÚprocessSassLinesr3   2   s•   € Ü
�.‰.˜Ó
×
%Ñ
% aÓ
(€Cà
‡|�|�D×ÑØ�#�2ˆh˜‰nˆÜ�UÓ€Dä‡|�|�CÓÑ$Ü”V—\‘\ #Ó&×,Ñ,¨QÓ/°Ó4ˆØÓØä  ›[ˆF‰NØˆf˜#˜Ð Ð r%   c                 ó  • [         R                  " 5       u  p# [        US5       nUR                  U 5        S S S 5        [	        X15      n[
        R                  " U5        U$ ! , (       d  f       N1= f! [
        R                  " U5        f = f)NÚwb)ÚtempfileÚmkstempÚopenÚwriteÚextractÚosÚremove)Ú	cubin_asmÚfunÚfdÚpathÚcubinÚsasss         r#   Úget_sassrC   B   sc   € ä×ÒÓ!�H€BðÜ�"�dŒ^˜uØ�K‰K˜	Ô"÷ ä�tÓ!ˆä
�	Š	�$ŒØ€K÷ �^ûô 	�	Š	�$�ús!   ™A3 ¥A"·A3 Á"
A0Á,A3 Á3Bc                  óN   • SSK Jn   U R                  R                  R                  $ )Nr   ©Úknobs)ÚtritonrF   ÚnvidiaÚ	cuobjdumpr@   rE   s    r#   Úpath_to_cuobjdumprJ   N   s   € ÝØ�<‰<×!Ñ!×&Ñ&Ð&r%   c                 ó¤  • [        5       nUc  [        R                  " USU /5      nO[        R                  " USUSU /5      nUR                  5       nSnU[	        U5      :  Gaì  XE   R                  5       n[        R                  U5      c@  US-  nU[	        U5      :  a  XE   R                  5       nOg [        R                  U5      c  M@  [        R                  U5      R                  S5      nSnUSU S3-  nUS-  nXE   R                  5       n0 n	/ n
[        R                  U5      bs  XE   R                  5       nUS-  nXE   R                  5       nUS-  nU
R                  [        X¼U	5      5        XE   R                  5       n[        R                  U5      b  Ms  [        U
5       H›  u  nu  pïUS	-  nUU	;   a  S
U	U    3nUU S3-  nXŽS-   -  n[        R                  U5      (       aP  [        [        R                  U5      R                  S5      S	5      nS
U	U    3n[        R                  SU S3U5      nX�S-   -  nM�     US-  nU$ g )Nz-sassz-funr   r   Ú z	Function:Ú
r)   r   ÚLBBz:
Ú	z\1r(   )rJ   Ú
subprocessÚcheck_outputÚ
splitlinesr-   ÚdecodeÚFNAME_REr   r   r*   Úappendr3   Ú	enumerater,   r   Úsub)Ú	file_pathr>   rI   Úsass_strÚ
sass_linesÚline_idxÚlineÚfnameÚretr/   Ú
asm_bufferr.   r   Úidxr1   r0   ÚoffsetÚ
label_namer2   Útarget_names                       r#   r:   r:   S   sb  € Ü!Ó#€IØ
�{Ü×*Ò*¨I°wÀ	Ð+JÓK‰ä×*Ò*¨I°v¸sÀGÈYÐ+WÓXˆØ×$Ñ$Ó&€JØ€HØ
”S˜“_Ô
$ØÑ#×*Ñ*Ó,ˆô �n‰n˜TÓ"Ñ*Ø˜‰MˆHØœ#˜j›/Ó)Ø!Ñ+×2Ñ2Ó4‘àô �n‰n˜TÓ"Ó*ô —‘˜tÓ$×*Ñ*¨1Ó-ˆØˆØ�˜5˜' Ð$Ñ$ˆØ�A‰ˆØÑ#×*Ñ*Ó,ˆàˆð ˆ
Ü�n‰n˜TÓ"Ñ.àÑ(×/Ñ/Ó1ˆEØ˜‰MˆHàÑ(×/Ñ/Ó1ˆEØ˜‰MˆHØ×ÑÔ.¨u¸VÓDÔEàÑ'×.Ñ.Ó0ˆDô �n‰n˜TÓ"Ó.ô !*¨*Ö 5ÑˆC‘�$à˜2‘XˆFØ˜ÓØ" 6¨&¡>Ð"2Ð3�
Ø˜*˜ SÐ)Ñ)�Ø˜$‘;ÑˆCä�|‰|˜C× Ñ ÜœVŸ\™\¨#Ó.×4Ñ4°QÓ7¸Ó<�Ø # F¨6¡NÐ#3Ð4�Ü—j‘j B { m°1Ð!5°sÓ;�Ø˜‘:ÑŠCñ !6ð 	ˆt‰ˆØˆ
ði %r%   )N)Ú	functoolsr;   ÚrerP   r6   Úcompiler*   r   rT   r,   r$   r3   Ú	lru_cacherC   rJ   r:   © r%   r#   Ú<module>ri      s„   ðó. Û 	Û 	Û Û à�:Š:ÐJÓK€Ø�:Š:Ð1Ó2€Ø�:Š:Ð/Ó0€Ø	�ŠÐ/Ó	0€òFò!ð  ×ÒÓóó ðò'ó
<r%   