; PUBLIC ClsCash ; _TEXT SEGMENT ; VirtualAlloc PROTO :QWORD, :QWORD, :DWORD, :DWORD VirtualFree PROTO :QWORD, :QWORD, :DWORD GetLastError PROTO ; ALIGN 16 ClsCash PROC ; No Parameter PUSH RBX PUSH RDI SUB RSP, 40 ; VirtualAlloc XOR RCX, RCX MOV RDX, 67108864 ; 64MB MOV R8D, 1000H ; MEM_COMMIT MOV R9D, 4 ; PAGE_READWRITE CALL VirtualAlloc OR RAX, RAX JZ short WinErr MOV RBX, RAX MOV RDI, RAX MOV EAX, 1 MOV ECX, 67108864 @@: MOV [ RDI ], EAX ADD RDI, 4 ADD EAX, 1 SUB ECX, 4 JNZ short @B MOV RCX, RBX MOV RDX, 67108864 ; 64MB MOV R8D, 4000H ; MEM_DECOMMIT CALL VirtualFree MOV RCX, RBX XOR RDX, RDX MOV R8D, 8000H ; MEM_RELEASE CALL VirtualFree XOR EAX, EAX JMP short ExitCls ; WinErr: CALL GetLastError ExitCls: ADD RSP, 40 POP RDI POP RBX RET ClsCash ENDP ; _TEXT ENDS ; END