Based on feedback from high-end audio/visual users, we have made a significant improvement in the WASAPI shared mode by setting the volume to "maximum volume set by ultra-low noise operation". This requires BASS.DLL BASSWASAPI.DLL, but the technique allows "high-end visual audio with video and audio at the same time" with only the volume setting portion. For CPUs without RDRAND instruction, change "BeforeProcedureRegisters_RDRAND" to "BeforeProcedureRegisters_SMSW". It uses the instruction cache and has been optimized for AlderLake.
Thank you.
A major rationale for improvement
Just set the volume 1.000. Sound is bad.
INC SHL R8, set 1.000 at cl. Sound is good.
Set 1.000 at MMX PSLLW PSLLQ. Sound is high grade.
The compiler option must be "CPU with MMX".
Code: Select all
; WasapiSharedVolumeStabilizer
; Copyright (c) Hiroyuki Yokota (oryaaaaa)
; 2023/10/21 5:29 depend BASSWASAPI 2.4 and BASS 2.4
; PureBasic 6.02 LTS (Windows - x64)
; PureBasic, all the provided tools And components
; are copyright © 1998-2023 Fantaisie Software
; +
; BASS 2.4
; Copyright (c) 1999-2019 Un4seen Developments Ltd. All rights reserved.
; BASS.DLL 64-bit BASS Module
; +
; BASSWASAPI 2.4
; Copyright (c) 2009-2017 Un4seen Developments Ltd. All rights reserved.
; BASSWASAPI.DLL 64-bit BASSWASAPI Module
; BASSWASAPI.LIB 64-bit BASSWASAPI Import library
; =
; Build need "BASSWASAPI.LIB", Run need "BASS.DLL" "BASSWASAPI.DLL"
; Executable Format "Console" "CPU with MMX"
Macro Set_CL64
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!INC cl
!INC cl
!INC cl
!SHL cl, cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
EndMacro
Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, 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
;
!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
EndMacro
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
; 249 @@
!NOP QWORD [Rip+136]
!NOP QWORD [Rip+152]
!NOP QWORD [Rip+168]
!NOP QWORD [Rip+184]
!NOP QWORD [Rip+200]
!NOP QWORD [Rip+216]
!NOP QWORD [Rip+232]
!NOP QWORD [Rip+248]
!NOP QWORD [Rip+264]
!NOP QWORD [Rip+280]
!NOP QWORD [Rip+296]
!NOP QWORD [Rip+312]
!NOP QWORD [Rip+328]
!NOP QWORD [Rip+344]
!NOP QWORD [Rip+360]
!NOP QWORD [Rip+376]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
MOV_Rax_Rax_Up_Down
MOV_Rdx_Rdx_Up_Down
MOV_Rsp_Rsp_Up_Down
MOV_Rsi_Rsi_Up_Down
MOV_R9_R9_Up_Down
MOV_R11_R11_Up_Down
MOV_R13_R13_Up_Down
MOV_R15_R15_Up_Down
MOV_Rcx_Rcx_Up_Down
MOV_Rbx_Rbx_Up_Down
MOV_Rbp_Rbp_Up_Down
MOV_Rdi_Rdi_Up_Down
MOV_R8_R8_Up_Down
MOV_R10_R10_Up_Down
MOV_R12_R12_Up_Down
MOV_R14_R14_Up_Down
; 249 @@ End
EndMacro
Macro BeforeProcedureRegisters_RDRAND
ALL_MMX_CLEAR_SHIFTWORD_INC_CL
SIMPLE_MOVE_REGISTERS_Up_and_Down
; 17 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip+32]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ mm0, Rax
!MOVQ mm1, Rdx
!MOVQ mm2, Rsp
!MOVQ mm3, Rsi
!MOVQ mm4, R9
!MOVQ mm5, R11
!MOVQ mm6, R13
!MOVQ mm7, R15
; 17 @@ End
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rax
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rdx
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rsp
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rsi
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R9
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R11
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R13
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R15
!NOP QWORD [Rip-32]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
; 49 @@
!NOP QWORD [Rip+32]
!NOP QWORD [Rip+48]
!NOP QWORD [Rip+64]
!NOP QWORD [Rip+80]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rax, mm0
!MOVQ Rdx, mm1
!MOVQ Rsp, mm2
!MOVQ Rsi, mm3
!MOVQ R9, mm4
!MOVQ R11, mm5
!MOVQ R13, mm6
!MOVQ R15, mm7
!MOVQ mm0, Rcx
!MOVQ mm1, Rbx
!MOVQ mm2, Rbp
!MOVQ mm3, Rdi
!MOVQ mm4, R8
!MOVQ mm5, R10
!MOVQ mm6, R12
!MOVQ mm7, R14
; 49 @@ End
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rcx
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rbx
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rbp
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND Rdi
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R8
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R10
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R12
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RDRAND R14
!NOP QWORD [Rip]
!NOP QWORD [Rip]
; 19 @@
!NOP QWORD [Rip+24]
!NOP QWORD [Rip+40]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rcx, mm0
!MOVQ Rbx, mm1
!MOVQ Rbp, mm2
!MOVQ Rdi, mm3
!MOVQ R8, mm4
!MOVQ R10, mm5
!MOVQ R12, mm6
!MOVQ R14, mm7
!EMMS
; 19 @@ End
SIMPLE_MOVE_REGISTERS_Up_and_Down
EndMacro
Macro BeforeProcedureRegisters_SMSW
ALL_MMX_CLEAR_SHIFTWORD_INC_CL
SIMPLE_MOVE_REGISTERS_Up_and_Down
; 17 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip+32]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ mm0, Rax
!MOVQ mm1, Rdx
!MOVQ mm2, Rsp
!MOVQ mm3, Rsi
!MOVQ mm4, R9
!MOVQ mm5, R11
!MOVQ mm6, R13
!MOVQ mm7, R15
; 17 @@ End
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rax
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rdx
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rsp
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rsi
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R9
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R11
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R13
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R15
!NOP QWORD [Rip-32]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
; 49 @@
!NOP QWORD [Rip+32]
!NOP QWORD [Rip+48]
!NOP QWORD [Rip+64]
!NOP QWORD [Rip+80]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rax, mm0
!MOVQ Rdx, mm1
!MOVQ Rsp, mm2
!MOVQ Rsi, mm3
!MOVQ R9, mm4
!MOVQ R11, mm5
!MOVQ R13, mm6
!MOVQ R15, mm7
!MOVQ mm0, Rcx
!MOVQ mm1, Rbx
!MOVQ mm2, Rbp
!MOVQ mm3, Rdi
!MOVQ mm4, R8
!MOVQ mm5, R10
!MOVQ mm6, R12
!MOVQ mm7, R14
; 49 @@ End
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rcx
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rbx
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rbp
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW Rdi
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R8
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R10
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R12
!NOP QWORD [Rip-32]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!SMSW R14
!NOP QWORD [Rip-32]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
; 19 @@
!NOP QWORD [Rip+24]
!NOP QWORD [Rip+40]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rcx, mm0
!MOVQ Rbx, mm1
!MOVQ Rbp, mm2
!MOVQ Rdi, mm3
!MOVQ R8, mm4
!MOVQ R10, mm5
!MOVQ R12, mm6
!MOVQ R14, mm7
!EMMS
; 19 @@ End
SIMPLE_MOVE_REGISTERS_Up_and_Down
EndMacro
Macro MacroMakeFloat
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
!MOVQ mm5, Rcx
!PSLLW mm1, mm5 ;1 Left 1bit shift
!PSLLW mm1, mm5 ;2 Left 1bit shift
!PSLLW mm1, mm5 ;3 Left 1bit shift
!PSLLW mm1, mm5 ;4 Left 1bit shift
!PSLLW mm1, mm5 ;5 Left 1bit shift
!PSLLW mm1, mm5 ;6 Left 1bit shift
!PSLLW mm1, mm5 ;7 Left 1bit shift
!PSLLW mm1, mm5 ;8 Left 1bit shift
!PSLLW mm1, mm5 ;9 Left 1bit shift
!PSLLW mm1, mm5 ;A Left 1bit shift
!PSLLW mm1, mm5 ;B Left 1bit shift
!PSLLW mm1, mm5 ;C Left 1bit shift
!PSLLW mm1, mm5 ;D Left 1bit shift
!PSLLW mm1, mm5 ;E Left 1bit shift
!PSLLW mm1, mm5 ;F Left 1bit shift
!PSLLW mm1, mm5 ;0 Left 1bit shift
!MOVQ mm1, Rcx
!PSLLW mm5, mm1 ;1 Left 1bit shift
!PSLLW mm5, mm1 ;2 Left 1bit shift
!PSLLW mm5, mm1 ;3 Left 1bit shift
!PSLLW mm5, mm1 ;4 Left 1bit shift
!PSLLW mm5, mm1 ;5 Left 1bit shift
!PSLLW mm5, mm1 ;6 Left 1bit shift
!PSLLW mm5, mm1 ;7 Left 1bit shift
!PSLLW mm5, mm1 ;8 Left 1bit shift
!PSLLW mm5, mm1 ;9 Left 1bit shift
!PSLLW mm5, mm1 ;A Left 1bit shift
!PSLLW mm5, mm1 ;B Left 1bit shift
!PSLLW mm5, mm1 ;C Left 1bit shift
!PSLLW mm5, mm1 ;D Left 1bit shift
!PSLLW mm5, mm1 ;E Left 1bit shift
!PSLLW mm5, mm1 ;F Left 1bit shift
!PSLLW mm5, mm1 ;0 Left 1bit shift
; mm5 = 0000 , mm1 = 001
;
;1 = SHL R8, cl + INC R8b
;PSLLQ mm5, mm1
;PADDQ mm5, mm1
;
;0 = SHL R8, cl
;PSLLQ mm5, mm1
;
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
EndMacro
Macro MacroMakeFloatFF
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
!MOVQ mm5, Rcx
!PSLLW mm1, mm5 ;1 Left 1bit shift
!PSLLW mm1, mm5 ;2 Left 1bit shift
!PSLLW mm1, mm5 ;3 Left 1bit shift
!PSLLW mm1, mm5 ;4 Left 1bit shift
!PSLLW mm1, mm5 ;5 Left 1bit shift
!PSLLW mm1, mm5 ;6 Left 1bit shift
!PSLLW mm1, mm5 ;7 Left 1bit shift
!PSLLW mm1, mm5 ;8 Left 1bit shift
!PSLLW mm1, mm5 ;9 Left 1bit shift
!PSLLW mm1, mm5 ;A Left 1bit shift
!PSLLW mm1, mm5 ;B Left 1bit shift
!PSLLW mm1, mm5 ;C Left 1bit shift
!PSLLW mm1, mm5 ;D Left 1bit shift
!PSLLW mm1, mm5 ;E Left 1bit shift
!PSLLW mm1, mm5 ;F Left 1bit shift
!PSLLW mm1, mm5 ;0 Left 1bit shift
!MOVQ mm1, Rcx
!PSLLW mm5, mm1 ;1 Left 1bit shift
!PSLLW mm5, mm1 ;2 Left 1bit shift
!PSLLW mm5, mm1 ;3 Left 1bit shift
!PSLLW mm5, mm1 ;4 Left 1bit shift
!PSLLW mm5, mm1 ;5 Left 1bit shift
!PSLLW mm5, mm1 ;6 Left 1bit shift
!PSLLW mm5, mm1 ;7 Left 1bit shift
!PSLLW mm5, mm1 ;8 Left 1bit shift
!PSLLW mm5, mm1 ;9 Left 1bit shift
!PSLLW mm5, mm1 ;A Left 1bit shift
!PSLLW mm5, mm1 ;B Left 1bit shift
!PSLLW mm5, mm1 ;C Left 1bit shift
!PSLLW mm5, mm1 ;D Left 1bit shift
!PSLLW mm5, mm1 ;E Left 1bit shift
!PSLLW mm5, mm1 ;F Left 1bit shift
!PSLLW mm5, mm1 ;0 Left 1bit shift
; mm5 = 0000 , mm1 = 001
;
;1 = SHL R8, cl + INC R8b
;PSLLQ mm5, mm1
;PADDQ mm5, mm1
;
;0 = SHL R8, cl
;PSLLQ mm5, mm1
;
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
EndMacro
Macro ASIO_ChannelSetVolume_Stabilizer_Pretime
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
!MOVQ mm5, Rcx
!PSLLW mm1, mm5 ;1 Left 1bit shift
!PSLLW mm1, mm5 ;2 Left 1bit shift
!PSLLW mm1, mm5 ;3 Left 1bit shift
!PSLLW mm1, mm5 ;4 Left 1bit shift
!PSLLW mm1, mm5 ;5 Left 1bit shift
!PSLLW mm1, mm5 ;6 Left 1bit shift
!PSLLW mm1, mm5 ;7 Left 1bit shift
!PSLLW mm1, mm5 ;8 Left 1bit shift
!PSLLW mm1, mm5 ;9 Left 1bit shift
!PSLLW mm1, mm5 ;A Left 1bit shift
!PSLLW mm1, mm5 ;B Left 1bit shift
!PSLLW mm1, mm5 ;C Left 1bit shift
!PSLLW mm1, mm5 ;D Left 1bit shift
!PSLLW mm1, mm5 ;E Left 1bit shift
!PSLLW mm1, mm5 ;F Left 1bit shift
!PSLLW mm1, mm5 ;0 Left 1bit shift
!MOVQ mm1, Rcx
!PSLLW mm5, mm1 ;1 Left 1bit shift
!PSLLW mm5, mm1 ;2 Left 1bit shift
!PSLLW mm5, mm1 ;3 Left 1bit shift
!PSLLW mm5, mm1 ;4 Left 1bit shift
!PSLLW mm5, mm1 ;5 Left 1bit shift
!PSLLW mm5, mm1 ;6 Left 1bit shift
!PSLLW mm5, mm1 ;7 Left 1bit shift
!PSLLW mm5, mm1 ;8 Left 1bit shift
!PSLLW mm5, mm1 ;9 Left 1bit shift
!PSLLW mm5, mm1 ;A Left 1bit shift
!PSLLW mm5, mm1 ;B Left 1bit shift
!PSLLW mm5, mm1 ;C Left 1bit shift
!PSLLW mm5, mm1 ;D Left 1bit shift
!PSLLW mm5, mm1 ;E Left 1bit shift
!PSLLW mm5, mm1 ;F Left 1bit shift
!PSLLW mm5, mm1 ;0 Left 1bit shift
; ; Set_CL1
; ; MOVZX_Rcx
; ; !MOVQ mm1, Rcx
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
!PSLLQ mm5, mm1
!PADDQ mm5, mm1
EndMacro
Macro WASAPI_ChannelSetVolume_Stabilizer
;
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; mm5 = -1
!MOVQ2DQ xmm1, mm5
MacroMakeFloatFF
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
; 5 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ2DQ xmm1, mm5
!MOVSS xmm1, xmm1
!EMMS
;BASS_WASAPI_SetVolume(D8, NFloat_1_000)
!CALL QWORD BASS_WASAPI_SetVolume
; 5 @@ End
;
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; mm5 = -1
!MOVQ2DQ xmm1, mm5
MacroMakeFloatFF
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
; 5 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ2DQ xmm1, mm5
!MOVSS xmm1, xmm1
!EMMS
;BASS_WASAPI_SetVolume(D8, NFloat_1_000)
!CALL QWORD BASS_WASAPI_SetVolume
; 5 @@ End
;
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; mm5 = -1
!MOVQ2DQ xmm1, mm5
MacroMakeFloat
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
; 5 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ2DQ xmm1, mm5
!MOVSS xmm1, xmm1
!EMMS
;BASS_WASAPI_SetVolume(D8, Float_1_000)
!CALL QWORD BASS_WASAPI_SetVolume
; 5 @@ End
;
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; mm5 = -1
!MOVQ2DQ xmm1, mm5
MacroMakeFloatFF
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
; 5 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ2DQ xmm1, mm5
!MOVSS xmm1, xmm1
!EMMS
;BASS_WASAPI_SetVolume(D8, NFloat_1_000)
!CALL QWORD BASS_WASAPI_SetVolume
; 5 @@ End
;
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; mm5 = -1
!MOVQ2DQ xmm1, mm5
MacroMakeFloat
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
; 5 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ2DQ xmm1, mm5
!MOVSS xmm1, xmm1
!EMMS
;BASS_WASAPI_SetVolume(D8, Float_1_000)
!CALL QWORD BASS_WASAPI_SetVolume
; 5 @@ End
;
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; mm5 = -1
!MOVQ2DQ xmm1, mm5
MacroMakeFloatFF
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
; 5 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ2DQ xmm1, mm5
!MOVSS xmm1, xmm1
!EMMS
;BASS_WASAPI_SetVolume(D8, NFloat_1_000)
!CALL QWORD BASS_WASAPI_SetVolume
; 5 @@ End
;
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; mm5 = -1
!MOVQ2DQ xmm1, mm5
MacroMakeFloat
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
; 5 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ2DQ xmm1, mm5
!MOVSS xmm1, xmm1
!EMMS
;BASS_WASAPI_SetVolume(D8, Float_1_000)
!CALL QWORD BASS_WASAPI_SetVolume
; 5 @@ End
;
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rax, QWORD 0
!MOV Rax, QWORD 0
!NOP QWORD [Rip-32]
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
EndMacro
Import "basswasapi.lib"
BASS_WASAPI_Init.b(device.i, Freq.l, chans.l, flags.l, Buffer.f, period.f, *proc, *User)
BASS_WASAPI_Free.b()
BASS_WASAPI_SetVolume.b(linear.b, volume.f)
EndImport
Global RDM.i, RN.i
If OpenConsole("Wasapi Shared Volume Stabilizer")
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!INC cl
!INC cl
!INC cl
!SHL cl, cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
!MOV QWORD [v_RDM], Rcx
PrintN("Nontallion based Beauty Wave Creater")
PrintN("Setup ... WASAPI Shared volume 100")
Repeat
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
SIMPLE_MOVE_REGISTERS_Up_and_Down
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOV Rcx, QWORD 0
!MOV Rcx, QWORD 0
!NOP QWORD [Rip-32]
!INC cl
!INC cl
!INC cl
!INC cl
!SHL cl, cl
!MOVZX cx, cl
!MOVZX Rcx, cl
!MOVZX cx, cl
!CALL QWORD PB_Delay
!INC QWORD [v_RN]
Until RN>RDM
BeforeProcedureRegisters_SMSW
BeforeProcedureRegisters_RDRAND
ASIO_ChannelSetVolume_Stabilizer_Pretime
; 123 @@
!NOP QWORD [Rip+72]
!NOP QWORD [Rip+88]
!NOP QWORD [Rip+104]
!NOP QWORD [Rip+120]
!NOP QWORD [Rip+136]
!NOP QWORD [Rip+152]
!NOP QWORD [Rip+168]
!NOP QWORD [Rip+184]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ [v_RDM], mm5
!EMMS
If BASS_WASAPI_Init(RDM, RN, RN, RN, RN, RN, RN, RN)
; 123 @@ End
WASAPI_ChannelSetVolume_Stabilizer
WASAPI_ChannelSetVolume_Stabilizer
WASAPI_ChannelSetVolume_Stabilizer
BASS_WASAPI_Free()
EndIf
CloseConsole()
EndIf
End
BASS_WASAPI_SetVolume(RN, RN)
Delay(RN)

