<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>103</ID>
      <Description>"GAME VERSION"</Description>
      <LastState RealAddress="1EE9685D8E4"/>
      <ShowAsSigned>0</ShowAsSigned>
      <VariableType>String</VariableType>
      <Length>10</Length>
      <Unicode>1</Unicode>
      <CodePage>0</CodePage>
      <ZeroTerminate>1</ZeroTerminate>
      <Address>"UnityPlayer.dll"+01988AD8</Address>
      <Offsets>
        <Offset>14</Offset>
        <Offset>8</Offset>
        <Offset>B8</Offset>
        <Offset>B8</Offset>
        <Offset>28</Offset>
        <Offset>18</Offset>
        <Offset>B8</Offset>
      </Offsets>
    </CheatEntry>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Check Version"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{$lua}
if syntaxcheck then return end

[ENABLE]
local GAME_VERSION = "v0.7.6"

local version

local versionRecord = AddressList.getMemoryRecordByDescription("GAME VERSION")
if versionRecord then
  version = versionRecord.Value
end

if not version or version ~= GAME_VERSION then
    LaunchMonoDataCollector()

    local class = mono_findClass("Assembly-CSharp.dll", "SettingsManager")
    if not class then error("Failed to find class") end

    local field
    local fields = mono_class_enumFields(class)

    for i = 1, #fields do
        local candidate = fields[i]

        if candidate.name == "_buildVersion" and candidate.isStatic then
            field = candidate
            break
        end
    end

    if not field then error("Failed to find field") end

    local value = mono_class_getStaticFieldValue(class, field.field)
    if not value then error("Failed to find field value") end

    local fieldRec = AddressList.getMemoryRecordByDescription("_buildVersion")

    if not fieldRec then
      fieldRec = AddressList.createMemoryRecord()
      fieldRec.setDescription("_buildVersion")
      fieldRec.appendToEntry(memrec)

      fieldRec.Address = value
    end

    local length = readInteger(value + 0x10)
    if not length then error("Failed to get field length") end

    version = readString(value + 0x14, length * 2, true)
end

if version ~= GAME_VERSION then
    memrec.setDescription("Check Version - INCOMPATIBLE")
    memrec.Color = 0x0000BF

    error(string.format("Incompatible game version '%s'", version))
end

memrec.setDescription("Check Version - COMPATIBLE")
memrec.Color = 0x00BF00

[DISABLE]
memrec.setDescription("Check Version")
memrec.Color = 0xFFFFFF

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>26</ID>
          <Description>"Villagers ================================================================"</Description>
          <Options moHideChildren="1"/>
          <LastState Value="" RealAddress="00000000"/>
          <Color>BFBF00</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>27</ID>
              <Description>"God Mode"</Description>
              <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
              <LastState Value="" RealAddress="00000000"/>
              <Color>FF7F7F</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>25</ID>
                  <Description>"No Damage"</Description>
                  <LastState/>
                  <Color>BF00BF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : No Damage - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+3AEE60)
define(bytes,48 8B C4 48 89 58 20)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"GameAssembly.dll"+3AEE60)

label(code)
label(return)

newmem:
  pushfq
  push rax

  mov rax,[rcx+248]
  test rax,rax
  jz code

  mov rax,[rax+f8]
  test rax,rax
  jz code

  mov eax,dword ptr[rax+10]
  test eax,eax
  jz code

  pop rax
  popfq

  ret

code:
  pop rax
  popfq

  mov rax,rsp
  mov [rax+20],rbx
  jmp return

address:
  jmp newmem
  nop 2
return:

[DISABLE]

address:
  db bytes
  // mov rax,rsp
  // mov [rax+20],rbx

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+6166D0

GameAssembly.dll+6166C6: CC                    - int 3
GameAssembly.dll+6166C7: CC                    - int 3
GameAssembly.dll+6166C8: CC                    - int 3
GameAssembly.dll+6166C9: CC                    - int 3
GameAssembly.dll+6166CA: CC                    - int 3
GameAssembly.dll+6166CB: CC                    - int 3
GameAssembly.dll+6166CC: CC                    - int 3
GameAssembly.dll+6166CD: CC                    - int 3
GameAssembly.dll+6166CE: CC                    - int 3
GameAssembly.dll+6166CF: CC                    - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+6166D0: 48 8B C4              - mov rax,rsp
// ---------- DONE INJECTING  ----------
GameAssembly.dll+6166D3: 48 89 58 20           - mov [rax+20],rbx
GameAssembly.dll+6166D7: 55                    - push rbp
GameAssembly.dll+6166D8: 56                    - push rsi
GameAssembly.dll+6166D9: 57                    - push rdi
GameAssembly.dll+6166DA: 48 8D 68 A9           - lea rbp,[rax-57]
GameAssembly.dll+6166DE: 48 81 EC A0 00 00 00  - sub rsp,000000A0
GameAssembly.dll+6166E5: 80 3D BD 24 8A 01 00  - cmp byte ptr [GameAssembly.dll+1EB8BA9],00
GameAssembly.dll+6166EC: 49 8B F9              - mov rdi,r9
GameAssembly.dll+6166EF: 0F 29 78 C8           - movaps [rax-38],xmm7
GameAssembly.dll+6166F3: 49 8B F0              - mov rsi,r8
}
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>32</ID>
                  <Description>"Full Happiness - Updates once per day (few seconds)"</Description>
                  <Options moHideChildren="1"/>
                  <LastState/>
                  <Color>BF00BF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Full Happiness - 0.2.1
  Author : Kvist
}
define(address,GameAssembly.dll+56CD46)
define(bytes,0F 28 C8)

[ENABLE]

assert(address,bytes)

address:
  divps xmm1,xmm1

[DISABLE]

address:
  db bytes
  // movaps xmm1,xmm0

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+80E006

GameAssembly.dll+80DFDD: E8 1E 0E 00 00        - call GameAssembly.dll+80EE00
GameAssembly.dll+80DFE2: F3 41 0F 59 F0        - mulss xmm6,xmm8
GameAssembly.dll+80DFE7: F3 0F 59 F0           - mulss xmm6,xmm0
GameAssembly.dll+80DFEB: F3 41 0F 58 F0        - addss xmm6,xmm8
GameAssembly.dll+80DFF0: 33 D2                 - xor edx,edx
GameAssembly.dll+80DFF2: 0F 28 C6              - movaps xmm0,xmm6
GameAssembly.dll+80DFF5: E8 F6 7A 6E 00        - call GameAssembly.dll+EF5AF0
GameAssembly.dll+80DFFA: 48 85 FF              - test rdi,rdi
GameAssembly.dll+80DFFD: 0F 84 0B 01 00 00     - je GameAssembly.dll+80E10E
GameAssembly.dll+80E003: 45 33 C0              - xor r8d,r8d
// ---------- INJECTING HERE ----------
GameAssembly.dll+80E006: 0F 28 C8              - movaps xmm1,xmm0
// ---------- DONE INJECTING  ----------
GameAssembly.dll+80E009: 48 8B CF              - mov rcx,rdi
GameAssembly.dll+80E00C: E8 5F C1 2D 00        - call GameAssembly.dll+AEA170
GameAssembly.dll+80E011: F3 44 0F 10 4C 24 58  - movss xmm9,[rsp+58]
GameAssembly.dll+80E018: F3 44 0F 10 54 24 5C  - movss xmm10,[rsp+5C]
GameAssembly.dll+80E01F: F3 44 0F 10 6C 24 60  - movss xmm13,[rsp+60]
GameAssembly.dll+80E026: F3 44 0F 10 74 24 64  - movss xmm14,[rsp+64]
GameAssembly.dll+80E02D: F3 44 0F 10 7C 24 68  - movss xmm15,[rsp+68]
GameAssembly.dll+80E034: F3 0F 10 74 24 28     - movss xmm6,[rsp+28]
GameAssembly.dll+80E03A: E9 33 F5 FF FF        - jmp GameAssembly.dll+80D572
GameAssembly.dll+80E03F: EB 12                 - jmp GameAssembly.dll+80E053
}
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>34</ID>
                  <Description>"Full Warmth"</Description>
                  <Options moHideChildren="1"/>
                  <LastState/>
                  <Color>BF00BF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Full Warmth - 0.2.1
  Author : Kvist
}

define(address,GameAssembly.dll+76AC95)
define(bytes,F3 0F 5C CE)

[ENABLE]

assert(address,bytes)

address:
  divps xmm1,xmm1
  nop

[DISABLE]

address:
  db bytes
  // subss xmm1,xmm6

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+AE42E5

GameAssembly.dll+AE42B4: 0F 28 F7              - movaps xmm6,xmm7
GameAssembly.dll+AE42B7: 80 3D 89 6B 3D 01 00  - cmp byte ptr [GameAssembly.dll+1EBAE47],00
GameAssembly.dll+AE42BE: F3 0F 10 7F 38        - movss xmm7,[rdi+38]
GameAssembly.dll+AE42C3: F3 41 0F 5E F0        - divss xmm6,xmm8
GameAssembly.dll+AE42C8: 75 13                 - jne GameAssembly.dll+AE42DD
GameAssembly.dll+AE42CA: 48 8D 0D BF 0C 2E 01  - lea rcx,[GameAssembly.dll+1DC4F90]
GameAssembly.dll+AE42D1: E8 1A FD 61 FF        - call GameAssembly.dll+103FF0
GameAssembly.dll+AE42D6: C6 05 6A 6B 3D 01 01  - mov byte ptr [GameAssembly.dll+1EBAE47],01
GameAssembly.dll+AE42DD: 48 8B 4F 30           - mov rcx,[rdi+30]
GameAssembly.dll+AE42E1: 41 0F 28 C9           - movaps xmm1,xmm9
// ---------- INJECTING HERE ----------
GameAssembly.dll+AE42E5: F3 0F 5C CE           - subss xmm1,xmm6
// ---------- DONE INJECTING  ----------
GameAssembly.dll+AE42E9: F3 0F 11 4F 38        - movss [rdi+38],xmm1
GameAssembly.dll+AE42EE: 48 85 C9              - test rcx,rcx
GameAssembly.dll+AE42F1: 74 11                 - je GameAssembly.dll+AE4304
GameAssembly.dll+AE42F3: 4C 8B 05 96 0C 2E 01  - mov r8,[GameAssembly.dll+1DC4F90]
GameAssembly.dll+AE42FA: E8 51 18 EB FF        - call GameAssembly.dll+995B50
GameAssembly.dll+AE42FF: F3 0F 10 4F 38        - movss xmm1,[rdi+38]
GameAssembly.dll+AE4304: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+AE4307: 41 0F 28 C1           - movaps xmm0,xmm9
GameAssembly.dll+AE430B: E8 70 1D 41 00        - call GameAssembly.dll+EF6080
GameAssembly.dll+AE4310: 0F 28 C8              - movaps xmm1,xmm0
}
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>36</ID>
                  <Description>"Full Diet - Updates when eating"</Description>
                  <Options moHideChildren="1"/>
                  <LastState/>
                  <Color>BF00BF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Full Diet - 0.2.1
  Author : Kvist
}

define(address,GameAssembly.dll+76A6BC)
define(bytes,F3 0F 5E 35 20 C9 0C 01)

[ENABLE]

assert(address,bytes)

address:
  divss xmm6,xmm6
  nop 4
return:

[DISABLE]

address:
  db bytes
  // divss xmm6,[GameAssembly.dll+194CFA4]

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+AE3D0C

GameAssembly.dll+AE3CEB: 83 F9 02                 - cmp ecx,02
GameAssembly.dll+AE3CEE: 72 07                    - jb GameAssembly.dll+AE3CF7
GameAssembly.dll+AE3CF0: FF C0                    - inc eax
GameAssembly.dll+AE3CF2: EB 03                    - jmp GameAssembly.dll+AE3CF7
GameAssembly.dll+AE3CF4: 83 C0 02                 - add eax,02
GameAssembly.dll+AE3CF7: 83 BF B0 01 00 00 00     - cmp dword ptr [rdi+000001B0],00
GameAssembly.dll+AE3CFE: 0F 57 C0                 - xorps xmm0,xmm0
GameAssembly.dll+AE3D01: 8B C0                    - mov eax,eax
GameAssembly.dll+AE3D03: F2 48 0F 2A C0           - cvtsi2sd xmm0,rax
GameAssembly.dll+AE3D08: 66 0F 5A F0              - cvtpd2ps xmm6,xmm0
// ---------- INJECTING HERE ----------
GameAssembly.dll+AE3D0C: F3 0F 5E 35 90 92 E6 00  - divss xmm6,[GameAssembly.dll+194CFA4]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+AE3D14: 76 06                    - jna GameAssembly.dll+AE3D1C
GameAssembly.dll+AE3D16: 0F 2F 77 48              - comiss xmm6,[rdi+48]
GameAssembly.dll+AE3D1A: 76 4D                    - jna GameAssembly.dll+AE3D69
GameAssembly.dll+AE3D1C: 80 3D 27 71 3D 01 00     - cmp byte ptr [GameAssembly.dll+1EBAE4A],00
GameAssembly.dll+AE3D23: 75 13                    - jne GameAssembly.dll+AE3D38
GameAssembly.dll+AE3D25: 48 8D 0D 64 12 2E 01     - lea rcx,[GameAssembly.dll+1DC4F90]
GameAssembly.dll+AE3D2C: E8 BF 02 62 FF           - call GameAssembly.dll+103FF0
GameAssembly.dll+AE3D31: C6 05 12 71 3D 01 01     - mov byte ptr [GameAssembly.dll+1EBAE4A],01
GameAssembly.dll+AE3D38: F3 0F 10 47 48           - movss xmm0,[rdi+48]
GameAssembly.dll+AE3D3D: 45 33 C0                 - xor r8d,r8d
}
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>89</ID>
                  <Description>"Age Limit - recalculated once per year (0 = disabled)"</Description>
                  <LastState/>
                  <Color>BF00BF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Age Limit - 0.2.1
  Author : Kvist
}

define(address,GameAssembly.dll+76A3CE)
define(bytes,F3 0F 2C C0 89 83 E4 00 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"GameAssembly.dll"+76A3CE)

label(check)
label(set)
label(code)
label(return)

newmem:
  maxAge:
    dd 0
  align 10

check:
  cvttss2si eax,xmm0

  pushfq
  push rcx

  mov rcx,[maxAge]
  test ecx,ecx
  jz set

  cmp eax,ecx
  jae code

set:
  mov [rbx+E4],eax

code:
  pop rcx
  popfq
  jmp return

address:
  jmp check
  nop 5
return:

registerSymbol(maxAge)

[DISABLE]

address:
  db bytes
  // cvttss2si eax,xmm0
  // mov [rbx+000000E4],eax

unregisterSymbol(maxAge)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+AE3A1E

GameAssembly.dll+AE39FC: 73 74                 - jae GameAssembly.dll+AE3A72
GameAssembly.dll+AE39FE: FF C0                 - inc eax
GameAssembly.dll+AE3A00: 41 3B C0              - cmp eax,r8d
GameAssembly.dll+AE3A03: 73 7D                 - jae GameAssembly.dll+AE3A82
GameAssembly.dll+AE3A05: F3 0F 10 44 91 20     - movss xmm0,[rcx+rdx*4+20]
GameAssembly.dll+AE3A0B: 45 33 C9              - xor r9d,r9d
GameAssembly.dll+AE3A0E: 48 98                 - cdqe 
GameAssembly.dll+AE3A10: 0F 28 D6              - movaps xmm2,xmm6
GameAssembly.dll+AE3A13: F3 0F 10 4C 81 20     - movss xmm1,[rcx+rax*4+20]
GameAssembly.dll+AE3A19: E8 92 23 41 00        - call UnityEngine.Mathf.Lerp
// ---------- INJECTING HERE ----------
GameAssembly.dll+AE3A1E: F3 0F 2C C0           - cvttss2si eax,xmm0
// ---------- DONE INJECTING  ----------
GameAssembly.dll+AE3A22: 89 83 E4 00 00 00     - mov [rbx+000000E4],eax
GameAssembly.dll+AE3A28: 40 84 F6              - test sil,sil
GameAssembly.dll+AE3A2B: 75 28                 - jne GameAssembly.dll+AE3A55
GameAssembly.dll+AE3A2D: 33 D2                 - xor edx,edx
GameAssembly.dll+AE3A2F: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+AE3A32: E8 49 26 00 00        - call VillagerHealth.GetAgeBracketEnum
GameAssembly.dll+AE3A37: 3B C7                 - cmp eax,edi
GameAssembly.dll+AE3A39: 74 1A                 - je GameAssembly.dll+AE3A55
GameAssembly.dll+AE3A3B: 48 8B 8B E8 00 00 00  - mov rcx,[rbx+000000E8]
GameAssembly.dll+AE3A42: 48 85 C9              - test rcx,rcx
}
</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>90</ID>
                      <Description>"Maximum Age"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>007FFF</Color>
                      <VariableType>4 Bytes</VariableType>
                      <Address>maxAge</Address>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>95</ID>
                  <Description>"Universal Immunity"</Description>
                  <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
                  <LastState Value="" RealAddress="00000000"/>
                  <Color>FF7F7F</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>50</ID>
                      <Description>"Contagion Immunity"</Description>
                      <LastState/>
                      <Color>BF00BF</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Contagion Immunity - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+33ACE0)
define(bytes,48 89 5C 24 08)

[ENABLE]

assert(address,bytes)

address:
  mov al,01
  ret
  nop 2

[DISABLE]

address:
  db bytes
  // mov [rsp+08],rbx

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+564670

GameAssembly.dll+564664: 0F 9F C0              - setg al
GameAssembly.dll+564667: C3                    - ret
GameAssembly.dll+564668: CC                    - int 3
GameAssembly.dll+564669: CC                    - int 3
GameAssembly.dll+56466A: CC                    - int 3
GameAssembly.dll+56466B: CC                    - int 3
GameAssembly.dll+56466C: CC                    - int 3
GameAssembly.dll+56466D: CC                    - int 3
GameAssembly.dll+56466E: CC                    - int 3
GameAssembly.dll+56466F: CC                    - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+564670: 48 89 5C 24 08        - mov [rsp+08],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+564675: 57                    - push rdi
GameAssembly.dll+564676: 48 83 EC 20           - sub rsp,20
GameAssembly.dll+56467A: 80 3D 2E 40 95 01 00  - cmp byte ptr [GameAssembly.dll+1EB86AF],00
GameAssembly.dll+564681: 48 8B DA              - mov rbx,rdx
GameAssembly.dll+564684: 48 8B F9              - mov rdi,rcx
GameAssembly.dll+564687: 75 1F                 - jne GameAssembly.dll+5646A8
GameAssembly.dll+564689: 48 8D 0D 10 8E 8B 01  - lea rcx,[GameAssembly.dll+1E1D4A0]
GameAssembly.dll+564690: E8 5B F9 B9 FF        - call GameAssembly.dll+103FF0
GameAssembly.dll+564695: 48 8D 0D 8C DD 8B 01  - lea rcx,[GameAssembly.dll+1E22428]
GameAssembly.dll+56469C: E8 4F F9 B9 FF        - call GameAssembly.dll+103FF0
}
</AssemblerScript>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>45</ID>
                      <Description>"Disease Immunity"</Description>
                      <LastState/>
                      <Color>BF00BF</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Disease Immunity - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+33AD90)
define(bytes,48 89 5C 24 08)

[ENABLE]

assert(address,bytes)

address:
  mov al,01
  ret
  nop 2

[DISABLE]

address:
  db bytes
  // mov [rsp+08],rbx

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+564720

GameAssembly.dll+564716: CC                    - int 3
GameAssembly.dll+564717: CC                    - int 3
GameAssembly.dll+564718: CC                    - int 3
GameAssembly.dll+564719: CC                    - int 3
GameAssembly.dll+56471A: CC                    - int 3
GameAssembly.dll+56471B: CC                    - int 3
GameAssembly.dll+56471C: CC                    - int 3
GameAssembly.dll+56471D: CC                    - int 3
GameAssembly.dll+56471E: CC                    - int 3
GameAssembly.dll+56471F: CC                    - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+564720: 48 89 5C 24 08        - mov [rsp+08],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+564725: 57                    - push rdi
GameAssembly.dll+564726: 48 83 EC 20           - sub rsp,20
GameAssembly.dll+56472A: 80 3D 7D 3F 95 01 00  - cmp byte ptr [GameAssembly.dll+1EB86AE],00
GameAssembly.dll+564731: 48 8B DA              - mov rbx,rdx
GameAssembly.dll+564734: 48 8B F9              - mov rdi,rcx
GameAssembly.dll+564737: 75 1F                 - jne GameAssembly.dll+564758
GameAssembly.dll+564739: 48 8D 0D 28 5C 88 01  - lea rcx,[GameAssembly.dll+1DEA368]
GameAssembly.dll+564740: E8 AB F8 B9 FF        - call GameAssembly.dll+103FF0
GameAssembly.dll+564745: 48 8D 0D DC DC 8B 01  - lea rcx,[GameAssembly.dll+1E22428]
GameAssembly.dll+56474C: E8 9F F8 B9 FF        - call GameAssembly.dll+103FF0
}
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>91</ID>
              <Description>"No Food Consumption"</Description>
              <LastState/>
              <Color>BF00BF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : No Food Consumption - 0.1.1
  Author : Kvist
}

define(address,"GameAssembly.dll"+28C67B)
define(bytes,E8 F0 85 35 00)

[ENABLE]

assert(address,bytes)

address:
  nop 5

[DISABLE]

address:
  db bytes
  // call GameAssembly.dll+89A100

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+4B546B

GameAssembly.dll+4B5444: 33 D2                 - xor edx,edx
GameAssembly.dll+4B5446: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+4B5449: E8 72 D0 A2 00        - call GameAssembly.dll+EE24C0
GameAssembly.dll+4B544E: 4D 85 F6              - test r14,r14
GameAssembly.dll+4B5451: 0F 84 EA 00 00 00     - je GameAssembly.dll+4B5541
GameAssembly.dll+4B5457: 4C 89 64 24 20        - mov [rsp+20],r12
GameAssembly.dll+4B545C: 4C 8B C8              - mov r9,rax
GameAssembly.dll+4B545F: 41 B8 01 00 00 00     - mov r8d,00000001
GameAssembly.dll+4B5465: 48 8B D6              - mov rdx,rsi
GameAssembly.dll+4B5468: 49 8B CE              - mov rcx,r14
// ---------- INJECTING HERE ----------
GameAssembly.dll+4B546B: E8 90 4C 3E 00        - call GameAssembly.dll+89A100
// ---------- DONE INJECTING  ----------
GameAssembly.dll+4B5470: 48 8B 8B D0 00 00 00  - mov rcx,[rbx+000000D0]
GameAssembly.dll+4B5477: 48 85 C9              - test rcx,rcx
GameAssembly.dll+4B547A: 0F 84 B6 00 00 00     - je GameAssembly.dll+4B5536
GameAssembly.dll+4B5480: 45 33 C9              - xor r9d,r9d
GameAssembly.dll+4B5483: 45 8D 41 01           - lea r8d,[r9+01]
GameAssembly.dll+4B5487: 48 8B D6              - mov rdx,rsi
GameAssembly.dll+4B548A: E8 D1 FC 62 00        - call GameAssembly.dll+AE5160
GameAssembly.dll+4B548F: FF CF                 - dec edi
GameAssembly.dll+4B5491: 89 7C 24 30           - mov [rsp+30],edi
GameAssembly.dll+4B5495: 41 B6 01              - mov r14l,01
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>15</ID>
              <Description>"Instant Heal"</Description>
              <Options moHideChildren="1"/>
              <LastState/>
              <Color>BF00BF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Instant Heal - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+76DB24)
define(bytes,0F 28 CE 49 8B 92 F0 03 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,GameAssembly.dll+76DB24)

label(code)
label(return)

newmem:
  healAmount:
    dd (float)100.0
  align 10

code:
  movss xmm1,[healAmount]
  mov rdx,[r10+000003F0]
  jmp return

address:
  jmp code
  nop 5
return:

registerSymbol(healAmount)

[DISABLE]

address:
  db bytes
  // movaps xmm1,xmm6
  // mov rdx,[r10+000003F0]

unregisterSymbol(healAmount)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+AE7194

GameAssembly.dll+AE7175: 5F                    - pop rdi
GameAssembly.dll+AE7176: C3                    - ret 
GameAssembly.dll+AE7177: 33 D2                 - xor edx,edx
GameAssembly.dll+AE7179: E8 42 B3 3F 00        - call UnityEngine.Component.get_gameObject
GameAssembly.dll+AE717E: 4C 8B 16              - mov r10,[rsi]
GameAssembly.dll+AE7181: 4C 8D 4C 24 30        - lea r9,[rsp+30]
GameAssembly.dll+AE7186: 0F 10 07              - movups xmm0,[rdi]
GameAssembly.dll+AE7189: 4C 8B C0              - mov r8,rax
GameAssembly.dll+AE718C: 48 8B CE              - mov rcx,rsi
GameAssembly.dll+AE718F: F2 0F 10 57 10        - movsd xmm2,[rdi+10]
// ---------- INJECTING HERE ----------
GameAssembly.dll+AE7194: 0F 28 CE              - movaps xmm1,xmm6
// ---------- DONE INJECTING  ----------
GameAssembly.dll+AE7197: 49 8B 92 F0 03 00 00  - mov rdx,[r10+000003F0]
GameAssembly.dll+AE719E: 48 89 54 24 20        - mov [rsp+20],rdx
GameAssembly.dll+AE71A3: 0F 29 44 24 30        - movaps [rsp+30],xmm0
GameAssembly.dll+AE71A8: F2 0F 11 54 24 40     - movsd [rsp+40],xmm2
GameAssembly.dll+AE71AE: 41 FF 92 E8 03 00 00  - call qword ptr [r10+000003E8]
GameAssembly.dll+AE71B5: EB 97                 - jmp GameAssembly.dll+AE714E
GameAssembly.dll+AE71B7: E8 B4 CF 61 FF        - call GameAssembly.dll+104170
GameAssembly.dll+AE71BC: CC                    - int 3 
GameAssembly.dll+AE71BD: CC                    - int 3 
GameAssembly.dll+AE71BE: CC                    - int 3 
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>16</ID>
                  <Description>"healAmount"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>007FFF</Color>
                  <VariableType>Float</VariableType>
                  <Address>healAmount</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>94</ID>
          <Description>"Village ================================================================"</Description>
          <Options moHideChildren="1"/>
          <LastState Value="" RealAddress="00000000"/>
          <Color>BFBF00</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>46</ID>
              <Description>"Perfect Cropfields"</Description>
              <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
              <LastState Value="" RealAddress="00000000"/>
              <Color>FF7F7F</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>59</ID>
                  <Description>"Daily Cleanup"</Description>
                  <LastState/>
                  <Color>BF00BF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Daily Cleanup - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+5C9C2F)
define(bytes,33 C0 48 8B D9)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"GameAssembly.dll"+5C9C2F)

label(code)
label(return)

newmem:
  xorps xmm0,xmm0

  mov rax,[rcx+C0]
  movss [rax+20],xmm0

  mov rax,[rcx+C8]
  movss [rax+30],xmm0

code:
  xor rax,rax
  mov rbx,rcx
  jmp return

address:
  jmp newmem
return:

[DISABLE]

address:
  db bytes
  // xor eax,eax
  // mov rbx,rcx

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+5F7F0F

GameAssembly.dll+5F7EF5: 48 83 C4 20           - add rsp,20
GameAssembly.dll+5F7EF9: 5B                    - pop rbx
GameAssembly.dll+5F7EFA: E9 51 2B 82 00        - jmp GameAssembly.dll+E1AA50
GameAssembly.dll+5F7EFF: CC                    - int 3
GameAssembly.dll+5F7F00: 48 89 5C 24 18        - mov [rsp+18],rbx
GameAssembly.dll+5F7F05: 55                    - push rbp
GameAssembly.dll+5F7F06: 56                    - push rsi
GameAssembly.dll+5F7F07: 57                    - push rdi
GameAssembly.dll+5F7F08: 48 8B EC              - mov rbp,rsp
GameAssembly.dll+5F7F0B: 48 83 EC 70           - sub rsp,70
// ---------- INJECTING HERE ----------
GameAssembly.dll+5F7F0F: 33 C0                 - xor eax,eax
// ---------- DONE INJECTING  ----------
GameAssembly.dll+5F7F11: 48 8B D9              - mov rbx,rcx
GameAssembly.dll+5F7F14: 0F B6 0D 93 0B 8C 01  - movzx ecx,byte ptr [GameAssembly.dll+1EB8AAE]
GameAssembly.dll+5F7F1B: 48 8B FA              - mov rdi,rdx
GameAssembly.dll+5F7F1E: 48 89 45 B0           - mov [rbp-50],rax
GameAssembly.dll+5F7F22: 89 45 B8              - mov [rbp-48],eax
GameAssembly.dll+5F7F25: 84 C9                 - test cl,cl
GameAssembly.dll+5F7F27: 75 20                 - jne GameAssembly.dll+5F7F49
GameAssembly.dll+5F7F29: 48 8D 0D D0 36 81 01  - lea rcx,[GameAssembly.dll+1E0B600]
GameAssembly.dll+5F7F30: E8 BB C0 B0 FF        - call GameAssembly.dll+103FF0
GameAssembly.dll+5F7F35: 48 8D 0D 4C 37 81 01  - lea rcx,[GameAssembly.dll+1E0B688]
}
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>63</ID>
                  <Description>"Maximum Fertility"</Description>
                  <LastState/>
                  <Color>BF00BF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Maximum Fertility - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+63EA99)
define(bytes,F3 0F 5E F1)

[ENABLE]

assert(address,bytes)

address:
  divss xmm6,xmm6

[DISABLE]

address:
  db bytes
  // divss xmm6,xmm1

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+912EE9

GameAssembly.dll+912EC0: 48 8B 15 A1 69 4F 01     - mov rdx,[GameAssembly.dll+1E09868]
GameAssembly.dll+912EC7: E8 14 93 6F FF           - call GameAssembly.dll+C1E0
GameAssembly.dll+912ECC: 48 85 FF                 - test rdi,rdi
GameAssembly.dll+912ECF: 75 70                    - jne GameAssembly.dll+912F41
GameAssembly.dll+912ED1: 33 C9                    - xor ecx,ecx
GameAssembly.dll+912ED3: 4D 8B C6                 - mov r8,r14
GameAssembly.dll+912ED6: 48 8B 15 AB A1 4E 01     - mov rdx,[GameAssembly.dll+1DFD088]
GameAssembly.dll+912EDD: E8 FE 92 6F FF           - call GameAssembly.dll+C1E0
GameAssembly.dll+912EE2: 66 0F 6E C8              - movd xmm1,eax
GameAssembly.dll+912EE6: 0F 5B C9                 - cvtdq2ps xmm1,xmm1
// ---------- INJECTING HERE ----------
GameAssembly.dll+912EE9: F3 0F 5E F1              - divss xmm6,xmm1
// ---------- DONE INJECTING  ----------
GameAssembly.dll+912EED: 0F 28 C6                 - movaps xmm0,xmm6
GameAssembly.dll+912EF0: 48 8B 5C 24 70           - mov rbx,[rsp+70]
GameAssembly.dll+912EF5: 48 8B B4 24 80 00 00 00  - mov rsi,[rsp+00000080]
GameAssembly.dll+912EFD: 0F 28 74 24 40           - movaps xmm6,[rsp+40]
GameAssembly.dll+912F02: 48 83 C4 50              - add rsp,50
GameAssembly.dll+912F06: 41 5F                    - pop r15
GameAssembly.dll+912F08: 41 5E                    - pop r14
GameAssembly.dll+912F0A: 5F                       - pop rdi
GameAssembly.dll+912F0B: C3                       - ret
GameAssembly.dll+912F0C: 0F 57 C0                 - xorps xmm0,xmm0
}
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>97</ID>
              <Description>"Instant Work"</Description>
              <LastState/>
              <Color>BF00BF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Instant Work - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+5E4E29)
define(bytes,E8 D2 80 FF FF)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"GameAssembly.dll"+5E4E29)

label(code)
label(return)

newmem:
  pushfq
  push rax

  mov rax,[rcx+10]
  cmp rax,01
  jne code

  mov rax,[rcx+98]
  mov rax,[rax+1B0]

  mov rdx,rax

code:
  pop rax
  popfq

  call GameAssembly.dll+5DCF00
  jmp return

address:
  jmp newmem
return:

[DISABLE]

address:
  db bytes
  // call GameAssembly.dll+892400

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+89A33C

GameAssembly.dll+89A30F: 0F 84 13 01 00 00     - je GameAssembly.dll+89A428
GameAssembly.dll+89A315: 49 8B 86 98 00 00 00  - mov rax,[r14+00000098]
GameAssembly.dll+89A31C: 48 85 C0              - test rax,rax
GameAssembly.dll+89A31F: 0F 84 03 01 00 00     - je GameAssembly.dll+89A428
GameAssembly.dll+89A325: 83 78 18 64           - cmp dword ptr [rax+18],64
GameAssembly.dll+89A329: 0F 86 0F 01 00 00     - jbe GameAssembly.dll+89A43E
GameAssembly.dll+89A32F: 2B EF                 - sub ebp,edi
GameAssembly.dll+89A331: 01 A8 B0 01 00 00     - add [rax+000001B0],ebp
GameAssembly.dll+89A337: EB 63                 - jmp GameAssembly.dll+89A39C
GameAssembly.dll+89A339: 45 33 C0              - xor r8d,r8d
// ---------- INJECTING HERE ----------
GameAssembly.dll+89A33C: E8 BF 80 FF FF        - call GameAssembly.dll+892400
// ---------- DONE INJECTING  ----------
GameAssembly.dll+89A341: 4C 8B F0              - mov r14,rax
GameAssembly.dll+89A344: EB 56                 - jmp GameAssembly.dll+89A39C
GameAssembly.dll+89A346: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+89A349: E8 B2 80 FF FF        - call GameAssembly.dll+892400
GameAssembly.dll+89A34E: 48 8B 4B 40           - mov rcx,[rbx+40]
GameAssembly.dll+89A352: 4C 8B F0              - mov r14,rax
GameAssembly.dll+89A355: 48 85 C9              - test rcx,rcx
GameAssembly.dll+89A358: 0F 84 CA 00 00 00     - je GameAssembly.dll+89A428
GameAssembly.dll+89A35E: 4C 8B 05 03 BB 52 01  - mov r8,[GameAssembly.dll+1DC5E68]
GameAssembly.dll+89A365: 48 8B D6              - mov rdx,rsi
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>100</ID>
              <Description>"Unlimited Resources - Disable when salvaging/transferring items"</Description>
              <LastState/>
              <Color>BF00BF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Farthest Frontier.exe
  Version: v0.7.6
  Script : Unlimited Resources - 0.1.1
  Author : Kvist
}

define(address,GameAssembly.dll+5DD0DD)
define(bytes,2B CF 41 89 0C 10)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,"GameAssembly.dll"+5DD0DD)

label(code)
label(null)
label(return)

newmem:
  infiniteHarvest:
    db 0
  align 10

check:
  pushfq
  push rax

  mov al,[rsi+78]
  test al,al
  jnz code

  mov eax,[rsi+68]
  test eax,eax
  jz code

  mov al,[infiniteHarvest]
  test al,al
  jnz null

  mov eax,[rsi+90]
  test eax,eax
  jnz code

null:
  mov edi,0

code:
  pop rax
  popfq

  sub ecx,edi
  mov [r8+rdx],ecx
  jmp return

address:
  jmp check
  nop
return:

registerSymbol(infiniteHarvest)

[DISABLE]

address:
  db bytes
  // sub ecx,edi
  // mov [r8+rdx],ecx

unregisterSymbol(infiniteHarvest)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+8925DD

GameAssembly.dll+8925B5: 74 6F                    - je GameAssembly.dll+892626
GameAssembly.dll+8925B7: 3B 42 18                 - cmp eax,[rdx+18]
GameAssembly.dll+8925BA: 0F 83 8C 00 00 00        - jae GameAssembly.dll+89264C
GameAssembly.dll+8925C0: 4E 8D 04 85 20 00 00 00  - lea r8,[r8*4+00000020]
GameAssembly.dll+8925C8: 41 01 3C 10              - add [r8+rdx],edi
GameAssembly.dll+8925CC: 48 8B 96 98 00 00 00     - mov rdx,[rsi+00000098]
GameAssembly.dll+8925D3: 48 85 D2                 - test rdx,rdx
GameAssembly.dll+8925D6: 74 4E                    - je GameAssembly.dll+892626
GameAssembly.dll+8925D8: 3B 42 18                 - cmp eax,[rdx+18]
GameAssembly.dll+8925DB: 73 7F                    - jae GameAssembly.dll+89265C
// ---------- INJECTING HERE ----------
GameAssembly.dll+8925DD: 2B CF                    - sub ecx,edi
// ---------- DONE INJECTING  ----------
GameAssembly.dll+8925DF: 41 89 0C 10              - mov [r8+rdx],ecx
GameAssembly.dll+8925E3: EB 2B                    - jmp GameAssembly.dll+892610
GameAssembly.dll+8925E5: 48 85 D2                 - test rdx,rdx
GameAssembly.dll+8925E8: 74 3C                    - je GameAssembly.dll+892626
GameAssembly.dll+8925EA: 3B 42 18                 - cmp eax,[rdx+18]
GameAssembly.dll+8925ED: 73 7D                    - jae GameAssembly.dll+89266C
GameAssembly.dll+8925EF: 4E 8D 04 85 20 00 00 00  - lea r8,[r8*4+00000020]
GameAssembly.dll+8925F7: 41 01 0C 10              - add [r8+rdx],ecx
GameAssembly.dll+8925FB: 48 8B 8E 98 00 00 00     - mov rcx,[rsi+00000098]
GameAssembly.dll+892602: 48 85 C9                 - test rcx,rcx
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>101</ID>
                  <Description>"Unlimited Harvesting"</Description>
                  <DropDownList ReadOnly="1" DisplayValueAsItem="1">0:Off
1:On
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>007FFF</Color>
                  <VariableType>Byte</VariableType>
                  <Address>infiniteHarvest</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
