<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>34</ID>
      <Description>"Compact Mode"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
--https://forum.cheatengine.org/viewtopic.php?t=570055
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))
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>136</ID>
      <Description>"Active"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : P5R.exe
  Version:
  Date   : 2022-10-21
  Author : bbfox@https://opencheattables.com
}
[ENABLE]
{$lua}
if syntaxcheck then return end
if memrec then print(memrec.Description) end


function AOBScanModule(moduleName, signature, aobSignaturePrivileges, alignmentType, alignmentParam)
	--checkArgType(moduleName, 1, 'string')
	if not signature or not moduleName then return end
	index = index or 1
	local modStartAddr = getAddress(moduleName)
	local modEndAddr = modStartAddr + getModuleSize(moduleName)
	local ms = createMemScan()
	if type(signature) == 'table' then
		local sig = ''
		for i, byte in ipairs(signature) do
			sig = sig..string.format('%02X', byte)
		end
		signature = sig
	end
	ms.firstScan(soExactValue, vtByteArray, nil, signature, nil, modStartAddr, modEndAddr,
				 aobSignaturePrivileges, alignmentType, alignmentParam, true, true, false, false)
	ms.waitTillDone()
	local results = createFoundList(ms)
	results.initialize()
	ms.destroy()
	return results
end
registerLuaFunctionHighlight('AOBScanModule')



local _dbg = true
if (_dbg) then
  AOBs = {
    {["name"]="money", ["aob"]="0F 48 15 ?? ?? ?? ?? 48 85 ED", ["pos"]= 3,  ["aoblen"]= 7 , ["symbol"]="money_base"},
    {["name"]="joker_exp", ["aob"]="89 1D * * * * 48 8D 0D * * * * 8B 1D * * * * 44 8B F0", ["pos"]= 2,  ["aoblen"]= 6 , ["symbol"]="joker_exp_base"},
    {["name"]="security_lv", ["aob"]="8B 0D * * * * 83 F9 50 7C * B8 02 00 00 00 C3", ["pos"]= 2,  ["aoblen"]= 6 , ["symbol"]="security_lv_base"},
  }

  local a1 = 'n/a'
  local a2 = 'n/a'
  local a3 = 0
  local a4 = 0
  local a5 = 'n/a'

  for k,v in pairs(AOBs) do
    -- k = array seq.
    for k1,v1 in pairs(v) do
      if (k1 == 'name') then
        a1 = v1
      end
      if (k1 == 'aob') then
        a2 = v1
      end
      if (k1 == 'pos') then
        a3 = v1
      end
      if (k1 == 'aoblen') then
        a4 = v1
      end
      if (k1 == 'symbol') then
        a5 = v1
      end
      --print(k1,v1)
    end
    local aob_addr_str = AOBScanModule('P5R.exe', a2, '+X-C-W')
    local name_addr_str = getAddressSafe(aob_addr_str[0])+a3
    local name_addr_val = readInteger(name_addr_str)
    local aob_addr_val = tonumber(aob_addr_str[0], 16)
    local final_addr_val = name_addr_val + aob_addr_val + a4
    --print(a1 .. " addr: " .. string.format("%08X", final_addr_val))
    registerSymbol(a5, final_addr_val)
    --print('-------')
  end
  --local ttt = readDouble('wirebug3dur_base')
  --print(getAddress('wirebug3dur_base'))
  --writeDouble(getAddress('wirebug3dur_base'), 450)
  --writeInteger('defense_base', 3120)
end
getLuaEngine().Close()

[DISABLE]
{$lua}
if syntaxcheck then return end
if memrec then print(memrec.Description) end
local disable_array = {"money_base", "joker_exp_base", "security_lv_base",}
local a_len = #(disable_array)
local i = 0
for i = 1, a_len do
  --print(disable_array[i])
  unregisterSymbol(disable_array[i])
end
getLuaEngine().Close()
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>203</ID>
          <Description>"Static values"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>138</ID>
              <Description>"***Wait for seconds***"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>137</ID>
              <Description>"Money"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>money_base</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>200</ID>
              <Description>"Security Level / 警戒度"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>Byte</VariableType>
              <Address>security_lv_base</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>181</ID>
              <Description>"Joker EXP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>joker_exp_base</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>194</ID>
              <Description>"+Joker Personas"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>206</ID>
                  <Description>"Persona 1"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+2A</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>184</ID>
                  <Description>"Persona 1 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+30</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>185</ID>
                  <Description>"Persona 2"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+5A</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>207</ID>
                  <Description>"Persona 2 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+60</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>186</ID>
                  <Description>"Persona 3"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+8A</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>208</ID>
                  <Description>"Persona 3 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+90</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>187</ID>
                  <Description>"Persona 4"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+BA</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>209</ID>
                  <Description>"Persona 4 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+C0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>188</ID>
                  <Description>"Persona 5"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+EA</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>210</ID>
                  <Description>"Persona 5 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+F0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>189</ID>
                  <Description>"Persona 6"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+11A</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>211</ID>
                  <Description>"Persona 6 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+120</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>190</ID>
                  <Description>"Persona 7"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+14A</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>212</ID>
                  <Description>"Persona 7 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+150</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>191</ID>
                  <Description>"Persona 8"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+17A</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>213</ID>
                  <Description>"Persona 8 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+180</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>192</ID>
                  <Description>"Persona 9"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+1AA</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>214</ID>
                  <Description>"Persona 9 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+1B0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>193</ID>
                  <Description>"Persona 10"</Description>
                  <DropDownListLink>Persona. ID</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>2 Bytes</VariableType>
                  <Address>joker_exp_base+1DA</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>215</ID>
                  <Description>"Persona 10 EXP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>joker_exp_base+1E0</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>204</ID>
          <Description>"+Battle"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>1</ID>
              <Description>"Battle: HP/SP"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-21
  Author : bbfox@https://opencheattables.com
}

[ENABLE]
aobscanmodule(INJECT_BATTLE_HP,$process,39 71 0C ?? ?? 4C 8B 4D D8) // should be unique
alloc(newmem,$1500,INJECT_BATTLE_HP)
alloc(INJECT_BATTLE_HPo,$10)

label(code)
label(return)
label(i_base_char_addr_1)
label(i_base_enemy_addr_1)
label(i_is_reset_player_data)
label(i_is_reset_enemy_data)
label(is_keep_min_sp)
label(is_keep_min_hp)
label(i_min_sp_value)
label(i_min_hp_value)


INJECT_BATTLE_HPo:
  readmem(INJECT_BATTLE_HP, 10)

newmem:
  cmp dword ptr [i_is_reset_player_data], 1
  jne check_next1
  push rax
  push r15
  xor r15, r15

clear_loop:
  mov rax, i_base_char_addr_1
  lea rax, [rax+r15d*8]
  mov [rax], 0
  inc r15d
  cmp r15d, 18
  jbe clear_loop
  mov dword ptr [i_is_reset_player_data], 0

  pop r15
  pop rax

check_next1:
  cmp dword ptr [i_is_reset_enemy_data], 1
  jne check_next2

  push rax
  push r15
  xor r15, r15

clear_e_loop:
  mov rax, i_base_enemy_addr_1
  lea rax, [rax+r15d*8]
  mov [rax], 0
  inc r15d
  cmp r15d, 9
  jbe clear_e_loop
  mov dword ptr [i_is_reset_enemy_data], 0

  pop r15
  pop rax

check_next2:
  inc dword ptr [i_refresh_counter]
  cmp dword ptr [i_refresh_counter], 64
  jb @F
  mov dword ptr [i_is_reset_enemy_data], 1
  mov dword ptr [i_refresh_counter], 0


@@:
  // ********************
  push rax
  push r15
  push r14

  xor r15, r15

  mov eax, [rcx+04]
  cmp eax, 1
  jne to_enemy

char_addr_loop:
  mov rax, i_base_char_addr_1
  lea rax, [rax+r15d*8]
  cmp [rax], rcx
  je char_match
  cmp [rax], 0
  jne next_char
  mov [rax], rcx

char_match:
  cmp dword ptr [is_keep_min_sp], 1
  jne check_player_hp_option
  mov r14d, [rcx+10]
  cmp r14d, dword ptr [i_min_sp_value]
  jae check_player_hp_option
  mov r14d, dword ptr [i_min_sp_value]
  mov [rcx+10], r14d

check_player_hp_option:
  cmp dword ptr [is_keep_min_hp], 1
  jne char_match_endp
  mov r14d, [rcx+0C]
  cmp r14d, dword ptr [i_min_hp_value]
  jae char_match_endp
  mov r14d, dword ptr [i_min_hp_value]
  mov [rcx+0C], r14d

  //cmp esi, 64
  //jae char_match_endp
  //mov esi, 64


char_match_endp:
  jmp char_endp

next_char:
  inc r15d
  cmp r15d, 18
  jae char_endp
  jmp char_addr_loop

char_endp:
  jmp endp

to_enemy:
  db EB 3B 54
  db 68 69 73 20 74 61
  db 62 6C 65 20 63 6F 6D
  db 65 73 20
  db 66 72 6F 6D 20 68 74 74 70
  db 73 3A 2F 2F 6F 70 65 6E 63 68 65 61 74 74 61 62
  db 6C 65 73 2E 63 6F 6D 20 2F 20 43 45 20 37 2E 34 2B

enemy_addr_loop:
  mov rax, i_base_enemy_addr_1
  lea rax, [rax+r15d*8]

check_enemy_next1:
  mov r14d, [rax+04]
  cmp r14d, 0
  je check_enemy_next2
  cmp r14d, 2
  je check_enemy_next2
  mov [rax], 0
  jmp check_enemy_match

check_enemy_next2:
  //mov r14w, [rax+02]
  //cmp r14w, 0
  //je check_enemy_match
  //mov [rax], 0

check_enemy_match:
  cmp [rax], rcx
  je enemy_match
  cmp [rax], 0
  jne next_enemy
  mov [rax], rcx

enemy_match:
  //test esi, esi
  //jz enemy_addr_clear

  //mov r14d, [rcx+04]
  //cmp r14d, 2
  //jne enemy_addr_clear

  //mov r14w, [rcx+02]
  //test r14w, r14w
  //jnz enemy_addr_clear


  jmp enemy_endp

next_enemy:
  inc r15d
  cmp r15d, #13
  jae enemy_endp
  jmp enemy_addr_loop



enemy_endp:
  jmp endp


endp:
  pop r14
  pop r15
  pop rax


code:
  cmp [rcx+0C],esi
  reassemble(INJECT_BATTLE_HP+3)
  //jle P5R.exe+8FF98D
  jmp return
align 10 cc
  i_is_reset_player_data:
  dd 0
  i_is_reset_enemy_data:
  dd 0
  is_keep_min_sp:
  dd 1
  is_keep_min_hp:
  dd 1
  i_min_sp_value:
  dd 50
  i_min_hp_value:
  dd #175
  i_refresh_counter:
  dd 0
  align 10 cc
  i_base_char_addr_1:
  dq 0
  align 100 0
  i_base_enemy_addr_1:
  dq 0
  align 100 0
  dq 0



INJECT_BATTLE_HP:
  jmp newmem
return:
registersymbol(INJECT_BATTLE_HP)
registersymbol(i_base_char_addr_1)
registersymbol(i_base_enemy_addr_1)
registersymbol(i_is_reset_player_data)
registersymbol(i_is_reset_enemy_data)
registersymbol(is_keep_min_sp)
registersymbol(is_keep_min_hp)
registersymbol(INJECT_BATTLE_HPo)
registersymbol(i_min_sp_value)
registersymbol(i_min_hp_value)
[DISABLE]
//INJECT_BATTLE_HP:
//  db 39 71 0C 7E 53
INJECT_BATTLE_HP:
  readmem(INJECT_BATTLE_HPo, 10)

unregistersymbol(*)
dealloc(newmem)
dealloc(INJECT_BATTLE_HPo)


{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+8FF935

P5R.exe+8FF911: 48 8D 45 E0        - lea rax,[rbp-20]
P5R.exe+8FF915: 48 89 43 10        - mov [rbx+10],rax
P5R.exe+8FF919: 4C 8B 43 18        - mov r8,[rbx+18]
P5R.exe+8FF91D: 4C 89 45 F8        - mov [rbp-08],r8
P5R.exe+8FF921: 49 8B 48 10        - mov rcx,[r8+10]
P5R.exe+8FF925: 8B 41 14           - mov eax,[rcx+14]
P5R.exe+8FF928: C1 E8 13           - shr eax,13
P5R.exe+8FF92B: A8 01              - test al,01
P5R.exe+8FF92D: 75 5E              - jne P5R.exe+8FF98D
P5R.exe+8FF92F: 41 BA 01 00 00 00  - mov r10d,00000001
// ---------- INJECTING HERE ----------
P5R.exe+8FF935: 39 71 0C           - cmp [rcx+0C],esi
// ---------- DONE INJECTING  ----------
P5R.exe+8FF938: 7E 53              - jle P5R.exe+8FF98D
P5R.exe+8FF93A: 4C 8B 4D D8        - mov r9,[rbp-28]
P5R.exe+8FF93E: 48 8B 4D D0        - mov rcx,[rbp-30]
P5R.exe+8FF942: 48 8B 55 C8        - mov rdx,[rbp-38]
P5R.exe+8FF946: 32 DB              - xor bl,bl
P5R.exe+8FF948: 41 F6 C2 02        - test r10l,02
P5R.exe+8FF94C: 0F 84 FC 00 00 00  - je P5R.exe+8FFA4E
P5R.exe+8FF952: 4C 89 75 C0        - mov [rbp-40],r14
P5R.exe+8FF956: 48 85 D2           - test rdx,rdx
P5R.exe+8FF959: 0F 85 90 00 00 00  - jne P5R.exe+8FF9EF
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>32</ID>
                  <Description>"Keep min SP?"</Description>
                  <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF0080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>is_keep_min_sp</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>33</ID>
                  <Description>"Keep min HP? (not god mode)"</Description>
                  <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF0080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>is_keep_min_hp</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>70</ID>
                  <Description>"Min. SP value"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_min_sp_value</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>71</ID>
                  <Description>"Min. HP value"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_min_hp_value</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>8</ID>
                  <Description>"Reset player data?"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF0080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_is_reset_player_data</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>12</ID>
                  <Description>"+Player team"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>121</ID>
                      <Description>"Slots - Joker only"</Description>
                      <Options moHideChildren="1"/>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>117</ID>
                          <Description>"Lv 1"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>18</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>123</ID>
                          <Description>"EXP 1"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>1C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>122</ID>
                          <Description>"Lv 2"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>18</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>125</ID>
                          <Description>"EXP 2"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>1C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>124</ID>
                          <Description>"Lv 3"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>18</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>120</ID>
                          <Description>"EXP 3"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>1C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>126</ID>
                          <Description>"Lv 4"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>18</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>127</ID>
                          <Description>"EXP 4"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>1C</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>100</ID>
                      <Description>"Slot 1"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>106</ID>
                          <Description>"Char. ID"</Description>
                          <DropDownList DisplayValueAsItem="1">1:Joker
2:Skull / 阪本竜司
3:Mona / モルガナ
4:Panther / 高巻杏
5:Fox
6:Queen
7:Noir
8:Oracle
9:Crow
10:Violet
</DropDownList>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>2</ID>
                          <Description>"HP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>3</ID>
                          <Description>"SP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>10</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>93</ID>
                          <Description>"Persona. ID"</Description>
                          <DropDownList DisplayValueAsItem="1">0:None
1:Metatron
2:Beelzebub
3:Cu Chulainn
4:Jack-o'-Lantern
5:Jack Frost
6:Pixie
7:Cerberus
8:Lilim
9:Eligor
10:Odin
11:Hua Po
12:Decarabia
13:Mara
14:Ose
15:Thor
16:Unicorn
17:Uriel
18:Sarasvati
19:Valkyrie
20:Yaksini
21:Ganesha
22:Anubis
23:Mot
24:Raphael
25:Scathach
26:High Pixie
27:Barong
28:Girimehkala
29:King Frost
30:Narcissus
31:Isis
32:Lamia
33:Legion
34:Rakshasa
35:Mokoi
36:Forneus
37:Setanta
38:Titania
39:Incubus
40:Oni
41:Lilith
42:Rangda
43:Makami
44:Parvati
45:Gabriel
46:Zaou-Gongen
47:Alice
48:Kali
49:Kurama Tengu
50:Oberon
51:Shiki-Ouji
52:Yamata-no-Orochi
53:Orobas
54:Hanuman
55:Archangel
56:Obariyon
57:Queen Mab
58:Sandalphon
59:Abaddon
60:Shiisaa
61:Sandman
62:Belial
63:Leanan Sidhe
64:Cybele
65:Chernobog
66:Flauros
67:Ippon-Datara
68:Orthrus
69:Succubus
70:Mothman
72:Dominion
73:Nekomata
74:Black Frost
75:Arahabaki
76:Angel
77:Skadi
78:Kikuri-Hime
79:Chi You
80:Power
81:Inugami
82:Nebiros
84:Slime
85:Anzu
86:Yatagarasu
87:Yoshitsune
88:Take-Minakata
89:Ame-no-Uzume
90:Kushinada
91:Kumbhanda
92:Ongyo-Ki
93:Kin-Ki
94:Sui-Ki
95:Fuu-Ki
96:Jatayu
97:Kaiwan
98:Kelpie
99:Thoth
100:Dionysus
101:Apsaras
102:Andras
104:Koropokguru
105:Koppa Tengu
106:Regent💎
107:Queen's Necklace💎
108:Stone of Scone💎
109:Koh-i-Noor💎
110:Orlov💎
111:Emperor's Amulet💎
112:Hope Diamond💎
113:Crystal Skull💎
114:Orichalcum💎
121:Mandrake
122:Baal
123:Dakini
124:Silky
125:Bugs
126:Black Ooze
127:Bicorn
128:Mithras
129:Sudama
130:Kodama
131:Agathion
132:Onmoraki
133:Nue
134:Pisaca
135:Melchizedek
136:Baphomet
137:Raja Naga
138:Naga
139:Garuda
140:Moloch
141:Norn
142:Belphegor
143:Berith
144:Choronzon
151:Nigi Mitama
152:Kushi Mitama
153:Ara Mitama
154:Saki Mitama
156:Shiva
157:Michael
158:Asura
159:Mada
160:Mother Harlot
161:Clotho
162:Lachesis
163:Atropos
164:Ardha
166:Vishnu
167:Hariti
168:Yurlungur
169:Hecatoncheires
170:Satanael
181:Orpheus
182:Thanatos
183:Izanagi
184:Magatsu-Izanagi
185:Kaguya
186:Ariadne
187:Asterius
188:Tsukiyomi
189:Messiah
190:Messiah Picaro
191:Orpheus Picaro
192:Thanatos Picaro
193:Izanagi Picaro
194:M. Izanagi Picaro
195:Kaguya Picaro
196:Ariadne Picaro
197:Asterius Picaro
198:Tsukiyomi Picaro
201:Arsene
202:Captain Kidd
203:Zorro
204:Carmen
205:Goemon
206:Johanna
207:Milady
208:Necronomicon
209:Robin Hood
212:Seiten Taisei
213:Mercurius
214:Hecate
215:Kamu Susano-o
216:Anat
217:Astarte
218:Prometheus
239:Loki
240:Cendrillon
241:Vanadis
242:William
243:Diego
244:Célestine
245:Gorokichi
246:Agnes
247:Lucy
248:Al Azif
249:Hereward
250:Ella
252:Satan
253:Lucifer
254:Kohryu
255:Okuninushi
259:Futsunushi
261:Seth
262:Ishtar
266:Lakshmi
272:Fortuna
273:Suzaku
274:Seiryu
275:Genbu
276:Byakko
277:Bishamonten
278:Koumokuten
279:Jikokuten
280:Zouchouten
281:Hell Biker
282:Daisoujou
283:Trumpeter
284:White Rider
285:Matador
286:Pale Rider
287:Horus
289:Attis
292:Sraosha
295:Mitra
296:Phoenix
297:Principality
298:Neko Shogun
299:Vasuki
300:Ananta
303:Quetzalcoatl
304:Red Rider
305:Black Rider
308:Pazuzu
330:Maria
331:Vohu Manah
333:Mishaguji
360:Izanagi no Okami
362:Athena
363:Raoul
365:Orpheus (F)
366:Izanagi no Okami Picaro
368:Athena Picaro
371:Orpheus (F) Picaro
424:Macabre
425:Alilat
426:Thunderbird
427:Fafnir
428:Byarky
429:Hastur
430:Tam Lin
431:Throne
432:Surt
433:Loa
434:Chimera
435:Atavaka
436:Caith Sith
437:Siegfried
</DropDownList>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>2 Bytes</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>46</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>132</ID>
                          <Description>"Lv"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>48</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>97</ID>
                          <Description>"EXP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>4C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>113</ID>
                          <Description>"Persona Stats"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Array of byte</VariableType>
                          <ByteLength>5</ByteLength>
                          <Address>i_base_char_addr_1</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>101</ID>
                      <Description>"Slot 2"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>128</ID>
                          <Description>"Char ID"</Description>
                          <DropDownListLink>Char. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>107</ID>
                          <Description>"HP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>5</ID>
                          <Description>"SP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>10</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>94</ID>
                          <Description>"Persona ID"</Description>
                          <DropDownListLink>Persona. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>2 Bytes</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>46</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>131</ID>
                          <Description>"Lv"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>48</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>116</ID>
                          <Description>"EXP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>4C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>112</ID>
                          <Description>"Persona Stats"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Array of byte</VariableType>
                          <ByteLength>5</ByteLength>
                          <Address>i_base_char_addr_1+8</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>102</ID>
                      <Description>"Slot 3"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>6</ID>
                          <Description>"Char ID"</Description>
                          <DropDownListLink>Char. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>108</ID>
                          <Description>"HP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>11</ID>
                          <Description>"SP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>10</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>95</ID>
                          <Description>"Persona ID"</Description>
                          <DropDownListLink>Persona. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>2 Bytes</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>46</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>129</ID>
                          <Description>"Lv"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>48</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>118</ID>
                          <Description>"EXP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>4C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>114</ID>
                          <Description>"Persona Stats"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Array of byte</VariableType>
                          <ByteLength>5</ByteLength>
                          <Address>i_base_char_addr_1+10</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>103</ID>
                      <Description>"Slot 4"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>10</ID>
                          <Description>"Char ID"</Description>
                          <DropDownListLink>Char. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>109</ID>
                          <Description>"HP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>7</ID>
                          <Description>"SP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>10</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>96</ID>
                          <Description>"Persona ID"</Description>
                          <DropDownListLink>Persona. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>2 Bytes</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>46</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>130</ID>
                          <Description>"Lv"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>48</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>119</ID>
                          <Description>"EXP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>4C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>115</ID>
                          <Description>"Persona Stats"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Array of byte</VariableType>
                          <ByteLength>5</ByteLength>
                          <Address>i_base_char_addr_1+18</Address>
                          <Offsets>
                            <Offset>60</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>104</ID>
                      <Description>"Slot 5"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>13</ID>
                          <Description>"Char ID"</Description>
                          <DropDownListLink>Char. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+20</Address>
                          <Offsets>
                            <Offset>8</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>110</ID>
                          <Description>"HP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+20</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>14</ID>
                          <Description>"SP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+20</Address>
                          <Offsets>
                            <Offset>10</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>98</ID>
                          <Description>"Lv"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+20</Address>
                          <Offsets>
                            <Offset>48</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>133</ID>
                          <Description>"EXP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+20</Address>
                          <Offsets>
                            <Offset>4C</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>105</ID>
                      <Description>"Slot 6"</Description>
                      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                      <GroupHeader>1</GroupHeader>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>15</ID>
                          <Description>"Char ID"</Description>
                          <DropDownListLink>Char. ID</DropDownListLink>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+28</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>111</ID>
                          <Description>"HP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+28</Address>
                          <Offsets>
                            <Offset>C</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>16</ID>
                          <Description>"SP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+28</Address>
                          <Offsets>
                            <Offset>10</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>99</ID>
                          <Description>"Lv"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>i_base_char_addr_1+28</Address>
                          <Offsets>
                            <Offset>48</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>134</ID>
                          <Description>"EXP"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>i_base_char_addr_1+28</Address>
                          <Offsets>
                            <Offset>4C</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>17</ID>
                  <Description>"+Enemy team"</Description>
                  <Options moHideChildren="1"/>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>18</ID>
                      <Description>"HP slot #1"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>20</ID>
                      <Description>"HP slot #2"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+8</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>22</ID>
                      <Description>"HP slot #3"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+10</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>24</ID>
                      <Description>"HP slot #4"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+18</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>26</ID>
                      <Description>"HP slot #5"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+20</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>30</ID>
                      <Description>"HP slot #6"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+28</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>28</ID>
                      <Description>"HP slot #7"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+30</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>85</ID>
                      <Description>"HP slot #8"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+38</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>87</ID>
                      <Description>"HP slot #9"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+40</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>88</ID>
                      <Description>"HP slot #10"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+48</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>89</ID>
                      <Description>"HP slot #11"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+50</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>90</ID>
                      <Description>"HP slot #12"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>i_base_enemy_addr_1+58</Address>
                      <Offsets>
                        <Offset>C</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>179</ID>
              <Description>"Battle: Joker EXP multiplier"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-23
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_JOKER_XP_MULTI,$process,48 8B F2 03 59 04) // should be unique
alloc(newmem,$1000,INJECT_JOKER_XP_MULTI)

label(code)
label(return)
label(vf_joker_xp_multi)
label(is_also_add_to_personas)

newmem:
  push rax

  mov eax, [rcx+04]
  cvtsi2ss xmm15, eax
  vmovss xmm14, [vf_joker_xp_multi]
  vmulss xmm15, xmm15, xmm14
  cvtss2si eax, xmm15
  mov [rcx+04], eax

  cmp dword ptr [is_also_add_to_personas], 1
  jne endp

  // add in-hand Personas EXP
  //xor r15, r15
  push r15
  push r14
  push r13
  mov r15d, 30
  vmovss xmm14, [vf_30]

to_add_exp_loop:
  mov r13, joker_exp_base

  lea r13,[r13+r15d-4]

  mov r14l, [r13]
  test r14l, r14l
  jz loop_next
  add [r13+04], eax

loop_next:
  add r15d, 30
  cmp r15d, 1E0
  ja exp_endp
  jmp to_add_exp_loop

exp_endp:
  pop r13
  pop r14
  pop r15

endp:
  pop rax

code:
  mov rsi,rdx
  add ebx,[rcx+04]
  jmp return
align 10 cc
  vf_joker_xp_multi:
  dd (float)1.25
  is_also_add_to_personas:
  dd 1
  vf_30:
  dd (float)30
  vf_4:
  dd (float)4

INJECT_JOKER_XP_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_JOKER_XP_MULTI)
registersymbol(vf_joker_xp_multi)
registersymbol(is_also_add_to_personas)

[DISABLE]

INJECT_JOKER_XP_MULTI:
  db 48 8B F2 03 59 04

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+B4BBDE

P5R.exe+B4BBBE: CC                    - int 3 
P5R.exe+B4BBBF: CC                    - int 3 
P5R.exe+B4BBC0: 48 89 5C 24 08        - mov [rsp+08],rbx
P5R.exe+B4BBC5: 48 89 6C 24 10        - mov [rsp+10],rbp
P5R.exe+B4BBCA: 48 89 74 24 18        - mov [rsp+18],rsi
P5R.exe+B4BBCF: 57                    - push rdi
P5R.exe+B4BBD0: 41 56                 - push r14
P5R.exe+B4BBD2: 41 57                 - push r15
P5R.exe+B4BBD4: 48 83 EC 20           - sub rsp,20
P5R.exe+B4BBD8: 8B 1D 4E F8 E2 01     - mov ebx,[P5R.exe+297B42C]
// ---------- INJECTING HERE ----------
P5R.exe+B4BBDE: 48 8B F2              - mov rsi,rdx
// ---------- DONE INJECTING  ----------
P5R.exe+B4BBE1: 03 59 04              - add ebx,[rcx+04]
P5R.exe+B4BBE4: 48 8D 15 75 0E 6D 01  - lea rdx,[P5R.exe+221CA60]
P5R.exe+B4BBEB: B9 01 00 00 00        - mov ecx,00000001
P5R.exe+B4BBF0: 48 0F BF C1           - movsx rax,cx
P5R.exe+B4BBF4: 41 BF 63 00 00 00     - mov r15d,00000063
P5R.exe+B4BBFA: 39 5C 82 FC           - cmp [rdx+rax*4-04],ebx
P5R.exe+B4BBFE: 77 0C                 - ja P5R.exe+B4BC0C
P5R.exe+B4BC00: FF C1                 - inc ecx
P5R.exe+B4BC02: 41 3B CF              - cmp ecx,r15d
P5R.exe+B4BC05: 76 E9                 - jna P5R.exe+B4BBF0
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>180</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>Float</VariableType>
                  <Address>vf_joker_xp_multi</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>205</ID>
                  <Description>"Also apply to Personas in hand?"</Description>
                  <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF0080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>is_also_add_to_personas</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>174</ID>
              <Description>"Battle: Party EXP multiplier"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-23
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_PARTY_MEMBER_XP_MULTI,$process,46 01 54 02 4C) // should be unique
alloc(newmem,$1000,INJECT_PARTY_MEMBER_XP_MULTI)

label(code)
label(return)
label(vf_party_exp_multi)

newmem:

  vmovss xmm14, [vf_party_exp_multi]
  cvtsi2ss xmm15, r10d
  vmulss xmm15, xmm15, xmm14
  cvtss2si r10d, xmm15


code:
  add [rdx+r8+4C],r10d
  jmp return
align 10 cc
  vf_party_exp_multi:
  dd (float)1.25

INJECT_PARTY_MEMBER_XP_MULTI:
  jmp newmem
return:
registersymbol(INJECT_PARTY_MEMBER_XP_MULTI)
registersymbol(vf_party_exp_multi)

[DISABLE]

INJECT_PARTY_MEMBER_XP_MULTI:
  db 46 01 54 02 4C

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+B4BDDC

P5R.exe+B4BDB6: 44 8B 14 93           - mov r10d,[rbx+rdx*4]
P5R.exe+B4BDBA: 45 85 D2              - test r10d,r10d
P5R.exe+B4BDBD: 74 22                 - je P5R.exe+B4BDE1
P5R.exe+B4BDBF: 66 83 FA 01           - cmp dx,01
P5R.exe+B4BDC3: 74 1C                 - je P5R.exe+B4BDE1
P5R.exe+B4BDC5: 4C 69 C1 A0 02 00 00  - imul r8,rcx,000002A0
P5R.exe+B4BDCC: 4C 03 C7              - add r8,rdi
P5R.exe+B4BDCF: 41 0F B7 48 40        - movzx ecx,word ptr [r8+40]
P5R.exe+B4BDD4: 48 8D 14 49           - lea rdx,[rcx+rcx*2]
P5R.exe+B4BDD8: 48 C1 E2 04           - shl rdx,04
// ---------- INJECTING HERE ----------
P5R.exe+B4BDDC: 46 01 54 02 4C        - add [rdx+r8+4C],r10d
// ---------- DONE INJECTING  ----------
P5R.exe+B4BDE1: 41 0F B7 4B 30        - movzx ecx,word ptr [r11+30]
P5R.exe+B4BDE6: FF C0                 - inc eax
P5R.exe+B4BDE8: 49 83 C1 02           - add r9,02
P5R.exe+B4BDEC: 3B C1                 - cmp eax,ecx
P5R.exe+B4BDEE: 7C C0                 - jl P5R.exe+B4BDB0
P5R.exe+B4BDF0: 48 8B 7C 24 10        - mov rdi,[rsp+10]
P5R.exe+B4BDF5: 5B                    - pop rbx
P5R.exe+B4BDF6: C3                    - ret 
P5R.exe+B4BDF7: CC                    - int 3 
P5R.exe+B4BDF8: CC                    - int 3 
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>175</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>Float</VariableType>
                  <Address>vf_party_exp_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>177</ID>
              <Description>"Battle: Joker equipped Persona EXP multiplier"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-23
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_JOKER_PER_XP_MULTI,$process,49 0F 45 C8 44 01 51 08) // should be unique
alloc(newmem,$1000,INJECT_JOKER_PER_XP_MULTI)

label(code)
label(return)
label(vf_joker_persona_xp_multi)

newmem:
  pushf
  vmovss xmm14, [vf_joker_persona_xp_multi]
  cvtsi2ss xmm15, r10d
  vmulss xmm15, xmm14, xmm15
  cvtss2si r10d, xmm15
  popf

code:
  cmovne rcx,r8
  add [rcx+08],r10d
  jmp return
align 10 cc
  vf_joker_persona_xp_multi:
  dd (float)1.75

INJECT_JOKER_PER_XP_MULTI:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_JOKER_PER_XP_MULTI)
registersymbol(vf_joker_persona_xp_multi)
[DISABLE]

INJECT_JOKER_PER_XP_MULTI:
  db 49 0F 45 C8 44 01 51 08

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+B4BD70

P5R.exe+B4BD4C: 0F 1F 40 00     - nop dword ptr [rax+00]
P5R.exe+B4BD50: 45 8B 11        - mov r10d,[r9]
P5R.exe+B4BD53: 45 85 D2        - test r10d,r10d
P5R.exe+B4BD56: 74 20           - je P5R.exe+B4BD78
P5R.exe+B4BD58: 48 0F BF C8     - movsx rcx,ax
P5R.exe+B4BD5C: 4C 8D 04 49     - lea r8,[rcx+rcx*2]
P5R.exe+B4BD60: B9 00 00 00 00  - mov ecx,00000000
P5R.exe+B4BD65: 49 C1 E0 04     - shl r8,04
P5R.exe+B4BD69: 4C 03 C3        - add r8,rbx
P5R.exe+B4BD6C: 41 F6 00 01     - test byte ptr [r8],01
// ---------- INJECTING HERE ----------
P5R.exe+B4BD70: 49 0F 45 C8     - cmovne rcx,r8
// ---------- DONE INJECTING  ----------
P5R.exe+B4BD74: 44 01 51 08     - add [rcx+08],r10d
P5R.exe+B4BD78: FF C0           - inc eax
P5R.exe+B4BD7A: 49 83 C1 04     - add r9,04
P5R.exe+B4BD7E: 41 3B C3        - cmp eax,r11d
P5R.exe+B4BD81: 7C CD           - jl P5R.exe+B4BD50
P5R.exe+B4BD83: 48 83 C4 20     - add rsp,20
P5R.exe+B4BD87: 5B              - pop rbx
P5R.exe+B4BD88: C3              - ret 
P5R.exe+B4BD89: CC              - int 3 
P5R.exe+B4BD8A: CC              - int 3 
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>178</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>Float</VariableType>
                  <Address>vf_joker_persona_xp_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>201</ID>
              <Description>"Battle: Money multiplier"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-23
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_MONEY_MULTI,$process,8B 46 10 03 46 08) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_MONEY_MULTI)

label(code)
label(return)
label(vf_battle_money_multi)

newmem:
  mov eax,[rsi+08]
  cvtsi2ss xmm15, eax
  vmovss xmm14, [vf_battle_money_multi]
  vmulss xmm15, xmm15, xmm14
  vcvtss2si eax, xmm15
  mov [rsi+08], eax

code:
  mov eax,[rsi+10]
  add eax,[rsi+08]
  jmp return
align 10 cc
  vf_battle_money_multi:
  dd (float)1.5

INJECT_BATTLE_MONEY_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_BATTLE_MONEY_MULTI)
registersymbol(vf_battle_money_multi)

[DISABLE]

INJECT_BATTLE_MONEY_MULTI:
  db 8B 46 10 03 46 08

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+B4BC95

P5R.exe+B4BC69: 48 8D 0D A0 F7 E2 01     - lea rcx,[P5R.exe+297B410]
P5R.exe+B4BC70: 89 05 A6 F7 E2 01        - mov [P5R.exe+297B41C],eax
P5R.exe+B4BC76: E8 A5 31 2A 00           - call P5R.exe+DEEE20
P5R.exe+B4BC7B: 41 2B DE                 - sub ebx,r14d
P5R.exe+B4BC7E: 03 C3                    - add eax,ebx
P5R.exe+B4BC80: 3B C7                    - cmp eax,edi
P5R.exe+B4BC82: 7E 0B                    - jle P5R.exe+B4BC8F
P5R.exe+B4BC84: 66 83 3D 88 F7 E2 01 02  - cmp word ptr [P5R.exe+297B414],02
P5R.exe+B4BC8C: 0F 45 C7                 - cmovne eax,edi
P5R.exe+B4BC8F: 89 05 8B F7 E2 01        - mov [P5R.exe+297B420],eax
// ---------- INJECTING HERE ----------
P5R.exe+B4BC95: 8B 46 10                 - mov eax,[rsi+10]
// ---------- DONE INJECTING  ----------
P5R.exe+B4BC98: 03 46 08                 - add eax,[rsi+08]
P5R.exe+B4BC9B: 03 05 3B 2C E3 01        - add eax,[money_base]
P5R.exe+B4BCA1: 79 04                    - jns P5R.exe+B4BCA7
P5R.exe+B4BCA3: 33 C0                    - xor eax,eax
P5R.exe+B4BCA5: EB 0A                    - jmp P5R.exe+B4BCB1
P5R.exe+B4BCA7: B9 7F 96 98 00           - mov ecx,0098967F
P5R.exe+B4BCAC: 3B C1                    - cmp eax,ecx
P5R.exe+B4BCAE: 0F 4F C1                 - cmovg eax,ecx
P5R.exe+B4BCB1: 89 05 25 2C E3 01        - mov [money_base],eax
P5R.exe+B4BCB7: 48 8D 5E 3E              - lea rbx,[rsi+3E]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>202</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>Float</VariableType>
                  <Address>vf_battle_money_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>73</ID>
              <Description>"Battle: Set enemy 1 hit kill (1HK)"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_HP,$process,41 83 79 0C 00 0F) // should be unique
alloc(newmem,$1000,INJECT_INF_HP)

label(code)
label(return)
label(is_enemy_1HK)
label(i_enemy_sp_option)
label(is_inf_hp_on)

newmem:
  cmp dword ptr [is_inf_hp_on], 1
  jne to_enemy
  push rax
  mov eax, [r9+04]
  cmp eax, 1
  jne to_enemy
  mov eax, [r9+0C]
  cmp eax, 7D
  jge endp
  mov eax, 7D
  mov [r9+0C], eax
  jmp endp

to_enemy:
  mov eax, [r9+04]
  cmp eax, 2
  jne endp
  cmp dword ptr [is_enemy_1HK], 1
  jne enemy_sp_check
  mov eax, [r9+0C]
  cmp eax, 1
  jle enemy_sp_check
  mov eax, 1
  mov [r9+0C], eax
  jmp enemy_sp_check

to_enemy_chk2:
  //cmp dword ptr [is_enemy_1HK], 2
  //jne enemy_sp_check
  //mov eax, 1
  //mov [r9+0C], eax
  //jmp enemy_sp_check


enemy_sp_check:
  cmp dword ptr [i_enemy_sp_option], 1
  jne endp
  xor eax, eax
  mov [r9+10], ax

endp:
  pop rax

code:
  cmp dword ptr [r9+0C],00
  jmp return
align 10 cc
  is_enemy_1HK: // 0: None, 1: Yes, 2: Leave 1HP
  dd 0
  i_enemy_sp_option: // 0:None, 1:0
  dd 0
  is_inf_hp_on:
  dd 1

INJECT_INF_HP:
  jmp newmem
return:
registersymbol(INJECT_INF_HP)
registersymbol(is_enemy_1HK)
registersymbol(i_enemy_sp_option)
registersymbol(is_inf_hp_on)

[DISABLE]

INJECT_INF_HP:
  db 41 83 79 0C 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+8FF6E5

P5R.exe+8FF6C5: 4C 89 40 10     - mov [rax+10],r8
P5R.exe+8FF6C9: 4C 8B 40 18     - mov r8,[rax+18]
P5R.exe+8FF6CD: 4C 89 44 24 38  - mov [rsp+38],r8
P5R.exe+8FF6D2: 4D 8B 48 10     - mov r9,[r8+10]
P5R.exe+8FF6D6: 41 8B 41 14     - mov eax,[r9+14]
P5R.exe+8FF6DA: C1 E8 13        - shr eax,13
P5R.exe+8FF6DD: A8 01           - test al,01
P5R.exe+8FF6DF: 74 04           - je P5R.exe+8FF6E5
P5R.exe+8FF6E1: B3 01           - mov bl,01
P5R.exe+8FF6E3: EB 08           - jmp P5R.exe+8FF6ED
// ---------- INJECTING HERE ----------
P5R.exe+8FF6E5: 41 83 79 0C 00  - cmp dword ptr [r9+0C],00
// ---------- DONE INJECTING  ----------
P5R.exe+8FF6EA: 0F 9E C3        - setle bl
P5R.exe+8FF6ED: 4C 89 54 24 20  - mov [rsp+20],r10
P5R.exe+8FF6F2: 48 85 D2        - test rdx,rdx
P5R.exe+8FF6F5: 75 43           - jne P5R.exe+8FF73A
P5R.exe+8FF6F7: 48 85 C9        - test rcx,rcx
P5R.exe+8FF6FA: 75 51           - jne P5R.exe+8FF74D
P5R.exe+8FF6FC: 49 8B 00        - mov rax,[r8]
P5R.exe+8FF6FF: 8D 51 01        - lea edx,[rcx+01]
P5R.exe+8FF702: 49 8B C8        - mov rcx,r8
P5R.exe+8FF705: FF 10           - call qword ptr [rax]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>183</ID>
                  <Description>"Try to keep player min. HP? (not god mode)"</Description>
                  <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF0080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>is_inf_hp_on</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>135</ID>
                  <Description>"Enemy 1HK?"</Description>
                  <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF0080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>is_enemy_1HK</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>182</ID>
                  <Description>"Enemy 0 SP?"</Description>
                  <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF0080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_enemy_sp_option</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>149</ID>
          <Description>"Fill consumable items"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BROWSE_ITEMS,$process,0F B6 04 08 C3 89) // should be unique
alloc(newmem,$1000,INJECT_BROWSE_ITEMS)

label(code)
label(return)
label(i_min_items)
label(is_refill_item_even_zero)

newmem:
  cmp rax, 0
  je code
  cmp rax, #17
  je code

  cmp dword ptr [is_refill_item_even_zero], 1
  jne fill_normal
  mov byte ptr [i_min_threshold], 0
  jmp start_fill

fill_normal:
  mov byte ptr [i_min_threshold], 1

start_fill:
  push rbx
  mov bl, byte ptr [rax+rcx]
  cmp bl, [i_min_threshold]
  jb endp
  cmp bl, [i_min_items]
  jae endp
  mov bl, [i_min_items]
  cmp bl, 63
  jbe set_item_count
  mov bl, 63
set_item_count:
  mov [rax+rcx], bl

endp:
  pop rbx


code:
  movzx eax,byte ptr [rax+rcx]
  ret 
  jmp return
align 10 cc
  i_min_threshold:
  db 1
  i_min_items:
  dd 20
  is_refill_item_even_zero:
  dd 0

INJECT_BROWSE_ITEMS:
  jmp newmem
return:
registersymbol(INJECT_BROWSE_ITEMS)
registersymbol(i_min_items)
registersymbol(is_refill_item_even_zero)

[DISABLE]

INJECT_BROWSE_ITEMS:
  db 0F B6 04 08 C3

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+B9D561A

P5R.exe+B9D55E9: 48 8B 3C 24                    - mov rdi,[rsp]
P5R.exe+B9D55ED: 48 8D 64 24 08                 - lea rsp,[rsp+08]
P5R.exe+B9D55F2: 48 8B 34 24                    - mov rsi,[rsp]
P5R.exe+B9D55F6: 48 89 04 24                    - mov [rsp],rax
P5R.exe+B9D55FA: 48 8D 05 88 98 51 F9           - lea rax,[P5R.exe+4EEEE89]
P5R.exe+B9D5601: 48 87 04 24                    - xchg [rsp],rax
P5R.exe+B9D5605: C3                             - ret 
P5R.exe+B9D5606: 66 2E 0F 1F 84 00 00 00 00 00  - nop word ptr cs:[rax+rax+00000000]
P5R.exe+B9D5610: 0F B7 C1                       - movzx eax,cx
P5R.exe+B9D5613: 48 8D 0D 4A 82 FA F6           - lea rcx,[P5R.exe+297D864]
// ---------- INJECTING HERE ----------
P5R.exe+B9D561A: 0F B6 04 08                    - movzx eax,byte ptr [rax+rcx]
// ---------- DONE INJECTING  ----------
P5R.exe+B9D561E: C3                             - ret 
P5R.exe+B9D561F: 89 80 6A E7 0F 1F              - mov [rax+1F0FE76A],eax
P5R.exe+B9D5625: 44 00 00                       - add [rax],r8l
P5R.exe+B9D5628: 43 6F                          - outsd 
P5R.exe+B9D562A: 6E                             - outsb 
P5R.exe+B9D562B: 74 65                          - je P5R.exe+B9D5692
P5R.exe+B9D562D: 6E                             - outsb 
P5R.exe+B9D562E: 74 2D                          - je P5R.exe+B9D565D
P5R.exe+B9D5630: 54                             - push rsp
P5R.exe+B9D5631: 79 70                          - jns P5R.exe+B9D56A3
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>151</ID>
              <Description>"To active: menu -&gt; items"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>150</ID>
              <Description>"Set min. count"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>Byte</VariableType>
              <Address>i_min_items</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>152</ID>
              <Description>"Fill item even not get?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF0080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_refill_item_even_zero</Address>
              <CheatEntries>
                <CheatEntry>
                  <ID>153</ID>
                  <Description>"Warning: contains garbage if choose "Yes""</Description>
                  <Color>8000FF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>139</ID>
          <Description>"Get social stats"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_SOCAL_STATS,$process,41 0F B7 14 36) // should be unique
alloc(newmem,$1000,INJECT_GET_SOCAL_STATS)

label(code)
label(return)
label(i_base_social_stats)

newmem:
  cmp qword ptr [i_base_social_stats], 0
  jne code

  push rax
  lea rax, [r14+rsi]
  mov [i_base_social_stats], rax
  pop rax

code:
  movzx edx,word ptr [r14+rsi]
  jmp return
align 10 cc
  i_base_social_stats:
  dq 0

INJECT_GET_SOCAL_STATS:
  jmp newmem
return:
registersymbol(INJECT_GET_SOCAL_STATS)
registersymbol(i_base_social_stats)

[DISABLE]

INJECT_GET_SOCAL_STATS:
  db 41 0F B7 14 36

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+D36B70

P5R.exe+D36B4F: 48 89 7C 24 20        - mov [rsp+20],rdi
P5R.exe+D36B54: 41 56                 - push r14
P5R.exe+D36B56: 48 83 EC 20           - sub rsp,20
P5R.exe+D36B5A: 33 ED                 - xor ebp,ebp
P5R.exe+D36B5C: 4C 8D 35 59 7F C5 01  - lea r14,[P5R.exe+298EABC]
P5R.exe+D36B63: 0F B7 FD              - movzx edi,bp
P5R.exe+D36B66: 4C 2B F1              - sub r14,rcx
P5R.exe+D36B69: 48 8B D9              - mov rbx,rcx
P5R.exe+D36B6C: 48 8B F1              - mov rsi,rcx
P5R.exe+D36B6F: 90                    - nop 
// ---------- INJECTING HERE ----------
P5R.exe+D36B70: 41 0F B7 14 36        - movzx edx,word ptr [r14+rsi]
// ---------- DONE INJECTING  ----------
P5R.exe+D36B75: 0F B7 CF              - movzx ecx,di
P5R.exe+D36B78: E8 43 8C 09 00        - call P5R.exe+DCF7C0
P5R.exe+D36B7D: 66 FF C7              - inc di
P5R.exe+D36B80: 66 89 06              - mov [rsi],ax
P5R.exe+D36B83: 48 8D 76 02           - lea rsi,[rsi+02]
P5R.exe+D36B87: 66 83 FF 05           - cmp di,05
P5R.exe+D36B8B: 7C E3                 - jl P5R.exe+D36B70
P5R.exe+D36B8D: 48 8B 74 24 40        - mov rsi,[rsp+40]
P5R.exe+D36B92: 48 8B 7C 24 48        - mov rdi,[rsp+48]
P5R.exe+D36B97: 89 6B 0C              - mov [rbx+0C],ebp
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>141</ID>
              <Description>"To active: main menu -&gt; status"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>140</ID>
              <Description>"Knowledge / 知識"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_social_stats</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>142</ID>
              <Description>"Kindness / 優しさ"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_social_stats</Address>
              <Offsets>
                <Offset>2</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>143</ID>
              <Description>"Proficiency / 器用さ"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_social_stats</Address>
              <Offsets>
                <Offset>4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>144</ID>
              <Description>"Guts / 度胸"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_social_stats</Address>
              <Offsets>
                <Offset>6</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>145</ID>
              <Description>"Charm / 魅力"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_social_stats</Address>
              <Offsets>
                <Offset>8</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>171</ID>
          <Description>"Social pt multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SOCIAL_MUL,$process,66 03 4C AC 20) // should be unique
alloc(newmem,$1000,INJECT_SOCIAL_MUL)

label(code)
label(return)
label(vf_social_exp_mul)

newmem:
  push rax

  xor rax, rax

  mov ax, [rsp+rbp*4+20]

  cvtsi2ss xmm15, eax
  vmovss xmm14, [vf_social_exp_mul]
  vmulss xmm15, xmm15, xmm14
  vcvtss2si eax, xmm15

  mov [rsp+rbp*4+20], ax

  pop rax

code:
  add cx,[rsp+rbp*4+20]
  jmp return
align 10 cc
  vf_social_exp_mul:
  dd (float)1.5

INJECT_SOCIAL_MUL:
  jmp newmem
return:
registersymbol(INJECT_SOCIAL_MUL)
registersymbol(vf_social_exp_mul)

[DISABLE]

INJECT_SOCIAL_MUL:
  db 66 03 4C AC 20

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+1689D47

P5R.exe+1689D25: 84 C0                       - test al,al
P5R.exe+1689D27: 74 05                       - je P5R.exe+1689D2E
P5R.exe+1689D29: F3 41 0F 59 F0              - mulss xmm6,xmm8
P5R.exe+1689D2E: 48 0F BF C6                 - movsx rax,si
P5R.exe+1689D32: FF C6                       - inc esi
P5R.exe+1689D34: 66 0F 6E C3                 - movd xmm0,ebx
P5R.exe+1689D38: 0F 5B C0                    - cvtdq2ps xmm0,xmm0
P5R.exe+1689D3B: F3 0F 59 C6                 - mulss xmm0,xmm6
P5R.exe+1689D3F: F3 0F 2C C8                 - cvttss2si ecx,xmm0
P5R.exe+1689D43: 89 4C AC 34                 - mov [rsp+rbp*4+34],ecx
// ---------- INJECTING HERE ----------
P5R.exe+1689D47: 66 03 4C AC 20              - add cx,[rsp+rbp*4+20]
// ---------- DONE INJECTING  ----------
P5R.exe+1689D4C: 66 41 89 8C 44 BC EA 98 02  - mov [r12+rax*2+0298EABC],cx
P5R.exe+1689D55: 83 FE 05                    - cmp esi,05
P5R.exe+1689D58: 0F 8C 52 FD FF FF           - jl P5R.exe+1689AB0
P5R.exe+1689D5E: BA 10 00 00 00              - mov edx,00000010
P5R.exe+1689D63: B9 E0 01 00 00              - mov ecx,000001E0
P5R.exe+1689D68: E8 03 1F F1 FE              - call P5R.exe+59BC70
P5R.exe+1689D6D: 44 0F 28 4C 24 50           - movaps xmm9,[rsp+50]
P5R.exe+1689D73: 48 8B E8                    - mov rbp,rax
P5R.exe+1689D76: 48 8B 05 73 B5 30 01        - mov rax,[P5R.exe+29952F0]
P5R.exe+1689D7D: 44 0F 28 44 24 60           - movaps xmm8,[rsp+60]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>172</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>Float</VariableType>
              <Address>vf_social_exp_mul</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>165</ID>
          <Description>"Buy item - no money decrease"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-22
  Author : bbfox@https://opencheattables.com

}

[ENABLE]

//aobscanmodule(INJECT,P5R.exe,0D * * * * 2B C8 79 04 8B CE) // should be unique
aobscanmodule(INJECT_BUY_ITEM,$process,2B C8 ?? ?? 8B CE EB 0A B8 7F 96 98 00 3B C8 0F 4F C8 89 0D ?? ?? ?? ?? 44 0F BF AF 04 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_BUY_ITEM)
alloc(INJECT_BUY_ITEMo,$10)

label(code)
label(return)

INJECT_BUY_ITEMo:
  readmem(INJECT_BUY_ITEM, 10)

newmem:
  mov eax, 0

code:
  sub ecx,eax
  reassemble(INJECT_BUY_ITEM+2)
  //jns P5R.exe+FD15E2
  mov ecx,esi
  jmp return

INJECT_BUY_ITEM:
  jmp newmem
  nop
return:
registersymbol(INJECT_BUY_ITEM)
registersymbol(INJECT_BUY_ITEMo)

[DISABLE]

//INJECT_BUY_ITEM:
//  db 2B C8 79 04 8B CE
INJECT_BUY_ITEM:
  readmem(INJECT_BUY_ITEMo, 10)

unregistersymbol(*)
dealloc(newmem)
dealloc(INJECT_BUY_ITEMo)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+FD15DA

P5R.exe+FD15A6: 48 63 C1                 - movsxd  rax,ecx
P5R.exe+FD15A9: 89 4C 24 60              - mov [rsp+60],ecx
P5R.exe+FD15AD: 48 8D 0C C0              - lea rcx,[rax+rax*8]
P5R.exe+FD15B1: 48 8B 87 88 00 00 00     - mov rax,[rdi+00000088]
P5R.exe+FD15B8: 81 0F 00 00 40 00        - or [rdi],00400000
P5R.exe+FD15BE: 44 88 A7 B7 09 00 00     - mov [rdi+000009B7],r12l
P5R.exe+FD15C5: 4C 8D 3C 88              - lea r15,[rax+rcx*4]
P5R.exe+FD15C9: 0F BF 87 04 02 00 00     - movsx eax,word ptr [rdi+00000204]
P5R.exe+FD15D0: 41 0F AF 07              - imul eax,[r15]
P5R.exe+FD15D4: 8B 0D 02 D3 9A 01        - mov ecx,[money_base]
// ---------- INJECTING HERE ----------
P5R.exe+FD15DA: 2B C8                    - sub ecx,eax
// ---------- DONE INJECTING  ----------
P5R.exe+FD15DC: 79 04                    - jns P5R.exe+FD15E2
P5R.exe+FD15DE: 8B CE                    - mov ecx,esi
P5R.exe+FD15E0: EB 0A                    - jmp P5R.exe+FD15EC
P5R.exe+FD15E2: B8 7F 96 98 00           - mov eax,0098967F
P5R.exe+FD15E7: 3B C8                    - cmp ecx,eax
P5R.exe+FD15E9: 0F 4F C8                 - cmovg ecx,eax
P5R.exe+FD15EC: 89 0D EA D2 9A 01        - mov [money_base],ecx
P5R.exe+FD15F2: 44 0F BF AF 04 02 00 00  - movsx r13d,word ptr [rdi+00000204]
P5R.exe+FD15FA: 0F B7 4F 08              - movzx ecx,word ptr [rdi+08]
P5R.exe+FD15FE: 45 0F AF 2F              - imul r13d,[r15]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>166</ID>
          <Description>"Sell item in sell menu - price multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SELL_ITEM,$process,0F B6 C3 0F AF C8 03) // should be unique
alloc(newmem,$1000,INJECT_SELL_ITEM)

label(code)
label(return)
label(vf_item_sell_mul)

newmem:
  cvtsi2ss xmm15, ecx
  vmovss xmm14, [vf_item_sell_mul]
  vmulss xmm15, xmm15, xmm14
  vcvtss2si ecx, xmm15

code:
  movzx eax,bl
  imul ecx,eax
  jmp return
align 10 cc
  vf_item_sell_mul:
  dd (float)1.5


INJECT_SELL_ITEM:
  jmp newmem
  nop
return:
registersymbol(INJECT_SELL_ITEM)
registersymbol(vf_item_sell_mul)

[DISABLE]

INJECT_SELL_ITEM:
  db 0F B6 C3 0F AF C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+FD5F46

P5R.exe+FD5F2D: CC                 - int 3 
P5R.exe+FD5F2E: CC                 - int 3 
P5R.exe+FD5F2F: CC                 - int 3 
P5R.exe+FD5F30: 48 89 5C 24 08     - mov [rsp+08],rbx
P5R.exe+FD5F35: 57                 - push rdi
P5R.exe+FD5F36: 48 83 EC 20        - sub rsp,20
P5R.exe+FD5F3A: 41 0F B6 D8        - movzx ebx,r8l
P5R.exe+FD5F3E: 0F B7 FA           - movzx edi,dx
P5R.exe+FD5F41: 45 84 C0           - test r8l,r8l
P5R.exe+FD5F44: 74 06              - je P5R.exe+FD5F4C
// ---------- INJECTING HERE ----------
P5R.exe+FD5F46: 0F B6 C3           - movzx eax,bl
// ---------- DONE INJECTING  ----------
P5R.exe+FD5F49: 0F AF C8           - imul ecx,eax
P5R.exe+FD5F4C: 03 0D 8A 89 9A 01  - add ecx,[money_base]
P5R.exe+FD5F52: B8 7F 96 98 00     - mov eax,0098967F
P5R.exe+FD5F57: 3B C8              - cmp ecx,eax
P5R.exe+FD5F59: 0F 4F C8           - cmovg ecx,eax
P5R.exe+FD5F5C: 85 C9              - test ecx,ecx
P5R.exe+FD5F5E: 79 04              - jns P5R.exe+FD5F64
P5R.exe+FD5F60: 33 C9              - xor ecx,ecx
P5R.exe+FD5F62: EB 05              - jmp P5R.exe+FD5F69
P5R.exe+FD5F64: 3B C8              - cmp ecx,eax
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>167</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>Float</VariableType>
              <Address>vf_item_sell_mul</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>168</ID>
          <Description>"Sell item after buy equip multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SELL_WHEN_BUY_MUL,$process,03 97 0C 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_SELL_WHEN_BUY_MUL)

label(code)
label(return)
label(vf_sell_and_buy_multi)

newmem:
  push rax
  mov eax, [rdi+0000020C]
  cvtsi2ss xmm15, eax
  vmovss xmm14, [vf_sell_and_buy_multi]
  vmulss xmm15, xmm15, xmm14
  vcvtss2si eax, xmm15
  mov [rdi+0000020C], eax
  pop rax

code:
  add edx,[rdi+0000020C]
  jmp return
align 10 cc
  vf_sell_and_buy_multi:
  dd (float)1.5

INJECT_SELL_WHEN_BUY_MUL:
  jmp newmem
  nop
return:
registersymbol(INJECT_SELL_WHEN_BUY_MUL)
registersymbol(vf_sell_and_buy_multi)

[DISABLE]

INJECT_SELL_WHEN_BUY_MUL:
  db 03 97 0C 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+FCF37F

P5R.exe+FCF34B: E8 90 A5 E0 FF        - call P5R.exe+DD98E0
P5R.exe+FCF350: 48 8B CF              - mov rcx,rdi
P5R.exe+FCF353: E8 48 26 00 00        - call P5R.exe+FD19A0
P5R.exe+FCF358: E9 49 01 00 00        - jmp P5R.exe+FCF4A6
P5R.exe+FCF35D: 40 88 77 52           - mov [rdi+52],sil
P5R.exe+FCF361: 89 B7 AC 09 00 00     - mov [rdi+000009AC],esi
P5R.exe+FCF367: 66 39 AF 02 02 00 00  - cmp [rdi+00000202],bp
P5R.exe+FCF36E: 0F 85 B2 00 00 00     - jne P5R.exe+FCF426
P5R.exe+FCF374: 8B 15 62 F5 9A 01     - mov edx,[money_base]
P5R.exe+FCF37A: B8 7F 96 98 00        - mov eax,0098967F
// ---------- INJECTING HERE ----------
P5R.exe+FCF37F: 03 97 0C 02 00 00     - add edx,[rdi+0000020C]
// ---------- DONE INJECTING  ----------
P5R.exe+FCF385: 3B D0                 - cmp edx,eax
P5R.exe+FCF387: 0F 4F D0              - cmovg edx,eax
P5R.exe+FCF38A: 85 D2                 - test edx,edx
P5R.exe+FCF38C: 78 07                 - js P5R.exe+FCF395
P5R.exe+FCF38E: 3B D0                 - cmp edx,eax
P5R.exe+FCF390: 0F 4F D0              - cmovg edx,eax
P5R.exe+FCF393: 8B F2                 - mov esi,edx
P5R.exe+FCF395: 0F B7 C3              - movzx eax,bx
P5R.exe+FCF398: 89 35 3E F5 9A 01     - mov [money_base],esi
P5R.exe+FCF39E: 66 C1 E8 0C           - shr ax,0C
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>169</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>Float</VariableType>
              <Address>vf_sell_and_buy_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>195</ID>
          <Description>"Set existing Confidants (コープ) Rank &amp; Pt"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : P5R.exe
  Version: 
  Date   : 2022-10-23
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_EXISTING_Confidant,$process,44 0F B7 40 06 33) // should be unique
alloc(newmem,$1000,INJECT_EXISTING_Confidant)

label(code)
label(return)
label(i_min_conf_pt)
label(i_min_conf_lv)
label(is_conf_set_on)

newmem:
  cmp dword ptr [is_conf_set_on], 1
  jne code

  push r15
  xor r15, r15

  mov r15w, word ptr [rax+06]
  cmp r15w, word ptr [i_min_conf_lv]
  jae chk_next
  mov r15w, word ptr [i_min_conf_lv]
  mov word ptr [rax+06], r15w

chk_next:
  mov r15w, word ptr [rax+08]
  cmp r15w, word ptr [i_min_conf_pt]
  jae endp
  mov r15w, word ptr [i_min_conf_pt]
  mov word ptr [rax+08], r15w

endp:
  pop r15


code:
  movzx r8d,word ptr [rax+06]
  jmp return
align 10 cc
  is_conf_set_on:
  dd 0
  i_min_conf_pt:
  dw 0
  i_min_conf_lv:
  dw 1

INJECT_EXISTING_Confidant:
  jmp newmem
return:
registersymbol(INJECT_EXISTING_Confidant)
registersymbol(i_min_conf_pt)
registersymbol(i_min_conf_lv)
registersymbol(is_conf_set_on)

[DISABLE]

INJECT_EXISTING_Confidant:
  db 44 0F B7 40 06

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: P5R.exe+C533A1

P5R.exe+C53385: 33 D2                       - xor edx,edx
P5R.exe+C53387: 66 44 39 48 04              - cmp [rax+04],r9w
P5R.exe+C5338C: 74 13                       - je P5R.exe+C533A1
P5R.exe+C5338E: 48 83 C0 10                 - add rax,10
P5R.exe+C53392: FF C2                       - inc edx
P5R.exe+C53394: 83 FA 18                    - cmp edx,18
P5R.exe+C53397: 7C EE                       - jl P5R.exe+C53387
P5R.exe+C53399: 33 D2                       - xor edx,edx
P5R.exe+C5339B: 44 0F B7 C2                 - movzx r8d,dx
P5R.exe+C5339F: EB 07                       - jmp P5R.exe+C533A8
// ---------- INJECTING HERE ----------
P5R.exe+C533A1: 44 0F B7 40 06              - movzx r8d,word ptr [rax+06]
// ---------- DONE INJECTING  ----------
P5R.exe+C533A6: 33 D2                       - xor edx,edx
P5R.exe+C533A8: 66 46 89 84 DE 0C 07 00 00  - mov [rsi+r11*8+0000070C],r8w
P5R.exe+C533B1: 66 41 83 F8 0A              - cmp r8w,0A
P5R.exe+C533B6: 75 15                       - jne P5R.exe+C533CD
P5R.exe+C533B8: 49 8D 42 4B                 - lea rax,[r10+4B]
P5R.exe+C533BC: 48 8D 04 40                 - lea rax,[rax+rax*2]
P5R.exe+C533C0: C7 44 C6 08 01 00 00 00     - mov [rsi+rax*8+08],00000001
P5R.exe+C533C8: E9 B0 00 00 00              - jmp P5R.exe+C5347D
P5R.exe+C533CD: 48 8B C1                    - mov rax,rcx
P5R.exe+C533D0: 66 44 39 48 04              - cmp [rax+04],r9w
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>196</ID>
              <Description>"To active: Menu -&gt;Cooperation"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>197</ID>
              <Description>"Is ON?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF0080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_conf_set_on</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>198</ID>
              <Description>"Min. Rank (1-9)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_min_conf_lv</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>199</ID>
              <Description>"Min. pt"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_min_conf_pt</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>146</ID>
          <Description>"_WIP"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>72</ID>
              <Description>"Money"</Description>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>P5R.exe+297E8DC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>147</ID>
              <Description>"Technical rank"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>P5R.exe+297F270</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>163</ID>
              <Description>"Confidants (7)"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>160</ID>
                  <Description>"Ann Takamaki Confidants ID"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>2 Bytes</VariableType>
                  <Address>P5R.exe+298E95A</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>161</ID>
                  <Description>"Level"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>2 Bytes</VariableType>
                  <Address>P5R.exe+298E95C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>162</ID>
                  <Description>"Points"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>2 Bytes</VariableType>
                  <Address>P5R.exe+298E95E</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>74</ID>
              <Description>"Joker EXP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>p5r.exe+297B42c</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>75</ID>
              <Description>"Persona 1 EXP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>P5R.exe+297B45C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>76</ID>
              <Description>"Persona 2 EXP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>P5R.exe+297B48C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>164</ID>
              <Description>"Persona 3 EXP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>P5R.exe+297B4BC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>173</ID>
              <Description>"Persona 4 EXP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>P5R.exe+297B4EC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>84</ID>
              <Description>"Security Level"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>Byte</VariableType>
              <Address>P5R.exe+297F12C</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>154</ID>
      <Description>"Persona 5 Royal  /  https://opencheattables.com  /  CE 7.4+"</Description>
      <Color>400080</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>money_base</Name>
      <Address>14297E8DC</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>joker_exp_base</Name>
      <Address>14297B42C</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>security_lv_base</Name>
      <Address>14297F12C</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
</CheatTable>
