<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"新武將：兵法無限"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : San9WPK.exe
  Version: 
  Date   : 2024-10-05
  Author :
}

[ENABLE]

aobscanmodule(INJECT_INF_SKPT,$process,89 86 58 39 00 00 33) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_base_sk_addr)

newmem:
  mov [i_base_sk_addr], esi
  mov eax, [esi+00003958]
  cmp eax, #35
  jae code
  mov eax, #35
code:
  mov [esi+00003958],eax
  jmp return
align 10 cc
  i_base_sk_addr:
  dd 0

INJECT_INF_SKPT:
  jmp newmem
  nop
return:
registersymbol(INJECT_INF_SKPT)
registersymbol(i_base_sk_addr)
[DISABLE]

INJECT_INF_SKPT:
  db 89 86 58 39 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: San9WPK.exe+162813

San9WPK.exe+1627F5: 50                 - push eax
San9WPK.exe+1627F6: 57                 - push edi
San9WPK.exe+1627F7: B9 A8 E3 50 01     - mov ecx,San9WPK.exe+110E3A8
San9WPK.exe+1627FC: E8 DF CA EE FF     - call San9WPK.exe+4F2E0
San9WPK.exe+162801: 47                 - inc edi
San9WPK.exe+162802: 83 FF 1F           - cmp edi,1F
San9WPK.exe+162805: 7C E0              - jl San9WPK.exe+1627E7
San9WPK.exe+162807: 68 A8 E3 50 01     - push San9WPK.exe+110E3A8
San9WPK.exe+16280C: 8B CE              - mov ecx,esi
San9WPK.exe+16280E: E8 DD D9 FF FF     - call San9WPK.exe+1601F0
// ---------- INJECTING HERE ----------
San9WPK.exe+162813: 89 86 58 39 00 00  - mov [esi+00003958],eax
// ---------- DONE INJECTING  ----------
San9WPK.exe+162819: 33 FF              - xor edi,edi
San9WPK.exe+16281B: EB 03              - jmp San9WPK.exe+162820
San9WPK.exe+16281D: 8D 49 00           - lea ecx,[ecx+00]
San9WPK.exe+162820: 57                 - push edi
San9WPK.exe+162821: B9 A8 E3 50 01     - mov ecx,San9WPK.exe+110E3A8
San9WPK.exe+162826: E8 A5 CA EE FF     - call San9WPK.exe+4F2D0
San9WPK.exe+16282B: 85 C0              - test eax,eax
San9WPK.exe+16282D: 74 1A              - je San9WPK.exe+162849
San9WPK.exe+16282F: 6A 01              - push 01
San9WPK.exe+162831: 8D 9F 01 04 00 00  - lea ebx,[edi+00000401]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Skill PT"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_sk_addr</Address>
          <Offsets>
            <Offset>3958</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>4</ID>
      <Description>"新武將：Attributes"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : San9WPK.exe
  Version: 
  Date   : 2024-10-05
  Author :
}

[ENABLE]

aobscanmodule(INJECT_NEW_CHAR_GET_ATTR,$process,89 41 54 C2 08 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_base_new_char_addr)

newmem:
  mov [i_base_new_char_addr], ecx

code:
  mov [ecx+54],eax
  ret 0008
  jmp return
align 10 cc
  i_base_new_char_addr:
  dd 0

INJECT_NEW_CHAR_GET_ATTR:
  jmp newmem
  nop
return:
registersymbol(INJECT_NEW_CHAR_GET_ATTR)
registersymbol(i_base_new_char_addr)
[DISABLE]

INJECT_NEW_CHAR_GET_ATTR:
  db 89 41 54 C2 08 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: San9WPK.exe+4EF08

San9WPK.exe+4EEE4: 83 F8 03              - cmp eax,03
San9WPK.exe+4EEE7: 77 2C                 - ja San9WPK.exe+4EF15
San9WPK.exe+4EEE9: FF 24 85 18 EF 44 00  - jmp dword ptr [eax*4+San9WPK.exe+4EF18]
San9WPK.exe+4EEF0: 8B 44 24 08           - mov eax,[esp+08]
San9WPK.exe+4EEF4: 89 41 64              - mov [ecx+64],eax
San9WPK.exe+4EEF7: C2 08 00              - ret 0008
San9WPK.exe+4EEFA: 8B 54 24 08           - mov edx,[esp+08]
San9WPK.exe+4EEFE: 89 51 4C              - mov [ecx+4C],edx
San9WPK.exe+4EF01: C2 08 00              - ret 0008
San9WPK.exe+4EF04: 8B 44 24 08           - mov eax,[esp+08]
// ---------- INJECTING HERE ----------
San9WPK.exe+4EF08: 89 41 54              - mov [ecx+54],eax
// ---------- DONE INJECTING  ----------
San9WPK.exe+4EF0B: C2 08 00              - ret 0008
San9WPK.exe+4EF0E: 8B 54 24 08           - mov edx,[esp+08]
San9WPK.exe+4EF12: 89 51 5C              - mov [ecx+5C],edx
San9WPK.exe+4EF15: C2 08 00              - ret 0008
San9WPK.exe+4EF18: F0 EE                 - lock out dx,al
San9WPK.exe+4EF1A: 44                    - inc esp
San9WPK.exe+4EF1B: 00 FA                 - add dl,bh
San9WPK.exe+4EF1D: EE                    - out dx,al
San9WPK.exe+4EF1E: 44                    - inc esp
San9WPK.exe+4EF1F: 00 04 EF              - add [edi+ebp*8],al
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>5</ID>
          <Description>"武力"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_new_char_addr</Address>
          <Offsets>
            <Offset>4C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>6</ID>
          <Description>"知力"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_new_char_addr</Address>
          <Offsets>
            <Offset>54</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>7</ID>
          <Description>"政治"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_new_char_addr</Address>
          <Offsets>
            <Offset>5C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"統率"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_new_char_addr</Address>
          <Offsets>
            <Offset>64</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>9</ID>
      <Description>"Base data"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : San9WPK.exe
  Version: 
  Date   : 2024-10-06
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_BASE_DATA,$process,8B 79 14 6A 01 E8 67) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_base_data_addr)

newmem:
  mov [i_base_data_addr], ecx

code:
  mov edi,[ecx+14]
  push 01
  jmp return
align 10 cc
  i_base_data_addr:
  dd 0

INJECT_GET_BASE_DATA:
  jmp newmem
return:
registersymbol(INJECT_GET_BASE_DATA)
registersymbol(i_base_data_addr)
[DISABLE]

INJECT_GET_BASE_DATA:
  db 8B 79 14 6A 01

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: San9WPK.exe+CA2CF

San9WPK.exe+CA2B7: 85 C0           - test eax,eax
San9WPK.exe+CA2B9: 75 10           - jne San9WPK.exe+CA2CB
San9WPK.exe+CA2BB: 68 52 17 00 00  - push 00001752
San9WPK.exe+CA2C0: 8B CE           - mov ecx,esi
San9WPK.exe+CA2C2: E8 49 AF FB FF  - call San9WPK.exe+85210
San9WPK.exe+CA2C7: 33 C0           - xor eax,eax
San9WPK.exe+CA2C9: 5E              - pop esi
San9WPK.exe+CA2CA: C3              - ret 
San9WPK.exe+CA2CB: 8B 4E 38        - mov ecx,[esi+38]
San9WPK.exe+CA2CE: 57              - push edi
// ---------- INJECTING HERE ----------
San9WPK.exe+CA2CF: 8B 79 14        - mov edi,[ecx+14]
// ---------- DONE INJECTING  ----------
San9WPK.exe+CA2D2: 6A 01           - push 01
San9WPK.exe+CA2D4: E8 67 4E FC FF  - call San9WPK.exe+8F140
San9WPK.exe+CA2D9: 83 C4 04        - add esp,04
San9WPK.exe+CA2DC: 3B C7           - cmp eax,edi
San9WPK.exe+CA2DE: 5F              - pop edi
San9WPK.exe+CA2DF: 7E 10           - jle San9WPK.exe+CA2F1
San9WPK.exe+CA2E1: 68 01 17 00 00  - push 00001701
San9WPK.exe+CA2E6: 8B CE           - mov ecx,esi
San9WPK.exe+CA2E8: E8 23 AF FB FF  - call San9WPK.exe+85210
San9WPK.exe+CA2ED: 33 C0           - xor eax,eax
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>10</ID>
          <Description>"金"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_data_addr</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>11</ID>
          <Description>"兵糧"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_data_addr</Address>
          <Offsets>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>41</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_data_addr</Address>
          <Offsets>
            <Offset>1C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>12</ID>
          <Description>"信望"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_data_addr</Address>
          <Offsets>
            <Offset>20</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>14</ID>
      <Description>"都市情報"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : San9WPK.exe
  Version: 
  Date   : 2024-10-06
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_HOVER_CITY,$process,8B 81 C4 01 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_base_city_data_addr)

newmem:
  mov [i_base_city_data_addr], ecx

code:
  mov eax,[ecx+000001C4]
  jmp return
align 10 cc
  i_base_city_data_addr:
  dd 0

INJECT_HOVER_CITY:
  jmp newmem
  nop
return:
registersymbol(INJECT_HOVER_CITY)
registersymbol(i_base_city_data_addr)

[DISABLE]

INJECT_HOVER_CITY:
  db 8B 81 C4 01 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: San9WPK.exe+3C430

San9WPK.exe+3C426: CC                 - int 3 
San9WPK.exe+3C427: CC                 - int 3 
San9WPK.exe+3C428: CC                 - int 3 
San9WPK.exe+3C429: CC                 - int 3 
San9WPK.exe+3C42A: CC                 - int 3 
San9WPK.exe+3C42B: CC                 - int 3 
San9WPK.exe+3C42C: CC                 - int 3 
San9WPK.exe+3C42D: CC                 - int 3 
San9WPK.exe+3C42E: CC                 - int 3 
San9WPK.exe+3C42F: CC                 - int 3 
// ---------- INJECTING HERE ----------
San9WPK.exe+3C430: 8B 81 C4 01 00 00  - mov eax,[ecx+000001C4]
// ---------- DONE INJECTING  ----------
San9WPK.exe+3C436: C3                 - ret 
San9WPK.exe+3C437: CC                 - int 3 
San9WPK.exe+3C438: CC                 - int 3 
San9WPK.exe+3C439: CC                 - int 3 
San9WPK.exe+3C43A: CC                 - int 3 
San9WPK.exe+3C43B: CC                 - int 3 
San9WPK.exe+3C43C: CC                 - int 3 
San9WPK.exe+3C43D: CC                 - int 3 
San9WPK.exe+3C43E: CC                 - int 3 
San9WPK.exe+3C43F: CC                 - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>15</ID>
          <Description>"非兵役人口"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1BC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>22</ID>
          <Description>"兵役人口"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1C0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"民心"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1C4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1C8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>17</ID>
          <Description>"收益"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1CC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>18</ID>
          <Description>"收穫"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1D0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>19</ID>
          <Description>"最大收益?"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1D4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"最大收穫?"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>1D8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>25</ID>
          <Description>"耐久"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>3C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"兵士"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>88</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>38</ID>
          <Description>"負傷兵"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>8C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>24</ID>
          <Description>"士気"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>90</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>39</ID>
          <Description>"ID?"</Description>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_city_data_addr</Address>
          <Offsets>
            <Offset>CC</Offset>
          </Offsets>
          <CheatEntries>
            <CheatEntry>
              <ID>42</ID>
              <Description>"都市&amp;部隊：自動士気/兵士"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : San9WPK.exe
  Version: 
  Date   : 2024-10-06
  Author : bbbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_AUTO_CITY_MORAL,$process,8B 4E 74 8B 11 5E) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_moral_id)
label(i_min_mor)
label(i_min_hr)
label(i_min_dur)
newmem:

code:
  mov ecx,[esi+74]

  //
  pushf
  push ebx
  cmp ecx, [i_moral_id]
  jne endp
  cmp [esi+38], 0
  je @F
  mov ebx, [i_min_mor]
  cmp [esi+38], ebx
  je @F
  mov [esi+38], ebx

@@:
  mov ebx, [i_min_hr]
  cmp [esi+30], 0
  je @F
  cmp [esi+30], ebx
  jae @F
  mov [esi+30], ebx

@@:
  cmp dword ptr [esi-1C], 0
  je @F
  mov ebx, [i_min_dur]
  cmp [esi-1C], ebx
  jae @F
  mov [esi-1C], ebx

@@:

  //
endp:
  pop ebx
  popf
  mov edx,[ecx]
  jmp return
align 10 cc
  i_moral_id:
  dd FFFFFFFF
  i_min_mor:
  dd 62
  i_min_hr:
  dd #19999
  i_min_dur:
  dd #381

INJECT_AUTO_CITY_MORAL:
  jmp newmem
return:
registersymbol(INJECT_AUTO_CITY_MORAL)
registersymbol(i_moral_id)
registersymbol(i_min_mor)
registersymbol(i_min_hr)
registersymbol(i_min_dur)
[DISABLE]

INJECT_AUTO_CITY_MORAL:
  db 8B 4E 74 8B 11

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: San9WPK.exe+62493

San9WPK.exe+6247E: CC              - int 3 
San9WPK.exe+6247F: CC              - int 3 
San9WPK.exe+62480: 56              - push esi
San9WPK.exe+62481: 8B F1           - mov esi,ecx
San9WPK.exe+62483: 8B 46 74        - mov eax,[esi+74]
San9WPK.exe+62486: 50              - push eax
San9WPK.exe+62487: E8 34 33 FA FF  - call San9WPK.exe+57C0
San9WPK.exe+6248C: 83 C4 04        - add esp,04
San9WPK.exe+6248F: 85 C0           - test eax,eax
San9WPK.exe+62491: 74 09           - je San9WPK.exe+6249C
// ---------- INJECTING HERE ----------
San9WPK.exe+62493: 8B 4E 74        - mov ecx,[esi+74]
// ---------- DONE INJECTING  ----------
San9WPK.exe+62496: 8B 11           - mov edx,[ecx]
San9WPK.exe+62498: 5E              - pop esi
San9WPK.exe+62499: FF 62 30        - jmp dword ptr [edx+30]
San9WPK.exe+6249C: 33 C0           - xor eax,eax
San9WPK.exe+6249E: 5E              - pop esi
San9WPK.exe+6249F: C3              - ret 
San9WPK.exe+624A0: 8B 01           - mov eax,[ecx]
San9WPK.exe+624A2: 56              - push esi
San9WPK.exe+624A3: FF 50 30        - call dword ptr [eax+30]
San9WPK.exe+624A6: 8B F0           - mov esi,eax
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>43</ID>
                  <Description>"Target ID &lt;====="</Description>
                  <ShowAsHex>1</ShowAsHex>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_moral_id</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>44</ID>
                  <Description>"士気"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_min_mor</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>45</ID>
                  <Description>"兵士"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_min_hr</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>46</ID>
                  <Description>"耐久"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>i_min_dur</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>48</ID>
                  <Description>"自動兵糧 &amp; 金"</Description>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : San9WPK.exe
  Version: 
  Date   : 2024-10-06
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_RICE,$process,8B 4E 18 50 51 FF 15 * * * * 83 C4 10) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  push ebx
  mov ebx, [i_moral_id]
  cmp ebx, [esi+B8]
  jne endp
  cmp dword ptr [esi+18], #900000
  jae @F
  mov dword ptr [esi+18], #900000

@@:
  cmp dword ptr [esi+14], #80000
  jae @F
  mov dword ptr [esi+14], #80000

endp:
  pop ebx


code:
  mov ecx,[esi+18]
  push eax
  push ecx
  jmp return

INJECT_INF_RICE:
  jmp newmem
return:
registersymbol(INJECT_INF_RICE)

[DISABLE]

INJECT_INF_RICE:
  db 8B 4E 18 50 51

unregistersymbol(INJECT_INF_RICE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: San9WPK.exe+3FAB0

San9WPK.exe+3FA9A: C2 08 00           - ret 0008
San9WPK.exe+3FA9D: CC                 - int 3 
San9WPK.exe+3FA9E: CC                 - int 3 
San9WPK.exe+3FA9F: CC                 - int 3 
San9WPK.exe+3FAA0: 8B 44 24 04        - mov eax,[esp+04]
San9WPK.exe+3FAA4: 56                 - push esi
San9WPK.exe+3FAA5: 6A 00              - push 00
San9WPK.exe+3FAA7: 50                 - push eax
San9WPK.exe+3FAA8: 8B F1              - mov esi,ecx
San9WPK.exe+3FAAA: FF 15 30 13 61 00  - call dword ptr [San9WPK.exe+211330]
// ---------- INJECTING HERE ----------
San9WPK.exe+3FAB0: 8B 4E 18           - mov ecx,[esi+18]
// ---------- DONE INJECTING  ----------
San9WPK.exe+3FAB3: 50                 - push eax
San9WPK.exe+3FAB4: 51                 - push ecx
San9WPK.exe+3FAB5: FF 15 14 13 61 00  - call dword ptr [San9WPK.exe+211314]
San9WPK.exe+3FABB: 83 C4 10           - add esp,10
San9WPK.exe+3FABE: 89 46 18           - mov [esi+18],eax
San9WPK.exe+3FAC1: 5E                 - pop esi
San9WPK.exe+3FAC2: C2 04 00           - ret 0004
San9WPK.exe+3FAC5: CC                 - int 3 
San9WPK.exe+3FAC6: CC                 - int 3 
San9WPK.exe+3FAC7: CC                 - int 3 
}
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>33</ID>
      <Description>"部隊 / 地域情報"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : San9WPK.exe
  Version: 
  Date   : 2024-10-06
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_REGION_INFO,$process,CC 8B 41 30 C3 CC) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_base_region_addr)

newmem:
  mov [i_base_region_addr], ecx

code:
  mov eax,[ecx+30]
  ret 
  int 3
  jmp return
align 10 cc
  i_base_region_addr:
  dd 0

INJECT_GET_REGION_INFO+01:
  jmp newmem
return:
registersymbol(INJECT_GET_REGION_INFO)
registersymbol(i_base_region_addr)

[DISABLE]

INJECT_GET_REGION_INFO+01:
  db 8B 41 30 C3 CC

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: San9WPK.exe+62760

San9WPK.exe+62756: CC        - int 3 
San9WPK.exe+62757: CC        - int 3 
San9WPK.exe+62758: CC        - int 3 
San9WPK.exe+62759: CC        - int 3 
San9WPK.exe+6275A: CC        - int 3 
San9WPK.exe+6275B: CC        - int 3 
San9WPK.exe+6275C: CC        - int 3 
San9WPK.exe+6275D: CC        - int 3 
San9WPK.exe+6275E: CC        - int 3 
San9WPK.exe+6275F: CC        - int 3 
// ---------- INJECTING HERE ----------
San9WPK.exe+62760: 8B 41 30  - mov eax,[ecx+30]
// ---------- DONE INJECTING  ----------
San9WPK.exe+62763: C3        - ret 
San9WPK.exe+62764: CC        - int 3 
San9WPK.exe+62765: CC        - int 3 
San9WPK.exe+62766: CC        - int 3 
San9WPK.exe+62767: CC        - int 3 
San9WPK.exe+62768: CC        - int 3 
San9WPK.exe+62769: CC        - int 3 
San9WPK.exe+6276A: CC        - int 3 
San9WPK.exe+6276B: CC        - int 3 
San9WPK.exe+6276C: CC        - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>34</ID>
          <Description>"耐久"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_region_addr</Address>
          <Offsets>
            <Offset>-1C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>37</ID>
          <Description>"兵士"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_region_addr</Address>
          <Offsets>
            <Offset>30</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>35</ID>
          <Description>"負傷兵"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_region_addr</Address>
          <Offsets>
            <Offset>34</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>36</ID>
          <Description>"士気"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_region_addr</Address>
          <Offsets>
            <Offset>38</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>40</ID>
          <Description>"ID?"</Description>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_region_addr</Address>
          <Offsets>
            <Offset>74</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
