#usr2 dword [ebx+4*%%]
....
#usr2 DX11Call dword [ebx+4*%%]
....
#usr3 interface I,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  GetDevice,\
	  GetPrivateData
....
#usr4 interface ####,\
	  QueryInterface,\
	  AddRef,\
	  Release,\
	  ####,\
	  ####

;### zip;GetZip;SetZip    a%%,\

....
#usr5 macro String cLn,chNm {local ll,z1
     ll: db chNm
     z1: db cLn-(z1-ll) dup (0)
      }
String 8,''
String 16,''
String 32,''
String 64,''
....
#usr6 ;pcmpistri to ecx index mask. 
vimm = 0x18
movups xmm1,dqword [.txtA]
;movups xmm2,dqword [.txtFind]
;pcmpistri xmm1,xmm2,vimm 
pcmpistri xmm1,dqword [.txtFind],vimm  ;return 3 equal symbols in ecx
;align 16
;.txtFind db 'We not played We'
;.txtA    db 'We              '
....
#usr7 ;intToTxtHex
	mov    eax,655350
	movd   xmm1, eax
	mov eax,0x0f0f0f0f	;mozno zamenit low_nibble_mask times 16 db 0x0f
	pinsrd xmm2,eax,0
	pinsrd xmm2,eax,1
	pinsrd xmm2,eax,2
	pinsrd xmm2,eax,3
	movdqa xmm0, xmm1
	psrld  xmm1, 4          ; right shift: high nibble -> low  (with garbage shifted in)
	punpcklbw xmm0, xmm1    ; interleave low/high nibbles of each byte into a pair of bytes
	pand   xmm0, xmm2 	;[low_nibble_mask]   ; zero the high 4 bits of each byte (for pshufb)
			    	; unpacked to 8 bytes, each holding a 4-bit integer

	movdqa xmm1, [hex_lut]
	pshufb xmm1, xmm0       ; select bytes from the LUT based on the low nibble of each byte in xmm0
	pshufb xmm1, [reverse_8B]  ; printing order is MSB-first
	movq   qword [ ], xmm1  ;result 8 text symbols hex text value
;align 16
;hex_lut	db  "0123456789abcdef"
;reverse_8B	db 7,6,5,4,3,2,1,0,   15,14,13,12,11,10,9,8
....
