קוד:
[enable]
alloc(move,64)
alloc(check,32)
00535E99:
jmp check
00667DF4:
db 90 90 90 90 90 90 90 90 90 90
check:
pushad
mov eax, [7D8CFC]
mov eax, [eax+1358]
cmp eax, 64
je move
popad
cmp eax,edi
mov [ebp-20],eax
je 00535EFF
move:
mov eax, [7D8CFC]
mov ebx, [eax+590]
sub ebx, 1
mov [eax+590], ebx
popad
cmp eax,edi //Original opcode.
mov [ebp-20],eax
je 00535EFF
[disable]
00535E99:
db 39 f8
db 89 45 e0
db 74 5f
00667DF4:
db c7 86 d0 02 00 00 88 13 00 00
dealloc(move)
dealloc(check)
קוד:
[ENABLE]
ALLOC(ItemVAC, 1240)
LABEL(ret)
ItemVAC:
DB 60
MOV ECX, [EBP+8]
MOV EBX, [EBP-24]
MOV [ECX], EBX
MOV [ECX+4], EAX
MOV ECX, EAX
MOV EAX, EBX
LEA EDX, [EAX-19]
MOV [EBP-34], EDX
LEA EDX, [ECX-32]
add EAX, 19
add ECX, A
MOV [EBP-30], EDX
MOV [EBP-2C], EAX
MOV [EBP-28], ECX
DB 61 50
push [EBP-24]
LEA EAX, [EBP-34]
JMP ret
004A01DF:
JMP ItemVAC
DB 60 60
ret:
[DISABLE]
DEALLOC(ItemVAC)
004A01DF:
DB 61 50
push [EBP-24]
lea EAX, [EBP-34]
קוד:
[ENABLE]
alloc(begin,2048)
alloc(olddata,32)
alloc(pointer,4)
alloc(bool,4)
registersymbol(bool)
registersymbol(olddata)
label(set)
label(ret)
label(end)
begin:
cmp [bool],1
je set
ret:
mov esi,olddata
movsd
movsd
movsd
movsd
pop edi
jmp end
set:
mov esi,[007D8224]
mov esi,[esi+0C]
mov [pointer], esi
mov esi,[pointer]
mov [olddata],esi
mov esi,[007D8224]
mov esi,[esi+10]
mov [pointer], esi
mov esi,[pointer]
mov [olddata+04],esi
mov esi,[007D8224]
mov esi,[esi+14]
mov [pointer], esi
mov esi,[pointer]
mov [olddata+08],esi
mov esi,[007D8224]
mov esi,[esi+18]
mov [pointer], esi
mov esi,[pointer]
mov [olddata+0C],esi
mov [bool],0
jmp ret
006B4E23:
jmp begin
end:
olddata:
DB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
pointer:
DB 00 00 00 00
bool:
DB 01 00 00 00
[DISABLE]
dealloc(begin)
dealloc(olddata)
dealloc(pointer)
dealloc(bool)
006B4E23:
movsd
movsd
movsd
movsd
pop edi
קוד:
[enable]
alloc(SuperDICE,300)
alloc(Right,4)
alloc(Left,4)
label(backToIt)
registersymbol(Right)
registersymbol(Left)
label(Mreturn)
alloc(Options,4)
alloc(GetWallValues,88)
alloc(NoVac,20)
alloc(MesoDrop,24)
alloc(MoveLeft,64)
alloc(MoveRight,64)
alloc(VacStart,4)
alloc(Xcheck,44)
alloc(Xcheck2,44)
alloc(Xcheck3,44)
alloc(RestoreJumping,44)
alloc(RestoreRopeJump,44)
label(ON)
label(ON2)
label(OFF)
alloc(LeftWall,4)
alloc(RightWall,4)
alloc(TopWall,4)
alloc(BottomWall,4)
alloc(ResetWalls,88)
alloc(Mouse,88)
alloc(KeepOn,4)
alloc(KeepSettingMouse,32)
alloc(JustSetOnce,32)
NoVac:
push [ebx+00000548]
push [ebx+00000544]
jmp backToIt
// Grabs the wall values before enabling
// So it knows what to set them back to
// When you disable the wallvac by dropping 40 mesos
GetWallValues:
pushad
mov eax,[7D8224] //
mov ecx,[eax+C]
mov [LeftWall],ecx
mov ebx,[eax+14]
mov [RightWall],ebx
mov ecx,[eax+10]
mov [TopWall],ecx
mov ebx,[eax+18]
mov [BottomWall],ebx
mov [VacStart],0
mov [Options],A
mov [right],0
[left]mov ,0
popad
jmp SuperDICE
ResetWalls:
pushad
mov eax,[7D8224] //
mov ecx,[LeftWall]
mov [eax+C],ecx
mov ebx,[RightWall]
mov [eax+14],ebx
mov ecx,[TopWall]
mov [eax+10],ecx
mov ebx,[BottomWall]
mov [eax+18],ebx
mov [VacStart],0
mov [Options],A
mov [right],0
[left]mov ,0
popad
jmp SuperDICE
Mouse:
pushad
mov edx, [7d8370] //
mov edx, [edx+978]
mov ebx, [edx+80]
mov ecx, [edx+84]
mov eax,[7D8224] //
mov [eax+C],ebx
mov [eax+14],ebx
mov [eax+10],ecx
mov [eax+18],ecx
popad
cmp [KeepOn],01
je NoVac
mov [Options],A
jmp SuperDICE
MesoDrop:
mov [Options],eax
cmp eax,[esi+000000b4]
jmp Mreturn
MoveRight:
[left]mov ,0
add [right],32
mov [Options],F
jmp SuperDICE
MoveLeft:
mov [right],0
[left]add ,32
mov [Options],F
jmp SuperDICE
KeepSettingMouse:
mov [KeepOn],01
mov [Options],46
jmp Mouse
JustSetOnce:
mov [KeepOn],0
mov [Options],A
jmp Mouse
SuperDICE:
cmp [VacStart],00
jne GetWallValues
cmp [Options],A // 10 to stay in one spot
je NoVac
cmp [Options],14 // 20 to move left
je MoveLeft
cmp [Options],1E // 30 to move right
je MoveRight
cmp [Options],28 // 40 to reset walls to original values
je ResetWalls // 50 to completely disable dice after resetting walls
cmp [Options],3C // 60 to set vac to mouse pointer
je JustSetOnce
cmp [Options],46 // 70 to constantly set vac to mouse pointer
je KeepSettingMouse
cmp [Options],63 // 99 to get new wall values if you change map
je GetWallValues
[LEFT]mov edx,[ebx+00000548] //item Y
mov ecx,[ebx+00000544] // item X
push edx
push ecx
push [ebx+00000548]
push [ebx+00000544]
//Walls
mov eax,[7D8224] //
pop ecx
sub ecx,
add ecx,[right]
mov [eax+C],ecx
mov [eax+14],ecx
pop edx
mov [eax+10],edx
mov [eax+18],edx
jmp backToIt
006B1EBC: //
jmp MesoDrop
nop
Mreturn:
004339EA: //
jmp SuperDICE
nop
nop
nop
nop
nop
nop
nop
backToIt:
VacStart:
db 00 00 00 99
Options:
db 00 00 00 00
Right:
db 00 00 00 00
Left:
db 00 00 00 00
KeepOn:
db 00 00 00 00
Xcheck2:
cmp [Options],32
je 006BBB77 //
jmp ON2
006BBA08:
jmp Xcheck2
nop
nop
nop
nop
nop
nop
nop
nop
ON2:
RestoreRopeJump:
cmp eax,edi
pop ecx
pop ecx
je 006b586e //
jmp ON
Xcheck:
cmp [Options],32
je RestoreRopeJump
cmp eax,edi
pop ecx
pop ecx
jne 006b586e //
jmp ON
006B5794: //
jmp Xcheck
nop
nop
nop
nop
nop
ON:
RestoreJumping:
cmp [ebx+00000158],esi
push edi
je 006b5503 //
jmp OFF
Xcheck3:
cmp [Options],32
je RestoreJumping
cmp [ebx+00000158],esi
push edi
jne 006b5503 //
jmp OFF
006B54F5: //
jmp Xcheck3
nop
nop
nop
nop
OFF:
[disable]
004339EA: //
push [ebx+00000548]
push [ebx+00000544]
006B1EBC: //
cmp eax,[esi+000000b4]
006B54F5: //
cmp [ebx+00000158],esi
push edi
je 006b5503//
006BBA08: //
cmp dword ptr [edi+00000220],03
jne 006BBB77 //
006B5794: //
cmp eax,edi
pop ecx
pop ecx
je 006b586e//
dealloc(SuperDICE)
dealloc(Right)
dealloc(Left)
unregistersymbol(Right)
unregistersymbol(Left)
dealloc(VacStart)
dealloc(NoVac)
dealloc(MesoDrop)
dealloc(Options)
dealloc(MoveLeft)
dealloc(MoveRight)
dealloc(LeftWall)
dealloc(RightWall)
dealloc(TopWall)
dealloc(BottomWall)
dealloc(ResetWalls)
dealloc(Mouse)
dealloc(Xcheck)
dealloc(Xcheck2)
dealloc(Xcheck3)
dealloc(RestoreJumping)
dealloc(RestoreRopeJump)
dealloc(KeepOn)
dealloc(KeepSettingMouse)
dealloc(JustSetOnce)
קוד:
[ENABLE]
Alloc(MouserX,512)
Alloc(MouserY,512)
label(back)
label(return)
006B90AD:
jmp MouserX
back:
006B9112:
jmp MouserY
return:
MouserX:
mov eax, [007d8370]
mov eax, [eax+978]
mov eax, [eax+80]
mov [ebx], eax
mov edi,[ebp+10]
jmp back
MouserY:
mov eax, [007d8370]
mov eax, [eax+978]
mov eax, [eax+84]
mov [edi], eax
mov ebx,[ebp+14]
jmp return
[DISABLE]
006B90AD:
mov [ebx], eax
mov edi,[ebp+10]
006B9112:
mov [edi],eax
mov ebx,[ebp+14]
dealloc(MouserX)
dealloc(MouserY)