
    9i                        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              S/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/triton/tools/disasm.py	parseCtrlr$   #   s    
hnnU#))!,b
1CBY#E"9
CBY#EBY#EBY$EAXc3Gzs5zIzs5zI
5+I[)Ai['!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#2hnUD||C$V\\#&,,Q/4 [FN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    !HB"d^uKK	" 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                  [        XU	5      5        XE   R                  5       n[        R                  U5      b  Ms  [        U
5       H  u  nu  pUS	-  nUU	;   a  S
U	U    3nUU S3-  nXS-   -  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XS-   -  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
{**Iw	+JK**IvsGY+WX$$&JH
S_
$#**, nnT"*MH#j/)!+224 nnT"* t$**1-5'$$A#**, 
nnT".(//1EMH(//1EMH.uVDE'..0D nnT". !** 5C$2XF"6&>"23
*S))$;C||C  V\\#.44Q7< #F6N#34jjB{m1!5s;: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%   