#D4096 = 4096
#D1000 = 1000
#D1024 = 1024
#DM1 = -1
#D1 = 1
#D4 = 4
Macro AsioProcGateOfBabylon
!NOP QWORD [Rip]
!NOP QWORD [Rip]
; 111 @@
!NOP QWORD [Rip+64]
!NOP QWORD [Rip+80]
!NOP QWORD [Rip+96]
!NOP QWORD [Rip+112]
!NOP QWORD [Rip+128]
!NOP QWORD [Rip+144]
!NOP QWORD [Rip+160]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
; End 111 @@
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
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
Global *FileData, FileNo.i, FileCount.i, FileSize,i, Result.i, FileCountGB.i, Filename.s{15}
AsioProcGateOfBabylon
*FileData = AllocateMemory(#D4096*#D1024)
AsioProcGateOfBabylon
FileSize = MemorySize(*FileData)
AsioProcGateOfBabylon
For FileCountGB=#D1 To #D1000
SIMPLE_MOVE_REGISTERS_Up_and_Down
AsioProcGateOfBabylon
For FileCount=#D1 To #D1000
Filename ="R:\"+RSet(Str(FileCountGB), #D4, "0")+RSet(Str(FileCount), #D4, "0")
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [PB_FileSize]
!NOP QWORD [PB_FileSize+8]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
AsioProcGateOfBabylon
If FileSize(Filename) =#DM1
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [PB_RandomData]
!NOP QWORD [PB_RandomData+8]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
AsioProcGateOfBabylon
RandomData(*FileData, FileSize)
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [PB_CreateFile]
!NOP QWORD [PB_CreateFile+8]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
AsioProcGateOfBabylon
If CreateFile(#D1, Filename)
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [PB_WriteData]
!NOP QWORD [PB_WriteData+8]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
AsioProcGateOfBabylon
WriteData(#D1, *FileData, FileSize)
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [PB_CloseFile]
!NOP QWORD [PB_CloseFile+8]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
CloseFile(#D1)
Result + #D1
EndIf
EndIf
Next
SIMPLE_MOVE_REGISTERS_Up_and_Down
Next
MessageRequester("FINISH", Str(Result) )
End