K iddlZddlZddlZddlZddlZej dZej dZej dZej dZ dZ dZ ejd dZ d Zd Zy) 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 @ttj|jdd}|dz dz}|dz dz}|dz dz}|dz dz}|d z d z}|d k(rd nd }|dk(rd n t |}|dk(rd n t |} |d k(rdn|d} | d| d|d|d|d S)N)-.14?rY-z--02d:x)intSLINE_REmatchgroupstr) slineencstallyldwrtdbreadbwatdbyld_str wrtdb_str readb_str watdb_strs Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/triton/tools/disasm.py parseCtrlr$#s hnnU#))!,b 1C BY# E "9 C BY# E BY# E BY$ EAXc3Gzs5zIzs5zI 5+I[)Ai['!E!9 EEcJtj|jd}|jdr|dddz}t |}t j|At t j|jdd}||vrnt|||<||fS)Nrz ;;r)FLINE_RErrendswithr$BRA_RErlen)flinerlabelsasmctrltargets r#processSassLinesr32s ..  % %a (C ||D#2hn U D ||C$V\\#&,,Q/4 V   [F6Nf#  r%ctj\}} t|d5}|j|dddt ||}t j ||S#1swY,xYw#t j |wxYw)Nwb)tempfilemkstempopenwriteextractosremove) cubin_asmfunfdpathcubinsasss r#get_sassrCBso!HB "d^ #u KK " #tS! $ K  # # $s! A.A"A."A+'A..BcNddlm}|jjjS)Nrknobs)tritonrFnvidia cuobjdumpr@rEs r#path_to_cuobjdumprJNs << ! ! & &&r%ct}|tj|d|g}ntj|d|d|g}|j}d}|t |kr||j }t j|>|dz }|t |kr||j }nyt j|>t j|jd}d}|d|dz }|dz }||j }i} g} tj|u||j } |dz }||j } |dz }| jt| | | ||j }tj|ut| D]\} \}}| d z}|| vrd | |}||d z }||d zz }tj|rPttj|jdd }d | |}tjd |d|}||dzz }|dz }|Sy)Nz-sassz-funrrz Function: r)rLBBz:  z\1r()rJ subprocess check_output splitlinesr-decodeFNAME_RErrr*appendr3 enumerater,rsub) file_pathr>rIsass_str sass_linesline_idxlinefnameretr/ asm_bufferr.ridxr1r0offset label_namer2 target_names r#r:r:Ssx!#I {**Iw +JK**IvsGY+WX$$&JH S_ $(#**,nnT"* MH#j/)!(+224 nnT"*t$**1- 5'$$A (#**, nnT".x(//1E MHx(//1E MH   .ueVD Eh'..0DnnT".!** 5  C$2XF"6&>"23 *S)) 4$; C||C V\\#.44Q7< #F6N#34 jjB{m1!5s; 3: C  t  i %r%)N) functoolsr;rerPr6compiler*rrTr,r$r3 lru_cacherCrJr:r%r#ris.  2::J K 2::1 2 2::/ 0 / 0 F ! ' <r%