Support CPU: Core i7-13700 or Core i7-14700 Disabled E-cores Disable HT only
Code: Select all
; NetRadioLoryaPhantomRecord : SuperBass netradio For HIGH END AUDIO [Windows]
MessageRequester("End","Compiler options Executable Format Console And CPU With MMX") : End
;- "CopyMemoryMaya.pbi" Start (DLL: CPU with MMX)
; Macro CopyMemoryMace_Inside
; !PSLLW mm1, mm0 ;1 Left 1bit shift
; !PSLLW mm1, mm0 ;2 Left 1bit shift
; !PSLLW mm1, mm0 ;3 Left 1bit shift
; !PSLLW mm1, mm0 ;4 Left 1bit shift
; !PSLLW mm1, mm0 ;5 Left 1bit shift
; !PSLLW mm1, mm0 ;6 Left 1bit shift
; !PSLLW mm1, mm0 ;7 Left 1bit shift
; !PSLLW mm1, mm0 ;8 Left 1bit shift
; !PSLLW mm1, mm0 ;9 Left 1bit shift
; !PSLLW mm1, mm0 ;A Left 1bit shift
; !PSLLW mm1, mm0 ;B Left 1bit shift
; !PSLLW mm1, mm0 ;C Left 1bit shift
; !PSLLW mm1, mm0 ;D Left 1bit shift
; !PSLLW mm1, mm0 ;E Left 1bit shift
; !PSLLW mm1, mm0 ;F Left 1bit shift
; !PSLLW mm1, mm0 ;0 Left 1bit shift
; !PSLLW mm2, mm0 ;1 Left 1bit shift
; !PSLLW mm2, mm0 ;2 Left 1bit shift
; !PSLLW mm2, mm0 ;3 Left 1bit shift
; !PSLLW mm2, mm0 ;4 Left 1bit shift
; !PSLLW mm2, mm0 ;5 Left 1bit shift
; !PSLLW mm2, mm0 ;6 Left 1bit shift
; !PSLLW mm2, mm0 ;7 Left 1bit shift
; !PSLLW mm2, mm0 ;8 Left 1bit shift
; !PSLLW mm2, mm0 ;9 Left 1bit shift
; !PSLLW mm2, mm0 ;A Left 1bit shift
; !PSLLW mm2, mm0 ;B Left 1bit shift
; !PSLLW mm2, mm0 ;C Left 1bit shift
; !PSLLW mm2, mm0 ;D Left 1bit shift
; !PSLLW mm2, mm0 ;E Left 1bit shift
; !PSLLW mm2, mm0 ;F Left 1bit shift
; !PSLLW mm2, mm0 ;0 Left 1bit shift
; !PSLLW mm3, mm0 ;1 Left 1bit shift
; !PSLLW mm3, mm0 ;2 Left 1bit shift
; !PSLLW mm3, mm0 ;3 Left 1bit shift
; !PSLLW mm3, mm0 ;4 Left 1bit shift
; !PSLLW mm3, mm0 ;5 Left 1bit shift
; !PSLLW mm3, mm0 ;6 Left 1bit shift
; !PSLLW mm3, mm0 ;7 Left 1bit shift
; !PSLLW mm3, mm0 ;8 Left 1bit shift
; !PSLLW mm3, mm0 ;9 Left 1bit shift
; !PSLLW mm3, mm0 ;A Left 1bit shift
; !PSLLW mm3, mm0 ;B Left 1bit shift
; !PSLLW mm3, mm0 ;C Left 1bit shift
; !PSLLW mm3, mm0 ;D Left 1bit shift
; !PSLLW mm3, mm0 ;E Left 1bit shift
; !PSLLW mm3, mm0 ;F Left 1bit shift
; !PSLLW mm3, mm0 ;0 Left 1bit shift
; !PSLLW mm4, mm0 ;1 Left 1bit shift
; !PSLLW mm4, mm0 ;2 Left 1bit shift
; !PSLLW mm4, mm0 ;3 Left 1bit shift
; !PSLLW mm4, mm0 ;4 Left 1bit shift
; !PSLLW mm4, mm0 ;5 Left 1bit shift
; !PSLLW mm4, mm0 ;6 Left 1bit shift
; !PSLLW mm4, mm0 ;7 Left 1bit shift
; !PSLLW mm4, mm0 ;8 Left 1bit shift
; !PSLLW mm4, mm0 ;9 Left 1bit shift
; !PSLLW mm4, mm0 ;A Left 1bit shift
; !PSLLW mm4, mm0 ;B Left 1bit shift
; !PSLLW mm4, mm0 ;C Left 1bit shift
; !PSLLW mm4, mm0 ;D Left 1bit shift
; !PSLLW mm4, mm0 ;E Left 1bit shift
; !PSLLW mm4, mm0 ;F Left 1bit shift
; !PSLLW mm4, mm0 ;0 Left 1bit shift
; !PSLLW mm5, mm0 ;1 Left 1bit shift
; !PSLLW mm5, mm0 ;2 Left 1bit shift
; !PSLLW mm5, mm0 ;3 Left 1bit shift
; !PSLLW mm5, mm0 ;4 Left 1bit shift
; !PSLLW mm5, mm0 ;5 Left 1bit shift
; !PSLLW mm5, mm0 ;6 Left 1bit shift
; !PSLLW mm5, mm0 ;7 Left 1bit shift
; !PSLLW mm5, mm0 ;8 Left 1bit shift
; !PSLLW mm5, mm0 ;9 Left 1bit shift
; !PSLLW mm5, mm0 ;A Left 1bit shift
; !PSLLW mm5, mm0 ;B Left 1bit shift
; !PSLLW mm5, mm0 ;C Left 1bit shift
; !PSLLW mm5, mm0 ;D Left 1bit shift
; !PSLLW mm5, mm0 ;E Left 1bit shift
; !PSLLW mm5, mm0 ;F Left 1bit shift
; !PSLLW mm5, mm0 ;0 Left 1bit shift
; !PSLLW mm6, mm0 ;1 Left 1bit shift
; !PSLLW mm6, mm0 ;2 Left 1bit shift
; !PSLLW mm6, mm0 ;3 Left 1bit shift
; !PSLLW mm6, mm0 ;4 Left 1bit shift
; !PSLLW mm6, mm0 ;5 Left 1bit shift
; !PSLLW mm6, mm0 ;6 Left 1bit shift
; !PSLLW mm6, mm0 ;7 Left 1bit shift
; !PSLLW mm6, mm0 ;8 Left 1bit shift
; !PSLLW mm6, mm0 ;9 Left 1bit shift
; !PSLLW mm6, mm0 ;A Left 1bit shift
; !PSLLW mm6, mm0 ;B Left 1bit shift
; !PSLLW mm6, mm0 ;C Left 1bit shift
; !PSLLW mm6, mm0 ;D Left 1bit shift
; !PSLLW mm6, mm0 ;E Left 1bit shift
; !PSLLW mm6, mm0 ;F Left 1bit shift
; !PSLLW mm6, mm0 ;0 Left 1bit shift
; !PSLLW mm7, mm0 ;1 Left 1bit shift
; !PSLLW mm7, mm0 ;2 Left 1bit shift
; !PSLLW mm7, mm0 ;3 Left 1bit shift
; !PSLLW mm7, mm0 ;4 Left 1bit shift
; !PSLLW mm7, mm0 ;5 Left 1bit shift
; !PSLLW mm7, mm0 ;6 Left 1bit shift
; !PSLLW mm7, mm0 ;7 Left 1bit shift
; !PSLLW mm7, mm0 ;8 Left 1bit shift
; !PSLLW mm7, mm0 ;9 Left 1bit shift
; !PSLLW mm7, mm0 ;A Left 1bit shift
; !PSLLW mm7, mm0 ;B Left 1bit shift
; !PSLLW mm7, mm0 ;C Left 1bit shift
; !PSLLW mm7, mm0 ;D Left 1bit shift
; !PSLLW mm7, mm0 ;E Left 1bit shift
; !PSLLW mm7, mm0 ;F Left 1bit shift
; !PSLLW mm7, mm0 ;0 Left 1bit shift
; !PSLLW mm1, mm0 ;1 Left 1bit shift
; !PSLLW mm1, mm0 ;2 Left 1bit shift
; !PSLLW mm2, mm0 ;1 Left 1bit shift
; !PSLLW mm2, mm0 ;2 Left 1bit shift
; !PSLLW mm3, mm0 ;1 Left 1bit shift
; !PSLLW mm3, mm0 ;2 Left 1bit shift
; !PSLLW mm4, mm0 ;1 Left 1bit shift
; !PSLLW mm4, mm0 ;2 Left 1bit shift
; !PSLLW mm5, mm0 ;1 Left 1bit shift
; !PSLLW mm5, mm0 ;2 Left 1bit shift
; !PSLLW mm6, mm0 ;1 Left 1bit shift
; !PSLLW mm6, mm0 ;2 Left 1bit shift
; !PSLLW mm7, mm0 ;1 Left 1bit shift
; !PSLLW mm7, mm0 ;2 Left 1bit shift
; EndMacro
;
; Macro CopyMemoryMace_InsideSetup
; !MOV dl, cl
; !SUB cl, dl
; !MOVZX Rcx, cl
; !INC cl
; !MOVZX Rcx, cl
; !MOVQ mm1, Rcx
; !PSLLW mm0, mm1 ;1 Left 1bit shift
; !PSLLW mm0, mm1 ;2 Left 1bit shift
; !PSLLW mm0, mm1 ;3 Left 1bit shift
; !PSLLW mm0, mm1 ;4 Left 1bit shift
; !PSLLW mm0, mm1 ;5 Left 1bit shift
; !PSLLW mm0, mm1 ;6 Left 1bit shift
; !PSLLW mm0, mm1 ;7 Left 1bit shift
; !PSLLW mm0, mm1 ;8 Left 1bit shift
; !PSLLW mm0, mm1 ;9 Left 1bit shift
; !PSLLW mm0, mm1 ;A Left 1bit shift
; !PSLLW mm0, mm1 ;B Left 1bit shift
; !PSLLW mm0, mm1 ;C Left 1bit shift
; !PSLLW mm0, mm1 ;D Left 1bit shift
; !PSLLW mm0, mm1 ;E Left 1bit shift
; !PSLLW mm0, mm1 ;F Left 1bit shift
; !PSLLW mm0, mm1 ;0 Left 1bit shift
; !MOVQ mm0, mm1
; EndMacro
;
; ProcedureDLL CopyMemoryMaya(dummyRcx.i,dummyRdx.i,dummyR8.i,dummyR9.i, CMM_length.i, *CMM_in, *CMM_out)
; CopyMemoryMace_InsideSetup
; CopyMemoryMace_Inside
; Protected CMM_D48.i, CMM_D40.i, CMM_D32.i, CMM_D24.i, CMM_D16.i, CMM_D8.i
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !MOVZX R8, R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !MOVZX R8, R8b
; !MOVQ mm1, R8
; !MOVNTQ QWORD [p.v_CMM_D8], mm1
; !PADDQ mm2, mm1
; !PADDQ mm2, mm1
; !MOVNTQ QWORD [p.v_CMM_D16], mm2
; !PADDQ mm3, mm1
; !PADDQ mm3, mm1
; !PADDQ mm3, mm1
; !MOVNTQ QWORD [p.v_CMM_D24], mm3
; !PADDQ mm4, mm1
; !PADDQ mm4, mm1
; !PADDQ mm4, mm1
; !PADDQ mm4, mm1
; !MOVNTQ QWORD [p.v_CMM_D32], mm4
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !MOVNTQ QWORD [p.v_CMM_D40], mm5
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !MOVNTQ QWORD [p.v_CMM_D48], mm6
; ;
; If dummyRcx=dummyRdx And dummyR8=dummyR9 And dummyRcx=dummyR8 And dummyRdx=dummyR9
; !HLT
; EndIf
; CopyMemoryMace_Top:
; If CMM_length>=CMM_D48
; CMM_length - CMM_D48
; CopyMemoryMace_InsideSetup
; !LEA Rcx, [p.v_CMM_length]
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; !MOV Rax, [Rcx]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8+Rax]
; !MOVQ mm2, QWORD [R8+Rax+$8]
; !MOVQ mm3, QWORD [R8+Rax+$10]
; !MOVQ mm4, QWORD [R8+Rax+$18]
; !MOVQ mm5, QWORD [R8+Rax+$20]
; !MOVQ mm6, QWORD [R8+Rax+$28]
; !MOVNTQ QWORD [R9+Rax], mm1
; !MOVNTQ QWORD [R9+Rax+$8], mm2
; !MOVNTQ QWORD [R9+Rax+$10], mm3
; !MOVNTQ QWORD [R9+Rax+$18], mm4
; !MOVNTQ QWORD [R9+Rax+$20], mm5
; !MOVNTQ QWORD [R9+Rax+$28], mm6
; Goto CopyMemoryMace_Top
; ElseIf CMM_length>=CMM_D40
; CMM_length - CMM_D40
; CopyMemoryMace_InsideSetup
; !LEA Rcx, [p.v_CMM_length]
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; !MOV Rax, [Rcx]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8+Rax]
; !MOVQ mm2, QWORD [R8+Rax+$8]
; !MOVQ mm3, QWORD [R8+Rax+$10]
; !MOVQ mm4, QWORD [R8+Rax+$18]
; !MOVQ mm5, QWORD [R8+Rax+$20]
; !MOVNTQ QWORD [R9+Rax], mm1
; !MOVNTQ QWORD [R9+Rax+$8], mm2
; !MOVNTQ QWORD [R9+Rax+$10], mm3
; !MOVNTQ QWORD [R9+Rax+$18], mm4
; !MOVNTQ QWORD [R9+Rax+$20], mm5
; Goto CopyMemoryMace_Top
; ElseIf CMM_length>=CMM_D32
; CMM_length - CMM_D32
; CopyMemoryMace_InsideSetup
; !LEA Rcx, [p.v_CMM_length]
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; !MOV Rax, [Rcx]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8+Rax]
; !MOVQ mm2, QWORD [R8+Rax+$8]
; !MOVQ mm3, QWORD [R8+Rax+$10]
; !MOVQ mm4, QWORD [R8+Rax+$18]
; !MOVNTQ QWORD [R9+Rax], mm1
; !MOVNTQ QWORD [R9+Rax+$8], mm2
; !MOVNTQ QWORD [R9+Rax+$10], mm3
; !MOVNTQ QWORD [R9+Rax+$18], mm4
; Goto CopyMemoryMace_Top
; ElseIf CMM_length>=CMM_D24
; CMM_length - CMM_D24
; CopyMemoryMace_InsideSetup
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVQ mm2, QWORD [R8+$8]
; !MOVQ mm3, QWORD [R8+$10]
; !MOVNTQ QWORD [R9], mm1
; !MOVNTQ QWORD [R9+$8], mm2
; !MOVNTQ QWORD [R9+$10], mm3
; Goto CopyMemoryMace_Top
; ElseIf CMM_length>=CMM_D16
; CMM_length - CMM_D16
; CopyMemoryMace_InsideSetup
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVQ mm2, QWORD [R8+$8]
; !MOVNTQ QWORD [R9], mm1
; !MOVNTQ QWORD [R9+$8], mm2
; Goto CopyMemoryMace_Top
; ElseIf CMM_length>=CMM_D8
; CMM_length - CMM_D8
; CopyMemoryMace_InsideSetup
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVNTQ QWORD [R9], mm1
; Goto CopyMemoryMace_Top
; EndIf
; !EMMS
; EndProcedure
;
; ProcedureDLL ClearMemoryMaya(dummyRcx.i,dummyRdx.i,dummyR8.i,dummyR9.i, CMM_length.i, *CMM_in, *CMM_out)
; CopyMemoryMace_Inside
; Protected CMM_D48.i, CMM_D40.i, CMM_D32.i, CMM_D24.i, CMM_D16.i, CMM_D8.i
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !SHL R8b,1
; !MOVZX R8, R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !INC R8b
; !MOVZX R8, R8b
; !MOVQ mm1, R8
; !MOVNTQ QWORD [p.v_CMM_D8], mm1
; !PADDQ mm2, mm1
; !PADDQ mm2, mm1
; !MOVNTQ QWORD [p.v_CMM_D16], mm2
; !PADDQ mm3, mm1
; !PADDQ mm3, mm1
; !PADDQ mm3, mm1
; !MOVNTQ QWORD [p.v_CMM_D24], mm3
; !PADDQ mm4, mm1
; !PADDQ mm4, mm1
; !PADDQ mm4, mm1
; !PADDQ mm4, mm1
; !MOVNTQ QWORD [p.v_CMM_D32], mm4
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !PADDQ mm5, mm1
; !MOVNTQ QWORD [p.v_CMM_D40], mm5
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !PADDQ mm6, mm1
; !MOVNTQ QWORD [p.v_CMM_D48], mm6
; If dummyRcx=dummyRdx And dummyR8=dummyR9 And dummyRcx=dummyR8 And dummyRdx=dummyR9
; !HLT
; EndIf
; ClearMemoryMaya_Top:
; If CMM_length>=CMM_D48
; CMM_length - CMM_D48
; CopyMemoryMace_InsideSetup
; !LEA Rcx, [p.v_CMM_length]
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; !MOV Rax, [Rcx]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVQ mm2, QWORD [R8]
; !MOVQ mm3, QWORD [R8]
; !MOVQ mm4, QWORD [R8]
; !MOVQ mm5, QWORD [R8]
; !MOVQ mm6, QWORD [R8]
; !MOVNTQ QWORD [R9+Rax], mm1
; !MOVNTQ QWORD [R9+Rax+$8], mm2
; !MOVNTQ QWORD [R9+Rax+$10], mm3
; !MOVNTQ QWORD [R9+Rax+$18], mm4
; !MOVNTQ QWORD [R9+Rax+$20], mm5
; !MOVNTQ QWORD [R9+Rax+$28], mm6
; Goto ClearMemoryMaya_Top
; ElseIf CMM_length>=CMM_D40
; CMM_length - CMM_D40
; CopyMemoryMace_InsideSetup
; !LEA Rcx, [p.v_CMM_length]
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; !MOV Rax, [Rcx]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVQ mm2, QWORD [R8]
; !MOVQ mm3, QWORD [R8]
; !MOVQ mm4, QWORD [R8]
; !MOVQ mm5, QWORD [R8]
; !MOVNTQ QWORD [R9+Rax], mm1
; !MOVNTQ QWORD [R9+Rax+$8], mm2
; !MOVNTQ QWORD [R9+Rax+$10], mm3
; !MOVNTQ QWORD [R9+Rax+$18], mm4
; !MOVNTQ QWORD [R9+Rax+$20], mm5
; Goto ClearMemoryMaya_Top
; ElseIf CMM_length>=CMM_D32
; CMM_length - CMM_D32
; CopyMemoryMace_InsideSetup
; !LEA Rcx, [p.v_CMM_length]
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; !MOV Rax, [Rcx]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVQ mm2, QWORD [R8]
; !MOVQ mm3, QWORD [R8]
; !MOVQ mm4, QWORD [R8]
; !MOVNTQ QWORD [R9+Rax], mm1
; !MOVNTQ QWORD [R9+Rax+$8], mm2
; !MOVNTQ QWORD [R9+Rax+$10], mm3
; !MOVNTQ QWORD [R9+Rax+$18], mm4
; Goto ClearMemoryMaya_Top
; ElseIf CMM_length>=CMM_D24
; CMM_length - CMM_D24
; CopyMemoryMace_InsideSetup
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVQ mm2, QWORD [R8]
; !MOVQ mm3, QWORD [R8]
; !MOVNTQ QWORD [R9], mm1
; !MOVNTQ QWORD [R9+$8], mm2
; !MOVNTQ QWORD [R9+$10], mm3
; Goto ClearMemoryMaya_Top
; ElseIf CMM_length>=CMM_D16
; CMM_length - CMM_D16
; CopyMemoryMace_InsideSetup
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVQ mm2, QWORD [R8]
; !MOVNTQ QWORD [R9], mm1
; !MOVNTQ QWORD [R9+$8], mm2
; Goto ClearMemoryMaya_Top
; ElseIf CMM_length>=CMM_D8
; CMM_length - CMM_D8
; CopyMemoryMace_InsideSetup
; !MOV R8, [p.p_CMM_in]
; !MOV R9, [p.p_CMM_out]
; CopyMemoryMace_Inside
; !MOVQ mm1, QWORD [R8]
; !MOVNTQ QWORD [R9], mm1
; Goto ClearMemoryMaya_Top
; EndIf
; !EMMS
; EndProcedure
;- "CopyMemoryMaya.pbi" end
; IncludeFile "CopyMemoryMaya6.pbi"
Import "CopyMemoryMaya.lib"
CopyMemoryMaya(dummyRcx.i,dummyRdx.i,dummyR8.i,dummyR9.i, CMM_length.i, *CMM_in, *CMM_out)
ClearMemoryMaya(dummyRcx.i,dummyRdx.i,dummyR8.i,dummyR9.i, CMM_length.i, *CMM_in, *CMM_out)
EndImport
Global dummyRcx.i,dummyRdx.i,dummyR8.i,dummyR9.i
!MOV cl, R8b
!SUB R8b, cl
!MOVZX R8, R8b
!INC R8b
!MOVZX R8, R8b
!MOVNTI QWORD [v_dummyRcx], R8
!INC R8b
!MOVZX R8, R8b
!MOVNTI QWORD [v_dummyRdx], R8
!INC R8b
!MOVZX R8, R8b
!MOVNTI QWORD [v_dummyR8], R8
!INC R8b
!MOVZX R8, R8b
!MOVNTI QWORD [v_dummyR9], R8
Macro MOV_Rax_Rax_Up_Down
!MOV al, al
!MOV ah, ah
!MOV ax, ax
!MOV Rax, Rax
!MOV ax, ax
!MOV ah, ah
!MOV al, al
EndMacro
Macro MOV_Rbx_Rbx_Up_Down
!MOV bl, bl
!MOV bh, bh
!MOV bx, bx
!MOV Rbx, Rbx
!MOV bx, bx
!MOV bh, bh
!MOV bl, bl
EndMacro
Macro MOV_Rcx_Rcx_Up_Down
!MOV cl, cl
!MOV ch, ch
!MOV cx, cx
!MOV Rcx, Rcx
!MOV cx, cx
!MOV ch, ch
!MOV cl, cl
EndMacro
Macro MOV_Rdx_Rdx_Up_Down
!MOV dl, dl
!MOV dh, dh
!MOV dx, dx
!MOV Rdx, Rdx
!MOV dx, dx
!MOV dh, dh
!MOV dl, dl
EndMacro
Macro MOV_R8_R8_Up_Down
!MOV R8b, R8b
!MOV R8w, R8w
!MOV R8, R8
!MOV R8w, R8w
!MOV R8b, R8b
EndMacro
Macro MOV_R9_R9_Up_Down
!MOV R9b, R9b
!MOV R9w, R9w
!MOV R9, R9
!MOV R9w, R9w
!MOV R9b, R9b
EndMacro
Macro MOV_R10_R10_Up_Down
!MOV R10b, R10b
!MOV R10w, R10w
!MOV R10, R10
!MOV R10w, R10w
!MOV R10b, R10b
EndMacro
Macro MOV_R11_R11_Up_Down
!MOV R11b, R11b
!MOV R11w, R11w
!MOV R11, R11
!MOV R11w, R11w
!MOV R11b, R11b
EndMacro
Macro MOV_R12_R12_Up_Down
!MOV R12b, R12b
!MOV R12w, R12w
!MOV R12, R12
!MOV R12w, R12w
!MOV R12b, R12b
EndMacro
Macro MOV_R13_R13_Up_Down
!MOV R13b, R13b
!MOV R13w, R13w
!MOV R13, R13
!MOV R13w, R13w
!MOV R13b, R13b
EndMacro
Macro MOV_R14_R14_Up_Down
!MOV R14b, R14b
!MOV R14w, R14w
!MOV R14, R14
!MOV R14w, R14w
!MOV R14b, R14b
EndMacro
Macro MOV_R15_R15_Up_Down
!MOV R15b, R15b
!MOV R15w, R15w
!MOV R15, R15
!MOV R15w, R15w
!MOV R15b, R15b
EndMacro
Macro MOV_Rsp_Rsp_Up_Down
!MOV spl, spl
!MOV sp, sp
!MOV Rsp, Rsp
!MOV sp, sp
!MOV spl, spl
EndMacro
Macro MOV_Rbp_Rbp_Up_Down
!MOV bpl, bpl
!MOV bp, bp
!MOV Rbp, Rbp
!MOV bp, bp
!MOV bpl, bpl
EndMacro
Macro MOV_Rsi_Rsi_Up_Down
!MOV sil, sil
!MOV si, si
!MOV Rsi, Rsi
!MOV si, si
!MOV sil, sil
EndMacro
Macro MOV_Rdi_Rdi_Up_Down
!MOV dil, dil
!MOV di, di
!MOV Rdi, Rdi
!MOV di, di
!MOV dil, dil
EndMacro
Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
MOV_Rax_Rax_Up_Down
MOV_Rdx_Rdx_Up_Down
MOV_Rsp_Rsp_Up_Down
MOV_Rsi_Rsi_Up_Down
MOV_R8_R8_Up_Down
MOV_R10_R10_Up_Down
MOV_R12_R12_Up_Down
MOV_R14_R14_Up_Down
MOV_Rbx_Rbx_Up_Down
MOV_Rcx_Rcx_Up_Down
MOV_Rbp_Rbp_Up_Down
MOV_Rdi_Rdi_Up_Down
MOV_R9_R9_Up_Down
MOV_R11_R11_Up_Down
MOV_R13_R13_Up_Down
MOV_R15_R15_Up_Down
EndMacro
Import "bass.lib"
BASS_Init.l(device.l,Freq.l,flags.l,win.l,*dsguid)
BASS_Free.l()
BASS_StreamCreateURL.l(*url, offset.l, flags.l, *proc, *user);
BASS_StreamFree.l(handle.l)
BASS_ChannelGetAttribute.l(handle.l,attrib.l,*value)
BASS_ChannelGetData.l(handle.l,*buffer,length.l)
BASS_ChannelStop.l(handle.l)
BASS_SetConfig.l(option.l, value.l)
EndImport
Structure BASS_ASIO_DEVICEINFO
*name
*driver
EndStructure
Import "bassasio.lib"
BASS_ASIO_GetDeviceInfo.l(device.l, *info.BASS_ASIO_DEVICEINFO)
BASS_ASIO_Init.l(device.l, flags.l)
BASS_ASIO_Free.l()
;CALL CyberAttack = BASS_ASIO_ControlPanel.l() = Startup ControlPanel.exe
BASS_ASIO_CheckRate.l(rate.d)
BASS_ASIO_SetRate.l(rate.d)
BASS_ASIO_Start.l(buflen.l, threads.l)
BASS_ASIO_Stop.l()
;CALL DumpAudioAmplifier = BASS_ASIO_IsStarted.l(), then ASIOproc() return enable flag.
BASS_ASIO_ChannelEnable.l(input.l, channel.l, *proc, *User)
BASS_ASIO_ChannelJoin.l(input.l, channel.l, channel2.l)
BASS_ASIO_ChannelSetFormat.l(input.l, channel.l, format.l)
BASS_ASIO_ChannelSetVolume.l(input.l, channel.l, volume.f)
BASS_ASIO_ErrorGetCode.l()
EndImport
#BASS_ASIO_THREAD = 1
Global PreferenceFile.s, Asio_Device_Global.i, WASAPI_device_format.i, ERRMES1A.s
PreferenceFile = GetPathPart(ProgramFilename())+"GetAsioDeviceName.txt"
If OpenPreferences(PreferenceFile)
ExaminePreferenceKeys()
While NextPreferenceKey() ; While a key exists
SIMPLE_MOVE_REGISTERS_Up_and_Down
Asio_Device_Global = Val(PreferenceKeyValue())
WASAPI_device_format = BASS_ASIO_Init(Asio_Device_Global, #BASS_ASIO_THREAD)
If WASAPI_device_format And BASS_ASIO_CheckRate(44100.0)
Global DRVSND.BASS_ASIO_DEVICEINFO
BASS_ASIO_GetDeviceInfo(Asio_Device_Global, @DRVSND)
Global DRVSND_DLL.i, *DRVSND_BUF, DRVSND_FILENAME.s
DRVSND_FILENAME = PeekS(DRVSND\driver, -1, #PB_Ascii)
;c:\program files\singxer\usb audio device driver\x64\singxerusbaudioasio_x64.dll
DRVSND_DLL = ReadFile(#PB_Any, DRVSND_FILENAME, #PB_File_NoBuffering)
If DRVSND_DLL
*DRVSND_BUF = AllocateMemory(Lof(DRVSND_DLL)+8192-Lof(DRVSND_DLL)%8192, #PB_Memory_NoClear)
ReadData(DRVSND_DLL, *DRVSND_BUF, Lof(DRVSND_DLL) )
CloseFile(DRVSND_DLL)
Global *DRVSND_0F2B, *DRVSND_C5FDE7, *DRVSND_C5FE6F
*DRVSND_0F2B = AllocateMemory(8192, #PB_Memory_NoClear)
CopyMemoryMaya(dummyRcx, dummyRdx, dummyR8, dummyR9, 8, ?DRVSND_0F2B_data, *DRVSND_0F2B)
DataSection
DRVSND_0F2B_data:
Data.b $0F, $2B, $0, $0, $0, $0, $0, $0
EndDataSection
Debug Str(*DRVSND_0F2B) + " " + Str(*DRVSND_0F2B+8)
*DRVSND_C5FDE7 = AllocateMemory(8192, #PB_Memory_NoClear)
CopyMemoryMaya(dummyRcx, dummyRdx, dummyR8, dummyR9, 8, ?DRVSND_C5FDE7_data, *DRVSND_C5FDE7)
DataSection
DRVSND_C5FDE7_data:
Data.b $C5, $FD, $E7, $0, $0, $0, $0, $0
EndDataSection
Debug Str(*DRVSND_C5FDE7) + " " + Str(*DRVSND_C5FDE7+8)
*DRVSND_C5FE6F = AllocateMemory(8192, #PB_Memory_NoClear)
CopyMemoryMaya(dummyRcx, dummyRdx, dummyR8, dummyR9, 8, ?DRVSND_C5FE6F_data, *DRVSND_C5FE6F)
DataSection
DRVSND_C5FE6F_data:
Data.b $C5, $FE, $6F, $0, $0, $0, $0, $0
EndDataSection
Debug Str(*DRVSND_C5FE6F) + " " + Str(*DRVSND_C5FE6F+8)
Global DRVSND_POS.i
Global *DRVSND_CACHE
Global NewList *DRVSND_CACHE_LIST()
Debug "SSE"
For DRVSND_POS = 0 To MemorySize(*DRVSND_BUF)
If CompareMemory(*DRVSND_BUF+DRVSND_POS, *DRVSND_0F2B, 2)
Debug Str(*DRVSND_BUF+DRVSND_POS) + " " + Str(*DRVSND_BUF+DRVSND_POS+8)
AddElement(*DRVSND_CACHE_LIST())
*DRVSND_CACHE_LIST() = *DRVSND_BUF+DRVSND_POS
EndIf
Next
; 0F2B
; ; 0000E7EB C3 ret
; ; 0000E7EC 0F1F4000 nop dword [rax+0x0]
; ; 0000E7F0 0F2B01 movntps oword [rcx],xmm0
; ; 0000E7F3 0F2B4110 movntps oword [rcx+0x10],xmm0
; ; 0000E7F7 4881C180000000 add rcx,0x80
; ; 0000E7FE 0F2B41A0 movntps oword [rcx-0x60],xmm0
; ; 0000E802 0F2B41B0 movntps oword [rcx-0x50],xmm0
; ; 0000E806 49FFC9 dec r9
; ; 0000E809 0F2B41C0 movntps oword [rcx-0x40],xmm0
; ; 0000E80D 0F2B41D0 movntps oword [rcx-0x30],xmm0
; ; 0000E811 0F2B41E0 movntps oword [rcx-0x20],xmm0
; ; 0000E815 0F2B41F0 movntps oword [rcx-0x10],xmm0
; ; 0000E819 75D5 jnz 0xe7f0
; ; 0000E81B 0FAEF8 sfence
Debug "AVX"
For DRVSND_POS = 0 To MemorySize(*DRVSND_BUF)
If CompareMemory(*DRVSND_BUF+DRVSND_POS, *DRVSND_C5FDE7, 3)
Debug Str(*DRVSND_BUF+DRVSND_POS) + " " + Str(*DRVSND_BUF+DRVSND_POS+8)
AddElement(*DRVSND_CACHE_LIST())
*DRVSND_CACHE_LIST() = *DRVSND_BUF+DRVSND_POS
EndIf
Next
For DRVSND_POS = 0 To MemorySize(*DRVSND_BUF)
If CompareMemory(*DRVSND_BUF+DRVSND_POS, *DRVSND_C5FE6F, 3)
Debug Str(*DRVSND_BUF+DRVSND_POS) + " " + Str(*DRVSND_BUF+DRVSND_POS+8)
AddElement(*DRVSND_CACHE_LIST())
*DRVSND_CACHE_LIST() = *DRVSND_BUF+DRVSND_POS
EndIf
Next
; C5FDE7
; ; 0000ED5D C3 ret
; ; 0000ED5E 6690 xchg ax,ax
; ; 0000ED60 C5FE6F0A vmovqqu ymm1,yword [rdx]
; ; 0000ED64 C5FE6F5220 vmovqqu ymm2,yword [rdx+0x20]
; ; 0000ED69 C5FE6F5A40 vmovqqu ymm3,yword [rdx+0x40]
; ; 0000ED6E C5FE6F6260 vmovqqu ymm4,yword [rdx+0x60]
; ; 0000ED73 C5FDE709 vmovntqq yword [rcx],ymm1
; ; 0000ED77 C5FDE75120 vmovntqq yword [rcx+0x20],ymm2
; ; 0000ED7C C5FDE75940 vmovntqq yword [rcx+0x40],ymm3
; ; 0000ED81 C5FDE76160 vmovntqq yword [rcx+0x60],ymm4
; ; 0000ED86 C5FE6F8A80000000 vmovqqu ymm1,yword [rdx+0x80]
; ; 0000ED8E C5FE6F92A0000000 vmovqqu ymm2,yword [rdx+0xa0]
; ; 0000ED96 C5FE6F9AC0000000 vmovqqu ymm3,yword [rdx+0xc0]
; ; 0000ED9E C5FE6FA2E0000000 vmovqqu ymm4,yword [rdx+0xe0]
; ; 0000EDA6 C5FDE78980000000 vmovntqq yword [rcx+0x80],ymm1
; ; 0000EDAE C5FDE791A0000000 vmovntqq yword [rcx+0xa0],ymm2
; ; 0000EDB6 C5FDE799C0000000 vmovntqq yword [rcx+0xc0],ymm3
; ; 0000EDBE C5FDE7A1E0000000 vmovntqq yword [rcx+0xe0],ymm4
; ; 0000EDC6 4881C100010000 add rcx,0x100
; ; 0000EDCD 4881C200010000 add rdx,0x100
; ; 0000EDD4 4981E800010000 sub r8,0x100
; ; 0000EDDB 4981F800010000 cmp r8,0x100
; ; 0000EDE2 0F8378FFFFFF jnc qword 0xed60
EndIf
If ListSize(*DRVSND_CACHE_LIST())=0
ClosePreferences()
BASS_ASIO_Free()
ERRMES1A= "The device is not support. Tested XMOS v5.30 only."+Chr(13)+Chr(10)+Chr(13)+Chr(10)
!JMP ERROR_STARTUP_END
EndIf
ClosePreferences()
Goto StartupProcess
ElseIf WASAPI_device_format
BASS_ASIO_Free()
EndIf
Wend
ClosePreferences()
EndIf
Select BASS_ASIO_ErrorGetCode()
Case 23 ; BASS_ERROR_DEVICE
ERRMES1A="The device number specified is invalid. Retry GetAsioDeviceName."+Chr(13)+Chr(10)+Chr(13)+Chr(10)
Case 14 ; BASS_ERROR_ALREADY
ERRMES1A="The device has already been initialized. Re-Start Windows."+Chr(13)+Chr(10)+Chr(13)+Chr(10)
Case 3 ; BASS_ERROR_DRIVER
ERRMES1A="The driver could not be initialized. USB-DAC Power Refresh."+Chr(13)+Chr(10)+Chr(13)+Chr(10)
Default
ERRMES1A="Create GetAsioDeviceName.txt and Edit device list."+Chr(13)+Chr(10)+"Try GetAsioDeviceName. Setup 44.1kHz Latency 4 ms ( 256 samples )"+Chr(13)+Chr(10)+Chr(13)+Chr(10)
EndSelect
!JMP ERROR_STARTUP_END
StartupProcess:
Global Fd_44100.d
; v_Fd_44100 = 44100.0
!MOV cl, R8b
!SUB R8b, cl
!MOVZX R8, R8b
!MOV ch, cl
!SUB cl, ch
!MOVZX Rcx, cl
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVQ xmm14, R8
!MOVSD [v_Fd_44100], xmm14
BASS_ASIO_SetRate(Fd_44100)
; BASS_ASIO_ControlPanel()
BASS_ASIO_Free()
Global DRVcacheMax.i
DRVcacheMax = ListSize(*DRVSND_CACHE_LIST())
Global Dim *DRVSND_Cache(DRVcacheMax)
ForEach *DRVSND_CACHE_LIST()
*DRVSND_Cache(ListIndex(*DRVSND_CACHE_LIST())) = *DRVSND_CACHE_LIST()
Next
DRVSND_FILENAME = ReverseString( ReverseString( GetFilePart(DRVSND_FILENAME) ) )
; void lowpass(float input[], float output[], int size, float samplerate, float freq, float q)
; rocedure lowpass(*output, size.i, samplerate.d)
Structure lowpass
*buffer_in
Length.i
Freq_double.d
ThreadID.i
EndStructure
Procedure lowpass(*param.lowpass)
Protected *output, size.i, samplerate.d
*output = *param\buffer_in
size = *param\Length
samplerate = *param\Freq_double
Protected D4.i
; p.v_D4 = 4
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D4], R8
!NOP [Rip]
!NOP [p.v_D4]
Protected D8.i
; p.v_D8 = 8
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI [p.v_D8], R8
Protected D0.i
; p.v_D0 = 0
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!MOVNTI [p.v_D0], R8
!NOP [Rip]
!NOP [p.v_D0]
Protected D1.i
; p.v_D1 = 1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC R8b
!MOVNTI [p.v_D1], R8
!NOP [Rip]
!NOP [p.v_D1]
;
Protected D9801.i
; p.v_D9801 = 9801
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVNTI [p.v_D9801], R8
!NOP [Rip]
!NOP [p.v_D9801]
Protected F_2_0_d.d, F_1_0_d.d
;
; p.v_F_1_0_d = 1.0
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVQ xmm14, R8
!MOVSD [p.v_F_1_0_d], xmm14
!NOP [Rip]
!NOP [p.v_F_1_0_d]
;
; p.v_F_2_0_d = 2.0
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVQ xmm14, R8
!MOVSD [p.v_F_2_0_d], xmm14
!NOP [Rip]
!NOP [p.v_F_2_0_d]
;
Protected in1.d, in2.d, out1.d, out2.d, pos.i
Protected in3.d, in4.d, out3.d, out4.d, in1pre.d, in3pre.d
Protected Freq_d1.d, Freq_d2.d, Freq_d3.d, Freq_d4.d
;
; // 1st 3.141592653
!NOP QWORD [Rip]
!NOP cx
!NOP QWORD [Rip]
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!NOP QWORD [Rip]
!NOP R8w
!NOP QWORD [Rip]
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC cl
!MOVZX Rcx, cl
; 100000000001001001000011111101101010100001011111110100100111000
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
;
!MOVQ xmm5, R8
!MOVSD [p.v_Freq_d1], xmm5
!NOP QWORD [Rip]
!NOP QWORD [p.v_Freq_d1]
; // 1st 3.141592653 End
;
; // 2nd 589793
!NOP QWORD [Rip]
!NOP cx
!NOP QWORD [Rip]
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!NOP QWORD [Rip]
!NOP R9w
!NOP QWORD [Rip]
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!MOVZX R9, R9b
!INC cl
!MOVZX Rcx, cl
; 11111000000100010000111101111111000100011110111011100100011001
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!MOVQ xmm5, R9
!MOVSD [p.v_Freq_d2], xmm5
!NOP QWORD [Rip]
!NOP QWORD [p.v_Freq_d2]
; // 2nd 589793 End
;
; // 3rd 238462
!NOP QWORD [Rip]
!NOP cx
!NOP QWORD [Rip]
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!NOP QWORD [Rip]
!NOP R8w
!NOP QWORD [Rip]
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!SHL R8b,1
!MOVZX R8, R8b
!INC cl
!MOVZX Rcx, cl
; 11110010110001001011101101100011110100110011000000010010000001
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVQ xmm5, R8
!MOVSD [p.v_Freq_d3], xmm5
!NOP QWORD [Rip]
!NOP QWORD [p.v_Freq_d3]
; // 3rd 238462 End
;
; // 4th 643383
!NOP QWORD [Rip]
!NOP cx
!NOP QWORD [Rip]
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!SHL cl, 1
!MOVZX Rcx, cl
!NOP QWORD [Rip]
!NOP R9w
!NOP QWORD [Rip]
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!SHL R9b,1
!MOVZX R9, R9b
!INC cl
!MOVZX Rcx, cl
; 11101110001000010011100110101100100111000100000011010110110011
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!SHL R9, cl
!SHL R9, cl
!SHL R9, cl
!INC R9b
!SHL R9, cl
!INC R9b
!MOVQ xmm5, R9
!MOVSD [p.v_Freq_d4], xmm5
!NOP QWORD [Rip]
!NOP QWORD [p.v_Freq_d4]
; // 4th 643383 End
Macro omega
F_2_0_d * Freq_d1 * D9801 / samplerate + F_2_0_d * Freq_d2 * D9801 / samplerate + F_2_0_d * Freq_d3 * D9801 / samplerate + F_2_0_d * Freq_d4 * D9801 / samplerate
EndMacro
Protected LPFcalcA.d, LPFcalcB.d, LPFcalcD.d, LPFcalcE.d
;
LPFcalcA = ((F_1_0_d - Cos(omega)) / F_2_0_d)/(F_1_0_d + Sin(omega) / (F_2_0_d * Log10(D8)))
LPFcalcB = (F_1_0_d - Cos(omega))/(F_1_0_d + Sin(omega) / (F_2_0_d * Log10(D8)))
LPFcalcD = ( -F_2_0_d * Cos(omega))/(F_1_0_d + Sin(omega) / (F_2_0_d * Log10(D8)))
LPFcalcE = (F_1_0_d - Sin(omega) / (F_2_0_d * Log10(D8)))/(F_1_0_d + Sin(omega) / (F_2_0_d * Log10(D8)))
For pos=D0 To size-D1 Step 8
in1pre = PeekF(*output+pos)
PokeF(*output+pos, LPFcalcA * PeekF(*output+pos)+ LPFcalcB * in1 + LPFcalcA * in2 - LPFcalcD * out1 - LPFcalcE * out2)
Swap in1, in2
in1 = in1pre
Swap out1, out2
out1 = PeekF(*output+pos)
in3pre = PeekF(*output+pos+D4)
PokeF(*output+pos+D4, LPFcalcA * PeekF(*output+pos+D4)+ LPFcalcB * in3 + LPFcalcA *in4 - LPFcalcD * out3 - LPFcalcE * out4)
Swap in3, in4
in3 = in3pre
Swap out3, out4
out3 = PeekF(*output+pos+D4)
!NOP QWORD [Rip]
!NOP QWORD [Rip]
Next
EndProcedure
Macro BassCache
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_ChannelEnable]
!NOP QWORD [BASS_ASIO_ChannelEnable+8]
!NOP QWORD [BASS_ASIO_ChannelEnable+16]
!NOP QWORD [BASS_ASIO_ChannelEnable+24]
!NOP QWORD [BASS_ASIO_ChannelEnable+32]
!NOP QWORD [BASS_ASIO_ChannelEnable+40]
!NOP QWORD [BASS_ASIO_ChannelEnable+48]
!NOP QWORD [BASS_ASIO_ChannelEnable+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_ChannelJoin]
!NOP QWORD [BASS_ASIO_ChannelJoin+8]
!NOP QWORD [BASS_ASIO_ChannelJoin+16]
!NOP QWORD [BASS_ASIO_ChannelJoin+24]
!NOP QWORD [BASS_ASIO_ChannelJoin+32]
!NOP QWORD [BASS_ASIO_ChannelJoin+40]
!NOP QWORD [BASS_ASIO_ChannelJoin+48]
!NOP QWORD [BASS_ASIO_ChannelJoin+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_ChannelSetFormat]
!NOP QWORD [BASS_ASIO_ChannelSetFormat+8]
!NOP QWORD [BASS_ASIO_ChannelSetFormat+16]
!NOP QWORD [BASS_ASIO_ChannelSetFormat+24]
!NOP QWORD [BASS_ASIO_ChannelSetFormat+32]
!NOP QWORD [BASS_ASIO_ChannelSetFormat+40]
!NOP QWORD [BASS_ASIO_ChannelSetFormat+48]
!NOP QWORD [BASS_ASIO_ChannelSetFormat+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_ChannelSetVolume]
!NOP QWORD [BASS_ASIO_ChannelSetVolume+8]
!NOP QWORD [BASS_ASIO_ChannelSetVolume+16]
!NOP QWORD [BASS_ASIO_ChannelSetVolume+24]
!NOP QWORD [BASS_ASIO_ChannelSetVolume+32]
!NOP QWORD [BASS_ASIO_ChannelSetVolume+40]
!NOP QWORD [BASS_ASIO_ChannelSetVolume+48]
!NOP QWORD [BASS_ASIO_ChannelSetVolume+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_CheckRate]
!NOP QWORD [BASS_ASIO_CheckRate+8]
!NOP QWORD [BASS_ASIO_CheckRate+16]
!NOP QWORD [BASS_ASIO_CheckRate+24]
!NOP QWORD [BASS_ASIO_CheckRate+32]
!NOP QWORD [BASS_ASIO_CheckRate+40]
!NOP QWORD [BASS_ASIO_CheckRate+48]
!NOP QWORD [BASS_ASIO_CheckRate+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_Free]
!NOP QWORD [BASS_ASIO_Free+8]
!NOP QWORD [BASS_ASIO_Free+16]
!NOP QWORD [BASS_ASIO_Free+24]
!NOP QWORD [BASS_ASIO_Free+32]
!NOP QWORD [BASS_ASIO_Free+40]
!NOP QWORD [BASS_ASIO_Free+48]
!NOP QWORD [BASS_ASIO_Free+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_GetDeviceInfo]
!NOP QWORD [BASS_ASIO_GetDeviceInfo+8]
!NOP QWORD [BASS_ASIO_GetDeviceInfo+16]
!NOP QWORD [BASS_ASIO_GetDeviceInfo+24]
!NOP QWORD [BASS_ASIO_GetDeviceInfo+32]
!NOP QWORD [BASS_ASIO_GetDeviceInfo+40]
!NOP QWORD [BASS_ASIO_GetDeviceInfo+48]
!NOP QWORD [BASS_ASIO_GetDeviceInfo+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_Init]
!NOP QWORD [BASS_ASIO_Init+8]
!NOP QWORD [BASS_ASIO_Init+16]
!NOP QWORD [BASS_ASIO_Init+24]
!NOP QWORD [BASS_ASIO_Init+32]
!NOP QWORD [BASS_ASIO_Init+40]
!NOP QWORD [BASS_ASIO_Init+48]
!NOP QWORD [BASS_ASIO_Init+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_SetRate]
!NOP QWORD [BASS_ASIO_SetRate+8]
!NOP QWORD [BASS_ASIO_SetRate+16]
!NOP QWORD [BASS_ASIO_SetRate+24]
!NOP QWORD [BASS_ASIO_SetRate+32]
!NOP QWORD [BASS_ASIO_SetRate+40]
!NOP QWORD [BASS_ASIO_SetRate+48]
!NOP QWORD [BASS_ASIO_SetRate+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_Start]
!NOP QWORD [BASS_ASIO_Start+8]
!NOP QWORD [BASS_ASIO_Start+16]
!NOP QWORD [BASS_ASIO_Start+24]
!NOP QWORD [BASS_ASIO_Start+32]
!NOP QWORD [BASS_ASIO_Start+40]
!NOP QWORD [BASS_ASIO_Start+48]
!NOP QWORD [BASS_ASIO_Start+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ASIO_Stop]
!NOP QWORD [BASS_ASIO_Stop+8]
!NOP QWORD [BASS_ASIO_Stop+16]
!NOP QWORD [BASS_ASIO_Stop+24]
!NOP QWORD [BASS_ASIO_Stop+32]
!NOP QWORD [BASS_ASIO_Stop+40]
!NOP QWORD [BASS_ASIO_Stop+48]
!NOP QWORD [BASS_ASIO_Stop+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ChannelGetAttribute]
!NOP QWORD [BASS_ChannelGetAttribute+8]
!NOP QWORD [BASS_ChannelGetAttribute+16]
!NOP QWORD [BASS_ChannelGetAttribute+24]
!NOP QWORD [BASS_ChannelGetAttribute+32]
!NOP QWORD [BASS_ChannelGetAttribute+40]
!NOP QWORD [BASS_ChannelGetAttribute+48]
!NOP QWORD [BASS_ChannelGetAttribute+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ChannelGetData]
!NOP QWORD [BASS_ChannelGetData+8]
!NOP QWORD [BASS_ChannelGetData+16]
!NOP QWORD [BASS_ChannelGetData+24]
!NOP QWORD [BASS_ChannelGetData+32]
!NOP QWORD [BASS_ChannelGetData+40]
!NOP QWORD [BASS_ChannelGetData+48]
!NOP QWORD [BASS_ChannelGetData+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_ChannelStop]
!NOP QWORD [BASS_ChannelStop+8]
!NOP QWORD [BASS_ChannelStop+16]
!NOP QWORD [BASS_ChannelStop+24]
!NOP QWORD [BASS_ChannelStop+32]
!NOP QWORD [BASS_ChannelStop+40]
!NOP QWORD [BASS_ChannelStop+48]
!NOP QWORD [BASS_ChannelStop+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_Free]
!NOP QWORD [BASS_Free+8]
!NOP QWORD [BASS_Free+16]
!NOP QWORD [BASS_Free+24]
!NOP QWORD [BASS_Free+32]
!NOP QWORD [BASS_Free+40]
!NOP QWORD [BASS_Free+48]
!NOP QWORD [BASS_Free+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_Init]
!NOP QWORD [BASS_Init+8]
!NOP QWORD [BASS_Init+16]
!NOP QWORD [BASS_Init+24]
!NOP QWORD [BASS_Init+32]
!NOP QWORD [BASS_Init+40]
!NOP QWORD [BASS_Init+48]
!NOP QWORD [BASS_Init+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_SetConfig]
!NOP QWORD [BASS_SetConfig+8]
!NOP QWORD [BASS_SetConfig+16]
!NOP QWORD [BASS_SetConfig+24]
!NOP QWORD [BASS_SetConfig+32]
!NOP QWORD [BASS_SetConfig+40]
!NOP QWORD [BASS_SetConfig+48]
!NOP QWORD [BASS_SetConfig+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_StreamCreateURL]
!NOP QWORD [BASS_StreamCreateURL+8]
!NOP QWORD [BASS_StreamCreateURL+16]
!NOP QWORD [BASS_StreamCreateURL+24]
!NOP QWORD [BASS_StreamCreateURL+32]
!NOP QWORD [BASS_StreamCreateURL+40]
!NOP QWORD [BASS_StreamCreateURL+48]
!NOP QWORD [BASS_StreamCreateURL+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [BASS_StreamFree]
!NOP QWORD [BASS_StreamFree+8]
!NOP QWORD [BASS_StreamFree+16]
!NOP QWORD [BASS_StreamFree+24]
!NOP QWORD [BASS_StreamFree+32]
!NOP QWORD [BASS_StreamFree+40]
!NOP QWORD [BASS_StreamFree+48]
!NOP QWORD [BASS_StreamFree+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
EndMacro
Macro SoundDriversCache
For AsioDRVcache=AsioD0 To AsioDRVcacheMax
*AsioDRVcacheTarget = *DRVSND_AsioCache(AsioDRVcache)
!MOV R8, QWORD [p.p_AsioDRVcacheTarget]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [R8]
!NOP QWORD [R8+8]
!NOP QWORD [R8+16]
!NOP QWORD [R8+24]
!NOP QWORD [R8+32]
!NOP QWORD [R8+40]
!NOP QWORD [R8+48]
!NOP QWORD [R8+56]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
Next
!MOV R8, QWORD [p.p_AsioDRVcacheTarget]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [R8+64]
!NOP QWORD [R8+72]
!NOP QWORD [R8+80]
!NOP QWORD [R8+88]
!NOP QWORD [R8+96]
!NOP QWORD [R8+104]
!NOP QWORD [R8+112]
!NOP QWORD [R8+120]
!NOP QWORD [R8+128]
!NOP QWORD [R8+136]
!NOP QWORD [R8+144]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [PureBasicStart]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
EndMacro
Macro CLR_Rcx_R8_x64
!MOV cl, R8b
!SUB R8b, cl
!MOVZX R8, R8b
!MOV ch, cl
!SUB cl, ch
!MOVZX Rcx, cl
EndMacro
Global F_1_0_d.d
; p.v_F_1_0_d = 1.0
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVQ xmm0, R8
!MOVSD [v_F_1_0_d], xmm0
Global C_PB_Event_Gadget.i, C_PB_Event_CloseWindow.i
; p.v_C_PB_Event_Gadget = 13100
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_C_PB_Event_Gadget], R8
;
; p.v_C_PB_Event_CloseWindow = 13116
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_C_PB_Event_CloseWindow], R8
;
Global *CurrentProcess = Val(ReverseString(ReverseString(Str( GetCurrentProcess_() ) ) ) )
;- Global D1 C_PB
Global D7.i, D522.i, D500.i, D50.i, D5.i, D40.i, D37.i, D330.i, D250.i
Global D19.i, D15.i, D120.i, D100.i, D10.i, D0.i, H_FFFFFF.i, H_E6D8AD.i
Global D31752000.i, D16384.i, D1.i, D2.i, DM1.i, D44100.i, D32.i
Global H_90B0EE.i, H_00EE00.i, H_005500.i, H_0000EE.i, H_000055.i, C_PB_Window_TitleBar.i
Global C_PB_Window_SystemMenu.i, C_PB_Window_ScreenCentered.i
Global C_PB_Window_BorderLess.i, C_PB_Tree_AlwaysShowSelection.i, C_PB_Ignore.i
Global C_PB_Gadget_BackColor.i, C_PB_Default.i, C_PB_Any.i, C_PB_2DDrawing_Gradient.i
Global C_PB_StatusBar_BorderLess.i, C_PB_Font_HighQuality.i
Global D524288.i, H_C0C0C0.i, H_FACE87.i, C_PB_Button_Toggle.i
Global D8193.i, D32769.i, D27.i, D7938000.i, D4097.i, D2048.i, C_ABOVE_NORMAL_PRIORITY_CLASS.i
;
; p.v_D7 = 7
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_D7], R8
;
; p.v_D522 = 522
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_D522], R8
;
; p.v_D500 = 500
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_D500], R8
;
; p.v_D50 = 50
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_D50], R8
;
; p.v_D5 = 5
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_D5], R8
;
; p.v_D40 = 40
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_D40], R8
;
; p.v_D37 = 37
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_D37], R8
;
; p.v_D330 = 330
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_D330], R8
;
; p.v_D250 = 250
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_D250], R8
;
; p.v_D19 = 19
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_D19], R8
;
; p.v_D15 = 15
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_D15], R8
;
; p.v_D120 = 120
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_D120], R8
;
; p.v_D100 = 100
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_D100], R8
;
; p.v_D10 = 10
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_D10], R8
;
; p.v_D0 = 0
CLR_Rcx_R8_x64
!INC cl
!SHL R8, cl
!MOVNTI QWORD [v_D0], R8
;
; p.v_D44100 = 44100
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_D44100], R8
;
; p.v_D32 = 32
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_D32], R8
!NOP QWORD [Rip]
!NOP QWORD [v_D32]
;
; p.v_H_FFFFFF = 16777215
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_H_FFFFFF], R8
;
; p.v_H_E6D8AD = 15128749
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_H_E6D8AD], R8
;
; p.v_H_90B0EE = 9482478
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_H_90B0EE], R8
;
; p.v_H_00EE00 = 60928
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_H_00EE00], R8
;
; p.v_H_005500 = 21760
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_H_005500], R8
;
; p.v_H_0000EE = 238
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_H_0000EE], R8
;
; p.v_H_000055 = 85
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_H_000055], R8
;
; p.v_C_PB_Window_TitleBar = 12582912
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_C_PB_Window_TitleBar], R8
;
; p.v_C_PB_Window_SystemMenu = 13107200
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_C_PB_Window_SystemMenu], R8
;
; p.v_C_PB_Window_ScreenCentered = 1
CLR_Rcx_R8_x64
!INC cl
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_C_PB_Window_ScreenCentered], R8
!MOVNTI QWORD [v_D1], R8
!INC R8b
!MOVNTI QWORD [v_D2], R8
;
; p.v_C_PB_Window_BorderLess = 2147483648
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_C_PB_Window_BorderLess], R8
;
; p.v_C_PB_Tree_AlwaysShowSelection = 32
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!MOVNTI QWORD [v_C_PB_Tree_AlwaysShowSelection], R8
;
; p.v_C_PB_Ignore = -65535
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!INC R8b
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!SHL R8, cl
!INC R8b
!MOVNTI QWORD [v_C_PB_Ignore], R8
;
; p.v_C_PB_Gadget_BackColor = 2
CLR_Rcx_R8_x64
!INC cl
!INC R8b
!SHL R8, cl
!MOVNTI QWORD [v_C_PB_Gadget_BackColor], R8
!MOVNTI QWORD [v_C_PB_StatusBar_BorderLess], R8
;