18938
"CompactMode"
Auto Assembler Script
[ENABLE]
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible = state; getMainForm().Panel5.Visible = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))
[DISABLE]
LuaCall(cycleFullCompact(nil,false))
39711
"Foliage Replace WIP"
008000
1
71043
"- ReadMe - (press on script ->)"
FF00FF
Auto Assembler Script
[ENABLE]
With that group of scripts you can replace trees and adjust some other settings
of foliage.
Enable master "Activate Layton" to see another scripts. Below of that scripts
here is groups of addresses. Groups was combined and tested manually and i tried
to keep things that only could affect something. Because of that there is only
two addresses in "Glow" group. Other groups just does not affected by glow.
Also there is only two UV tiling settings for each, while it seems like by "+8"
and "+C" should be UV offsets, but they are do not work for some reason.
Currently, there is no way to play in "normal game" if you wish to replace trees,
bushes or change anything else except colors because collisions will stay the
same. So, for example, if you replace trees with some bushes, "old" trees
collisions does not change. The only solution i could find at current moment is
to use "noTreesCollisions (use Fast Travel for effect)" script. As it says, for
effect you should make relatively far "Fast Travel" (for reloading current collisions).
After that, all trees, rocks and logs collision will gone. So you can walk
through them and shoot through them as well, everything else in game logic will stay
the same (grass still could be pressured by character and animals, as example).
But mostly those scripts was crated not for "normal game", but having much more
crative freedom of taking screenshots.
In presets you could find two scripts:
"Layton All Defaults" - all default values. Use it if you want to save some settings
that you find interesting for yourself;
"Layton Summer" - rough example of what it can looks like. After enabling it, wait
~30 seconds until it will be checked.
[DISABLE]
Toggle Activation
17
69
0
70159
"noTreesCollisions (use Fast Travel for effect)"
Auto Assembler Script
[ENABLE]
aobscanmodule(noTreesCollisions,theHunterCotW_F.exe,F3 41 0F 10 4C ED 00) // should be unique
noTreesCollisions:
db 90 90 90 90 90 90 90
registersymbol(noTreesCollisions)
[DISABLE]
noTreesCollisions:
db F3 41 0F 10 4C ED 00
unregistersymbol(noTreesCollisions)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+944AF4
"theHunterCotW_F.exe"+944AC4: 0F 8E AC 00 00 00 - jng theHunterCotW_F.exe+944B76
"theHunterCotW_F.exe"+944ACA: 48 89 AC 24 90 00 00 00 - mov [rsp+00000090],rbp
"theHunterCotW_F.exe"+944AD2: 48 8B 09 - mov rcx,[rcx]
"theHunterCotW_F.exe"+944AD5: 48 63 C3 - movsxd rax,ebx
"theHunterCotW_F.exe"+944AD8: 48 8D 2C 40 - lea rbp,[rax+rax*2]
"theHunterCotW_F.exe"+944ADC: 49 8B 46 08 - mov rax,[r14+08]
"theHunterCotW_F.exe"+944AE0: 48 03 ED - add rbp,rbp
"theHunterCotW_F.exe"+944AE3: 44 0F B6 48 1A - movzx r9d,byte ptr [rax+1A]
"theHunterCotW_F.exe"+944AE8: 48 8D 44 24 34 - lea rax,[rsp+34]
"theHunterCotW_F.exe"+944AED: F3 41 0F 10 54 ED 08 - movss xmm2,[r13+rbp*8+08]
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+944AF4: F3 41 0F 10 4C ED 00 - movss xmm1,[r13+rbp*8+00]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+944AFB: 48 89 44 24 28 - mov [rsp+28],rax
"theHunterCotW_F.exe"+944B00: 48 8D 44 24 30 - lea rax,[rsp+30]
"theHunterCotW_F.exe"+944B05: 48 89 44 24 20 - mov [rsp+20],rax
"theHunterCotW_F.exe"+944B0A: E8 D1 A4 00 00 - call theHunterCotW_F.exe+94EFE0
"theHunterCotW_F.exe"+944B0F: 49 8B 4E 08 - mov rcx,[r14+08]
"theHunterCotW_F.exe"+944B13: 0F BF 41 10 - movsx eax,word ptr [rcx+10]
"theHunterCotW_F.exe"+944B17: 39 44 24 30 - cmp [rsp+30],eax
"theHunterCotW_F.exe"+944B1B: 75 41 - jne theHunterCotW_F.exe+944B5E
"theHunterCotW_F.exe"+944B1D: 0F BF 41 12 - movsx eax,word ptr [rcx+12]
"theHunterCotW_F.exe"+944B21: 39 44 24 34 - cmp [rsp+34],eax
}
70608
"Presets"
1
72090
"Layton Presets"
4080FF
1
70609
"Layton All Defaults"
000000
Auto Assembler Script
[enable]
{$lua}
local al=getAddressList()
local i
for i=0, al.Count-1 do
--- Activate Layton
if al[i].Description=='Activate Layton' then
al[i].Active=false
end
if al[i].Description=='Trees / Replacers Layton' then
al[i].Active=false
end
if al[i].Description=='Trees / Color Mult Layton' then
al[i].Active=false
end
if al[i].Description=='Grass / Color Mult Layton' then
al[i].Active=false
end
if al[i].Description=='Grass Trees Bushes / Wet Glow SSS Layton' then
al[i].Active=false
end
if al[i].Description=='Grass Trees Bushes / Snowy Layton' then
al[i].Active=false
end
if al[i].Description=='Grass Trees Bushes / Foliage Scale Layton' then
al[i].Active=false
end
if al[i].Description=='Grass Trees Bushes / UV Layton' then
al[i].Active=false
end
--- Trees / Replacers Layton
if al[i].Description=='Deciduous Trees Replace' then
al[i].Value=2
end
if al[i].Description=='Deciduous Empty Replace' then
al[i].Value=2
end
if al[i].Description=='Green Spruce Tall Replace' then
al[i].Value=3
end
if al[i].Description=='Green Spruce Tall 2 Replace' then
al[i].Value=3
end
if al[i].Description=='Green Spruce Middle Replace' then
al[i].Value=3
end
if al[i].Description=='Green Spruce Short Replace' then
al[i].Value=3
end
if al[i].Description=='Yellow Spruce Tall Replace' then
al[i].Value=3
end
if al[i].Description=='Yellow Spruce Middle Replace' then
al[i].Value=3
end
if al[i].Description=='Yellow Spruce Short Replace' then
al[i].Value=3
end
if al[i].Description=='Spruce Empty Replace' then
al[i].Value=3
end
if al[i].Description=='Rocks Replace' then
al[i].Value=1
end
if al[i].Description=='Grass Replace' then
al[i].Value=4
end
if al[i].Description=='Bushes Replace' then
al[i].Value=4
end
if al[i].Description=='Logs Replace' then
al[i].Value=5
end
--- Bypass Replacers (any value-Replace On, 0-Original Foliage)
if al[i].Description=='Deciduous Trees On' then
al[i].Value=1
end
if al[i].Description=='Deciduous Empty On' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall On' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 On' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle On' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short On' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall On' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle On' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short On' then
al[i].Value=1
end
if al[i].Description=='Spruce Empty On' then
al[i].Value=1
end
if al[i].Description=='Rocks On' then
al[i].Value=1
end
if al[i].Description=='Grass On' then
al[i].Value=1
end
if al[i].Description=='Bushes On' then
al[i].Value=1
end
if al[i].Description=='Logs On' then
al[i].Value=1
end
--- Trees / Color Mult Layton
if al[i].Description=='Deciduous Trees R' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees G' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees B' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous R' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous G' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous B' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall R' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall G' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall B' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 R' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 G' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 B' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle R' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle G' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle B' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short R' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short G' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short B' then
al[i].Value=1
end
if al[i].Description=='Empty Spruce R' then
al[i].Value=1
end
if al[i].Description=='Empty Spruce G' then
al[i].Value=1
end
if al[i].Description=='Empty Spruce B' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall R' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall G' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall B' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle R' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle G' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle B' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short R' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short G' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short B' then
al[i].Value=1
end
if al[i].Description=='Rocks R' then
al[i].Value=1
end
if al[i].Description=='Rocks G' then
al[i].Value=1
end
if al[i].Description=='Rocks B' then
al[i].Value=1
end
if al[i].Description=='Bushes R' then
al[i].Value=1
end
if al[i].Description=='Bushes G' then
al[i].Value=1
end
if al[i].Description=='Bushes B' then
al[i].Value=1
end
if al[i].Description=='Logs R' then
al[i].Value=1
end
if al[i].Description=='Logs G' then
al[i].Value=1
end
if al[i].Description=='Logs B' then
al[i].Value=1
end
--- Grass / Color Mult Layton
if al[i].Description=='Tiny Sprus R' then
al[i].Value=1
end
if al[i].Description=='Tiny Sprus G' then
al[i].Value=1
end
if al[i].Description=='Tiny Sprus B' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow R' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow G' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow B' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 R' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 G' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 B' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 R' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 G' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 B' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 R' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 G' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 B' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 R' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 G' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 B' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 R' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 G' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 B' then
al[i].Value=1
end
if al[i].Description=='Simple Green R' then
al[i].Value=1
end
if al[i].Description=='Simple Green G' then
al[i].Value=1
end
if al[i].Description=='Simple Green B' then
al[i].Value=1
end
if al[i].Description=='Fern R' then
al[i].Value=1
end
if al[i].Description=='Fern G' then
al[i].Value=1
end
if al[i].Description=='Fern B' then
al[i].Value=1
end
if al[i].Description=='Moss R' then
al[i].Value=1
end
if al[i].Description=='Moss G' then
al[i].Value=1
end
if al[i].Description=='Moss B' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass R' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass G' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass B' then
al[i].Value=1
end
if al[i].Description=='Deciduous RG Grass R' then
al[i].Value=1
end
if al[i].Description=='Deciduous RG Grass G' then
al[i].Value=1
end
if al[i].Description=='Deciduous RG Grass B' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous R' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous G' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous B' then
al[i].Value=1
end
if al[i].Description=='Grass Brown R' then
al[i].Value=1
end
if al[i].Description=='Grass Brown G' then
al[i].Value=1
end
if al[i].Description=='Grass Brown B' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves R' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves G' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves B' then
al[i].Value=1
end
if al[i].Description=='Grass 1 R' then
al[i].Value=1
end
if al[i].Description=='Grass 1 G' then
al[i].Value=1
end
if al[i].Description=='Grass 1 B' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish R' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish G' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish B' then
al[i].Value=1
end
if al[i].Description=='Grass 2 R' then
al[i].Value=1
end
if al[i].Description=='Grass 2 G' then
al[i].Value=1
end
if al[i].Description=='Grass 2 B' then
al[i].Value=1
end
if al[i].Description=='Grass 3 R' then
al[i].Value=1
end
if al[i].Description=='Grass 3 G' then
al[i].Value=1
end
if al[i].Description=='Grass 3 B' then
al[i].Value=1
end
if al[i].Description=='Bulrush R' then
al[i].Value=1
end
if al[i].Description=='Bulrush G' then
al[i].Value=1
end
if al[i].Description=='Bulrush B' then
al[i].Value=1
end
--- Grass Trees Bushes / Wet Glow SSS Layton
-- Wet
if al[i].Description=='Tiny Sprus Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Green Wet' then
al[i].Value=1
end
if al[i].Description=='Fern Wet' then
al[i].Value=1
end
if al[i].Description=='Moss Wet' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass Wet' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG Wet' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous Wet' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Wet' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 2 Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 3 Wet' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees Wet' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous Wet' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall Wet' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 Wet' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle Wet' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short Wet' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall Wet' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle Wet' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short Wet' then
al[i].Value=1
end
if al[i].Description=='Bushes' then
al[i].Value=1
end
if al[i].Description=='Bulrush Wet' then
al[i].Value=1
end
-- SSS
if al[i].Description=='Tiny Sprus SSS_1' then
al[i].Value=1
end
if al[i].Description=='Tiny Sprus SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S11 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S12 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S13 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S14 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S15 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Green SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Green SSS_2' then
al[i].Value=0
end
if al[i].Description=='Fern SSS_1' then
al[i].Value=1
end
if al[i].Description=='Fern SSS_2' then
al[i].Value=0
end
if al[i].Description=='Moss SSS_1' then
al[i].Value=1
end
if al[i].Description=='Moss SSS_2' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass SSS_1' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass SSS_2' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass RG SSS_1' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG SSS_2' then
al[i].Value=0
end
if al[i].Description=='Red Deciduous SSS_1' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass Brown SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass Brown SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass Brown Leaves SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass 1 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass 1 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass 1 Redish SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass 2 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass 2 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass 3 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass 3 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Deciduous Trees SSS_1' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees SSS_2' then
al[i].Value=0
end
if al[i].Description=='Empty Deciduous SSS_1' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Tall SSS_1' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Tall 2 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Middle SSS_1' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Short SSS_1' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short SSS_2' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Tall SSS_1' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall SSS_2' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Middle SSS_1' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle SSS_2' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Short SSS_1' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short SSS_2' then
al[i].Value=0
end
if al[i].Description=='Bushes SSS_1' then
al[i].Value=1
end
if al[i].Description=='Bushes SSS_2' then
al[i].Value=0
end
if al[i].Description=='Bulrush SSS_1' then
al[i].Value=1
end
if al[i].Description=='Bulrush SSS_2' then
al[i].Value=0
end
--- Grass Trees Bushes / Snowy Layton
if al[i].Description=='Tiny Sprus Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Green Snowy' then
al[i].Value=1
end
if al[i].Description=='Fern Snowy' then
al[i].Value=1
end
if al[i].Description=='Moss Snowy' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass Snowy' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG Snowy' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 2 Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 3 Snowy' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees Snowy' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short Snowy' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall Snowy' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle Snowy' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short Snowy' then
al[i].Value=1
end
if al[i].Description=='Bushes Snowy' then
al[i].Value=1
end
if al[i].Description=='Bulrush Snowy' then
al[i].Value=1
end
--- Grass Trees Bushes / Foliage Scale Layton
if al[i].Description=='Tiny Sprus Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Green Scale' then
al[i].Value=1
end
if al[i].Description=='Fern Scale' then
al[i].Value=1
end
if al[i].Description=='Moss Scale' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass Scale' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG Scale' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous Scale' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Scale' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 2 Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 3 Scale' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees Scale' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short Scale' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall Scale' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle Scale' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short Scale' then
al[i].Value=1
end
if al[i].Description=='Bushes Scale' then
al[i].Value=1
end
if al[i].Description=='Bulrush Scale' then
al[i].Value=1
end
--- Grass / UV Layton
if al[i].Description=='Simple Yellow UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S11 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S11 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S12 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S12 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S13 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S13 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S14 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S14 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S15 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S15 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Green UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Green UV2' then
al[i].Value=0
end
if al[i].Description=='Moss UV1' then
al[i].Value=0
end
if al[i].Description=='Moss UV1' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass UV1' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass UV2' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass RG UV1' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass RG UV2' then
al[i].Value=0
end
if al[i].Description=='Red Deciduous UV1' then
al[i].Value=0
end
if al[i].Description=='Red Deciduous UV2' then
al[i].Value=0
end
if al[i].Description=='Grass 1 UV1' then
al[i].Value=0
end
if al[i].Description=='Grass 1 UV2' then
al[i].Value=0
end
if al[i].Description=='Grass 1 Redish UV1' then
al[i].Value=0
end
if al[i].Description=='Grass 1 Redish UV2' then
al[i].Value=0
end
if al[i].Description=='Grass 2 UV1' then
al[i].Value=0
end
if al[i].Description=='Grass 2 UV2' then
al[i].Value=0
end
if al[i].Description=='Grass 3 UV1' then
al[i].Value=0
end
if al[i].Description=='Grass 3 UV1' then
al[i].Value=0
end
end
[disable]
71044
"Layton Summer"
000000
Auto Assembler Script
[enable]
{$lua}
local al=getAddressList()
local i
for i=0, al.Count-1 do
--- Activate Layton
if al[i].Description=='Activate Layton' then
al[i].Active=true
end
if al[i].Description=='Trees / Replacers Layton' then
al[i].Active=true
end
if al[i].Description=='Trees / Color Mult Layton' then
al[i].Active=true
end
if al[i].Description=='Grass / Color Mult Layton' then
al[i].Active=true
end
if al[i].Description=='Grass Trees Bushes / Wet Glow SSS Layton' then
al[i].Active=true
end
if al[i].Description=='Grass Trees Bushes / Snowy Layton' then
al[i].Active=false
end
if al[i].Description=='Grass Trees Bushes / Foliage Scale Layton' then
al[i].Active=true
end
if al[i].Description=='Grass Trees Bushes / UV Layton' then
al[i].Active=true
end
--- Trees / Replacers Layton
if al[i].Description=='Deciduous Trees Replace' then
al[i].Value=16
end
if al[i].Description=='Deciduous Empty Replace' then
al[i].Value=2
end
if al[i].Description=='Green Spruce Tall Replace' then
al[i].Value=14
end
if al[i].Description=='Green Spruce Tall 2 Replace' then
al[i].Value=3
end
if al[i].Description=='Green Spruce Middle Replace' then
al[i].Value=31
end
if al[i].Description=='Green Spruce Short Replace' then
al[i].Value=3
end
if al[i].Description=='Yellow Spruce Tall Replace' then
al[i].Value=3
end
if al[i].Description=='Yellow Spruce Middle Replace' then
al[i].Value=3
end
if al[i].Description=='Yellow Spruce Short Replace' then
al[i].Value=3
end
if al[i].Description=='Spruce Empty Replace' then
al[i].Value=3
end
if al[i].Description=='Rocks Replace' then
al[i].Value=1
end
if al[i].Description=='Grass Replace' then
al[i].Value=4
end
if al[i].Description=='Bushes Replace' then
al[i].Value=14
end
if al[i].Description=='Logs Replace' then
al[i].Value=5
end
--- Bypass Replacers (any value-Replace On, 0-Original Foliage)
if al[i].Description=='Deciduous Trees On' then
al[i].Value=1
end
if al[i].Description=='Deciduous Empty On' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Tall On' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 On' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Middle On' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Short On' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Tall On' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Middle On' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short On' then
al[i].Value=0
end
if al[i].Description=='Spruce Empty On' then
al[i].Value=0
end
if al[i].Description=='Rocks On' then
al[i].Value=0
end
if al[i].Description=='Grass On' then
al[i].Value=0
end
if al[i].Description=='Bushes On' then
al[i].Value=1
end
if al[i].Description=='Logs On' then
al[i].Value=0
end
--- Trees / Color Mult Layton
if al[i].Description=='Deciduous Trees R' then
al[i].Value=0.25
end
if al[i].Description=='Deciduous Trees G' then
al[i].Value=0.75
end
if al[i].Description=='Deciduous Trees B' then
al[i].Value=0.2
end
if al[i].Description=='Empty Deciduous R' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous G' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous B' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall R' then
al[i].Value=0.25
end
if al[i].Description=='Green Spruce Tall G' then
al[i].Value=0.75
end
if al[i].Description=='Green Spruce Tall B' then
al[i].Value=0.5
end
if al[i].Description=='Green Spruce Tall 2 R' then
al[i].Value=0.9
end
if al[i].Description=='Green Spruce Tall 2 G' then
al[i].Value=1.3
end
if al[i].Description=='Green Spruce Tall 2 B' then
al[i].Value=0.5
end
if al[i].Description=='Green Spruce Middle R' then
al[i].Value=0.4
end
if al[i].Description=='Green Spruce Middle G' then
al[i].Value=0.65
end
if al[i].Description=='Green Spruce Middle B' then
al[i].Value=0.2
end
if al[i].Description=='Green Spruce Short R' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short G' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short B' then
al[i].Value=1
end
if al[i].Description=='Empty Spruce R' then
al[i].Value=1
end
if al[i].Description=='Empty Spruce G' then
al[i].Value=1
end
if al[i].Description=='Empty Spruce B' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall R' then
al[i].Value=0.35
end
if al[i].Description=='Yellow Spruce Tall G' then
al[i].Value=0.6
end
if al[i].Description=='Yellow Spruce Tall B' then
al[i].Value=0.2
end
if al[i].Description=='Yellow Spruce Middle R' then
al[i].Value=0.8
end
if al[i].Description=='Yellow Spruce Middle G' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle B' then
al[i].Value=0.6
end
if al[i].Description=='Yellow Spruce Short R' then
al[i].Value=0.25
end
if al[i].Description=='Yellow Spruce Short G' then
al[i].Value=0.75
end
if al[i].Description=='Yellow Spruce Short B' then
al[i].Value=0.8
end
if al[i].Description=='Rocks R' then
al[i].Value=1
end
if al[i].Description=='Rocks G' then
al[i].Value=1
end
if al[i].Description=='Rocks B' then
al[i].Value=1
end
if al[i].Description=='Bushes R' then
al[i].Value=0.25
end
if al[i].Description=='Bushes G' then
al[i].Value=0.75
end
if al[i].Description=='Bushes B' then
al[i].Value=0.2
end
if al[i].Description=='Logs R' then
al[i].Value=1
end
if al[i].Description=='Logs G' then
al[i].Value=1
end
if al[i].Description=='Logs B' then
al[i].Value=1
end
--- Grass / Color Mult Layton
if al[i].Description=='Tiny Sprus R' then
al[i].Value=1
end
if al[i].Description=='Tiny Sprus G' then
al[i].Value=1
end
if al[i].Description=='Tiny Sprus B' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow R' then
al[i].Value=0.25
end
if al[i].Description=='Simple Yellow G' then
al[i].Value=0.52
end
if al[i].Description=='Simple Yellow B' then
al[i].Value=0.15
end
if al[i].Description=='Simple Yellow S11 R' then
al[i].Value=0.16
end
if al[i].Description=='Simple Yellow S11 G' then
al[i].Value=0.42
end
if al[i].Description=='Simple Yellow S11 B' then
al[i].Value=0.05
end
if al[i].Description=='Simple Yellow S12 R' then
al[i].Value=0.16
end
if al[i].Description=='Simple Yellow S12 G' then
al[i].Value=0.41
end
if al[i].Description=='Simple Yellow S12 B' then
al[i].Value=0.05
end
if al[i].Description=='Simple Yellow S13 R' then
al[i].Value=0.15
end
if al[i].Description=='Simple Yellow S13 G' then
al[i].Value=0.4
end
if al[i].Description=='Simple Yellow S13 B' then
al[i].Value=0.05
end
if al[i].Description=='Simple Yellow S14 R' then
al[i].Value=0.35
end
if al[i].Description=='Simple Yellow S14 G' then
al[i].Value=0.8
end
if al[i].Description=='Simple Yellow S14 B' then
al[i].Value=0.2
end
if al[i].Description=='Simple Yellow S15 R' then
al[i].Value=0.2
end
if al[i].Description=='Simple Yellow S15 G' then
al[i].Value=0.55
end
if al[i].Description=='Simple Yellow S15 B' then
al[i].Value=0.1
end
if al[i].Description=='Simple Green R' then
al[i].Value=0.9
end
if al[i].Description=='Simple Green G' then
al[i].Value=1.2
end
if al[i].Description=='Simple Green B' then
al[i].Value=0.5
end
if al[i].Description=='Fern R' then
al[i].Value=1
end
if al[i].Description=='Fern G' then
al[i].Value=1
end
if al[i].Description=='Fern B' then
al[i].Value=1
end
if al[i].Description=='Moss R' then
al[i].Value=0.7
end
if al[i].Description=='Moss G' then
al[i].Value=1.1
end
if al[i].Description=='Moss B' then
al[i].Value=0.6
end
if al[i].Description=='Deciduous Grass R' then
al[i].Value=0.8
end
if al[i].Description=='Deciduous Grass G' then
al[i].Value=1.1
end
if al[i].Description=='Deciduous Grass B' then
al[i].Value=0.8
end
if al[i].Description=='Deciduous RG Grass R' then
al[i].Value=0.6
end
if al[i].Description=='Deciduous RG Grass G' then
al[i].Value=0.8
end
if al[i].Description=='Deciduous RG Grass B' then
al[i].Value=0.6
end
if al[i].Description=='Red Deciduous R' then
al[i].Value=1.2
end
if al[i].Description=='Red Deciduous G' then
al[i].Value=0.05
end
if al[i].Description=='Red Deciduous B' then
al[i].Value=0.2
end
if al[i].Description=='Grass Brown R' then
al[i].Value=1.5
end
if al[i].Description=='Grass Brown G' then
al[i].Value=1.5
end
if al[i].Description=='Grass Brown B' then
al[i].Value=1.5
end
if al[i].Description=='Grass Brown Leaves R' then
al[i].Value=0.4
end
if al[i].Description=='Grass Brown Leaves G' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves B' then
al[i].Value=0.2
end
if al[i].Description=='Grass 1 R' then
al[i].Value=0.7
end
if al[i].Description=='Grass 1 G' then
al[i].Value=1
end
if al[i].Description=='Grass 1 B' then
al[i].Value=0.5
end
if al[i].Description=='Grass 1 Redish R' then
al[i].Value=1.5
end
if al[i].Description=='Grass 1 Redish G' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish B' then
al[i].Value=1
end
if al[i].Description=='Grass 2 R' then
al[i].Value=0.7
end
if al[i].Description=='Grass 2 G' then
al[i].Value=1.2
end
if al[i].Description=='Grass 2 B' then
al[i].Value=0.6
end
if al[i].Description=='Grass 3 R' then
al[i].Value=1.8
end
if al[i].Description=='Grass 3 G' then
al[i].Value=1.6
end
if al[i].Description=='Grass 3 B' then
al[i].Value=0.6
end
if al[i].Description=='Bulrush R' then
al[i].Value=0.5
end
if al[i].Description=='Bulrush G' then
al[i].Value=1
end
if al[i].Description=='Bulrush B' then
al[i].Value=0.6
end
--- Grass Trees Bushes / Wet Glow SSS Layton
-- Wet
if al[i].Description=='Tiny Sprus Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow Wet' then
al[i].Value=1.5
end
if al[i].Description=='Simple Yellow S11 Wet' then
al[i].Value=1.5
end
if al[i].Description=='Simple Yellow S12 Wet' then
al[i].Value=1.5
end
if al[i].Description=='Simple Yellow S13 Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 Wet' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 Wet' then
al[i].Value=1.2
end
if al[i].Description=='Simple Green Wet' then
al[i].Value=1
end
if al[i].Description=='Fern Wet' then
al[i].Value=1
end
if al[i].Description=='Moss Wet' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass Wet' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG Wet' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous Wet' then
al[i].Value=1.5
end
if al[i].Description=='Grass Brown Wet' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 2 Wet' then
al[i].Value=1
end
if al[i].Description=='Grass 3 Wet' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees Wet' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous Wet' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall Wet' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 Wet' then
al[i].Value=2
end
if al[i].Description=='Green Spruce Middle Wet' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short Wet' then
al[i].Value=2
end
if al[i].Description=='Yellow Spruce Tall Wet' then
al[i].Value=2
end
if al[i].Description=='Yellow Spruce Middle Wet' then
al[i].Value=2
end
if al[i].Description=='Yellow Spruce Short Wet' then
al[i].Value=2
end
if al[i].Description=='Bushes Wet' then
al[i].Value=1
end
if al[i].Description=='Bulrush Wet' then
al[i].Value=1
end
-- SSS
if al[i].Description=='Tiny Sprus SSS_1' then
al[i].Value=1
end
if al[i].Description=='Tiny Sprus SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow SSS_1' then
al[i].Value=2
end
if al[i].Description=='Simple Yellow SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S11 SSS_1' then
al[i].Value=2
end
if al[i].Description=='Simple Yellow S11 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S12 SSS_1' then
al[i].Value=2
end
if al[i].Description=='Simple Yellow S12 SSS_2' then
al[i].Value=0.1
end
if al[i].Description=='Simple Yellow S13 SSS_1' then
al[i].Value=2
end
if al[i].Description=='Simple Yellow S13 SSS_2' then
al[i].Value=0.15
end
if al[i].Description=='Simple Yellow S14 SSS_1' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 SSS_2' then
al[i].Value=0.1
end
if al[i].Description=='Simple Yellow S15 SSS_1' then
al[i].Value=2
end
if al[i].Description=='Simple Yellow S15 SSS_2' then
al[i].Value=0.1
end
if al[i].Description=='Simple Green SSS_1' then
al[i].Value=2
end
if al[i].Description=='Simple Green SSS_2' then
al[i].Value=1
end
if al[i].Description=='Fern SSS_1' then
al[i].Value=1
end
if al[i].Description=='Fern SSS_2' then
al[i].Value=0
end
if al[i].Description=='Moss SSS_1' then
al[i].Value=1
end
if al[i].Description=='Moss SSS_2' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass SSS_1' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass SSS_2' then
al[i].Value=0.1
end
if al[i].Description=='Deciduous Grass RG SSS_1' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG SSS_2' then
al[i].Value=0.1
end
if al[i].Description=='Red Deciduous SSS_1' then
al[i].Value=2
end
if al[i].Description=='Red Deciduous SSS_2' then
al[i].Value=0.1
end
if al[i].Description=='Grass Brown SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass Brown SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass Brown Leaves SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass 1 SSS_1' then
al[i].Value=2
end
if al[i].Description=='Grass 1 SSS_2' then
al[i].Value=0.1
end
if al[i].Description=='Grass 1 Redish SSS_1' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish SSS_2' then
al[i].Value=0
end
if al[i].Description=='Grass 2 SSS_1' then
al[i].Value=2
end
if al[i].Description=='Grass 2 SSS_2' then
al[i].Value=0.2
end
if al[i].Description=='Grass 3 SSS_1' then
al[i].Value=3
end
if al[i].Description=='Grass 3 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Deciduous Trees SSS_1' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees SSS_2' then
al[i].Value=0
end
if al[i].Description=='Empty Deciduous SSS_1' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Tall SSS_1' then
al[i].Value=5
end
if al[i].Description=='Green Spruce Tall SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Tall 2 SSS_1' then
al[i].Value=5
end
if al[i].Description=='Green Spruce Tall 2 SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Middle SSS_1' then
al[i].Value=5
end
if al[i].Description=='Green Spruce Middle SSS_2' then
al[i].Value=0
end
if al[i].Description=='Green Spruce Short SSS_1' then
al[i].Value=5
end
if al[i].Description=='Green Spruce Short SSS_2' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Tall SSS_1' then
al[i].Value=5
end
if al[i].Description=='Yellow Spruce Tall SSS_2' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Middle SSS_1' then
al[i].Value=5
end
if al[i].Description=='Yellow Spruce Middle SSS_2' then
al[i].Value=0
end
if al[i].Description=='Yellow Spruce Short SSS_1' then
al[i].Value=2
end
if al[i].Description=='Yellow Spruce Short SSS_2' then
al[i].Value=0
end
if al[i].Description=='Bushes SSS_1' then
al[i].Value=1
end
if al[i].Description=='Bushes SSS_2' then
al[i].Value=0
end
if al[i].Description=='Bulrush SSS_1' then
al[i].Value=1
end
if al[i].Description=='Bulrush SSS_2' then
al[i].Value=0
end
--- Grass Trees Bushes / Snowy Layton
if al[i].Description=='Tiny Sprus Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S12 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S13 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 Snowy' then
al[i].Value=1
end
if al[i].Description=='Simple Green Snowy' then
al[i].Value=1
end
if al[i].Description=='Fern Snowy' then
al[i].Value=1
end
if al[i].Description=='Moss Snowy' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass Snowy' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG Snowy' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Leaves Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 2 Snowy' then
al[i].Value=1
end
if al[i].Description=='Grass 3 Snowy' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees Snowy' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle Snowy' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short Snowy' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall Snowy' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle Snowy' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short Snowy' then
al[i].Value=1
end
if al[i].Description=='Bushes Snowy' then
al[i].Value=1
end
if al[i].Description=='Bulrush Snowy' then
al[i].Value=1
end
--- Grass Trees Bushes / Foliage Scale Layton
if al[i].Description=='Tiny Sprus Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S11 Scale' then
al[i].Value=1.5
end
if al[i].Description=='Simple Yellow S12 Scale' then
al[i].Value=1.5
end
if al[i].Description=='Simple Yellow S13 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S14 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Yellow S15 Scale' then
al[i].Value=1
end
if al[i].Description=='Simple Green Scale' then
al[i].Value=1.5
end
if al[i].Description=='Fern Scale' then
al[i].Value=0
end
if al[i].Description=='Moss Scale' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass Scale' then
al[i].Value=1
end
if al[i].Description=='Deciduous Grass RG Scale' then
al[i].Value=1
end
if al[i].Description=='Red Deciduous Scale' then
al[i].Value=1
end
if al[i].Description=='Grass Brown Scale' then
al[i].Value=0.6
end
if al[i].Description=='Grass Brown Leaves Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 1 Redish Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 2 Scale' then
al[i].Value=1
end
if al[i].Description=='Grass 3 Scale' then
al[i].Value=1
end
if al[i].Description=='Deciduous Trees Scale' then
al[i].Value=1
end
if al[i].Description=='Empty Deciduous Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Tall 2 Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Middle Scale' then
al[i].Value=1
end
if al[i].Description=='Green Spruce Short Scale' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Tall Scale' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Middle Scale' then
al[i].Value=1
end
if al[i].Description=='Yellow Spruce Short Scale' then
al[i].Value=1
end
if al[i].Description=='Bushes Scale' then
al[i].Value=1
end
if al[i].Description=='Bulrush Scale' then
al[i].Value=1
end
--- Grass / UV Layton
if al[i].Description=='Simple Yellow UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S11 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S11 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S12 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S12 UV2' then
al[i].Value=0.5
end
if al[i].Description=='Simple Yellow S13 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S13 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S14 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S14 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S15 UV1' then
al[i].Value=0
end
if al[i].Description=='Simple Yellow S15 UV2' then
al[i].Value=0
end
if al[i].Description=='Simple Green UV1' then
al[i].Value=0.7
end
if al[i].Description=='Simple Green UV2' then
al[i].Value=1
end
if al[i].Description=='Moss UV1' then
al[i].Value=0
end
if al[i].Description=='Moss UV1' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass UV1' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass UV2' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass RG UV1' then
al[i].Value=0
end
if al[i].Description=='Deciduous Grass RG UV2' then
al[i].Value=0.6
end
if al[i].Description=='Red Deciduous UV1' then
al[i].Value=0
end
if al[i].Description=='Red Deciduous UV2' then
al[i].Value=0.8
end
if al[i].Description=='Grass 1 UV1' then
al[i].Value=0
end
if al[i].Description=='Grass 1 UV2' then
al[i].Value=0
end
if al[i].Description=='Grass 1 Redish UV1' then
al[i].Value=0
end
if al[i].Description=='Grass 1 Redish UV2' then
al[i].Value=0
end
if al[i].Description=='Grass 2 UV1' then
al[i].Value=-1
end
if al[i].Description=='Grass 2 UV2' then
al[i].Value=0
end
if al[i].Description=='Grass 3 UV1' then
al[i].Value=0
end
if al[i].Description=='Grass 3 UV1' then
al[i].Value=0
end
end
[disable]
41080
"Hirschfelden"
008000
1
71597
"Activate_Hirschfelden"
0000FF
Auto Assembler Script
[ENABLE]
////////////////////////////////////////////////////////////////////////////
/////////////////////// TREES /////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(CompareDecidGTrees,128)
CompareDecidGTrees: // 3
dw #999, #46, #47
globalalloc(CompareDecidYGTrees,128)
CompareDecidYGTrees: // 7
dw #998, #22, #238, #24, #239, #31, #235
globalalloc(CompareDecidYTrees,128)
CompareDecidYTrees: // 7
dw #997, #14, #15, #16, #17, #18, #19
globalalloc(CompareDecidYRTrees,128)
CompareDecidYRTrees: // 11
dw #996, #32, #285, #290, #33, #34, #35, #36, #37, #211, #212
globalalloc(CompareDecidRTrees,128)
CompareDecidRTrees: // 3
dw #995, #48, #49
globalalloc(CompareDecidEmptyTrees,128)
CompareDecidEmptyTrees: // 3
dw #994, #29, #30
globalalloc(CompareSpruceShortTrees,128)
CompareSpruceShortTrees: // 5
dw #993, #105, #106, #107, #108
globalalloc(CompareSpruceMiddleTrees,128)
CompareSpruceMiddleTrees: // 5
dw #992, #109, #236, #116, #117
globalalloc(CompareSpruceTall1Trees,128)
CompareSpruceTall1Trees: // 3
dw #991, #110, #118
globalalloc(CompareSpruceTall2Trees,128)
CompareSpruceTall2Trees: // 3
dw #990, #112, #119
globalalloc(CompareSpruceTall3Trees,128)
CompareSpruceTall3Trees: // 2
dw #989, #111
globalalloc(CompareSpruceTall4Trees,128)
CompareSpruceTall4Trees: // 4
dw #988, #113, #114, #120
globalalloc(CompareSpruceTall5Trees,128)
CompareSpruceTall5Trees: // 4
dw #987, #115, #121, #122
globalalloc(CompareGrassG,128)
CompareGrassG: // 55
dw #986, #123, #226, #124, #125, #223, #224, #126, #225, #227, #132, #133, #288 //13
dw #134, #135, #253, #136, #252, #137, #251, #138, #139, #140, #141, #142, #221
dw #222, #143, #144, #242, #145, #241, #250, #146, #234, #147, #148, #149, #150
dw #297, #169, #277, #170, #232, #171, #172, #202, #203, #204, #205, #206, #207
dw #208, #209, #210
globalalloc(CompareGrassGLeaves,128)
CompareGrassGLeaves: // 12
dw #985, #173, #229, #243, #174, #237, #175, #230, #244, #176, #231, #233
globalalloc(CompareGrassY,128)
CompareGrassY: // 5
dw #984, #25, #38, #275, #276
globalalloc(CompareGrassB,128)
CompareGrassB: // 10
dw #983, #39, #127, #246, #128, #245, #129, #247, #248, #289
globalalloc(CompareGrassFlowers,128)
CompareGrassFlowers: // 5
dw #982, #151, #295, #152, #296
globalalloc(CompareFallenLeaves,128)
CompareFallenLeaves: // 4
dw #981, #155, #156, #288
globalalloc(CompareRocks,128)
CompareRocks: // 60
dw #982, #57, #58, #59, #60, #61, #62, #63, #64, #65, #66, #67, #68, #69, #70 // 15
dw #71, #72, #73, #74, #75, #76, #77, #78, #79, #80, #81, #82, #83, #84, #85, #86 //16
dw #87, #88, #89, #90, #91, #92, #93, #94, #95, #96, #97, #98, #99, #100, #101 // 15
dw #102, #103, #104, #200, #201, #240, #249, #302, #303, #304, #305, #306, #307 // 13
dw #308
globalalloc(CompareCornField1,128)
CompareCornField1: // 26
dw #979, #50, #51, #52, #53, #54, #55, #56, #184, #185, #186, #187, #188, #189 // 14
dw #271, #190, #272, #191, #273, #192, #269, #193, #270, #194, #195, #274 // 12
globalalloc(CompareBushesY,128)
CompareBushesY: // 2
dw #978, #20
globalalloc(CompareBushesYG,128)
CompareBushesYG: // 13
dw #977, #21, #263, #23, #257, #26, #27, #28, #40, #262, #41, #261, #42
globalalloc(CompareBushesBrown,128)
CompareBushesBrown: // 5
dw #976, #43, #291, #44, #45
globalalloc(CompareBushesEmpty,128)
CompareBushesEmpty: // 2
dw #975, #183
globalalloc(CompareLogs,128)
CompareLogs: // 50
dw #974, #153, #154, #157, #158, #159, #160, #161, #162, #163, #164, #165, #166 // 13
dw #167, #168, #177, #178, #179, #180, #181, #182, #196, #197, #198, #199, #254 // 13
dw #255, #256, #258, #259, #260, #264, #265, #266, #267, #268, #278, #279, #280 // 13
dw #281, #282, #283, #284, #286, #287, #292, #298, #299, #300, #301 // 11
globalalloc(CompareBulrush,128)
CompareBulrush: // 3
dw #973, #130, #131
////////////////////////////////////////////////////////////////////////////
/////////////////////// GRASS /////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(2CompareMoss,128)
2CompareMoss: // 7
dw #972, #160, #161, #162, #163, #164, #165
globalalloc(2CompareDecidGreen1,128)
2CompareDecidGreen1: // 7
dw #971, #166, #167, #168, #169, #170, #171
globalalloc(2CompareDecidGreen2,128)
2CompareDecidGreen2: // 12
dw #970, #195, #196, #197, #198, #199, #200, #201, #202, #203, #249, #250
globalalloc(2CompareDecidGreen3,128)
2CompareDecidGreen3: // 3
dw #969, #247, #248
globalalloc(2CompareSimpleGreen1,128)
2CompareSimpleGreen1: // 12
dw #968, #210, #211, #212, #213, #214, #215, #216, #217, #276, #279, #280
globalalloc(2CompareSimpleGreen2,128)
2CompareSimpleGreen2: // 15
dw #967, #206, #207, #208, #209, #218, #219, #220, #221, #238, #239, #240, #273
dw #277, #278
globalalloc(2CompareSimpleGreenApart,128)
2CompareSimpleGreenApart: // 9
dw #966, #223, #225, #227, #229, #231, #233, #235, #237
globalalloc(2CompareSimpleGreenApartDry,128)
2CompareSimpleGreenApartDry: // 9
dw #965, #222, #224, #226, #228, #230, #232, #234, #236
globalalloc(2CompareRedGreen,128)
2CompareRedGreen: // 10
dw #964, #186, #187, #188, #189, #190, #191, #192, #193, #194
globalalloc(2CompareGrassG,128)
2CompareGrassG: //
dw #963, #204, #205, #274, #275
globalalloc(2CompareGrassGLeaves,128)
2CompareGrassGLeaves: // 9
dw #962, #251, #252, #253, #254, #255, #256, #257, #258
globalalloc(2CompareGrassY,128)
2CompareGrassY: // 5
dw #961, #31, #57, #58, #59
globalalloc(2CompareGrassB1,128)
2CompareGrassB1: // 4
dw #960, #60, #61, #62
globalalloc(2CompareGrassB2,128)
2CompareGrassB2: // 9
dw #959, #172, #173, #174, #175, #176, #177, #178, #179
globalalloc(2CompareGrassFlowers,128)
2CompareGrassFlowers: // 6
dw #958, #241, #242, #243, #244, #281
globalalloc(2CompareFallenLeaves,128)
2CompareFallenLeaves: // 3
dw #957, #245, #246
globalalloc(2CompareCornField1,128)
2CompareCornField1: // 30
dw #956, #102, #103, #104, #105, #106, #107, #108, #109, #110, #111, #112, #113
dw #114, #115, #116, #117, #260, #261, #262, #263, #264, #265, #266, #267, #268
dw #269, #270, #271, #272
globalalloc(2CompareBulrush,128)
2CompareBulrush: // 7
dw #955, #180, #181, #182, #183, #184, #185
////////////////////////////////////////////////////////////////////////////
/////////////////////// /////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(2CompareDecidGTrees,128)
2CompareDecidGTrees: // 7
dw #954, #89, #90, #91, #92, #93, #94
globalalloc(2CompareDecidYGTrees,128)
2CompareDecidYGTrees: // 12
dw #953, #20, #21, #22, #23, #27, #28, #29, #30, #35, #36, #37
globalalloc(2CompareDecidYTrees,128)
2CompareDecidYTrees: // 16
dw #952, #0, #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14
globalalloc(2CompareDecidYRTrees,128)
2CompareDecidYRTrees: // 25
dw #951, #38, #39, #40, #41, #42, #43, #44, #45, #46, #47, #48, #49
dw #50, #51, #52, #53, #54, #55, #56, #282, #283, #284, #285, #286
globalalloc(2CompareDecidRTrees,128)
2CompareDecidRTrees: // 8
dw #950, #95, #96, #97, #98, #99, #100, #101
globalalloc(2CompareSpruceShortTrees,128)
2CompareSpruceShortTrees: // 9
dw #949, #118, #119, #120, #121, #122, #123, #124, #125
globalalloc(2CompareSpruceMiddleTrees,128)
2CompareSpruceMiddleTrees: // 6
dw #948, #126, #127, #128, #153, #154
globalalloc(2CompareSpruceTall1Trees,128)
2CompareSpruceTall1Trees: // 6
dw #947, #129, #130, #131, #132, #155
globalalloc(2CompareSpruceTall2Trees,128)
2CompareSpruceTall2Trees: // 6
dw #946, #137, #138, #139, #140, #156
globalalloc(2CompareSpruceTall3Trees,128)
2CompareSpruceTall3Trees: // 5
dw #945, #133, #134, #135, #136
globalalloc(2CompareSpruceTall4Trees,128)
2CompareSpruceTall4Trees: // 10
dw #944, #141, #142, #143, #144, #145, #146, #147, #148, #157
globalalloc(2CompareSpruceTall5Trees,128)
2CompareSpruceTall5Trees: // 7
dw #943, #149, #150, #151, #152, #158, #159
globalalloc(2CompareBushesY,128)
2CompareBushesY: // 3
dw #942, #15, #16
globalalloc(2CompareBushesYG,128)
2CompareBushesYG: // 33
dw #941, #17, #18, #19, #24, #25, #26, #32, #33, #34, #63, #64, #65, #66, #67, #68
dw #69, #70, #71, #72, #73, #74, #75
globalalloc(2CompareBushesBrown,128)
2CompareBushesBrown: // 14
dw #940, #76, #77, #78, #79, #80, #81, #82, #83, #84, #85, #86, #87, #88
globalalloc(2CompareBushesEmpty,128)
2CompareBushesEmpty: // 2
dw #939, #259
[DISABLE]
71049
"Trees / Replacers Hirschfelden"
Auto Assembler Script
[ENABLE]
alloc(DecidGTrees,4)
alloc(DecidYGTrees,4)
alloc(DecidYTrees,4)
alloc(DecidYRTrees,4)
alloc(DecidRTrees,4)
alloc(DecidEmptyTrees,4)
alloc(SpruceShortTrees,4)
alloc(SpruceMiddleTrees,4)
alloc(SpruceTall1Trees,4)
alloc(SpruceTall2Trees,4)
alloc(SpruceTall3Trees,4)
alloc(SpruceTall4Trees,4)
alloc(SpruceTall5Trees,4)
alloc(GrassG,4)
alloc(GrassGLeaves,4)
alloc(GrassY,4)
alloc(GrassB,4)
alloc(GrassFlowers,4)
alloc(FallenLeaves,4)
alloc(Rocks,4)
alloc(CornField1,4)
alloc(BushesY,4)
alloc(BushesYG,4)
alloc(BushesBrown,4)
alloc(BushesEmpty,4)
alloc(Logs,4)
alloc(Bulrush,4)
alloc(DecidGTreesOnOff,4)
alloc(DecidYGTreesOnOff,4)
alloc(DecidYTreesOnOff,4)
alloc(DecidYRTreesOnOff,4)
alloc(DecidRTreesOnOff,4)
alloc(DecidEmptyTreesOnOff,4)
alloc(SpruceShortTreesOnOff,4)
alloc(SpruceMiddleTreesOnOff,4)
alloc(SpruceTall1TreesOnOff,4)
alloc(SpruceTall2TreesOnOff,4)
alloc(SpruceTall3TreesOnOff,4)
alloc(SpruceTall4TreesOnOff,4)
alloc(SpruceTall5TreesOnOff,4)
alloc(GrassGOnOff,4)
alloc(GrassGLeavesOnOff,4)
alloc(GrassYOnOff,4)
alloc(GrassBOnOff,4)
alloc(GrassFlowersOnOff,4)
alloc(FallenLeavesOnOff,4)
alloc(RocksOnOff,4)
alloc(CornField1OnOff,4)
alloc(BushesYOnOff,4)
alloc(BushesYGOnOff,4)
alloc(BushesBrownOnOff,4)
alloc(BushesEmptyOnOff,4)
alloc(LogsOnOff,4)
alloc(BulrushOnOff,4)
alloc(DecidEmptyOnOffOnOff,4)
DecidGTrees:
dd #2
DecidYGTrees:
dd #2
DecidYTrees:
dd #2
DecidYRTrees:
dd #2
DecidRTrees:
dd #2
DecidEmptyTrees:
dd #2
SpruceShortTrees:
dd #2
SpruceMiddleTrees:
dd #2
SpruceTall1Trees:
dd #2
SpruceTall2Trees:
dd #2
SpruceTall3Trees:
dd #2
SpruceTall4Trees:
dd #2
SpruceTall5Trees:
dd #2
GrassG:
dd #4
GrassGLeaves:
dd #4
GrassY:
dd #4
GrassB:
dd #4
GrassFlowers:
dd #5
FallenLeaves:
dd #4
Rocks:
dd #1
CornField1:
dd #5
BushesY:
dd #3
BushesYG:
dd #3
BushesBrown:
dd #3
BushesEmpty:
dd #2
Logs:
dd #4
Bulrush:
dd #4
DecidGTreesOnOff:
dd #1
DecidYGTreesOnOff:
dd #1
DecidYTreesOnOff:
dd #1
DecidYRTreesOnOff:
dd #1
DecidRTreesOnOff:
dd #1
DecidEmptyTreesOnOff:
dd #1
SpruceShortTreesOnOff:
dd #1
SpruceMiddleTreesOnOff:
dd #1
SpruceTall1TreesOnOff:
dd #1
SpruceTall2TreesOnOff:
dd #1
SpruceTall3TreesOnOff:
dd #1
SpruceTall4TreesOnOff:
dd #1
SpruceTall5TreesOnOff:
dd #1
GrassGOnOff:
dd #1
GrassGLeavesOnOff:
dd #1
GrassYOnOff:
dd #1
GrassBOnOff:
dd #1
GrassFlowersOnOff:
dd #1
FallenLeavesOnOff:
dd #1
RocksOnOff:
dd #1
CornField1OnOff:
dd #1
BushesYOnOff:
dd #1
BushesYGOnOff:
dd #1
BushesBrownOnOff:
dd #1
BushesEmptyOnOff:
dd #1
LogsOnOff:
dd #1
BulrushOnOff:
dd #1
DecidEmptyOnOffOnOff:
dd #1
registersymbol(DecidGTrees)
registersymbol(DecidYGTrees)
registersymbol(DecidYTrees)
registersymbol(DecidYRTrees)
registersymbol(DecidRTrees)
registersymbol(DecidEmptyTrees)
registersymbol(SpruceShortTrees)
registersymbol(SpruceMiddleTrees)
registersymbol(SpruceTall1Trees)
registersymbol(SpruceTall2Trees)
registersymbol(SpruceTall3Trees)
registersymbol(SpruceTall4Trees)
registersymbol(SpruceTall5Trees)
registersymbol(GrassG)
registersymbol(GrassGLeaves)
registersymbol(GrassY)
registersymbol(GrassB)
registersymbol(GrassFlowers)
registersymbol(FallenLeaves)
registersymbol(Rocks)
registersymbol(CornField1)
registersymbol(BushesY)
registersymbol(BushesYG)
registersymbol(BushesBrown)
registersymbol(BushesEmpty)
registersymbol(Logs)
registersymbol(Bulrush)
registersymbol(DecidGTreesOnOff)
registersymbol(DecidYGTreesOnOff)
registersymbol(DecidYTreesOnOff)
registersymbol(DecidYRTreesOnOff)
registersymbol(DecidRTreesOnOff)
registersymbol(DecidEmptyTreesOnOff)
registersymbol(SpruceShortTreesOnOff)
registersymbol(SpruceMiddleTreesOnOff)
registersymbol(SpruceTall1TreesOnOff)
registersymbol(SpruceTall2TreesOnOff)
registersymbol(SpruceTall3TreesOnOff)
registersymbol(SpruceTall4TreesOnOff)
registersymbol(SpruceTall5TreesOnOff)
registersymbol(GrassGOnOff)
registersymbol(GrassGleavesOnOff)
registersymbol(GrassYOnOff)
registersymbol(GrassBOnOff)
registersymbol(GrassFlowersOnOff)
registersymbol(FallenLeavesOnOff)
registersymbol(RocksOnOff)
registersymbol(CornField1OnOff)
registersymbol(BushesYOnOff)
registersymbol(BushesYGOnOff)
registersymbol(BushesBrownOnOff)
registersymbol(BushesEmptyOnOff)
registersymbol(LogsOnOff)
registersymbol(BulrushOnOff)
registersymbol(DecidEmptyOnOffOnOff)
aobscanmodule(foliage_replace,theHunterCotW_F.exe,8B 45 2C 25 FF FF FF 1F 66 44 89 7C FB 04) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+9495D4)
label(code)
label(return)
newmem:
// Save from crash because of critical value
cmp [DecidGTrees],#308
jng short @f
mov [DecidGTrees],#0
@@:
cmp [DecidYGTrees],#308
jng short @f
mov [DecidYGTrees],#0
@@:
cmp [DecidYRTrees],#308
jng short @f
mov [DecidYRTrees],#0
@@:
cmp [DecidRTrees],#308
jng short @f
mov [DecidRTrees],#0
@@:
cmp [DecidEmptyTrees],#308
jng short @f
mov [DecidEmptyTrees],#0
@@:
cmp [SpruceShortTrees],#308
jng short @f
mov [SpruceShortTrees],#0
@@:
cmp [SpruceMiddleTrees],#308
jng short @f
mov [SpruceMiddleTrees],#0
@@:
cmp [SpruceTall1Trees],#308
jng short @f
mov [SpruceTall1Trees],#0
@@:
cmp [SpruceTall2Trees],#308
jng short @f
mov [SpruceTall2Trees],#0
@@:
cmp [SpruceTall3Trees],#308
jng short @f
mov [SpruceTall3Trees],#0
@@:
cmp [SpruceTall4Trees],#308
jng short @f
mov [SpruceTall4Trees],#0
@@:
cmp [SpruceTall5Trees],#308
jng short @f
mov [SpruceTall5Trees],#0
@@:
cmp [GrassG],#308
jng short @f
mov [GrassG],#0
@@:
cmp [GrassGLeaves],#308
jng short @f
mov [GrassGLeaves],#0
@@:
cmp [GrassY],#308
jng short @f
mov [GrassY],#0
@@:
cmp [GrassB],#308
jng short @f
mov [GrassB],#0
@@:
cmp [GrassFlowers],#308
jng short @f
mov [GrassFlowers],#0
@@:
cmp [FallenLeaves],#308
jng short @f
mov [FallenLeaves],#0
@@:
cmp [Rocks],#308
jng short @f
mov [Rocks],#0
@@:
cmp [CornField1],#308
jng short @f
mov [CornField1],#0
@@:
cmp [BushesY],#308
jng short @f
mov [BushesY],#0
@@:
cmp [BushesYG],#308
jng short @f
mov [BushesYG],#0
@@:
cmp [BushesBrown],#308
jng short @f
mov [BushesBrown],#0
@@:
cmp [BushesEmpty],#308
jng short @f
mov [BushesEmpty],#0
@@:
cmp [Logs],#308
jng short @f
mov [Logs],#0
@@:
cmp [Bulrush],#308
jng short @f
mov [Bulrush],#0
@@:
push ecx
push edi
mov rcx,DecidGTreesOnOff
cmp [rcx],0
je notDecidGTrees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop edi
pop ecx
mov eax,[DecidGTrees]
and eax,1FFFFFFF
jmp return
notDecidGTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidYGTreesOnOff
cmp [rcx],0
je notDecidYGTrees
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop edi
pop ecx
mov eax,[DecidYGTrees]
and eax,1FFFFFFF
jmp return
notDecidYGTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidYTreesOnOff
cmp [rcx],0
je notDecidYTrees
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop edi
pop ecx
mov eax,[DecidYTrees]
and eax,1FFFFFFF
jmp return
notDecidYTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidYRTreesOnOff
cmp [rcx],0
je notDecidYRTrees
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop edi
pop ecx
mov eax,[DecidYRTrees]
and eax,1FFFFFFF
jmp return
notDecidYRTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidRTreesOnOff
cmp [rcx],0
je notDecidRTrees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop edi
pop ecx
mov eax,[DecidRTrees]
and eax,1FFFFFFF
jmp return
notDecidRTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidEmptyTreesOnOff
cmp [rcx],0
je notDecidEmptyTrees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidEmptyTrees
myloopDecidEmptyTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidEmptyTrees
loop myloopDecidEmptyTrees
jmp notDecidEmptyTrees
yepDecidEmptyTrees:
pop edi
pop ecx
mov eax,[DecidEmptyTrees]
and eax,1FFFFFFF
jmp return
notDecidEmptyTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceShortTreesOnOff
cmp [rcx],0
je notSpruceShortTrees
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop edi
pop ecx
mov eax,[SpruceShortTrees]
and eax,1FFFFFFF
jmp return
notSpruceShortTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceMiddleTreesOnOff
cmp [rcx],0
je notSpruceMiddleTrees
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop edi
pop ecx
mov eax,[SpruceMiddleTrees]
and eax,1FFFFFFF
jmp return
notSpruceMiddleTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall1TreesOnOff
cmp [rcx],0
je notSpruceTall1Trees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop edi
pop ecx
mov eax,[SpruceTall1Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall1Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall2TreesOnOff
cmp [rcx],0
je notSpruceTall2Trees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop edi
pop ecx
mov eax,[SpruceTall2Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall2Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall3TreesOnOff
cmp [rcx],0
je notSpruceTall3Trees
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop edi
pop ecx
mov eax,[SpruceTall3Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall3Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall4TreesOnOff
cmp [rcx],0
je notSpruceTall4Trees
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop edi
pop ecx
mov eax,[SpruceTall4Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall4Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall5TreesOnOff
cmp [rcx],0
je notSpruceTall5Trees
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop edi
pop ecx
mov eax,[SpruceTall5Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall5Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassGOnOff
cmp [rcx],0
je notGrassG
xor rcx,rcx
mov cl,(int)54
mov rdi,CompareGrassG
myloopGrassG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassG
loop myloopGrassG
jmp notGrassG
yepGrassG:
pop edi
pop ecx
mov eax,[GrassG]
and eax,1FFFFFFF
jmp return
notGrassG:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassGLeavesOnOff
cmp [rcx],0
je notGrassGLeaves
xor rcx,rcx
mov cl,(int)11
mov rdi,CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop edi
pop ecx
mov eax,[GrassGLeaves]
and eax,1FFFFFFF
jmp return
notGrassGLeaves:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassYOnOff
cmp [rcx],0
je notGrassY
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassY
myloopGrassY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop edi
pop ecx
mov eax,[GrassY]
and eax,1FFFFFFF
jmp return
notGrassY:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassBOnOff
cmp [rcx],0
je notGrassB
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareGrassB
myloopGrassB:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassB
loop myloopGrassB
jmp notGrassB
yepGrassB:
pop edi
pop ecx
mov eax,[GrassB]
and eax,1FFFFFFF
jmp return
notGrassB:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassFlowersOnOff
cmp [rcx],0
je notGrassFlowers
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop edi
pop ecx
mov eax,[GrassFlowers]
and eax,1FFFFFFF
jmp return
notGrassFlowers:
pop edi
pop ecx
push ecx
push edi
mov rcx,FallenLeavesOnOff
cmp [rcx],0
je notFallenLeaves
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop edi
pop ecx
mov eax,[FallenLeaves]
and eax,1FFFFFFF
jmp return
notFallenLeaves:
pop edi
pop ecx
push ecx
push edi
mov rcx,RocksOnOff
cmp [rcx],0
je notRocks
xor rcx,rcx
mov cl,(int)59
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[Rocks]
and eax,1FFFFFFF
jmp return
notRocks:
pop edi
pop ecx
push ecx
push edi
mov rcx,CornField1OnOff
cmp [rcx],0
je notCornField1
xor rcx,rcx
mov cl,(int)25
mov rdi,CompareCornField1
myloopCornField1:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop edi
pop ecx
mov eax,[CornField1]
and eax,1FFFFFFF
jmp return
notCornField1:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesYOnOff
cmp [rcx],0
je notBushesY
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesY
myloopBushesY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop edi
pop ecx
mov eax,[BushesY]
and eax,1FFFFFFF
jmp return
notBushesY:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesYGOnOff
cmp [rcx],0
je notBushesYG
xor rcx,rcx
mov cl,(int)12
mov rdi,CompareBushesYG
myloopBushesYG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop edi
pop ecx
mov eax,[BushesYG]
and eax,1FFFFFFF
jmp return
notBushesYG:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesBrownOnOff
cmp [rcx],0
je notBushesBrown
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop edi
pop ecx
mov eax,[BushesBrown]
and eax,1FFFFFFF
jmp return
notBushesBrown:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesEmptyOnOff
cmp [rcx],0
je notBushesEmpty
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop edi
pop ecx
mov eax,[BushesEmpty]
and eax,1FFFFFFF
jmp return
notBushesEmpty:
pop edi
pop ecx
push ecx
push edi
mov rcx,LogsOnOff
cmp [rcx],0
je notLogs
xor rcx,rcx
mov cl,(int)49
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp notLogs
yepLogs:
pop edi
pop ecx
mov eax,[Logs]
and eax,1FFFFFFF
jmp return
notLogs:
pop edi
pop ecx
push ecx
push edi
mov rcx,BulrushOnOff
cmp [rcx],0
je code
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareBulrush
myloopBulrush:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop edi
pop ecx
mov eax,[Bulrush]
and eax,1FFFFFFF
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+2C]
and eax,1FFFFFFF
jmp return
foliage_replace:
jmp newmem
nop
nop
nop
return:
registersymbol(foliage_replace)
[DISABLE]
foliage_replace:
db 8B 45 2C 25 FF FF FF 1F
unregistersymbol(DecidGTrees)
unregistersymbol(DecidYGTrees)
unregistersymbol(DecidYRTrees)
unregistersymbol(DecidRTrees)
unregistersymbol(DecidEmptyTrees)
unregistersymbol(SpruceShortTrees)
unregistersymbol(SpruceMiddleTrees)
unregistersymbol(SpruceTall1Trees)
unregistersymbol(SpruceTall2Trees)
unregistersymbol(SpruceTall3Trees)
unregistersymbol(SpruceTall4Trees)
unregistersymbol(SpruceTall5Trees)
unregistersymbol(GrassG)
unregistersymbol(GrassGLeaves)
unregistersymbol(GrassY)
unregistersymbol(GrassB)
unregistersymbol(GrassFlowers)
unregistersymbol(FallenLeaves)
unregistersymbol(Rocks)
unregistersymbol(CornField1)
unregistersymbol(BushesY)
unregistersymbol(BushesYG)
unregistersymbol(BushesBrown)
unregistersymbol(BushesEmpty)
unregistersymbol(Logs)
unregistersymbol(Bulrush)
unregistersymbol(DecidGTreesOnOff)
unregistersymbol(DecidYGTreesOnOff)
unregistersymbol(DecidYRTreesOnOff)
unregistersymbol(DecidRTreesOnOff)
unregistersymbol(DecidEmptyTreesOnOff)
unregistersymbol(SpruceShortTreesOnOff)
unregistersymbol(SpruceMiddleTreesOnOff)
unregistersymbol(SpruceTall1TreesOnOff)
unregistersymbol(SpruceTall2TreesOnOff)
unregistersymbol(SpruceTall3TreesOnOff)
unregistersymbol(SpruceTall4TreesOnOff)
unregistersymbol(SpruceTall5TreesOnOff)
unregistersymbol(GrassGOnOff)
unregistersymbol(GrassGLeavesOnOff)
unregistersymbol(GrassYOnOff)
unregistersymbol(GrassBOnOff)
unregistersymbol(GrassFlowersOnOff)
unregistersymbol(FallenLeavesOnOff)
unregistersymbol(RocksOnOff)
unregistersymbol(CornField1OnOff)
unregistersymbol(BushesYOnOff)
unregistersymbol(BushesYGOnOff)
unregistersymbol(BushesBrownOnOff)
unregistersymbol(BushesEmptyOnOff)
unregistersymbol(LogsOnOff)
unregistersymbol(BulrushOnOff)
unregistersymbol(DecidEmptyOnOffOnOff)
unregistersymbol(foliage_replace)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+9495D4
"theHunterCotW_F.exe"+9495AE: E8 ED 0D 00 00 - call theHunterCotW_F.exe+94A3A0
"theHunterCotW_F.exe"+9495B3: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+9495B6: 4C 8B 4C 24 50 - mov r9,[rsp+50]
"theHunterCotW_F.exe"+9495BB: 48 8B 54 24 68 - mov rdx,[rsp+68]
"theHunterCotW_F.exe"+9495C0: 89 46 30 - mov [rsi+30],eax
"theHunterCotW_F.exe"+9495C3: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+9495C6: 89 46 34 - mov [rsi+34],eax
"theHunterCotW_F.exe"+9495C9: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+9495CC: 89 46 38 - mov [rsi+38],eax
"theHunterCotW_F.exe"+9495CF: F3 0F 11 76 3C - movss [rsi+3C],xmm6
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+9495D4: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+9495D7: 25 FF FF FF 1F - and eax,1FFFFFFF
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+9495DC: 66 44 89 7C FB 04 - mov [rbx+rdi*8+04],r15w
"theHunterCotW_F.exe"+9495E2: 89 04 FB - mov [rbx+rdi*8],eax
"theHunterCotW_F.exe"+9495E5: 66 44 89 6C FB 06 - mov [rbx+rdi*8+06],r13w
"theHunterCotW_F.exe"+9495EB: 41 FF 01 - inc [r9]
"theHunterCotW_F.exe"+9495EE: 45 3B FC - cmp r15d,r12d
"theHunterCotW_F.exe"+9495F1: 0F 84 A8 00 00 00 - je theHunterCotW_F.exe+94969F
"theHunterCotW_F.exe"+9495F7: 41 0F 28 F0 - movaps xmm6,xmm8
"theHunterCotW_F.exe"+9495FB: F3 41 0F 5C F1 - subss xmm6,xmm9
"theHunterCotW_F.exe"+949600: F3 41 0F 59 F6 - mulss xmm6,xmm14
"theHunterCotW_F.exe"+949605: F3 41 0F 5F F2 - maxss xmm6,xmm10
}
71050
"Trees / Replacers 2 Hirschfelden"
Auto Assembler Script
[ENABLE]
aobscanmodule(foliage_replace2,theHunterCotW_F.exe,8B 45 2C 25 FF FF FF 1F 66 44 89 67) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+949688)
label(code)
label(return)
newmem:
push ecx
push edi
mov rcx,DecidGTreesOnOff
cmp [rcx],0
je notDecidGTrees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop edi
pop ecx
mov eax,[DecidGTrees]
and eax,1FFFFFFF
jmp return
notDecidGTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidYGTreesOnOff
cmp [rcx],0
je notDecidYGTrees
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop edi
pop ecx
mov eax,[DecidYGTrees]
and eax,1FFFFFFF
jmp return
notDecidYGTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidYTreesOnOff
cmp [rcx],0
je notDecidYTrees
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop edi
pop ecx
mov eax,[DecidYTrees]
and eax,1FFFFFFF
jmp return
notDecidYTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidYRTreesOnOff
cmp [rcx],0
je notDecidYRTrees
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop edi
pop ecx
mov eax,[DecidYRTrees]
and eax,1FFFFFFF
jmp return
notDecidYRTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidRTreesOnOff
cmp [rcx],0
je notDecidRTrees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop edi
pop ecx
mov eax,[DecidRTrees]
and eax,1FFFFFFF
jmp return
notDecidRTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidEmptyTreesOnOff
cmp [rcx],0
je notDecidEmptyTrees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidEmptyTrees
myloopDecidEmptyTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidEmptyTrees
loop myloopDecidEmptyTrees
jmp notDecidEmptyTrees
yepDecidEmptyTrees:
pop edi
pop ecx
mov eax,[DecidEmptyTrees]
and eax,1FFFFFFF
jmp return
notDecidEmptyTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceShortTreesOnOff
cmp [rcx],0
je notSpruceShortTrees
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop edi
pop ecx
mov eax,[SpruceShortTrees]
and eax,1FFFFFFF
jmp return
notSpruceShortTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceMiddleTreesOnOff
cmp [rcx],0
je notSpruceMiddleTrees
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop edi
pop ecx
mov eax,[SpruceMiddleTrees]
and eax,1FFFFFFF
jmp return
notSpruceMiddleTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall1TreesOnOff
cmp [rcx],0
je notSpruceTall1Trees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop edi
pop ecx
mov eax,[SpruceTall1Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall1Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall2TreesOnOff
cmp [rcx],0
je notSpruceTall2Trees
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop edi
pop ecx
mov eax,[SpruceTall2Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall2Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall3TreesOnOff
cmp [rcx],0
je notSpruceTall3Trees
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop edi
pop ecx
mov eax,[SpruceTall3Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall3Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall4TreesOnOff
cmp [rcx],0
je notSpruceTall4Trees
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop edi
pop ecx
mov eax,[SpruceTall4Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall4Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTall5TreesOnOff
cmp [rcx],0
je notSpruceTall5Trees
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop edi
pop ecx
mov eax,[SpruceTall5Trees]
and eax,1FFFFFFF
jmp return
notSpruceTall5Trees:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassGOnOff
cmp [rcx],0
je notGrassG
xor rcx,rcx
mov cl,(int)54
mov rdi,CompareGrassG
myloopGrassG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassG
loop myloopGrassG
jmp notGrassG
yepGrassG:
pop edi
pop ecx
mov eax,[GrassG]
and eax,1FFFFFFF
jmp return
notGrassG:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassGLeavesOnOff
cmp [rcx],0
je notGrassGLeaves
xor rcx,rcx
mov cl,(int)11
mov rdi,CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop edi
pop ecx
mov eax,[GrassGLeaves]
and eax,1FFFFFFF
jmp return
notGrassGLeaves:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassYOnOff
cmp [rcx],0
je notGrassY
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassY
myloopGrassY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop edi
pop ecx
mov eax,[GrassY]
and eax,1FFFFFFF
jmp return
notGrassY:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassBOnOff
cmp [rcx],0
je notGrassB
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareGrassB
myloopGrassB:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassB
loop myloopGrassB
jmp notGrassB
yepGrassB:
pop edi
pop ecx
mov eax,[GrassB]
and eax,1FFFFFFF
jmp return
notGrassB:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassFlowersOnOff
cmp [rcx],0
je notGrassFlowers
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop edi
pop ecx
mov eax,[GrassFlowers]
and eax,1FFFFFFF
jmp return
notGrassFlowers:
pop edi
pop ecx
push ecx
push edi
mov rcx,FallenLeavesOnOff
cmp [rcx],0
je notFallenLeaves
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop edi
pop ecx
mov eax,[FallenLeaves]
and eax,1FFFFFFF
jmp return
notFallenLeaves:
pop edi
pop ecx
push ecx
push edi
mov rcx,RocksOnOff
cmp [rcx],0
je notRocks
xor rcx,rcx
mov cl,(int)59
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[Rocks]
and eax,1FFFFFFF
jmp return
notRocks:
pop edi
pop ecx
push ecx
push edi
mov rcx,CornField1OnOff
cmp [rcx],0
je notCornField1
xor rcx,rcx
mov cl,(int)25
mov rdi,CompareCornField1
myloopCornField1:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop edi
pop ecx
mov eax,[CornField1]
and eax,1FFFFFFF
jmp return
notCornField1:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesYOnOff
cmp [rcx],0
je notBushesY
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesY
myloopBushesY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop edi
pop ecx
mov eax,[BushesY]
and eax,1FFFFFFF
jmp return
notBushesY:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesYGOnOff
cmp [rcx],0
je notBushesYG
xor rcx,rcx
mov cl,(int)12
mov rdi,CompareBushesYG
myloopBushesYG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop edi
pop ecx
mov eax,[BushesYG]
and eax,1FFFFFFF
jmp return
notBushesYG:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesBrownOnOff
cmp [rcx],0
je notBushesBrown
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop edi
pop ecx
mov eax,[BushesBrown]
and eax,1FFFFFFF
jmp return
notBushesBrown:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesEmptyOnOff
cmp [rcx],0
je notBushesEmpty
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop edi
pop ecx
mov eax,[BushesEmpty]
and eax,1FFFFFFF
jmp return
notBushesEmpty:
pop edi
pop ecx
push ecx
push edi
mov rcx,LogsOnOff
cmp [rcx],0
je notLogs
xor rcx,rcx
mov cl,(int)49
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp notLogs
yepLogs:
pop edi
pop ecx
mov eax,[Logs]
and eax,1FFFFFFF
jmp return
notLogs:
pop edi
pop ecx
push ecx
push edi
mov rcx,BulrushOnOff
cmp [rcx],0
je code
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareBulrush
myloopBulrush:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop edi
pop ecx
mov eax,[Bulrush]
and eax,1FFFFFFF
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+2C]
and eax,1FFFFFFF
jmp return
foliage_replace2:
jmp newmem
nop
nop
nop
return:
registersymbol(foliage_replace2)
[DISABLE]
foliage_replace2:
db 8B 45 2C 25 FF FF FF 1F
unregistersymbol(foliage_replace2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+949688
"theHunterCotW_F.exe"+949664: 48 8B CD - mov rcx,rbp
"theHunterCotW_F.exe"+949667: E8 34 0D 00 00 - call theHunterCotW_F.exe+94A3A0
"theHunterCotW_F.exe"+94966C: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+94966F: 4C 8B 4C 24 50 - mov r9,[rsp+50]
"theHunterCotW_F.exe"+949674: 89 43 30 - mov [rbx+30],eax
"theHunterCotW_F.exe"+949677: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+94967A: 89 43 34 - mov [rbx+34],eax
"theHunterCotW_F.exe"+94967D: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+949680: 89 43 38 - mov [rbx+38],eax
"theHunterCotW_F.exe"+949683: F3 0F 11 73 3C - movss [rbx+3C],xmm6
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+949688: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+94968B: 25 FF FF FF 1F - and eax,1FFFFFFF
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+949690: 66 44 89 67 04 - mov [rdi+04],r12w
"theHunterCotW_F.exe"+949695: 89 07 - mov [rdi],eax
"theHunterCotW_F.exe"+949697: 66 44 89 6F 06 - mov [rdi+06],r13w
"theHunterCotW_F.exe"+94969C: 41 FF 01 - inc [r9]
"theHunterCotW_F.exe"+94969F: 45 85 F6 - test r14d,r14d
"theHunterCotW_F.exe"+9496A2: 0F 84 7F 01 00 00 - je theHunterCotW_F.exe+949827
"theHunterCotW_F.exe"+9496A8: 44 8B 84 24 08 02 00 00 - mov r8d,[rsp+00000208]
"theHunterCotW_F.exe"+9496B0: 33 C9 - xor ecx,ecx
"theHunterCotW_F.exe"+9496B2: 45 85 C0 - test r8d,r8d
"theHunterCotW_F.exe"+9496B5: 7E 25 - jle theHunterCotW_F.exe+9496DC
}
71051
"Trees / Color Mult Hirschfelden"
Auto Assembler Script
[ENABLE]
alloc(colorDecidGTrees,12)
alloc(colorDecidYGTrees,12)
alloc(colorDecidYTrees,12)
alloc(colorDecidYRTrees,12)
alloc(colorDecidRTrees,12)
alloc(colorDecidEmptyTrees,12)
alloc(colorSpruceShortTrees,12)
alloc(colorSpruceMiddleTrees,12)
alloc(colorSpruceTall1Trees,12)
alloc(colorSpruceTall2Trees,12)
alloc(colorSpruceTall3Trees,12)
alloc(colorSpruceTall4Trees,12)
alloc(colorSpruceTall5Trees,12)
alloc(colorGrassG,12)
alloc(colorGrassGLeaves,12)
alloc(colorGrassY,12)
alloc(colorGrassB,12)
alloc(colorGrassFlowers,12)
alloc(colorFallenLeaves,12)
alloc(colorRocks,12)
alloc(colorCornField1,12)
alloc(colorBushesY,12)
alloc(colorBushesYG,12)
alloc(colorBushesBrown,12)
alloc(colorBushesEmpty,12)
alloc(colorLogs,12)
alloc(colorBulrush,12)
colorDecidGTrees:
dd (float)1
dd (float)1
dd (float)1
colorDecidYGTrees:
dd (float)1
dd (float)1
dd (float)1
colorDecidYTrees:
dd (float)1
dd (float)1
dd (float)1
colorDecidYRTrees:
dd (float)1
dd (float)1
dd (float)1
colorDecidRTrees:
dd (float)1
dd (float)1
dd (float)1
colorDecidEmptyTrees:
dd (float)1
dd (float)1
dd (float)1
colorSpruceShortTrees:
dd (float)1
dd (float)1
dd (float)1
colorSpruceMiddleTrees:
dd (float)1
dd (float)1
dd (float)1
colorSpruceTall1Trees:
dd (float)1
dd (float)1
dd (float)1
colorSpruceTall2Trees:
dd (float)1
dd (float)1
dd (float)1
colorSpruceTall3Trees:
dd (float)1
dd (float)1
dd (float)1
colorSpruceTall4Trees:
dd (float)1
dd (float)1
dd (float)1
colorSpruceTall5Trees:
dd (float)1
dd (float)1
dd (float)1
colorGrassG:
dd (float)1
dd (float)1
dd (float)1
colorGrassGLeaves:
dd (float)1
dd (float)1
dd (float)1
colorGrassY:
dd (float)1
dd (float)1
dd (float)1
colorGrassB:
dd (float)1
dd (float)1
dd (float)1
colorGrassFlowers:
dd (float)1
dd (float)1
dd (float)1
colorFallenLeaves:
dd (float)1
dd (float)1
dd (float)1
colorRocks:
dd (float)1
dd (float)1
dd (float)1
colorCornField1:
dd (float)1
dd (float)1
dd (float)1
colorBushesY:
dd (float)1
dd (float)1
dd (float)1
colorBushesYG:
dd (float)1
dd (float)1
dd (float)1
colorBushesBrown:
dd (float)1
dd (float)1
dd (float)1
colorBushesEmpty:
dd (float)1
dd (float)1
dd (float)1
colorLogs:
dd (float)1
dd (float)1
dd (float)1
colorBulrush:
dd (float)1
dd (float)1
dd (float)1
registersymbol(colorDecidGTrees)
registersymbol(colorDecidYGTrees)
registersymbol(colorDecidYTrees)
registersymbol(colorDecidYRTrees)
registersymbol(colorDecidRTrees)
registersymbol(colorDecidEmptyTrees)
registersymbol(colorSpruceShortTrees)
registersymbol(colorSpruceMiddleTrees)
registersymbol(colorSpruceTall1Trees)
registersymbol(colorSpruceTall2Trees)
registersymbol(colorSpruceTall3Trees)
registersymbol(colorSpruceTall4Trees)
registersymbol(colorSpruceTall5Trees)
registersymbol(colorGrassG)
registersymbol(colorGrassGLeaves)
registersymbol(colorGrassY)
registersymbol(colorGrassB)
registersymbol(colorGrassFlowers)
registersymbol(colorFallenLeaves)
registersymbol(colorRocks)
registersymbol(colorCornField1)
registersymbol(colorBushesY)
registersymbol(colorBushesYG)
registersymbol(colorBushesBrown)
registersymbol(colorBushesEmpty)
registersymbol(colorLogs)
registersymbol(colorBulrush)
aobscanmodule(Color1,theHunterCotW_F.exe,8B 45 20 4C 8B 4C 24 50 48) // should be unique
alloc(newmem,$2000,"theHunterCotW_F.exe"+9495B3)
label(code)
label(return)
newmem:
push ecx
push edi
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorDecidGTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorDecidGTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorDecidGTrees+8]
fstp dword [rsi+38]
jmp return
notDecidGTrees:
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorDecidYGTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorDecidYGTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorDecidYGTrees+8]
fstp dword [rsi+38]
jmp return
notDecidYGTrees:
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorDecidYTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorDecidYTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorDecidYTrees+8]
fstp dword [rsi+38]
jmp return
notDecidYTrees:
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorDecidYRTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorDecidYRTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorDecidYRTrees+8]
fstp dword [rsi+38]
jmp return
notDecidYRTrees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorDecidRTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorDecidRTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorDecidRTrees+8]
fstp dword [rsi+38]
jmp return
notDecidRTrees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidEmptyTrees
myloopDecidEmptyTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidEmptyTrees
loop myloopDecidEmptyTrees
jmp notDecidEmptyTrees
yepDecidEmptyTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorDecidEmptyTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorDecidEmptyTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorDecidEmptyTrees+8]
fstp dword [rsi+38]
jmp return
notDecidEmptyTrees:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorSpruceShortTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorSpruceShortTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorSpruceShortTrees+8]
fstp dword [rsi+38]
jmp return
notSpruceShortTrees:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorSpruceMiddleTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorSpruceMiddleTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorSpruceMiddleTrees+8]
fstp dword [rsi+38]
jmp return
notSpruceMiddleTrees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorSpruceTall1Trees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorSpruceTall1Trees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorSpruceTall1Trees+8]
fstp dword [rsi+38]
jmp return
notSpruceTall1Trees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorSpruceTall2Trees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorSpruceTall2Trees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorSpruceTall2Trees+8]
fstp dword [rsi+38]
jmp return
notSpruceTall2Trees:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorSpruceTall3Trees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorSpruceTall3Trees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorSpruceTall3Trees+8]
fstp dword [rsi+38]
jmp return
notSpruceTall3Trees:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorSpruceTall4Trees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorSpruceTall4Trees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorSpruceTall4Trees+8]
fstp dword [rsi+38]
jmp return
notSpruceTall4Trees:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorSpruceTall5Trees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorSpruceTall5Trees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorSpruceTall5Trees+8]
fstp dword [rsi+38]
jmp return
notSpruceTall5Trees:
xor rcx,rcx
mov cl,(int)54
mov rdi,CompareGrassG
myloopGrassG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassG
loop myloopGrassG
jmp notGrassG
yepGrassG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorGrassG]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorGrassG+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorGrassG+8]
fstp dword [rsi+38]
jmp return
notGrassG:
xor rcx,rcx
mov cl,(int)11
mov rdi,CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorGrassGLeaves]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorGrassGLeaves+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorGrassGLeaves+8]
fstp dword [rsi+38]
jmp return
notGrassGLeaves:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassY
myloopGrassY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorGrassY]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorGrassY+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorGrassY+8]
fstp dword [rsi+38]
jmp return
notGrassY:
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareGrassB
myloopGrassB:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassB
loop myloopGrassB
jmp notGrassB
yepGrassB:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorGrassB]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorGrassB+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorGrassB+8]
fstp dword [rsi+38]
jmp return
notGrassB:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorGrassFlowers]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorGrassFlowers+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorGrassFlowers+8]
fstp dword [rsi+38]
jmp return
notGrassFlowers:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorFallenLeaves]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorFallenLeaves+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorFallenLeaves+8]
fstp dword [rsi+38]
jmp return
notFallenLeaves:
xor rcx,rcx
mov cl,(int)59
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorRocks]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorRocks+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorRocks+8]
fstp dword [rsi+38]
jmp return
notRocks:
xor rcx,rcx
mov cl,(int)25
mov rdi,CompareCornField1
myloopCornField1:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorCornField1]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorCornField1+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorCornField1+8]
fstp dword [rsi+38]
jmp return
notCornField1:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesY
myloopBushesY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorBushesY]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorBushesY+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorBushesY+8]
fstp dword [rsi+38]
jmp return
notBushesY:
xor rcx,rcx
mov cl,(int)12
mov rdi,CompareBushesYG
myloopBushesYG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorBushesYG]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorBushesYG+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorBushesYG+8]
fstp dword [rsi+38]
jmp return
notBushesYG:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorBushesBrown]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorBushesBrown+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorBushesBrown+8]
fstp dword [rsi+38]
jmp return
notBushesBrown:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorBushesEmpty]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorBushesEmpty+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorBushesEmpty+8]
fstp dword [rsi+38]
jmp return
notBushesEmpty:
xor rcx,rcx
mov cl,(int)49
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp notLogs
yepLogs:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorLogs]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorLogs+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorLogs+8]
fstp dword [rsi+38]
jmp return
notLogs:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareBulrush
myloopBulrush:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [colorBulrush]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [colorBulrush+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [colorBulrush+8]
fstp dword [rsi+38]
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
mov eax,[rbp+24]
mov [rsi+34],eax
mov eax,[rbp+28]
mov [rsi+38],eax
jmp return
Color1:
jmp newmem
nop
nop
nop
db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
return:
registersymbol(Color1)
[DISABLE]
Color1:
db 8B 45 20 4C 8B 4C 24 50 48 8B 54 24 68 89 46 30 8B 45 24 89 46 34 8B 45 28 89 46 38
unregistersymbol(colorDecidGTrees)
unregistersymbol(colorDecidYGTrees)
unregistersymbol(colorDecidYRTrees)
unregistersymbol(colorDecidRTrees)
unregistersymbol(colorDecidEmptyTrees)
unregistersymbol(colorSpruceShortTrees)
unregistersymbol(colorSpruceMiddleTrees)
unregistersymbol(colorSpruceTall1Trees)
unregistersymbol(colorSpruceTall2Trees)
unregistersymbol(colorSpruceTall3Trees)
unregistersymbol(colorSpruceTall4Trees)
unregistersymbol(colorSpruceTall5Trees)
unregistersymbol(colorGrassG)
unregistersymbol(colorGrassGLeaves)
unregistersymbol(colorGrassY)
unregistersymbol(colorGrassB)
unregistersymbol(colorGrassFlowers)
unregistersymbol(colorFallenLeaves)
unregistersymbol(colorRocks)
unregistersymbol(colorCornField1)
unregistersymbol(colorBushesY)
unregistersymbol(colorBushesYG)
unregistersymbol(colorBushesBrown)
unregistersymbol(colorBushesEmpty)
unregistersymbol(colorLogs)
unregistersymbol(colorBulrush)
unregistersymbol(Color1)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+9495B3
"theHunterCotW_F.exe"+94958E: 49 63 39 - movsxd rdi,dword ptr [r9]
"theHunterCotW_F.exe"+949591: 44 8D 76 01 - lea r14d,[rsi+01]
"theHunterCotW_F.exe"+949595: 48 8B 5A 18 - mov rbx,[rdx+18]
"theHunterCotW_F.exe"+949599: 48 8B F7 - mov rsi,rdi
"theHunterCotW_F.exe"+94959C: 48 C1 E6 06 - shl rsi,06
"theHunterCotW_F.exe"+9495A0: 48 8B CD - mov rcx,rbp
"theHunterCotW_F.exe"+9495A3: 48 03 72 10 - add rsi,[rdx+10]
"theHunterCotW_F.exe"+9495A7: 48 8D 55 10 - lea rdx,[rbp+10]
"theHunterCotW_F.exe"+9495AB: 4C 8B C6 - mov r8,rsi
"theHunterCotW_F.exe"+9495AE: E8 ED 0D 00 00 - call theHunterCotW_F.exe+94A3A0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+9495B3: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+9495B6: 4C 8B 4C 24 50 - mov r9,[rsp+50]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+9495BB: 48 8B 54 24 68 - mov rdx,[rsp+68]
"theHunterCotW_F.exe"+9495C0: 89 46 30 - mov [rsi+30],eax
"theHunterCotW_F.exe"+9495C3: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+9495C6: 89 46 34 - mov [rsi+34],eax
"theHunterCotW_F.exe"+9495C9: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+9495CC: 89 46 38 - mov [rsi+38],eax
"theHunterCotW_F.exe"+9495CF: F3 0F 11 76 3C - movss [rsi+3C],xmm6
"theHunterCotW_F.exe"+9495D4: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+9495D7: 25 FF FF FF 1F - and eax,1FFFFFFF
"theHunterCotW_F.exe"+9495DC: 66 44 89 7C FB 04 - mov [rbx+rdi*8+04],r15w
}
71052
"Trees / Color Mult Hirschfelden"
Auto Assembler Script
[ENABLE]
aobscanmodule(Color2,theHunterCotW_F.exe,8B 45 20 4C 8B 4C 24 50 89) // should be unique
alloc(newmem,$2000,"theHunterCotW_F.exe"+94966C)
label(code)
label(return)
newmem:
push ecx
push edi
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorDecidGTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorDecidGTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorDecidGTrees+8]
fstp dword [rbx+38]
jmp return
notDecidGTrees:
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorDecidYGTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorDecidYGTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorDecidYGTrees+8]
fstp dword [rbx+38]
jmp return
notDecidYGTrees:
xor rcx,rcx
mov cl,(int)6
mov rdi,CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorDecidYTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorDecidYTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorDecidYTrees+8]
fstp dword [rbx+38]
jmp return
notDecidYTrees:
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorDecidYRTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorDecidYRTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorDecidYRTrees+8]
fstp dword [rbx+38]
jmp return
notDecidYRTrees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorDecidRTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorDecidRTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorDecidRTrees+8]
fstp dword [rbx+38]
jmp return
notDecidRTrees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareDecidEmptyTrees
myloopDecidEmptyTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidEmptyTrees
loop myloopDecidEmptyTrees
jmp notDecidEmptyTrees
yepDecidEmptyTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorDecidEmptyTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorDecidEmptyTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorDecidEmptyTrees+8]
fstp dword [rbx+38]
jmp return
notDecidEmptyTrees:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorSpruceShortTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorSpruceShortTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorSpruceShortTrees+8]
fstp dword [rbx+38]
jmp return
notSpruceShortTrees:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorSpruceMiddleTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorSpruceMiddleTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorSpruceMiddleTrees+8]
fstp dword [rbx+38]
jmp return
notSpruceMiddleTrees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorSpruceTall1Trees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorSpruceTall1Trees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorSpruceTall1Trees+8]
fstp dword [rbx+38]
jmp return
notSpruceTall1Trees:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorSpruceTall2Trees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorSpruceTall2Trees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorSpruceTall2Trees+8]
fstp dword [rbx+38]
jmp return
notSpruceTall2Trees:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorSpruceTall3Trees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorSpruceTall3Trees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorSpruceTall3Trees+8]
fstp dword [rbx+38]
jmp return
notSpruceTall3Trees:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorSpruceTall4Trees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorSpruceTall4Trees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorSpruceTall4Trees+8]
fstp dword [rbx+38]
jmp return
notSpruceTall4Trees:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorSpruceTall5Trees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorSpruceTall5Trees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorSpruceTall5Trees+8]
fstp dword [rbx+38]
jmp return
notSpruceTall5Trees:
xor rcx,rcx
mov cl,(int)54
mov rdi,CompareGrassG
myloopGrassG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassG
loop myloopGrassG
jmp notGrassG
yepGrassG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorGrassG]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorGrassG+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorGrassG+8]
fstp dword [rbx+38]
jmp return
notGrassG:
xor rcx,rcx
mov cl,(int)11
mov rdi,CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorGrassGLeaves]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorGrassGLeaves+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorGrassGLeaves+8]
fstp dword [rbx+38]
jmp return
notGrassGLeaves:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassY
myloopGrassY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorGrassY]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorGrassY+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorGrassY+8]
fstp dword [rbx+38]
jmp return
notGrassY:
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareGrassB
myloopGrassB:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassB
loop myloopGrassB
jmp notGrassB
yepGrassB:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorGrassB]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorGrassB+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorGrassB+8]
fstp dword [rbx+38]
jmp return
notGrassB:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorGrassFlowers]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorGrassFlowers+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorGrassFlowers+8]
fstp dword [rbx+38]
jmp return
notGrassFlowers:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorFallenLeaves]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorFallenLeaves+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorFallenLeaves+8]
fstp dword [rbx+38]
jmp return
notFallenLeaves:
xor rcx,rcx
mov cl,(int)59
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorRocks]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorRocks+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorRocks+8]
fstp dword [rbx+38]
jmp return
notRocks:
xor rcx,rcx
mov cl,(int)25
mov rdi,CompareCornField1
myloopCornField1:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorCornField1]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorCornField1+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorCornField1+8]
fstp dword [rbx+38]
jmp return
notCornField1:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesY
myloopBushesY:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorBushesY]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorBushesY+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorBushesY+8]
fstp dword [rbx+38]
jmp return
notBushesY:
xor rcx,rcx
mov cl,(int)12
mov rdi,CompareBushesYG
myloopBushesYG:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorBushesYG]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorBushesYG+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorBushesYG+8]
fstp dword [rbx+38]
jmp return
notBushesYG:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorBushesBrown]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorBushesBrown+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorBushesBrown+8]
fstp dword [rbx+38]
jmp return
notBushesBrown:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorBushesEmpty]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorBushesEmpty+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorBushesEmpty+8]
fstp dword [rbx+38]
jmp return
notBushesEmpty:
xor rcx,rcx
mov cl,(int)49
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp notLogs
yepLogs:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorLogs]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorLogs+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorLogs+8]
fstp dword [rbx+38]
jmp return
notLogs:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareBulrush
myloopBulrush:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [colorBulrush]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [colorBulrush+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [colorBulrush+8]
fstp dword [rbx+38]
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
mov eax,[rbp+24]
mov [rbx+34],eax
mov eax,[rbp+28]
mov [rbx+38],eax
jmp return
Color2:
jmp newmem
nop
nop
nop
db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
return:
registersymbol(Color2)
[DISABLE]
Color2:
db 8B 45 20 4C 8B 4C 24 50 89 43 30 8B 45 24 89 43 34 8B 45 28 89 43 38
unregistersymbol(Color2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+94966C
"theHunterCotW_F.exe"+949646: 0F 10 46 20 - movups xmm0,[rsi+20]
"theHunterCotW_F.exe"+94964A: 0F 11 43 20 - movups [rbx+20],xmm0
"theHunterCotW_F.exe"+94964E: F2 0F 10 4E 30 - movsd xmm1,[rsi+30]
"theHunterCotW_F.exe"+949653: F2 0F 11 4B 30 - movsd [rbx+30],xmm1
"theHunterCotW_F.exe"+949658: 8B 46 38 - mov eax,[rsi+38]
"theHunterCotW_F.exe"+94965B: EB 23 - jmp theHunterCotW_F.exe+949680
"theHunterCotW_F.exe"+94965D: 48 8D 55 10 - lea rdx,[rbp+10]
"theHunterCotW_F.exe"+949661: 4C 8B C3 - mov r8,rbx
"theHunterCotW_F.exe"+949664: 48 8B CD - mov rcx,rbp
"theHunterCotW_F.exe"+949667: E8 34 0D 00 00 - call theHunterCotW_F.exe+94A3A0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+94966C: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+94966F: 4C 8B 4C 24 50 - mov r9,[rsp+50]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+949674: 89 43 30 - mov [rbx+30],eax
"theHunterCotW_F.exe"+949677: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+94967A: 89 43 34 - mov [rbx+34],eax
"theHunterCotW_F.exe"+94967D: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+949680: 89 43 38 - mov [rbx+38],eax
"theHunterCotW_F.exe"+949683: F3 0F 11 73 3C - movss [rbx+3C],xmm6
"theHunterCotW_F.exe"+949688: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+94968B: 25 FF FF FF 1F - and eax,1FFFFFFF
"theHunterCotW_F.exe"+949690: 66 44 89 67 04 - mov [rdi+04],r12w
"theHunterCotW_F.exe"+949695: 89 07 - mov [rdi],eax
}
71053
"Grass / Color Mult Hirschfelden"
000000
Auto Assembler Script
[ENABLE]
alloc(2grassColorMoss,12)
alloc(2grassColorDecidGreen1,12)
alloc(2grassColorDecidGreen2,12)
alloc(2grassColorDecidGreen3,12)
alloc(2grassColorSimpleGreen1,12)
alloc(2grassColorSimpleGreen2,12)
alloc(2grassColorSimpleGreenApart,12)
alloc(2grassColorSimpleGreenApartDry,12)
alloc(2grassColorRedGreen,12)
alloc(2grassColorGrassGLeaves,12)
alloc(2grassColorGrassY,12)
alloc(2grassColorGrassB1,12)
alloc(2grassColorGrassB2,12)
alloc(2grassColorGrassFlowers,12)
alloc(2grassColorFallenLeaves,12)
alloc(2grassColorCornField1,12)
alloc(2grassColorBulrush,12)
2grassColorMoss:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorDecidGreen1:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorDecidGreen2:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorDecidGreen3:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorSimpleGreen1:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorSimpleGreen2:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorSimpleGreenApart:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorSimpleGreenApartDry:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorRedGreen:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorGrassGLeaves:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorGrassY:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorGrassB1:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorGrassB2:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorGrassFlowers:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorFallenLeaves:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorCornField1:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
2grassColorBulrush:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
registersymbol(2grassColorMoss)
registersymbol(2grassColorDecidGreen1)
registersymbol(2grassColorDecidGreen2)
registersymbol(2grassColorDecidGreen3)
registersymbol(2grassColorSimpleGreen1)
registersymbol(2grassColorSimpleGreen2)
registersymbol(2grassColorSimpleGreenApart)
registersymbol(2grassColorSimpleGreenApartDry)
registersymbol(2grassColorRedGreen)
registersymbol(2grassColorGrassGLeaves)
registersymbol(2grassColorGrassY)
registersymbol(2grassColorGrassB1)
registersymbol(2grassColorGrassB2)
registersymbol(2grassColorGrassFlowers)
registersymbol(2grassColorFallenLeaves)
registersymbol(2grassColorCornField1)
registersymbol(2grassColorBulrush)
aobscanmodule(Colors111,theHunterCotW_F.exe,89 11 01 0F 10 87 DC 00 00 00) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F445D)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareMoss
myloopMoss:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepMoss
loop myloopMoss
jmp notMoss
yepMoss:
pop ebp
pop ecx
movups xmm0,[2grassColorMoss]
jmp return
notMoss:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGreen1
myloopDecidGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen1
loop myloopDecidGreen1
jmp notDecidGreen1
yepDecidGreen1:
pop ebp
pop ecx
movups xmm0,[2grassColorDecidGreen1]
jmp return
notDecidGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidGreen2
myloopDecidGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen2
loop myloopDecidGreen2
jmp notDecidGreen2
yepDecidGreen2:
pop ebp
pop ecx
movups xmm0,[2grassColorDecidGreen2]
jmp return
notDecidGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareDecidGreen3
myloopDecidGreen3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen3
loop myloopDecidGreen3
jmp notDecidGreen3
yepDecidGreen3:
pop ebp
pop ecx
movups xmm0,[2grassColorDecidGreen3]
jmp return
notDecidGreen3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSimpleGreen1
myloopSimpleGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen1
loop myloopSimpleGreen1
jmp notSimpleGreen1
yepSimpleGreen1:
pop ebp
pop ecx
movups xmm0,[2grassColorSimpleGreen1]
jmp return
notSimpleGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSimpleGreen2
myloopSimpleGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen2
loop myloopSimpleGreen2
jmp notSimpleGreen2
yepSimpleGreen2:
pop ebp
pop ecx
movups xmm0,[2grassColorSimpleGreen2]
jmp return
notSimpleGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApart
myloopSimpleGreenApart:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApart
loop myloopSimpleGreenApart
jmp notSimpleGreenApart
yepSimpleGreenApart:
pop ebp
pop ecx
movups xmm0,[2grassColorSimpleGreenApart]
jmp return
notSimpleGreenApart:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApartDry
myloopSimpleGreenApartDry:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApartDry
loop myloopSimpleGreenApartDry
jmp notSimpleGreenApartDry
yepSimpleGreenApartDry:
pop ebp
pop ecx
movups xmm0,[2grassColorSimpleGreenApartDry]
jmp return
notSimpleGreenApartDry:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareRedGreen
myloopRedGreen:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepRedGreen
loop myloopRedGreen
jmp notRedGreen
yepRedGreen:
pop ebp
pop ecx
movups xmm0,[2grassColorRedGreen]
jmp return
notRedGreen:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop ebp
pop ecx
movups xmm0,[2grassColorGrassGLeaves]
jmp return
notGrassGLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareGrassY
myloopGrassY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop ebp
pop ecx
movups xmm0,[2grassColorGrassY]
jmp return
notGrassY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareGrassB1
myloopGrassB1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB1
loop myloopGrassB1
jmp notGrassB1
yepGrassB1:
pop ebp
pop ecx
movups xmm0,[2grassColorGrassB1]
jmp return
notGrassB1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassB2
myloopGrassB2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB2
loop myloopGrassB2
jmp notGrassB2
yepGrassB2:
pop ebp
pop ecx
movups xmm0,[2grassColorGrassB2]
jmp return
notGrassB2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop ebp
pop ecx
movups xmm0,[2grassColorGrassFlowers]
jmp return
notGrassFlowers:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop ebp
pop ecx
movups xmm0,[2grassColorFallenLeaves]
jmp return
notFallenLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)29
mov rbp,2CompareCornField1
myloopCornField1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop ebp
pop ecx
movups xmm0,[2grassColorCornField1]
jmp return
notCornField1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareBulrush
myloopBulrush:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop ebp
pop ecx
movups xmm0,[2grassColorBulrush]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rdi+000000DC]
jmp return
Colors111+03:
jmp newmem
nop
nop
return:
registersymbol(Colors111)
[DISABLE]
Colors111+03:
db 0F 10 87 DC 00 00 00
unregistersymbol(2grassColorMoss)
unregistersymbol(2grassColorDecidGreen1)
unregistersymbol(2grassColorDecidGreen2)
unregistersymbol(2grassColorDecidGreen3)
unregistersymbol(2grassColorSimpleGreen1)
unregistersymbol(2grassColorSimpleGreen2)
unregistersymbol(2grassColorSimpleGreenApart)
unregistersymbol(2grassColorSimpleGreenApartDry)
unregistersymbol(2grassColorRedGreen)
unregistersymbol(2grassColorGrassGLeaves)
unregistersymbol(2grassColorGrassY)
unregistersymbol(2grassColorGrassB1)
unregistersymbol(2grassColorGrassB2)
unregistersymbol(2grassColorGrassFlowers)
unregistersymbol(2grassColorFallenLeaves)
unregistersymbol(2grassColorCornField1)
unregistersymbol(2grassColorBulrush)
unregistersymbol(Colors111)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F445D
"theHunterCotW_F.exe"+F442C: F3 0F 11 45 30 - movss [rbp+30],xmm0
"theHunterCotW_F.exe"+F4431: F3 0F 11 4D 34 - movss [rbp+34],xmm1
"theHunterCotW_F.exe"+F4436: F3 0F 11 55 38 - movss [rbp+38],xmm2
"theHunterCotW_F.exe"+F443B: F3 0F 11 5D 3C - movss [rbp+3C],xmm3
"theHunterCotW_F.exe"+F4440: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+F4448: 4C 8D 4D 30 - lea r9,[rbp+30]
"theHunterCotW_F.exe"+F444C: BA 01 00 00 00 - mov edx,00000001
"theHunterCotW_F.exe"+F4451: 44 8D 42 01 - lea r8d,[rdx+01]
"theHunterCotW_F.exe"+F4455: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+F4458: E8 73 89 11 01 - call theHunterCotW_F.exe+120CDD0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F445D: 0F 10 87 DC 00 00 00 - movups xmm0,[rdi+000000DC]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F4464: 0F 11 45 20 - movups [rbp+20],xmm0
"theHunterCotW_F.exe"+F4468: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+F4470: 4C 8D 4D 20 - lea r9,[rbp+20]
"theHunterCotW_F.exe"+F4474: BA 01 00 00 00 - mov edx,00000001
"theHunterCotW_F.exe"+F4479: 44 8D 42 02 - lea r8d,[rdx+02]
"theHunterCotW_F.exe"+F447D: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+F4480: E8 4B 89 11 01 - call theHunterCotW_F.exe+120CDD0
"theHunterCotW_F.exe"+F4485: 48 8B 0D 5C CF CD 01 - mov rcx,[theHunterCotW_F.exe+1DD13E8]
"theHunterCotW_F.exe"+F448C: 0F B6 81 72 15 00 00 - movzx eax,byte ptr [rcx+00001572]
"theHunterCotW_F.exe"+F4493: 66 0F 6E C0 - movd xmm0,eax
}
71054
"Grass Trees Bushes / Wet Glow SSS Hirschfelden"
Auto Assembler Script
[ENABLE]
alloc(SSS_DecidGTrees,16)
alloc(SSS_DecidYGTrees,16)
alloc(SSS_DecidYTrees,16)
alloc(SSS_DecidYRTrees,16)
alloc(SSS_DecidRTrees,16)
alloc(SSS_SpruceShortTrees,16)
alloc(SSS_SpruceMiddleTrees,16)
alloc(SSS_SpruceTall1Trees,16)
alloc(SSS_SpruceTall2Trees,16)
alloc(SSS_SpruceTall3Trees,16)
alloc(SSS_SpruceTall4Trees,16)
alloc(SSS_SpruceTall5Trees,16)
alloc(SSS_BushesY,16)
alloc(SSS_BushesYG,16)
alloc(SSS_BushesBrown,16)
alloc(SSS_BushesEmpty,16)
alloc(2grassSSS_Moss,16)
alloc(2grassSSS_DecidGreen1,16)
alloc(2grassSSS_DecidGreen2,16)
alloc(2grassSSS_DecidGreen3,16)
alloc(2grassSSS_SimpleGreen1,16)
alloc(2grassSSS_SimpleGreen2,16)
alloc(2grassSSS_SimpleGreenApart,16)
alloc(2grassSSS_SimpleGreenApartDry,16)
alloc(2grassSSS_RedGreen,16)
alloc(2grassSSS_GrassGLeaves,16)
alloc(2grassSSS_GrassY,16)
alloc(2grassSSS_GrassB1,16)
alloc(2grassSSS_GrassB2,16)
alloc(2grassSSS_GrassFlowers,16)
alloc(2grassSSS_FallenLeaves,16)
alloc(2grassSSS_CornField1,16)
alloc(2grassSSS_Bulrush,16)
SSS_DecidGTrees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_DecidYGTrees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_DecidYTrees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_DecidYRTrees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_DecidRTrees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_SpruceShortTrees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_SpruceMiddleTrees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_SpruceTall1Trees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_SpruceTall2Trees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_SpruceTall3Trees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_SpruceTall4Trees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_SpruceTall5Trees:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_BushesY:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_BushesYG:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_BushesBrown:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
SSS_BushesEmpty:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_Moss:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_DecidGreen1:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_DecidGreen2:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_DecidGreen3:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_SimpleGreen1:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_SimpleGreen2:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_SimpleGreenApart:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_SimpleGreenApartDry:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_RedGreen:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_GrassGLeaves:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_GrassY:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_GrassB1:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_GrassB2:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_GrassFlowers:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_FallenLeaves:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_CornField1:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
2grassSSS_Bulrush:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
registersymbol(SSS_DecidGTrees)
registersymbol(SSS_DecidYGTrees)
registersymbol(SSS_DecidYTrees)
registersymbol(SSS_DecidYRTrees)
registersymbol(SSS_DecidRTrees)
registersymbol(SSS_SpruceShortTrees)
registersymbol(SSS_SpruceMiddleTrees)
registersymbol(SSS_SpruceTall1Trees)
registersymbol(SSS_SpruceTall2Trees)
registersymbol(SSS_SpruceTall3Trees)
registersymbol(SSS_SpruceTall4Trees)
registersymbol(SSS_SpruceTall5Trees)
registersymbol(SSS_BushesY)
registersymbol(SSS_BushesYG)
registersymbol(SSS_BushesBrown)
registersymbol(SSS_BushesEmpty)
registersymbol(2grassSSS_Moss)
registersymbol(2grassSSS_DecidGreen1)
registersymbol(2grassSSS_DecidGreen2)
registersymbol(2grassSSS_DecidGreen3)
registersymbol(2grassSSS_SimpleGreen1)
registersymbol(2grassSSS_SimpleGreen2)
registersymbol(2grassSSS_SimpleGreenApart)
registersymbol(2grassSSS_SimpleGreenApartDry)
registersymbol(2grassSSS_RedGreen)
registersymbol(2grassSSS_GrassGLeaves)
registersymbol(2grassSSS_GrassY)
registersymbol(2grassSSS_GrassB1)
registersymbol(2grassSSS_GrassB2)
registersymbol(2grassSSS_GrassFlowers)
registersymbol(2grassSSS_FallenLeaves)
registersymbol(2grassSSS_CornField1)
registersymbol(2grassSSS_Bulrush)
aobscanmodule(grassWetSSS,theHunterCotW_F.exe,0F 10 86 C4 00 00 00 0F) // should be unique
alloc(newmem,$2000,"theHunterCotW_F.exe"+1115A5)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop ebp
pop ecx
movups xmm0,[SSS_DecidGTrees]
jmp return
notDecidGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop ebp
pop ecx
movups xmm0,[SSS_DecidYGTrees]
jmp return
notDecidYGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop ebp
pop ecx
movups xmm0,[SSS_DecidYTrees]
jmp return
notDecidYTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)24
mov rbp,2CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop ebp
pop ecx
movups xmm0,[SSS_DecidYRTrees]
jmp return
notDecidYRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,2CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop ebp
pop ecx
movups xmm0,[SSS_DecidRTrees]
jmp return
notDecidRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop ebp
pop ecx
movups xmm0,[SSS_SpruceShortTrees]
jmp return
notSpruceShortTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop ebp
pop ecx
movups xmm0,[SSS_SpruceMiddleTrees]
jmp return
notSpruceMiddleTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop ebp
pop ecx
movups xmm0,[SSS_SpruceTall1Trees]
jmp return
notSpruceTall1Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop ebp
pop ecx
movups xmm0,[SSS_SpruceTall2Trees]
jmp return
notSpruceTall2Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop ebp
pop ecx
movups xmm0,[SSS_SpruceTall3Trees]
jmp return
notSpruceTall3Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop ebp
pop ecx
movups xmm0,[SSS_SpruceTall4Trees]
jmp return
notSpruceTall4Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop ebp
pop ecx
movups xmm0,[SSS_SpruceTall5Trees]
jmp return
notSpruceTall5Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareBushesY
myloopBushesY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop ebp
pop ecx
movups xmm0,[SSS_BushesY]
jmp return
notBushesY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)32
mov rbp,2CompareBushesYG
myloopBushesYG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop ebp
pop ecx
movups xmm0,[SSS_BushesYG]
jmp return
notBushesYG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)13
mov rbp,2CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop ebp
pop ecx
movups xmm0,[SSS_BushesBrown]
jmp return
notBushesBrown:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)1
mov rbp,2CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop ebp
pop ecx
movups xmm0,[SSS_BushesEmpty]
jmp return
notBushesEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareMoss
myloopMoss:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepMoss
loop myloopMoss
jmp notMoss
yepMoss:
pop ebp
pop ecx
movups xmm0,[2grassSSS_Moss]
jmp return
notMoss:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGreen1
myloopDecidGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidGreen1
loop myloopDecidGreen1
jmp notDecidGreen1
yepDecidGreen1:
pop ebp
pop ecx
movups xmm0,[2grassSSS_DecidGreen1]
jmp return
notDecidGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidGreen2
myloopDecidGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidGreen2
loop myloopDecidGreen2
jmp notDecidGreen2
yepDecidGreen2:
pop ebp
pop ecx
movups xmm0,[2grassSSS_DecidGreen2]
jmp return
notDecidGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareDecidGreen3
myloopDecidGreen3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidGreen3
loop myloopDecidGreen3
jmp notDecidGreen3
yepDecidGreen3:
pop ebp
pop ecx
movups xmm0,[2grassSSS_DecidGreen3]
jmp return
notDecidGreen3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSimpleGreen1
myloopSimpleGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSimpleGreen1
loop myloopSimpleGreen1
jmp notSimpleGreen1
yepSimpleGreen1:
pop ebp
pop ecx
movups xmm0,[2grassSSS_SimpleGreen1]
jmp return
notSimpleGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSimpleGreen2
myloopSimpleGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSimpleGreen2
loop myloopSimpleGreen2
jmp notSimpleGreen2
yepSimpleGreen2:
pop ebp
pop ecx
movups xmm0,[2grassSSS_SimpleGreen2]
jmp return
notSimpleGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApart
myloopSimpleGreenApart:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSimpleGreenApart
loop myloopSimpleGreenApart
jmp notSimpleGreenApart
yepSimpleGreenApart:
pop ebp
pop ecx
movups xmm0,[2grassSSS_SimpleGreenApart]
jmp return
notSimpleGreenApart:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApartDry
myloopSimpleGreenApartDry:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSimpleGreenApartDry
loop myloopSimpleGreenApartDry
jmp notSimpleGreenApartDry
yepSimpleGreenApartDry:
pop ebp
pop ecx
movups xmm0,[2grassSSS_SimpleGreenApartDry]
jmp return
notSimpleGreenApartDry:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareRedGreen
myloopRedGreen:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepRedGreen
loop myloopRedGreen
jmp notRedGreen
yepRedGreen:
pop ebp
pop ecx
movups xmm0,[2grassSSS_RedGreen]
jmp return
notRedGreen:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop ebp
pop ecx
movups xmm0,[2grassSSS_GrassGLeaves]
jmp return
notGrassGLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareGrassY
myloopGrassY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop ebp
pop ecx
movups xmm0,[2grassSSS_GrassY]
jmp return
notGrassY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareGrassB1
myloopGrassB1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrassB1
loop myloopGrassB1
jmp notGrassB1
yepGrassB1:
pop ebp
pop ecx
movups xmm0,[2grassSSS_GrassB1]
jmp return
notGrassB1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassB2
myloopGrassB2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrassB2
loop myloopGrassB2
jmp notGrassB2
yepGrassB2:
pop ebp
pop ecx
movups xmm0,[2grassSSS_GrassB2]
jmp return
notGrassB2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop ebp
pop ecx
movups xmm0,[2grassSSS_GrassFlowers]
jmp return
notGrassFlowers:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop ebp
pop ecx
movups xmm0,[2grassSSS_FallenLeaves]
jmp return
notFallenLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)29
mov rbp,2CompareCornField1
myloopCornField1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop ebp
pop ecx
movups xmm0,[2grassSSS_CornField1]
jmp return
notCornField1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareBulrush
myloopBulrush:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop ebp
pop ecx
movups xmm0,[2grassSSS_Bulrush]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rsi+000000C4]
jmp return
grassWetSSS:
jmp newmem
nop
nop
return:
registersymbol(grassWetSSS)
[DISABLE]
grassWetSSS:
db 0F 10 86 C4 00 00 00
unregistersymbol(SSS_DecidGTrees)
unregistersymbol(SSS_DecidYGTrees)
unregistersymbol(SSS_DecidYTrees)
unregistersymbol(SSS_DecidYRTrees)
unregistersymbol(SSS_DecidRTrees)
unregistersymbol(SSS_SpruceShortTrees)
unregistersymbol(SSS_SpruceMiddleTrees)
unregistersymbol(SSS_SpruceTall1Trees)
unregistersymbol(SSS_SpruceTall2Trees)
unregistersymbol(SSS_SpruceTall3Trees)
unregistersymbol(SSS_SpruceTall4Trees)
unregistersymbol(SSS_SpruceTall5Trees)
unregistersymbol(SSS_BushesY)
unregistersymbol(SSS_BushesYG)
unregistersymbol(SSS_BushesBrown)
unregistersymbol(SSS_BushesEmpty)
unregistersymbol(2grassSSS_Moss)
unregistersymbol(2grassSSS_DecidGreen1)
unregistersymbol(2grassSSS_DecidGreen2)
unregistersymbol(2grassSSS_DecidGreen3)
unregistersymbol(2grassSSS_SimpleGreen1)
unregistersymbol(2grassSSS_SimpleGreen2)
unregistersymbol(2grassSSS_SimpleGreenApart)
unregistersymbol(2grassSSS_SimpleGreenApartDry)
unregistersymbol(2grassSSS_RedGreen)
unregistersymbol(2grassSSS_GrassGLeaves)
unregistersymbol(2grassSSS_GrassY)
unregistersymbol(2grassSSS_GrassB1)
unregistersymbol(2grassSSS_GrassB2)
unregistersymbol(2grassSSS_GrassFlowers)
unregistersymbol(2grassSSS_FallenLeaves)
unregistersymbol(2grassSSS_CornField1)
unregistersymbol(2grassSSS_Bulrush)
unregistersymbol(grassWetSSS)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+1115A5
"theHunterCotW_F.exe"+111579: 48 8B CB - mov rcx,rbx
"theHunterCotW_F.exe"+11157C: E8 FF CC 0F 01 - call theHunterCotW_F.exe+120E280
"theHunterCotW_F.exe"+111581: 48 8B 15 90 A7 D4 01 - mov rdx,[theHunterCotW_F.exe+1E5BD18]
"theHunterCotW_F.exe"+111588: 48 8B CB - mov rcx,rbx
"theHunterCotW_F.exe"+11158B: 83 FF 02 - cmp edi,02
"theHunterCotW_F.exe"+11158E: 75 09 - jne theHunterCotW_F.exe+111599
"theHunterCotW_F.exe"+111590: 48 8B 92 38 02 00 00 - mov rdx,[rdx+00000238]
"theHunterCotW_F.exe"+111597: EB 07 - jmp theHunterCotW_F.exe+1115A0
"theHunterCotW_F.exe"+111599: 48 8B 92 20 02 00 00 - mov rdx,[rdx+00000220]
"theHunterCotW_F.exe"+1115A0: E8 1B BE 0F 01 - call theHunterCotW_F.exe+120D3C0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+1115A5: 0F 10 86 C4 00 00 00 - movups xmm0,[rsi+000000C4]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+1115AC: 0F 11 44 24 38 - movups [rsp+38],xmm0
"theHunterCotW_F.exe"+1115B1: 89 6C 24 20 - mov [rsp+20],ebp
"theHunterCotW_F.exe"+1115B5: 4C 8D 4C 24 38 - lea r9,[rsp+38]
"theHunterCotW_F.exe"+1115BA: 44 8B C5 - mov r8d,ebp
"theHunterCotW_F.exe"+1115BD: 8B D5 - mov edx,ebp
"theHunterCotW_F.exe"+1115BF: 48 8B CB - mov rcx,rbx
"theHunterCotW_F.exe"+1115C2: E8 09 B8 0F 01 - call theHunterCotW_F.exe+120CDD0
"theHunterCotW_F.exe"+1115C7: 41 F6 85 30 07 00 00 80 - test byte ptr [r13+00000730],-80
"theHunterCotW_F.exe"+1115CF: 0F 85 93 00 00 00 - jne theHunterCotW_F.exe+111668
"theHunterCotW_F.exe"+1115D5: 45 84 E4 - test r12l,r12l
}
71055
"Grass Trees Bushes / Snowy Hirschfelden"
Auto Assembler Script
[ENABLE]
alloc(Snowy_DecidGTrees,4)
alloc(Snowy_DecidYGTrees,4)
alloc(Snowy_DecidYTrees,4)
alloc(Snowy_DecidYRTrees,4)
alloc(Snowy_DecidRTrees,4)
alloc(Snowy_SpruceShortTrees,4)
alloc(Snowy_SpruceMiddleTrees,4)
alloc(Snowy_SpruceTall1Trees,4)
alloc(Snowy_SpruceTall2Trees,4)
alloc(Snowy_SpruceTall3Trees,4)
alloc(Snowy_SpruceTall4Trees,4)
alloc(Snowy_SpruceTall5Trees,4)
alloc(Snowy_BushesY,4)
alloc(Snowy_BushesYG,4)
alloc(Snowy_BushesBrown,4)
alloc(Snowy_BushesEmpty,4)
alloc(Snowy_Moss,4)
alloc(Snowy_DecidGreen1,4)
alloc(Snowy_DecidGreen2,4)
alloc(Snowy_DecidGreen3,4)
alloc(Snowy_SimpleGreen1,4)
alloc(Snowy_SimpleGreen2,4)
alloc(Snowy_SimpleGreenApart,4)
alloc(Snowy_SimpleGreenApartDry,4)
alloc(Snowy_RedGreen,4)
alloc(Snowy_GrassGLeaves,4)
alloc(Snowy_GrassY,4)
alloc(Snowy_GrassB1,4)
alloc(Snowy_GrassB2,4)
alloc(Snowy_GrassFlowers,4)
alloc(Snowy_FallenLeaves,4)
alloc(Snowy_CornField1,4)
alloc(Snowy_Bulrush,4)
Snowy_DecidGTrees:
dd (float)1
Snowy_DecidYGTrees:
dd (float)1
Snowy_DecidYTrees:
dd (float)1
Snowy_DecidYRTrees:
dd (float)1
Snowy_DecidRTrees:
dd (float)1
Snowy_SpruceShortTrees:
dd (float)1
Snowy_SpruceMiddleTrees:
dd (float)1
Snowy_SpruceTall1Trees:
dd (float)1
Snowy_SpruceTall2Trees:
dd (float)1
Snowy_SpruceTall3Trees:
dd (float)1
Snowy_SpruceTall4Trees:
dd (float)1
Snowy_SpruceTall5Trees:
dd (float)1
Snowy_BushesY:
dd (float)1
Snowy_BushesYG:
dd (float)1
Snowy_BushesBrown:
dd (float)1
Snowy_BushesEmpty:
dd (float)1
Snowy_Moss:
dd (float)1
Snowy_DecidGreen1:
dd (float)1
Snowy_DecidGreen2:
dd (float)1
Snowy_DecidGreen3:
dd (float)1
Snowy_SimpleGreen1:
dd (float)1
Snowy_SimpleGreen2:
dd (float)1
Snowy_SimpleGreenApart:
dd (float)1
Snowy_SimpleGreenApartDry:
dd (float)1
Snowy_RedGreen:
dd (float)1
Snowy_GrassGLeaves:
dd (float)1
Snowy_GrassY:
dd (float)1
Snowy_GrassB1:
dd (float)1
Snowy_GrassB2:
dd (float)1
Snowy_GrassFlowers:
dd (float)1
Snowy_FallenLeaves:
dd (float)1
Snowy_CornField1:
dd (float)1
Snowy_Bulrush:
dd (float)1
registersymbol(Snowy_DecidGTrees)
registersymbol(Snowy_DecidYGTrees)
registersymbol(Snowy_DecidYTrees)
registersymbol(Snowy_DecidYRTrees)
registersymbol(Snowy_DecidRTrees)
registersymbol(Snowy_SpruceShortTrees)
registersymbol(Snowy_SpruceMiddleTrees)
registersymbol(Snowy_SpruceTall1Trees)
registersymbol(Snowy_SpruceTall2Trees)
registersymbol(Snowy_SpruceTall3Trees)
registersymbol(Snowy_SpruceTall4Trees)
registersymbol(Snowy_SpruceTall5Trees)
registersymbol(Snowy_BushesY)
registersymbol(Snowy_BushesYG)
registersymbol(Snowy_BushesBrown)
registersymbol(Snowy_BushesEmpty)
registersymbol(Snowy_Moss)
registersymbol(Snowy_DecidGreen1)
registersymbol(Snowy_DecidGreen2)
registersymbol(Snowy_DecidGreen3)
registersymbol(Snowy_SimpleGreen1)
registersymbol(Snowy_SimpleGreen2)
registersymbol(Snowy_SimpleGreenApart)
registersymbol(Snowy_SimpleGreenApartDry)
registersymbol(Snowy_RedGreen)
registersymbol(Snowy_GrassGLeaves)
registersymbol(Snowy_GrassY)
registersymbol(Snowy_GrassB1)
registersymbol(Snowy_GrassB2)
registersymbol(Snowy_GrassFlowers)
registersymbol(Snowy_FallenLeaves)
registersymbol(Snowy_CornField1)
registersymbol(Snowy_Bulrush)
aobscanmodule(foliageSnow,theHunterCotW_F.exe,F3 0F 10 8F D8 00 00 00 F3 0F 10) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F441C)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidGTrees]
jmp return
notDecidGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidYGTrees]
jmp return
notDecidYGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidYTrees]
jmp return
notDecidYTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)24
mov rbp,2CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidYRTrees]
jmp return
notDecidYRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,2CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidRTrees]
jmp return
notDecidRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SpruceShortTrees]
jmp return
notSpruceShortTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SpruceMiddleTrees]
jmp return
notSpruceMiddleTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SpruceTall1Trees]
jmp return
notSpruceTall1Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SpruceTall2Trees]
jmp return
notSpruceTall2Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SpruceTall3Trees]
jmp return
notSpruceTall3Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SpruceTall4Trees]
jmp return
notSpruceTall4Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SpruceTall5Trees]
jmp return
notSpruceTall5Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareBushesY
myloopBushesY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_BushesY]
jmp return
notBushesY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)32
mov rbp,2CompareBushesYG
myloopBushesYG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_BushesYG]
jmp return
notBushesYG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)13
mov rbp,2CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_BushesBrown]
jmp return
notBushesBrown:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)1
mov rbp,2CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_BushesEmpty]
jmp return
notBushesEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareMoss
myloopMoss:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepMoss
loop myloopMoss
jmp notMoss
yepMoss:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_Moss]
jmp return
notMoss:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGreen1
myloopDecidGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen1
loop myloopDecidGreen1
jmp notDecidGreen1
yepDecidGreen1:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidGreen1]
jmp return
notDecidGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidGreen2
myloopDecidGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen2
loop myloopDecidGreen2
jmp notDecidGreen2
yepDecidGreen2:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidGreen2]
jmp return
notDecidGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareDecidGreen3
myloopDecidGreen3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen3
loop myloopDecidGreen3
jmp notDecidGreen3
yepDecidGreen3:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_DecidGreen3]
jmp return
notDecidGreen3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSimpleGreen1
myloopSimpleGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen1
loop myloopSimpleGreen1
jmp notSimpleGreen1
yepSimpleGreen1:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SimpleGreen1]
jmp return
notSimpleGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSimpleGreen2
myloopSimpleGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen2
loop myloopSimpleGreen2
jmp notSimpleGreen2
yepSimpleGreen2:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SimpleGreen2]
jmp return
notSimpleGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApart
myloopSimpleGreenApart:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApart
loop myloopSimpleGreenApart
jmp notSimpleGreenApart
yepSimpleGreenApart:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SimpleGreenApart]
jmp return
notSimpleGreenApart:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApartDry
myloopSimpleGreenApartDry:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApartDry
loop myloopSimpleGreenApartDry
jmp notSimpleGreenApartDry
yepSimpleGreenApartDry:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_SimpleGreenApartDry]
jmp return
notSimpleGreenApartDry:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareRedGreen
myloopRedGreen:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepRedGreen
loop myloopRedGreen
jmp notRedGreen
yepRedGreen:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_RedGreen]
jmp return
notRedGreen:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_GrassGLeaves]
jmp return
notGrassGLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareGrassY
myloopGrassY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_GrassY]
jmp return
notGrassY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareGrassB1
myloopGrassB1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB1
loop myloopGrassB1
jmp notGrassB1
yepGrassB1:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_GrassB1]
jmp return
notGrassB1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassB2
myloopGrassB2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB2
loop myloopGrassB2
jmp notGrassB2
yepGrassB2:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_GrassB2]
jmp return
notGrassB2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_GrassFlowers]
jmp return
notGrassFlowers:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_FallenLeaves]
jmp return
notFallenLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)29
mov rbp,2CompareCornField1
myloopCornField1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_CornField1]
jmp return
notCornField1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareBulrush
myloopBulrush:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[Snowy_Bulrush]
jmp return
code:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
jmp return
foliageSnow:
jmp newmem
nop
nop
nop
return:
registersymbol(foliageSnow)
[DISABLE]
foliageSnow:
db F3 0F 10 8F D8 00 00 00
unregistersymbol(Snowy_DecidGTrees)
unregistersymbol(Snowy_DecidYGTrees)
unregistersymbol(Snowy_DecidYTrees)
unregistersymbol(Snowy_DecidYRTrees)
unregistersymbol(Snowy_DecidRTrees)
unregistersymbol(Snowy_SpruceShortTrees)
unregistersymbol(Snowy_SpruceMiddleTrees)
unregistersymbol(Snowy_SpruceTall1Trees)
unregistersymbol(Snowy_SpruceTall2Trees)
unregistersymbol(Snowy_SpruceTall3Trees)
unregistersymbol(Snowy_SpruceTall4Trees)
unregistersymbol(Snowy_SpruceTall5Trees)
unregistersymbol(Snowy_BushesY)
unregistersymbol(Snowy_BushesYG)
unregistersymbol(Snowy_BushesBrown)
unregistersymbol(Snowy_BushesEmpty)
unregistersymbol(Snowy_Moss)
unregistersymbol(Snowy_DecidGreen1)
unregistersymbol(Snowy_DecidGreen2)
unregistersymbol(Snowy_DecidGreen3)
unregistersymbol(Snowy_SimpleGreen1)
unregistersymbol(Snowy_SimpleGreen2)
unregistersymbol(Snowy_SimpleGreenApart)
unregistersymbol(Snowy_SimpleGreenApartDry)
unregistersymbol(Snowy_RedGreen)
unregistersymbol(Snowy_GrassGLeaves)
unregistersymbol(Snowy_GrassY)
unregistersymbol(Snowy_GrassB1)
unregistersymbol(Snowy_GrassB2)
unregistersymbol(Snowy_GrassFlowers)
unregistersymbol(Snowy_FallenLeaves)
unregistersymbol(Snowy_CornField1)
unregistersymbol(Snowy_Bulrush)
unregistersymbol(foliageSnow)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F441C
"theHunterCotW_F.exe"+F43EF: 0F 28 05 DA E0 40 01 - movaps xmm0,[theHunterCotW_F.exe+15024D0]
"theHunterCotW_F.exe"+F43F6: 0F 11 44 24 40 - movups [rsp+40],xmm0
"theHunterCotW_F.exe"+F43FB: E9 40 03 00 00 - jmp theHunterCotW_F.exe+F4740
"theHunterCotW_F.exe"+F4400: 44 0F 28 C7 - movaps xmm8,xmm7
"theHunterCotW_F.exe"+F4404: 0F 28 DA - movaps xmm3,xmm2
"theHunterCotW_F.exe"+F4407: 48 85 DB - test rbx,rbx
"theHunterCotW_F.exe"+F440A: 74 10 - je theHunterCotW_F.exe+F441C
"theHunterCotW_F.exe"+F440C: F3 44 0F 10 43 20 - movss xmm8,[rbx+20]
"theHunterCotW_F.exe"+F4412: F3 0F 10 53 24 - movss xmm2,[rbx+24]
"theHunterCotW_F.exe"+F4417: F3 0F 10 5B 28 - movss xmm3,[rbx+28]
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F441C: F3 0F 10 8F D8 00 00 00 - movss xmm1,[rdi+000000D8]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F4424: F3 0F 10 87 D4 00 00 00 - movss xmm0,[rdi+000000D4]
"theHunterCotW_F.exe"+F442C: F3 0F 11 45 30 - movss [rbp+30],xmm0
"theHunterCotW_F.exe"+F4431: F3 0F 11 4D 34 - movss [rbp+34],xmm1
"theHunterCotW_F.exe"+F4436: F3 0F 11 55 38 - movss [rbp+38],xmm2
"theHunterCotW_F.exe"+F443B: F3 0F 11 5D 3C - movss [rbp+3C],xmm3
"theHunterCotW_F.exe"+F4440: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+F4448: 4C 8D 4D 30 - lea r9,[rbp+30]
"theHunterCotW_F.exe"+F444C: BA 01 00 00 00 - mov edx,00000001
"theHunterCotW_F.exe"+F4451: 44 8D 42 01 - lea r8d,[rdx+01]
"theHunterCotW_F.exe"+F4455: 48 8B CE - mov rcx,rsi
}
71056
"Grass Trees Bushes / Foliage Scale Hirschfelden"
Auto Assembler Script
[ENABLE]
alloc(Scale_DecidGTrees,4)
alloc(Scale_DecidYGTrees,4)
alloc(Scale_DecidYTrees,4)
alloc(Scale_DecidYRTrees,4)
alloc(Scale_DecidRTrees,4)
alloc(Scale_SpruceShortTrees,4)
alloc(Scale_SpruceMiddleTrees,4)
alloc(Scale_SpruceTall1Trees,4)
alloc(Scale_SpruceTall2Trees,4)
alloc(Scale_SpruceTall3Trees,4)
alloc(Scale_SpruceTall4Trees,4)
alloc(Scale_SpruceTall5Trees,4)
alloc(Scale_BushesY,4)
alloc(Scale_BushesYG,4)
alloc(Scale_BushesBrown,4)
alloc(Scale_BushesEmpty,4)
alloc(Scale_Moss,4)
alloc(Scale_DecidGreen1,4)
alloc(Scale_DecidGreen2,4)
alloc(Scale_DecidGreen3,4)
alloc(Scale_SimpleGreen1,4)
alloc(Scale_SimpleGreen2,4)
alloc(Scale_SimpleGreenApart,4)
alloc(Scale_SimpleGreenApartDry,4)
alloc(Scale_RedGreen,4)
alloc(Scale_GrassGLeaves,4)
alloc(Scale_GrassY,4)
alloc(Scale_GrassB1,4)
alloc(Scale_GrassB2,4)
alloc(Scale_GrassFlowers,4)
alloc(Scale_FallenLeaves,4)
alloc(Scale_CornField1,4)
alloc(Scale_Bulrush,4)
Scale_DecidGTrees:
dd (float)1
Scale_DecidYGTrees:
dd (float)1
Scale_DecidYTrees:
dd (float)1
Scale_DecidYRTrees:
dd (float)1
Scale_DecidRTrees:
dd (float)1
Scale_SpruceShortTrees:
dd (float)1
Scale_SpruceMiddleTrees:
dd (float)1
Scale_SpruceTall1Trees:
dd (float)1
Scale_SpruceTall2Trees:
dd (float)1
Scale_SpruceTall3Trees:
dd (float)1
Scale_SpruceTall4Trees:
dd (float)1
Scale_SpruceTall5Trees:
dd (float)1
Scale_BushesY:
dd (float)1
Scale_BushesYG:
dd (float)1
Scale_BushesBrown:
dd (float)1
Scale_BushesEmpty:
dd (float)1
Scale_Moss:
dd (float)1
Scale_DecidGreen1:
dd (float)1
Scale_DecidGreen2:
dd (float)1
Scale_DecidGreen3:
dd (float)1
Scale_SimpleGreen1:
dd (float)1
Scale_SimpleGreen2:
dd (float)1
Scale_SimpleGreenApart:
dd (float)1
Scale_SimpleGreenApartDry:
dd (float)1
Scale_RedGreen:
dd (float)1
Scale_GrassGLeaves:
dd (float)1
Scale_GrassY:
dd (float)1
Scale_GrassB1:
dd (float)1
Scale_GrassB2:
dd (float)1
Scale_GrassFlowers:
dd (float)1
Scale_FallenLeaves:
dd (float)1
Scale_CornField1:
dd (float)1
Scale_Bulrush:
dd (float)1
registersymbol(Scale_DecidGTrees)
registersymbol(Scale_DecidYGTrees)
registersymbol(Scale_DecidYTrees)
registersymbol(Scale_DecidYRTrees)
registersymbol(Scale_DecidRTrees)
registersymbol(Scale_SpruceShortTrees)
registersymbol(Scale_SpruceMiddleTrees)
registersymbol(Scale_SpruceTall1Trees)
registersymbol(Scale_SpruceTall2Trees)
registersymbol(Scale_SpruceTall3Trees)
registersymbol(Scale_SpruceTall4Trees)
registersymbol(Scale_SpruceTall5Trees)
registersymbol(Scale_BushesY)
registersymbol(Scale_BushesYG)
registersymbol(Scale_BushesBrown)
registersymbol(Scale_BushesEmpty)
registersymbol(Scale_Moss)
registersymbol(Scale_DecidGreen1)
registersymbol(Scale_DecidGreen2)
registersymbol(Scale_DecidGreen3)
registersymbol(Scale_SimpleGreen1)
registersymbol(Scale_SimpleGreen2)
registersymbol(Scale_SimpleGreenApart)
registersymbol(Scale_SimpleGreenApartDry)
registersymbol(Scale_RedGreen)
registersymbol(Scale_GrassGLeaves)
registersymbol(Scale_GrassY)
registersymbol(Scale_GrassB1)
registersymbol(Scale_GrassB2)
registersymbol(Scale_GrassFlowers)
registersymbol(Scale_FallenLeaves)
registersymbol(Scale_CornField1)
registersymbol(Scale_Bulrush)
aobscanmodule(Grass_Scale,theHunterCotW_F.exe,F3 0F 10 8F F0 00 00 00 F3 0F 11) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F480E)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidGTrees]
jmp return
notDecidGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidYGTrees]
jmp return
notDecidYGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidYTrees]
jmp return
notDecidYTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)24
mov rbp,2CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidYRTrees]
jmp return
notDecidYRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,2CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidRTrees]
jmp return
notDecidRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SpruceShortTrees]
jmp return
notSpruceShortTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SpruceMiddleTrees]
jmp return
notSpruceMiddleTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SpruceTall1Trees]
jmp return
notSpruceTall1Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SpruceTall2Trees]
jmp return
notSpruceTall2Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SpruceTall3Trees]
jmp return
notSpruceTall3Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SpruceTall4Trees]
jmp return
notSpruceTall4Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SpruceTall5Trees]
jmp return
notSpruceTall5Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareBushesY
myloopBushesY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_BushesY]
jmp return
notBushesY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)32
mov rbp,2CompareBushesYG
myloopBushesYG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_BushesYG]
jmp return
notBushesYG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)13
mov rbp,2CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_BushesBrown]
jmp return
notBushesBrown:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)1
mov rbp,2CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_BushesEmpty]
jmp return
notBushesEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareMoss
myloopMoss:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepMoss
loop myloopMoss
jmp notMoss
yepMoss:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_Moss]
jmp return
notMoss:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGreen1
myloopDecidGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen1
loop myloopDecidGreen1
jmp notDecidGreen1
yepDecidGreen1:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidGreen1]
jmp return
notDecidGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidGreen2
myloopDecidGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen2
loop myloopDecidGreen2
jmp notDecidGreen2
yepDecidGreen2:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidGreen2]
jmp return
notDecidGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareDecidGreen3
myloopDecidGreen3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen3
loop myloopDecidGreen3
jmp notDecidGreen3
yepDecidGreen3:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_DecidGreen3]
jmp return
notDecidGreen3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSimpleGreen1
myloopSimpleGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen1
loop myloopSimpleGreen1
jmp notSimpleGreen1
yepSimpleGreen1:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SimpleGreen1]
jmp return
notSimpleGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSimpleGreen2
myloopSimpleGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen2
loop myloopSimpleGreen2
jmp notSimpleGreen2
yepSimpleGreen2:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SimpleGreen2]
jmp return
notSimpleGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApart
myloopSimpleGreenApart:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApart
loop myloopSimpleGreenApart
jmp notSimpleGreenApart
yepSimpleGreenApart:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SimpleGreenApart]
jmp return
notSimpleGreenApart:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApartDry
myloopSimpleGreenApartDry:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApartDry
loop myloopSimpleGreenApartDry
jmp notSimpleGreenApartDry
yepSimpleGreenApartDry:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_SimpleGreenApartDry]
jmp return
notSimpleGreenApartDry:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareRedGreen
myloopRedGreen:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepRedGreen
loop myloopRedGreen
jmp notRedGreen
yepRedGreen:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_RedGreen]
jmp return
notRedGreen:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_GrassGLeaves]
jmp return
notGrassGLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareGrassY
myloopGrassY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_GrassY]
jmp return
notGrassY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareGrassB1
myloopGrassB1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB1
loop myloopGrassB1
jmp notGrassB1
yepGrassB1:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_GrassB1]
jmp return
notGrassB1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassB2
myloopGrassB2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB2
loop myloopGrassB2
jmp notGrassB2
yepGrassB2:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_GrassB2]
jmp return
notGrassB2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_GrassFlowers]
jmp return
notGrassFlowers:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_FallenLeaves]
jmp return
notFallenLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)29
mov rbp,2CompareCornField1
myloopCornField1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_CornField1]
jmp return
notCornField1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareBulrush
myloopBulrush:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[Scale_Bulrush]
jmp return
code:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
jmp return
Grass_Scale:
jmp newmem
nop
nop
nop
return:
registersymbol(Grass_Scale)
[DISABLE]
Grass_Scale:
db F3 0F 10 8F F0 00 00 00
unregistersymbol(Scale_DecidGTrees)
unregistersymbol(Scale_DecidYGTrees)
unregistersymbol(Scale_DecidYTrees)
unregistersymbol(Scale_DecidYRTrees)
unregistersymbol(Scale_DecidRTrees)
unregistersymbol(Scale_SpruceShortTrees)
unregistersymbol(Scale_SpruceMiddleTrees)
unregistersymbol(Scale_SpruceTall1Trees)
unregistersymbol(Scale_SpruceTall2Trees)
unregistersymbol(Scale_SpruceTall3Trees)
unregistersymbol(Scale_SpruceTall4Trees)
unregistersymbol(Scale_SpruceTall5Trees)
unregistersymbol(Scale_BushesY)
unregistersymbol(Scale_BushesYG)
unregistersymbol(Scale_BushesBrown)
unregistersymbol(Scale_BushesEmpty)
unregistersymbol(Scale_Moss)
unregistersymbol(Scale_DecidGreen1)
unregistersymbol(Scale_DecidGreen2)
unregistersymbol(Scale_DecidGreen3)
unregistersymbol(Scale_SimpleGreen1)
unregistersymbol(Scale_SimpleGreen2)
unregistersymbol(Scale_SimpleGreenApart)
unregistersymbol(Scale_SimpleGreenApartDry)
unregistersymbol(Scale_RedGreen)
unregistersymbol(Scale_GrassGLeaves)
unregistersymbol(Scale_GrassY)
unregistersymbol(Scale_GrassB1)
unregistersymbol(Scale_GrassB2)
unregistersymbol(Scale_GrassFlowers)
unregistersymbol(Scale_FallenLeaves)
unregistersymbol(Scale_CornField1)
unregistersymbol(Scale_Bulrush)
unregistersymbol(Grass_Scale)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F480E
"theHunterCotW_F.exe"+F47CC: 4D 8D 8E D8 00 00 00 - lea r9,[r14+000000D8]
"theHunterCotW_F.exe"+F47D3: C7 44 24 20 04 00 00 00 - mov [rsp+20],00000004
"theHunterCotW_F.exe"+F47DB: BA 02 00 00 00 - mov edx,00000002
"theHunterCotW_F.exe"+F47E0: 44 8D 42 02 - lea r8d,[rdx+02]
"theHunterCotW_F.exe"+F47E4: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+F47E7: E8 24 8F 11 01 - call theHunterCotW_F.exe+120D710
"theHunterCotW_F.exe"+F47EC: F3 0F 11 B5 80 00 00 00 - movss [rbp+00000080],xmm6
"theHunterCotW_F.exe"+F47F4: C7 85 84 00 00 00 00 00 00 00 - mov [rbp+00000084],00000000
"theHunterCotW_F.exe"+F47FE: F3 0F 10 87 EC 00 00 00 - movss xmm0,[rdi+000000EC]
"theHunterCotW_F.exe"+F4806: F3 0F 11 85 88 00 00 00 - movss [rbp+00000088],xmm0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F480E: F3 0F 10 8F F0 00 00 00 - movss xmm1,[rdi+000000F0]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F4816: F3 0F 11 8D 8C 00 00 00 - movss [rbp+0000008C],xmm1
"theHunterCotW_F.exe"+F481E: 48 85 DB - test rbx,rbx
"theHunterCotW_F.exe"+F4821: 74 59 - je theHunterCotW_F.exe+F487C
"theHunterCotW_F.exe"+F4823: 48 8B 4B 18 - mov rcx,[rbx+18]
"theHunterCotW_F.exe"+F4827: 0F B6 C1 - movzx eax,cl
"theHunterCotW_F.exe"+F482A: C0 E8 03 - shr al,03
"theHunterCotW_F.exe"+F482D: 0F 57 C0 - xorps xmm0,xmm0
"theHunterCotW_F.exe"+F4830: A8 01 - test al,01
"theHunterCotW_F.exe"+F4832: 74 1B - je theHunterCotW_F.exe+F484F
"theHunterCotW_F.exe"+F4834: 48 C1 E9 14 - shr rcx,14
}
71057
"Grass Trees Bushes / Foliage Scale 2 Hirschfelden"
Auto Assembler Script
[ENABLE]
aobscanmodule(Grass_Scale2,theHunterCotW_F.exe,F3 0F 10 87 F0 00 00 00 F3 0F 11 45 E3) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+FF4A8)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidGTrees]
jmp return
notDecidGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidYGTrees]
jmp return
notDecidYGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidYTrees]
jmp return
notDecidYTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)24
mov rbp,2CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidYRTrees]
jmp return
notDecidYRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,2CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidRTrees]
jmp return
notDecidRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SpruceShortTrees]
jmp return
notSpruceShortTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SpruceMiddleTrees]
jmp return
notSpruceMiddleTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SpruceTall1Trees]
jmp return
notSpruceTall1Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SpruceTall2Trees]
jmp return
notSpruceTall2Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SpruceTall3Trees]
jmp return
notSpruceTall3Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SpruceTall4Trees]
jmp return
notSpruceTall4Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SpruceTall5Trees]
jmp return
notSpruceTall5Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareBushesY
myloopBushesY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_BushesY]
jmp return
notBushesY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)32
mov rbp,2CompareBushesYG
myloopBushesYG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_BushesYG]
jmp return
notBushesYG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)13
mov rbp,2CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_BushesBrown]
jmp return
notBushesBrown:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)1
mov rbp,2CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_BushesEmpty]
jmp return
notBushesEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareMoss
myloopMoss:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepMoss
loop myloopMoss
jmp notMoss
yepMoss:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_Moss]
jmp return
notMoss:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGreen1
myloopDecidGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen1
loop myloopDecidGreen1
jmp notDecidGreen1
yepDecidGreen1:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidGreen1]
jmp return
notDecidGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidGreen2
myloopDecidGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen2
loop myloopDecidGreen2
jmp notDecidGreen2
yepDecidGreen2:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidGreen2]
jmp return
notDecidGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareDecidGreen3
myloopDecidGreen3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen3
loop myloopDecidGreen3
jmp notDecidGreen3
yepDecidGreen3:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_DecidGreen3]
jmp return
notDecidGreen3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSimpleGreen1
myloopSimpleGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen1
loop myloopSimpleGreen1
jmp notSimpleGreen1
yepSimpleGreen1:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SimpleGreen1]
jmp return
notSimpleGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSimpleGreen2
myloopSimpleGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen2
loop myloopSimpleGreen2
jmp notSimpleGreen2
yepSimpleGreen2:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SimpleGreen2]
jmp return
notSimpleGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApart
myloopSimpleGreenApart:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApart
loop myloopSimpleGreenApart
jmp notSimpleGreenApart
yepSimpleGreenApart:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SimpleGreenApart]
jmp return
notSimpleGreenApart:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApartDry
myloopSimpleGreenApartDry:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApartDry
loop myloopSimpleGreenApartDry
jmp notSimpleGreenApartDry
yepSimpleGreenApartDry:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_SimpleGreenApartDry]
jmp return
notSimpleGreenApartDry:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareRedGreen
myloopRedGreen:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepRedGreen
loop myloopRedGreen
jmp notRedGreen
yepRedGreen:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_RedGreen]
jmp return
notRedGreen:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_GrassGLeaves]
jmp return
notGrassGLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareGrassY
myloopGrassY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_GrassY]
jmp return
notGrassY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareGrassB1
myloopGrassB1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB1
loop myloopGrassB1
jmp notGrassB1
yepGrassB1:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_GrassB1]
jmp return
notGrassB1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassB2
myloopGrassB2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB2
loop myloopGrassB2
jmp notGrassB2
yepGrassB2:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_GrassB2]
jmp return
notGrassB2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_GrassFlowers]
jmp return
notGrassFlowers:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_FallenLeaves]
jmp return
notFallenLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)29
mov rbp,2CompareCornField1
myloopCornField1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_CornField1]
jmp return
notCornField1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareBulrush
myloopBulrush:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[Scale_Bulrush]
jmp return
code:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
jmp return
Grass_Scale2:
jmp newmem
nop
nop
nop
return:
registersymbol(Grass_Scale2)
[DISABLE]
Grass_Scale2:
db F3 0F 10 87 F0 00 00 00
unregistersymbol(Grass_Scale2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+FF4A8
"theHunterCotW_F.exe"+FF46F: 4D 8D 8E D8 00 00 00 - lea r9,[r14+000000D8]
"theHunterCotW_F.exe"+FF476: C7 44 24 20 04 00 00 00 - mov [rsp+20],00000004
"theHunterCotW_F.exe"+FF47E: BA 02 00 00 00 - mov edx,00000002
"theHunterCotW_F.exe"+FF483: 44 8D 42 02 - lea r8d,[rdx+02]
"theHunterCotW_F.exe"+FF487: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+FF48A: E8 81 E2 10 01 - call theHunterCotW_F.exe+120D710
"theHunterCotW_F.exe"+FF48F: F3 0F 11 75 D7 - movss [rbp-29],xmm6
"theHunterCotW_F.exe"+FF494: C7 45 DB 00 00 00 00 - mov [rbp-25],00000000
"theHunterCotW_F.exe"+FF49B: F3 0F 10 8F EC 00 00 00 - movss xmm1,[rdi+000000EC]
"theHunterCotW_F.exe"+FF4A3: F3 0F 11 4D DF - movss [rbp-21],xmm1
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+FF4A8: F3 0F 10 87 F0 00 00 00 - movss xmm0,[rdi+000000F0]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+FF4B0: F3 0F 11 45 E3 - movss [rbp-1D],xmm0
"theHunterCotW_F.exe"+FF4B5: 48 85 DB - test rbx,rbx
"theHunterCotW_F.exe"+FF4B8: 74 53 - je theHunterCotW_F.exe+FF50D
"theHunterCotW_F.exe"+FF4BA: 48 8B 4B 18 - mov rcx,[rbx+18]
"theHunterCotW_F.exe"+FF4BE: 0F B6 C1 - movzx eax,cl
"theHunterCotW_F.exe"+FF4C1: C0 E8 03 - shr al,03
"theHunterCotW_F.exe"+FF4C4: 0F 57 C0 - xorps xmm0,xmm0
"theHunterCotW_F.exe"+FF4C7: A8 01 - test al,01
"theHunterCotW_F.exe"+FF4C9: 74 18 - je theHunterCotW_F.exe+FF4E3
"theHunterCotW_F.exe"+FF4CB: 48 C1 E9 14 - shr rcx,14
}
71058
"Grass Trees Bushes / UV Hirschfelden"
Auto Assembler Script
[ENABLE]
alloc(UV_DecidGTrees,16)
alloc(UV_DecidYGTrees,16)
alloc(UV_DecidYTrees,16)
alloc(UV_DecidYRTrees,16)
alloc(UV_DecidRTrees,16)
alloc(UV_SpruceShortTrees,16)
alloc(UV_SpruceMiddleTrees,16)
alloc(UV_SpruceTall1Trees,16)
alloc(UV_SpruceTall2Trees,16)
alloc(UV_SpruceTall3Trees,16)
alloc(UV_SpruceTall4Trees,16)
alloc(UV_SpruceTall5Trees,16)
alloc(UV_BushesY,16)
alloc(UV_BushesYG,16)
alloc(UV_BushesBrown,16)
alloc(UV_BushesEmpty,16)
alloc(UV_Moss,16)
alloc(UV_DecidGreen1,16)
alloc(UV_DecidGreen2,16)
alloc(UV_DecidGreen3,16)
alloc(UV_SimpleGreen1,16)
alloc(UV_SimpleGreen2,16)
alloc(UV_SimpleGreenApart,16)
alloc(UV_SimpleGreenApartDry,16)
alloc(UV_RedGreen,16)
alloc(UV_GrassGLeaves,16)
alloc(UV_GrassY,16)
alloc(UV_GrassB1,16)
alloc(UV_GrassB2,16)
alloc(UV_GrassFlowers,16)
alloc(UV_FallenLeaves,16)
alloc(UV_CornField1,16)
alloc(UV_Bulrush,16)
UV_DecidGTrees:
dd (float)0
UV_DecidYGTrees:
dd (float)0
UV_DecidYTrees:
dd (float)0
UV_DecidYRTrees:
dd (float)0
UV_DecidRTrees:
dd (float)0
UV_SpruceShortTrees:
dd (float)0
UV_SpruceMiddleTrees:
dd (float)0
UV_SpruceTall1Trees:
dd (float)0
UV_SpruceTall2Trees:
dd (float)0
UV_SpruceTall3Trees:
dd (float)0
UV_SpruceTall4Trees:
dd (float)0
UV_SpruceTall5Trees:
dd (float)0
UV_BushesY:
dd (float)0
UV_BushesYG:
dd (float)0
UV_BushesBrown:
dd (float)0
UV_BushesEmpty:
dd (float)0
UV_Moss:
dd (float)0
UV_DecidGreen1:
dd (float)0
UV_DecidGreen2:
dd (float)0
UV_DecidGreen3:
dd (float)0
UV_SimpleGreen1:
dd (float)0
UV_SimpleGreen2:
dd (float)0
UV_SimpleGreenApart:
dd (float)0
UV_SimpleGreenApartDry:
dd (float)0
UV_RedGreen:
dd (float)0
UV_GrassGLeaves:
dd (float)0
UV_GrassY:
dd (float)0
UV_GrassB1:
dd (float)0
UV_GrassB2:
dd (float)0
UV_GrassFlowers:
dd (float)0
UV_FallenLeaves:
dd (float)0
UV_CornField1:
dd (float)0
UV_Bulrush:
dd (float)0
registersymbol(UV_DecidGTrees)
registersymbol(UV_DecidYGTrees)
registersymbol(UV_DecidYTrees)
registersymbol(UV_DecidYRTrees)
registersymbol(UV_DecidRTrees)
registersymbol(UV_SpruceShortTrees)
registersymbol(UV_SpruceMiddleTrees)
registersymbol(UV_SpruceTall1Trees)
registersymbol(UV_SpruceTall2Trees)
registersymbol(UV_SpruceTall3Trees)
registersymbol(UV_SpruceTall4Trees)
registersymbol(UV_SpruceTall5Trees)
registersymbol(UV_BushesY)
registersymbol(UV_BushesYG)
registersymbol(UV_BushesBrown)
registersymbol(UV_BushesEmpty)
registersymbol(UV_Moss)
registersymbol(UV_DecidGreen1)
registersymbol(UV_DecidGreen2)
registersymbol(UV_DecidGreen3)
registersymbol(UV_SimpleGreen1)
registersymbol(UV_SimpleGreen2)
registersymbol(UV_SimpleGreenApart)
registersymbol(UV_SimpleGreenApartDry)
registersymbol(UV_RedGreen)
registersymbol(UV_GrassGLeaves)
registersymbol(UV_GrassY)
registersymbol(UV_GrassB1)
registersymbol(UV_GrassB2)
registersymbol(UV_GrassFlowers)
registersymbol(UV_FallenLeaves)
registersymbol(UV_CornField1)
registersymbol(UV_Bulrush)
aobscanmodule(FoliageSeeds,theHunterCotW_F.exe,0F 10 87 F4 00 00 00 0F 11 45 40) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F48C3)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGTrees]
jmp return
notDecidGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidYGTrees]
jmp return
notDecidYGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidYTrees]
jmp return
notDecidYTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)24
mov rbp,2CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidYRTrees]
jmp return
notDecidYRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,2CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidRTrees]
jmp return
notDecidRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceShortTrees]
jmp return
notSpruceShortTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceMiddleTrees]
jmp return
notSpruceMiddleTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall1Trees]
jmp return
notSpruceTall1Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall2Trees]
jmp return
notSpruceTall2Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall3Trees]
jmp return
notSpruceTall3Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall4Trees]
jmp return
notSpruceTall4Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall5Trees]
jmp return
notSpruceTall5Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareBushesY
myloopBushesY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesY]
jmp return
notBushesY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)32
mov rbp,2CompareBushesYG
myloopBushesYG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesYG]
jmp return
notBushesYG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)13
mov rbp,2CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesBrown]
jmp return
notBushesBrown:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)1
mov rbp,2CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesEmpty]
jmp return
notBushesEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareMoss
myloopMoss:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepMoss
loop myloopMoss
jmp notMoss
yepMoss:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_Moss]
jmp return
notMoss:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGreen1
myloopDecidGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen1
loop myloopDecidGreen1
jmp notDecidGreen1
yepDecidGreen1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGreen1]
jmp return
notDecidGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidGreen2
myloopDecidGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen2
loop myloopDecidGreen2
jmp notDecidGreen2
yepDecidGreen2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGreen2]
jmp return
notDecidGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareDecidGreen3
myloopDecidGreen3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen3
loop myloopDecidGreen3
jmp notDecidGreen3
yepDecidGreen3:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGreen3]
jmp return
notDecidGreen3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSimpleGreen1
myloopSimpleGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen1
loop myloopSimpleGreen1
jmp notSimpleGreen1
yepSimpleGreen1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreen1]
jmp return
notSimpleGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSimpleGreen2
myloopSimpleGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen2
loop myloopSimpleGreen2
jmp notSimpleGreen2
yepSimpleGreen2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreen2]
jmp return
notSimpleGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApart
myloopSimpleGreenApart:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApart
loop myloopSimpleGreenApart
jmp notSimpleGreenApart
yepSimpleGreenApart:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreenApart]
jmp return
notSimpleGreenApart:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApartDry
myloopSimpleGreenApartDry:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApartDry
loop myloopSimpleGreenApartDry
jmp notSimpleGreenApartDry
yepSimpleGreenApartDry:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreenApartDry]
jmp return
notSimpleGreenApartDry:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareRedGreen
myloopRedGreen:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepRedGreen
loop myloopRedGreen
jmp notRedGreen
yepRedGreen:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_RedGreen]
jmp return
notRedGreen:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassGLeaves]
jmp return
notGrassGLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareGrassY
myloopGrassY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassY]
jmp return
notGrassY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareGrassB1
myloopGrassB1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB1
loop myloopGrassB1
jmp notGrassB1
yepGrassB1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassB1]
jmp return
notGrassB1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassB2
myloopGrassB2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB2
loop myloopGrassB2
jmp notGrassB2
yepGrassB2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassB2]
jmp return
notGrassB2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassFlowers]
jmp return
notGrassFlowers:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_FallenLeaves]
jmp return
notFallenLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)29
mov rbp,2CompareCornField1
myloopCornField1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_CornField1]
jmp return
notCornField1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareBulrush
myloopBulrush:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_Bulrush]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
jmp return
FoliageSeeds:
jmp newmem
nop
nop
return:
registersymbol(FoliageSeeds)
[DISABLE]
FoliageSeeds:
db 0F 10 87 F4 00 00 00
unregistersymbol(UV_DecidGTrees)
unregistersymbol(UV_DecidYGTrees)
unregistersymbol(UV_DecidYTrees)
unregistersymbol(UV_DecidYRTrees)
unregistersymbol(UV_DecidRTrees)
unregistersymbol(UV_SpruceShortTrees)
unregistersymbol(UV_SpruceMiddleTrees)
unregistersymbol(UV_SpruceTall1Trees)
unregistersymbol(UV_SpruceTall2Trees)
unregistersymbol(UV_SpruceTall3Trees)
unregistersymbol(UV_SpruceTall4Trees)
unregistersymbol(UV_SpruceTall5Trees)
unregistersymbol(UV_BushesY)
unregistersymbol(UV_BushesYG)
unregistersymbol(UV_BushesBrown)
unregistersymbol(UV_BushesEmpty)
unregistersymbol(UV_Moss)
unregistersymbol(UV_DecidGreen1)
unregistersymbol(UV_DecidGreen2)
unregistersymbol(UV_DecidGreen3)
unregistersymbol(UV_SimpleGreen1)
unregistersymbol(UV_SimpleGreen2)
unregistersymbol(UV_SimpleGreenApart)
unregistersymbol(UV_SimpleGreenApartDry)
unregistersymbol(UV_RedGreen)
unregistersymbol(UV_GrassGLeaves)
unregistersymbol(UV_GrassY)
unregistersymbol(UV_GrassB1)
unregistersymbol(UV_GrassB2)
unregistersymbol(UV_GrassFlowers)
unregistersymbol(UV_FallenLeaves)
unregistersymbol(UV_CornField1)
unregistersymbol(UV_Bulrush)
unregistersymbol(FoliageSeeds)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F48C3
"theHunterCotW_F.exe"+F489C: 41 F6 86 30 07 00 00 40 - test byte ptr [r14+00000730],40
"theHunterCotW_F.exe"+F48A4: 0F 85 B2 00 00 00 - jne theHunterCotW_F.exe+F495C
"theHunterCotW_F.exe"+F48AA: 8B 8F 04 01 00 00 - mov ecx,[rdi+00000104]
"theHunterCotW_F.exe"+F48B0: 8B C1 - mov eax,ecx
"theHunterCotW_F.exe"+F48B2: C1 E8 08 - shr eax,08
"theHunterCotW_F.exe"+F48B5: 8B D1 - mov edx,ecx
"theHunterCotW_F.exe"+F48B7: C1 EA 09 - shr edx,09
"theHunterCotW_F.exe"+F48BA: 80 E2 01 - and dl,01
"theHunterCotW_F.exe"+F48BD: C1 E9 0A - shr ecx,0A
"theHunterCotW_F.exe"+F48C0: 80 E1 01 - and cl,01
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F48C3: 0F 10 87 F4 00 00 00 - movups xmm0,[rdi+000000F4]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F48CA: 0F 11 45 40 - movups [rbp+40],xmm0
"theHunterCotW_F.exe"+F48CE: 24 01 - and al,01
"theHunterCotW_F.exe"+F48D0: 75 0D - jne theHunterCotW_F.exe+F48DF
"theHunterCotW_F.exe"+F48D2: 84 D2 - test dl,dl
"theHunterCotW_F.exe"+F48D4: 75 09 - jne theHunterCotW_F.exe+F48DF
"theHunterCotW_F.exe"+F48D6: C7 45 50 00 00 00 00 - mov [rbp+50],00000000
"theHunterCotW_F.exe"+F48DD: EB 12 - jmp theHunterCotW_F.exe+F48F1
"theHunterCotW_F.exe"+F48DF: C7 45 50 00 00 80 3F - mov [rbp+50],3F800000
"theHunterCotW_F.exe"+F48E6: 84 D2 - test dl,dl
"theHunterCotW_F.exe"+F48E8: C7 45 54 00 00 80 3F - mov [rbp+54],3F800000
}
71059
"Grass Trees Bushes / UV 2 Hirschfelden"
Auto Assembler Script
[ENABLE]
aobscanmodule(FoliageSeeds2,theHunterCotW_F.exe,0F 10 87 F4 00 00 00 0F 11 45 E7) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+FF52A)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGTrees
myloopDecidGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGTrees
loop myloopDecidGTrees
jmp notDecidGTrees
yepDecidGTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGTrees]
jmp return
notDecidGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidYGTrees
myloopDecidYGTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYGTrees
loop myloopDecidYGTrees
jmp notDecidYGTrees
yepDecidYGTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidYGTrees]
jmp return
notDecidYGTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareDecidYTrees
myloopDecidYTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYTrees
loop myloopDecidYTrees
jmp notDecidYTrees
yepDecidYTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidYTrees]
jmp return
notDecidYTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)24
mov rbp,2CompareDecidYRTrees
myloopDecidYRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidYRTrees
loop myloopDecidYRTrees
jmp notDecidYRTrees
yepDecidYRTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidYRTrees]
jmp return
notDecidYRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,2CompareDecidRTrees
myloopDecidRTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidRTrees
loop myloopDecidRTrees
jmp notDecidRTrees
yepDecidRTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidRTrees]
jmp return
notDecidRTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSpruceShortTrees
myloopSpruceShortTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortTrees
loop myloopSpruceShortTrees
jmp notSpruceShortTrees
yepSpruceShortTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceShortTrees]
jmp return
notSpruceShortTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceMiddleTrees
myloopSpruceMiddleTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleTrees
loop myloopSpruceMiddleTrees
jmp notSpruceMiddleTrees
yepSpruceMiddleTrees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceMiddleTrees]
jmp return
notSpruceMiddleTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall1Trees
myloopSpruceTall1Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall1Trees
loop myloopSpruceTall1Trees
jmp notSpruceTall1Trees
yepSpruceTall1Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall1Trees]
jmp return
notSpruceTall1Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareSpruceTall2Trees
myloopSpruceTall2Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall2Trees
loop myloopSpruceTall2Trees
jmp notSpruceTall2Trees
yepSpruceTall2Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall2Trees]
jmp return
notSpruceTall2Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareSpruceTall3Trees
myloopSpruceTall3Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall3Trees
loop myloopSpruceTall3Trees
jmp notSpruceTall3Trees
yepSpruceTall3Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall3Trees]
jmp return
notSpruceTall3Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareSpruceTall4Trees
myloopSpruceTall4Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall4Trees
loop myloopSpruceTall4Trees
jmp notSpruceTall4Trees
yepSpruceTall4Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall4Trees]
jmp return
notSpruceTall4Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareSpruceTall5Trees
myloopSpruceTall5Trees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTall5Trees
loop myloopSpruceTall5Trees
jmp notSpruceTall5Trees
yepSpruceTall5Trees:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SpruceTall5Trees]
jmp return
notSpruceTall5Trees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareBushesY
myloopBushesY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesY
loop myloopBushesY
jmp notBushesY
yepBushesY:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesY]
jmp return
notBushesY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)32
mov rbp,2CompareBushesYG
myloopBushesYG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesYG
loop myloopBushesYG
jmp notBushesYG
yepBushesYG:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesYG]
jmp return
notBushesYG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)13
mov rbp,2CompareBushesBrown
myloopBushesBrown:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesBrown
loop myloopBushesBrown
jmp notBushesBrown
yepBushesBrown:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesBrown]
jmp return
notBushesBrown:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)1
mov rbp,2CompareBushesEmpty
myloopBushesEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushesEmpty
loop myloopBushesEmpty
jmp notBushesEmpty
yepBushesEmpty:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_BushesEmpty]
jmp return
notBushesEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareMoss
myloopMoss:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepMoss
loop myloopMoss
jmp notMoss
yepMoss:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_Moss]
jmp return
notMoss:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareDecidGreen1
myloopDecidGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen1
loop myloopDecidGreen1
jmp notDecidGreen1
yepDecidGreen1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGreen1]
jmp return
notDecidGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareDecidGreen2
myloopDecidGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen2
loop myloopDecidGreen2
jmp notDecidGreen2
yepDecidGreen2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGreen2]
jmp return
notDecidGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareDecidGreen3
myloopDecidGreen3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidGreen3
loop myloopDecidGreen3
jmp notDecidGreen3
yepDecidGreen3:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_DecidGreen3]
jmp return
notDecidGreen3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSimpleGreen1
myloopSimpleGreen1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen1
loop myloopSimpleGreen1
jmp notSimpleGreen1
yepSimpleGreen1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreen1]
jmp return
notSimpleGreen1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSimpleGreen2
myloopSimpleGreen2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreen2
loop myloopSimpleGreen2
jmp notSimpleGreen2
yepSimpleGreen2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreen2]
jmp return
notSimpleGreen2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApart
myloopSimpleGreenApart:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApart
loop myloopSimpleGreenApart
jmp notSimpleGreenApart
yepSimpleGreenApart:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreenApart]
jmp return
notSimpleGreenApart:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareSimpleGreenApartDry
myloopSimpleGreenApartDry:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSimpleGreenApartDry
loop myloopSimpleGreenApartDry
jmp notSimpleGreenApartDry
yepSimpleGreenApartDry:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_SimpleGreenApartDry]
jmp return
notSimpleGreenApartDry:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,2CompareRedGreen
myloopRedGreen:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepRedGreen
loop myloopRedGreen
jmp notRedGreen
yepRedGreen:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_RedGreen]
jmp return
notRedGreen:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassGLeaves
myloopGrassGLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassGLeaves
loop myloopGrassGLeaves
jmp notGrassGLeaves
yepGrassGLeaves:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassGLeaves]
jmp return
notGrassGLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,2CompareGrassY
myloopGrassY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassY
loop myloopGrassY
jmp notGrassY
yepGrassY:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassY]
jmp return
notGrassY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareGrassB1
myloopGrassB1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB1
loop myloopGrassB1
jmp notGrassB1
yepGrassB1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassB1]
jmp return
notGrassB1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,2CompareGrassB2
myloopGrassB2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassB2
loop myloopGrassB2
jmp notGrassB2
yepGrassB2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassB2]
jmp return
notGrassB2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,2CompareGrassFlowers
myloopGrassFlowers:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrassFlowers
loop myloopGrassFlowers
jmp notGrassFlowers
yepGrassFlowers:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_GrassFlowers]
jmp return
notGrassFlowers:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,2CompareFallenLeaves
myloopFallenLeaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepFallenLeaves
loop myloopFallenLeaves
jmp notFallenLeaves
yepFallenLeaves:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_FallenLeaves]
jmp return
notFallenLeaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)29
mov rbp,2CompareCornField1
myloopCornField1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepCornField1
loop myloopCornField1
jmp notCornField1
yepCornField1:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_CornField1]
jmp return
notCornField1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,2CompareBulrush
myloopBulrush:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBulrush
loop myloopBulrush
jmp code
yepBulrush:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[UV_Bulrush]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
jmp return
FoliageSeeds2:
jmp newmem
nop
nop
return:
registersymbol(FoliageSeeds2)
[DISABLE]
FoliageSeeds2:
db 0F 10 87 F4 00 00 00
unregistersymbol(FoliageSeeds2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+FF52A
"theHunterCotW_F.exe"+FF4F8: F3 48 0F 2A C0 - cvtsi2ss xmm0,rax
"theHunterCotW_F.exe"+FF4FD: F3 0F 58 C8 - addss xmm1,xmm0
"theHunterCotW_F.exe"+FF501: 0F 57 0D 08 07 3F 01 - xorps xmm1,[theHunterCotW_F.exe+14EFC10]
"theHunterCotW_F.exe"+FF508: F3 0F 11 4D DB - movss [rbp-25],xmm1
"theHunterCotW_F.exe"+FF50D: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+FF515: 4C 8D 4D D7 - lea r9,[rbp-29]
"theHunterCotW_F.exe"+FF519: BA 02 00 00 00 - mov edx,00000002
"theHunterCotW_F.exe"+FF51E: 44 8D 42 06 - lea r8d,[rdx+06]
"theHunterCotW_F.exe"+FF522: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+FF525: E8 E6 E1 10 01 - call theHunterCotW_F.exe+120D710
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+FF52A: 0F 10 87 F4 00 00 00 - movups xmm0,[rdi+000000F4]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+FF531: 0F 11 45 E7 - movups [rbp-19],xmm0
"theHunterCotW_F.exe"+FF535: 8B 87 04 01 00 00 - mov eax,[rdi+00000104]
"theHunterCotW_F.exe"+FF53B: A9 00 03 00 00 - test eax,00000300
"theHunterCotW_F.exe"+FF540: C7 45 F7 00 00 00 00 - mov [rbp-09],00000000
"theHunterCotW_F.exe"+FF547: 74 07 - je theHunterCotW_F.exe+FF550
"theHunterCotW_F.exe"+FF549: C7 45 F7 00 00 80 3F - mov [rbp-09],3F800000
"theHunterCotW_F.exe"+FF550: 0F BA E0 09 - bt eax,09
"theHunterCotW_F.exe"+FF554: C7 45 FB 00 00 80 3F - mov [rbp-05],3F800000
"theHunterCotW_F.exe"+FF55B: 72 07 - jb theHunterCotW_F.exe+FF564
"theHunterCotW_F.exe"+FF55D: C7 45 FB 00 00 00 00 - mov [rbp-05],00000000
}
71060
"Trees / Replacers Hirschfelden"
000000
1
71061
"Deciduous_Green_Trees_Replace"
000000
4 Bytes
DecidGTrees
71385
"Deciduous_Yellow_Green_Trees_Replace"
000000
4 Bytes
DecidYGTrees
71518
"Deciduous_Yellow_Trees_Replace"
000000
4 Bytes
DecidYTrees
71384
"Deciduous_Yellow_Red_Trees_Replace"
000000
4 Bytes
DecidYRTrees
71383
"Deciduous_Red_Trees_Replace"
000000
4 Bytes
DecidRTrees
71382
"Deciduous_Empty_Trees_Replace"
000000
4 Bytes
DecidEmptyTrees
71401
"Spruce_Short_Trees_Replace"
000000
4 Bytes
SpruceShortTrees
71402
"Spruce_Middle_Trees_Replace"
000000
4 Bytes
SpruceMiddleTrees
71403
"Spruce_Tall_1_Trees_Replace"
000000
4 Bytes
SpruceTall1Trees
71404
"Spruce_Tall_2_Trees_Replace"
000000
4 Bytes
SpruceTall2Trees
71405
"Spruce_Tall_3_Trees_Replace"
000000
4 Bytes
SpruceTall3Trees
71396
"Spruce_Tall_4_Trees_Replace"
000000
4 Bytes
SpruceTall4Trees
71397
"Spruce_Tall_5_Trees_Replace"
000000
4 Bytes
SpruceTall5Trees
71395
"Bushes_Yellow_Replace"
000000
4 Bytes
BushesY
71386
"Bushes_Yellow_Green_Replace"
000000
4 Bytes
BushesYG
71387
"Bushes_Brown_Replace"
000000
4 Bytes
BushesBrown
71388
"Bushes_Empty_Replace"
000000
4 Bytes
BushesEmpty
71398
"Some_Grass_Green_Replace"
000000
4 Bytes
GrassG
71513
"Some_Grass_Green_Leafy_Replace"
000000
4 Bytes
GrassGLeaves
71399
"Some_Grass_Yellow_Replace"
000000
4 Bytes
GrassY
71400
"Some_Grass_Brown_Replace"
000000
4 Bytes
GrassB
71391
"Some_Flowers_Replace"
000000
4 Bytes
GrassFlowers
71392
"Some_Fallen_Leaves_Replace"
000000
4 Bytes
FallenLeaves
71390
"Some_Bulrush_Replace"
000000
4 Bytes
Bulrush
71393
"Rocks_Replace"
000000
4 Bytes
Rocks
71394
"Some_Corn_Fields_1_Replace"
000000
4 Bytes
CornField1
71389
"Logs_Replace"
000000
4 Bytes
Logs
71075
"Bypass Replacers (any value-Replace On, 0-Original Foliage)"
0000FF
1
71406
"Deciduous_Green_Trees_OnOff"
000000
4 Bytes
DecidGTreesOnOff
71407
"Deciduous_Yellow_Green_Trees_OnOff"
000000
4 Bytes
DecidYGTreesOnOff
71519
"Deciduous_Yellow_Trees_OnOff"
000000
4 Bytes
DecidYTreesOnOff
71408
"Deciduous_Yellow_Red_Trees_OnOff"
000000
4 Bytes
DecidYRTreesOnOff
71409
"Deciduous_Red_Trees_OnOff"
000000
4 Bytes
DecidRTreesOnOff
71410
"Deciduous_Empty_Trees_OnOff"
000000
4 Bytes
DecidEmptyTreesOnOff
71411
"Spruce_Short_Trees_OnOff"
000000
4 Bytes
SpruceShortTreesOnOff
71412
"Spruce_Middle_Trees_OnOff"
000000
4 Bytes
SpruceMiddleTreesOnOff
71413
"Spruce_Tall_1_Trees_OnOff"
000000
4 Bytes
SpruceTall1TreesOnOff
71414
"Spruce_Tall_2_Trees_OnOff"
000000
4 Bytes
SpruceTall2TreesOnOff
71415
"Spruce_Tall_3_Trees_OnOff"
000000
4 Bytes
SpruceTall3TreesOnOff
71416
"Spruce_Tall_4_Trees_OnOff"
000000
4 Bytes
SpruceTall4TreesOnOff
71417
"Spruce_Tall_5_Trees_OnOff"
000000
4 Bytes
SpruceTall5TreesOnOff
71425
"Bushes_Yellow_OnOff"
000000
4 Bytes
BushesYOnOff
71426
"Bushes_Yellow_Green_OnOff"
000000
4 Bytes
BushesYGOnOff
71427
"Bushes_Brown_OnOff"
000000
4 Bytes
BushesBrownOnOff
71428
"Bushes_Empty_OnOff"
000000
4 Bytes
BushesEmptyOnOff
71418
"Some_Grass_Green_OnOff"
000000
4 Bytes
GrassGOnOff
71514
"Some_Grass_Green_Leafy_OnOff"
000000
4 Bytes
GrassGLeavesOnOff
71419
"Some_Grass_Yellow_OnOff"
000000
4 Bytes
GrassYOnOff
71420
"Some_Grass_Brown_OnOff"
000000
4 Bytes
GrassBOnOff
71421
"Some_Flowers_OnOff"
000000
4 Bytes
GrassFlowersOnOff
71422
"Some_Fallen_Leaves_OnOff"
000000
4 Bytes
FallenLeavesOnOff
71430
"Some_Bulrush_OnOff"
000000
4 Bytes
BulrushOnOff
71423
"Rocks_OnOff"
000000
4 Bytes
RocksOnOff
71424
"Some_Corn_Fields_1_OnOff"
000000
4 Bytes
CornField1OnOff
71429
"Logs_OnOff"
000000
4 Bytes
LogsOnOff
71090
"Trees / Color Mult Hirschfelden"
1
71091
"Deciduous_Green_Trees_R"
0000FF
Float
colorDecidGTrees
71092
"Deciduous_Green_Trees_G"
008000
Float
colorDecidGTrees+4
71093
"Deciduous_Green_Trees_B"
FF0000
Float
colorDecidGTrees+8
71431
"Deciduous_Yellow_Green_Trees_R"
0000FF
Float
colorDecidYGTrees
71432
"Deciduous_Yellow_Green_Trees_G"
008000
Float
colorDecidYGTrees+4
71433
"Deciduous_Yellow_Green_Trees_B"
FF0000
Float
colorDecidYGTrees+8
71520
"Deciduous_Yellow_Trees_R"
0000FF
Float
colorDecidYTrees
71521
"Deciduous_Yellow_Trees_G"
008000
Float
colorDecidYTrees+4
71522
"Deciduous_Yellow_Trees_B"
FF0000
Float
colorDecidYTrees+8
71434
"Deciduous_Yellow_Red_Trees_R"
0000FF
Float
colorDecidYRTrees
71435
"Deciduous_Yellow_Red_Trees_G"
008000
Float
colorDecidYRTrees+4
71436
"Deciduous_Yellow_Red_Trees_B"
FF0000
Float
colorDecidYRTrees+8
71437
"Deciduous_Red_Trees_R"
0000FF
Float
colorDecidRTrees
71438
"Deciduous_Red_Trees_G"
008000
Float
colorDecidRTrees+4
71439
"Deciduous_Red_Trees_B"
FF0000
Float
colorDecidRTrees+8
71440
"Deciduous_Empty_Trees_R"
0000FF
Float
colorDecidEmptyTrees
71441
"Deciduous_Empty_Trees_G"
008000
Float
colorDecidEmptyTrees+4
71442
"Deciduous_Empty_Trees_B"
FF0000
Float
colorDecidEmptyTrees+8
71443
"Spruce_Short_Trees_R"
0000FF
Float
colorSpruceShortTrees
71444
"Spruce_Short_Trees_G"
008000
Float
colorSpruceShortTrees+4
71445
"Spruce_Short_Trees_B"
FF0000
Float
colorSpruceShortTrees+8
71446
"Spruce_Middle_Trees_R"
0000FF
Float
colorSpruceMiddleTrees
71447
"Spruce_Middle_Trees_G"
008000
Float
colorSpruceMiddleTrees+4
71448
"Spruce_Middle_Trees_B"
FF0000
Float
colorSpruceMiddleTrees+8
71449
"Spruce_Tall_1_Trees_R"
0000FF
Float
colorSpruceTall1Trees
71450
"Spruce_Tall_1_Trees_G"
008000
Float
colorSpruceTall1Trees+4
71451
"Spruce_Tall_1_Trees_B"
FF0000
Float
colorSpruceTall1Trees+8
71452
"Spruce_Tall_2_Trees_R"
0000FF
Float
colorSpruceTall2Trees
71453
"Spruce_Tall_2_Trees_G"
008000
Float
colorSpruceTall2Trees+4
71454
"Spruce_Tall_2_Trees_B"
FF0000
Float
colorSpruceTall2Trees+8
71455
"Spruce_Tall_3_Trees_R"
0000FF
Float
colorSpruceTall3Trees
71456
"Spruce_Tall_3_Trees_G"
008000
Float
colorSpruceTall3Trees+4
71457
"Spruce_Tall_3_Trees_B"
FF0000
Float
colorSpruceTall3Trees+8
71458
"Spruce_Tall_4_Trees_R"
0000FF
Float
colorSpruceTall4Trees
71459
"Spruce_Tall_4_Trees_G"
008000
Float
colorSpruceTall4Trees+4
71460
"Spruce_Tall_4_Trees_B"
FF0000
Float
colorSpruceTall4Trees+8
71461
"Spruce_Tall_5_Trees_R"
0000FF
Float
colorSpruceTall5Trees
71462
"Spruce_Tall_5_Trees_G"
008000
Float
colorSpruceTall5Trees+4
71463
"Spruce_Tall_5_Trees_B"
FF0000
Float
colorSpruceTall5Trees+8
71464
"Some_Grass_Green_R"
0000FF
Float
colorGrassG
71465
"Some_Grass_Green_G"
008000
Float
colorGrassG+4
71466
"Some_Grass_Green_B"
FF0000
Float
colorGrassG+8
71515
"Some_Grass_Green_Leafy_R"
0000FF
Float
colorGrassGLeaves
71516
"Some_Grass_Green_Leafy_G"
008000
Float
colorGrassGLeaves+4
71517
"Some_Grass_Green_Leafy_B"
FF0000
Float
colorGrassGLeaves+8
71467
"Some_Grass_Yellow_R"
0000FF
Float
colorGrassY
71468
"Some_Grass_Yellow_G"
008000
Float
colorGrassY+4
71469
"Some_Grass_Yellow_B"
FF0000
Float
colorGrassY+8
71470
"Some_Grass_Brown_R"
0000FF
Float
colorGrassB
71471
"Some_Grass_Brown_G"
008000
Float
colorGrassB+4
71472
"Some_Grass_Brown_B"
FF0000
Float
colorGrassB+8
71473
"Some_Flowers_R"
0000FF
Float
colorGrassFlowers
71474
"Some_Flowers_G"
008000
Float
colorGrassFlowers+4
71475
"Some_Flowers_B"
FF0000
Float
colorGrassFlowers+8
71476
"Some_Fallen_Leaves_R"
0000FF
Float
colorFallenLeaves
71477
"Some_Fallen_Leaves_G"
008000
Float
colorFallenLeaves+4
71478
"Some_Fallen_Leaves_B"
FF0000
Float
colorFallenLeaves+8
71479
"Rocks_R"
0000FF
Float
colorRocks
71480
"Rocks_G"
008000
Float
colorRocks+4
71481
"Rocks_B"
FF0000
Float
colorRocks+8
71482
"Corn_Fields_R"
0000FF
Float
colorCornField1
71483
"Corn_Fields_G"
008000
Float
colorCornField1+4
71484
"Corn_Fields_B"
FF0000
Float
colorCornField1+8
71485
"Bushes_Yellow_R"
0000FF
Float
colorBushesY
71486
"Bushes_Yellow_G"
008000
Float
colorBushesY+4
71487
"Bushes_Yellow_B"
FF0000
Float
colorBushesY+8
71488
"Bushes_Yellow_Green_R"
0000FF
Float
colorBushesYG
71489
"Bushes_Yellow_Green_G"
008000
Float
colorBushesYG+4
71490
"Bushes_Yellow_Green_B"
FF0000
Float
colorBushesYG+8
71491
"Bushes_Brown_R"
0000FF
Float
colorBushesBrown
71492
"Bushes_Brown_G"
008000
Float
colorBushesBrown+4
71493
"Bushes_Brown_B"
FF0000
Float
colorBushesBrown+8
71494
"Bushes_Empty_R"
0000FF
Float
colorBushesEmpty
71495
"Bushes_Empty_G"
008000
Float
colorBushesEmpty+4
71496
"Bushes_Empty_B"
FF0000
Float
colorBushesEmpty+8
71497
"Logs_R"
0000FF
Float
colorLogs
71498
"Logs_G"
008000
Float
colorLogs+4
71499
"Logs_B"
FF0000
Float
colorLogs+8
71500
"Some_Bulrush_R"
0000FF
Float
colorBulrush
71501
"Bulrush_G"
008000
Float
colorBulrush+4
71502
"Bulrush_B"
FF0000
Float
colorBulrush+8
71130
"Grass / Color Mult Hirschfelden"
1
71131
"Moss_R"
0000FF
Float
2grassColorMoss
71132
"Moss_G"
008000
Float
2grassColorMoss+4
71133
"Moss_B"
FF0000
Float
2grassColorMoss+8
71598
"Deciduous_1_R"
0000FF
Float
2grassColorDecidGreen1
71599
"Deciduous_1_G"
008000
Float
2grassColorDecidGreen1+4
71600
"Deciduous_1_B"
FF0000
Float
2grassColorDecidGreen1+8
71604
"Deciduous_2_R"
0000FF
Float
2grassColorDecidGreen2
71605
"Deciduous_2_G"
008000
Float
2grassColorDecidGreen2+4
71606
"Deciduous_2_B"
FF0000
Float
2grassColorDecidGreen2+8
71601
"Deciduous_3_R"
0000FF
Float
2grassColorDecidGreen3
71602
"Deciduous_3_G"
008000
Float
2grassColorDecidGreen3+4
71603
"Deciduous_3_B"
FF0000
Float
2grassColorDecidGreen3+8
71607
"Simple_Green_1_R"
0000FF
Float
2grassColorSimpleGreen1
71608
"Simple_Green_1_G"
008000
Float
2grassColorSimpleGreen1+4
71609
"Simple_Green_1_B"
FF0000
Float
2grassColorSimpleGreen1+8
71610
"Simple_Green_2_R"
0000FF
Float
2grassColorSimpleGreen2
71611
"Simple_Green_2_G"
008000
Float
2grassColorSimpleGreen2+4
71612
"Simple_Green_2_B"
FF0000
Float
2grassColorSimpleGreen2+8
71613
"Simple_Green_Apart_R"
0000FF
Float
2grassColorSimpleGreenApart
71614
"Simple_Green_Apart_G"
008000
Float
2grassColorSimpleGreenApart+4
71615
"Simple_Green_Apart_B"
FF0000
Float
2grassColorSimpleGreenApart+8
71616
"Simple_Dry_Apart_R"
0000FF
Float
2grassColorSimpleGreenApartDry
71617
"Simple_Dry_Apart_G"
008000
Float
2grassColorSimpleGreenApartDry+4
71618
"Simple_Dry_Apart_B"
FF0000
Float
2grassColorSimpleGreenApartDry+8
71619
"Red_Green_R"
0000FF
Float
2grassColorRedGreen
71620
"Red_Green_G"
008000
Float
2grassColorRedGreen+4
71621
"Red_Green_B"
FF0000
Float
2grassColorRedGreen+8
71622
"Leafy_Grass_R"
0000FF
Float
2grassColorGrassGLeaves
71623
"Leafy_Grass_G"
008000
Float
2grassColorGrassGLeaves+4
71624
"Leafy_Grass_B"
FF0000
Float
2grassColorGrassGLeaves+8
71625
"Yellow_Grass_R"
0000FF
Float
2grassColorGrassY
71626
"Yellow_Grass_G"
008000
Float
2grassColorGrassY+4
71627
"Yellow_Grass_B"
FF0000
Float
2grassColorGrassY+8
71628
"Brown_Grass_1_R"
0000FF
Float
2grassColorGrassB1
71629
"Brown_Grass_1_G"
008000
Float
2grassColorGrassB1+4
71630
"Brown_Grass_1_B"
FF0000
Float
2grassColorGrassB1+8
71631
"Brown_Grass_2_R"
0000FF
Float
2grassColorGrassB2
71632
"Brown_Grass_2_G"
008000
Float
2grassColorGrassB2+4
71633
"Brown_Grass_2_B"
FF0000
Float
2grassColorGrassB2+8
71634
"Flowers_R"
0000FF
Float
2grassColorGrassFlowers
71635
"Flowers_G"
008000
Float
2grassColorGrassFlowers+4
71636
"Flowers_B"
FF0000
Float
2grassColorGrassFlowers+8
71637
"Fallen_Leaves_R"
0000FF
Float
2grassColorFallenLeaves
71638
"Fallen_Leaves_G"
008000
Float
2grassColorFallenLeaves+4
71639
"Fallen_Leaves_B"
FF0000
Float
2grassColorFallenLeaves+8
71640
"Corn_Fields_1_R"
0000FF
Float
2grassColorCornField1
71641
"Corn_Fields_1_G"
008000
Float
2grassColorCornField1+4
71642
"Corn_Fields_1_B"
FF0000
Float
2grassColorCornField1+8
71643
"Bulrush_R"
0000FF
Float
2grassColorBulrush
71644
"Bulrush_G"
008000
Float
2grassColorBulrush+4
71645
"Bulrush_B"
FF0000
Float
2grassColorBulrush+8
71191
"Grass Trees Bushes / Wet Glow SSS Hirschfelden"
1
71192
"Wet"
1
71193
"Deciduous_Green_Trees_Wet"
Float
SSS_DecidGTrees
71649
"Deciduous_Yellow_Green_Trees_Wet"
Float
SSS_DecidYGTrees
71656
"Deciduous_Yellow_Trees_Wet"
Float
SSS_DecidYTrees
71657
"Deciduous_Yellow_Red_Trees_Wet"
Float
SSS_DecidYRTrees
71654
"Deciduous_Red_Trees_Wet"
Float
SSS_DecidRTrees
71652
"Spruce_Short_Trees_Wet"
Float
SSS_SpruceShortTrees
71653
"Spruce_Middle_Trees_Wet"
Float
SSS_SpruceMiddleTrees
71650
"Spruce_Tall_1_Trees_Wet"
Float
SSS_SpruceTall1Trees
71651
"Spruce_Tall_2_Trees_Wet"
Float
SSS_SpruceTall2Trees
71678
"Spruce_Tall_3_Trees_Wet"
Float
SSS_SpruceTall3Trees
71679
"Spruce_Tall_4_Trees_Wet"
Float
SSS_SpruceTall4Trees
71680
"Spruce_Tall_5_Trees_Wet"
Float
SSS_SpruceTall5Trees
71681
"Bushes_Yellow_Wet"
Float
SSS_BushesY
71682
"Bushes_Yellow_Green_Wet"
Float
SSS_BushesYG
71673
"Bushes_Brown_Wet"
Float
SSS_BushesBrown
71674
"Bushes_Empty_Wet"
Float
SSS_BushesEmpty
71676
"Moss_Wet"
Float
2grassSSS_Moss
71677
"Deciduous_Grass_1_Wet"
Float
2grassSSS_DecidGreen1
71668
"Deciduous_Grass_2_Wet"
Float
2grassSSS_DecidGreen2
71852
"Deciduous_Grass_3_Wet"
Float
2grassSSS_DecidGreen3
71669
"Simple_Green_Grass_1_Wet"
Float
2grassSSS_SimpleGreen1
71670
"Simple_Green_Grass_2_Wet"
Float
2grassSSS_SimpleGreen2
71671
"Simple_Green_Grass_Apart_Wet"
Float
2grassSSS_SimpleGreenApart
71672
"Simple_Green_Grass_Apart_Dry_Wet"
Float
2grassSSS_SimpleGreenApartDry
71663
"Red_Green_Grass_Wet"
Float
2grassSSS_RedGreen
71664
"Leafy_Grass_Wet"
Float
2grassSSS_GrassGLeaves
71665
"Yellow_Grass_Wet"
Float
2grassSSS_GrassY
71666
"Brown_Grass_1_Wet"
Float
2grassSSS_GrassB1
71667
"Brown_Grass_2_Wet"
Float
2grassSSS_GrassB2
71658
"Flowers_Wet"
Float
2grassSSS_GrassFlowers
71659
"Fallen_Leaves_Wet"
Float
2grassSSS_FallenLeaves
71660
"Corn_Fields_1_Wet"
Float
2grassSSS_CornField1
71661
"Bulrush_Wet"
Float
2grassSSS_Bulrush
71223
"Glow (only Bulrush works)"
1
71224
"Deciduous_Green_Trees_Glow"
Float
SSS_DecidGTrees+4
71686
"Deciduous_Yellow_Green_Trees_Glow"
Float
SSS_DecidYGTrees+4
71685
"Deciduous_Yellow_Trees_Glow"
Float
SSS_DecidYTrees+4
71684
"Deciduous_Yellow_Red_Trees_Glow"
Float
SSS_DecidYRTrees+4
71683
"Deciduous_Red_Trees_Glow"
Float
SSS_DecidRTrees+4
71713
"Spruce_Short_Trees_Glow"
Float
SSS_SpruceShortTrees+4
71714
"Spruce_Middle_Trees_Glow"
Float
SSS_SpruceMiddleTrees+4
71715
"Spruce_Tall_1_Trees_Glow"
Float
SSS_SpruceTall1Trees+4
71716
"Spruce_Tall_2_Trees_Glow"
Float
SSS_SpruceTall2Trees+4
71707
"Spruce_Tall_3_Trees_Glow"
Float
SSS_SpruceTall3Trees+4
71708
"Spruce_Tall_4_Trees_Glow"
Float
SSS_SpruceTall4Trees+4
71709
"Spruce_Tall_5_Trees_Glow"
Float
SSS_SpruceTall5Trees+4
71710
"Bushes_Yellow_Glow"
Float
SSS_BushesY+4
71711
"Bushes_Yellow_Green_Glow"
Float
SSS_BushesYG+4
71702
"Bushes_Brown_Glow"
Float
SSS_BushesBrown+4
71703
"Bushes_Empty_Glow"
Float
SSS_BushesEmpty+4
71704
"Moss_Glow"
Float
2grassSSS_Moss+4
71705
"Deciduous_Grass_1_Glow"
Float
2grassSSS_DecidGreen1+4
71706
"Deciduous_Grass_2_Glow"
Float
2grassSSS_DecidGreen2+4
71697
"Deciduous_Grass_3_Glow"
Float
2grassSSS_DecidGreen3+4
71698
"Simple_Green_Grass_1_Glow"
Float
2grassSSS_SimpleGreen1+4
71699
"Simple_Green_Grass_2_Glow"
Float
2grassSSS_SimpleGreen2+4
71700
"Simple_Green_Grass_Apart_Glow"
Float
2grassSSS_SimpleGreenApart+4
71701
"Simple_Green_Grass_Apart_Dry_Glow"
Float
2grassSSS_SimpleGreenApartDry+4
71692
"Red_Green_Grass_Glow"
Float
2grassSSS_RedGreen+4
71693
"Leafy_Grass_Glow"
Float
2grassSSS_GrassGLeaves+4
71694
"Yellow_Grass_Glow"
Float
2grassSSS_GrassY+4
71695
"Brown_Grass_1_Glow"
Float
2grassSSS_GrassB1+4
71696
"Brown_Grass_2_Glow"
Float
2grassSSS_GrassB2+4
71687
"Flowers_Glow"
Float
2grassSSS_GrassFlowers+4
71688
"Fallen_Leaves_Glow"
Float
2grassSSS_FallenLeaves+4
71689
"Corn_Fields_1_Glow"
Float
2grassSSS_CornField1+4
71690
"Bulrush_Glow"
Float
2grassSSS_Bulrush+4
71226
"SSS_1"
1
71227
"Deciduous_Green_Trees_SSS_1"
Float
SSS_DecidGTrees+8
71723
"Deciduous_Yellow_Green_Trees_SSS_1"
Float
SSS_DecidYGTrees+8
71721
"Deciduous_Yellow_Trees_SSS_1"
Float
SSS_DecidYTrees+8
71719
"Deciduous_Yellow_Red_Trees_GlowSSS_1"
Float
SSS_DecidYRTrees+8
71717
"Deciduous_Red_Trees_SSS_1"
Float
SSS_DecidRTrees+8
71775
"Spruce_Short_Trees_SSS_1"
Float
SSS_SpruceShortTrees+8
71777
"Spruce_Middle_Trees_SSS_1"
Float
SSS_SpruceMiddleTrees+8
71779
"Spruce_Tall_1_Trees_SSS_1"
Float
SSS_SpruceTall1Trees+8
71781
"Spruce_Tall_2_Trees_SSS_1"
Float
SSS_SpruceTall2Trees+8
71783
"Spruce_Tall_3_Trees_SSS_1"
Float
SSS_SpruceTall3Trees+8
71765
"Spruce_Tall_4_Trees_SSS_1"
Float
SSS_SpruceTall4Trees+8
71767
"Spruce_Tall_5_Trees_SSS_1"
Float
SSS_SpruceTall5Trees+8
71769
"Bushes_Yellow_SSS_1"
Float
SSS_BushesY+8
71771
"Bushes_Yellow_Green_SSS_1"
Float
SSS_BushesYG+8
71773
"Bushes_Brown_SSS_1"
Float
SSS_BushesBrown+8
71755
"Bushes_Empty_SSS_1"
Float
SSS_BushesEmpty+8
71757
"Moss_SSS_1"
Float
2grassSSS_Moss+8
71759
"Deciduous_Grass_1_SSS_1"
Float
2grassSSS_DecidGreen1+8
71761
"Deciduous_Grass_2_SSS_1"
Float
2grassSSS_DecidGreen2+8
71763
"Deciduous_Grass_3_SSS_1"
Float
2grassSSS_DecidGreen3+8
71745
"Simple_Green_Grass_1_SSS_1"
Float
2grassSSS_SimpleGreen1+8
71747
"Simple_Green_Grass_2_SSS_1"
Float
2grassSSS_SimpleGreen2+8
71749
"Simple_Green_Grass_Apart_SSS_1"
Float
2grassSSS_SimpleGreenApart+8
71751
"Simple_Green_Grass_Apart_Dry_SSS_1"
Float
2grassSSS_SimpleGreenApartDry+8
71753
"Red_Green_Grass_SSS_1"
Float
2grassSSS_RedGreen+8
71735
"Leafy_Grass_SSS_1"
Float
2grassSSS_GrassGLeaves+8
71737
"Yellow_Grass_SSS_1"
Float
2grassSSS_GrassY+8
71739
"Brown_Grass_1_SSS_1"
Float
2grassSSS_GrassB1+8
71741
"Brown_Grass_2_SSS_1"
Float
2grassSSS_GrassB2+8
71743
"Flowers_SSS_1"
Float
2grassSSS_GrassFlowers+8
71725
"Fallen_Leaves_SSS_1"
Float
2grassSSS_FallenLeaves+8
71727
"Corn_Fields_1_SSS_1"
Float
2grassSSS_CornField1+8
71729
"Bulrush_SSS_1"
Float
2grassSSS_Bulrush+8
71853
"SSS_2"
1
71854
"Deciduous_Green_Trees_SSS_2"
Float
SSS_DecidGTrees+C
71855
"Deciduous_Yellow_Green_Trees_SSS_2"
Float
SSS_DecidYGTrees+C
71856
"Deciduous_Yellow_Trees_SSS_2"
Float
SSS_DecidYTrees+C
71857
"Deciduous_Yellow_Red_Trees_GlowSSS_2"
Float
SSS_DecidYRTrees+C
71858
"Deciduous_Red_Trees_SSS_2"
Float
SSS_DecidRTrees+C
71859
"Spruce_Short_Trees_SSS_2"
Float
SSS_SpruceShortTrees+C
71860
"Spruce_Middle_Trees_SSS_2"
Float
SSS_SpruceMiddleTrees+C
71861
"Spruce_Tall_1_Trees_SSS_2"
Float
SSS_SpruceTall1Trees+C
71862
"Spruce_Tall_2_Trees_SSS_2"
Float
SSS_SpruceTall2Trees+C
71863
"Spruce_Tall_3_Trees_SSS_2"
Float
SSS_SpruceTall3Trees+C
71864
"Spruce_Tall_4_Trees_SSS_2"
Float
SSS_SpruceTall4Trees+C
71865
"Spruce_Tall_5_Trees_SSS_2"
Float
SSS_SpruceTall5Trees+C
71866
"Bushes_Yellow_SSS_2"
Float
SSS_BushesY+C
71867
"Bushes_Yellow_Green_SSS_2"
Float
SSS_BushesYG+C
71868
"Bushes_Brown_SSS_2"
Float
SSS_BushesBrown+C
71869
"Bushes_Empty_SSS_2"
Float
SSS_BushesEmpty+C
71870
"Moss_SSS_2"
Float
2grassSSS_Moss+C
71871
"Deciduous_Grass_1_SSS_2"
Float
2grassSSS_DecidGreen1+C
71872
"Deciduous_Grass_2_SSS_2"
Float
2grassSSS_DecidGreen2+C
71873
"Deciduous_Grass_3_SSS_2"
Float
2grassSSS_DecidGreen3+C
71874
"Simple_Green_Grass_1_SSS_2"
Float
2grassSSS_SimpleGreen1+C
71875
"Simple_Green_Grass_2_SSS_2"
Float
2grassSSS_SimpleGreen2+C
71876
"Simple_Green_Grass_Apart_SSS_2"
Float
2grassSSS_SimpleGreenApart+C
71877
"Simple_Green_Grass_Apart_Dry_SSS_2"
Float
2grassSSS_SimpleGreenApartDry+C
71878
"Red_Green_Grass_SSS_2"
Float
2grassSSS_RedGreen+C
71879
"Leafy_Grass_SSS_2"
Float
2grassSSS_GrassGLeaves+C
71880
"Yellow_Grass_SSS_2"
Float
2grassSSS_GrassY+C
71881
"Brown_Grass_1_SSS_2"
Float
2grassSSS_GrassB1+C
71882
"Brown_Grass_2_SSS_2"
Float
2grassSSS_GrassB2+C
71883
"Flowers_SSS_2"
Float
2grassSSS_GrassFlowers+C
71884
"Fallen_Leaves_SSS_2"
Float
2grassSSS_FallenLeaves+C
71885
"Corn_Fields_1_SSS_2"
Float
2grassSSS_CornField1+C
71886
"Bulrush_SSS_2"
Float
2grassSSS_Bulrush+C
71954
"Grass Trees Bushes / Snowy Hirschfelden"
000000
1
71955
"Deciduous_Green_Trees_Snowy"
Float
Snowy_DecidGTrees
71956
"Deciduous_Yellow_Green_Trees_Snowy"
Float
Snowy_DecidYGTrees
71957
"Deciduous_Yellow_Trees_Snowy"
Float
Snowy_DecidYTrees
71958
"Deciduous_Yellow_Red_Trees_Snowy"
Float
Snowy_DecidYRTrees
71959
"Deciduous_Red_Trees_Snowy"
Float
Snowy_DecidRTrees
71960
"Spruce_Short_Trees_Snowy"
Float
Snowy_SpruceShortTrees
71961
"Spruce_Middle_Trees_Snowy"
Float
Snowy_SpruceMiddleTrees
71962
"Spruce_Tall_1_Trees_Snowy"
Float
Snowy_SpruceTall1Trees
71963
"Spruce_Tall_2_Trees_Snowy"
Float
Snowy_SpruceTall2Trees
71964
"Spruce_Tall_3_Trees_Snowy"
Float
Snowy_SpruceTall3Trees
71965
"Spruce_Tall_4_Trees_Snowy"
Float
Snowy_SpruceTall4Trees
71966
"Spruce_Tall_5_Trees_Snowy"
Float
Snowy_SpruceTall5Trees
71967
"Bushes_Yellow_Snowy"
Float
Snowy_BushesY
71968
"Bushes_Yellow_Green_Snowy"
Float
Snowy_BushesYG
71969
"Bushes_Brown_Snowy"
Float
Snowy_BushesBrown
71970
"Bushes_Empty_Snowy"
Float
Snowy_BushesEmpty
71971
"Moss_Snowy"
Float
Snowy_Moss
71972
"Deciduous_Grass_1_Snowy"
Float
Snowy_DecidGreen1
71973
"Deciduous_Grass_2_Snowy"
Float
Snowy_DecidGreen2
71974
"Deciduous_Grass_3_Snowy"
Float
Snowy_DecidGreen3
71975
"Simple_Green_Grass_1_Snowy"
Float
Snowy_SimpleGreen1
71976
"Simple_Green_Grass_2_Snowy"
Float
Snowy_SimpleGreen2
71977
"Simple_Green_Grass_Apart_Snowy"
Float
Snowy_SimpleGreenApart
71978
"Simple_Green_Grass_Apart_Dry_Snowy"
Float
Snowy_SimpleGreenApartDry
71979
"Red_Green_Grass_Snowy"
Float
Snowy_RedGreen
71980
"Leafy_Grass_Snowy"
Float
Snowy_GrassGLeaves
71981
"Yellow_Grass_Snowy"
Float
Snowy_GrassY
71982
"Brown_Grass_1_Snowy"
Float
Snowy_GrassB1
71983
"Brown_Grass_2_Snowy"
Float
Snowy_GrassB2
71984
"Flowers_Snowy"
Float
Snowy_GrassFlowers
71985
"Fallen_Leaves_Snowy"
Float
Snowy_FallenLeaves
71986
"Corn_Fields_1_Snowy"
Float
Snowy_CornField1
71987
"Bulrush_Snowy"
Float
Snowy_Bulrush
71988
"Grass Trees Bushes / Foliage Scale Hirschfelden"
000000
1
71989
"Deciduous_Green_Trees_Scale"
Float
Scale_DecidGTrees
71990
"Deciduous_Yellow_Green_Trees_Scale"
Float
Scale_DecidYGTrees
71991
"Deciduous_Yellow_Trees_Scale"
Float
Scale_DecidYTrees
71992
"Deciduous_Yellow_Red_Trees_Scale"
Float
Scale_DecidYRTrees
71993
"Deciduous_Red_Trees_Scale"
Float
Scale_DecidRTrees
71994
"Spruce_Short_Trees_Scale"
Float
Scale_SpruceShortTrees
71995
"Spruce_Middle_Trees_Scale"
Float
Scale_SpruceMiddleTrees
71996
"Spruce_Tall_1_Trees_Scale"
Float
Scale_SpruceTall1Trees
71997
"Spruce_Tall_2_Trees_Scale"
Float
Scale_SpruceTall2Trees
71998
"Spruce_Tall_3_Trees_Scale"
Float
Scale_SpruceTall3Trees
71999
"Spruce_Tall_4_Trees_Scale"
Float
Scale_SpruceTall4Trees
72000
"Spruce_Tall_5_Trees_Scale"
Float
Scale_SpruceTall5Trees
72001
"Bushes_Yellow_Scale"
Float
Scale_BushesY
72002
"Bushes_Yellow_Green_Scale"
Float
Scale_BushesYG
72003
"Bushes_Brown_Scale"
Float
Scale_BushesBrown
72004
"Bushes_Empty_Scale"
Float
Scale_BushesEmpty
72005
"Moss_Scale"
Float
Scale_Moss
72006
"Deciduous_Grass_1_Scale"
Float
Scale_DecidGreen1
72007
"Deciduous_Grass_2_Scale"
Float
Scale_DecidGreen2
72008
"Deciduous_Grass_3_Scale"
Float
Scale_DecidGreen3
72009
"Simple_Green_Grass_1_Scale"
Float
Scale_SimpleGreen1
72010
"Simple_Green_Grass_2_Scale"
Float
Scale_SimpleGreen2
72011
"Simple_Green_Grass_Apart_Scale"
Float
Scale_SimpleGreenApart
72012
"Simple_Green_Grass_Apart_Dry_Scale"
Float
Scale_SimpleGreenApartDry
72013
"Red_Green_Grass_Scale"
Float
Scale_RedGreen
72014
"Leafy_Grass_Scale"
Float
Scale_GrassGLeaves
72015
"Yellow_Grass_Scale"
Float
Scale_GrassY
72016
"Brown_Grass_1_Scale"
Float
Scale_GrassB1
72017
"Brown_Grass_2_Scale"
Float
Scale_GrassB2
72018
"Flowers_Scale"
Float
Scale_GrassFlowers
72019
"Fallen_Leaves_Scale"
Float
Scale_FallenLeaves
72020
"Corn_Fields_1_Scale"
Float
Scale_CornField1
72021
"Bulrush_Scale"
Float
Scale_Bulrush
71349
"Grass / UV Hirschfelden"
1
72023
"Deciduous_Green_Trees_UV1"
Float
UV_DecidGTrees
72057
"Deciduous_Green_Trees_UV2"
Float
UV_DecidGTrees+4
72024
"Deciduous_Yellow_Green_Trees_UV1"
Float
UV_DecidYGTrees
72058
"Deciduous_Yellow_Green_Trees_UV2"
Float
UV_DecidYGTrees+4
72025
"Deciduous_Yellow_Trees_UV1"
Float
UV_DecidYTrees
72059
"Deciduous_Yellow_Trees_UV2"
Float
UV_DecidYTrees+4
72026
"Deciduous_Yellow_Red_Trees_GlowUV1"
Float
UV_DecidYRTrees
72060
"Deciduous_Yellow_Red_Trees_GlowUV2"
Float
UV_DecidYRTrees+4
72027
"Deciduous_Red_Trees_UV1"
Float
UV_DecidRTrees
72061
"Deciduous_Red_Trees_UV2"
Float
UV_DecidRTrees+4
72028
"Spruce_Short_Trees_UV1"
Float
UV_SpruceShortTrees
72062
"Spruce_Short_Trees_UV2"
Float
UV_SpruceShortTrees+4
72029
"Spruce_Middle_Trees_UV1"
Float
UV_SpruceMiddleTrees
72063
"Spruce_Middle_Trees_UV2"
Float
UV_SpruceMiddleTrees+4
72030
"Spruce_Tall_1_Trees_UV1"
Float
UV_SpruceTall1Trees
72064
"Spruce_Tall_1_Trees_UV2"
Float
UV_SpruceTall1Trees+4
72031
"Spruce_Tall_2_Trees_UV1"
Float
UV_SpruceTall2Trees
72065
"Spruce_Tall_2_Trees_UV2"
Float
UV_SpruceTall2Trees+4
72032
"Spruce_Tall_3_Trees_UV1"
Float
UV_SpruceTall3Trees
72066
"Spruce_Tall_3_Trees_UV2"
Float
UV_SpruceTall3Trees+4
72033
"Spruce_Tall_4_Trees_UV1"
Float
UV_SpruceTall4Trees
72067
"Spruce_Tall_4_Trees_UV2"
Float
UV_SpruceTall4Trees+4
72034
"Spruce_Tall_5_Trees_UV1"
Float
UV_SpruceTall5Trees
72068
"Spruce_Tall_5_Trees_UV2"
Float
UV_SpruceTall5Trees+4
72035
"Bushes_Yellow_UV1"
Float
UV_BushesY
72069
"Bushes_Yellow_UV2"
Float
UV_BushesY+4
72036
"Bushes_Yellow_Green_UV1"
Float
UV_BushesYG
72070
"Bushes_Yellow_Green_UV2"
Float
UV_BushesYG+4
72037
"Bushes_Brown_UV1"
Float
UV_BushesBrown
72071
"Bushes_Brown_UV2"
Float
UV_BushesBrown+4
72038
"Bushes_Empty_UV1"
Float
UV_BushesEmpty
72072
"Bushes_Empty_UV2"
Float
UV_BushesEmpty+4
72039
"Moss_UV1"
Float
UV_Moss
72073
"Moss_UV2"
Float
UV_Moss+4
72040
"Deciduous_Grass_1_UV1"
Float
UV_DecidGreen1
72074
"Deciduous_Grass_1_UV2"
Float
UV_DecidGreen1+4
72041
"Deciduous_Grass_2_UV1"
Float
UV_DecidGreen2
72075
"Deciduous_Grass_2_UV2"
Float
UV_DecidGreen2+4
72042
"Deciduous_Grass_3_UV1"
Float
UV_DecidGreen3
72076
"Deciduous_Grass_3_UV2"
Float
UV_DecidGreen3+4
72043
"Simple_Green_Grass_1_UV1"
Float
UV_SimpleGreen1
72077
"Simple_Green_Grass_1_UV2"
Float
UV_SimpleGreen1+4
72044
"Simple_Green_Grass_2_UV1"
Float
UV_SimpleGreen2
72078
"Simple_Green_Grass_2_UV2"
Float
UV_SimpleGreen2+4
72045
"Simple_Green_Grass_Apart_UV1"
Float
UV_SimpleGreenApart
72079
"Simple_Green_Grass_Apart_UV2"
Float
UV_SimpleGreenApart+4
72046
"Simple_Green_Grass_Apart_Dry_UV1"
Float
UV_SimpleGreenApartDry
72080
"Simple_Green_Grass_Apart_Dry_UV2"
Float
UV_SimpleGreenApartDry+4
72047
"Red_Green_Grass_UV1"
Float
UV_RedGreen
72081
"Red_Green_Grass_UV2"
Float
UV_RedGreen+4
72048
"Leafy_Grass_UV1"
Float
UV_GrassGLeaves
72082
"Leafy_Grass_UV2"
Float
UV_GrassGLeaves+4
72049
"Yellow_Grass_UV1"
Float
UV_GrassY
72083
"Yellow_Grass_UV2"
Float
UV_GrassY+4
72050
"Brown_Grass_1_UV1"
Float
UV_GrassB1
72084
"Brown_Grass_1_UV2"
Float
UV_GrassB1+4
72051
"Brown_Grass_2_UV1"
Float
UV_GrassB2
72085
"Brown_Grass_2_UV2"
Float
UV_GrassB2+4
72052
"Flowers_UV1"
Float
UV_GrassFlowers
72086
"Flowers_UV2"
Float
UV_GrassFlowers+4
72053
"Fallen_Leaves_UV1"
Float
UV_FallenLeaves
72087
"Fallen_Leaves_UV2"
Float
UV_FallenLeaves+4
72054
"Corn_Fields_1_UV1"
Float
UV_CornField1
72088
"Corn_Fields_1_UV2"
Float
UV_CornField1+4
72055
"Bulrush_UV1"
Float
UV_Bulrush
72089
"Bulrush_UV2"
Float
UV_Bulrush+4
41079
"Layton Lake"
4080FF
1
70402
"Activate Layton"
0000FF
Auto Assembler Script
[ENABLE]
////////////////////////////////////////////////////////////////////////////
/////////////////////// TREES /////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(CompareDecidTrees,128)
CompareDecidTrees:
dw #999, #12, #13, #14, #16, #18, #19, #20, #21, #22, #73, #77, #78, #79, #80 //15
globalalloc(CompareDecidEmpty,128)
CompareDecidEmpty:
dw #999, #15, #17, #23, #24, #25, #26, #27, #28, #29 //10
globalalloc(CompareSpruceTreeTallG,128)
CompareSpruceTreeTallG:
dw #999, #33, #34, #40, #42, #43, #44, #45, #59, #60, #61, #64, #65, #66, #67 // 15
globalalloc(CompareSpruceTreeTall2G,128)
CompareSpruceTreeTall2G:
dw #999, #30, #31, #32, #58 // 5
globalalloc(CompareSpruceTreeMiddleG,128)
CompareSpruceTreeMiddleG:
dw #999, #35, #36, #62, #68, #247 // 6
globalalloc(CompareSpruceTreeShortG,128)
CompareSpruceTreeShortG:
dw #999, #37, #38, #39, #63, #69, #70, #248, #249, #250 // 10
globalalloc(CompareSpruceTreeEmpty,128)
CompareSpruceTreeEmpty:
dw #999, #41 // 2
globalalloc(CompareSpruceTallY,128)
CompareSpruceTallY:
dw #999, #51, #52, #53, #54 //5
globalalloc(CompareSpruceMiddleY,128)
CompareSpruceMiddleY:
dw #999, #55, #275 // 3
globalalloc(CompareSpruceShortY,128)
CompareSpruceShortY:
dw #999, #56, #57, #276 // 4
globalalloc(CompareRocks,128)
CompareRocks:
dw #999, #81, #82, #83, #84, #85, #86, #87, #88, #89, #90, #91, #92, #93, #94, #95, #96, #97, #98
dw #99, #100, #101, #102, #103, #104, #105, #106, #107, #108, #109, #110, #111, #112, #113
dw #114, #115, #116, #117, #118, #119, #120, #121, #122, #123, #124, #125, #126, #127, #128
dw #129, #130, #131, #132, #208, #209, #210, #211, #273, #274, #284, #285, #286, #287, #288 //64
globalalloc(CompareGrass,256)
CompareGrass:
dw #999, #131, #132, #133, #134, #135, #136, #137, #138, #139, #140, #141, #142, #143, #144, #145
dw #146, #147, #148, #149, #150, #151, #152, #153, #154, #157, #158, #159, #160, #161, #172
dw #173, #174, #175, #176, #177, #178, #179, #180, #181, #182, #183, #184, #170, #185, #186
dw #187, #188, #189, #190, #191, #192, #193, #194, #195, #196, #197, #206, #207, #212, #213
dw #214, #215, #216, #217, #218, #219, #220, #221, #222, #223, #224, #225, #226, #227, #228
dw #229, #230, #231, #232, #233, #234, #235, #236, #237, #238, #239, #240, #245, #246, #251
dw #252, #253, #254, #255, #256, #257, #258, #260, #261, #268, #269, #270, #271, #272, #277 //106
dw #278, #280, #283, #289, #290 // 111
dw #171, #241, #242, #243, #244 // 116
globalalloc(CompareBushes,128)
CompareBushes:
dw #999, #71, #72, #74, #75, #76, #155, #156, #259, #281, #282 // 11
globalalloc(CompareLogs,128)
CompareLogs:
dw #999, #46, #47, #48, #49, #50, #162, #163, #164, #165, #166, #167, #168, #169, #262, #263, #264
dw #265, #266, #267, #279 //21
////////////////////////////////////////////////////////////////////////////
/////////////////////// GRASS /////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(CompareGrass1,128)
CompareGrass1: // Tiny Sprus
dw #999, #78, #79, #80 // 4
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(CompareGrass2,128)
CompareGrass2: // Simple Yellow
dw #999, #179, #180, #181, #194 // 5
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(CompareGrass2S11,128)
CompareGrass2S11: // Simple Yellow Seed 1.1
dw #999, #190, #191 // 3
globalalloc(CompareGrass2S12,128)
CompareGrass2S12: // Simple Yellow Seed 1.2
dw #999, #192, #193 // 3
globalalloc(CompareGrass2S13,128)
CompareGrass2S13: // Simple Yellow
dw #999, #182, #183, #184, #185, #186, #187, #188, #189 // 9
globalalloc(CompareGrass2S14,128)
CompareGrass2S14: // Simple Yellow
dw #999, #195, #196, #197, #198, #199, #200, #201, #202 // 9
globalalloc(CompareGrass2S15,128)
CompareGrass2S15: // Simple Yellow
dw #999, #203, #204, #205, #206 // 5
globalalloc(CompareGrass3,128)
CompareGrass3: // Simple Green
dw #999, #216, #217, #218 // 4
globalalloc(CompareGrass4,128)
CompareGrass4: // Fern
dw #999, #231, #232, #233, #234, #235, #236, #237, #238, #239 // 10
globalalloc(CompareGrass5,128)
CompareGrass5: // Moss
dw #999, #245, #246, #247, #248, #249, #250 // 7
globalalloc(CompareGrass6,128)
CompareGrass6: // Deciduous Grass
dw #999, #251, #252, #253, #254, #255, #256, #257 // 8
globalalloc(CompareGrass6RG,128)
CompareGrass6RG: // Deciduous Grass Red-Green
dw #999, #258, #259, #260, #261, #262, #263, #264, #265, #266, #267, #268 // 12
globalalloc(CompareGrass7,128)
CompareGrass7: // Red Deciduous
dw #999, #272, #273, #274, #275, #276 // 6
globalalloc(CompareGrass8,128)
CompareGrass8: // Grass Brown
dw #999, #278, #279, #280, #281 // 5
globalalloc(CompareGrass8Leaves,128)
CompareGrass8Leaves: // Grass Brown w/o Flowers
dw #999, #282, #283, #284, #285, #286, #287 // 7
globalalloc(CompareGrass9,128)
CompareGrass9: // Grass 1
dw #999, #210, #211, #212 // 4
globalalloc(CompareGrass9Redish,128)
CompareGrass9Redish: // Grass 1 Redish
dw #999, #269, #270 // 3
globalalloc(CompareGrass10,128)
CompareGrass10: // Grass 2
dw #999, #213, #214, #215 // 4
globalalloc(CompareGrass11,128)
CompareGrass11: // Grass 3
dw #999, #299, #300, #301, #304, #305, #306, #307 // 8
globalalloc(CompareGrass12,128)
CompareGrass12: // Bulrush
dw #999, #241, #242, #243, #244 // 5
////////////////////////////////////////////////////////////////////////////
/////////////////////// /////////////////////////////////
////////////////////////////////////////////////////////////////////////////
globalalloc(2CompareDecidTrees,128)
2CompareDecidTrees: ////// --- 39
dw #999, #0, #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #14, #15, #16, #17, #22, #23, #24, #25, #26 //21
dw #27, #28, #29, #30, #31, #152, #153, #154, #155, #167, #168, #169, #170, #171, #172, #173 //16
dw #174, #175, #176 //3
globalalloc(2CompareDecidEmpty,128)
2CompareDecidEmpty: ////// --- 20
dw #999, #11, #12, #13, #18, #19, #20, #21, #32, #33, #34, #35, #36, #37, #38, #39, #40, #41 //18
dw #42, #43, #44 //3
globalalloc(2CompareSpruceTreeTallG,128)
2CompareSpruceTreeTallG: ////// --- 36
dw #999, #57, #58, #59, #60, #61, #62, #63, #64, #81, #82, #83, #84, #85, #86 //15
dw #87, #88, #89, #90, #91, #92, #93, #94, #95, #122, #123, #124, #125, #126 //14
dw #127, #128, #129, #136, #137, #138, #139, #140 //8
globalalloc(2CompareSpruceTreeTall2G,128)
2CompareSpruceTreeTall2G: ////// --- 15
dw #999, #45, #46, #47, #48, #49, #50, #51, #52 //9
dw #53, #54, #55, #56, #119, #120, #121 // 7
globalalloc(2CompareSpruceTreeMiddleG,128)
2CompareSpruceTreeMiddleG: ////// --- 11
dw #999, #65, #66, #67, #68, #69, #70, #71, #130, #131, #132, #141 //12
globalalloc(2CompareSpruceTreeShortG,128)
2CompareSpruceTreeShortG: ////// --- 14
dw #999, #72, #73, #74, #75, #76, #77, #78, #79, #80, #133, #134, #135, #142, #143 //15
globalalloc(2CompareSpruceTallY,128)
2CompareSpruceTallY: ////// --- 14
dw #999, #96, #97, #98, #99, #100, #101, #102, #103, #104, #105, #106, #107, #108, #109 //15
globalalloc(2CompareSpruceMiddleY,128)
2CompareSpruceMiddleY: ////// --- 3
dw #999, #110, #111, #112 //4
globalalloc(2CompareSpruceShortY,128)
2CompareSpruceShortY: ////// --- 3
dw #999, #113, #114, #115 //4
globalalloc(2CompareBushes,128)
2CompareBushes: ////// --- 25
dw #999, #144, #145, #146, #147, #148, #149, #150, #151, #156, #157, #158, #159, #160, #161, #162 //16
dw #163, #164, #165, #166, #223, #224, #225, #226, #227, #228 //10
[DISABLE]
39757
"Trees / Replacers Layton"
Auto Assembler Script
[ENABLE]
alloc(DecidTree,4)
alloc(DecidEmpty,4)
alloc(SpruceTreeTallG,4)
alloc(SpruceTreeTall2G,4)
alloc(SpruceTreeMiddleG,4)
alloc(SpruceTreeShortG,4)
alloc(SpruceTreeEmpty,4)
alloc(SpruceTallY,4)
alloc(SpruceMiddleY,4)
alloc(SpruceShortY,4)
alloc(Rocks,4)
alloc(Grass,4)
alloc(Bushes,4)
alloc(Logs,4)
alloc(DecidEmptyOnOff,4)
alloc(SpruceTreeTallGOnOff,4)
alloc(SpruceTreeTall2GOnOff,4)
alloc(SpruceTreeMiddleGOnOff,4)
alloc(SpruceTreeShortGOnOff,4)
alloc(SpruceTreeEmptyOnOff,4)
alloc(SpruceTallYOnOff,4)
alloc(SpruceMiddleYOnOff,4)
alloc(SpruceShortYOnOff,4)
alloc(RocksOnOff,4)
alloc(GrassOnOff,4)
alloc(BushesOnOff,4)
alloc(LogsOnOff,4)
DecidTree:
dw #2
DecidEmpty:
dw #2
SpruceTreeTallG:
dw #3
SpruceTreeTall2G:
dw #3
SpruceTreeMiddleG:
dw #3
SpruceTreeShortG:
dw #3
SpruceTreeEmpty:
dw #3
SpruceTallY:
dw #3
SpruceMiddleY:
dw #3
SpruceShortY:
dw #3
Rocks:
dw #1
Grass:
dw #4
Bushes:
dw #4
Logs:
dw #5
globalalloc(DecidTreesOnOff,4)
DecidTreesOnOff:
dd #1
DecidEmptyOnOff:
dd #1
SpruceTreeTallGOnOff:
dd #1
SpruceTreeTall2GOnOff:
dd #1
SpruceTreeMiddleGOnOff:
dd #1
SpruceTreeShortGOnOff:
dd #1
SpruceTreeEmptyOnOff:
dd #1
SpruceTallYOnOff:
dd #1
SpruceMiddleYOnOff:
dd #1
SpruceShortYOnOff:
dd #1
RocksOnOff:
dd #1
GrassOnOff:
dd #1
BushesOnOff:
dd #1
LogsOnOff:
dd #1
registersymbol(DecidTree)
registersymbol(DecidEmpty)
registersymbol(SpruceTreeTallG)
registersymbol(SpruceTreeTall2G)
registersymbol(SpruceTreeMiddleG)
registersymbol(SpruceTreeShortG)
registersymbol(SpruceTreeEmpty)
registersymbol(SpruceTallY)
registersymbol(SpruceMiddleY)
registersymbol(SpruceShortY)
registersymbol(Rocks)
registersymbol(Grass)
registersymbol(Bushes)
registersymbol(Logs)
registersymbol(DecidEmptyOnOff)
registersymbol(SpruceTreeTallGOnOff)
registersymbol(SpruceTreeTall2GOnOff)
registersymbol(SpruceTreeMiddleGOnOff)
registersymbol(SpruceTreeShortGOnOff)
registersymbol(SpruceTreeEmptyOnOff)
registersymbol(SpruceTallYOnOff)
registersymbol(SpruceMiddleYOnOff)
registersymbol(SpruceShortYOnOff)
registersymbol(RocksOnOff)
registersymbol(GrassOnOff)
registersymbol(BushesOnOff)
registersymbol(LogsOnOff)
aobscanmodule(foliage_replace,theHunterCotW_F.exe,8B 45 2C 25 FF FF FF 1F 66 44 89 7C FB 04) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+9495D4)
label(code)
label(return)
newmem:
// Save from crash because of critical value
cmp [DecidTree],#290
jng short @f
mov [DecidTree],#0
@@:
cmp [DecidEmpty],#290
jng short @f
mov [DecidEmpty],#0
@@:
cmp [SpruceTreeTallG],#290
jng short @f
mov [SpruceTreeTallG],#0
@@:
cmp [SpruceTreeTall2G],#290
jng short @f
mov [SpruceTreeTall2G],#0
@@:
cmp [SpruceTreeMiddleG],#290
jng short @f
mov [SpruceTreeMiddleG],#0
@@:
cmp [SpruceTreeShortG],#290
jng short @f
mov [SpruceTreeShortG],#0
@@:
cmp [SpruceTreeEmpty],#290
jng short @f
mov [SpruceTreeEmpty],#0
@@:
cmp [SpruceTallY],#290
jng short @f
mov [SpruceTallY],#0
@@:
cmp [SpruceMiddleY],#290
jng short @f
mov [SpruceMiddleY],#0
@@:
cmp [SpruceShortY],#290
jng short @f
mov [SpruceShortY],#0
@@:
cmp [Rocks],#290
jng short @f
mov [Rocks],#0
@@:
cmp [GrassOnOff],#290
jng short @f
mov [GrassOnOff],#0
@@:
cmp [Bushes],#290
jng short @f
mov [Bushes],#0
@@:
cmp [Logs],#290
jng short @f
mov [Logs],#0
@@:
push ecx
push edi
mov rcx,DecidTreesOnOff // "cmp [DecidTreesOnOff],0" won't work
cmp [rcx],0 // or cause crash
je notDecidTrees
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTrees
yepDecidTrees:
pop edi
pop ecx
mov eax,[DecidTree]
and eax,1FFFFFFF
jmp return
notDecidTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidEmptyOnOff
cmp [rcx],0
je notDecidEmpty
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop edi
pop ecx
mov eax,[DecidEmpty]
and eax,1FFFFFFF
jmp return
notDecidEmpty:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeTallGOnOff
cmp [rcx],0
je notSpruceTreeTallG
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop edi
pop ecx
mov eax,[SpruceTreeTallG]
and eax,1FFFFFFF
jmp return
notSpruceTreeTallG:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeTall2GOnOff
cmp [rcx],0
je notSpruceTreeTall2G
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop edi
pop ecx
mov eax,[SpruceTreeTall2G]
and eax,1FFFFFFF
jmp return
notSpruceTreeTall2G:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeMiddleGOnOff
cmp [rcx],0
je notSpruceTreeMiddleG
xor rcx,rcx
mov cl,(int)17
mov rdi,CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop edi
pop ecx
mov eax,[SpruceTreeMiddleG]
and eax,1FFFFFFF
jmp return
notSpruceTreeMiddleG:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeShortGOnOff
cmp [rcx],0
je notSpruceTreeShortG
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop edi
pop ecx
mov eax,[SpruceTreeShortG]
and eax,1FFFFFFF
jmp return
notSpruceTreeShortG:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeEmptyOnOff
cmp [rcx],0
je notSpruceTreeEmpty
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareSpruceTreeEmpty
myloopSpruceTreeEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeEmpty
loop myloopSpruceTreeEmpty
jmp notSpruceTreeEmpty
yepSpruceTreeEmpty:
pop edi
pop ecx
mov eax,[SpruceTreeEmpty]
and eax,1FFFFFFF
jmp return
notSpruceTreeEmpty:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTallYOnOff
cmp [rcx],0
je notSpruceTallY
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop edi
pop ecx
mov eax,[SpruceTallY]
and eax,1FFFFFFF
jmp return
notSpruceTallY:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceMiddleYOnOff
cmp [rcx],0
je notSpruceMiddleY
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop edi
pop ecx
mov eax,[SpruceMiddleY]
and eax,1FFFFFFF
jmp return
notSpruceMiddleY:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceShortYOnOff
cmp [rcx],0
je notSpruceShortY
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop edi
pop ecx
mov eax,[SpruceShortY]
and eax,1FFFFFFF
jmp return
notSpruceShortY:
pop edi
pop ecx
push ecx
push edi
mov rcx,RocksOnOff
cmp [rcx],0
je notRocks
xor rcx,rcx
mov cl,(int)63
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[Rocks]
and eax,1FFFFFFF
jmp return
notRocks:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassOnOff
cmp [rcx],0
je notGrass
xor rcx,rcx
mov cl,(int)115
mov rdi,CompareGrass
myloopGrass:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepGrass
loop myloopGrass
jmp notGrass
yepGrass:
pop edi
pop ecx
mov eax,[Grass]
and eax,1FFFFFFF
jmp return
notGrass:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesOnOff
cmp [rcx],0
je notBushes
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareBushes
myloopBushes:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepBushes
loop myloopBushes
jmp notBushes
yepBushes:
pop edi
pop ecx
mov eax,[Bushes]
and eax,1FFFFFFF
jmp return
notBushes:
pop edi
pop ecx
push ecx
push edi
mov rcx,LogsOnOff
cmp [rcx],0
je code
xor rcx,rcx
mov cl,(int)20
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp code
yepLogs:
pop edi
pop ecx
mov eax,[Logs]
and eax,1FFFFFFF
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+2C]
and eax,1FFFFFFF
jmp return
foliage_replace:
jmp newmem
nop
nop
nop
return:
registersymbol(foliage_replace)
[DISABLE]
foliage_replace:
db 8B 45 2C 25 FF FF FF 1F
unregistersymbol(DecidTree)
unregistersymbol(DecidEmpty)
unregistersymbol(SpruceTreeTallG)
unregistersymbol(SpruceTreeTall2G)
unregistersymbol(SpruceTreeMiddleG)
unregistersymbol(SpruceTreeShortG)
unregistersymbol(SpruceTreeEmpty)
unregistersymbol(SpruceTallY)
unregistersymbol(SpruceMiddleY)
unregistersymbol(SpruceShortY)
unregistersymbol(Rocks)
unregistersymbol(Grass)
unregistersymbol(Bushes)
unregistersymbol(Logs)
unregistersymbol(DecidEmptyOnOff)
unregistersymbol(SpruceTreeTallGOnOff)
unregistersymbol(SpruceTreeTall2GOnOff)
unregistersymbol(SpruceTreeMiddleGOnOff)
unregistersymbol(SpruceTreeShortGOnOff)
unregistersymbol(SpruceTreeEmptyOnOff)
unregistersymbol(SpruceTallYOnOff)
unregistersymbol(SpruceMiddleYOnOff)
unregistersymbol(SpruceShortYOnOff)
unregistersymbol(RocksOnOff)
unregistersymbol(GrassOnOff)
unregistersymbol(BushesOnOff)
unregistersymbol(LogsOnOff)
unregistersymbol(foliage_replace)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+9495D4
"theHunterCotW_F.exe"+9495AE: E8 ED 0D 00 00 - call theHunterCotW_F.exe+94A3A0
"theHunterCotW_F.exe"+9495B3: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+9495B6: 4C 8B 4C 24 50 - mov r9,[rsp+50]
"theHunterCotW_F.exe"+9495BB: 48 8B 54 24 68 - mov rdx,[rsp+68]
"theHunterCotW_F.exe"+9495C0: 89 46 30 - mov [rsi+30],eax
"theHunterCotW_F.exe"+9495C3: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+9495C6: 89 46 34 - mov [rsi+34],eax
"theHunterCotW_F.exe"+9495C9: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+9495CC: 89 46 38 - mov [rsi+38],eax
"theHunterCotW_F.exe"+9495CF: F3 0F 11 76 3C - movss [rsi+3C],xmm6
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+9495D4: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+9495D7: 25 FF FF FF 1F - and eax,1FFFFFFF
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+9495DC: 66 44 89 7C FB 04 - mov [rbx+rdi*8+04],r15w
"theHunterCotW_F.exe"+9495E2: 89 04 FB - mov [rbx+rdi*8],eax
"theHunterCotW_F.exe"+9495E5: 66 44 89 6C FB 06 - mov [rbx+rdi*8+06],r13w
"theHunterCotW_F.exe"+9495EB: 41 FF 01 - inc [r9]
"theHunterCotW_F.exe"+9495EE: 45 3B FC - cmp r15d,r12d
"theHunterCotW_F.exe"+9495F1: 0F 84 A8 00 00 00 - je theHunterCotW_F.exe+94969F
"theHunterCotW_F.exe"+9495F7: 41 0F 28 F0 - movaps xmm6,xmm8
"theHunterCotW_F.exe"+9495FB: F3 41 0F 5C F1 - subss xmm6,xmm9
"theHunterCotW_F.exe"+949600: F3 41 0F 59 F6 - mulss xmm6,xmm14
"theHunterCotW_F.exe"+949605: F3 41 0F 5F F2 - maxss xmm6,xmm10
}
70598
"Trees / Replacers 2 Layton"
Auto Assembler Script
[ENABLE]
aobscanmodule(foliage_replace2,theHunterCotW_F.exe,8B 45 2C 25 FF FF FF 1F 66 44 89 67) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+949688)
label(code)
label(return)
newmem:
push ecx
push edi
mov rcx,DecidTreesOnOff
cmp [rcx],0
je notDecidTrees
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax,word ptr [rbp+2C]
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTrees
yepDecidTrees:
pop edi
pop ecx
mov eax,[DecidTree]
and eax,1FFFFFFF
jmp return
notDecidTrees:
pop edi
pop ecx
push ecx
push edi
mov rcx,DecidEmptyOnOff
cmp [rcx],0
je notDecidEmpty
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop edi
pop ecx
mov eax,[DecidEmpty]
and eax,1FFFFFFF
jmp return
notDecidEmpty:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeTallGOnOff
cmp [rcx],0
je notSpruceTreeTallG
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop edi
pop ecx
mov eax,[SpruceTreeTallG]
and eax,1FFFFFFF
jmp return
notSpruceTreeTallG:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeTall2GOnOff
cmp [rcx],0
je notSpruceTreeTall2G
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop edi
pop ecx
mov eax,[SpruceTreeTall2G]
and eax,1FFFFFFF
jmp return
notSpruceTreeTall2G:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeMiddleGOnOff
cmp [rcx],0
je notSpruceTreeMiddleG
xor rcx,rcx
mov cl,(int)17
mov rdi,CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop edi
pop ecx
mov eax,[SpruceTreeMiddleG]
and eax,1FFFFFFF
jmp return
notSpruceTreeMiddleG:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeShortGOnOff
cmp [rcx],0
je notSpruceTreeShortG
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop edi
pop ecx
mov eax,[SpruceTreeShortG]
and eax,1FFFFFFF
jmp return
notSpruceTreeShortG:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTreeEmptyOnOff
cmp [rcx],0
je notSpruceTreeEmpty
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareSpruceTreeEmpty
myloopSpruceTreeEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeEmpty
loop myloopSpruceTreeEmpty
jmp notSpruceTreeEmpty
yepSpruceTreeEmpty:
pop edi
pop ecx
mov eax,[SpruceTreeEmpty]
and eax,1FFFFFFF
jmp return
notSpruceTreeEmpty:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceTallYOnOff
cmp [rcx],0
je notSpruceTallY
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop edi
pop ecx
mov eax,[SpruceTallY]
and eax,1FFFFFFF
jmp return
notSpruceTallY:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceMiddleYOnOff
cmp [rcx],0
je notSpruceMiddleY
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop edi
pop ecx
mov eax,[SpruceMiddleY]
and eax,1FFFFFFF
jmp return
notSpruceMiddleY:
pop edi
pop ecx
push ecx
push edi
mov rcx,SpruceShortYOnOff
cmp [rcx],0
je notSpruceShortY
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop edi
pop ecx
mov eax,[SpruceShortY]
and eax,1FFFFFFF
jmp return
notSpruceShortY:
pop edi
pop ecx
push ecx
push edi
mov rcx,RocksOnOff
cmp [rcx],0
je notRocks
xor rcx,rcx
mov cl,(int)63
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[Rocks]
and eax,1FFFFFFF
jmp return
notRocks:
pop edi
pop ecx
push ecx
push edi
mov rcx,GrassOnOff
cmp [rcx],0
je notGrass
xor rcx,rcx
mov cl,(int)115
mov rdi,CompareGrass
myloopGrass:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepGrass
loop myloopGrass
jmp notGrass
yepGrass:
pop edi
pop ecx
mov eax,[Grass]
and eax,1FFFFFFF
jmp return
notGrass:
pop edi
pop ecx
push ecx
push edi
mov rcx,BushesOnOff
cmp [rcx],0
je notBushes
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareBushes
myloopBushes:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepBushes
loop myloopBushes
jmp notBushes
yepBushes:
pop edi
pop ecx
mov eax,[Bushes]
and eax,1FFFFFFF
jmp return
notBushes:
pop edi
pop ecx
push ecx
push edi
mov rcx,LogsOnOff
cmp [rcx],0
je code
xor rcx,rcx
mov cl,(int)20
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp code
yepLogs:
pop edi
pop ecx
mov eax,[Logs]
and eax,1FFFFFFF
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+2C]
and eax,1FFFFFFF
jmp return
foliage_replace2:
jmp newmem
nop
nop
nop
return:
registersymbol(foliage_replace2)
[DISABLE]
foliage_replace2:
db 8B 45 2C 25 FF FF FF 1F
unregistersymbol(foliage_replace2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+949688
"theHunterCotW_F.exe"+949664: 48 8B CD - mov rcx,rbp
"theHunterCotW_F.exe"+949667: E8 34 0D 00 00 - call theHunterCotW_F.exe+94A3A0
"theHunterCotW_F.exe"+94966C: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+94966F: 4C 8B 4C 24 50 - mov r9,[rsp+50]
"theHunterCotW_F.exe"+949674: 89 43 30 - mov [rbx+30],eax
"theHunterCotW_F.exe"+949677: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+94967A: 89 43 34 - mov [rbx+34],eax
"theHunterCotW_F.exe"+94967D: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+949680: 89 43 38 - mov [rbx+38],eax
"theHunterCotW_F.exe"+949683: F3 0F 11 73 3C - movss [rbx+3C],xmm6
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+949688: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+94968B: 25 FF FF FF 1F - and eax,1FFFFFFF
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+949690: 66 44 89 67 04 - mov [rdi+04],r12w
"theHunterCotW_F.exe"+949695: 89 07 - mov [rdi],eax
"theHunterCotW_F.exe"+949697: 66 44 89 6F 06 - mov [rdi+06],r13w
"theHunterCotW_F.exe"+94969C: 41 FF 01 - inc [r9]
"theHunterCotW_F.exe"+94969F: 45 85 F6 - test r14d,r14d
"theHunterCotW_F.exe"+9496A2: 0F 84 7F 01 00 00 - je theHunterCotW_F.exe+949827
"theHunterCotW_F.exe"+9496A8: 44 8B 84 24 08 02 00 00 - mov r8d,[rsp+00000208]
"theHunterCotW_F.exe"+9496B0: 33 C9 - xor ecx,ecx
"theHunterCotW_F.exe"+9496B2: 45 85 C0 - test r8d,r8d
"theHunterCotW_F.exe"+9496B5: 7E 25 - jle theHunterCotW_F.exe+9496DC
}
70996
"Trees / Color Mult Layton"
Auto Assembler Script
[ENABLE]
alloc(RcolorDecidTrees,12)
alloc(RcolorDecidEmpty,12)
alloc(RcolorSpruceTreeTallG,12)
alloc(RcolorSpruceTreeTall2G,12)
alloc(RcolorSpruceTreeMiddleG,12)
alloc(RcolorSpruceTreeShortG,12)
alloc(RcolorSpruceTreeEmpty,12)
alloc(RcolorSpruceTallY,12)
alloc(RcolorSpruceMiddleY,12)
alloc(RcolorSpruceShortY,12)
alloc(RcolorRocks,12)
alloc(RcolorGrass,12)
alloc(RcolorBushes,12)
alloc(RcolorLogs,12)
RcolorDecidTrees:
dd (float)1
dd (float)1
dd (float)1
RcolorDecidEmpty:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceTreeTallG:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceTreeTall2G:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceTreeMiddleG:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceTreeShortG:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceTreeEmpty:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceTallY:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceMiddleY:
dd (float)1
dd (float)1
dd (float)1
RcolorSpruceShortY:
dd (float)1
dd (float)1
dd (float)1
RcolorRocks:
dd (float)1
dd (float)1
dd (float)1
RcolorGrass:
dd (float)1
dd (float)1
dd (float)1
RcolorBushes:
dd (float)1
dd (float)1
dd (float)1
RcolorLogs:
dd (float)1
dd (float)1
dd (float)1
registersymbol(RcolorDecidTrees)
registersymbol(RcolorDecidEmpty)
registersymbol(RcolorSpruceTreeTallG)
registersymbol(RcolorSpruceTreeTall2G)
registersymbol(RcolorSpruceTreeMiddleG)
registersymbol(RcolorSpruceTreeShortG)
registersymbol(RcolorSpruceTreeEmpty)
registersymbol(RcolorSpruceTallY)
registersymbol(RcolorSpruceMiddleY)
registersymbol(RcolorSpruceShortY)
registersymbol(RcolorRocks)
registersymbol(RcolorGrass)
registersymbol(RcolorBushes)
registersymbol(RcolorLogs)
aobscanmodule(Color1,theHunterCotW_F.exe,8B 45 20 4C 8B 4C 24 50 48) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+9495B3)
label(code)
label(return)
newmem:
push ecx
push edi
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTree
yepDecidTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorDecidTrees]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorDecidTrees+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorDecidTrees+8]
fstp dword [rsi+38]
jmp return
notDecidTree:
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorDecidEmpty]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorDecidEmpty+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorDecidEmpty+8]
fstp dword [rsi+38]
jmp return
notDecidEmpty:
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceTreeTallG]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceTreeTallG+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceTreeTallG+8]
fstp dword [rsi+38]
jmp return
notSpruceTreeTallG:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceTreeTall2G]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceTreeTall2G+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceTreeTall2G+8]
fstp dword [rsi+38]
jmp return
notSpruceTreeTall2G:
xor rcx,rcx
mov cl,(int)5
mov rdi,CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceTreeMiddleG]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceTreeMiddleG+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceTreeMiddleG+8]
fstp dword [rsi+38]
jmp return
notSpruceTreeMiddleG:
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceTreeShortG]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceTreeShortG+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceTreeShortG+8]
fstp dword [rsi+38]
jmp return
notSpruceTreeShortG:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareSpruceTreeEmpty
myloopSpruceTreeEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeEmpty
loop myloopSpruceTreeEmpty
jmp notSpruceTreeEmpty
yepSpruceTreeEmpty:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceTreeEmpty]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceTreeEmpty+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceTreeEmpty+8]
fstp dword [rsi+38]
jmp return
notSpruceTreeEmpty:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceTallY]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceTallY+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceTallY+8]
fstp dword [rsi+38]
jmp return
notSpruceTallY:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceMiddleY]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceMiddleY+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceMiddleY+8]
fstp dword [rsi+38]
jmp return
notSpruceMiddleY:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorSpruceShortY]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorSpruceShortY+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorSpruceShortY+8]
fstp dword [rsi+38]
jmp return
notSpruceShortY:
xor rcx,rcx
mov cl,(int)63
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorRocks]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorRocks+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorRocks+8]
fstp dword [rsi+38]
jmp return
notRocks:
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareBushes
myloopBushes:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepBushes
loop myloopBushes
jmp notBushes
yepBushes:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorBushes]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorBushes+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorBushes+8]
fstp dword [rsi+38]
jmp return
notBushes:
xor rcx,rcx
mov cl,(int)20
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp code
yepLogs:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
fld dword [rsi+30]
fmul dword [RcolorLogs]
fstp dword [rsi+30]
mov eax,[rbp+24]
mov [rsi+34],eax
fld dword [rsi+34]
fmul dword [RcolorLogs+4]
fstp dword [rsi+34]
mov eax,[rbp+28]
mov [rsi+38],eax
fld dword [rsi+38]
fmul dword [RcolorLogs+8]
fstp dword [rsi+38]
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov rdx,[rsp+68]
mov [rsi+30],eax
mov eax,[rbp+24]
mov [rsi+34],eax
mov eax,[rbp+28]
mov [rsi+38],eax
jmp return
Color1:
jmp newmem
nop
nop
nop
db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
return:
registersymbol(Color1)
[DISABLE]
Color1:
db 8B 45 20 4C 8B 4C 24 50 48 8B 54 24 68 89 46 30 8B 45 24 89 46 34 8B 45 28 89 46 38
unregistersymbol(RcolorDecidTrees)
unregistersymbol(RcolorDecidEmpty)
unregistersymbol(RcolorSpruceTreeTallG)
unregistersymbol(RcolorSpruceTreeTall2G)
unregistersymbol(RcolorSpruceTreeMiddleG)
unregistersymbol(RcolorSpruceTreeShortG)
unregistersymbol(RcolorSpruceTreeEmpty)
unregistersymbol(RcolorSpruceTallY)
unregistersymbol(RcolorSpruceMiddleY)
unregistersymbol(RcolorSpruceShortY)
unregistersymbol(RcolorRocks)
unregistersymbol(RcolorGrass)
unregistersymbol(RcolorBushes)
unregistersymbol(RcolorLogs)
unregistersymbol(Color1)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+9495B3
"theHunterCotW_F.exe"+94958E: 49 63 39 - movsxd rdi,dword ptr [r9]
"theHunterCotW_F.exe"+949591: 44 8D 76 01 - lea r14d,[rsi+01]
"theHunterCotW_F.exe"+949595: 48 8B 5A 18 - mov rbx,[rdx+18]
"theHunterCotW_F.exe"+949599: 48 8B F7 - mov rsi,rdi
"theHunterCotW_F.exe"+94959C: 48 C1 E6 06 - shl rsi,06
"theHunterCotW_F.exe"+9495A0: 48 8B CD - mov rcx,rbp
"theHunterCotW_F.exe"+9495A3: 48 03 72 10 - add rsi,[rdx+10]
"theHunterCotW_F.exe"+9495A7: 48 8D 55 10 - lea rdx,[rbp+10]
"theHunterCotW_F.exe"+9495AB: 4C 8B C6 - mov r8,rsi
"theHunterCotW_F.exe"+9495AE: E8 ED 0D 00 00 - call theHunterCotW_F.exe+94A3A0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+9495B3: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+9495B6: 4C 8B 4C 24 50 - mov r9,[rsp+50]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+9495BB: 48 8B 54 24 68 - mov rdx,[rsp+68]
"theHunterCotW_F.exe"+9495C0: 89 46 30 - mov [rsi+30],eax
"theHunterCotW_F.exe"+9495C3: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+9495C6: 89 46 34 - mov [rsi+34],eax
"theHunterCotW_F.exe"+9495C9: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+9495CC: 89 46 38 - mov [rsi+38],eax
"theHunterCotW_F.exe"+9495CF: F3 0F 11 76 3C - movss [rsi+3C],xmm6
"theHunterCotW_F.exe"+9495D4: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+9495D7: 25 FF FF FF 1F - and eax,1FFFFFFF
"theHunterCotW_F.exe"+9495DC: 66 44 89 7C FB 04 - mov [rbx+rdi*8+04],r15w
}
70997
"Trees / Color Mult Layton"
Auto Assembler Script
[ENABLE]
aobscanmodule(Color2,theHunterCotW_F.exe,8B 45 20 4C 8B 4C 24 50 89) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+94966C)
label(code)
label(return)
newmem:
push ecx
push edi
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTree
yepDecidTrees:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorDecidTrees]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorDecidTrees+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorDecidTrees+8]
fstp dword [rbx+38]
jmp return
notDecidTree:
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorDecidEmpty]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorDecidEmpty+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorDecidEmpty+8]
fstp dword [rbx+38]
jmp return
notDecidEmpty:
xor rcx,rcx
mov cl,(int)14
mov rdi,CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceTreeTallG]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceTreeTallG+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceTreeTallG+8]
fstp dword [rbx+38]
jmp return
notSpruceTreeTallG:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceTreeTall2G]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceTreeTall2G+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceTreeTall2G+8]
fstp dword [rbx+38]
jmp return
notSpruceTreeTall2G:
xor rcx,rcx
mov cl,(int)5
mov rdi,CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceTreeMiddleG]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceTreeMiddleG+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceTreeMiddleG+8]
fstp dword [rbx+38]
jmp return
notSpruceTreeMiddleG:
xor rcx,rcx
mov cl,(int)9
mov rdi,CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceTreeShortG]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceTreeShortG+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceTreeShortG+8]
fstp dword [rbx+38]
jmp return
notSpruceTreeShortG:
xor rcx,rcx
mov cl,(int)1
mov rdi,CompareSpruceTreeEmpty
myloopSpruceTreeEmpty:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTreeEmpty
loop myloopSpruceTreeEmpty
jmp notSpruceTreeEmpty
yepSpruceTreeEmpty:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceTreeEmpty]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceTreeEmpty+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceTreeEmpty+8]
fstp dword [rbx+38]
jmp return
notSpruceTreeEmpty:
xor rcx,rcx
mov cl,(int)4
mov rdi,CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceTallY]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceTallY+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceTallY+8]
fstp dword [rbx+38]
jmp return
notSpruceTallY:
xor rcx,rcx
mov cl,(int)2
mov rdi,CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceMiddleY]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceMiddleY+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceMiddleY+8]
fstp dword [rbx+38]
jmp return
notSpruceMiddleY:
xor rcx,rcx
mov cl,(int)3
mov rdi,CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorSpruceShortY]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorSpruceShortY+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorSpruceShortY+8]
fstp dword [rbx+38]
jmp return
notSpruceShortY:
xor rcx,rcx
mov cl,(int)63
mov rdi,CompareRocks
myloopRocks:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepRocks
loop myloopRocks
jmp notRocks
yepRocks:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorRocks]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorRocks+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorRocks+8]
fstp dword [rbx+38]
jmp return
notRocks:
xor rcx,rcx
mov cl,(int)10
mov rdi,CompareBushes
myloopBushes:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepBushes
loop myloopBushes
jmp notBushes
yepBushes:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorBushes]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorBushes+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorBushes+8]
fstp dword [rbx+38]
jmp return
notBushes:
xor rcx,rcx
mov cl,(int)20
mov rdi,CompareLogs
myloopLogs:
mov ax,word ptr [rdi+rcx*2]
cmp ax, word ptr [rbp+2C]
je yepLogs
loop myloopLogs
jmp code
yepLogs:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
fld dword [rbx+30]
fmul dword [RcolorLogs]
fstp dword [rbx+30]
mov eax,[rbp+24]
mov [rbx+34],eax
fld dword [rbx+34]
fmul dword [RcolorLogs+4]
fstp dword [rbx+34]
mov eax,[rbp+28]
mov [rbx+38],eax
fld dword [rbx+38]
fmul dword [RcolorLogs+8]
fstp dword [rbx+38]
jmp return
code:
pop edi
pop ecx
mov eax,[rbp+20]
mov r9,[rsp+50]
mov [rbx+30],eax
mov eax,[rbp+24]
mov [rbx+34],eax
mov eax,[rbp+28]
mov [rbx+38],eax
jmp return
Color2:
jmp newmem
nop
nop
nop
db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
return:
registersymbol(Color2)
[DISABLE]
Color2:
db 8B 45 20 4C 8B 4C 24 50 89 43 30 8B 45 24 89 43 34 8B 45 28 89 43 38
unregistersymbol(Color2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+94966C
"theHunterCotW_F.exe"+949646: 0F 10 46 20 - movups xmm0,[rsi+20]
"theHunterCotW_F.exe"+94964A: 0F 11 43 20 - movups [rbx+20],xmm0
"theHunterCotW_F.exe"+94964E: F2 0F 10 4E 30 - movsd xmm1,[rsi+30]
"theHunterCotW_F.exe"+949653: F2 0F 11 4B 30 - movsd [rbx+30],xmm1
"theHunterCotW_F.exe"+949658: 8B 46 38 - mov eax,[rsi+38]
"theHunterCotW_F.exe"+94965B: EB 23 - jmp theHunterCotW_F.exe+949680
"theHunterCotW_F.exe"+94965D: 48 8D 55 10 - lea rdx,[rbp+10]
"theHunterCotW_F.exe"+949661: 4C 8B C3 - mov r8,rbx
"theHunterCotW_F.exe"+949664: 48 8B CD - mov rcx,rbp
"theHunterCotW_F.exe"+949667: E8 34 0D 00 00 - call theHunterCotW_F.exe+94A3A0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+94966C: 8B 45 20 - mov eax,[rbp+20]
"theHunterCotW_F.exe"+94966F: 4C 8B 4C 24 50 - mov r9,[rsp+50]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+949674: 89 43 30 - mov [rbx+30],eax
"theHunterCotW_F.exe"+949677: 8B 45 24 - mov eax,[rbp+24]
"theHunterCotW_F.exe"+94967A: 89 43 34 - mov [rbx+34],eax
"theHunterCotW_F.exe"+94967D: 8B 45 28 - mov eax,[rbp+28]
"theHunterCotW_F.exe"+949680: 89 43 38 - mov [rbx+38],eax
"theHunterCotW_F.exe"+949683: F3 0F 11 73 3C - movss [rbx+3C],xmm6
"theHunterCotW_F.exe"+949688: 8B 45 2C - mov eax,[rbp+2C]
"theHunterCotW_F.exe"+94968B: 25 FF FF FF 1F - and eax,1FFFFFFF
"theHunterCotW_F.exe"+949690: 66 44 89 67 04 - mov [rdi+04],r12w
"theHunterCotW_F.exe"+949695: 89 07 - mov [rdi],eax
}
70118
"Grass / Color Mult Layton"
000000
Auto Assembler Script
[ENABLE]
alloc(grassR1,12)
alloc(grassR2,12)
alloc(grassR2S11,12)
alloc(grassR2S12,12)
alloc(grassR2S13,12)
alloc(grassR2S14,12)
alloc(grassR2S15,12)
alloc(grassR3,12)
alloc(grassR4,12)
alloc(grassR5,12)
alloc(grassR6,12)
alloc(grassR6RG,12)
alloc(grassR7,12)
alloc(grassR8,12)
alloc(grassR8Leaves,12)
alloc(grassR9,12)
alloc(grassR9Redish,12)
alloc(grassR10,12)
alloc(grassR11,12)
alloc(grassR12,12)
grassR1:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR2:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR2S11:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR2S12:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR2S13:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR2S14:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR2S15:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR3:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR4:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR5:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR6:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR6RG:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR7:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR8:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR8Leaves:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR9:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR9Redish:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR10:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR11:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
grassR12:
dd (float)1
dd (float)1
dd (float)1
dd (float)0
registersymbol(grassR1)
registersymbol(grassR2)
registersymbol(grassR2S11)
registersymbol(grassR2S12)
registersymbol(grassR2S13)
registersymbol(grassR2S14)
registersymbol(grassR2S15)
registersymbol(grassR3)
registersymbol(grassR4)
registersymbol(grassR5)
registersymbol(grassR6)
registersymbol(grassR6RG)
registersymbol(grassR7)
registersymbol(grassR8)
registersymbol(grassR8Leaves)
registersymbol(grassR9)
registersymbol(grassR9Redish)
registersymbol(grassR10)
registersymbol(grassR11)
registersymbol(grassR12)
aobscanmodule(Colors111,theHunterCotW_F.exe,89 11 01 0F 10 87 DC 00 00 00) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F445D)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass1
myloopGrass1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass1
loop myloopGrass1
jmp notGrass1
yepGrass1:
pop ebp
pop ecx
movups xmm0,[grassR1]
jmp return
notGrass1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2
myloopGrass2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2
loop myloopGrass2
jmp notGrass2
yepGrass2:
pop ebp
pop ecx
movups xmm0,[grassR2]
jmp return
notGrass2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S11
myloopGrass2S11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S11
loop myloopGrass2S11
jmp notGrass2S11
yepGrass2S11:
pop ebp
pop ecx
movups xmm0,[grassR2S11]
jmp return
notGrass2S11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S12
myloopGrass2S12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S12
loop myloopGrass2S12
jmp notGrass2S12
yepGrass2S12:
pop ebp
pop ecx
movups xmm0,[grassR2S12]
jmp return
notGrass2S12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S13
myloopGrass2S13:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S13
loop myloopGrass2S13
jmp notGrass2S13
yepGrass2S13:
pop ebp
pop ecx
movups xmm0,[grassR2S13]
jmp return
notGrass2S13:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S14
myloopGrass2S14:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S14
loop myloopGrass2S14
jmp notGrass2S14
yepGrass2S14:
pop ebp
pop ecx
movups xmm0,[grassR2S14]
jmp return
notGrass2S14:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2S15
myloopGrass2S15:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S15
loop myloopGrass2S15
jmp notGrass2S15
yepGrass2S15:
pop ebp
pop ecx
movups xmm0,[grassR2S15]
jmp return
notGrass2S15:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass3
myloopGrass3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass3
loop myloopGrass3
jmp notGrass3
yepGrass3:
pop ebp
pop ecx
movups xmm0,[grassR3]
jmp return
notGrass3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,CompareGrass4
myloopGrass4:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass4
loop myloopGrass4
jmp notGrass4
yepGrass4:
pop ebp
pop ecx
movups xmm0,[grassR4]
jmp return
notGrass4:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass5
myloopGrass5:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass5
loop myloopGrass5
jmp notGrass5
yepGrass5:
pop ebp
pop ecx
movups xmm0,[grassR5]
jmp return
notGrass5:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass6
myloopGrass6:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6
loop myloopGrass6
jmp notGrass6
yepGrass6:
pop ebp
pop ecx
movups xmm0,[grassR6]
jmp return
notGrass6:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,CompareGrass6RG
myloopGrass6RG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6RG
loop myloopGrass6RG
jmp notGrass6RG
yepGrass6RG:
pop ebp
pop ecx
movups xmm0,[grassR6RG]
jmp return
notGrass6RG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass7
myloopGrass7:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass7
loop myloopGrass7
jmp notGrass7
yepGrass7:
pop ebp
pop ecx
movups xmm0,[grassR7]
jmp return
notGrass7:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass8
myloopGrass8:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8
loop myloopGrass8
jmp notGrass8
yepGrass8:
pop ebp
pop ecx
movups xmm0,[grassR8]
jmp return
notGrass8:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass8Leaves
myloopGrass8Leaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8Leaves
loop myloopGrass8Leaves
jmp notGrass8Leaves
yepGrass8Leaves:
pop ebp
pop ecx
movups xmm0,[grassR8Leaves]
jmp return
notGrass8Leaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass9
myloopGrass9:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9
loop myloopGrass9
jmp notGrass9
yepGrass9:
pop ebp
pop ecx
movups xmm0,[grassR9]
jmp return
notGrass9:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass9Redish
myloopGrass9Redish:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9Redish
loop myloopGrass9Redish
jmp notGrass9Redish
yepGrass9Redish:
pop ebp
pop ecx
movups xmm0,[grassR9Redish]
jmp return
notGrass9Redish:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass10
myloopGrass10:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass10
loop myloopGrass10
jmp notGrass10
yepGrass10:
pop ebp
pop ecx
movups xmm0,[grassR10]
jmp return
notGrass10:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass11
myloopGrass11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass11
loop myloopGrass11
jmp notGrass11
yepGrass11:
pop ebp
pop ecx
movups xmm0,[grassR11]
jmp return
notGrass11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass12
myloopGrass12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass12
loop myloopGrass12
jmp code
yepGrass12:
pop ebp
pop ecx
movups xmm0,[grassR12]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rdi+000000DC]
jmp return
Colors111+03:
jmp newmem
nop
nop
return:
registersymbol(Colors111)
[DISABLE]
Colors111+03:
db 0F 10 87 DC 00 00 00
unregistersymbol(grassR1)
unregistersymbol(grassR2)
unregistersymbol(grassR2S11)
unregistersymbol(grassR2S12)
unregistersymbol(grassR2S13)
unregistersymbol(grassR2S14)
unregistersymbol(grassR2S15)
unregistersymbol(grassR3)
unregistersymbol(grassR4)
unregistersymbol(grassR5)
unregistersymbol(grassR6)
unregistersymbol(grassR6RG)
unregistersymbol(grassR7)
unregistersymbol(grassR8)
unregistersymbol(grassR8Leaves)
unregistersymbol(grassR9)
unregistersymbol(grassR9Redish)
unregistersymbol(grassR10)
unregistersymbol(grassR11)
unregistersymbol(grassR12)
unregistersymbol(Colors111)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F445D
"theHunterCotW_F.exe"+F442C: F3 0F 11 45 30 - movss [rbp+30],xmm0
"theHunterCotW_F.exe"+F4431: F3 0F 11 4D 34 - movss [rbp+34],xmm1
"theHunterCotW_F.exe"+F4436: F3 0F 11 55 38 - movss [rbp+38],xmm2
"theHunterCotW_F.exe"+F443B: F3 0F 11 5D 3C - movss [rbp+3C],xmm3
"theHunterCotW_F.exe"+F4440: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+F4448: 4C 8D 4D 30 - lea r9,[rbp+30]
"theHunterCotW_F.exe"+F444C: BA 01 00 00 00 - mov edx,00000001
"theHunterCotW_F.exe"+F4451: 44 8D 42 01 - lea r8d,[rdx+01]
"theHunterCotW_F.exe"+F4455: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+F4458: E8 73 89 11 01 - call theHunterCotW_F.exe+120CDD0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F445D: 0F 10 87 DC 00 00 00 - movups xmm0,[rdi+000000DC]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F4464: 0F 11 45 20 - movups [rbp+20],xmm0
"theHunterCotW_F.exe"+F4468: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+F4470: 4C 8D 4D 20 - lea r9,[rbp+20]
"theHunterCotW_F.exe"+F4474: BA 01 00 00 00 - mov edx,00000001
"theHunterCotW_F.exe"+F4479: 44 8D 42 02 - lea r8d,[rdx+02]
"theHunterCotW_F.exe"+F447D: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+F4480: E8 4B 89 11 01 - call theHunterCotW_F.exe+120CDD0
"theHunterCotW_F.exe"+F4485: 48 8B 0D 5C CF CD 01 - mov rcx,[theHunterCotW_F.exe+1DD13E8]
"theHunterCotW_F.exe"+F448C: 0F B6 81 72 15 00 00 - movzx eax,byte ptr [rcx+00001572]
"theHunterCotW_F.exe"+F4493: 66 0F 6E C0 - movd xmm0,eax
}
70309
"Grass Trees Bushes / Wet Glow SSS Layton"
Auto Assembler Script
[ENABLE]
alloc(grassWetSSS1,16)
alloc(grassWetSSS2,16)
alloc(grassWetSSS2S11,16)
alloc(grassWetSSS2S12,16)
alloc(grassWetSSS2S13,16)
alloc(grassWetSSS2S14,16)
alloc(grassWetSSS2S15,16)
alloc(grassWetSSS3,16)
alloc(grassWetSSS4,16)
alloc(grassWetSSS5,16)
alloc(grassWetSSS6,16)
alloc(grassWetSSS6RG,16)
alloc(grassWetSSS7,16)
alloc(grassWetSSS8,16)
alloc(grassWetSSS8Leaves,16)
alloc(grassWetSSS9,16)
alloc(grassWetSSS9Redish,16)
alloc(grassWetSSS10,16)
alloc(grassWetSSS11,16)
alloc(grassWetSSS12,16)
alloc(treesWetSSS13,16)
alloc(treesWetSSS14,16)
alloc(treesWetSSS15,16)
alloc(treesWetSSS15Tall2G,16)
alloc(treesWetSSS16,16)
alloc(treesWetSSS17,16)
alloc(treesWetSSS18,16)
alloc(treesWetSSS19,16)
alloc(treesWetSSS20,16)
alloc(treesWetSSS21,16)
grassWetSSS1:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS2:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS2S11:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS2S12:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS2S13:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS2S14:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS2S15:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS3:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS4:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS5:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS6:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS6RG:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS7:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS8:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS8Leaves:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS9:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS9Redish:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS10:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS11:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
grassWetSSS12:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS13:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS14:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS15:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS15Tall2G:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS16:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS17:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS18:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS19:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS20:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
treesWetSSS21:
dd (float)1
dd (float)0
dd (float)1
dd (float)0
registersymbol(grassWetSSS1)
registersymbol(grassWetSSS2)
registersymbol(grassWetSSS2S11)
registersymbol(grassWetSSS2S12)
registersymbol(grassWetSSS2S13)
registersymbol(grassWetSSS2S14)
registersymbol(grassWetSSS2S15)
registersymbol(grassWetSSS3)
registersymbol(grassWetSSS4)
registersymbol(grassWetSSS5)
registersymbol(grassWetSSS6)
registersymbol(grassWetSSS6RG)
registersymbol(grassWetSSS7)
registersymbol(grassWetSSS8)
registersymbol(grassWetSSS8Leaves)
registersymbol(grassWetSSS9)
registersymbol(grassWetSSS9Redish)
registersymbol(grassWetSSS10)
registersymbol(grassWetSSS11)
registersymbol(grassWetSSS12)
registersymbol(treesWetSSS13)
registersymbol(treesWetSSS14)
registersymbol(treesWetSSS15)
registersymbol(treesWetSSS15Tall2G)
registersymbol(treesWetSSS16)
registersymbol(treesWetSSS17)
registersymbol(treesWetSSS18)
registersymbol(treesWetSSS19)
registersymbol(treesWetSSS20)
registersymbol(treesWetSSS21)
aobscanmodule(grassWetSSS,theHunterCotW_F.exe,0F 10 86 C4 00 00 00 0F) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+1115A5)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass1
myloopGrass1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass1
loop myloopGrass1
jmp notGrass1
yepGrass1:
pop ebp
pop ecx
movups xmm0,[grassWetSSS1]
jmp return
notGrass1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2
myloopGrass2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass2
loop myloopGrass2
jmp notGrass2
yepGrass2:
pop ebp
pop ecx
movups xmm0,[grassWetSSS2]
jmp return
notGrass2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S11
myloopGrass2S11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass2S11
loop myloopGrass2S11
jmp notGrass2S11
yepGrass2S11:
pop ebp
pop ecx
movups xmm0,[grassWetSSS2S11]
jmp return
notGrass2S11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S12
myloopGrass2S12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass2S12
loop myloopGrass2S12
jmp notGrass2S12
yepGrass2S12:
pop ebp
pop ecx
movups xmm0,[grassWetSSS2S12]
jmp return
notGrass2S12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S13
myloopGrass2S13:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass2S13
loop myloopGrass2S13
jmp notGrass2S13
yepGrass2S13:
pop ebp
pop ecx
movups xmm0,[grassWetSSS2S13]
jmp return
notGrass2S13:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S14
myloopGrass2S14:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass2S14
loop myloopGrass2S14
jmp notGrass2S14
yepGrass2S14:
pop ebp
pop ecx
movups xmm0,[grassWetSSS2S14]
jmp return
notGrass2S14:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2S15
myloopGrass2S15:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass2S15
loop myloopGrass2S15
jmp notGrass2S15
yepGrass2S15:
pop ebp
pop ecx
movups xmm0,[grassWetSSS2S15]
jmp return
notGrass2S15:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass3
myloopGrass3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass3
loop myloopGrass3
jmp notGrass3
yepGrass3:
pop ebp
pop ecx
movups xmm0,[grassWetSSS3]
jmp return
notGrass3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,CompareGrass4
myloopGrass4:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass4
loop myloopGrass4
jmp notGrass4
yepGrass4:
pop ebp
pop ecx
movups xmm0,[grassWetSSS4]
jmp return
notGrass4:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass5
myloopGrass5:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass5
loop myloopGrass5
jmp notGrass5
yepGrass5:
pop ebp
pop ecx
movups xmm0,[grassWetSSS5]
jmp return
notGrass5:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass6
myloopGrass6:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass6
loop myloopGrass6
jmp notGrass6
yepGrass6:
pop ebp
pop ecx
movups xmm0,[grassWetSSS6]
jmp return
notGrass6:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,CompareGrass6RG
myloopGrass6RG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass6RG
loop myloopGrass6RG
jmp notGrass6RG
yepGrass6RG:
pop ebp
pop ecx
movups xmm0,[grassWetSSS6RG]
jmp return
notGrass6RG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass7
myloopGrass7:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass7
loop myloopGrass7
jmp notGrass7
yepGrass7:
pop ebp
pop ecx
movups xmm0,[grassWetSSS7]
jmp return
notGrass7:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass8
myloopGrass8:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass8
loop myloopGrass8
jmp notGrass8
yepGrass8:
pop ebp
pop ecx
movups xmm0,[grassWetSSS8]
jmp return
notGrass8:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass8Leaves
myloopGrass8Leaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass8Leaves
loop myloopGrass8Leaves
jmp notGrass8Leaves
yepGrass8Leaves:
pop ebp
pop ecx
movups xmm0,[grassWetSSS8Leaves]
jmp return
notGrass8Leaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass9
myloopGrass9:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass9
loop myloopGrass9
jmp notGrass9
yepGrass9:
pop ebp
pop ecx
movups xmm0,[grassWetSSS9]
jmp return
notGrass9:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass9Redish
myloopGrass9Redish:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass9Redish
loop myloopGrass9Redish
jmp notGrass9Redish
yepGrass9Redish:
pop ebp
pop ecx
movups xmm0,[grassWetSSS9Redish]
jmp return
notGrass9Redish:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass10
myloopGrass10:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass10
loop myloopGrass10
jmp notGrass10
yepGrass10:
pop ebp
pop ecx
movups xmm0,[grassWetSSS10]
jmp return
notGrass10:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass11
myloopGrass11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass11
loop myloopGrass11
jmp notGrass11
yepGrass11:
pop ebp
pop ecx
movups xmm0,[grassWetSSS11]
jmp return
notGrass11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass12
myloopGrass12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepGrass12
loop myloopGrass12
jmp notGrass12
yepGrass12:
pop ebp
pop ecx
movups xmm0,[grassWetSSS12]
jmp return
notGrass12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)39
mov rbp,2CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTrees
yepDecidTrees:
pop ebp
pop ecx
movups xmm0,[treesWetSSS13]
jmp return
notDecidTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)20
mov rbp,2CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop ebp
pop ecx
movups xmm0,[treesWetSSS14]
jmp return
notDecidEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)36
mov rbp,2CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop ebp
pop ecx
movups xmm0,[treesWetSSS15]
jmp return
notSpruceTreeTallG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop ebp
pop ecx
movups xmm0,[treesWetSSS15Tall2G]
jmp return
notSpruceTreeTall2G:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop ebp
pop ecx
movups xmm0,[treesWetSSS16]
jmp return
notSpruceTreeMiddleG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop ebp
pop ecx
movups xmm0,[treesWetSSS17]
jmp return
notSpruceTreeShortG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop ebp
pop ecx
movups xmm0,[treesWetSSS18]
jmp return
notSpruceTallY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop ebp
pop ecx
movups xmm0,[treesWetSSS19]
jmp return
notSpruceMiddleY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop ebp
pop ecx
movups xmm0,[treesWetSSS20]
jmp return
notSpruceShortY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)25
mov rbp,2CompareBushes
myloopBushes:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rsi+C0],ax
je yepBushes
loop myloopBushes
jmp code
yepBushes:
pop ebp
pop ecx
movups xmm0,[treesWetSSS21]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rsi+000000C4]
jmp return
grassWetSSS:
jmp newmem
nop
nop
return:
registersymbol(grassWetSSS)
[DISABLE]
grassWetSSS:
db 0F 10 86 C4 00 00 00
unregistersymbol(grassWetSSS1)
unregistersymbol(grassWetSSS2)
unregistersymbol(grassWetSSS2S11)
unregistersymbol(grassWetSSS2S12)
unregistersymbol(grassWetSSS2S13)
unregistersymbol(grassWetSSS2S14)
unregistersymbol(grassWetSSS2S15)
unregistersymbol(grassWetSSS3)
unregistersymbol(grassWetSSS4)
unregistersymbol(grassWetSSS5)
unregistersymbol(grassWetSSS6)
unregistersymbol(grassWetSSS6RG)
unregistersymbol(grassWetSSS7)
unregistersymbol(grassWetSSS8)
unregistersymbol(grassWetSSS8Leaves)
unregistersymbol(grassWetSSS9)
unregistersymbol(grassWetSSS9Redish)
unregistersymbol(grassWetSSS10)
unregistersymbol(grassWetSSS11)
unregistersymbol(grassWetSSS12)
unregistersymbol(treesWetSSS13)
unregistersymbol(treesWetSSS14)
unregistersymbol(treesWetSSS15)
unregistersymbol(treesWetSSS15Tall2G)
unregistersymbol(treesWetSSS16)
unregistersymbol(treesWetSSS17)
unregistersymbol(treesWetSSS18)
unregistersymbol(treesWetSSS19)
unregistersymbol(treesWetSSS20)
unregistersymbol(treesWetSSS21)
unregistersymbol(grassWetSSS)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+1115A5
"theHunterCotW_F.exe"+111579: 48 8B CB - mov rcx,rbx
"theHunterCotW_F.exe"+11157C: E8 FF CC 0F 01 - call theHunterCotW_F.exe+120E280
"theHunterCotW_F.exe"+111581: 48 8B 15 90 A7 D4 01 - mov rdx,[theHunterCotW_F.exe+1E5BD18]
"theHunterCotW_F.exe"+111588: 48 8B CB - mov rcx,rbx
"theHunterCotW_F.exe"+11158B: 83 FF 02 - cmp edi,02
"theHunterCotW_F.exe"+11158E: 75 09 - jne theHunterCotW_F.exe+111599
"theHunterCotW_F.exe"+111590: 48 8B 92 38 02 00 00 - mov rdx,[rdx+00000238]
"theHunterCotW_F.exe"+111597: EB 07 - jmp theHunterCotW_F.exe+1115A0
"theHunterCotW_F.exe"+111599: 48 8B 92 20 02 00 00 - mov rdx,[rdx+00000220]
"theHunterCotW_F.exe"+1115A0: E8 1B BE 0F 01 - call theHunterCotW_F.exe+120D3C0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+1115A5: 0F 10 86 C4 00 00 00 - movups xmm0,[rsi+000000C4]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+1115AC: 0F 11 44 24 38 - movups [rsp+38],xmm0
"theHunterCotW_F.exe"+1115B1: 89 6C 24 20 - mov [rsp+20],ebp
"theHunterCotW_F.exe"+1115B5: 4C 8D 4C 24 38 - lea r9,[rsp+38]
"theHunterCotW_F.exe"+1115BA: 44 8B C5 - mov r8d,ebp
"theHunterCotW_F.exe"+1115BD: 8B D5 - mov edx,ebp
"theHunterCotW_F.exe"+1115BF: 48 8B CB - mov rcx,rbx
"theHunterCotW_F.exe"+1115C2: E8 09 B8 0F 01 - call theHunterCotW_F.exe+120CDD0
"theHunterCotW_F.exe"+1115C7: 41 F6 85 30 07 00 00 80 - test byte ptr [r13+00000730],-80
"theHunterCotW_F.exe"+1115CF: 0F 85 93 00 00 00 - jne theHunterCotW_F.exe+111668
"theHunterCotW_F.exe"+1115D5: 45 84 E4 - test r12l,r12l
}
70389
"Grass Trees Bushes / Snowy Layton"
Auto Assembler Script
[ENABLE]
alloc(grassSnow1,4)
alloc(grassSnow2,4)
alloc(grassSnow2S11,4)
alloc(grassSnow2S12,4)
alloc(grassSnow2S13,4)
alloc(grassSnow2S14,4)
alloc(grassSnow2S15,4)
alloc(grassSnow3,4)
alloc(grassSnow4,4)
alloc(grassSnow5,4)
alloc(grassSnow6,4)
alloc(grassSnow6RG,4)
alloc(grassSnow7,4)
alloc(grassSnow8,4)
alloc(grassSnow8Leaves,4)
alloc(grassSnow9,4)
alloc(grassSnow9Redish,4)
alloc(grassSnow10,4)
alloc(grassSnow11,4)
alloc(grassSnow12,4)
alloc(grassSnow13,4)
alloc(grassSnow14,4)
alloc(grassSnow15,4)
alloc(grassSnow15Tall2G,4)
alloc(grassSnow16,4)
alloc(grassSnow17,4)
alloc(grassSnow18,4)
alloc(grassSnow19,4)
alloc(grassSnow20,4)
alloc(grassSnow21,4)
grassSnow1:
dd (float)1
grassSnow2:
dd (float)1
grassSnow2S11:
dd (float)1
grassSnow2S12:
dd (float)1
grassSnow2S13:
dd (float)1
grassSnow2S14:
dd (float)1
grassSnow2S15:
dd (float)1
grassSnow3:
dd (float)1
grassSnow4:
dd (float)1
grassSnow5:
dd (float)1
grassSnow6:
dd (float)1
grassSnow6RG:
dd (float)1
grassSnow7:
dd (float)1
grassSnow8:
dd (float)1
grassSnow8Leaves:
dd (float)1
grassSnow9:
dd (float)1
grassSnow9Redish:
dd (float)1
grassSnow10:
dd (float)1
grassSnow11:
dd (float)1
grassSnow12:
dd (float)1
grassSnow13:
dd (float)1
grassSnow14:
dd (float)1
grassSnow15:
dd (float)1
grassSnow15Tall2G:
dd (float)1
grassSnow16:
dd (float)1
grassSnow17:
dd (float)1
grassSnow18:
dd (float)1
grassSnow19:
dd (float)1
grassSnow20:
dd (float)1
grassSnow21:
dd (float)1
registersymbol(grassSnow1)
registersymbol(grassSnow2)
registersymbol(grassSnow2S11)
registersymbol(grassSnow2S12)
registersymbol(grassSnow2S13)
registersymbol(grassSnow2S14)
registersymbol(grassSnow2S15)
registersymbol(grassSnow3)
registersymbol(grassSnow4)
registersymbol(grassSnow5)
registersymbol(grassSnow6)
registersymbol(grassSnow6RG)
registersymbol(grassSnow7)
registersymbol(grassSnow8)
registersymbol(grassSnow8Leaves)
registersymbol(grassSnow9)
registersymbol(grassSnow9Redish)
registersymbol(grassSnow10)
registersymbol(grassSnow11)
registersymbol(grassSnow12)
registersymbol(grassSnow13)
registersymbol(grassSnow14)
registersymbol(grassSnow15)
registersymbol(grassSnow15Tall2G)
registersymbol(grassSnow16)
registersymbol(grassSnow17)
registersymbol(grassSnow18)
registersymbol(grassSnow19)
registersymbol(grassSnow20)
registersymbol(grassSnow21)
aobscanmodule(foliageSnow,theHunterCotW_F.exe,F3 0F 10 8F D8 00 00 00 F3 0F 10) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F441C)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass1
myloopGrass1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass1
loop myloopGrass1
jmp notGrass1
yepGrass1:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow1]
jmp return
notGrass1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2
myloopGrass2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2
loop myloopGrass2
jmp notGrass2
yepGrass2:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow2]
jmp return
notGrass2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S11
myloopGrass2S11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S11
loop myloopGrass2S11
jmp notGrass2S11
yepGrass2S11:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow2S11]
jmp return
notGrass2S11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S12
myloopGrass2S12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S12
loop myloopGrass2S12
jmp notGrass2S12
yepGrass2S12:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow2S12]
jmp return
notGrass2S12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S13
myloopGrass2S13:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S13
loop myloopGrass2S13
jmp notGrass2S13
yepGrass2S13:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow2S13]
jmp return
notGrass2S13:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S14
myloopGrass2S14:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S14
loop myloopGrass2S14
jmp notGrass2S14
yepGrass2S14:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow2S14]
jmp return
notGrass2S14:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2S15
myloopGrass2S15:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S15
loop myloopGrass2S15
jmp notGrass2S15
yepGrass2S15:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow2S15]
jmp return
notGrass2S15:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass3
myloopGrass3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass3
loop myloopGrass3
jmp notGrass3
yepGrass3:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow3]
jmp return
notGrass3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,CompareGrass4
myloopGrass4:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass4
loop myloopGrass4
jmp notGrass4
yepGrass4:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow4]
jmp return
notGrass4:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass5
myloopGrass5:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass5
loop myloopGrass5
jmp notGrass5
yepGrass5:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow5]
jmp return
notGrass5:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass6
myloopGrass6:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6
loop myloopGrass6
jmp notGrass6
yepGrass6:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow6]
jmp return
notGrass6:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,CompareGrass6RG
myloopGrass6RG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6RG
loop myloopGrass6RG
jmp notGrass6RG
yepGrass6RG:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow6RG]
jmp return
notGrass6RG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass7
myloopGrass7:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass7
loop myloopGrass7
jmp notGrass7
yepGrass7:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow7]
jmp return
notGrass7:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass8
myloopGrass8:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8
loop myloopGrass8
jmp notGrass8
yepGrass8:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow8]
jmp return
notGrass8:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass8Leaves
myloopGrass8Leaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8Leaves
loop myloopGrass8Leaves
jmp notGrass8Leaves
yepGrass8Leaves:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow8Leaves]
jmp return
notGrass8Leaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass9
myloopGrass9:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9
loop myloopGrass9
jmp notGrass9
yepGrass9:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow9]
jmp return
notGrass9:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass9Redish
myloopGrass9Redish:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9Redish
loop myloopGrass9Redish
jmp notGrass9Redish
yepGrass9Redish:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow9Redish]
jmp return
notGrass9Redish:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass10
myloopGrass10:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass10
loop myloopGrass10
jmp notGrass10
yepGrass10:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow10]
jmp return
notGrass10:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass11
myloopGrass11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass11
loop myloopGrass11
jmp notGrass11
yepGrass11:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow11]
jmp return
notGrass11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass12
myloopGrass12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass12
loop myloopGrass12
jmp notGrass12
yepGrass12:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow12]
jmp return
notGrass12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)39
mov rbp,2CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTrees
yepDecidTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow13]
jmp return
notDecidTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)20
mov rbp,2CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow14]
jmp return
notDecidEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)36
mov rbp,2CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow15]
jmp return
notSpruceTreeTallG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)15
mov rbp,2CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow15Tall2G]
jmp return
notSpruceTreeTall2G:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow16]
jmp return
notSpruceTreeMiddleG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow17]
jmp return
notSpruceTreeShortG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow18]
jmp return
notSpruceTallY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow19]
jmp return
notSpruceMiddleY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow20]
jmp return
notSpruceShortY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)25
mov rbp,2CompareBushes
myloopBushes:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushes
loop myloopBushes
jmp code
yepBushes:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
mulss xmm1,[grassSnow21]
jmp return
code:
pop ebp
pop ecx
movss xmm1,[rdi+000000D8]
jmp return
foliageSnow:
jmp newmem
nop
nop
nop
return:
registersymbol(foliageSnow)
[DISABLE]
foliageSnow:
db F3 0F 10 8F D8 00 00 00
unregistersymbol(grassSnow1)
unregistersymbol(grassSnow2)
unregistersymbol(grassSnow2S11)
unregistersymbol(grassSnow2S12)
unregistersymbol(grassSnow2S13)
unregistersymbol(grassSnow2S14)
unregistersymbol(grassSnow2S15)
unregistersymbol(grassSnow3)
unregistersymbol(grassSnow4)
unregistersymbol(grassSnow5)
unregistersymbol(grassSnow6)
unregistersymbol(grassSnow7)
unregistersymbol(grassSnow8)
unregistersymbol(grassSnow9)
unregistersymbol(grassSnow10)
unregistersymbol(grassSnow11)
unregistersymbol(grassSnow12)
unregistersymbol(grassSnow13)
unregistersymbol(grassSnow14)
unregistersymbol(grassSnow15)
unregistersymbol(grassSnow15Tall2G)
unregistersymbol(grassSnow16)
unregistersymbol(grassSnow17)
unregistersymbol(grassSnow18)
unregistersymbol(grassSnow19)
unregistersymbol(grassSnow20)
unregistersymbol(grassSnow21)
unregistersymbol(foliageSnow)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F441C
"theHunterCotW_F.exe"+F43EF: 0F 28 05 DA E0 40 01 - movaps xmm0,[theHunterCotW_F.exe+15024D0]
"theHunterCotW_F.exe"+F43F6: 0F 11 44 24 40 - movups [rsp+40],xmm0
"theHunterCotW_F.exe"+F43FB: E9 40 03 00 00 - jmp theHunterCotW_F.exe+F4740
"theHunterCotW_F.exe"+F4400: 44 0F 28 C7 - movaps xmm8,xmm7
"theHunterCotW_F.exe"+F4404: 0F 28 DA - movaps xmm3,xmm2
"theHunterCotW_F.exe"+F4407: 48 85 DB - test rbx,rbx
"theHunterCotW_F.exe"+F440A: 74 10 - je theHunterCotW_F.exe+F441C
"theHunterCotW_F.exe"+F440C: F3 44 0F 10 43 20 - movss xmm8,[rbx+20]
"theHunterCotW_F.exe"+F4412: F3 0F 10 53 24 - movss xmm2,[rbx+24]
"theHunterCotW_F.exe"+F4417: F3 0F 10 5B 28 - movss xmm3,[rbx+28]
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F441C: F3 0F 10 8F D8 00 00 00 - movss xmm1,[rdi+000000D8]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F4424: F3 0F 10 87 D4 00 00 00 - movss xmm0,[rdi+000000D4]
"theHunterCotW_F.exe"+F442C: F3 0F 11 45 30 - movss [rbp+30],xmm0
"theHunterCotW_F.exe"+F4431: F3 0F 11 4D 34 - movss [rbp+34],xmm1
"theHunterCotW_F.exe"+F4436: F3 0F 11 55 38 - movss [rbp+38],xmm2
"theHunterCotW_F.exe"+F443B: F3 0F 11 5D 3C - movss [rbp+3C],xmm3
"theHunterCotW_F.exe"+F4440: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+F4448: 4C 8D 4D 30 - lea r9,[rbp+30]
"theHunterCotW_F.exe"+F444C: BA 01 00 00 00 - mov edx,00000001
"theHunterCotW_F.exe"+F4451: 44 8D 42 01 - lea r8d,[rdx+01]
"theHunterCotW_F.exe"+F4455: 48 8B CE - mov rcx,rsi
}
70101
"Grass Trees Bushes / Foliage Scale Layton"
Auto Assembler Script
[ENABLE]
alloc(grassScale1,4)
alloc(grassScale2,4)
alloc(grassScale2S11,4)
alloc(grassScale2S12,4)
alloc(grassScale2S13,4)
alloc(grassScale2S14,4)
alloc(grassScale2S15,4)
alloc(grassScale3,4)
alloc(grassScale4,4)
alloc(grassScale5,4)
alloc(grassScale6,4)
alloc(grassScale6RG,4)
alloc(grassScale7,4)
alloc(grassScale8,4)
alloc(grassScale8Leaves,4)
alloc(grassScale9,4)
alloc(grassScale9Redish,4)
alloc(grassScale10,4)
alloc(grassScale11,4)
alloc(grassScale12,4)
alloc(grassScale13,4)
alloc(grassScale14,4)
alloc(grassScale15,4)
alloc(grassScale15Tall2G,4)
alloc(grassScale16,4)
alloc(grassScale17,4)
alloc(grassScale18,4)
alloc(grassScale19,4)
alloc(grassScale20,4)
alloc(grassScale21,4)
grassScale1:
dd (float)1
grassScale2:
dd (float)1
grassScale2S11:
dd (float)1
grassScale2S12:
dd (float)1
grassScale2S13:
dd (float)1
grassScale2S14:
dd (float)1
grassScale2S15:
dd (float)1
grassScale3:
dd (float)1
grassScale4:
dd (float)1
grassScale5:
dd (float)1
grassScale6:
dd (float)1
grassScale6RG:
dd (float)1
grassScale7:
dd (float)1
grassScale8:
dd (float)1
grassScale8Leaves:
dd (float)1
grassScale9:
dd (float)1
grassScale9Redish:
dd (float)1
grassScale10:
dd (float)1
grassScale11:
dd (float)1
grassScale12:
dd (float)1
grassScale13:
dd (float)1
grassScale14:
dd (float)1
grassScale15:
dd (float)1
grassScale15Tall2G:
dd (float)1
grassScale16:
dd (float)1
grassScale17:
dd (float)1
grassScale18:
dd (float)1
grassScale19:
dd (float)1
grassScale20:
dd (float)1
grassScale21:
dd (float)1
registersymbol(grassScale1)
registersymbol(grassScale2)
registersymbol(grassScale2S11)
registersymbol(grassScale2S12)
registersymbol(grassScale2S13)
registersymbol(grassScale2S14)
registersymbol(grassScale2S15)
registersymbol(grassScale3)
registersymbol(grassScale4)
registersymbol(grassScale5)
registersymbol(grassScale6)
registersymbol(grassScale6RG)
registersymbol(grassScale7)
registersymbol(grassScale8)
registersymbol(grassScale8Leaves)
registersymbol(grassScale9)
registersymbol(grassScale9Redish)
registersymbol(grassScale10)
registersymbol(grassScale11)
registersymbol(grassScale12)
registersymbol(grassScale13)
registersymbol(grassScale14)
registersymbol(grassScale15)
registersymbol(grassScale15Tall2G)
registersymbol(grassScale16)
registersymbol(grassScale17)
registersymbol(grassScale18)
registersymbol(grassScale19)
registersymbol(grassScale20)
registersymbol(grassScale21)
aobscanmodule(Grass_Scale,theHunterCotW_F.exe,F3 0F 10 8F F0 00 00 00 F3 0F 11) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F480E)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass1
myloopGrass1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass1
loop myloopGrass1
jmp notGrass1
yepGrass1:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale1]
jmp return
notGrass1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2
myloopGrass2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2
loop myloopGrass2
jmp notGrass2
yepGrass2:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale2]
jmp return
notGrass2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S11
myloopGrass2S11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S11
loop myloopGrass2S11
jmp notGrass2S11
yepGrass2S11:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale2S11]
jmp return
notGrass2S11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S12
myloopGrass2S12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S12
loop myloopGrass2S12
jmp notGrass2S12
yepGrass2S12:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale2S12]
jmp return
notGrass2S12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S13
myloopGrass2S13:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S13
loop myloopGrass2S13
jmp notGrass2S13
yepGrass2S13:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale2S13]
jmp return
notGrass2S13:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S14
myloopGrass2S14:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S14
loop myloopGrass2S14
jmp notGrass2S14
yepGrass2S14:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale2S14]
jmp return
notGrass2S14:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2S15
myloopGrass2S15:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S15
loop myloopGrass2S15
jmp notGrass2S15
yepGrass2S15:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale2S15]
jmp return
notGrass2S15:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass3
myloopGrass3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass3
loop myloopGrass3
jmp notGrass3
yepGrass3:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale3]
jmp return
notGrass3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,CompareGrass4
myloopGrass4:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass4
loop myloopGrass4
jmp notGrass4
yepGrass4:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale4]
jmp return
notGrass4:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass5
myloopGrass5:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass5
loop myloopGrass5
jmp notGrass5
yepGrass5:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale5]
jmp return
notGrass5:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass6
myloopGrass6:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6
loop myloopGrass6
jmp notGrass6
yepGrass6:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale6]
jmp return
notGrass6:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,CompareGrass6RG
myloopGrass6RG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6RG
loop myloopGrass6RG
jmp notGrass6RG
yepGrass6RG:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale6RG]
jmp return
notGrass6RG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass7
myloopGrass7:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass7
loop myloopGrass7
jmp notGrass7
yepGrass7:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale7]
jmp return
notGrass7:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass8
myloopGrass8:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8
loop myloopGrass8
jmp notGrass8
yepGrass8:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale8]
jmp return
notGrass8:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass8Leaves
myloopGrass8Leaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8Leaves
loop myloopGrass8Leaves
jmp notGrass8Leaves
yepGrass8Leaves:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale8Leaves]
jmp return
notGrass8Leaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass9
myloopGrass9:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9
loop myloopGrass9
jmp notGrass9
yepGrass9:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale9]
jmp return
notGrass9:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass9Redish
myloopGrass9Redish:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9Redish
loop myloopGrass9Redish
jmp notGrass9Redish
yepGrass9Redish:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale9Redish]
jmp return
notGrass9Redish:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass10
myloopGrass10:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass10
loop myloopGrass10
jmp notGrass10
yepGrass10:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale10]
jmp return
notGrass10:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass11
myloopGrass11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass11
loop myloopGrass11
jmp notGrass11
yepGrass11:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale11]
jmp return
notGrass11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass12
myloopGrass12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass12
loop myloopGrass12
jmp notGrass12
yepGrass12:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale12]
jmp return
notGrass12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)39
mov rbp,2CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTrees
yepDecidTrees:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale13]
jmp return
notDecidTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)20
mov rbp,2CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale14]
jmp return
notDecidEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)51
mov rbp,2CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale15]
jmp return
notSpruceTreeTallG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)51
mov rbp,2CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale15Tall2G]
jmp return
notSpruceTreeTall2G:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale16]
jmp return
notSpruceTreeMiddleG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale17]
jmp return
notSpruceTreeShortG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale18]
jmp return
notSpruceTallY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale19]
jmp return
notSpruceMiddleY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale20]
jmp return
notSpruceShortY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)25
mov rbp,2CompareBushes
myloopBushes:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushes
loop myloopBushes
jmp code
yepBushes:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
mulss xmm1,[grassScale21]
jmp return
code:
pop ebp
pop ecx
movss xmm1,[rdi+000000F0]
jmp return
Grass_Scale:
jmp newmem
nop
nop
nop
return:
registersymbol(Grass_Scale)
[DISABLE]
Grass_Scale:
db F3 0F 10 8F F0 00 00 00
unregistersymbol(grassScale1)
unregistersymbol(grassScale2)
unregistersymbol(grassScale2S11)
unregistersymbol(grassScale2S12)
unregistersymbol(grassScale2S13)
unregistersymbol(grassScale2S14)
unregistersymbol(grassScale2S15)
unregistersymbol(grassScale3)
unregistersymbol(grassScale4)
unregistersymbol(grassScale5)
unregistersymbol(grassScale6)
unregistersymbol(grassScale6RG)
unregistersymbol(grassScale7)
unregistersymbol(grassScale8)
unregistersymbol(grassScale8Leaves)
unregistersymbol(grassScale9)
unregistersymbol(grassScale9Redish)
unregistersymbol(grassScale10)
unregistersymbol(grassScale11)
unregistersymbol(grassScale12)
unregistersymbol(grassScale13)
unregistersymbol(grassScale14)
unregistersymbol(grassScale15)
unregistersymbol(grassScale15Tall2G)
unregistersymbol(grassScale16)
unregistersymbol(grassScale17)
unregistersymbol(grassScale18)
unregistersymbol(grassScale19)
unregistersymbol(grassScale20)
unregistersymbol(grassScale21)
unregistersymbol(Grass_Scale)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F480E
"theHunterCotW_F.exe"+F47CC: 4D 8D 8E D8 00 00 00 - lea r9,[r14+000000D8]
"theHunterCotW_F.exe"+F47D3: C7 44 24 20 04 00 00 00 - mov [rsp+20],00000004
"theHunterCotW_F.exe"+F47DB: BA 02 00 00 00 - mov edx,00000002
"theHunterCotW_F.exe"+F47E0: 44 8D 42 02 - lea r8d,[rdx+02]
"theHunterCotW_F.exe"+F47E4: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+F47E7: E8 24 8F 11 01 - call theHunterCotW_F.exe+120D710
"theHunterCotW_F.exe"+F47EC: F3 0F 11 B5 80 00 00 00 - movss [rbp+00000080],xmm6
"theHunterCotW_F.exe"+F47F4: C7 85 84 00 00 00 00 00 00 00 - mov [rbp+00000084],00000000
"theHunterCotW_F.exe"+F47FE: F3 0F 10 87 EC 00 00 00 - movss xmm0,[rdi+000000EC]
"theHunterCotW_F.exe"+F4806: F3 0F 11 85 88 00 00 00 - movss [rbp+00000088],xmm0
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F480E: F3 0F 10 8F F0 00 00 00 - movss xmm1,[rdi+000000F0]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F4816: F3 0F 11 8D 8C 00 00 00 - movss [rbp+0000008C],xmm1
"theHunterCotW_F.exe"+F481E: 48 85 DB - test rbx,rbx
"theHunterCotW_F.exe"+F4821: 74 59 - je theHunterCotW_F.exe+F487C
"theHunterCotW_F.exe"+F4823: 48 8B 4B 18 - mov rcx,[rbx+18]
"theHunterCotW_F.exe"+F4827: 0F B6 C1 - movzx eax,cl
"theHunterCotW_F.exe"+F482A: C0 E8 03 - shr al,03
"theHunterCotW_F.exe"+F482D: 0F 57 C0 - xorps xmm0,xmm0
"theHunterCotW_F.exe"+F4830: A8 01 - test al,01
"theHunterCotW_F.exe"+F4832: 74 1B - je theHunterCotW_F.exe+F484F
"theHunterCotW_F.exe"+F4834: 48 C1 E9 14 - shr rcx,14
}
70607
"Grass Trees Bushes / Foliage Scale Layton"
Auto Assembler Script
[ENABLE]
aobscanmodule(Grass_Scale2,theHunterCotW_F.exe,F3 0F 10 87 F0 00 00 00 F3 0F 11 45 E3) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+FF4A8)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass1
myloopGrass1:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass1
loop myloopGrass1
jmp notGrass1
yepGrass1:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale1]
jmp return
notGrass1:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2
myloopGrass2:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2
loop myloopGrass2
jmp notGrass2
yepGrass2:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale2]
jmp return
notGrass2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S11
myloopGrass2S11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S11
loop myloopGrass2S11
jmp notGrass2S11
yepGrass2S11:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale2S11]
jmp return
notGrass2S11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S12
myloopGrass2S12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S12
loop myloopGrass2S12
jmp notGrass2S12
yepGrass2S12:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale2S12]
jmp return
notGrass2S12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S13
myloopGrass2S13:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S13
loop myloopGrass2S13
jmp notGrass2S13
yepGrass2S13:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale2S13]
jmp return
notGrass2S13:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S14
myloopGrass2S14:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S14
loop myloopGrass2S14
jmp notGrass2S14
yepGrass2S14:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale2S14]
jmp return
notGrass2S14:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2S15
myloopGrass2S15:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass2S15
loop myloopGrass2S15
jmp notGrass2S15
yepGrass2S15:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale2S15]
jmp return
notGrass2S15:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass3
myloopGrass3:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass3
loop myloopGrass3
jmp notGrass3
yepGrass3:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale3]
jmp return
notGrass3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)9
mov rbp,CompareGrass4
myloopGrass4:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass4
loop myloopGrass4
jmp notGrass4
yepGrass4:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale4]
jmp return
notGrass4:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass5
myloopGrass5:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass5
loop myloopGrass5
jmp notGrass5
yepGrass5:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale5]
jmp return
notGrass5:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass6
myloopGrass6:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6
loop myloopGrass6
jmp notGrass6
yepGrass6:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale6]
jmp return
notGrass6:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,CompareGrass6RG
myloopGrass6RG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass6RG
loop myloopGrass6RG
jmp notGrass6RG
yepGrass6RG:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale6RG]
jmp return
notGrass6RG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass7
myloopGrass7:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass7
loop myloopGrass7
jmp notGrass7
yepGrass7:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale7]
jmp return
notGrass7:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass8
myloopGrass8:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8
loop myloopGrass8
jmp notGrass8
yepGrass8:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale8]
jmp return
notGrass8:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass8Leaves
myloopGrass8Leaves:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass8Leaves
loop myloopGrass8Leaves
jmp notGrass8Leaves
yepGrass8Leaves:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale8Leaves]
jmp return
notGrass8Leaves:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass9
myloopGrass9:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9
loop myloopGrass9
jmp notGrass9
yepGrass9:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale9]
jmp return
notGrass9:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass9Redish
myloopGrass9Redish:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass9Redish
loop myloopGrass9Redish
jmp notGrass9Redish
yepGrass9Redish:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale9Redish]
jmp return
notGrass9Redish:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass10
myloopGrass10:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass10
loop myloopGrass10
jmp notGrass10
yepGrass10:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale10]
jmp return
notGrass10:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass11
myloopGrass11:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass11
loop myloopGrass11
jmp notGrass11
yepGrass11:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale11]
jmp return
notGrass11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass12
myloopGrass12:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepGrass12
loop myloopGrass12
jmp notGrass12
yepGrass12:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale12]
jmp return
notGrass12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)39
mov rbp,2CompareDecidTrees
myloopDecidTrees:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidTrees
loop myloopDecidTrees
jmp notDecidTrees
yepDecidTrees:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale13]
jmp return
notDecidTrees:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)20
mov rbp,2CompareDecidEmpty
myloopDecidEmpty:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepDecidEmpty
loop myloopDecidEmpty
jmp notDecidEmpty
yepDecidEmpty:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale14]
jmp return
notDecidEmpty:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)51
mov rbp,2CompareSpruceTreeTallG
myloopSpruceTreeTallG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeTallG
loop myloopSpruceTreeTallG
jmp notSpruceTreeTallG
yepSpruceTreeTallG:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale15]
jmp return
notSpruceTreeTallG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)51
mov rbp,2CompareSpruceTreeTall2G
myloopSpruceTreeTall2G:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeTall2G
loop myloopSpruceTreeTall2G
jmp notSpruceTreeTall2G
yepSpruceTreeTall2G:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale15Tall2G]
jmp return
notSpruceTreeTall2G:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,2CompareSpruceTreeMiddleG
myloopSpruceTreeMiddleG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeMiddleG
loop myloopSpruceTreeMiddleG
jmp notSpruceTreeMiddleG
yepSpruceTreeMiddleG:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale16]
jmp return
notSpruceTreeMiddleG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTreeShortG
myloopSpruceTreeShortG:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTreeShortG
loop myloopSpruceTreeShortG
jmp notSpruceTreeShortG
yepSpruceTreeShortG:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale17]
jmp return
notSpruceTreeShortG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)14
mov rbp,2CompareSpruceTallY
myloopSpruceTallY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceTallY
loop myloopSpruceTallY
jmp notSpruceTallY
yepSpruceTallY:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale18]
jmp return
notSpruceTallY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceMiddleY
myloopSpruceMiddleY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceMiddleY
loop myloopSpruceMiddleY
jmp notSpruceMiddleY
yepSpruceMiddleY:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale19]
jmp return
notSpruceMiddleY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,2CompareSpruceShortY
myloopSpruceShortY:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepSpruceShortY
loop myloopSpruceShortY
jmp notSpruceShortY
yepSpruceShortY:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale20]
jmp return
notSpruceShortY:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)25
mov rbp,2CompareBushes
myloopBushes:
mov ax,word ptr[rbp+rcx*2]
cmp word ptr[rdi+C0],ax
je yepBushes
loop myloopBushes
jmp code
yepBushes:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
mulss xmm0,[grassScale21]
jmp return
code:
pop ebp
pop ecx
movss xmm0,[rdi+000000F0]
jmp return
Grass_Scale2:
jmp newmem
nop
nop
nop
return:
registersymbol(Grass_Scale2)
[DISABLE]
Grass_Scale2:
db F3 0F 10 87 F0 00 00 00
unregistersymbol(Grass_Scale2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+FF4A8
"theHunterCotW_F.exe"+FF46F: 4D 8D 8E D8 00 00 00 - lea r9,[r14+000000D8]
"theHunterCotW_F.exe"+FF476: C7 44 24 20 04 00 00 00 - mov [rsp+20],00000004
"theHunterCotW_F.exe"+FF47E: BA 02 00 00 00 - mov edx,00000002
"theHunterCotW_F.exe"+FF483: 44 8D 42 02 - lea r8d,[rdx+02]
"theHunterCotW_F.exe"+FF487: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+FF48A: E8 81 E2 10 01 - call theHunterCotW_F.exe+120D710
"theHunterCotW_F.exe"+FF48F: F3 0F 11 75 D7 - movss [rbp-29],xmm6
"theHunterCotW_F.exe"+FF494: C7 45 DB 00 00 00 00 - mov [rbp-25],00000000
"theHunterCotW_F.exe"+FF49B: F3 0F 10 8F EC 00 00 00 - movss xmm1,[rdi+000000EC]
"theHunterCotW_F.exe"+FF4A3: F3 0F 11 4D DF - movss [rbp-21],xmm1
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+FF4A8: F3 0F 10 87 F0 00 00 00 - movss xmm0,[rdi+000000F0]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+FF4B0: F3 0F 11 45 E3 - movss [rbp-1D],xmm0
"theHunterCotW_F.exe"+FF4B5: 48 85 DB - test rbx,rbx
"theHunterCotW_F.exe"+FF4B8: 74 53 - je theHunterCotW_F.exe+FF50D
"theHunterCotW_F.exe"+FF4BA: 48 8B 4B 18 - mov rcx,[rbx+18]
"theHunterCotW_F.exe"+FF4BE: 0F B6 C1 - movzx eax,cl
"theHunterCotW_F.exe"+FF4C1: C0 E8 03 - shr al,03
"theHunterCotW_F.exe"+FF4C4: 0F 57 C0 - xorps xmm0,xmm0
"theHunterCotW_F.exe"+FF4C7: A8 01 - test al,01
"theHunterCotW_F.exe"+FF4C9: 74 18 - je theHunterCotW_F.exe+FF4E3
"theHunterCotW_F.exe"+FF4CB: 48 C1 E9 14 - shr rcx,14
}
70898
"Grass Trees Bushes / UV Layton"
Auto Assembler Script
[ENABLE]
alloc(grassUV2,16)
alloc(grassUV2S11,16)
alloc(grassUV2S12,16)
alloc(grassUV2S13,16)
alloc(grassUV2S14,16)
alloc(grassUV2S15,16)
alloc(grassUV3,16)
alloc(grassUV5,16)
alloc(grassUV6,16)
alloc(grassUV6RG,16)
alloc(grassUV7,16)
alloc(grassUV9,16)
alloc(grassUV9Redish,16)
alloc(grassUV10,16)
alloc(grassUV11,16)
grassUV2:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV2S11:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV2S12:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV2S13:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV2S14:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV2S15:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV3:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV5:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV6:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV6RG:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV7:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV9:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV9Redish:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV10:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
grassUV11:
dd (float)0
dd (float)0
dd (float)0
dd (float)0
registersymbol(grassUV2)
registersymbol(grassUV2S11)
registersymbol(grassUV2S12)
registersymbol(grassUV2S13)
registersymbol(grassUV2S14)
registersymbol(grassUV2S15)
registersymbol(grassUV3)
registersymbol(grassUV5)
registersymbol(grassUV6)
registersymbol(grassUV6RG)
registersymbol(grassUV7)
registersymbol(grassUV9)
registersymbol(grassUV9Redish)
registersymbol(grassUV10)
registersymbol(grassUV11)
aobscanmodule(FoliageSeeds,theHunterCotW_F.exe,0F 10 87 F4 00 00 00 0F 11 45 40) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+F48C3)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2
myloopGrass2:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2
loop myloopGrass2
jmp notGrass2
yepGrass2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2]
jmp return
notGrass2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S11
myloopGrass2S11:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S11
loop myloopGrass2S11
jmp notGrass2S11
yepGrass2S11:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S11]
jmp return
notGrass2S11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S12
myloopGrass2S12:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S12
loop myloopGrass2S12
jmp notGrass2S12
yepGrass2S12:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S12]
jmp return
notGrass2S12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S13
myloopGrass2S13:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S13
loop myloopGrass2S13
jmp notGrass2S13
yepGrass2S13:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S13]
jmp return
notGrass2S13:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S14
myloopGrass2S14:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S14
loop myloopGrass2S14
jmp notGrass2S14
yepGrass2S14:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S14]
jmp return
notGrass2S14:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2S15
myloopGrass2S15:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S15
loop myloopGrass2S15
jmp notGrass2S15
yepGrass2S15:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S15]
jmp return
notGrass2S15:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass3
myloopGrass3:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass3
loop myloopGrass3
jmp notGrass3
yepGrass3:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV3]
jmp return
notGrass3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass5
myloopGrass5:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass5
loop myloopGrass5
jmp notGrass5
yepGrass5:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV5]
jmp return
notGrass5:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass6
myloopGrass6:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass6
loop myloopGrass6
jmp notGrass6
yepGrass6:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV6]
jmp return
notGrass6:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,CompareGrass6RG
myloopGrass6RG:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass6RG
loop myloopGrass6RG
jmp notGrass6RG
yepGrass6RG:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV6RG]
jmp return
notGrass6RG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass7
myloopGrass7:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass7
loop myloopGrass7
jmp notGrass7
yepGrass7:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV7]
jmp return
notGrass7:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass9
myloopGrass9:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass9
loop myloopGrass9
jmp notGrass9
yepGrass9:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV9]
jmp return
notGrass9:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass9Redish
myloopGrass9Redish:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass9Redish
loop myloopGrass9Redish
jmp notGrass9Redish
yepGrass9Redish:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV9Redish]
jmp return
notGrass9Redish:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass10
myloopGrass10:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass10
loop myloopGrass10
jmp notGrass10
yepGrass10:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV10]
jmp return
notGrass10:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass11
myloopGrass11:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass11
loop myloopGrass11
jmp code
yepGrass11:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV11]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
jmp return
FoliageSeeds:
jmp newmem
nop
nop
return:
registersymbol(FoliageSeeds)
[DISABLE]
FoliageSeeds:
db 0F 10 87 F4 00 00 00
unregistersymbol(grassUV2)
unregistersymbol(grassUV2S11)
unregistersymbol(grassUV2S12)
unregistersymbol(grassUV2S13)
unregistersymbol(grassUV2S14)
unregistersymbol(grassUV2S15)
unregistersymbol(grassUV3)
unregistersymbol(grassUV5)
unregistersymbol(grassUV6)
unregistersymbol(grassUV6RG)
unregistersymbol(grassUV7)
unregistersymbol(grassUV9)
unregistersymbol(grassUV9Redish)
unregistersymbol(grassUV10)
unregistersymbol(grassUV11)
unregistersymbol(FoliageSeeds)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+F48C3
"theHunterCotW_F.exe"+F489C: 41 F6 86 30 07 00 00 40 - test byte ptr [r14+00000730],40
"theHunterCotW_F.exe"+F48A4: 0F 85 B2 00 00 00 - jne theHunterCotW_F.exe+F495C
"theHunterCotW_F.exe"+F48AA: 8B 8F 04 01 00 00 - mov ecx,[rdi+00000104]
"theHunterCotW_F.exe"+F48B0: 8B C1 - mov eax,ecx
"theHunterCotW_F.exe"+F48B2: C1 E8 08 - shr eax,08
"theHunterCotW_F.exe"+F48B5: 8B D1 - mov edx,ecx
"theHunterCotW_F.exe"+F48B7: C1 EA 09 - shr edx,09
"theHunterCotW_F.exe"+F48BA: 80 E2 01 - and dl,01
"theHunterCotW_F.exe"+F48BD: C1 E9 0A - shr ecx,0A
"theHunterCotW_F.exe"+F48C0: 80 E1 01 - and cl,01
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+F48C3: 0F 10 87 F4 00 00 00 - movups xmm0,[rdi+000000F4]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+F48CA: 0F 11 45 40 - movups [rbp+40],xmm0
"theHunterCotW_F.exe"+F48CE: 24 01 - and al,01
"theHunterCotW_F.exe"+F48D0: 75 0D - jne theHunterCotW_F.exe+F48DF
"theHunterCotW_F.exe"+F48D2: 84 D2 - test dl,dl
"theHunterCotW_F.exe"+F48D4: 75 09 - jne theHunterCotW_F.exe+F48DF
"theHunterCotW_F.exe"+F48D6: C7 45 50 00 00 00 00 - mov [rbp+50],00000000
"theHunterCotW_F.exe"+F48DD: EB 12 - jmp theHunterCotW_F.exe+F48F1
"theHunterCotW_F.exe"+F48DF: C7 45 50 00 00 80 3F - mov [rbp+50],3F800000
"theHunterCotW_F.exe"+F48E6: 84 D2 - test dl,dl
"theHunterCotW_F.exe"+F48E8: C7 45 54 00 00 80 3F - mov [rbp+54],3F800000
}
70899
"Grass Trees Bushes / UV 2 Layton"
Auto Assembler Script
[ENABLE]
aobscanmodule(FoliageSeeds2,theHunterCotW_F.exe,0F 10 87 F4 00 00 00 0F 11 45 E7) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+FF52A)
label(code)
label(return)
newmem:
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2
myloopGrass2:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2
loop myloopGrass2
jmp notGrass2
yepGrass2:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2]
jmp return
notGrass2:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S11
myloopGrass2S11:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S11
loop myloopGrass2S11
jmp notGrass2S11
yepGrass2S11:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S11]
jmp return
notGrass2S11:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass2S12
myloopGrass2S12:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S12
loop myloopGrass2S12
jmp notGrass2S12
yepGrass2S12:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S12]
jmp return
notGrass2S12:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S13
myloopGrass2S13:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S13
loop myloopGrass2S13
jmp notGrass2S13
yepGrass2S13:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S13]
jmp return
notGrass2S13:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)8
mov rbp,CompareGrass2S14
myloopGrass2S14:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S14
loop myloopGrass2S14
jmp notGrass2S14
yepGrass2S14:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S14]
jmp return
notGrass2S14:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)4
mov rbp,CompareGrass2S15
myloopGrass2S15:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass2S15
loop myloopGrass2S15
jmp notGrass2S15
yepGrass2S15:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV2S15]
jmp return
notGrass2S15:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass3
myloopGrass3:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass3
loop myloopGrass3
jmp notGrass3
yepGrass3:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV3]
jmp return
notGrass3:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)6
mov rbp,CompareGrass5
myloopGrass5:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass5
loop myloopGrass5
jmp notGrass5
yepGrass5:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV5]
jmp return
notGrass5:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass6
myloopGrass6:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass6
loop myloopGrass6
jmp notGrass6
yepGrass6:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV6]
jmp return
notGrass6:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)11
mov rbp,CompareGrass6RG
myloopGrass6RG:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass6RG
loop myloopGrass6RG
jmp notGrass6RG
yepGrass6RG:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV6RG]
jmp return
notGrass6RG:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)5
mov rbp,CompareGrass7
myloopGrass7:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass7
loop myloopGrass7
jmp notGrass7
yepGrass7:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV7]
jmp return
notGrass7:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass9
myloopGrass9:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass9
loop myloopGrass9
jmp notGrass9
yepGrass9:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV9]
jmp return
notGrass9:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)2
mov rbp,CompareGrass9Redish
myloopGrass9Redish:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass9Redish
loop myloopGrass9Redish
jmp notGrass9Redish
yepGrass9Redish:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV9Redish]
jmp return
notGrass9Redish:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)3
mov rbp,CompareGrass10
myloopGrass10:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass10
loop myloopGrass10
jmp notGrass10
yepGrass10:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV10]
jmp return
notGrass10:
pop ebp
pop ecx
push ecx
push ebp
xor rcx,rcx
mov cl,(int)7
mov rbp,CompareGrass11
myloopGrass11:
mov ax,word ptr[rbp+rcx*2]
cmp ax,word ptr[rdi+C0]
je yepGrass11
loop myloopGrass11
jmp code
yepGrass11:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
addps xmm0,[grassUV11]
jmp return
code:
pop ebp
pop ecx
movups xmm0,[rdi+000000F4]
jmp return
FoliageSeeds2:
jmp newmem
nop
nop
return:
registersymbol(FoliageSeeds2)
[DISABLE]
FoliageSeeds2:
db 0F 10 87 F4 00 00 00
unregistersymbol(FoliageSeeds2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "theHunterCotW_F.exe"+FF52A
"theHunterCotW_F.exe"+FF4F8: F3 48 0F 2A C0 - cvtsi2ss xmm0,rax
"theHunterCotW_F.exe"+FF4FD: F3 0F 58 C8 - addss xmm1,xmm0
"theHunterCotW_F.exe"+FF501: 0F 57 0D 08 07 3F 01 - xorps xmm1,[theHunterCotW_F.exe+14EFC10]
"theHunterCotW_F.exe"+FF508: F3 0F 11 4D DB - movss [rbp-25],xmm1
"theHunterCotW_F.exe"+FF50D: C7 44 24 20 01 00 00 00 - mov [rsp+20],00000001
"theHunterCotW_F.exe"+FF515: 4C 8D 4D D7 - lea r9,[rbp-29]
"theHunterCotW_F.exe"+FF519: BA 02 00 00 00 - mov edx,00000002
"theHunterCotW_F.exe"+FF51E: 44 8D 42 06 - lea r8d,[rdx+06]
"theHunterCotW_F.exe"+FF522: 48 8B CE - mov rcx,rsi
"theHunterCotW_F.exe"+FF525: E8 E6 E1 10 01 - call theHunterCotW_F.exe+120D710
// ---------- INJECTING HERE ----------
"theHunterCotW_F.exe"+FF52A: 0F 10 87 F4 00 00 00 - movups xmm0,[rdi+000000F4]
// ---------- DONE INJECTING ----------
"theHunterCotW_F.exe"+FF531: 0F 11 45 E7 - movups [rbp-19],xmm0
"theHunterCotW_F.exe"+FF535: 8B 87 04 01 00 00 - mov eax,[rdi+00000104]
"theHunterCotW_F.exe"+FF53B: A9 00 03 00 00 - test eax,00000300
"theHunterCotW_F.exe"+FF540: C7 45 F7 00 00 00 00 - mov [rbp-09],00000000
"theHunterCotW_F.exe"+FF547: 74 07 - je theHunterCotW_F.exe+FF550
"theHunterCotW_F.exe"+FF549: C7 45 F7 00 00 80 3F - mov [rbp-09],3F800000
"theHunterCotW_F.exe"+FF550: 0F BA E0 09 - bt eax,09
"theHunterCotW_F.exe"+FF554: C7 45 FB 00 00 80 3F - mov [rbp-05],3F800000
"theHunterCotW_F.exe"+FF55B: 72 07 - jb theHunterCotW_F.exe+FF564
"theHunterCotW_F.exe"+FF55D: C7 45 FB 00 00 00 00 - mov [rbp-05],00000000
}
41078
"Trees / Replacers Layton"
000000
1
39759
"Deciduous Trees Replace"
000000
4 Bytes
DecidTree
70187
"Deciduous Empty Replace"
000000
4 Bytes
DecidEmpty
39760
"Green Spruce Tall Replace"
000000
4 Bytes
SpruceTreeTallG
70565
"Green Spruce Tall 2 Replace"
000000
4 Bytes
SpruceTreeTall2G
70190
"Green Spruce Middle Replace"
000000
4 Bytes
SpruceTreeMiddleG
70189
"Green Spruce Short Replace"
000000
4 Bytes
SpruceTreeShortG
39761
"Yellow Spruce Tall Replace"
000000
4 Bytes
SpruceTallY
70192
"Yellow Spruce Middle Replace"
000000
4 Bytes
SpruceMiddleY
70191
"Yellow Spruce Short Replace"
000000
4 Bytes
SpruceShortY
70188
"Spruce Empty Replace"
000000
4 Bytes
SpruceTreeEmpty
39762
"Rocks Replace"
000000
4 Bytes
Rocks
39763
"Grass Replace"
000000
4 Bytes
Grass
39764
"Bushes Replace"
000000
4 Bytes
Bushes
Increase Value
17
39
1
0
Decrease Value
17
37
1
1
39765
"Logs Replace"
000000
4 Bytes
Logs
41077
"Bypass Replacers (any value-Replace On, 0-Original Foliage)"
0000FF
1
39766
"Deciduous Trees On"
000000
4 Bytes
DecidTreesOnOff
70193
"Deciduous Empty On"
000000
4 Bytes
DecidEmptyOnOff
39767
"Green Spruce Tall On"
000000
4 Bytes
SpruceTreeTallGOnOff
70566
"Green Spruce Tall 2 On"
000000
4 Bytes
SpruceTreeTall2GOnOff
70196
"Green Spruce Middle On"
000000
4 Bytes
SpruceTreeMiddleGOnOff
70194
"Green Spruce Short On"
000000
4 Bytes
SpruceTreeShortGOnOff
39768
"Yellow Spruce Tall On"
000000
4 Bytes
SpruceTallYOnOff
70198
"Yellow Spruce Middle On"
000000
4 Bytes
SpruceMiddleYOnOff
70197
"Yellow Spruce Short On"
000000
4 Bytes
SpruceShortYOnOff
70195
"Spruce Empty On"
000000
4 Bytes
SpruceTreeEmptyOnOff
39769
"Rocks On"
000000
4 Bytes
RocksOnOff
39770
"Grass On"
000000
4 Bytes
GrassOnOff
39771
"Bushes On"
000000
4 Bytes
BushesOnOff
39772
"Logs On"
000000
4 Bytes
LogsOnOff
70998
"Trees / Color Mult Layton"
1
70999
"Deciduous Trees R"
0000FF
Float
RcolorDecidTrees
71000
"Deciduous Trees G"
008000
Float
RcolorDecidTrees+4
71001
"Deciduous Trees B"
FF0000
Float
RcolorDecidTrees+8
71002
"Empty Deciduous R"
0000FF
Float
RcolorDecidEmpty
71003
"Empty Deciduous G"
008000
Float
RcolorDecidEmpty+4
71004
"Empty Deciduous B"
FF0000
Float
RcolorDecidEmpty+8
71005
"Green Spruce Tall R"
0000FF
Float
RcolorSpruceTreeTallG
71006
"Green Spruce Tall G"
008000
Float
RcolorSpruceTreeTallG+4
71007
"Green Spruce Tall B"
FF0000
Float
RcolorSpruceTreeTallG+8
71008
"Green Spruce Tall 2 R"
0000FF
Float
RcolorSpruceTreeTall2G
71009
"Green Spruce Tall 2 G"
008000
Float
RcolorSpruceTreeTall2G+4
71010
"Green Spruce Tall 2 B"
FF0000
Float
RcolorSpruceTreeTall2G+8
71011
"Green Spruce Middle R"
0000FF
Float
RcolorSpruceTreeMiddleG
71012
"Green Spruce Middle G"
008000
Float
RcolorSpruceTreeMiddleG+4
71013
"Green Spruce Middle B"
FF0000
Float
RcolorSpruceTreeMiddleG+8
71014
"Green Spruce Short R"
0000FF
Float
RcolorSpruceTreeShortG
71015
"Green Spruce Short G"
008000
Float
RcolorSpruceTreeShortG+4
71016
"Green Spruce Short B"
FF0000
Float
RcolorSpruceTreeShortG+8
71017
"Empty Spruce R"
0000FF
Float
RcolorSpruceTreeEmpty
71018
"Empty Spruce G"
008000
Float
RcolorSpruceTreeEmpty+4
71019
"Empty Spruce B"
FF0000
Float
RcolorSpruceTreeEmpty+8
71020
"Yellow Spruce Tall R"
0000FF
Float
RcolorSpruceTallY
71021
"Yellow Spruce Tall G"
008000
Float
RcolorSpruceTallY+4
71022
"Yellow Spruce Tall B"
FF0000
Float
RcolorSpruceTallY+8
71023
"Yellow Spruce Middle R"
0000FF
Float
RcolorSpruceMiddleY
71024
"Yellow Spruce Middle G"
008000
Float
RcolorSpruceMiddleY+4
71025
"Yellow Spruce Middle B"
FF0000
Float
RcolorSpruceMiddleY+8
71026
"Yellow Spruce Short R"
0000FF
Float
RcolorSpruceShortY
71027
"Yellow Spruce Short G"
008000
Float
RcolorSpruceShortY+4
71028
"Yellow Spruce Short B"
FF0000
Float
RcolorSpruceShortY+8
71029
"Rocks R"
0000FF
Float
RcolorRocks
71030
"Rocks G"
008000
Float
RcolorRocks+4
71031
"Rocks B"
FF0000
Float
RcolorRocks+8
71032
"Bushes R"
0000FF
Float
RcolorBushes
71033
"Bushes G"
008000
Float
RcolorBushes+4
71034
"Bushes B"
FF0000
Float
RcolorBushes+8
71035
"Logs R"
0000FF
Float
RcolorLogs
71036
"Logs G"
008000
Float
RcolorLogs+4
71037
"Logs B"
FF0000
Float
RcolorLogs+8
70287
"Grass / Color Mult Layton"
1
70119
"Tiny Sprus R"
0000FF
Float
GrassR1
70120
"Tiny Sprus G"
008000
Float
GrassR1+4
70121
"Tiny Sprus B"
FF0000
Float
GrassR1+8
70122
"Simple Yellow R"
0000FF
Float
GrassR2
70123
"Simple Yellow G"
008000
Float
GrassR2+4
70124
"Simple Yellow B"
FF0000
Float
GrassR2+8
70828
"Simple Yellow S11 R"
0000FF
Float
GrassR2S11
70829
"Simple Yellow S11 G"
008000
Float
GrassR2S11+4
70830
"Simple Yellow S11 B"
FF0000
Float
GrassR2S11+8
70825
"Simple Yellow S12 R"
0000FF
Float
GrassR2S12
70826
"Simple Yellow S12 G"
008000
Float
GrassR2S12+4
70827
"Simple Yellow S12 B"
FF0000
Float
GrassR2S12+8
70975
"Simple Yellow S13 R"
0000FF
Float
GrassR2S13
70976
"Simple Yellow S13 G"
008000
Float
GrassR2S13+4
70977
"Simple Yellow S13 B"
FF0000
Float
GrassR2S13+8
70972
"Simple Yellow S14 R"
0000FF
Float
GrassR2S14
70973
"Simple Yellow S14 G"
008000
Float
GrassR2S14+4
70974
"Simple Yellow S14 B"
FF0000
Float
GrassR2S14+8
70969
"Simple Yellow S15 R"
0000FF
Float
GrassR2S15
70970
"Simple Yellow S15 G"
008000
Float
GrassR2S15+4
70971
"Simple Yellow S15 B"
FF0000
Float
GrassR2S15+8
70125
"Simple Green R"
0000FF
Float
GrassR3
70126
"Simple Green G"
008000
Float
GrassR3+4
70127
"Simple Green B"
FF0000
Float
GrassR3+8
70128
"Fern R"
0000FF
Float
GrassR4
70129
"Fern Red G"
008000
Float
GrassR4+4
70130
"Fern Red B"
FF0000
Float
GrassR4+8
70131
"Moss R"
0000FF
Float
GrassR5
70132
"Moss G"
008000
Float
GrassR5+4
70133
"Moss B"
FF0000
Float
GrassR5+8
70134
"Deciduous Grass R"
0000FF
Float
GrassR6
70135
"Deciduous Grass G"
008000
Float
GrassR6+4
70136
"Deciduous Grass B"
FF0000
Float
GrassR6+8
70611
"Deciduous RG Grass R"
0000FF
Float
GrassR6RG
70612
"Deciduous RG Grass G"
008000
Float
GrassR6RG+4
70613
"Deciduous RG Grass B"
FF0000
Float
GrassR6RG+8
70137
"Red Deciduous R"
0000FF
Float
GrassR7
70138
"Red Deciduous G"
008000
Float
GrassR7+4
70139
"Red Deciduous B"
FF0000
Float
GrassR7+8
70140
"Grass Brown R"
0000FF
Float
GrassR8
70141
"Grass Brown G"
008000
Float
GrassR8+4
70142
"Grass Brown B"
FF0000
Float
GrassR8+8
70614
"Grass Brown Leaves R"
0000FF
Float
GrassR8Leaves
70615
"Grass Brown Leaves G"
008000
Float
GrassR8Leaves+4
70616
"Grass Brown Leaves B"
FF0000
Float
GrassR8Leaves+8
70143
"Grass 1 R"
0000FF
Float
GrassR9
70144
"Grass 1 G"
008000
Float
GrassR9+4
70145
"Grass 1 B"
FF0000
Float
GrassR9+8
70617
"Grass 1 Redish R"
0000FF
Float
grassR9Redish
70618
"Grass 1 Redish G"
008000
Float
grassR9Redish+4
70619
"Grass 1 Redish B"
FF0000
Float
grassR9Redish+8
70146
"Grass 2 R"
0000FF
Float
GrassR10
70147
"Grass 2 G"
008000
Float
GrassR10+4
70148
"Grass 2 B"
FF0000
Float
GrassR10+8
70149
"Grass 3 R"
0000FF
Float
GrassR11
70150
"Grass 3 G"
008000
Float
GrassR11+4
70151
"Grass 3 B"
FF0000
Float
GrassR11+8
70183
"Bulrush R"
0000FF
Float
GrassR12
70184
"Bulrush G"
008000
Float
grassR12+4
70185
"Bulrush B"
FF0000
Float
grassR12+8
70310
"Grass Trees Bushes / Wet Glow SSS Layton"
1
70635
"Wet"
1
70311
"Tiny Sprus Wet"
Float
grassWetSSS1
70384
"Simple Yellow Wet"
Float
grassWetSSS2
70832
"Simple Yellow S11 Wet"
Float
grassWetSSS2S11
70831
"Simple Yellow S12 Wet"
Float
grassWetSSS2S12
70980
"Simple Yellow S13 Wet"
Float
grassWetSSS2S13
70979
"Simple Yellow S14 Wet"
Float
grassWetSSS2S14
70978
"Simple Yellow S15 Wet"
Float
grassWetSSS2S15
70380
"Simple Green Wet"
Float
grassWetSSS3
70376
"Fern Wet"
Float
grassWetSSS4
70372
"Moss Wet"
Float
grassWetSSS5
70368
"Deciduous Grass Wet"
Float
grassWetSSS6
70620
"Deciduous Grass RG Wet"
Float
grassWetSSS6RG
70364
"Red Deciduous Wet"
Float
grassWetSSS7
70360
"Grass Brown Wet"
Float
grassWetSSS8
70624
"Grass Brown Leaves Wet"
Float
grassWetSSS8Leaves
70628
"Grass 1 Wet"
Float
grassWetSSS9
70356
"Grass 1 Redish Wet"
Float
grassWetSSS9Redish
70352
"Grass 2 Wet"
Float
grassWetSSS10
70348
"Grass 3 Wet"
Float
grassWetSSS11
70506
"Deciduous Trees Wet"
Float
treesWetSSS13
70538
"Empty Deciduous Wet"
Float
treesWetSSS14
70534
"Green Spruce Tall Wet"
Float
treesWetSSS15
70572
"Green Spruce Tall 2 Wet"
Float
treesWetSSS15Tall2G
70530
"Green Spruce Middle Wet"
Float
treesWetSSS16
70526
"Green Spruce Short Wet"
Float
treesWetSSS17
70522
"Yellow Spruce Tall Wet"
Float
treesWetSSS18
70518
"Yellow Spruce Middle Wet"
Float
treesWetSSS19
70514
"Yellow Spruce Short Wet"
Float
treesWetSSS20
70510
"Bushes Wet"
Float
treesWetSSS21
70501
"Bulrush Wet"
Float
grassWetSSS12
70636
"Glow"
1
70381
"Simple Green Glow"
Float
grassWetSSS3+4
70377
"Fern Glow"
Float
grassWetSSS4+4
70637
"SSS"
1
70313
"Tiny Sprus SSS_1"
Float
grassWetSSS1+8
70347
"Tiny Sprus SSS_2"
Float
grassWetSSS1+C
70386
"Simple Yellow SSS_1"
Float
grassWetSSS2+8
70387
"Simple Yellow SSS_2"
Float
grassWetSSS2+C
70837
"Simple Yellow S11 SSS_1"
Float
grassWetSSS2S11+8
70838
"Simple Yellow S11 SSS_2"
Float
grassWetSSS2S11+C
70835
"Simple Yellow S12 SSS_1"
Float
grassWetSSS2S12+8
70836
"Simple Yellow S12 SSS_2"
Float
grassWetSSS2S12+C
70988
"Simple Yellow S13 SSS_1"
Float
grassWetSSS2S13+8
70989
"Simple Yellow S13 SSS_2"
Float
grassWetSSS2S13+C
70986
"Simple Yellow S14 SSS_1"
Float
grassWetSSS2S14+8
70987
"Simple Yellow S14 SSS_2"
Float
grassWetSSS2S14+C
70984
"Simple Yellow S15 SSS_1"
Float
grassWetSSS2S15+8
70985
"Simple Yellow S15 SSS_2"
Float
grassWetSSS2S15+C
70382
"Simple Green SSS_1"
Float
grassWetSSS3+8
70383
"Simple Green SSS_2"
Float
grassWetSSS3+C
70378
"Fern SSS_1"
Float
grassWetSSS4+8
70379
"Fern SSS_2"
Float
grassWetSSS4+C
70374
"Moss SSS_1"
Float
grassWetSSS5+8
70375
"Moss SSS_2"
Float
grassWetSSS5+C
70370
"Deciduous Grass SSS_1"
Float
grassWetSSS6+8
70371
"Deciduous Grass SSS_2"
Float
grassWetSSS6+C
70622
"Deciduous Grass RG SSS_1"
Float
grassWetSSS6RG+8
70623
"Deciduous Grass RG SSS_2"
Float
grassWetSSS6RG+C
70366
"Red Deciduous SSS_1"
Float
grassWetSSS7+8
70367
"Red Deciduous SSS_2"
Float
grassWetSSS7+C
70362
"Grass Brown SSS_1"
Float
grassWetSSS8+8
70363
"Grass Brown SSS_2"
Float
grassWetSSS8+C
70626
"Grass Brown Leaves SSS_1"
Float
grassWetSSS8Leaves+8
70627
"Grass Brown Leaves SSS_2"
Float
grassWetSSS8Leaves+C
70630
"Grass 1 SSS_1"
Float
grassWetSSS9+8
70631
"Grass 1 SSS_2"
Float
grassWetSSS9+C
70358
"Grass 1 Redish SSS_1"
Float
grassWetSSS9Redish+8
70359
"Grass 1 Redish SSS_2"
Float
grassWetSSS9Redish+C
70354
"Grass 2 SSS_1"
Float
grassWetSSS10+8
70355
"Grass 2 SSS_2"
Float
grassWetSSS10+C
70350
"Grass 3 SSS_1"
Float
grassWetSSS11+8
70351
"Grass 3 SSS_2"
Float
grassWetSSS11+C
70508
"Deciduous Trees SSS_1"
Float
treesWetSSS13+8
70509
"Deciduous Trees SSS_2"
Float
treesWetSSS13+C
70540
"Empty Deciduous SSS_1"
Float
treesWetSSS14+8
70541
"Empty Deciduous SSS_2"
Float
treesWetSSS14+C
70536
"Green Spruce Tall SSS_1"
Float
treesWetSSS15+8
70537
"Green Spruce Tall SSS_2"
Float
treesWetSSS15+C
70574
"Green Spruce Tall 2 SSS_1"
Float
treesWetSSS15Tall2G+8
70575
"Green Spruce Tall 2 SSS_2"
Float
treesWetSSS15Tall2G+C
70532
"Green Spruce Middle SSS_1"
Float
treesWetSSS16+8
70533
"Green Spruce Middle SSS_2"
Float
treesWetSSS16+C
70528
"Green Spruce Short SSS_1"
Float
treesWetSSS17+8
70529
"Green Spruce Short SSS_2"
Float
treesWetSSS17+C
70524
"Yellow Spruce Tall SSS_1"
Float
treesWetSSS18+8
70525
"Yellow Spruce Tall SSS_2"
Float
treesWetSSS18+C
70520
"Yellow Spruce Middle SSS_1"
Float
treesWetSSS19+8
70521
"Yellow Spruce Middle SSS_2"
Float
treesWetSSS19+C
70516
"Yellow Spruce Short SSS_1"
Float
treesWetSSS20+8
70517
"Yellow Spruce Short SSS_2"
Float
treesWetSSS20+C
70512
"Bushes SSS_1"
Float
treesWetSSS21+8
70513
"Bushes SSS_2"
Float
treesWetSSS21+C
70503
"Bulrush SSS_1"
Float
grassWetSSS12+8
70504
"Bulrush SSS_2"
Float
grassWetSSS12+C
70390
"Grass Trees Bushes / Snowy Layton"
000000
1
70391
"Tiny Sprus Snowy"
Float
grassSnow1
70392
"Simple Yellow Snowy"
Float
grassSnow2
70840
"Simple Yellow Seed 1.1 Snowy"
Float
grassSnow2S11
70839
"Simple Yellow Seed 1.2 Snowy"
Float
grassSnow2S12
70992
"Simple Yellow Seed 1.3 Snowy"
Float
grassSnow2S13
70991
"Simple Yellow Seed 1.4 Snowy"
Float
grassSnow2S14
70990
"Simple Yellow Seed 1.5 Snowy"
Float
grassSnow2S15
70393
"Simple Green Snowy"
Float
grassSnow3
70394
"Fern Snowy"
Float
grassSnow4
70395
"Moss Snowy"
Float
grassSnow5
70396
"Deciduous Grass Snowy"
Float
grassSnow6
70632
"Deciduous Grass RG Snowy"
Float
grassSnow6RG
70397
"Red Deciduous Snowy"
Float
grassSnow7
70398
"Grass Brown Snowy"
Float
grassSnow8
70633
"Grass Brown Leaves Snowy"
Float
grassSnow8Leaves
70399
"Grass 1 Snowy"
Float
grassSnow9
70634
"Grass 1 Redish Snowy"
Float
grassSnow9Redish
70400
"Grass 2 Snowy"
Float
grassSnow10
70401
"Grass 3 Snowy"
Float
grassSnow11
70544
"Deciduous Trees Snowy"
Float
grassSnow13
70543
"Empty Deciduous Snowy"
Float
grassSnow14
70576
"Green Spruce Tall Snowy"
Float
grassSnow15
70542
"Green Spruce Tall 2 Snowy"
Float
grassSnow15Tall2G
70548
"Green Spruce Middle Snowy"
Float
grassSnow16
70549
"Green Spruce Short Snowy"
Float
grassSnow17
70550
"Yellow Spruce Tall Snowy"
Float
grassSnow18
70545
"Yellow Spruce Middle Snowy"
Float
grassSnow19
70546
"Yellow Spruce Short Snowy"
Float
grassSnow20
70547
"Bushes Snowy"
Float
grassSnow21
70500
"Bulrush Snowy"
Float
grassSnow12
70290
"Grass Trees Bushes / Foliage Scale Layton"
000000
1
70293
"Tiny Sprus Scale"
Float
grassScale1
70294
"Simple Yellow Scale"
Float
grassScale2
70842
"Simple Yellow S11 Scale"
Float
grassScale2S11
70841
"Simple Yellow S12 Scale"
Float
grassScale2S12
70995
"Simple Yellow S13 Scale"
Float
grassScale2S13
70994
"Simple Yellow S14 Scale"
Float
grassScale2S14
70993
"Simple Yellow S15 Scale"
Float
grassScale2S15
70295
"Simple Green Scale"
Float
grassScale3
70296
"Fern Scale"
Float
grassScale4
70297
"Moss Scale"
Float
grassScale5
70298
"Deciduous Grass Scale"
Float
grassScale6
70638
"Deciduous Grass RG Scale"
Float
grassScale6RG
70299
"Red Deciduous Scale"
Float
grassScale7
70300
"Grass Brown Scale"
Float
grassScale8
70640
"Grass Brown Leaves Scale"
Float
grassScale8Leaves
70301
"Grass 1 Scale"
Float
grassScale9
70639
"Grass 1 Redish Scale"
Float
grassScale9Redish
70302
"Grass 2 Scale"
Float
grassScale10
70303
"Grass 3 Scale"
Float
grassScale11
70553
"Deciduous Trees Scale"
Float
grassScale13
70552
"Empty Deciduous Scale"
Float
grassScale14
70551
"Green Spruce Tall Scale"
Float
grassScale15
70577
"Green Spruce Tall 2 Scale"
Float
grassScale15Tall2G
70557
"Green Spruce Middle Scale"
Float
grassScale16
70558
"Green Spruce Short Scale"
Float
grassScale17
70559
"Yellow Spruce Tall Scale"
Float
grassScale18
70554
"Yellow Spruce Middle Scale"
Float
grassScale19
70555
"Yellow Spruce Short Scale"
Float
grassScale20
70556
"Bushes Scale"
Float
grassScale21
70499
"Bulrush Scale"
Float
grassScale12
70938
"Grass / UV Layton"
1
70939
"Simple Yellow UV1"
000000
Float
grassUV2
70940
"Simple Yellow UV2"
000000
Float
grassUV2+4
70941
"Simple Yellow S11 UV1"
Float
grassUV2S11
70942
"Simple Yellow S11 UV2"
Float
grassUV2S11+4
71040
"Simple Yellow S11 UV3"
Float
grassUV2S11+8
71039
"Simple Yellow S11 UV4"
Float
grassUV2S11+C
70943
"Simple Yellow S12 UV1"
000000
Float
grassUV2S12
70944
"Simple Yellow S12 UV2"
000000
Float
grassUV2S12+4
70945
"Simple Yellow S13 UV1"
000000
Float
grassUV2S13
70946
"Simple Yellow S13 UV2"
000000
Float
grassUV2S13+4
70947
"Simple Yellow S14 UV1"
000000
Float
grassUV2S14
70948
"Simple Yellow S14 UV2"
000000
Float
grassUV2S14+4
70949
"Simple Yellow S15 UV1"
000000
Float
grassUV2S15
70950
"Simple Yellow S15 UV2"
000000
Float
grassUV2S15+4
70951
"Simple Green UV1"
Float
grassUV3
70952
"Simple Green UV2"
Float
grassUV3+4
70953
"Moss UV1"
Float
grassUV5
70954
"Moss UV2"
Float
grassUV5+4
70955
"Deciduous Grass UV1"
Float
grassUV6
70956
"Deciduous Grass UV2"
Float
grassUV6+4
70957
"Deciduous Grass RG UV1"
Float
grassUV6RG
70958
"Deciduous Grass RG UV2"
Float
grassUV6RG+4
70959
"Red Deciduous UV1"
Float
grassUV7
70960
"Red Deciduous UV2"
Float
grassUV7+4
70961
"Grass 1 UV1"
Float
grassUV9
70962
"Grass 1 UV2"
Float
grassUV9+4
70963
"Grass 1 Redish UV1"
Float
grassUV9Redish
70964
"Grass 1 Redish UV2"
Float
grassUV9Redish+4
70965
"Grass 2 UV1"
Float
grassUV10
70966
"Grass 2 UV2"
Float
grassUV10+4
70967
"Grass 3 UV1"
Float
grassUV11
70968
"Grass 3 UV2"
Float
grassUV11+4
CompareDecidGTrees
29300F90000
CompareDecidYGTrees
29300F90080
CompareDecidYTrees
29300F90100
CompareDecidYRTrees
29300F90180
CompareDecidRTrees
29300F90200
CompareDecidEmptyTrees
29300F90280
CompareSpruceShortTrees
29300F90300
CompareSpruceMiddleTrees
29300F90380
CompareSpruceTall1Trees
29300F90400
CompareSpruceTall2Trees
29300F90480
CompareSpruceTall3Trees
29300F90500
CompareSpruceTall4Trees
29300F90580
CompareSpruceTall5Trees
29300F90600
CompareGrassG
29300F90680
CompareGrassGLeaves
29300F90700
CompareGrassY
29300F90780
CompareGrassB
29300F90800
CompareGrassFlowers
29300F90880
CompareFallenLeaves
29300F90900
CompareRocks
29300F90980
CompareCornField1
29300F90A00
CompareBushesY
29300F90A80
CompareBushesYG
29300F90B00
CompareBushesBrown
29300F90B80
CompareBushesEmpty
29300F90C00
CompareLogs
29300F90C80
CompareBulrush
29300F90D00
2CompareMoss
29300F90D80
2CompareDecidGreen1
29300F90E00
2CompareDecidGreen2
29300F90E80
2CompareDecidGreen3
29300F90F00
2CompareSimpleGreen1
29300F90F80
2CompareSimpleGreen2
29300F91000
2CompareSimpleGreenApart
29300F91080
2CompareSimpleGreenApartDry
29300F91100
2CompareRedGreen
29300F91180
2CompareGrassG
29300F91200
2CompareGrassGLeaves
29300F91280
2CompareGrassY
29300F91300
2CompareGrassB1
29300F91380
2CompareGrassB2
29300F91400
2CompareGrassFlowers
29300F91480
2CompareFallenLeaves
29300F91500
2CompareCornField1
29300F91580
2CompareBulrush
29300F91600
2CompareDecidGTrees
29300F91680
2CompareDecidYGTrees
29300F91700
2CompareDecidYTrees
29300F91780
2CompareDecidYRTrees
29300F91800
2CompareDecidRTrees
29300F91880
2CompareSpruceShortTrees
29300F91900
2CompareSpruceMiddleTrees
29300F91980
2CompareSpruceTall1Trees
29300F91A00
2CompareSpruceTall2Trees
29300F91A80
2CompareSpruceTall3Trees
29300F91B00
2CompareSpruceTall4Trees
29300F91B80
2CompareSpruceTall5Trees
29300F91C00
2CompareBushesY
29300F91C80
2CompareBushesYG
29300F91D00
2CompareBushesBrown
29300F91D80
2CompareBushesEmpty
29300F91E00