This sound player's code is for Full Digital Amplifier for Hi-End.
Japan Product: USB-DAC Denon DA-310USB
DDFA Full Digital Headphone Amplifier, Best seller in Japan.
Recommend Headphone: Sennheiser HD 800 S
This code optimizing is Bug head 10.93 (PINK HQ 1.81) based.
This way is full memory sound player. need Ram space 600MB over.
Tested: Windows 10 Home x64, Intel Core i5-8400, RAM 16GB
Output format : WASAPI EXCLUSIVE default output
Commented tips : ASIO output, DSD-RAW output
Bug head Nontallion - oryaaaaa official homepage
Free software for a specified period ( Shareware software )
Copyright (c) 2009-2019, Hiroyuki Yokota ( oryaaaaa )
http://www.mics.ne.jp/~coolverse/
Prohibition clause
Skipping buffer initialization will absolutely damage the audio equipment.
If you removed the very long FNOP code, it will not be the OS like operation code.
Purpose of this post
This is a source code for verification for audio equipment manufacturers to confirm
that the full digital amplifier is caused by WHO smartphone hearing loss.
I will retain only this copyright, but I will not dispute it no matter what
purpose it is used. The volume increases, because it was digital output
with very low noise sound output.
Set Volume Level by EVE audio SC204
+12dB ... General sound player with noise.
+2dB ... This sound player with very low noise.
+0.5dB ... Bug head 10.93 (PINK HQ 1.81) with super low noise.
- Required: PureBasic single license, BASS win32 shareware license
- Required: PureBasic 5.70 LTS x64 Windows
- Required: bass.dll bass.lib x64 2.4.13.8
- Required: basswasapi.dll basswasapi.lib x64 2.4.2.0
- Required: bassflac.dll bassflac.lib x64 2.4.4.0
and - Required: run "PureBasicForumTips_Stabilizer_MMX.pb"
Output "WASAPI_Stabilizer_2_MMX.txt"
Output "WASAPI_Stabilizer_2_MMX.pbi"
Output "WASAPI_Stabilizer_3_MMX.txt"
Output "WASAPI_Stabilizer_3_MMX.pbi" - Required: run "PureBasicForumTips_OnlyMyRailgunProcess.pb"
Output "WASAPI_OnlyMyRailgunProcess_Before.txt"
Output "WASAPI_OnlyMyRailgunProcess_Before.pbi"
Output "WASAPI_OnlyMyRailgunProcess_After.pbi"
Create complete executable
- run "PureBasicForumTips_BuildExecutable.pb"
PureBasic.asm "6,370,444 lines" "Binary size 9.1 MB"
http://www.mics.ne.jp/~coolverse/WASAPI_player/
Size 25,210 ( 25KB )
MD5 87524FF8B629D5FE7AD09179890D109B
run "WASAPI_player.exe"
select MP3 or FLAC file
play ... end
"PureBasicForumTips_Stabilizer_MMX.pb"
Code: Select all
; Generate Stabilizer MMX
; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)
Global NewList SourceList.s()
Macro Out
AddElement(SourceList()) : SourceList() =
EndMacro
Macro FNOPx32
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
Out "FNOP"
EndMacro
Macro INIT_MMX
For I = 0 To 7
Out "PXOR mm"+Str(I)+", mm"+Str(I)
Out "PXOR mm"+Str(I)+", mm"+Str(I)
Out "PAND mm"+Str(I)+", mm"+Str(I)
Out "PAND mm"+Str(I)+", mm"+Str(I)
Out "PXOR mm"+Str(I)+", mm"+Str(I)
Out "PXOR mm"+Str(I)+", mm"+Str(I)
Out "PAND mm"+Str(I)+", mm"+Str(I)
Out "PAND mm"+Str(I)+", mm"+Str(I)
Next
For I = 0 To 7
If Not I=5
Out "MOVQ mm"+Str(I)+", mm5"
EndIf
Next
EndMacro
Macro Isolate_MMX
; MOVQ mm3, Rax
Out "MOVQ mm1, mm3"
Out "MOVQ mm7, mm1"
Out "MOVQ mm2, mm7"
Out "MOVQ mm6, mm2"
Out "MOVQ mm4, mm6"
Out "MOVQ mm5, mm4"
; MOVQ Rax, mm5
EndMacro
INIT_MMX
Out "MOVQ mm3, Rdi"
Out "XOR Rdi, Rdi"
Out "XOR Rdi, Rdi"
Out "AND Rdi, Rdi"
Out "AND Rdi, Rdi"
Out "MOVQ Rdi, mm5"
Isolate_MMX
Out "MOVQ Rdi, mm5"
INIT_MMX
Out "MOVQ mm3, Rbp"
Out "XOR Rbp, Rbp"
Out "XOR Rbp, Rbp"
Out "AND Rbp, Rbp"
Out "AND Rbp, Rbp"
Out "MOVQ Rbp, mm5"
Isolate_MMX
Out "MOVQ Rbp, mm5"
INIT_MMX
Out "MOVQ mm3, Rbx"
Out "XOR Rbx, Rbx"
Out "XOR Rbx, Rbx"
Out "AND Rbx, Rbx"
Out "AND Rbx, Rbx"
Out "MOVQ Rbx, mm5"
Isolate_MMX
Out "MOVQ Rbx, mm5"
INIT_MMX
Out "MOVQ mm3, Rcx"
Out "XOR Rcx, Rcx"
Out "XOR Rcx, Rcx"
Out "AND Rcx, Rcx"
Out "AND Rcx, Rcx"
Out "MOVQ Rcx, mm5"
Isolate_MMX
Out "MOVQ Rcx, mm5"
INIT_MMX
Out "MOVQ mm3, R8"
Out "XOR R8, R8"
Out "XOR R8, R8"
Out "AND R8, R8"
Out "AND R8, R8"
Out "MOVQ R8, mm5"
Isolate_MMX
Out "MOVQ R8, mm5"
INIT_MMX
Out "MOVQ mm3, R10"
Out "XOR R10, R10"
Out "XOR R10, R10"
Out "AND R10, R10"
Out "AND R10, R10"
Out "MOVQ R10, mm5"
Isolate_MMX
Out "MOVQ R10, mm5"
INIT_MMX
Out "MOVQ mm3, R12"
Out "XOR R12, R12"
Out "XOR R12, R12"
Out "AND R12, R12"
Out "AND R12, R12"
Out "MOVQ R12, mm5"
Isolate_MMX
Out "MOVQ R12, mm5"
INIT_MMX
Out "MOVQ mm3, R14"
Out "XOR R14, R14"
Out "XOR R14, R14"
Out "AND R14, R14"
Out "AND R14, R14"
Out "MOVQ R14, mm5"
Isolate_MMX
Out "MOVQ R14, mm5"
INIT_MMX
Out "MOVQ mm3, Rsi"
Out "XOR Rsi, Rsi"
Out "XOR Rsi, Rsi"
Out "AND Rsi, Rsi"
Out "AND Rsi, Rsi"
Out "MOVQ Rsi, mm5"
Isolate_MMX
Out "MOVQ Rsi, mm5"
INIT_MMX
Out "MOVQ mm3, Rsp"
Out "XOR Rsp, Rsp"
Out "XOR Rsp, Rsp"
Out "AND Rsp, Rsp"
Out "AND Rsp, Rsp"
Out "MOVQ Rsp, mm5"
Isolate_MMX
Out "MOVQ Rsp, mm5"
INIT_MMX
Out "MOVQ mm3, Rax"
Out "XOR Rax, Rax"
Out "XOR Rax, Rax"
Out "AND Rax, Rax"
Out "AND Rax, Rax"
Out "MOVQ Rax, mm5"
Isolate_MMX
Out "MOVQ Rax, mm5"
INIT_MMX
Out "MOVQ mm3, Rdx"
Out "XOR Rdx, Rdx"
Out "XOR Rdx, Rdx"
Out "AND Rdx, Rdx"
Out "AND Rdx, Rdx"
Out "MOVQ Rdx, mm5"
Isolate_MMX
Out "MOVQ Rdx, mm5"
INIT_MMX
Out "MOVQ mm3, R9"
Out "XOR R9, R9"
Out "XOR R9, R9"
Out "AND R9, R9"
Out "AND R9, R9"
Out "MOVQ R9, mm5"
Isolate_MMX
Out "MOVQ R9, mm5"
INIT_MMX
Out "MOVQ mm3, R11"
Out "XOR R11, R11"
Out "XOR R11, R11"
Out "AND R11, R11"
Out "AND R11, R11"
Out "MOVQ R11, mm5"
Isolate_MMX
Out "MOVQ R11, mm5"
INIT_MMX
Out "MOVQ mm3, R13"
Out "XOR R13, R13"
Out "XOR R13, R13"
Out "AND R13, R13"
Out "AND R13, R13"
Out "MOVQ R13, mm5"
Isolate_MMX
Out "MOVQ R13, mm5"
INIT_MMX
Out "MOVQ mm3, R15"
Out "XOR R15, R15"
Out "XOR R15, R15"
Out "AND R15, R15"
Out "AND R15, R15"
Out "MOVQ R15, mm5"
Isolate_MMX
Out "MOVQ R15, mm5"
INIT_MMX
Out "MOVQ mm1, mm3"
Out "MOVQ mm7, mm1"
Out "MOVQ mm2, mm7"
Out "MOVQ mm6, mm2"
Out "MOVQ mm4, mm6"
Out "MOVQ mm5, mm4"
For I=0 To 15
Out "MOVQ2DQ xmm"+Str(I)+", mm3"
Out "PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I)
Next
For I=0 To 15
Out "MOVQ2DQ xmm"+Str(I)+", mm1"
Out "PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I)
Next
For I=0 To 15
Out "MOVQ2DQ xmm"+Str(I)+", mm7"
Out "PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I)
Next
For I=0 To 15
Out "MOVQ2DQ xmm"+Str(I)+", mm2"
Out "PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I)
Next
For I=0 To 15
Out "MOVQ2DQ xmm"+Str(I)+", mm6"
Out "PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I)
Next
For I=0 To 15
Out "MOVQ2DQ xmm"+Str(I)+", mm4"
Out "PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I)
Next
For I=0 To 15
Out "MOVQ2DQ xmm"+Str(I)+", mm5"
Out "PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I)
Next
Out "EMMS"
Global fileno.i
fileno = CreateFile(#PB_Any, "WASAPI_Stabilizer_2_MMX.pbi")
If fileno
WriteStringFormat(fileno, #PB_UTF8)
WriteStringN(fileno, "; WASAPI_Stabilizer_2_MMX.pbi", #PB_UTF8)
WriteStringN(fileno, "; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)", #PB_UTF8)
For I=1 To 32
WriteStringN(fileno, "!FNOP", #PB_UTF8)
Next
ForEach SourceList()
If Not Left(SourceList(), 1)=";"
WriteStringN(fileno, "!"+SourceList(), #PB_UTF8)
EndIf
Next
CloseFile(fileno)
EndIf
fileno = CreateFile(#PB_Any, "WASAPI_Stabilizer_2_MMX.txt")
If fileno
WriteStringFormat(fileno, #PB_UTF8)
WriteStringN(fileno, "; WASAPI_Stabilizer_2_MMX.txt", #PB_UTF8)
WriteStringN(fileno, "; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)", #PB_UTF8)
For I=1 To 32
WriteStringN(fileno, "FNOP", #PB_UTF8)
Next
ForEach SourceList()
If Not Left(SourceList(), 1)=";"
WriteStringN(fileno, SourceList(), #PB_UTF8)
EndIf
Next
CloseFile(fileno)
EndIf
ForEach SourceList()
FNOPx32
Next
fileno = CreateFile(#PB_Any, "WASAPI_Stabilizer_3_MMX.pbi")
If fileno
WriteStringFormat(fileno, #PB_UTF8)
WriteStringN(fileno, "; WASAPI_Stabilizer_3_MMX.pbi", #PB_UTF8)
WriteStringN(fileno, "; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)", #PB_UTF8)
For I=1 To 512
WriteStringN(fileno, "!FNOP", #PB_UTF8)
Next
ForEach SourceList()
If Not Left(SourceList(), 1)=";"
WriteStringN(fileno, "!"+SourceList(), #PB_UTF8)
EndIf
Next
CloseFile(fileno)
EndIf
fileno = CreateFile(#PB_Any, "WASAPI_Stabilizer_3_MMX.txt")
If fileno
WriteStringFormat(fileno, #PB_UTF8)
WriteStringN(fileno, "; WASAPI_Stabilizer_3_MMX.txt", #PB_UTF8)
WriteStringN(fileno, "; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)", #PB_UTF8)
For I=1 To 512
WriteStringN(fileno, "FNOP", #PB_UTF8)
Next
ForEach SourceList()
If Not Left(SourceList(), 1)=";"
WriteStringN(fileno, SourceList(), #PB_UTF8)
EndIf
Next
CloseFile(fileno)
EndIf
End
Code: Select all
; Generator Only My Railgun Process
; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)
Global MacroLoop.i, CodeLoop.i
Global NewList OutputCode.s()
Macro Buffer
AddElement(Buffers()) : Buffers() =
EndMacro
Macro Out
AddElement(OutputCode()) : OutputCode() =
EndMacro
Macro FNOPx32
For MacroLoop=1 To 32
Buffer "FNOP"
Next
EndMacro
Macro OutputFNOPx32
For MacroLoop=1 To 32
Out "FNOP"
Next
EndMacro
Global NewList Buffers.s()
Buffer "; Global OnlyMyRailGun.i"
For CodeLoop=1 To 32
Buffer "PXOR mm5, mm5"
Buffer "PXOR mm5, mm5"
Buffer "PAND mm5, mm5"
Buffer "PAND mm5, mm5"
Next
Buffer "; !MOVNTQ [v_OnlyMyRailGun], mm5"
Buffer "; !MOVQ mm5, [v_OnlyMyRailGun]"
OutputFNOPx32
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "XOR Rax, Rax"
Buffer "XOR Rax, Rax"
Buffer "AND Rax, Rax"
Buffer "AND Rax, Rax"
Buffer "INC Rax"
Buffer "INC Rax"
Buffer "INC Rax"
Buffer "DEC Rax"
Buffer "DEC Rax"
Buffer "DEC Rax"
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "INC cl"
Buffer "MOVQ Rax, mm5"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
For CodeLoop=1 To 8
Buffer "INC al"
Buffer "SHL al, cl"
Buffer "INC ah"
Buffer "SHL ah, cl"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Next
Buffer "INC al"
Buffer "INC ah"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Buffer "SHL Eax, cl" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Eax"
Buffer "SHL Eax, cl"
Next
Buffer "INC Rax"
Buffer "SHL Rax, cl" ; FFFF FFFF
For CodeLoop=32 To 63
Buffer "INC Rax"
Buffer "SHL Rax, cl"
Next
Buffer "INC Rax" ; FFFF FFFF FFFF FFFF
Buffer "INC Rax" ; 0000
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
For CodeLoop=1 To 8
Buffer "INC al"
Buffer "SHL al, cl"
Buffer "INC ah"
Buffer "SHL ah, cl"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Next
Buffer "INC al"
Buffer "INC ah"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Buffer "SHL Eax, cl" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Eax"
Buffer "SHL Eax, cl"
Next
Buffer "INC Rax"
Buffer "SHL Rax, cl" ; FFFF FFFF
For CodeLoop=32 To 63
Buffer "INC Rax"
Buffer "SHL Rax, cl"
Next
Buffer "INC Rax" ; FFFF FFFF FFFF FFFF
Buffer "XOR Rcx, Rcx"
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "a", "b")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "a", "d")
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "XOR R8, R8"
Buffer "XOR R8, R8"
Buffer "AND R8, R8"
Buffer "AND R8, R8"
Buffer "INC R8"
Buffer "INC R8"
Buffer "INC R8"
Buffer "DEC R8"
Buffer "DEC R8"
Buffer "DEC R8"
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "INC cl"
Buffer "MOVQ R8, mm5"
Buffer "XCHG R8b, R8b"
For CodeLoop=1 To 8
Buffer "INC R8b"
Buffer "SHL R8b, cl"
Next
Buffer "INC R8b"
Buffer "SHL R8w, cl" ; FF
For CodeLoop=1 To 8
Buffer "INC R8w"
Buffer "SHL R8w, cl"
Next
Buffer "INC R8w"
Buffer "SHL R8d, cl" ; FFFF
For CodeLoop=1 To 16
Buffer "INC R8d"
Buffer "SHL R8d, cl"
Next
Buffer "INC R8d"
Buffer "SHL R8, cl" ; FFFF FFFF
For CodeLoop=1 To 32
Buffer "INC R8"
Buffer "SHL R8, cl"
Next
Buffer "INC R8" ; FFFF FFFF FFFF FFFF
Buffer "INC R8" ; 0000
Buffer "XCHG R8b, R8b"
For CodeLoop=1 To 8
Buffer "INC R8b"
Buffer "SHL R8b, cl"
Next
Buffer "INC R8b"
Buffer "SHL R8w, cl" ; FF
For CodeLoop=1 To 8
Buffer "INC R8w"
Buffer "SHL R8w, cl"
Next
Buffer "INC R8w"
Buffer "SHL R8d, cl" ; FFFF
For CodeLoop=1 To 16
Buffer "INC R8d"
Buffer "SHL R8d, cl"
Next
Buffer "INC R8d"
Buffer "SHL R8, cl" ; FFFF FFFF
For CodeLoop=1 To 32
Buffer "INC R8"
Buffer "SHL R8, cl"
Next
Buffer "INC R8" ; FFFF FFFF FFFF FFFF
Buffer "XOR Rcx, Rcx"
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "9")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "10")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "11")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "12")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "13")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "14")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "15")
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "MOVQ Rcx, mm5"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
For CodeLoop=1 To 8
Buffer "INC cl"
Buffer "SHL cl, 1"
Buffer "INC ch"
Buffer "SHL ch, 1"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Next
Buffer "INC cl"
Buffer "INC ch"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Buffer "SHL Ecx, 1" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Ecx"
Buffer "SHL Ecx, 1"
Next
Buffer "INC Rcx"
Buffer "SHL Rcx, 1" ; FFFF FFFF
For loop=32 To 63
Buffer "INC Rcx"
Buffer "SHL Rcx, 1"
Next
Buffer "INC Rcx" ; FFFF FFFF FFFF FFFF
Buffer "INC Rcx" ; 0000
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
For CodeLoop=1 To 8
Buffer "INC cl"
Buffer "SHL cl, 1"
Buffer "INC ch"
Buffer "SHL ch, 1"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Next
Buffer "INC cl"
Buffer "INC ch"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Buffer "SHL Ecx, 1" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Ecx"
Buffer "SHL Ecx, 1"
Next
Buffer "INC Rcx"
Buffer "SHL Rcx, 1" ; FFFF FFFF
For loop=32 To 63
Buffer "INC Rcx"
Buffer "SHL Rcx, 1"
Next
Buffer "INC Rcx" ; FFFF FFFF FFFF FFFF
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "XOR Rbx, Rbx"
Buffer "XOR Rbx, Rbx"
Buffer "AND Rbx, Rbx"
Buffer "OR Rbx, Rbx"
Buffer "OR Rbx, Rbx"
Buffer "XOR Rbx, Rbx"
Buffer "XOR Rbx, Rbx"
Buffer "INC Rbx"
Buffer "INC Rbx"
Buffer "INC Rbx"
Buffer "DEC Rbx"
Buffer "DEC Rbx"
Buffer "DEC Rbx"
Buffer "XCHG spl, spl"
Buffer "MOVQ Rbx, mm5"
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "b", "c")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "8")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "10")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "12")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "14")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "b", "a")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "b", "d")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "9")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "11")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "13")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "bx", "15")
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "MOV R8, Rsp"
Buffer "XOR Rsp, Rsp"
Buffer "XOR Rsp, Rsp"
Buffer "AND Rsp, Rsp"
Buffer "AND Rsp, Rsp"
Buffer "INC Rsp"
Buffer "INC Rsp"
Buffer "INC Rsp"
Buffer "DEC Rsp"
Buffer "DEC Rsp"
Buffer "DEC Rsp"
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "INC cl"
Buffer "MOVQ Rsp, mm5"
Buffer "XCHG spl, spl"
For CodeLoop=1 To 8
Buffer "INC spl"
Buffer "SHL spl, cl"
Next
Buffer "INC spl"
Buffer "SHL sp, cl" ; FF
For CodeLoop=1 To 8
Buffer "INC sp"
Buffer "SHL sp, cl"
Next
Buffer "INC sp"
Buffer "SHL Esp, cl" ; FFFF
For CodeLoop=1 To 16
Buffer "INC Esp"
Buffer "SHL Esp, cl"
Next
Buffer "INC Esp"
Buffer "SHL Rsp, cl" ; FFFF FFFF
For CodeLoop=1 To 32
Buffer "INC Rsp"
Buffer "SHL Rsp, cl"
Next
Buffer "INC Rsp" ; FFFF FFFF FFFF FFFF
Buffer "INC Rsp" ; 0000
Buffer "XCHG spl, spl"
For CodeLoop=1 To 8
Buffer "INC spl"
Buffer "SHL spl, cl"
Next
Buffer "INC spl"
Buffer "SHL sp, cl" ; FF
For CodeLoop=1 To 8
Buffer "INC sp"
Buffer "SHL sp, cl"
Next
Buffer "INC sp"
Buffer "SHL Esp, cl" ; FFFF
For CodeLoop=1 To 16
Buffer "INC Esp"
Buffer "SHL Esp, cl"
Next
Buffer "INC Esp"
Buffer "SHL Rsp, cl" ; FFFF FFFF
For CodeLoop=1 To 32
Buffer "INC Rsp"
Buffer "SHL Rsp, cl"
Next
Buffer "INC Rsp" ; FFFF FFFF FFFF FFFF
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rsp, Rsp"
Buffer "XOR Rsp, Rsp"
Buffer "AND Rsp, Rsp"
Buffer "OR Rsp, Rsp"
Buffer "OR Rsp, Rsp"
Buffer "XOR Rsp, Rsp"
Buffer "XOR Rsp, Rsp"
Buffer "INC Rsp"
Buffer "INC Rsp"
Buffer "INC Rsp"
Buffer "DEC Rsp"
Buffer "DEC Rsp"
Buffer "DEC Rsp"
Buffer "XCHG bpl, bpl"
Buffer "MOVQ Rsp, mm5"
Buffer "MOV Rsp, R8"
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
Global bufn.s
ForEach Buffers()
bufn = Buffers()
bufn = ReplaceString(bufn, "sp", "bp")
bufn = ReplaceString(bufn, "Rbp, R8", "Rbp, R9")
bufn = ReplaceString(bufn, "R8, Rbp", "R9, Rbp")
bufn = ReplaceString(bufn, "XCHG bpl, bpl", "XCHG spl, spl")
Out bufn
OutputFNOPx32
Next
ForEach Buffers()
bufn = Buffers()
bufn = ReplaceString(bufn, "sp", "si")
bufn = ReplaceString(bufn, "Rsi, R8", "Rsi, Rax")
bufn = ReplaceString(bufn, "R8, Rsi", "Rax, Rsi")
bufn = ReplaceString(bufn, "XCHG bpl, bpl", "XCHG spl, spl")
Out bufn
OutputFNOPx32
Next
ForEach Buffers()
bufn = Buffers()
bufn = ReplaceString(bufn, "sp", "di")
bufn = ReplaceString(bufn, "Rdi, R8", "Rdi, Rbx")
bufn = ReplaceString(bufn, "R8, Rdi", "Rbx, Rdi")
bufn = ReplaceString(bufn, "XCHG bpl, bpl", "XCHG spl, spl")
Out bufn
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "XOR Rax, Rax"
Buffer "XOR Rax, Rax"
Buffer "AND Rax, Rax"
Buffer "AND Rax, Rax"
Buffer "INC Rax"
Buffer "INC Rax"
Buffer "INC Rax"
Buffer "DEC Rax"
Buffer "DEC Rax"
Buffer "DEC Rax"
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "INC cl"
Buffer "MOVQ Rax, mm5"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
For CodeLoop=1 To 8
Buffer "INC al"
Buffer "SHL al, cl"
Buffer "INC ah"
Buffer "SHL ah, cl"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Next
Buffer "INC al"
Buffer "INC ah"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Buffer "SHL Eax, cl" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Eax"
Buffer "SHL Eax, cl"
Next
Buffer "INC Rax"
Buffer "SHL Rax, cl" ; FFFF FFFF
For loop=32 To 63
Buffer "INC Rax"
Buffer "SHL Rax, cl"
Next
Buffer "INC Rax" ; FFFF FFFF FFFF FFFF
Buffer "INC Rax" ; 0000
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
For CodeLoop=1 To 8
Buffer "INC al"
Buffer "SHL al, cl"
Buffer "INC ah"
Buffer "SHL ah, cl"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Next
Buffer "INC al"
Buffer "INC ah"
Buffer "XCHG ah, al"
Buffer "XCHG al, ah"
Buffer "SHL Eax, cl" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Eax"
Buffer "SHL Eax, cl"
Next
Buffer "INC Rax"
Buffer "SHL Rax, cl" ; FFFF FFFF
For loop=32 To 63
Buffer "INC Rax"
Buffer "SHL Rax, cl"
Next
Buffer "INC Rax" ; FFFF FFFF FFFF FFFF
Buffer "XOR Rcx, Rcx"
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "a", "b")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "a", "d")
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "XOR R8, R8"
Buffer "XOR R8, R8"
Buffer "AND R8, R8"
Buffer "AND R8, R8"
Buffer "INC R8"
Buffer "INC R8"
Buffer "INC R8"
Buffer "DEC R8"
Buffer "DEC R8"
Buffer "DEC R8"
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "INC cl"
Buffer "MOVQ R8, mm5"
Buffer "XCHG R8b, R8b"
For CodeLoop=1 To 8
Buffer "INC R8b"
Buffer "SHL R8b, cl"
Next
Buffer "INC R8b"
Buffer "SHL R8w, cl" ; FF
For CodeLoop=1 To 8
Buffer "INC R8w"
Buffer "SHL R8w, cl"
Next
Buffer "INC R8w"
Buffer "SHL R8d, cl" ; FFFF
For CodeLoop=1 To 16
Buffer "INC R8d"
Buffer "SHL R8d, cl"
Next
Buffer "INC R8d"
Buffer "SHL R8, cl" ; FFFF FFFF
For CodeLoop=1 To 32
Buffer "INC R8"
Buffer "SHL R8, cl"
Next
Buffer "INC R8" ; FFFF FFFF FFFF FFFF
Buffer "INC R8" ; 0000
Buffer "XCHG R8b, R8b"
For CodeLoop=1 To 8
Buffer "INC R8b"
Buffer "SHL R8b, cl"
Next
Buffer "INC R8b"
Buffer "SHL R8w, cl" ; FF
For CodeLoop=1 To 8
Buffer "INC R8w"
Buffer "SHL R8w, cl"
Next
Buffer "INC R8w"
Buffer "SHL R8d, cl" ; FFFF
For CodeLoop=1 To 16
Buffer "INC R8d"
Buffer "SHL R8d, cl"
Next
Buffer "INC R8d"
Buffer "SHL R8, cl" ; FFFF FFFF
For CodeLoop=1 To 32
Buffer "INC R8"
Buffer "SHL R8, cl"
Next
Buffer "INC R8" ; FFFF FFFF FFFF FFFF
Buffer "XOR Rcx, Rcx"
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "9")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "10")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "11")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "12")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "13")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "14")
OutputFNOPx32
Next
ForEach Buffers()
Out ReplaceString(Buffers(), "8", "15")
OutputFNOPx32
Next
ClearList(Buffers())
Buffer "XOR Rcx, Rcx"
Buffer "XOR Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "AND Rcx, Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "INC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "DEC Rcx"
Buffer "MOVQ Rcx, mm5"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
For CodeLoop=1 To 8
Buffer "INC cl"
Buffer "SHL cl, 1"
Buffer "INC ch"
Buffer "SHL ch, 1"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Next
Buffer "INC cl"
Buffer "INC ch"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Buffer "SHL Ecx, 1" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Ecx"
Buffer "SHL Ecx, 1"
Next
Buffer "INC Rcx"
Buffer "SHL Rcx, 1" ; FFFF FFFF
For loop=32 To 63
Buffer "INC Rcx"
Buffer "SHL Rcx, 1"
Next
Buffer "INC Rcx" ; FFFF FFFF FFFF FFFF
Buffer "INC Rcx" ; 0000
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
For CodeLoop=1 To 8
Buffer "INC cl"
Buffer "SHL cl, 1"
Buffer "INC ch"
Buffer "SHL ch, 1"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Next
Buffer "INC cl"
Buffer "INC ch"
Buffer "XCHG ch, cl"
Buffer "XCHG cl, ch"
Buffer "SHL Ecx, 1" ; FFFF
For CodeLoop=16 To 31
Buffer "INC Ecx"
Buffer "SHL Ecx, 1"
Next
Buffer "INC Rcx"
Buffer "SHL Rcx, 1" ; FFFF FFFF
For loop=32 To 63
Buffer "INC Rcx"
Buffer "SHL Rcx, 1"
Next
Buffer "INC Rcx" ; FFFF FFFF FFFF FFFF
ForEach Buffers()
Out Buffers()
OutputFNOPx32
Next
ClearList(Buffers())
Out "EMMS"
OutputFNOPx32
Global fileno.i
fileno = CreateFile(#PB_Any, "WASAPI_OnlyMyRailgunProcess_Before.pbi")
If fileno
WriteStringFormat(fileno, #PB_UTF8)
WriteStringN(fileno, "; WASAPI_OnlyMyRailgunProcess_Before.pbi", #PB_UTF8)
WriteStringN(fileno, "; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)", #PB_UTF8)
For I=1 To 512
WriteStringN(fileno, "!FNOP", #PB_UTF8)
Next
ForEach OutputCode()
If Not Left(OutputCode(), 1)=";"
WriteStringN(fileno, "!"+OutputCode(), #PB_UTF8)
EndIf
Next
CloseFile(fileno)
EndIf
fileno = CreateFile(#PB_Any, "WASAPI_OnlyMyRailgunProcess_Before.txt")
If fileno
WriteStringFormat(fileno, #PB_UTF8)
WriteStringN(fileno, "; WASAPI_OnlyMyRailgunProcess_Before.txt", #PB_UTF8)
WriteStringN(fileno, "; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)", #PB_UTF8)
For I=1 To 512
WriteStringN(fileno, "FNOP", #PB_UTF8)
Next
ForEach OutputCode()
If Not Left(OutputCode(), 1)=";"
WriteStringN(fileno, OutputCode(), #PB_UTF8)
EndIf
Next
CloseFile(fileno)
EndIf
fileno = CreateFile(#PB_Any, "WASAPI_OnlyMyRailgunProcess_After.pbi")
If fileno
WriteStringFormat(fileno, #PB_UTF8)
WriteStringN(fileno, "; WASAPI_OnlyMyRailgunProcess_After.pbi", #PB_UTF8)
WriteStringN(fileno, "; Copyright (c) 2017-2019, Hiroyuki Yokota (oryaaaaa)", #PB_UTF8)
For I=1 To 512
WriteStringN(fileno, "!FNOP", #PB_UTF8)
Next
ForEach OutputCode()
If FindString(OutputCode(), "OnlyMyRailGun")
WriteStringN(fileno, Mid(OutputCode(), 3), #PB_UTF8)
Else
If Not Left(OutputCode(), 1)=";"
WriteStringN(fileno, "!"+OutputCode(), #PB_UTF8)
EndIf
EndIf
Next
CloseFile(fileno)
EndIf
End