<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <Files>
    <License.txt Encoding="Ascii85">#eLmw8%dJxUJo$uP/Jf;Wo@5Are_k+Z}$7O,r-F^R,8K6%Ooo*+1A}5tslu.-}jU:dtPpy/ir.d]Bzo6XLb+8u56K2nURt4A73Wd_NEc+;Cca5UD,G6xBn}4E{O%#EuVIMc6NE5^rPB3OP}I@rf.*mo0+}CHS}$.v*hBMFL(1T^CaoMv]?eN(2N8m+IKiu5AgrToy}r@]H:l$YulPCyBpS3xyi1{jjcPIm0f1CZEJ0wZD]ucZu[j#?3u^wb/MVaF_Ex@U1Uwavu+adtcwnWyfp3S=!rx=Z+}0IzUlh8cMq-E@yP-:.FmLeTiC9As%==:P1c+w@!ST8X2*h_nXsbS/C_^hM%wI5^bVy5PbtXW9Ete4Z%x/d^Q1]xT-Lp/3z[g}Fs-4#=YAd1Rh2#4wkw.Omv3k[%}NakuU@sPdr.mD@h)*ht:+fFp2Bc{4PXogDf:!PIvVLB]*GyWw_MZuJ?}d6;caFiQH{=^wIt7QA[_Le6aEZR%.8X#v?53S8Z67yN8JlBk0]CI;A.H{aR!WEADKXrG9vL*Gh]c6@Fa6tgD_gj@(PFCX.:)C=rfdC)25V%d/Hei]g44R/,XNe,qSHqFqCpU(,4Y9A!$h$+*5Gezt+Y51itq;)g;m},nHzKS,tu*,4XI=9)oHo2Sdi;WoNqA=US(SM%ZWNmWO.PyWM#nrfBWPmd_+3Xg3)LAk{P^PfxZ7m*wgaT:Zx3DxQf%+iTQdW3P#{jZlX^;a4aeLT6w%::8(VuA3J;ZqZ.(mKb8M;Slvid%Njn,t^+nycx9;9v*izY;7@m3rH;Ttg!VFTZExyOnDJ;n)njzssZy]:o52HpSsA%B,x!L+ml1s8^77z7sS2pKuT1u%c_[L7s^.JO@TV6V_IOb-xTE+0^N%uctjOG!/u6]fPU}2nK5r@Ec=am4.793H43[6vkTfzoZDGeAo^B;nIWv%,1Bb{[X8;8!F2Rp%}lP3v73=xtcioXA^cX{tDDGGA!@6tj0BusKC.H.UI-);6J}jtyvP/LE1sloN3z0Vtx^rJn!IBIk0MF+ztYJFbLomiqiPP23!Xo+M_anAvPIg]?3Q]dM5DKd=oZj-;vNJBvUoi@8S!mkO_rER;$4xuiQ^A+RPKnq(dNQN(rawn]$U$3Xxf)?%rSV3f%AC)Xt.l7!;D57[Z,hpepTP]ylU.fbIW1V%gdxCZpcKoWc%!wL(av?ZA8oNq.5#dTX;P9,KqB#]7bieyC(HayFZ$/qa6.jwe}-Tvb8!3lV6gWde5]ABoggs]p9%?NQzuGQK%{{G=V,@V/+Vpz[QX=rdQS!8JXXvw$0Gds@AlZ639ACK{lcu]Iv1F(7OHyZe{bnEQPEqGaGt/*sNWJ!]IQe,o7IW#z=dALRqkAk%pOy2pXPt^K)$a!/NDZQi0Z4xvqhQfiEXk!((Z0vuHlr:z7!a52TpH02M=U!/2hjo$M}jk#0ofB4((-o3X4rk^s]8$PFoVPfAk/tFVSXG?H%PBCe3RDEiXLieb{BKtwSU$!^?]8@(Dp7VJn#L)mEiFb/t1;R(^tdVI/+eW:0HLy!0[F^*(}+]_h[06Ubuj:PX2w)rf3jH8$b4Z*m]YdY(Gy}tL(E-yf*CBo;lHEn0zm(#(_Ac%3$2POvJ7bLu/V3D$45Mv2ZG{v=L@i+clH!.,9z_KwtgGkRI.qXz.ONpf!S#+h^Sh;p?@yL^TcYAd98m#PhL;Li715u#JOQ_@0?#1(D+WkcIPyg#,Du:3I*uA!TFzN(9T1b/K615[bJ:SQJg;B@0VU#)Hd36{t0}QY9Bo%ClX^3rGGEJwpy:a)}2sT)PpPRA{c[ddxyw3[qXe$ppf,WCW4w*oUpt-OF[8,wOmdq,]^4;Oio{f[6[NG0OP:x;h,Z8Mkne4$EA}zi:pxTq6lUXC?=]E!;]V}m:$$=6@dK=b48q$cKcN}HU@G#_QS#Zb.9u)8D.c%E9#b)H]%lr2a,2ZCZyS%-+T0O3AZytX8o9^2OE4wXg8JZvb,h70dF;*k-]_JOa2$c8IDa=.v=oP)pZZMyoVI(T#[twxdylZ/@mBjMOyeR7:a.C{V?}2!435lHDm+5I%BK#HwSrPp//2+0pL?!,eB6;f!VY7$GUh@?MO5L8of^ScvXij{XlE9+%t=tCD)2V3{X[gE8S6^Lnua_a(J]2$dKHMX1u!*VM6.Lv2;heEL+a=y{dRII$4/=if][zX@@oe,=Fb7sX^BbaC=^/jaA.lqSH^A{KCoU6KJ%kq[I;=ppv:[BH6b?gJ!qtcXHxibJu[rDJ6=,Jo2NGXZ.ESg^?=%)ql7$$dbZHgGgZw^wY0U_iJUo7q]Le*Mn{*]u:kO@rmAPU_rJeMx[OnN[5KZOg.iscVBHlys%?e8e9QzBFB}Bg0bF#-Ul*T]tW:NU)60D0v(Lk7Cswf(+$T7JN]m-vTO7VePY=5VrDN?PCYr^^3ts}7L8}z1ukN(Znfw!aNkkNPxn*%:k-y%FOpN,*rw3T/dP;2VG1l2%)?]RB(/F)RgZk4gcp]:g6#XOs]VoEilKd@O;xRu1QLySZwx2BPiH{Jl{*jms3LVERLt18,IV$!pnDgyKwHbP=vzYMk_w(qHYE2ofJXuiW6foMyU0!d#kviBTN*Wk5uVXf={VYdmt$YEB+*!O!.MfM!AZBLPHhlrd?9uj7A*C.Y[0+E.x#dVnH+}$d]0R=XsET]!C$i]*H5C==qy5=B@ra=%.#zeWx0ffk)WWu[KMrN%]:X7bPeOX*f:m.{d,DP[(#*Ry^(n_?wKYI_mnkfibNKbnushV:=;mk3Ir85:VnMLRerAE+k6j5a3stV2,cWh0Cvtit,4Hrr_p)8I:,85m%F-NhjUx_GRTS3malhA:=m9i19kz^}k=Lv)Afz5XCPKKnj9(+Wph2gX;sE}-g.gR.%a)*Y_,0wTyjlr[/ngT0HOD}a?y0Cy]A/9./]]cj7*GkT%fQk[rH}M.=[yMkciGs#zD;,Ed^[A%A?0Lxx%n,0eQHoCQ#x+0O^D7#_v[-aZ,;3^Zcq,.%#:7M1D2++SXzSb/1p+UV1jU@OdfGgZd!*bJ1C-k{#St{+,.MedB(75cbrK7+7Z6@t4cH8o?fEo{xKUB4IG87tOll/$1wInF;L^U]++ElD$b?/6Y-!cjxFO;0df.4$glpXz+g188;[{m$L.Rr^;s]vk4f9hhSueY$vZ?DX:3HvD^C43OQPTzyFWo+J%.vLs62t%A^5vt=k[:b[sg%Il:T:-,@w9%NFnOFcetk_{t9@!LttD6!OY35KPq3zxa_6K.kkp{_Bq;2Q6)8O-ArA86o;fQHo$?l]U[z{Ce7MM1L]P*MhN$#F2@+UC3z4Q0OR9p05$JI.$7Y^j%g#PiUTZ7Z^kkBlB1x{sheBNPgg#^#0o-Je8pFO;9=s56NW$=Pj#{0zMlcnOc7R:B+}Ro[Wm{)1NG2MJ]_:zqQ[x{21u[YJ@d4#qTH.Yby:,:33l//yjL+oxl/BxETgoVkI!C3nC:r#Mu1D2SsvIgqTcLHd-g71nqs5bP4YzUCsjys.d+(%w([l0rF$EP)rKw[wDK4@i%=py/94?kGtcbhQJU8lhT^c!+:Ib}(=VCm-cm0C(Ac$j9gLV=!Y8DuUro;bd3-FQ*^3D7Z-NehOatgIlEc1ogxqS?LKonp2tS^S@6}_j$vw?Q?L{#6*:PzTY=F#C4tYOjuD#+1d+Z9HWSerdsSRCBeD8zNc,H:MQ3O.;s;cTI=bu%sW1s99X3#sKEfk_O^R+)HqyWE$vWD$fdDiUjo*U0(^gqVh=-$u.s67D)]ndK]t1Y!}L]GBkawp.-q,MN:hc-U{pj29?],jQ:@;Ap?(s.Fb+CsiGyi3^m_Wj_bGZ%jwF;CR@:l6o#kqqREy#0_f;yqIOueeFa9B?3*#Qn]+YED/3tW70}V8[8%}h$phuvnWPo4=MoNy%sVZ2]DmC,//7-Py}T.376J}x,=c2hDht*(bZ8HhmzA$QbWPL;/v9%i^FeBPR=]n?AWZd3OmG7woyjPQH-{W[X+j;!25Awt=Y,hgY,:=Xocju;+j?0;L:SJZ3A?VOet,JgrF:%P=Bd.iKp%YPuIsZW8[]trU]{5d#/R1HJTwv)wk5fbzLa(4e3nCcB8![4[F}uGD?+*ku!{isBF2GFDjZ1ggbM?Xe;XPyYbyNm9wsa$fzkMR[x5PC=45uPVUn9mJ+F;:%k#7A(4wC;dGMPT9Vx);+)5ITdBs@!7@)JDw0(!r6kXcdbBH]OW_(mTVSz12V_!S,trp5sHvS#8O-L)ZyY2.s-HvW%Q7+I/1N#bN.]{D00_;VC3t)+c4w,;t{4zSNqxc/6[t^lb)xnYMb4.Dz88IQ+{oLov=ItP]c;E;tefP/@*b+#vz2Vut};{Y:{nf?OV2hfg!s1nrffIE9ytM]eU#6k=;%OLh#-3R[10KI#lEa9;Z92MM}$;c9M5.5j%_ydQJ!H(y#AgAt3(WW97o?_Lq!/$^m3O0+DU!U%?WDg==qeRf.$WHSFbLaVib?u;b2[PO[N#{a.798Yj_o3c=/9N5iz.aH0^M@S2tDj#266?#/:krSQOQZNawTdP=0}cSZrv*PpTXGJn_xX?bzowgg(nBZX;JFqbWdR7L?Et.p}U,vnyi5eoe2x^@K8iVvXv@=jpP5g07PgC#l+B.M!xt2G:3dHFN/WA=n38A,=jaA[l,,ELPi]v{v4JknFF@Vmi$%($;_wf?w*#C9x33i#4UNwcV5}Flvuy93.!IZ;:^I4HZYIo%BtGwi^N$h=]zL7W+-mJV.!V*cE6UOA8N1]a-sbY2^p!;@Xw)IL77ZBp2P3Hf(qC3fXtcOkLSO%uU_C-)6%uZGW{xn(^mFtySs,Ba8p,9!bFrk$e8GO9C75F1}}Z+a,({#6VJ+a?fxs;bg5n^x8j34nsnH3#{elf@G-twkY}?jp!Ryu%ENf*+i5HsEr$GA#=8,R;p@eY3PKRwW#7ElxN?YDKwQgn?!WYfLzVcA3{pf#HsiS0m=)OrVMr=a5$RO72_$pGM-q05by:e#e8v$o?!jNd#-5iH(jqTn2I4vkgvMY_HCH++2Wvd)S%b7j3dy7Za5qo7^4{D5d-cZfJvBy-@W7t-i3G=BmWvV:__G^ji!K/D_U8THgh=6sS*GkMJ;s:T1,g#!8Q4S!EN+J:A;8KXI2_MTLq;BzxF4r%$#!:D@*;w^tdD17!?LC#nXd=I4#vekD@En1K+wj(Z0}UoL;L8:8#Uk2hq*=6si_-.LqA1(w3?$AX$=[t^+A!o#KbW7s!VkSFvM%]_E$5(:;UZe+2rvd4LnS$d!EqS-sXL!BHh^W+yRKL?kk=L3k,HH.GHrb,(V.1LIq1iPw.NieMK,-Sb%YMy??w423X[Ofd@o=yLk88oLTj!4zJ{xhD])Po@y?U^VlK3%:/n@;=ly0%]R*LK$%tWt3(bT:V[MfTT1;ZRaOd7*o18NS8t=!hi{kWBf+EiB;Vy4+VsRtm52N=s;wU;Auolp_!FJlDJr!9ofk=%g/ni*^Q1UX*.q)dsdVJukV_*s4HgbePMw!8IG/6#e,J#Q}_y7A7!S{ont.bUTMp%um=a7NFg,hNefGy$07:@r5VJLP:Ya.MlR[HMA)]u[O2W1Dm4.6=9o7hV]u_5u.h4#8/o#ZH7H]6j7HOvwBfs=[vrk3*Ml:s(gSU{vMYVs)oq{O#0::Ws9PO.xTD[HMkU@2uPN^;A_i:}n#uSsnxb%;R32;6qE:_{YeFW.$wjuRISZTJLDrSbFDa/V#t52lWM/-MV5XGh2V$?HQ_upaDELs/[=GtPgkKyJHz?,2[F@3wT:4$*C!JZ.x!aRQlK8v:D2g;{w$3#)S:#3Vg_!XNk+tk)i/e:xv[#JCoe}+xAsl(e/8F8CII2}:S9TVv(C$0r0)zcv/hDPUx@xwyQ*RpIi@LlyD}49.U}Xg=EZdNgYW4yTU=EKo8nC$$ES_XK_8Hv}ci1BFt_e}EGdAcFpOGUam*_q8%w^.EA!XO-kuEM7xzO)+zNZx,wQwQ_38fe$l=W!EVgNK^(}=zX)79msyBZ$EoY6KUqi(/H[iJ?l-_z67.P6}bg:-)4C:urWkM:uvElrNAYqUqCiLYfHQlze[6*hr-Yd04%ow*5F%]Y[zK1gMWL3cj?RW*co#T+2^#)@TFMaa8fH/{bkc%=ELna4Eei=;Gs81cp:a.7o)vzC$OOXm]]m/niABW{8L6(_VBHk+y/ICRpykTNqg6p-Z$Op?CKTHKAn:kpYc?AJAaPUeQSi]sr#OZ0L:Z]Yazu_}:@D3[%/!euOqEQtGOV{!l1^9H,AW],82w5cceQ^]Hk2IlAiF#bcCST:Y(v^I3ijpi8I2QnIuC%FD@Nz+9XjJV:a8Zv*8QeyMEi7?7.r(Cy-:w:CSaV1D)[*H2gqRecdz}E3cIi72OMJ!VnGg?({QE54Hhmz_e6,v_v)D[h%1*TSbFC4]y;kN-5[-BMyrS_0JrT.z(;@VHqb=wM7bSK{.RnS48D.Y_ZM0U)0h9s,tdY]E_51rr,.wk.xE:kc4dDxRGFmRRaU}T*VZ)iYFL0NfhUBb,:mP{hBA/IY(Vbe?cc}%gTiW/GRwqg}xY_M2xwCU;r2eFNFxoV^21xM{?kh9Gv8HtK[5m@Y!xj]9}2{/o;V2Po_Fsm_/[?sMHhRZAA,9p7eVDTpwEJ5_4oQ=7{d;aSYUFtIho7W9^iR_=.mtO/]QBO^b?n)R{aFU8t$ddBJ[!9tEV$bIuCU0l/WyOFW5=lJ7a?xYRfV$wTTo2YakJ*]zg?P*^2ov]m*RAG{1)1fo/xyNtuOYB3Yt:8oC3?FhDx?x1ZB8-zu/o{+#R#M;6z@$:n)A5Dy+1BGE3Hw_JOG8bbw7qA?igAIa9kBVfIK4y#{h]45YAbDJa9zO2uh7s;Tx,FsGG]kU3BDPocO!];*])y5s:9]SV.@Ya0u^}?uN72.@;r3vR[aRXE)*yeUO@EJLVAuQh?AymGL9O-FC(X7{E3TJVq9LI-GJbAg}oqp%m+U5Nd}-hh_?nPiQ[x1B%KZ8i0@-MNmpmR]G$Jb-EOVrmqA7BjUGWQ@o%eSesbeBIViB)wag%$Ho=?vgdjdNkQY.XL{S5i_s4J:,4#[?mV9-KLOv@]2$DO*Q]m^Ay8wH?%wThvpX4#+?QYdZ8rb]XvfY*]+xJH4:?Nr%?$R_*KHLxnx}#0hd}:b1nPMWF$Geek!1/cg{a1nE9rI8TY;Pb0UFsGg/-C=Nkgihn9aBt:+,,7UYJf:WHH8Nt0!3^A(Z$CkTy_lE?!7q7aD?%42[#A)nZBzY}!M1bnpg]B%2A4h^Bg6Pv:861uGqFKa}A3I;@a6ECWBzW:n]Eg=tPT*iMfd_5FjYC*{B:JFOHurn1ni=OdjPO35y:H-q,J.]+;Ju.]iXEqP4wZ]kU)kzQ(P;)Sf2o?[+K1wq_0*}s2P*Sg1ZaK@xS;^e2_WU/o$#edx2zCZUEpqTzB0XntvDca49hj2/359ji11d9y!b]2O7/Ka.7.jajK#3}!K#]B=#mZF;F#VU7[G=hmu%.mQRB}RhAnGo]8L_/4Ij,dRSCoLRUDO,tlBEdBU3m7shs3P]OZ0_!8R/y?WM5H^IO}u@cwGEZR-[WRPHUJ84*foqbn%T5X+Tn-V+5NCfAU5ITHoHi8l5ozdj,[eOmwnAb.#pwtn$55mtI0=Gwev6r.r.@%TunrIc9##5iFT+.a02]V1QVmkm5E]j)Rkn%Hp,quBhZA3x%CIy]q1?ww62Vaa{)k7(]pqIS+=w6ED(:AA*f}Ctd9:dB8L^[EFR/cYAap(*.hlz,E*pA5gB@cP5V3A$#EbAX+9*M1_Lx{3PaAFg,sp-K,Cz67zG^_oMsMK[_{fp.3fx+01]u+ZRW]rTj_i;F*B4[e)GV!ws+=NaedUqah9DA*]sz:L3Dx^4m_dR?T8u;.5kT_cq6y@]IVeRnn:BA4s)K}7)K%.CqF/@qd1fk4AaET@m-?:MvsFhbjg*^Xbqg5kQe2jt9:DTthQ}M7o}#ULvp8:M?T}Q.=[4pP,y#T,=_$k/_l^IPz#xBLssh]Y.aQ,rC;I0,qpXzxF_adr3kYr9ID4A?;vfDD06q;xZ{}2)!ZQ.QD[.r7;Z)!K)}hsz{FBuIHo]o5:]56K5:qmpZ_RpLkusza^Y%ZMfq?U;97pwFQMne$52WaPWTFxLkZ9KS6:@}ZR,cv#/TxS/8nXX-k/j5*TMp*9xNP/i7Lg=;hk!JRvF}4L+Q9mDiCmdt+aHD;}Fdbs4!aEVTd]5q{pXK6mQPq^yk]nWWwiMiR-03dn*V6+5m;,b4xyPDTGIxIr[sb5q#f?:f);kg6pDspx,B2!1zm!g#6.1Hb6I1Ps2$SgS^d***g#31n#Kf_474{FO[KH]z53:CPc}v[8geIN_:T_2ZU$?L2D@n!Eyxjr{,g{[4ii3m6]MKs3eXW:P?rjnQt3Q5SqyQI;DX:%A-p/CfmYwj2I6AE88W?%g#KqZM0Qoe:fQtw@ngMflu4-*eAEjQ5-%BFSi:ON6*AO6zt6GnErq,#XAf!b_)jB7knX+d9hF/OxGBc!A:+21]5/+lPFSgrE]yu*HnsJR:q,cz%@$*Al28wWAB+4.snd190-0Uce:,Va?No{sLn_b8;3Mq@;YEF$!1m*Y[2+:+#V1VS%?)[V#GzAF=loNadaTfbjA}T?UEQtNU+{GkMRC](NT#KOc$P5[.C8vQ#*;NGu}@4YM,I511Z_GLS0VL9}T@$T!}nlIl#b*P)Qw43I5%q)LA0jKIfA(@nzHxJK+pGWARNdX%MB++EtbXX,m;vBLX#TQ@YZ@57]$J@irfn%}-E.7ZE9xdjzvHaggbPrph.9TlbpjqImvi(FCSaaeG3St5pGV3QX[6TyVZo*;2%E!4q.jn;$Al=o{G=oF0E;8sOwQxokuvY3=G51;#Fu3R$V;Fok67lgUJdaVv[Vb${}N(mZ,lzfDe-%.4E#TmTyqP9+##hT{s+Hk3.YeRtR.cI(m(G2TU{DvrH?3Y2;TIhme}?p[G9!:Vx[K{Ln:aReuzLoOCbI)r[XNa@irp[hwely6kCfnajjh?RZa1v-I:;1mg6R2D+O/jj2?.7Oywx0FY-c0,%+,GLbx13UN+p1qAj6e$r=#3koxfBHTvIB41S=$iU$DR;EePg!ciT;qajF/R5fCGkp1,x:r{$z^h(2?keq3+1P#w.]MGu1!r14SiB#,(R.uo-R$)u$bI^J;Cr3E*1i3^^EQoS8+0Z(cPc?AxbKB!94hLFjF0Kdf}l8)8?l)DU:U#%MBI=qEc2k0EM4]7mC%*+@yOB3:hTCH9vKsAc#KM:@y{kd^XH?D0/=wvhiqqT+R2%aq2Mx-p8hpUW#VGvOh^G?4yFokUMDjsolVLa=ERViojv].x;m_1U5N/MQ(0sBhht$eDW:Y^:^bj7xjiLrxAFwzh7k9AmQ3P$I04LFs@4sWI6o)H:5ZoWl9pRM]APY/-.ZZ#xp89,Ds2^]!l(dAcpM1REtWcpxs%2RUap36RjRmmPAnQsEL%xT?5LcF_!NFy:/te]CDn@Jf3iPa@@DE=mkBq;aPL:CTcGi@mKC5Dk9}DbA0-U2Gdu}3rRF=0470m+c5):FMaZc:fn{Dv[X/OSKY?h3U8.]qfaMtJ*W8e-p6M#/x(*$vm2zXz_mLC+Hjhsl1}L;[]@VQR/UHJt(i!spD2KgZ{D0%$QFe-/W8ZNqhNrv1LZqNGM5{-l!I(W6.}32B@Tv!Q=l!/U^?)ubk8tKOhS,87/:13iSWetXTidKU0VeU=9fzoHeH@A#HHoayBi}.rNRnFo18$?7)4:mtA7Bn8;nb7iw;MGofGMuAHU-Z4hueBC{kDySW+@2X1b6B0ar/JEp3SIlGB=geaJ:Ob2Wf2J-#/SdvLPrmRuO*1oi_=KAwrcXGnZMy5U#P!g+hBw[5/ECSkMY,ps*yX_e00;G=ZP=dY@Rd[JECKM[bLmnIx%rVlEMYiir)Xew:cH4)}9R4XFon{[Dp6Hd}RqpSxi4s4i.YXZaNHqk3N9w@)-7+PJ3TR1psIiN}^Uf7dQ.iEuZ9{Wh*2;py*d:l9eLBZq!aLCA0qo/$1nbsG!#(?b:t@jJ%%SB$lzR2$Ms;tZ)wpvPwP3sNFBy?yo]O,-I;+unPske@qcS},ni65Z;[=Xv4IKspys^Iv!.dp@VA1J-wb*yAD7u*FqCr@jlW8%H:Z73MM/O;w=Z4q5xQN@WcKX_xT+.I0ksM%:n0{UkQlnB++nmZ2y,rhoRNDw#/ry#FJ01+yQPjSoJvCMGMP;vM4;kUS%kxq[:1Frk5OFcyrx0U9iCub4nPQcF0EqWeTTzNg:?^]:{XH(5-x_;o0e8SgQb)cDKR-8_C?g,gvn@g2Ve#ApolN!SKrZFF5#DquDnc.$mKd,A}1ly^;l}mpyy@=EYl4LwR=.gqG2_;*:b$GepudtnJ0wVnv/qub-$R!S6iB[z.;Y_H!qLcmM3YRO}0FEu?MOLMLjLTBEj4?fJGadEO*lM;c,-m7cTJ2;o#W[8]1t379+@OMF(sZbAe{Z#g9^/c:.a2.R$APk53GCnD]JQcU/lv*R@R9)_c[O}d?tiM[r4^jJV/GO!@mHS,)kIb{zjRWsHy3RAi3OirT6[we$DM.TjRIU.K0/[ZI9o{SUQb93NTqKE6z,C}6fG;R0e;$!i#3pv=jUjT=Q:ijaz,nf2$PIXBzP}+paML{:#et1LAZ]7il-6Y*t$mRu}u3GYLZQuJRnoi?OzTf#Nz%/$zm9PqAXh5nru?aaF;Zd]0LW6GL66X;,DBAL.gQ9OnGu4wVjd5BIHZ}()D[!^$)sJ.r;5gz0qciztu*BO?*[mb%L;U:;.M(TzOIf+ULmDMssx.p-s-]%@hPLy)zB9C$%xKqr{Nc?.L)E+4v$3A5.ez^icQlyCM-*X]gL=Td3mY?J-!d1c4:yH7(EY$:##yv^eeCgU-lai-n6%([]J]XLtaN4lWy]Cp2BoC#uc_zS-5ynIeu6VmvUzVUgR,Zix%t^G}h(-_K1fuEX}^uvT_lUYtx#Qto/AFu=.MzwAbtxJa_sh0;c2:7fTa/:mk5+8yliyBJSea+T*DJKB/6OVb_p5bE3:b5TRDqZLMYA%TSF^;GGUoaN+SnD*?3a8H562[Xp=0g_Hh$b+g(2/qu/C0xrCZhV?wpR[}OTJNs-@m^C!zEc;1C_$!*]LRYsskqT[-jIuF=k6vVz5p#?XLvA22VqS54m3k?nS*{VTp3m]++gj#KejAE8RGfIV?sfx]]-vk6$9yu7!y}[n,Tb!(+psGD3,hGjPV[xQ@SxRnM:m?xLF11oC#;I/m,,@Uxtz![VMw#xDfOzhz;b;D2{/9o7!us_Ir2sK-[]o(Y49y*-:@(=YDq7%aw#e(SI#1MwYEf=)g=Jc]-i8(O;qjhkwc5o0fL#hws1tgToQ,^3WeX:IHTsd:FbY[*ef@-7zSKujJXw(j$FL%v:OPxr8s}BsX;_^@1zK%Rno}aLG]ekNTl+p=WXW;mM$%n/jhkzZyjQealy(eaAn8RWy4S#f;h?lS*RRw_r%1E==xU.0C?;MY/kw6zPdQ4[nw$jI]..H*zdu:8i7UBSsEtl6=i}@t-Mf.eIV*-p)MV;f(Q$UAZ5s-nd[85jfuDUaQ(bMcnBy*H8VH.Wc$IlkD=2HH7%RFup%zR8Mji5sYQK6#C{w5S[!$ZIIvN5*zlvvD+2gl-?8!8cT1HdD,K7]wZ,-Pp9Z[!*eXXagKjmM?RENF[B]_TvE;ch.0is79@([qoqc3d::2@A1^FA4iP7QC{M%6viaKYMf_s5e=H)EUqVuUR:b32DJH!P:ac4s^$ciaF1_^;J4;d*TDS]%T$!5Oc98yXf_R08!3e7:LFXqoJ{^*mAD@3AS[h,bDC:qD_931d4[($,89B7Et*TXzoAN@f:CUmT9Hh5Zfh}$0mxEOzF2BPeRoY.p]]6@BZAJx=$FKbQpTJo40/Ts[*8Dm1J96?yIbZpWKvp.Oen2=:i#q}_#mO,dJS2O1.}gOHhq5hwEaJ_JC6zD]DR4r)P}ap/#k)p$DZ+3u-xHG17}GC{QcgI5(+F/kIe;sH4YYD;i,iFTa5vv9O3Z.jT{/c!!{3mgl/OPZq6pYQ=9khdf9:Elo,95bpQpb!sL+MY@]hF)iC=_Z4BR2Grc{1;cC(.ACl8@9dP.g]xfB3f%r5w)l)+mJPG}P_c8%,7xIwrq[4kvgj^ci[N%HgMC[ny1-yrW]199rNqfYNEhEULc=r,-o!aXW@FoBDu=byJo7)oyf@[;e8w)#ig4Oa+lyOnF,TNi{,g?C)HT2F{qYkYr?L,-_y_F}VAyby(CqZo;z^ep#VX3#MlFNjeOSDs;J=uR;B#JO1$iKiI9-)PrSxJcAT#fFQ=d$,t[W},zn/}IAdxW8ZAJbudF-ri@QMRxgaxp;ST7jLeYdG;hApDq9Gae4EY-7W9muO1)lSJ_6S,2Zc+dUc7%vg@gi3wq^qdH0xoe7C(GZZX5h*x$D-cwFH5*lK(Ce*YJz]9/cqz58@)]sLkY[U]ujYI*B.BlXWj0Kb@sE$$yz%ZKdl^]S_@*pAT0_ANT[)GPR+arOA[[QPXX$L)7h;^Ira*y-9(Emu6=@55=6mk$p[2,gs2PlPY(%hk;0@?l5;DbL:{2sgKn,4YJRNRK[//}+xD;qZArH2)YL^pCCQbMa/%y]m{c8)42wk2f=0vvDCSxcqRvpv8Q,zq??^UI-(.3{XHL;ftXLEkW7*uOAkE9O5wz?qTf0xx]fCrPHQi#o4FZ59B}-/:0n{XTY^*cC}!FynI}!O1nr8)]+kP-YY9[A0C-a+Voz2?^+]t,/)d+miND_E{0wm%e%$u9:y7_y{!pOw;KhJKV1kI-M2{u9RgY]$qhtm]74Cw![77Lalic6547YNk-[,jU,$O8=pQ*Tu81)}.aE(@eucgWV*BUu=lyaWd$oFt%}3JByuJB#]RQT88De;m.l-O/Fy^;sv+K?w3UCTLc)r*H[,_MJ$q3K.%kpM/zqrn]hr8wF3jd,,NkT}!u7zDU542wFGJT,fWDDAEi}up!E(V^M0a3hhB1CiJvoXPEVg9LzX4kh5ERR:/$3?0e*4y,*c:};MLkwfhTU:g#xF.;d6L@CtdiX$kxw=@E!J1k3SNB)5@.nAEE;[nc=q{tYX1@s=Vpx^Puq*A159c]xL$-QLQ)nH*ZOjry_CGI;ZF#e##{-$:u2?NBK2n;9mGb9SM@K*MH2(d2e%AxPMd2m#VRDcqc5,2x75#{BJXj?y9iaUlJ{W5R?cVlbDpd^cMUX:-a-FYYr]1f$St@AeBZjmuQaK%Psf$z%B%.-k%!?l?f:e*}Mh:bQ5X:_.X#*8TrFGX-IA[nd6-%UopuT*AtBCfQO3Ng)b4b/X^7@W!kTN5jjqXkZ,}mj$MF#O+s^a:</License.txt>
    <OCTLogoFooter.lua Encoding="Ascii85">l},w}/2Df8YXYRdfu}wVVns/dyTt-Q5j(fvfU[{R7d-=%(:O?4p-F,H=YQUu?D4vj$,DcbIoRgRo8fTYaEAH(r%#^m+SZk$2VN0$hZ,kZQEyg_-3T-GOlEX-b/.aLo#6!_6QT4Uk@z2i2@O!fh1R9_c6ljE!qb9atqnxQLM_@ilx)#qX(RSB]D:c6o(2otzJ9rx()BUDh0sKf#Zo+^MtnFOLKD]?XqH/I15I4:B=NY#Wn-EWuE-cKh;5K(0m}dSMb1vW+l+HY8SlSM#*F$U:;:RPpti*_y*4%68f=x@@EFR36((F#gGk+OqEs-3OGP0W^j/^)nxmkDKuLylK^%2]uO(x;XMkZM#SGc{nGIq4obqf_t*s+2c,a)oaSF1N0sNV7:d#4yW,.]w51E*%1VKom*R-#WZy.${/7f*Ok.tkIiA;/@QHs?6gMJl-U1KL]xLHuW!X/bzW:o:ncI]avho)wKHJr+w.3SQ#g_nPgm:M_23l0tupz%GUOAZE?4TaWXwXc05bXjOn-_owwDWB56Oy,MBG#Dt2d4@=XL_dv0@o%Kg6mk[.5nNR!rVvirhk97B5u?pwVbWD%b2Gu8#Rduil*i!?1%+JQI_=L95sf)6dj1L+G-N3gYm:bV]py_%q5;/#g,?EDAnzrWZZDJ4gJ42lt:jqy3Asa8t{q7!bD^mth8QLk$-LRgzLBTfuRVsqdBKadtKAr/N8Mairo2K729o5!aN#_aLQ#9wtaqx;V!c#ItTh6n5H3rCC0d(ta.TF6EiCtFfu)oocAN:Qn,fv5z:*SSF^ucv0S!L2TvuAhdFFM$a^z8_echmwLZy06Puj4!fxk[XW2hHy-85/iMSWz[V]{8E9(m2%%buKiUsduyEYhwRGNQB.yKt01Q{x4t]!9dZUB/UG13G{;q=YMA,fKkpu3MPy5/{/cy2f-{b,3VmB%{ge=-jo{=Yvj)M{i6ICP(pqOt%[_RVg@)I!gKu/Idyn$@:W$4RQLmlmd#aQ4J0-6cQ=Ms({?BFVvLsC2Q*+hOn2l;u8J357:vO1FNrMOWBaYR/-rC5Zfmp@I%(q;@)GD+TUX8@a39vGoEK+JU0;^c)V$,x^*dfW8dFN3SmbdPyPA4-zWojJ21R6syXehg/VB/dkYT.e,#eog)F/rs*zI06F?7?2paCbp/W!/ub6$KN5OUMCwXtWQ/_*L9f(H]$$OFvZ$ICBzU:@2boO3zH54qHw;*+wQY$}C#-]4,Hr.YLT1)_;Kt4f#n,Wi-kNBUwHD7Os9Dy6[*sN!#b1ICD3U]#sfM]-#3u]JHFR@^dG2(VXKdXP}P/3-!gF5J^mB.8Z=@%.36Lc$^V[emUf9I-t0OkiTzt%IfABH/%8^@!,KJ07E94t58;.Y;WdbW8FICaC!,vVULUUFavfDC;=,Zr29/V?lfSqZtj?E(3X,3$x?4rm;D7yofWRJ}[^UA^Y$.$llN:NoJ}xzpJ.jg2U3!u$krwHW[tht4IshDnJcKS64tweybSOyX@1%r8*K.irv5*VFQyyxUFA)N_a2)6u3^.ZB6Kg1qM5Tee*CHv{%Mb9D8kvaWL0;HWa/^[zIE#0mP}+?WFarU)AUhj)[@rsKKP@.l{TYW/?VZkUDHkADC</OCTLogoFooter.lua>
    <OCTfooterlogo.png Encoding="Ascii85">Em^R!8[m-WQYgg:w79#wJH?3*AvhGLw73:xZpGbcaVhR?#U.4AOMv1U?{:,pyWC})H,PxYeRg*^ncSt*0^^]}s]8j]h}EGJ08B+%nNI*!LLB@D@fe0nTLB,)3U5%%l.vdruz#PQ9mR:o37VsVo)lkgj]#0C0Ayql!iA]:iXUZB[mRjE2;^R%-8Q)0%tlMsRocPM(eGl$?NbiLwlsCMw4n5]as5ImulP}jg544o0H6dY%1CK[Up}$D%,l)gyXz^p:cwc48LQ?N@Ovj)r#4(7/LvvA6u^5EI_YfDQZU5j8#Y)DytMEgW2TQ4wdb1p!@kMi,9QabpNIQy2ZdJz5eW(22V-n}=XDf/iha##0Pf8LLw(]Oe9tQk,;U2Uh22!w%8.-}1sylLr3fgC%S;]5^z^wB^/NEHXk$%-nHNX:yS8}9eDW@ES74IFP8JjnAVnd4wcQ/ngc@fr6Ofct=-!Nf!]DbA=lnV5u)I*4[2!otlj[w!ojphBF3fLk9,0E}I$sAQd!rj/KHSK_.BA4]J%BY:f@+%58ug$3cM76K2:sg_Z[C^4P_Nr]xKX8D$#%K[XTMv6a^OI+S?c5Y^IT=CcJMNezj8Lc@JaHIklIhgiw7iM-/R)EY#)]l@tl+H=Gt6rl*c]0(Td)8P]4^L;.c^!?Kzwf4P[O+p;2%OKv}[rLT$W%4tU9CoH?Uwr7;GpNl40i#fe.vTfi]SfNhI;22g?4RVel)]v)B.CrWXUq{ho1kLAWWheKM3!k2f_D,k!mi},3lfP@KOiv9+7Vr0S+$)qbY67rWv[Ub[[ftVu!3+53sgg_kSiN*Bq*8.=W#G,KOE8zmhYK;Ec%fAsiaT))Np^;k}plZa1KL2*16%O:$9g4ekf]Ie/TV$Z,=C#R^gy_JlhFRUwl!hNTIB*Tg^S5HOK#+q94oNh{0Lm/]Bc,5-,?/B;-M4o-lmonocq4%i23bY!^}+#Vk?R]#er:My=0*)8La5-HTwz8_k[,E+W!{+d;:m^520.MnTR:-UX1t?h,+dD/mnCMt(UpZBp?o{z;!.6{iXVYQ@33iUn!wP#OD!ZYA[#c@DRw2@?zZ;F(Aps4K*(k][c#V)J:mIx!-d)s*Lm3-)kcA$=B8%1@a9^G[jGHE.NIqNT^wT?[95.1VfaVgyCBPmB,?Js:}V,w!JSypOCSA=s+=22^@GV%%]b0%+8Ix2%s(4F=8M}4^}4{{aihk-+SA2ehV$!IL1.zdJDT{#(P[N{4sIE%a64FDDB5^w-ZwWJn7bC3q^^Q%PEK^ueeIx=#1CD,5:,X)!{l(ZeYUNKNI8kkTOukwUFTnicbe/jPd^NW%m^:(9wRj.(Ir0V1DY5L$3={}dDSypY4%X!j+(:o1pj_9ONbGAROQt113%:m,}{BWpdy@4tjN^+PeS[Ly5w(s6]Eb{6%joJes#76,MToYH.X!=zPc)F9zXqW;cb{dLik2(MQ[;y;8AQmZy[im)+ppGS/;bH^e.{:orc[6(/Tson#R/#?JJK1J)DFpyN5bz6c5Ep[}U.niYNc_K%n$E_HwC#%VMlByOvxgc#_Zy,CvkE+g#@b!yB8x+a;_-iIo]JPOd%ue!x(l;CwMZM,w8bv2*?VbOk5A4elLX9vRF3U^kGl@,Asl#*aeAc--wCqXkj(Q5Rq+KKV{{AYNfMkdWKrZ9eMkU*8A}$m%l,g;Q4#SS!e@rQMa!Q1Nt(n_ZX6l3JN.Z_gsVP[%W7kLMP0Im_je3e1YjVbw0n4IlpKLe^j#9)yUK7CJJiq^9,YQU*(fMwhBhkxu3-Xb3Uji(.u8hE(nZOIS!}$;-[Yk{eQtwlQ)1FhLj}!jvt8zZtz{deU].gY${BhhmY=J!9#:StmDIFFd[Mbq,{FU]me=d{6LP)4pQM(_m-TE(;cI(*mQct1(-sHk^)A$=-lD,8.{oc5}z7:z8W{Fm%C.j;dd8e^ep7LX_?AIT%*T7mBEH%oi[ulxKky$gh*LU8M=sg#2$^YeFhqh;=Sth;eXlzL0xIq0bK@3.LoiEr#Dk$wkSr2MD9MY{ea}^4,9$D[i!70ixs[I-px)=hg*iEq_ZdJGP7Mj;Q[?HwiQ-[6TO8^1.e_@F)max*^v3Tn,i%3*nc}YoCG(pPg?hx$]hHGMX$?8m,p3#Q;tP:c{:7ktV$iiggbPPft%$A*hooozFqvcI^,)G1+2*xZR0Kv=ZdKx4iue#fE:FAR$3An*dIdD?)E;zMwDznQh/KQ_2^bzb61MT]9heVqw:!BU1g=DXS%p6op5HSD-ZIThh*ZW6aE$166qzX%QODWI7GZOQ#rh8H%Zr(pTA_Z5ydmds9XBOi{,YqL:]mBE@FSn)^=WU?;z)j_of#1,,+SO;.b8)HRvdm2BbU%S-3Z,lH#G8!rS#R#w^-HBQ1m2S0Kqb5e39KIeQ-YBGM2F1K8ce,v!G3R#X/hDY3z91@XRRa:E6tEgx7I5nzk1ShI%96@d+ap^r9*hs#z({s.@fcKJHd^Pn[%9S!si.B!,P.*=Mpvv2:)eRtQSUae5%D3lS9t:T8M]yM.haXN.4*.P_3T}i.;{t%J8)yLEu!GdWvlc[hVom.%aV)W_sN,tw0C}rHlLN*hK:ikih1C]p(#e%G7-MV-?xVTBi9gN@cxZDCjBV#{5u{X16e74SsLc(,DjD$_+Z7;U6]97ePHOl237VT_5;3qxzn%/@p,f5IS0]KWF28#;=zg,c[+O[r]M[V4WiYB$;{@Y1/.9RPyH3f3-5pUG^tV{SdG4)0*Uxe+]h_$(r1:_{b44*m?[w%nBk*N8w]^%dK;V*7O0Dx?,].,0/Bq)8T,GY0=m*!j%:Ti!9_37-Xh[h?NKX%KODT%0zNm9HCN9SfCHbkzXXXHV;}w-Ea.8X3g3#h,sy,GCw9Va0aX2euvBIND6jtTARliQ+j{cqMg;7ZcVR-B0Vr{F,,{nxb]K*WyAlK]q+Hd1%qsFt2]^X?#Bo5ElZwfU3J_J}9oxUc5%8^;Od;3UM9i4B2jU=,Bxy]c81wULJ2)%fuI9t{8h/V=;eT@Jr%%NNDA4cv}qL.Dpyf5%Q.nOnfXW.OmK.VdPrsVH1[{sG?0jb$^)n%UvWA=:+R6POJX5$1gyH+[DZ=}EN*Y{aT;FCeZr$i6}dh5p*4]Qw,W)*#TfxqATe?%a]GV*gD:]uMhR0eCMuExaCa2f)d5iNg}(o*x9vZh0.Vywp.)pMo(P31$UB@c7K3=oP)^hqLyB;Le+QGx:UnTGJ@n$5X)d)sdIHDTsD5w_QZ-y?wrX$.#+ZJ7FO*xfR7$ARUI3Vpr/NdwU%#gn_c]uf2-nY{zQ+NEJi6f5(_hd_Z$fBOf+kQh)i8dLRd2PU,.Wp63F-zL.WrHQDws035{%(R8Zdr#u,:X3$V7XBKmULZPbdDB6$Cl}j-cRQWkpGlM4-O;u96Mc);QCiBqOpcsc_6$@JHLJAIoGa(h8h=@Z0,?pE?CsFY=,Vra?(O6mOam1-[tMCPUwUMh8#1R0N^bYu.Pk$Q.Dhnm@k+UZGHG1qC=x#0^^o8W^bta3j;N-mqJ?/e-03?gMY][$IjT:N.rTz4x1a#Kn-CrNMB*z+tBnuO0rK#+J{wU0]}atGLkHNj9z#?IJlh/0knQ/_5FmQyib:vsrvap0g4i5N9=zxmiY^N$FMi4UZ^qk2,XJHggQU#aTMI-54jj=feQ#TE%saSfydSWIN!4qMC+.R]q$b_:.6XpX5W4C0mqk9P*CtQ[bGXVk/1+D5xV[]4Xkj(#p)TqSrgnCy6{VX(m4I%=B}B-Lg^Q!ghl(b:!T-X-56ej8N]hUCING-a.n=w^ak)bLVcB0^?Jj_{@KYCJU+]u^#1+8G]mEvB?yGK=r[P.(16P?-p*xV2Mxzk1T[(6siIiNO.Hd%KuH1Ovb(Bj=)05F4.fxsRC,T9*?mJuJ#%AV#bL=f(brEdRg.2:G3ZihM=Tst4=u+as=7AgF4i/l6O_j(w!.g%NB$V)I=F,;.pDP2{Zgi6Q!=RVj+Ui[!p3SLi9b-;AzpmU*-$(Q#2w5U0cXFiAkMvA+c.,qgl$V(mCsVBrfKmVy4+S8Wb-wk$XMWzp,xY}#IW4_64kc9dd+^-RJ89Kxf:bEQu{+6CL(JK]n3Ad!30K^ZF7-S=c}zm+TRa};e#Af297JLE%So*]owVl+W?6rwD!T;oJFvB_oH=uT6o!+QVjSr^S:{9%5b?uV?!!xG/y5Sz7Yr1SsBPn7G;TQi2qe)$=C6)WyDARQ/^LHZUFF%ArBfeD:Y0qDF1n):SOE4-nBymfOg0Mts]ieUd%eh)%=B/H5_mt.j)SBH%/0EvL$@c7u6usS[N8i+E{z/e(0U39E{%Wj8*n=[N1NLc5Bgh)NI#Xjm_}*O)cK+5iHUc;7!7l?X0ZfBx}tjl./?mjB:nIaWo2c59N@KbY+sX[Z$Dpw8A$DI.syBmxt%Sp9QWbDyYKw2(il@ZzIh9U,.bPl?3HPluLZagFVvryBsc%[!UB@xmJofk]E{UW)#5W58dP[69p9e;oOx=!ti0%%f=p.-e:_[lNv$oMAD^h;nJ}qEa605GOP9Mw;PE*ef.}DSF)TbykAjarf46OI+tp!3oP@vsV2E[5Yvy}Q;vTy++:6TeCc)})0qNKd42fMVErpTEAExc_4#wu5YkMdM)5hQ]9P8=4-7W1zt[t]*[vT]fr#/d8d$3Cok)Ca9QIup}PF]TY*a,pxd^mV,buw-bxip4wT$l(@X+Hm:4[ub)kl^;eJwvFpGl,w/eKscge%g#@_8./WisIdS+)*(I8FEd.(N0r59WgCtm,E59;b_sW/cVbt2tQiR*;?9/AL_)S^pRt!v/U2;Ok[}oABv_zvn0VlY1s?!Z,@ZUWny9J*BQlZ;R+FvFrXpwVKK(E+8-Dp-2a#LRnNCrkLMg]-QeHm-+]VO1jw=X%/nGqX!hES7i_DfWAH-fF1jlA@ShG^L59Sj72Ff)YSx}eO^;d[-C?SE2Y?)Xo,3ua6*{DM3.rXi=.xM{d%.!9Ev27hXR{-*PyOi8%=EitZwOiQh8/U)Ci0Nf/m8W.@l^@V,]d.;xMw/iqCDtd9ns?*PGQr?@avgjx%m}kfNRhdkt@yLL2Jm-)rlFTx}ks!seOk(%7GsmBXj((K*Z}mHTMmHw#Tpdw;i6qyWSVu^lE3/irilDeSH@)O/^GpI{9i(EHqVF+?ZV3]/V^TYi/i/F45UhmR#^xKZcB{;c7@@7F$ILPWaB*U-#A4K90:$4X(S(J$0$_T71y:2E$sspj7=_37*6fL0zRwKtUTr58YJVbfa:{*rn}#lso1Cj(M%;.3Rw][py*8d9nozHi_0j%clWG,t$eYfhqkhW0l-.evAVRg2RdW^50N6*5]36ivkz,F1FLjk^z_nqvg%[+[Ybyw9XqZ*l{KbT_.j+Z3A5O0!qgJ+xXgq!_Va/t%ua{6$XQgHRc8%VG_/f*h0cNIp4R?j6qPhP*rgzJw2?$]B=I3?PYaD.S@ivIxd%P3c:h@#9rKTNVpK{FbXRjtNz}k4.@;D:fP}=Z7rGT.,!_sYXrfkvtVqeb;mmsjV9Fxn7I.?Xh{6@b/=-@:=hyrUm}FiChSo:7jxZRtrP9YBM;vP:n;IvL*xz:r;0[m4[{}6x0=Z[)F_[+@Fj5r*C3HHx(8f}4tx9JLP}ud*?Eb/dD{W$*B+J,$_^!$Vob3JIt:[,yv6xJUO-pv7-Xy-u5UstKQJ{^l1AAaGj;};J6^3-1r{JAe_BNv;4]W4u?qo9WnQp*G.ruh=t)$j4METw$XZ*!Z7p_Mc^v)NQ2XO=x#-LN(h[zJdEx79WOQ0v0r7$_Os9.KnAKGV(FvYL%tlUN$jZ+xQK**;sZ/+oE2L#{5nv)iwyMy^e_r+b#n)6vWSCv7^eUi6zEiN%xT;6+.}A+8,90fS*lfdtR}Va]/Wp$s2m.=DqX?KlK8;HOJI-M0w:xolfz@Kg,+ED_VX?_5W+vEQm%11OGu}KJ2%O{SgVxSs^Nfkzs!{]GL)/m[E[4)tlgtxES(q!Czex1shZCazsmFP0?6!^Z0YgdQ/WODXk-X8*1$wiPn47zCT-?:Iy{}-zH-+FZNLlp3V);F-V/RB/dze7D.?CYiQ%fVSfcKFRWlaY/x6/iv%b8+hXyb8Dw7u68+BPomPt5q@t[U67LW.Y_Hca$xx^#z-dlA16yq(vbCPC}H1l6AG:JE)^0S#O}N4Cnn$vflaS.j45,P=}s/pG}ma:v=KsF^:50ih3G@yHaFZ%Tp[xHf}2r+H1I/S;h]$(2zdx%NrmH?B@6v;D1/lJrg=w0fNP/c@OU8UAcMSs*u^$$O$AoOL{-VOrv;.;7t.iaAp.TJI^$u8J)-QkU8lAoKDY+RP;fxSi%++{K1fkAll1cvaz01FcH=y!.BUQnMd(ek+z?D]pa3tHtpImL49ik2sKxa8jlAiUr%mRnuQl0{M7i18VJH,v+S6$KRNxkW*p3wgLoj=Kgiz(UbFfUB+!n5nir}B@n-L7Ebm8P_1J7x4vhOGv?w1RV7Is-R4!ra4z0ia/}TmTRVfk^RS_dcr]xQ;vcodoJGWI=lsFXZ}OAkVku8X!8SD$li_x7%+,]rKX/so792Cj+;^%Sa5J5}/mKh+fsx,5-;dj:!$0Zx,ww8oiA]0{nM?IW*ck2j,V{V^[?g^xf$v.Tt4e3CsQ.:bT$Cn5_Gny^XcQeqB$wK2!($sNw}m.^w+5d;P}YvDyqnHo],^{G9paU/^e*KA$$@/$c1q/=KiXEYBb6?p4:.g(!lHT08{d*z.:2A_Uzgps%baNF3ZC5TyAJ8GofMkBw]b8M]ksH}%.R0t%QKjinYF^6Q[)zbHK}+J3p(db2Ld=E(uKY,+_55]+BigZ*[!XU/=Z1ES$kBcm0j9{yV}CTu.kjR70FzCdR+vQ-;({i-NMqcp}V/C7F*npx{hUIYwK?7;;].?Nc6WH%f3vI]N_W[/UB;7bhW9J$!dsr]QiHJI}^H#iCpP(m+fo[umXTt^#6$8m]eYS7@p6K?,),a[hO_fz(DjSGe0uSuIv^34pQ.)e6c4tE3T6*ufA5GWcOS1Omj_0;ohmi=g@6fE.4Yt^XpvjjU=#jVR?N87V!t6?MABnTp1dHYeUcMDs!oe--C0FU6IGAl4OVSWx@b]Ri{;T87pn4#:z_2!]8#LwW2P#KLXjkGIDXERX+*8OdYg-P7W^QXKa/.B8u_0F{.9vxi:a]1cNo[2Bn$.:Y![,ZIOHf74F,+:nd=CT}3}H$lVbhX#/JhuOZ$V.T-$98%_44sDlDm+H6W,ACRQO^qP0R)lG7:OjAaKV44E-+Pc}-s^4K0pX)e{%B:3-RDQJOAZH}sRzH*hd678bNo6.$8*Uk(#XoXW;oi[h1JHsX?+}1f*:]aF)Dy.E,)f6O0_)tb!%^!YEhhte@V(zrCay*7Z^)9-U3nm;4ZdU}jcibFg[4_n!]i.RJzh,HU*Bd2HoSEJ/=9].FliQ5oA#kR],-;IrJu{C%BxZ*L4S(=Pt]MptA90=DSEQ9qwjw^.cY-d(1L.pw_xXs@yFE9b6RVud[_FLQ+Vf)9*MR..TwXh!k,BEV.rlN]R9?(D0o;0%+/^+3_1*w;]4m=3$y7;+4uNrZ]*6n]F=*II,e.7IRHU.;*=82U:fDY1ENe^-Lc5imP@R++tzznilWQPmVY+];,2?m*%N_KkqJnGk0]RnSgaoOP2_9o3;El?A(%NqtW(OJ0Vn08.#rHK2g(]fY%8vD$_P1{42hWU=4,V?(TCCxgp1S31n,mHXyVb.y%EYt!Yjo;?:sjbOTWTC6q+]tjkLqu1l/tbzUvsni=09$,UxDb)uEyo1[tdoLM4IswMWtOJFIIU7{V$7d+g(NclbcH?UEb3g;Ee-813c6CTj1,M}?R]@Uuz_KbNZ_(2,8w(PI%SlF/yP%J]Awjqr:rgVFHlIYBQzT6_P^P8,@:8eWWO:AO$yEs,HRQ(tbL;LHu$SO)QQ$2wI)!!QY}+6(G+dYls5SE%IWRYKQm$0K3_Ru}G4Z*_!WZ%z!1BqfR+lbSaCGD_h^!}Pn1pEj?;x2L(OJrcRo(hC4:(7qc+3x$V@8sm;*-^@*7]ErLS=0/_jq#2Tt.mOODul+;aV/Q7w*^o0k8!-XE=m9[DjE,wyw;I$#CCwJ.5tA*R6vzJ{kg4)WrqGLtWpkMixc..aj:+E!c0E+AQdTz4y)RX-CXHQFr7Vr=Aj!Dhv[G$jaXFginM/+x:DyVh#}0/VgAs){S=!UmVc+nxhzhc9T@t_tmDyQyB[:6!O]/YQcU+8kkyD3u800gsgC1vc=eBKi:xG?k;b?.h:4%i6Yot/:MNLT$s)y2Jg3;p{7Otd)wOXcAnro}TG)zcYFfiHH40h0Dzk1/JMevWwx.4/K^)A)$8W+Esu_g%6lf6)W!bI+*D,7GM0/d;ByT}([kJLbB,kYY}u)D*mr)d;..uXT/6D!STmJhfFZr-?QBdSJ^.da1^uPL!t+YuV$-O9=)1yy]jd#y_GWDr+{ys-;jJyLeTabY.53.)XZ-XIIo)n]^qU2c0H:3Z:ZLw=NyOh:k7W;R(96KqnIIfZ:,$x1xh.J;/3QwDeZ,34?j2V-DlYEMxRy3YWY#BQNT,8;APK;V:NzhGshN[%[*x}ck#OGc;-grbk56nnM5H{WmeKUE#Nm.qNq*^5!liJYl##D#kf^Zl3]8F36f[kwcN]?,vD[faBb6SNj-4;y$V:EbZ1pjqmvyVXb!$1!c=Jf^o9MJk=xLOkY@9pPhAmW+F=/M;R#9E;;*5Uoo)^9LF)xDO7nE1VE$6m,?Lo9wBqmPG0UVf_M*@8mfga.5Mt:!,TdQ]C)bP^YYP#BHVvRFggT*2+k:b+h4Y.^#F!lKrIVe_=RGM=GxUFezqdHh)r?4r9-2ALX:E94qPs1X;!yFDCs[HV,j!F3HJU[e]8k5el(T+RI+*?-%uN9Inql2F^DH_3Zmoz*#v^GT:mbeF=(:$-#^ueLMWN2Z;urrt[rMunL?3!]X3VBl0B=;r3ZuLWr-=fY--3J=ezWNqHH2s*QRYH35Uc:aUvM3e6bMZ78ukes}%TUywurB[Y3SPbUba:-K7?K4dL2Xu8NJ](}^$%vcl@y3ANCG7-xMB=y!#T,fU7f!pu-gNN05(#3G!LI4wW!W-HjLzZS1!x0HVvDyEgSkVMLiLM+pPY70xS2wcFhH+hwUijUc5pYc5d[0=a]s5{dDM@MFSIIVBD+2?k,*sjO;sAb:NLzHXu^Lux#HtYWOPM{%n$KpFyAi4)DGsLIQ#5UJO6o/Yv{auqv%5#.m/+rzU4dQP4@C;011ls=;itqEX:09+ak$u/w@_);#LVUL9a,F;)U?BMD!*I:H,x,!ST91C[v=qcuW{q)Ua7;P=K1N7uhZ!*$VX@rIEI#MSfpw;TxIEDy$tmu-KX:3$!WYB?lM.,qboZp[E%U-jeeLjlN9j%zO^?T-^NsIfNA4werPh%$Bo0vXIu2!6CWZMRoBYwtVN5cLC4{RwO[6GT9:k[9D7)(=5GuTry[-1yu9z2*FQteQUiT!2KQj+kY46$8miEkQG0h+#S/TX]5E3;t.t38kJ6[B,(CAQWWx0]!CoE4z0nO@+#tHzpmL.IGSkIoQvQyP+XAuSG;o(1b^X=L9j(C=Nk.3Ce$RzLBm2;DBOmm{ySftNRWE376F}}^%hZ{rxXeC(iXoIr)+3p/R.$pVM@(Q]Oi!GuzZII7T)@TQ.[dQyP4Lo3ms3$?i1ch-Jnep^ZJTQ*YmF9IvTm%-TYh9QuVbb1+{aW0/?!sX,n:tS-+,16NhJB*CZOUkd%q/Hy{jWi[RWxa,3M?)*:_6,^?s(.zrRmCO/P]fNY(CXG1/67iCDbve80{,$@NJmEA,v6p!Ub}c;f,8Dd7zJxLL:bge9+1:Fb847=PaT/3K]EMg$pJ6WwYs?wX,_l+l!aXnfK(0%YU/P0C)rxp=)a=m!xccgMOaUPe.VpLisZ;Q(;f+ylUlXV]{l+QBe89m]s?X9c^ESUC!@O9N8kAQLHghMJ!sp;(p@/Pj386Q}KdwtIAM3%8ls+Go{)hza+0w{@VpH28sBv3x[pzzvg5EM6?w)j)K4fS[t4Gm_Gd4J^]ebk2(5aj9=M*FgWyrCNLnAe.W36)DJ{vjrUY*NUJ5JzdgWBAc0Zxryl]@nX-et4#@S)GNV8l@Jj@Hm)=6P}6eW,%9U$6J=_3d6gcad(SJs+-q!Nd^D+0+z)w,+]Hd{fNxIx84{-lspx77Co%@J6u]3.nf^!c?mp6=7oeV2vV-.2azCkfbE4fj])C}qho+1IyG/hzLxIK9vkY]?CZ-6Q/hF,_YooRg9@zrxet-5sU6TEsA1h_4L#3bioqoEKbsKLQ7%{U+iAg4}l#+O/;=@jzT0](!4xr0}SKn{i7;L!^)qGLUR{O/Jb2OLm9,HxL:+_?OCSGabD+nkQj7C}duP6H?!h6RnoL9)jvgTXQ5k?w:Fubj2z^otpQudo!Oqxa+Z,]@25()F0^?:R+0LxfP;oO/Umg}Xj5glsrL/rvq.X/X?$}:Zl?EC%++$HJJ8CuO%P-.n4spKCm1c4tleuhSR!c?e5@N)VGS).YXwrtuesKms]*[jBEjDXPG4$,U,=8RfFkuN:LBoHIlQ5JG#@a]hJr0G-Z9%j@?Fd(K+eSgKsG[I[Zk)$6/=:G66%Te{OhZJoSFzK.eUx$+Mr2fW4(zHU[.cQd]Pqz!;mu38rH!#J]J,#NAI(t=[OPnnmHC!c:AI!^?P7u-7ffav6U3Ne}aL[R*g($FT$^tMCy:bBKNY[2JRFa,G.{kpF:AxGs=(W_.?7ckmgD}Ffv23cA!{YU[q;VDHSZuzsqcG.nSRQCBEgr[Au_OX4YEYQYM]JFU,Bqh44PmoJlO0xEju;$(Nnsz:.0vCg3)@=6j@0z*V_TCMkYgnX7X^+v!9GEfL+UMh](YtyL89sP[to0gTPb-jFX64p6z5cd)-EWd7fU/CmstK.vIj56n.C8kLw,LPP_XGqdZB@wAmIXn$#+??uFi6d%ULZkQq;dROv)f7,rrN6E4Bwk@PTuP8ynPbeSFp!pHk84cVNp:lM9yZ5+b_PTX)cs,+,{r17Z^BsDyitLzQJXLf+_9cU6ZzqO(:{#f1,;0h5EZ@x*:}#{jmXHhl{E#Sv,[]$Rg^bS}ecSlYah[k7-Wg?vAW?nc(9x}W9TRrv3}=Ik:mZ5.Eh7#6=H$lFCly2[@PzYm)XA1tS#7NQ:n5y4=CKc1oHR+XY,c21d@RDZ)ur{c2oA$%}h9e8pr-uufdZ,}0,zT{0yz_A4{gRzF25u3)BtWdHK(i6NhsOEkGG}Vd}wgT/1/+^[NbBFUTp{pJf.2gsT2{}nhCnZ^B41s{$D%-(oTjM9uHi6Da-OAUT^HmV3g]h6hG=;j#=6]R#dVx-raq!nsfqtggqUSDzC^A^??8Eslzu$N[LeaS?nN8H.(@C%-:-2F^%Ts;@f0^FTO]va9p;TU!i6Id4wcE}*ARbjx]s,zWg}GgfjT01qYL:PxL0!uL5:Suip6k]$z=Ea2b9kMqbRdxpDfQ7mmNFuGkH4TC#?vZ)qkqMupMHltLLup6HkRL9ajMr5HY,#kZpS-BGo?adt-NBiSk^HehG!Zac;-*o+00$10#4qU@S$vXUeE4^DDhYnzxQXZLbD+:/rrR^y_i%n;d6{Z$sq_h*q3T5Vr0t)J05H?Hfqn)AWS#x[NQCACRE;t]Qekk[7kes59Dc=-B@1Tn/jWC9XK5#hvtmpgBm+[5D0WeHGo%-T1May7%Y7QU[nsR.^/7X3.z?eE-EOfx8dr}L-z]J(+fDXz}gny]g=nOi6Z#*uO7VK*$la^VwX;sjJN{R7wLI[HJIn4N3MGzHdE}V=8VW[#aL:!6W6Jyb8RbwHhoDm#0n7CSa_zjR+X79K2j^)IlCTld^x8QIZnfZ4^q/1vo1Myk!1Svx/u18yX,-K.V]SR.MB[dv/b}9veqzJA6TKjhhxxtH$bYHyjJ01Jvnp3(h)%py}qxZ4sr37AZAVxp1cFzJh7k8vuOWr(abI,^?zNHw^:t@9[!3G(:vhtqOyd!._QMip@rkprfZj3;^edvHCxK]gFfXoPKYmE!fFD+6o-3PsO$:y4_M+wCktwAfd:,1vH?ghle{^W+abV=Jx+y^zDss3LZf@F-VaJ*Bv[:b6l,2%?wFy=d}t[F;Op_sEyoXB.8:M%ITT4bMBa]*-tr)gG30m=zp-4jCHA,dOy84HB37UBvAvH96-%]S?rYIqftR1)^b/h+]iSs7i^2(ftqfu$3nlS.rwC_%@=Y^yDNdNwKU4d)DQ?/Oh+Rv%iKy7+7]z*Ro83_daMC67P,WEfEW}jwFMA.[9gevR5]kBFI_14L#OC!yMMX2.C__vLr9@!(0GD=M1SJN-u(L807Sr#$dH%g0rYNf[Q}ALp?c#e</OCTfooterlogo.png>
  </Files>
  <CheatEntries>
    <CheatEntry>
      <ID>10</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>247</ID>
      <Description>"Enable (enable twice: 1st: waiting for IL2CPP to complete, then enable again)"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end;if process==nil then ShowMessage('Process is not selected.')elseif readInteger(process)==0 then ShowMessage('Process cannot be opened.')else if monopipe~=nil and monopipe.ProcessID~=getOpenedProcessID()then monopipe.destroy()monopipe=nil end;if monopipe==nil then LaunchMonoDataCollector()end end;thetick=0;Timer1=createTimer()Timer1.Interval=60000;Timer1.OnTimer=function(a)thetick=thetick+1;if thetick==1440 then addOCTFooter(true)end end

{$asm}
define(PlayerControllerManagedUpdateProc,"PlayerController.ManagedUpdate")
define(PlayerControllerDealDamageToPlayerProc,"PlayerController.DealDamageToPlayer")
define(PlayerControllerHealPlayerProc,"PlayerController.HealPlayer")
define(SkillTalentUIElementUpdateTalentProc,"SkillTalentUIElement.UpdateTalent")
define(PlayerControllerAddSkillProc,"PlayerController.AddSkill")
define(EntityUtilityGetDamageInfoProc,"EntityUtility.GetDamageInfo")
define(AttackPlayerClientSystemRegisterPlayerHitProc,"AttackPlayerClientSystem.RegisterPlayerHit")
define(PlayerStateWalkUpdateProc,"PlayerState.Walk.Update")
define(PlayerStateFishingUpdateMiniGameProc,"PlayerState.Fishing.UpdateMiniGame")
define(PlayerControllerReduceDurabilityOfHeldEquipmentProc,"PlayerController.ReduceDurabilityOfHeldEquipment")
define(PlayerControllerReduceDurabilityOfEquipmentProc,"PlayerController.ReduceDurabilityOfEquipment")
define(SaveManagerAddSkillValueProc,"SaveManager.AddSkillValue")
define(InventoryHandlerGetExistingAmountOfObjectProc,"InventoryHandler.GetExistingAmountOfObject")

registersymbol(PlayerControllerManagedUpdateProc)
registersymbol(PlayerControllerDealDamageToPlayerProc)
registersymbol(PlayerControllerHealPlayerProc)
registersymbol(SkillTalentUIElementUpdateTalentProc)
registersymbol(PlayerControllerAddSkillProc)
registersymbol(EntityUtilityGetDamageInfoProc)
registersymbol(AttackPlayerClientSystemRegisterPlayerHitProc)
registersymbol(PlayerStateWalkUpdateProc)
registersymbol(PlayerStateFishingUpdateMiniGameProc)
registersymbol(PlayerControllerReduceDurabilityOfHeldEquipmentProc)
registersymbol(PlayerControllerReduceDurabilityOfEquipmentProc)
registersymbol(SaveManagerAddSkillValueProc)
registersymbol(InventoryHandlerGetExistingAmountOfObjectProc)


[DISABLE]
{$lua}
if syntaxcheck then return end;if not syntaxcheck and monopipe then monopipe=nil,monopipe.Destroy()end;Timer1.Destroy()

{$asm}
unregistersymbol(*)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>24</ID>
          <Description>"Food never below #"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-10
  Author : bbfox @https://opencheattables.org/
}

[ENABLE]

aobscanmodule(INJECT_FOOD_DEC,lib_burst_generated.dll,41 89 14 24 41 C7 44 24 10 00 00 00 00 4D) // should be unique
alloc(newmem,$1000,INJECT_FOOD_DEC)

label(code)
label(return)
label(i_food_min)

newmem:
  cmp edx, [i_food_min]
  jge code
  mov edx, [i_food_min]
  inc edx

code:
  mov [r12],edx
  mov [r12+10],00000000
  jmp return

align 10 cc
  i_food_min:
  dd #95

INJECT_FOOD_DEC:
  jmp newmem
  nop 8
return:
registersymbol(i_food_min)
registersymbol(INJECT_FOOD_DEC)

[DISABLE]

INJECT_FOOD_DEC:
  db 41 89 14 24 41 C7 44 24 10 00 00 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.dll+9049E6

lib_burst_generated.dll+9049C4: C4 C1 78 2E CF              - vucomiss xmm1,xmm15
lib_burst_generated.dll+9049C9: 76 28                       - jna lib_burst_generated.dll+9049F3
lib_burst_generated.dll+9049CB: 41 8B 2C 24                 - mov ebp,[r12]
lib_burst_generated.dll+9049CF: FF CD                       - dec ebp
lib_burst_generated.dll+9049D1: 83 FD 65                    - cmp ebp,65
lib_burst_generated.dll+9049D4: BA 64 00 00 00              - mov edx,00000064
lib_burst_generated.dll+9049D9: 0F 4D EA                    - cmovge ebp,edx
lib_burst_generated.dll+9049DC: 89 EA                       - mov edx,ebp
lib_burst_generated.dll+9049DE: C1 FA 1F                    - sar edx,1F
lib_burst_generated.dll+9049E1: C4 E2 68 F2 D5              - andn edx,edx,ebp
// ---------- INJECTING HERE ----------
lib_burst_generated.dll+9049E6: 41 89 14 24                 - mov [r12],edx
// ---------- DONE INJECTING  ----------
lib_burst_generated.dll+9049EA: 41 C7 44 24 10 00 00 00 00  - mov [r12+10],00000000
lib_burst_generated.dll+9049F3: 4D 89 EF                    - mov r15,r13
lib_burst_generated.dll+9049F6: 4C 0F AF 7C 24 60           - imul r15,[rsp+60]
lib_burst_generated.dll+9049FC: C5 FA 11 44 0F 04           - vmovss [rdi+rcx+04],xmm0
lib_burst_generated.dll+904A02: C4 E3 79 17 44 0F 08 01     - vextractps [rdi+rcx+08],xmm0,xmm0,01
lib_burst_generated.dll+904A0A: C4 E3 79 17 44 0F 0C 02     - vextractps [rdi+rcx+0C],xmm0,xmm0,02
lib_burst_generated.dll+904A12: 8B 0C 0F                    - mov ecx,[rdi+rcx]
lib_burst_generated.dll+904A15: 83 F9 18                    - cmp ecx,18
lib_burst_generated.dll+904A18: 7E 36                       - jle lib_burst_generated.dll+904A50
lib_burst_generated.dll+904A1A: 8B 50 08                    - mov edx,[rax+08]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>178</ID>
              <Description>"Min. number"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_food_min</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Split item set # (turn on when needed, require stack # of 3 or more)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-10
  Author : bbfox @https://opencheattables.org/
}

[ENABLE]
aobscanregion(INJECT_ITEM_SPLIT_DEST,lib_burst_generated.dll+770fe1, lib_burst_generated.dll+983531, 47 89 44 3E 04) // should be unique
alloc(newmem,$1000,INJECT_ITEM_SPLIT_DEST)

label(code)
label(return)
label(i_dest_item_addr)
label(i_min_value)

newmem:
  push rax
  lea rax, [r14+r15+04]
  mov [i_dest_item_addr], rax
  pop rax

  cmp r8d, [i_min_value]
  jge code
  cmp r8d, 1
  jle code
  mov r8d, [i_min_value]

code:
  mov [r14+r15+04],r8d
  jmp return

align 10 cc
  i_dest_item_addr:
  dq 0
  i_min_value:
  dd #995
  i_min_safe_value:
  dd 1


INJECT_ITEM_SPLIT_DEST:
  jmp newmem
return:

registersymbol(i_dest_item_addr)
registersymbol(i_min_value)
registersymbol(INJECT_ITEM_SPLIT_DEST)

[DISABLE]

INJECT_ITEM_SPLIT_DEST:
  db 47 89 44 3E 04

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.dll+880FE1

lib_burst_generated.dll+880FBF: 89 DD           - mov ebp,ebx
lib_burst_generated.dll+880FC1: 0F 44 EA        - cmove ebp,edx
lib_burst_generated.dll+880FC4: 41 89 F9        - mov r9d,edi
lib_burst_generated.dll+880FC7: 8B 7C 24 58     - mov edi,[rsp+58]
lib_burst_generated.dll+880FCB: 0F 44 FA        - cmove edi,edx
lib_burst_generated.dll+880FCE: 48 8B 54 24 60  - mov rdx,[rsp+60]
lib_burst_generated.dll+880FD3: 48 8B 12        - mov rdx,[rdx]
lib_burst_generated.dll+880FD6: 48 85 D2        - test rdx,rdx
lib_burst_generated.dll+880FD9: 4C 0F 45 F2     - cmovne r14,rdx
lib_burst_generated.dll+880FDD: 43 89 0C 3E     - mov [r14+r15],ecx
// ---------- INJECTING HERE ----------
lib_burst_generated.dll+880FE1: 47 89 44 3E 04  - mov [r14+r15+04],r8d
// ---------- DONE INJECTING  ----------
lib_burst_generated.dll+880FE6: 43 89 6C 3E 08  - mov [r14+r15+08],ebp
lib_burst_generated.dll+880FEB: 43 89 7C 3E 0C  - mov [r14+r15+0C],edi
lib_burst_generated.dll+880FF0: 48 8B 08        - mov rcx,[rax]
lib_burst_generated.dll+880FF3: 48 83 C0 10     - add rax,10
lib_burst_generated.dll+880FF7: 48 85 C9        - test rcx,rcx
lib_burst_generated.dll+880FFA: 48 0F 45 C1     - cmovne rax,rcx
lib_burst_generated.dll+880FFE: 42 89 34 20     - mov [rax+r12],esi
lib_burst_generated.dll+881002: 46 89 4C 20 04  - mov [rax+r12+04],r9d
lib_burst_generated.dll+881007: 42 89 5C 20 08  - mov [rax+r12+08],ebx
lib_burst_generated.dll+88100C: 8B 4C 24 54     - mov ecx,[rsp+54]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>3</ID>
              <Description>"Min. value"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_min_value</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>4</ID>
              <Description>"Destination address"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_dest_item_addr</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>260</ID>
          <Description>"Freeze durability of held equip."</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-02
  Author :
}

[ENABLE]

//aobscanmodule(INJECT_HELD_EQUIPMENT,GameAssembly.dll,22 EA FF CC CC CC CC CC 48 89 5C 24 10) // should be unique
aobscanregion(INJECT_HELD_EQUIPMENT,PlayerControllerReduceDurabilityOfHeldEquipmentProc,PlayerControllerReduceDurabilityOfHeldEquipmentProc+10,48 89 5C 24 18) // should be unique
alloc(newmem,$1000,INJECT_HELD_EQUIPMENT)

label(code)
label(return)

newmem:
  ret

code:
  //mov [rsp+10],rbx
  jmp return

INJECT_HELD_EQUIPMENT:
  jmp newmem
return:
registersymbol(INJECT_HELD_EQUIPMENT)

[DISABLE]

INJECT_HELD_EQUIPMENT:
  db 48 89 5C 24 18

unregistersymbol(INJECT_HELD_EQUIPMENT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: PlayerControllerReduceDurabilityOfHeldEquipmentProc

GameAssembly.dll+C5B386: CC                    - int 3
GameAssembly.dll+C5B387: CC                    - int 3
GameAssembly.dll+C5B388: CC                    - int 3
GameAssembly.dll+C5B389: CC                    - int 3
GameAssembly.dll+C5B38A: CC                    - int 3
GameAssembly.dll+C5B38B: CC                    - int 3
GameAssembly.dll+C5B38C: CC                    - int 3
GameAssembly.dll+C5B38D: CC                    - int 3
GameAssembly.dll+C5B38E: CC                    - int 3
GameAssembly.dll+C5B38F: CC                    - int 3
// ---------- INJECTING HERE ----------
PlayerControllerReduceDurabilityOfHeldEquipmentProc: 48 89 5C 24 18        - mov [rsp+18],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+C5B395: 48 89 74 24 20        - mov [rsp+20],rsi
GameAssembly.dll+C5B39A: 57                    - push rdi
GameAssembly.dll+C5B39B: 48 83 EC 40           - sub rsp,40
GameAssembly.dll+C5B39F: 80 3D D0 AC 70 03 00  - cmp byte ptr [GameAssembly.dll+4366076],00
GameAssembly.dll+C5B3A6: 48 8B F9              - mov rdi,rcx
GameAssembly.dll+C5B3A9: 75 2B                 - jne GameAssembly.dll+C5B3D6
GameAssembly.dll+C5B3AB: 48 8D 0D 66 2A 52 03  - lea rcx,[GameAssembly.dll+417DE18]
GameAssembly.dll+C5B3B2: E8 79 0E 99 FF        - call GameAssembly.dll+5EC230
GameAssembly.dll+C5B3B7: 48 8D 0D 62 17 4D 03  - lea rcx,[GameAssembly.dll+412CB20]
GameAssembly.dll+C5B3BE: E8 6D 0E 99 FF        - call GameAssembly.dll+5EC230
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>261</ID>
          <Description>"Freeze durability of equips except held one"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-02
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscanmodule(INJECT_REDUCE_DUR_EQUIPMENT,GameAssembly.dll,EA FF CC CC CC CC CC CC CC CC CC 48 89 5C 24 10) // should be unique
aobscanregion(INJECT_REDUCE_DUR_EQUIPMENT,PlayerControllerReduceDurabilityOfEquipmentProc,PlayerControllerReduceDurabilityOfEquipmentProc+A,48 89 5C 24 18) // should be unique


alloc(newmem,$1000,INJECT_REDUCE_DUR_EQUIPMENT)

label(code)
label(return)

newmem:
  ret
code:
  //mov [rsp+10],rbx
  jmp return

INJECT_REDUCE_DUR_EQUIPMENT:
  jmp newmem
return:
registersymbol(INJECT_REDUCE_DUR_EQUIPMENT)

[DISABLE]

INJECT_REDUCE_DUR_EQUIPMENT:
  db 48 89 5C 24 18

unregistersymbol(INJECT_REDUCE_DUR_EQUIPMENT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: PlayerControllerReduceDurabilityOfEquipmentProc

GameAssembly.dll+A7A022: E8 C9 99 B9 FF        - call GameAssembly.dll+6139F0
GameAssembly.dll+A7A027: CC                    - int 3
GameAssembly.dll+A7A028: CC                    - int 3
GameAssembly.dll+A7A029: CC                    - int 3
GameAssembly.dll+A7A02A: CC                    - int 3
GameAssembly.dll+A7A02B: CC                    - int 3
GameAssembly.dll+A7A02C: CC                    - int 3
GameAssembly.dll+A7A02D: CC                    - int 3
GameAssembly.dll+A7A02E: CC                    - int 3
GameAssembly.dll+A7A02F: CC                    - int 3
// ---------- INJECTING HERE ----------
PlayerControllerReduceDurabilityOfEquipmentProc: 48 89 5C 24 18        - mov [rsp+18],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+A7A035: 48 89 6C 24 20        - mov [rsp+20],rbp
GameAssembly.dll+A7A03A: 56                    - push rsi
GameAssembly.dll+A7A03B: 48 83 EC 40           - sub rsp,40
GameAssembly.dll+A7A03F: 80 3D 54 3C 75 03 00  - cmp byte ptr [GameAssembly.dll+41CDC9A],00
GameAssembly.dll+A7A046: 41 8B E8              - mov ebp,r8d
GameAssembly.dll+A7A049: 48 8B DA              - mov rbx,rdx
GameAssembly.dll+A7A04C: 48 8B F1              - mov rsi,rcx
GameAssembly.dll+A7A04F: 75 13                 - jne GameAssembly.dll+A7A064
GameAssembly.dll+A7A051: 48 8D 0D D8 90 56 03  - lea rcx,[GameAssembly.dll+3FE3130]
GameAssembly.dll+A7A058: E8 23 98 B9 FF        - call GameAssembly.dll+613880
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>185</ID>
          <Description>"Player basic data"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-30
  Author : bbfox @https://opencheattables.org/
  Revised:
  4/13: 0.3.6
  5/11: 0.3.12
}

[ENABLE]


aobscanregion(INJECT_PLAYER_DATA,PlayerControllerManagedUpdateProc+120,PlayerControllerManagedUpdateProc+800,44 39 B7 18 09 00 00) // should be unique
alloc(newmem,$1000,INJECT_PLAYER_DATA)

label(code)
label(return)
label(i_char_base_addr)

newmem:
  push rax
  mov [i_char_base_addr], rdi
  pop rax

code:
  cmp [rdi+00000918],r14d
  jmp return

align 10 cc
  i_char_base_addr:
  dq 0

INJECT_PLAYER_DATA:
  jmp newmem
  nop 2
return:

registersymbol(i_char_base_addr)
registersymbol(INJECT_PLAYER_DATA)

[DISABLE]

INJECT_PLAYER_DATA:
  db 44 39 B7 18 09 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+2EB3A00

GameAssembly.dll+2EB39CB: 0F 84 B0 11 00 00        - je GameAssembly.dll+2EB4B81
GameAssembly.dll+2EB39D1: F3 0F 10 0D 5B AD 37 00  - movss xmm1,[GameAssembly.dll+322E734]
GameAssembly.dll+2EB39D9: 45 33 C0                 - xor r8d,r8d
GameAssembly.dll+2EB39DC: 48 8B C8                 - mov rcx,rax
GameAssembly.dll+2EB39DF: E8 3C B0 D5 FD           - call PlayerInput.DisableInputFor
GameAssembly.dll+2EB39E4: 44 38 35 EF 17 35 01     - cmp [GameAssembly.dll+42051DA],r14l
GameAssembly.dll+2EB39EB: 75 13                    - jne GameAssembly.dll+2EB3A00
GameAssembly.dll+2EB39ED: 48 8D 0D 1C B9 0F 01     - lea rcx,[GameAssembly.dll+3FAF310]
GameAssembly.dll+2EB39F4: E8 47 85 5E FD           - call GameAssembly.dll+49BF40
GameAssembly.dll+2EB39F9: C6 05 DA 17 35 01 01     - mov byte ptr [GameAssembly.dll+42051DA],01
// ---------- INJECTING HERE ----------
GameAssembly.dll+2EB3A00: 44 39 B7 18 09 00 00     - cmp [rdi+00000918],r14d
// ---------- DONE INJECTING  ----------
GameAssembly.dll+2EB3A07: 7F 7F                    - jg GameAssembly.dll+2EB3A88
GameAssembly.dll+2EB3A09: 48 8B 8F 60 03 00 00     - mov rcx,[rdi+00000360]
GameAssembly.dll+2EB3A10: 48 85 C9                 - test rcx,rcx
GameAssembly.dll+2EB3A13: 0F 84 68 11 00 00        - je GameAssembly.dll+2EB4B81
GameAssembly.dll+2EB3A19: 33 D2                    - xor edx,edx
GameAssembly.dll+2EB3A1B: E8 70 FA 13 00           - call PlayerState.State.get_isActive
GameAssembly.dll+2EB3A20: 84 C0                    - test al,al
GameAssembly.dll+2EB3A22: 75 64                    - jne GameAssembly.dll+2EB3A88
GameAssembly.dll+2EB3A24: 48 8B 8F 30 03 00 00     - mov rcx,[rdi+00000330]
GameAssembly.dll+2EB3A2B: 48 85 C9                 - test rcx,rcx
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>186</ID>
              <Description>"Base addr"</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>8 Bytes</VariableType>
              <Address>i_char_base_addr</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>698</ID>
              <Description>"movementSpeed"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>i_char_base_addr</Address>
              <Offsets>
                <Offset>464</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>781</ID>
              <Description>"PlayerController"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>641</ID>
                  <Description>"useAnimationCycleOffset"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+60</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>642</ID>
                  <Description>"variationOverride"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+64</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>643</ID>
                  <Description>"variationOverrideUpdateCount"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+68</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>644</ID>
                  <Description>"pugMapPosX"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+6C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>645</ID>
                  <Description>"pugMapPosZ"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+70</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>646</ID>
                  <Description>"width"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+74</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>647</ID>
                  <Description>"height"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+78</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>648</ID>
                  <Description>"appearInMapUI"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+7C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>649</ID>
                  <Description>"colorInMap"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+80</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>650</ID>
                  <Description>"onlyEnableAnimatorTemporarilyWhenPlayingAnimation"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+98</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>651</ID>
                  <Description>"animatorTemporaryDisableTimer"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+9C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>652</ID>
                  <Description>"lastAnimTriggerCount"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+A0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>653</ID>
                  <Description>"lastAnim"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+A4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>654</ID>
                  <Description>"hasOverriddenAnim"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+A8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>655</ID>
                  <Description>"triggerDeathAnimationOnDeath"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+A9</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>656</ID>
                  <Description>"&lt;isHidden&gt;k__BackingField"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+AA</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>657</ID>
                  <Description>"deathTimer"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+AC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>658</ID>
                  <Description>"previousPosition"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+B0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>659</ID>
                  <Description>"hasConditions"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+148</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>660</ID>
                  <Description>"hasDamageEffect"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+149</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>661</ID>
                  <Description>"damageEffectTrigger"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+14C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>662</ID>
                  <Description>"&lt;hasHealth&gt;k__BackingField"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+150</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>663</ID>
                  <Description>"previousHealth"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+154</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>664</ID>
                  <Description>"hurtSound"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+158</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>665</ID>
                  <Description>"hurtVolume"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+15C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>666</ID>
                  <Description>"deathSound"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+160</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>667</ID>
                  <Description>"deathVolume"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+164</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>668</ID>
                  <Description>"pitch"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+168</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>669</ID>
                  <Description>"deathPitchDev"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+16C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>670</ID>
                  <Description>"&lt;WorldPosition&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+1B0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>671</ID>
                  <Description>"hasLocalToWorld"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+1BC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>672</ID>
                  <Description>"currentFacingVector"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+1C0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>673</ID>
                  <Description>"normalizedFacingVector"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+1CC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>674</ID>
                  <Description>"animatedMovementVector"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+1D8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>675</ID>
                  <Description>"hasAnimationOrientationCD"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+1E4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>676</ID>
                  <Description>"hasAnimationCD"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+1E5</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>677</ID>
                  <Description>"animationCD"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+1E8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>678</ID>
                  <Description>"lastLightQuality"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+1F8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>679</ID>
                  <Description>"&lt;localPrefabEntity&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+230</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>680</ID>
                  <Description>"&lt;smoothFollowPrefabEntity&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+238</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>681</ID>
                  <Description>"&lt;localEntity&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+240</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>682</ID>
                  <Description>"&lt;smoothFollowEntity&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+248</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>683</ID>
                  <Description>"clientInput"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+250</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>684</ID>
                  <Description>"&lt;initialized&gt;k__BackingField"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+2E8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>685</ID>
                  <Description>"&lt;playerName&gt;k__BackingField.Value"</Description>
                  <VariableType>String</VariableType>
                  <Length>128</Length>
                  <Unicode>1</Unicode>
                  <CodePage>0</CodePage>
                  <ZeroTerminate>1</ZeroTerminate>
                  <Address>[i_char_base_addr]+2F0</Address>
                  <Offsets>
                    <Offset>14</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>686</ID>
                  <Description>"&lt;playerIndex&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+2F8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>687</ID>
                  <Description>"&lt;pendingCraftingRequests&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+2FC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>688</ID>
                  <Description>"&lt;hasPendingConsumeRequest&gt;k__BackingField"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+300</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>689</ID>
                  <Description>"stateChangeLocked"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+320</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>690</ID>
                  <Description>"stateChangesInFixedFrame"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+324</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>691</ID>
                  <Description>"timerSinceSpawn"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+3E8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>692</ID>
                  <Description>"hasDisabledInputBecauseLoading"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+3FC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>693</ID>
                  <Description>"hasRemovedLoginImmunity"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+3FD</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>694</ID>
                  <Description>"belongsToLayer"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+3FE</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>695</ID>
                  <Description>"collidesWithLayer"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+41E</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>696</ID>
                  <Description>"damagesLayer"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+43E</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>697</ID>
                  <Description>"collisionRadius"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+460</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>699</ID>
                  <Description>"noClipMovementSpeedMultipler"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+468</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>700</ID>
                  <Description>"cornerMovementBlend"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+480</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>701</ID>
                  <Description>"experimentalWallSmoothingEnabled"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+484</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>702</ID>
                  <Description>"wallMovementBlend"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+488</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>703</ID>
                  <Description>"&lt;cornerMovementBlendMultiplier&gt;k__BackingField"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+48C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>704</ID>
                  <Description>"targetMovementVelocity"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+490</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>705</ID>
                  <Description>"lastEffectiveSteerDir"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+49C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>706</ID>
                  <Description>"facingDirection"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+4A0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>707</ID>
                  <Description>"aimDirection"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+4A4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>708</ID>
                  <Description>"reorientationBlocked"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+4B0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>709</ID>
                  <Description>"mustRelaseInteractBeforeSlotInput"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+4B1</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>710</ID>
                  <Description>"mustRelaseSecondInteractBeforeSlotInput"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+4B2</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>711</ID>
                  <Description>"mustRelaseOffHandUseBeforeOffHandInput"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+4B3</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>712</ID>
                  <Description>"previousMaxHealth"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+4B4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>713</ID>
                  <Description>"&lt;equippedSlotIndex&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+4B8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>714</ID>
                  <Description>"lastUsedSlotIndex"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+4BC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>715</ID>
                  <Description>"previousMouseObject"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+4E0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>716</ID>
                  <Description>"&lt;visuallyEquippedObjectData&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+528</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>717</ID>
                  <Description>"animatedFishingRodSinkPosition"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+5D0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>718</ID>
                  <Description>"animatedLineIsBeingPulled"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+5D8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>719</ID>
                  <Description>"targetSinkPosition"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+5E8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>720</ID>
                  <Description>"activeCustomization"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+618</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>721</ID>
                  <Description>"onSlime"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6E8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>722</ID>
                  <Description>"onAcid"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6E9</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>723</ID>
                  <Description>"onPoisonSlime"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6EA</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>724</ID>
                  <Description>"onWood"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6EB</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>725</ID>
                  <Description>"onGrass"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6EC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>726</ID>
                  <Description>"onChrysalis"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6ED</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>727</ID>
                  <Description>"onMoss"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6EE</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>728</ID>
                  <Description>"onStone"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6EF</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>729</ID>
                  <Description>"onFlesh"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6F0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>730</ID>
                  <Description>"onSand"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6F1</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>731</ID>
                  <Description>"onClay"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6F2</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>732</ID>
                  <Description>"onMold"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+6F3</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>733</ID>
                  <Description>"anyInventoryOrMapWasActiveThisFrame"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+728</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>734</ID>
                  <Description>"swappedTorchFromIndex"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+72C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>735</ID>
                  <Description>"&lt;localPlayerIsTryingToAttack&gt;k__BackingField"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+730</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>736</ID>
                  <Description>"slotSwapWithMouseCooldownTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+734</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>737</ID>
                  <Description>"offHandCooldownTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+748</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>738</ID>
                  <Description>"accumulatedSkillMovement"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+75C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>739</ID>
                  <Description>"damageImmunityIsBeingRemoved"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+760</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>740</ID>
                  <Description>"standStillTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+764</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>741</ID>
                  <Description>"greatWallAnimQuery"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+778</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>742</ID>
                  <Description>"worldInfoQuery"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+788</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>743</ID>
                  <Description>"greatWallIsShakingAndRumbling"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+7B0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>744</ID>
                  <Description>"greatWallEmissiveSoundHasPlayed"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+7B1</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>745</ID>
                  <Description>"greatWallHasBeenLowered"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+7B2</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>746</ID>
                  <Description>"greatWallShakeTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+7B4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>747</ID>
                  <Description>"wallLightSoundEffect"</Description>
                  <ShowAsHex>1</ShowAsHex>
                  <VariableType>8 Bytes</VariableType>
                  <Address>[i_char_base_addr]+7C8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>748</ID>
                  <Description>"nearbyEmissiveAndLowerWallBlend"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+7D0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>749</ID>
                  <Description>"&lt;playerCanInteractWithGreatWall&gt;k__BackingField"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+7D4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>750</ID>
                  <Description>"playerNearbyTimer"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+7D8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>751</ID>
                  <Description>"canDoHandEmote"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+7EC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>752</ID>
                  <Description>"isPlayingInteractFlash"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+7ED</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>753</ID>
                  <Description>"lineTensionSmoothTimer"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+800</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>754</ID>
                  <Description>"fishIsNibbling"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+804</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>755</ID>
                  <Description>"fishingLootToSpawn"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+808</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>756</ID>
                  <Description>"sinkHeightFromFishHooking"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+80C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>757</ID>
                  <Description>"rippleTimer"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+810</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>758</ID>
                  <Description>"healOverTimeTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+830</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>759</ID>
                  <Description>"accumulatedHealing"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+844</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>760</ID>
                  <Description>"damageEveryThirdSecondTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+848</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>761</ID>
                  <Description>"moldTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+85C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>762</ID>
                  <Description>"damageEverySecondTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+870</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>763</ID>
                  <Description>"lastReceivedConditionsAmount"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+884</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>764</ID>
                  <Description>"conditionsSaveTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+888</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>765</ID>
                  <Description>"forceFromNearbyFilter"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+89C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>766</ID>
                  <Description>"velocityAffectorFilter"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+8A8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>767</ID>
                  <Description>"blinkTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+8B4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>768</ID>
                  <Description>"stuckTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+8C8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>769</ID>
                  <Description>"killIfStuckTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+8DC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>770</ID>
                  <Description>"wasInBoatPreviousFrame"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+8F0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>771</ID>
                  <Description>"localHealth"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+918</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>772</ID>
                  <Description>"isDyingOrDead"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+91C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>773</ID>
                  <Description>"invinciblePeriod"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+920</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>774</ID>
                  <Description>"invincible"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>[i_char_base_addr]+934</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>775</ID>
                  <Description>"hitStreak"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+940</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>776</ID>
                  <Description>"spawnStuffOnHitCooldown"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+944</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>777</ID>
                  <Description>"stompOnCrittersTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+958</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>778</ID>
                  <Description>"equipmentBreakSoundCooldown"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+96C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>779</ID>
                  <Description>"hungerEmoteTimer"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[i_char_base_addr]+980</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>780</ID>
                  <Description>"previousHunger"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[i_char_base_addr]+994</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>183</ID>
          <Description>"Player HP"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-30
  Author : bbfox@ https://opencheattables.org
}

[ENABLE]

aobscanregion(INJECT_HP_DAMAGE,PlayerControllerDealDamageToPlayerProc+a0,PlayerControllerDealDamageToPlayerProc+5a0,29 9F 18 09 00 00) // should be unique
alloc(newmem,$1000,INJECT_HP_DAMAGE)

label(code)
label(return)
label(i_player_base_addr)
label(i_player_hp_option)
newmem:
  push r13
  lea r13, [rdi+00000918]
  mov [i_player_base_addr], r13
  pop r13

  cmp dword ptr [i_player_hp_option], 0
  je code
  cmp dword ptr [i_player_hp_option], 1
  jne check_hp2
  add [rdi+00000918], ebx
  jmp endp

check_hp2:
  cmp dword ptr [i_player_hp_option], 2
  jne check_hp3
  mov ebx, 1
  jmp endp

check_hp3:
  cmp dword ptr [i_player_hp_option], 3
  jne endp
  mov ebx, 0
  jmp endp

endp:

code:
  sub [rdi+00000918],ebx
  jmp return

align 10 cc
  i_player_base_addr:
  dq 0
  i_player_hp_option: //0:Normal, 1:try to Keep, 2:1pt, 3:No damage
  dd 1

INJECT_HP_DAMAGE:
  jmp newmem
  nop
return:
registersymbol(i_player_base_addr)
registersymbol(i_player_hp_option)
registersymbol(INJECT_HP_DAMAGE)

[DISABLE]

INJECT_HP_DAMAGE:
  db 29 9F 18 09 00 00

unregistersymbol(*)
dealloc(newmem)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+2EAA3DC

GameAssembly.dll+2EAA393: C6 05 96 AE 35 01 01     - mov byte ptr [GameAssembly.dll+4205230],01
GameAssembly.dll+2EAA39A: 80 BF 20 03 00 00 00     - cmp byte ptr [rdi+00000320],00
GameAssembly.dll+2EAA3A1: 0F 85 B8 04 00 00        - jne GameAssembly.dll+2EAA85F
GameAssembly.dll+2EAA3A7: 80 BF 34 09 00 00 00     - cmp byte ptr [rdi+00000934],00
GameAssembly.dll+2EAA3AE: 0F 85 AB 04 00 00        - jne GameAssembly.dll+2EAA85F
GameAssembly.dll+2EAA3B4: 48 89 B4 24 D0 01 00 00  - mov [rsp+000001D0],rsi
GameAssembly.dll+2EAA3BC: 4C 89 A4 24 D8 01 00 00  - mov [rsp+000001D8],r12
GameAssembly.dll+2EAA3C4: 4C 89 B4 24 E0 01 00 00  - mov [rsp+000001E0],r14
GameAssembly.dll+2EAA3CC: 4C 89 BC 24 A0 01 00 00  - mov [rsp+000001A0],r15
GameAssembly.dll+2EAA3D4: 0F 29 B4 24 90 01 00 00  - movaps [rsp+00000190],xmm6
// ---------- INJECTING HERE ----------
GameAssembly.dll+2EAA3DC: 29 9F 18 09 00 00        - sub [rdi+00000918],ebx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+2EAA3E2: 45 33 E4                 - xor r12d,r12d
GameAssembly.dll+2EAA3E5: 44 39 A7 18 09 00 00     - cmp [rdi+00000918],r12d
GameAssembly.dll+2EAA3EC: 0F 8F 17 01 00 00        - jg GameAssembly.dll+2EAA509
GameAssembly.dll+2EAA3F2: 48 8B 5F 30              - mov rbx,[rdi+30]
GameAssembly.dll+2EAA3F6: 33 D2                    - xor edx,edx
GameAssembly.dll+2EAA3F8: 48 8B CF                 - mov rcx,rdi
GameAssembly.dll+2EAA3FB: E8 30 51 14 00           - call EntityMonoBehaviour.get_world
GameAssembly.dll+2EAA400: 48 8B 0D 29 A5 16 01     - mov rcx,[GameAssembly.dll+4014930]
GameAssembly.dll+2EAA407: 48 8B F0                 - mov rsi,rax
GameAssembly.dll+2EAA40A: F6 81 33 01 00 00 04     - test byte ptr [rcx+00000133],04
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>184</ID>
              <Description>"HP damage option"</Description>
              <DropDownList DisplayValueAsItem="1">0:Normal
1:Try to keep
2:1pt
3:No damage
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_player_hp_option</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>181</ID>
          <Description>"HP recover multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-30
  Author : bbfox @https://opencheattables.org/
  Revised:
  4/13: 0.3.6
  5/11: 0.3.12
}

[ENABLE]

//aobscanmodule(INJECT_FASTER_HP_ADD,GameAssembly.dll,03 DE 89 9F 60 08 00 00) // should be unique
aobscanregion(INJECT_FASTER_HP_ADD,PlayerControllerHealPlayerProc+100,PlayerControllerHealPlayerProc+600,48 8B 07 03 DE) // should be unique

alloc(newmem,$1000,INJECT_FASTER_HP_ADD)

label(code)
label(return)
label(vf_addhp_multi)

newmem:
  vmovss xmm15, [vf_addhp_multi]
  cvtsi2ss xmm14, esi
  vmulss xmm15, xmm14, xmm15
  cvtss2si esi, xmm15

code:
  mov rax,[rdi]
  add ebx,esi
  jmp return

align 10 cc
  vf_addhp_multi:
  dd (float)1.5


INJECT_FASTER_HP_ADD:
  jmp newmem
  nop 3
return:
registersymbol(vf_addhp_multi)
registersymbol(INJECT_FASTER_HP_ADD)

[DISABLE]

INJECT_FASTER_HP_ADD:
  db 48 8B 07 03 DE

unregistersymbol(INJECT_FASTER_HP_ADD)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+C54C28

GameAssembly.dll+C54BF9: 33 D2                    - xor edx,edx
GameAssembly.dll+C54BFB: 0F 5B C0                 - cvtdq2ps xmm0,xmm0
GameAssembly.dll+C54BFE: F3 0F 59 05 E2 3B BC 02  - mulss xmm0,[GameAssembly.dll+38187E8]
GameAssembly.dll+C54C06: E8 55 82 B5 FF           - call GameAssembly.dll+7ACE60
GameAssembly.dll+C54C0B: F3 0F 10 0D A9 F1 90 02  - movss xmm1,[GameAssembly.dll+3563DBC]
GameAssembly.dll+C54C13: 45 33 C0                 - xor r8d,r8d
GameAssembly.dll+C54C16: E8 75 34 B3 FF           - call Unity.Mathematics.math.max
GameAssembly.dll+C54C1B: F3 0F 2C F0              - cvttss2si esi,xmm0
GameAssembly.dll+C54C1F: 8B 9F 68 08 00 00        - mov ebx,[rdi+00000868]
GameAssembly.dll+C54C25: 48 8B CF                 - mov rcx,rdi
// ---------- INJECTING HERE ----------
GameAssembly.dll+C54C28: 48 8B 07                 - mov rax,[rdi]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+C54C2B: 03 DE                    - add ebx,esi
GameAssembly.dll+C54C2D: 89 9F 68 08 00 00        - mov [rdi+00000868],ebx
GameAssembly.dll+C54C33: 48 8B 90 90 02 00 00     - mov rdx,[rax+00000290]
GameAssembly.dll+C54C3A: FF 90 88 02 00 00        - call qword ptr [rax+00000288]
GameAssembly.dll+C54C40: F2 0F 10 87 70 01 00 00  - movsd xmm0,[rdi+00000170]
GameAssembly.dll+C54C48: 48 8D 54 24 30           - lea rdx,[rsp+30]
GameAssembly.dll+C54C4D: 48 8B AF 60 03 00 00     - mov rbp,[rdi+00000360]
GameAssembly.dll+C54C54: 48 8D 4C 24 40           - lea rcx,[rsp+40]
GameAssembly.dll+C54C59: 3B D8                    - cmp ebx,eax
GameAssembly.dll+C54C5B: F2 0F 11 44 24 30        - movsd [rsp+30],xmm0
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>182</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>vf_addhp_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>156</ID>
          <Description>"Spend skill point everywhere+"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>157</ID>
              <Description>"Allow you to click skill point in any place, UI will display all as "5""</Description>
              <Color>008000</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>155</ID>
              <Description>"Click to display as "all 5""</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-12
  Author : bbfox @https://opencheattables.org/
}

[ENABLE]

//aobscanmodule(INJECT_SKILL2,GameAssembly.dll,8B 84 24 E0 00 00 00 89 83) // should be unique
aobscanregion(INJECT_SKILL2,SkillTalentUIElementUpdateTalentProc+190,SkillTalentUIElementUpdateTalentProc+790,8B 84 24 E0 00 00 00 89 83)
alloc(newmem,$1000,INJECT_SKILL2)

label(code)
label(return)

newmem:
  mov eax, 5
  mov [rsp+000000E0], eax

code:
  mov eax,[rsp+000000E0]
  jmp return

INJECT_SKILL2:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SKILL2)

[DISABLE]

INJECT_SKILL2:
  db 8B 84 24 E0 00 00 00

unregistersymbol(INJECT_SKILL2)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+FD954F

GameAssembly.dll+FD9520: 48 8B 4B 50           - mov rcx,[rbx+50]
GameAssembly.dll+FD9524: 41 0F 10 07           - movups xmm0,[r15]
GameAssembly.dll+FD9528: 0F 11 44 24 20        - movups [rsp+20],xmm0
GameAssembly.dll+FD952D: F2 41 0F 10 4F 10     - movsd xmm1,[r15+10]
GameAssembly.dll+FD9533: F2 0F 11 4C 24 30     - movsd [rsp+30],xmm1
GameAssembly.dll+FD9539: 48 85 C9              - test rcx,rcx
GameAssembly.dll+FD953C: 0F 84 F7 07 00 00     - je GameAssembly.dll+FD9D39
GameAssembly.dll+FD9542: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+FD9545: 48 8B 54 24 30        - mov rdx,[rsp+30]
GameAssembly.dll+FD954A: E8 B1 5D C1 00        - call UnityEngine.SpriteRenderer.set_sprite
// ---------- INJECTING HERE ----------
GameAssembly.dll+FD954F: 8B 84 24 E0 00 00 00  - mov eax,[rsp+000000E0]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+FD9556: 89 83 B8 00 00 00     - mov [rbx+000000B8],eax
GameAssembly.dll+FD955C: 33 D2                 - xor edx,edx
GameAssembly.dll+FD955E: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+FD9561: E8 1A F2 FF FF        - call SkillTalentUIElement.GetCurrentPoints
GameAssembly.dll+FD9566: 44 8B F0              - mov r14d,eax
GameAssembly.dll+FD9569: 33 C9                 - xor ecx,ecx
GameAssembly.dll+FD956B: E8 E0 71 03 00        - call Manager.get_saves
GameAssembly.dll+FD9570: 48 85 C0              - test rax,rax
GameAssembly.dll+FD9573: 0F 84 BA 07 00 00     - je GameAssembly.dll+FD9D33
GameAssembly.dll+FD9579: 45 33 C0              - xor r8d,r8d
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>366</ID>
          <Description>"Redirect XP from skill 1 to skill 2"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-30
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscanmodule(INJECT_REDIRECT_XP,GameAssembly.dll,48 8B 43 10 48 8B 4E 28 44 39 34 28) // should be unique
aobscanregion(INJECT_REDIRECT_XP,SaveManagerAddSkillValueProc+e0,SaveManagerAddSkillValueProc+2e0,48 8B 43 10 48 8B 4E 28 44 39 34 28) // should be unique
alloc(newmem,$1000,INJECT_REDIRECT_XP)

label(code)
label(return)
label(i_src_skill)
label(i_dst_skill)

newmem:
  cmp r14d, [i_src_skill]
  jne code
  cmp dword ptr [i_dst_skill], 8
  jg code
  mov r14d, [i_dst_skill]

code:
  mov rcx,[rsi+28]
  cmp [rax+rbp],r14d
  jmp return

align 10 cc
  i_src_skill:
  dd 1
  i_dst_skill:
  dd 6

INJECT_REDIRECT_XP+04:
  jmp newmem
  nop 3
return:
registersymbol(i_src_skill)
registersymbol(i_dst_skill)
registersymbol(INJECT_REDIRECT_XP)

[DISABLE]

INJECT_REDIRECT_XP+04:
  db 48 8B 4E 28 44 39 34 28

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+D61F6F

GameAssembly.dll+D61F49: 48 85 DB           - test rbx,rbx
GameAssembly.dll+D61F4C: 0F 84 A6 01 00 00  - je GameAssembly.dll+D620F8
GameAssembly.dll+D61F52: 48 8B 5B 60        - mov rbx,[rbx+60]
GameAssembly.dll+D61F56: 48 85 DB           - test rbx,rbx
GameAssembly.dll+D61F59: 0F 84 99 01 00 00  - je GameAssembly.dll+D620F8
GameAssembly.dll+D61F5F: 3B 7B 18           - cmp edi,[rbx+18]
GameAssembly.dll+D61F62: 72 07              - jb GameAssembly.dll+D61F6B
GameAssembly.dll+D61F64: 33 C9              - xor ecx,ecx
GameAssembly.dll+D61F66: E8 A5 5C 8D 01     - call System.ThrowHelper.ThrowArgumentOutOfRangeException
GameAssembly.dll+D61F6B: 48 8B 43 10        - mov rax,[rbx+10]
// ---------- INJECTING HERE ----------
GameAssembly.dll+D61F6F: 48 8B 4E 28        - mov rcx,[rsi+28]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+D61F73: 44 39 34 28        - cmp [rax+rbp],r14d
GameAssembly.dll+D61F77: 74 1A              - je GameAssembly.dll+D61F93
GameAssembly.dll+D61F79: FF C7              - inc edi
GameAssembly.dll+D61F7B: 48 83 C5 08        - add rbp,08
GameAssembly.dll+D61F7F: 44 8B CF           - mov r9d,edi
GameAssembly.dll+D61F82: 48 8B C1           - mov rax,rcx
GameAssembly.dll+D61F85: 48 85 C9           - test rcx,rcx
GameAssembly.dll+D61F88: 0F 84 6A 01 00 00  - je GameAssembly.dll+D620F8
GameAssembly.dll+D61F8E: E9 6D FF FF FF     - jmp GameAssembly.dll+D61F00
GameAssembly.dll+D61F93: 48 85 C9           - test rcx,rcx
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>367</ID>
              <Description>"Skill 1 (only valid when not max)"</Description>
              <DropDownList DisplayValueAsItem="1">0:Mining
1:Running
2:Melee
3:Vitality
4:Crafting
5:Range
6:Gardening
7:Fishing
8:Cooking
9:N/A
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_src_skill</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>368</ID>
              <Description>"Skill 2"</Description>
              <DropDownList DisplayValueAsItem="1">0:Mining
1:Running
2:Melee
3:Vitality
4:Crafting
5:Range
6:Gardening
7:Fishing
8:Cooking
9:N/A
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_dst_skill</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>160</ID>
          <Description>"Skill XP multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-13
  Author : bbfox @https://opencheattables.org/
}

[ENABLE]

//aobscanmodule(INJECT_SKILL_XP_MULTI,GameAssembly.dll,45 8B C6 48 8B C8 E8) // should be unique
aobscanregion(INJECT_SKILL_XP_MULTI,PlayerControllerAddSkillProc+180,PlayerControllerAddSkillProc+680,45 8B C6 48 8B C8 E8) // should be unique
alloc(newmem,$1000,INJECT_SKILL_XP_MULTI)

label(code)
label(return)
label(vf_skill_xp_multi)

newmem:
  // rdx = skill
  // r14d = xp
  vmovss xmm14, [vf_skill_xp_multi]
  cvtsi2ss xmm15, r14d
  vmulss xmm15, xmm15, xmm14
  cvtss2si r14d, xmm15


code:
  mov r8d,r14d
  mov rcx,rax
  jmp return

align 10 cc
  i_skill_xp_multi:
  dd 4
  vf_skill_xp_multi:
  dd (float)6

INJECT_SKILL_XP_MULTI:
  jmp newmem
  nop
return:

registersymbol(vf_skill_xp_multi)
registersymbol(INJECT_SKILL_XP_MULTI)

[DISABLE]

INJECT_SKILL_XP_MULTI:
  db 45 8B C6 48 8B C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+C461CE

GameAssembly.dll+C461A8: 74 0E                 - je GameAssembly.dll+C461B8
GameAssembly.dll+C461AA: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+C461B1: 75 05                 - jne GameAssembly.dll+C461B8
GameAssembly.dll+C461B3: E8 A8 14 92 FF        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+C461B8: 33 C9                 - xor ecx,ecx
GameAssembly.dll+C461BA: E8 91 A5 3C 00        - call Manager.get_saves
GameAssembly.dll+C461BF: 48 85 C0              - test rax,rax
GameAssembly.dll+C461C2: 0F 84 AD 05 00 00     - je GameAssembly.dll+C46775
GameAssembly.dll+C461C8: 8B 55 6F              - mov edx,[rbp+6F]
GameAssembly.dll+C461CB: 45 33 C9              - xor r9d,r9d
// ---------- INJECTING HERE ----------
GameAssembly.dll+C461CE: 45 8B C6              - mov r8d,r14d
// ---------- DONE INJECTING  ----------
GameAssembly.dll+C461D1: 48 8B C8              - mov rcx,rax
GameAssembly.dll+C461D4: E8 E7 4B 08 00        - call SaveManagerAddSkillValueProc
GameAssembly.dll+C461D9: 8B 5D 6F              - mov ebx,[rbp+6F]
GameAssembly.dll+C461DC: 33 C9                 - xor ecx,ecx
GameAssembly.dll+C461DE: E8 6D A5 3C 00        - call Manager.get_saves
GameAssembly.dll+C461E3: 48 85 C0              - test rax,rax
GameAssembly.dll+C461E6: 0F 84 89 05 00 00     - je GameAssembly.dll+C46775
GameAssembly.dll+C461EC: 8B 55 6F              - mov edx,[rbp+6F]
GameAssembly.dll+C461EF: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+C461F2: 48 8B C8              - mov rcx,rax
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>365</ID>
              <Description>"XP multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>vf_skill_xp_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>164</ID>
          <Description>"Damage multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-21
  Author : bbfox @https://opencheattables.org/
revised:
  5/11: 0.3.12
}

[ENABLE]

//aobscanmodule(INJECT_DAMAGE_MULTI,GameAssembly.dll,45 8B CC 0F 10 01) // should be unique
aobscanregion(INJECT_DAMAGE_MULTI,EntityUtilityGetDamageInfoProc+3A0,EntityUtilityGetDamageInfoProc+13A0,45 8B CD 0F 10 01) // should be unique

alloc(newmem,$1000,INJECT_DAMAGE_MULTI)

label(code)
label(return)
label(vf_damage_multi)

newmem:
  movd xmm15, [vf_damage_multi]
  //movd xmm14, r9d
  cvtsi2ss xmm14, r13d
  mulss xmm15, xmm14
  cvtss2si r13d, xmm15

code:
  mov r9d,r13d
  movups xmm0,[rcx]
  jmp return


align 10 cc
  vf_damage_multi:
  dd (float)1.5

INJECT_DAMAGE_MULTI:
  jmp newmem
  nop
return:
registersymbol(vf_damage_multi)
registersymbol(INJECT_DAMAGE_MULTI)

[DISABLE]

INJECT_DAMAGE_MULTI:
  db 45 8B CD 0F 10 01

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E19818

GameAssembly.dll+E197E8: 48 8D 4D 30              - lea rcx,[rbp+30]
GameAssembly.dll+E197EC: 48 8B D7                 - mov rdx,rdi
GameAssembly.dll+E197EF: E8 AC C4 9A 00           - call GameAssembly.dll+17C5CA0
GameAssembly.dll+E197F4: 48 8B 8D 80 00 00 00     - mov rcx,[rbp+00000080]
GameAssembly.dll+E197FB: 4C 8D 45 58              - lea r8,[rbp+58]
GameAssembly.dll+E197FF: 0F B6 D0                 - movzx edx,al
GameAssembly.dll+E19802: 66 0F 7F 75 90           - movdqa [rbp-70],xmm6
GameAssembly.dll+E19807: 48 8B 85 90 00 00 00     - mov rax,[rbp+00000090]
GameAssembly.dll+E1980E: 33 DB                    - xor ebx,ebx
GameAssembly.dll+E19810: 48 89 9C 24 80 00 00 00  - mov [rsp+00000080],rbx
// ---------- INJECTING HERE ----------
GameAssembly.dll+E19818: 45 8B CD                 - mov r9d,r13d
// ---------- DONE INJECTING  ----------
GameAssembly.dll+E1981B: 0F 10 01                 - movups xmm0,[rcx]
GameAssembly.dll+E1981E: 48 8B 4D 50              - mov rcx,[rbp+50]
GameAssembly.dll+E19822: 0F 29 45 A0              - movaps [rbp-60],xmm0
GameAssembly.dll+E19826: 0F 10 01                 - movups xmm0,[rcx]
GameAssembly.dll+E19829: 48 8B 8D A8 00 00 00     - mov rcx,[rbp+000000A8]
GameAssembly.dll+E19830: 48 89 4C 24 78           - mov [rsp+78],rcx
GameAssembly.dll+E19835: 48 8B 8D A0 00 00 00     - mov rcx,[rbp+000000A0]
GameAssembly.dll+E1983C: 48 89 4C 24 70           - mov [rsp+70],rcx
GameAssembly.dll+E19841: 48 8B 8D 98 00 00 00     - mov rcx,[rbp+00000098]
GameAssembly.dll+E19848: 48 89 4C 24 68           - mov [rsp+68],rcx
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>165</ID>
              <Description>"multiplier"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">1.5:1.5
2:2
4:4
8:8
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>vf_damage_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>166</ID>
          <Description>"Monster damage to player"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-21
  Author : bbfox @https://opencheattables.org/
}

[ENABLE]

//aobscanmodule(INJECT_ENEMY_DAMAGE,GameAssembly.dll,33 D2 89 45 00) // should be unique
aobscanregion(INJECT_ENEMY_DAMAGE,AttackPlayerClientSystemRegisterPlayerHitProc+800,AttackPlayerClientSystemRegisterPlayerHitProc+1900,33 D2 89 45 10) // should be unique


alloc(newmem,$1000,INJECT_ENEMY_DAMAGE)

label(code)
label(return)
label(i_monster_damage_type)
label(i_monster_damage_divisor)

newmem:
  cmp dword ptr [i_monster_damage_type], 0
  je endp

check_1:
  cmp dword ptr [i_monster_damage_type], 1
  jne check_2
  mov eax, 1
  jmp endp

check_2:
  cmp dword ptr [i_monster_damage_type], 2
  jne check_3
  mov eax, 0
  jmp endp

check_3:
  cmp dword ptr [i_monster_damage_type], 3
  jne endp

  movss xmm15, [i_monster_damage_divisor]
  comiss xmm15, [vf_zero]
  ja check_3_1
  movss xmm15, [vf_one]

check_3_1:
  cvtsi2ss xmm14, eax
  divss xmm14, xmm15
  cvtss2si eax, xmm14

endp:
code:
  xor edx,edx
  mov [rbp+10],eax
  jmp return

align 10 cc
  i_monster_damage_type: //0: Normal, 1:1pt, 2:no damage, 3:divide by number
  dd 3
  i_monster_damage_divisor:
  dd (float)1.5
  vf_zero:
  dd 0
  vf_one:
  dd (float)1

INJECT_ENEMY_DAMAGE:
  jmp newmem
return:
registersymbol(i_monster_damage_divisor)
registersymbol(i_monster_damage_type)
registersymbol(INJECT_ENEMY_DAMAGE)

[DISABLE]

INJECT_ENEMY_DAMAGE:
  db 33 D2 89 45 10

unregistersymbol(*)
dealloc(newmem)

{
AttackPlayerClientSystem.RegisterPlayerHit - 4C 89 4C 24 20        - mov [rsp+20],r9

// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1BDCDF4

GameAssembly.dll+1BDCDC1: 0F B6 85 30 04 00 00     - movzx eax,byte ptr [rbp+00000430]
GameAssembly.dll+1BDCDC8: 48 89 74 24 40           - mov [rsp+40],rsi
GameAssembly.dll+1BDCDCD: 4C 89 74 24 38           - mov [rsp+38],r14
GameAssembly.dll+1BDCDD2: C6 44 24 30 00           - mov byte ptr [rsp+30],00
GameAssembly.dll+1BDCDD7: 88 44 24 28              - mov [rsp+28],al
GameAssembly.dll+1BDCDDB: 0F B6 85 28 04 00 00     - movzx eax,byte ptr [rbp+00000428]
GameAssembly.dll+1BDCDE2: 88 44 24 20              - mov [rsp+20],al
GameAssembly.dll+1BDCDE6: 0F 29 4D B0              - movaps [rbp-50],xmm1
GameAssembly.dll+1BDCDEA: 66 0F 7F 75 D0           - movdqa [rbp-30],xmm6
GameAssembly.dll+1BDCDEF: E8 CC 6A 48 00           - call EntityUtility.CalculateDamage
// ---------- INJECTING HERE ----------
GameAssembly.dll+1BDCDF4: 33 D2                    - xor edx,edx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1BDCDF6: 89 45 00                 - mov [rbp+00],eax
GameAssembly.dll+1BDCDF9: 49 8B CF                 - mov rcx,r15
GameAssembly.dll+1BDCDFC: 8B D8                    - mov ebx,eax
GameAssembly.dll+1BDCDFE: E8 FD 4A C8 FF           - call PlayerController.IsShielded
GameAssembly.dll+1BDCE03: F3 0F 10 35 1D 12 59 01  - movss xmm6,[GameAssembly.dll+316E028]
GameAssembly.dll+1BDCE0B: 84 C0                    - test al,al
GameAssembly.dll+1BDCE0D: 0F 84 A3 01 00 00        - je GameAssembly.dll+1BDCFB6
GameAssembly.dll+1BDCE13: 33 D2                    - xor edx,edx
GameAssembly.dll+1BDCE15: 49 8B CF                 - mov rcx,r15
GameAssembly.dll+1BDCE18: E8 73 59 C9 FF           - call PlayerController.get_shieldedAmount
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>167</ID>
              <Description>"Damage type"</Description>
              <DropDownList ReadOnly="1" DisplayValueAsItem="1">0:Normal
1:1pt
2:No damage
3:Divide by divisor below
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_monster_damage_type</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>168</ID>
              <Description>"Divisor"</Description>
              <DropDownListLink>multiplier</DropDownListLink>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>i_monster_damage_divisor</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>259</ID>
          <Description>"Fast fishing - fish bite"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version:
  Date   : 2022-04-02
  Author :
}
//Fast fishing - fish bite
[ENABLE]
//After TimerSimple.StartNew
aobscanmodule(INJECT_SET_FISH_BITE_TIME,GameAssembly.dll,F3 0F 11 09 48 8B D9) // should be unique
alloc(newmem,$1000,INJECT_SET_FISH_BITE_TIME)

label(code)
label(return)

newmem:
  vmovss xmm1, [vf_fish_bite_time]

code:
  movss [rcx],xmm1
  mov rbx,rcx
  jmp return

align 10 cc
  vf_fish_bite_time:
  dd (float)0.8

INJECT_SET_FISH_BITE_TIME:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_FISH_BITE_TIME)

[DISABLE]

INJECT_SET_FISH_BITE_TIME:
  db F3 0F 11 09 48 8B D9

unregistersymbol(INJECT_SET_FISH_BITE_TIME)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+ECAA76

GameAssembly.dll+ECAA60: C6 43 0C 01           - mov byte ptr [rbx+0C],01
GameAssembly.dll+ECAA64: 48 8B C3              - mov rax,rbx
GameAssembly.dll+ECAA67: 48 83 C4 20           - add rsp,20
GameAssembly.dll+ECAA6B: 5B                    - pop rbx
GameAssembly.dll+ECAA6C: C3                    - ret
GameAssembly.dll+ECAA6D: CC                    - int 3
GameAssembly.dll+ECAA6E: CC                    - int 3
GameAssembly.dll+ECAA6F: CC                    - int 3
GameAssembly.dll+ECAA70: 40 53                 - push rbx
GameAssembly.dll+ECAA72: 48 83 EC 20           - sub rsp,20
// ---------- INJECTING HERE ----------
GameAssembly.dll+ECAA76: F3 0F 11 09           - movss [rcx],xmm1
// ---------- DONE INJECTING  ----------
GameAssembly.dll+ECAA7A: 48 8B D9              - mov rbx,rcx
GameAssembly.dll+ECAA7D: 45 84 C0              - test r8l,r8l
GameAssembly.dll+ECAA80: 74 0B                 - je GameAssembly.dll+ECAA8D
GameAssembly.dll+ECAA82: C6 41 0C 00           - mov byte ptr [rcx+0C],00
GameAssembly.dll+ECAA86: C7 41 10 00 00 00 00  - mov [rcx+10],00000000
GameAssembly.dll+ECAA8D: 80 79 04 00           - cmp byte ptr [rcx+04],00
GameAssembly.dll+ECAA91: 74 09                 - je GameAssembly.dll+ECAA9C
GameAssembly.dll+ECAA93: 33 C9                 - xor ecx,ecx
GameAssembly.dll+ECAA95: E8 C6 2C D3 00        - call UnityEngine.Time.get_unscaledTime
GameAssembly.dll+ECAA9A: EB 07                 - jmp GameAssembly.dll+ECAAA3
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>257</ID>
          <Description>"Fast fishing - can ignore red fishing line"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version:
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.org/
}
//Fast fishing - can ignore red fishing line
[ENABLE]

//aobscanmodule(INJECT_FISH_LINE_TENSION,GameAssembly.dll,F3 0F 11 BF 38 01 00 00 0F) // should be unique
aobscanregion(INJECT_FISH_LINE_TENSION,PlayerStateFishingUpdateMiniGameProc+680, PlayerStateFishingUpdateMiniGameProc+A80,F3 0F 11 BF 48 01 00 00 0F) // should be unique


alloc(newmem,$1000,INJECT_FISH_LINE_TENSION)

label(code)
label(return)

newmem:
  vmovss xmm15, [vf_cast_time]
  vmovss [rdi+38], xmm15 //castTimer
  vmovss [rdi+60], xmm15 //pullUpTimer

  vmovss xmm15, [vf_throw_time]
  vmovss [rdi+4C], xmm15 //throwTimer

  vmovss xmm15, [vf_fishStruggleTimer]
  vmovss [rdi+128], xmm15 //fishStruggleTimer

  vmovss xmm7, [vf_line_tension]

code:
  movss [rdi+00000148],xmm7
  jmp return

align 10 cc
  vf_line_tension:
  dd (float)0.1
  vf_cast_time:
  dd (float)0.5
  vf_throw_time:
  dd (float)0.2
  vf_fishStruggleTimer:
  dd (float)5

INJECT_FISH_LINE_TENSION:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FISH_LINE_TENSION)

[DISABLE]

INJECT_FISH_LINE_TENSION:
  db F3 0F 11 BF 48 01 00 00 0F

unregistersymbol(INJECT_FISH_LINE_TENSION)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1097BC2

GameAssembly.dll+1097B95: 74 0E                       - je GameAssembly.dll+1097BA5
GameAssembly.dll+1097B97: F3 44 0F 10 8F 3C 01 00 00  - movss xmm9,[rdi+0000013C]
GameAssembly.dll+1097BA0: F3 45 0F 59 CB              - mulss xmm9,xmm11
GameAssembly.dll+1097BA5: F3 0F 10 B7 38 01 00 00     - movss xmm6,[rdi+00000138]
GameAssembly.dll+1097BAD: 33 C9                       - xor ecx,ecx
GameAssembly.dll+1097BAF: E8 8C 57 B6 00              - call UnityEngine.Time.get_deltaTime
GameAssembly.dll+1097BB4: 0F 28 F8                    - movaps xmm7,xmm0
GameAssembly.dll+1097BB7: F3 41 0F 59 F9              - mulss xmm7,xmm9
GameAssembly.dll+1097BBC: F3 0F 58 FE                 - addss xmm7,xmm6
GameAssembly.dll+1097BC0: 33 D2                       - xor edx,edx
// ---------- INJECTING HERE ----------
GameAssembly.dll+1097BC2: F3 0F 11 BF 38 01 00 00     - movss [rdi+00000138],xmm7
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1097BCA: 0F 28 C7                    - movaps xmm0,xmm7
GameAssembly.dll+1097BCD: E8 8E E9 3D 01              - call System.Single.IsNaN
GameAssembly.dll+1097BD2: 84 C0                       - test al,al
GameAssembly.dll+1097BD4: 75 06                       - jne GameAssembly.dll+1097BDC
GameAssembly.dll+1097BD6: 41 0F 2F F8                 - comiss xmm7,xmm8
GameAssembly.dll+1097BDA: 76 04                       - jna GameAssembly.dll+1097BE0
GameAssembly.dll+1097BDC: 41 0F 28 F8                 - movaps xmm7,xmm8
GameAssembly.dll+1097BE0: 33 D2                       - xor edx,edx
GameAssembly.dll+1097BE2: 0F 28 C7                    - movaps xmm0,xmm7
GameAssembly.dll+1097BE5: E8 76 E9 3D 01              - call System.Single.IsNaN
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>258</ID>
          <Description>"Fast fish struggle success"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version:
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.org/
}
//Fast fish struggle success
[ENABLE]

//aobscanmodule(INJECT_FAST_FISH_POSITION,GameAssembly.dll,F3 0F 11 87 14 01 00 00 E9) // should be unique
aobscanregion(INJECT_FAST_FISH_POSITION,PlayerStateFishingUpdateMiniGameProc+80,PlayerStateFishingUpdateMiniGameProc+580,F3 0F 11 87 24 01 00 00 E9) // should be unique
alloc(newmem,$1000,INJECT_FAST_FISH_POSITION)

label(code)
label(return)

newmem:
  vmovss xmm0, [vf_position]

code:
  movss [rdi+00000124],xmm0
  jmp return

align 10 cc
  vf_position:
  dd (float)-0.9

INJECT_FAST_FISH_POSITION:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FAST_FISH_POSITION)

[DISABLE]

INJECT_FAST_FISH_POSITION:
  db F3 0F 11 87 24 01 00 00 E9

unregistersymbol(INJECT_FAST_FISH_POSITION)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+11DC6CA

GameAssembly.dll+11DC6A2: 45 33 C9                 - xor r9d,r9d
GameAssembly.dll+11DC6A5: 4C 8B C6                 - mov r8,rsi
GameAssembly.dll+11DC6A8: 48 8B D3                 - mov rdx,rbx
GameAssembly.dll+11DC6AB: B9 88 00 00 00           - mov ecx,00000088
GameAssembly.dll+11DC6B0: E8 4B CC FE FF           - call EntityUtility.GetConditionValue
GameAssembly.dll+11DC6B5: F7 D8                    - neg eax
GameAssembly.dll+11DC6B7: 66 0F 6E C0              - movd xmm0,eax
GameAssembly.dll+11DC6BB: 0F 5B C0                 - cvtdq2ps xmm0,xmm0
GameAssembly.dll+11DC6BE: F3 0F 58 C0              - addss xmm0,xmm0
GameAssembly.dll+11DC6C2: F3 0F 5E 05 96 B0 36 02  - divss xmm0,[GameAssembly.dll+3547760]
// ---------- INJECTING HERE ----------
GameAssembly.dll+11DC6CA: F3 0F 11 87 24 01 00 00  - movss [rdi+00000124],xmm0
// ---------- DONE INJECTING  ----------
GameAssembly.dll+11DC6D2: E9 11 01 00 00           - jmp GameAssembly.dll+11DC7E8
GameAssembly.dll+11DC6D7: 80 BF A8 00 00 00 00     - cmp byte ptr [rdi+000000A8],00
GameAssembly.dll+11DC6DE: 0F 84 7A 01 00 00        - je GameAssembly.dll+11DC85E
GameAssembly.dll+11DC6E4: 48 8B 8F F8 00 00 00     - mov rcx,[rdi+000000F8]
GameAssembly.dll+11DC6EB: 33 DB                    - xor ebx,ebx
GameAssembly.dll+11DC6ED: 89 9F 48 01 00 00        - mov [rdi+00000148],ebx
GameAssembly.dll+11DC6F3: 88 9F 44 01 00 00        - mov [rdi+00000144],bl
GameAssembly.dll+11DC6F9: 88 9F 3C 01 00 00        - mov [rdi+0000013C],bl
GameAssembly.dll+11DC6FF: 48 85 C9                 - test rcx,rcx
GameAssembly.dll+11DC702: 0F 84 E1 09 00 00        - je GameAssembly.dll+11DD0E9
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>640</ID>
          <Description>"_not working"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>252</ID>
              <Description>"Move speed multiplier (Disable will cause crash)"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.org/
}

[ENABLE]
aobscanregion(INJECT_WALK_UPDATE2,PlayerStateWalkUpdateProc+300,PlayerStateWalkUpdateProc+800,F3 0F 10 80 60 04 00 00) // should be unique
alloc(newmem,$1000,INJECT_WALK_UPDATE2)

label(code)
label(return)
label(vf_walk_speed_multi)

newmem:
  vmovss xmm15, [vf_walk_speed_multi]
  mulss xmm7,xmm15
  mulss xmm8,xmm15
  mulss xmm9,xmm15

code:
  movss xmm0,[rax+00000460]
  jmp return

align 10 cc
  vf_walk_speed_multi:
  dd (float)1.5


INJECT_WALK_UPDATE2:
  jmp newmem
  nop 4
return:

registersymbol(vf_walk_speed_multi)
registersymbol(INJECT_WALK_UPDATE2)

[DISABLE]

INJECT_WALK_UPDATE2:
  db F3 0F 10 80 60 04 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+8D07C5

GameAssembly.dll+8D079C: F3 0F 10 7D A7           - movss xmm7,[rbp-59]
GameAssembly.dll+8D07A1: 8B 45 AF                 - mov eax,[rbp-51]
GameAssembly.dll+8D07A4: 0F 28 C7                 - movaps xmm0,xmm7
GameAssembly.dll+8D07A7: 41 0F 14 C0              - unpcklps xmm0,xmm8
GameAssembly.dll+8D07AB: F2 0F 11 46 38           - movsd [rsi+38],xmm0
GameAssembly.dll+8D07B0: 89 46 40                 - mov [rsi+40],eax
GameAssembly.dll+8D07B3: 48 8B 46 10              - mov rax,[rsi+10]
GameAssembly.dll+8D07B7: F2 0F 11 45 A7           - movsd [rbp-59],xmm0
GameAssembly.dll+8D07BC: 48 85 C0                 - test rax,rax
GameAssembly.dll+8D07BF: 0F 84 A1 01 00 00        - je GameAssembly.dll+8D0966
// ---------- INJECTING HERE ----------
GameAssembly.dll+8D07C5: F3 0F 10 80 60 04 00 00  - movss xmm0,[rax+00000460]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+8D07CD: F3 0F 59 F8              - mulss xmm7,xmm0
GameAssembly.dll+8D07D1: F3 44 0F 59 C0           - mulss xmm8,xmm0
GameAssembly.dll+8D07D6: F3 44 0F 59 C8           - mulss xmm9,xmm0
GameAssembly.dll+8D07DB: 48 8B 06                 - mov rax,[rsi]
GameAssembly.dll+8D07DE: 48 8B CE                 - mov rcx,rsi
GameAssembly.dll+8D07E1: 48 8B 90 D0 01 00 00     - mov rdx,[rax+000001D0]
GameAssembly.dll+8D07E8: FF 90 C8 01 00 00        - call qword ptr [rax+000001C8]
GameAssembly.dll+8D07EE: 0F 28 F0                 - movaps xmm6,xmm0
GameAssembly.dll+8D07F1: F3 0F 59 FE              - mulss xmm7,xmm6
GameAssembly.dll+8D07F5: F3 44 0F 59 C6           - mulss xmm8,xmm6
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>256</ID>
                  <Description>"multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>vf_walk_speed_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>503</ID>
              <Description>"Inf. craft materials (No effect) (turn off when not use)"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-05-12
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscanmodule(INJECT_INF_AMONT_OF_OBJECT,GameAssembly.dll,40 56 57 41 56) // should be unique
aobscanregion(INJECT_INF_AMONT_OF_OBJECT,InventoryHandlerGetExistingAmountOfObjectProc,InventoryHandlerGetExistingAmountOfObjectProc+5,48 89 5C 24 10) // should be unique
alloc(newmem,$1000,INJECT_INF_AMONT_OF_OBJECT)

label(code)
label(return)

newmem:
  mov eax, #999
  ret

code:
  mov [rsp+10],rbx
  jmp return

INJECT_INF_AMONT_OF_OBJECT:
  jmp newmem
return:
registersymbol(INJECT_INF_AMONT_OF_OBJECT)

[DISABLE]

INJECT_INF_AMONT_OF_OBJECT:
  db 48 89 5C 24 10

unregistersymbol(INJECT_INF_AMONT_OF_OBJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: InventoryHandlerGetExistingAmountOfObjectProc

GameAssembly.dll+D598AB: 48 8B 5C 24 40        - mov rbx,[rsp+40]
GameAssembly.dll+D598B0: 48 8B 74 24 48        - mov rsi,[rsp+48]
GameAssembly.dll+D598B5: 48 83 C4 30           - add rsp,30
GameAssembly.dll+D598B9: 5F                    - pop rdi
GameAssembly.dll+D598BA: C3                    - ret
GameAssembly.dll+D598BB: CC                    - int 3
GameAssembly.dll+D598BC: CC                    - int 3
GameAssembly.dll+D598BD: CC                    - int 3
GameAssembly.dll+D598BE: CC                    - int 3
GameAssembly.dll+D598BF: CC                    - int 3
// ---------- INJECTING HERE ----------
InventoryHandlerGetExistingAmountOfObjectProc: 48 89 5C 24 10        - mov [rsp+10],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+D598C5: 48 89 74 24 18        - mov [rsp+18],rsi
GameAssembly.dll+D598CA: 57                    - push rdi
GameAssembly.dll+D598CB: 48 83 EC 60           - sub rsp,60
GameAssembly.dll+D598CF: 8B FA                 - mov edi,edx
GameAssembly.dll+D598D1: 48 8B F1              - mov rsi,rcx
GameAssembly.dll+D598D4: 80 3D 0E 5D 47 03 00  - cmp byte ptr [GameAssembly.dll+41CF5E9],00
GameAssembly.dll+D598DB: 75 37                 - jne GameAssembly.dll+D59914
GameAssembly.dll+D598DD: 48 8D 0D 5C 8C 25 03  - lea rcx,[GameAssembly.dll+3FB2540]
GameAssembly.dll+D598E4: E8 97 9F 8B FF        - call GameAssembly.dll+613880
GameAssembly.dll+D598E9: 48 8D 0D 50 8D 25 03  - lea rcx,[GameAssembly.dll+3FB2640]
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>501</ID>
      <Description>"*** Core Keeper 0.4.3-b0ed EA  /  https://opencheattables.org  /  CE 7.4+ ***"</Description>
      <Color>800080</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>tapmult</Name>
      <Address>2088B700000</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
  <LuaScript>AuthorName='fd01071ec5'TablePostUrl='13431d5d64d03c52b75e48ec4034045a0fcfe966f4e79c54ac9a35e00b5c01aa8fdc2f1dcc8a1fb8ae58ecd967a1'FooterLogoFileName='62ba7dcf16c1b33ce6d141df48a0f09698'AddLicenseLabel=true;LicenseName='9abf9508b3c9ba'LicenseFileName='57f0f0c2aa4b945f19129c'Key53=9875711438865098;Key14=1380;function deco(a)local b,c=Key53,16384+Key14;return a:gsub('%x%x',function(d)local e=b%8589934592;local f=(b-e)/8589934592;local g=f%128;d=tonumber(d,16)local h=(d+(f-g)/128)*(2*g+1)%256;b=e*c+f+d+h;return string.char(h)end)end;AuthorName=deco(AuthorName)FooterLogoFileName=deco(FooterLogoFileName)LicenseName=deco(LicenseName)LicenseFileName=deco(LicenseFileName)TablePostUrl=deco(TablePostUrl)function tableFilePackageLoader(i,j)local k=findTableFile(j)if k then local l=k.getData()if l then local m=readStringLocal(l.memory,l.size)if m then local n,o=pcall(load,m,j)if not n then error(o,2)end;return o(i,j)end end end;error(string.format('Error loading table module: %s : %s',i,j),2)end;function tableFilePackageSearcher(i)local p=''local q={i..'.lua',i..'.init.lua'}local k,j;for r,s in ipairs(q)do k=findTableFile(s)if k then j=s;break else p=p..string.format("\n\tno table file '%s'",s)end end;if k and j then return tableFilePackageLoader,j end;return p end;if not TABLE_LUA_PACKAGE_SEARCHER_LOADED then if RELEASE_MODE then table.insert(package.searchers,2,tableFilePackageSearcher)else table.insert(package.searchers,tableFilePackageSearcher)end;TABLE_LUA_PACKAGE_SEARCHER_LOADED=true end;if not REQUIRE_BYPASS_LOADED then local t=require;function require(i)if REREQUIRE or RerequireList and RerequireList[i]then package.loaded[i]=false end;local n,o=pcall(t,i)if n then return o else local p=o:gsub('\n','\r\n'):gsub('.dllC:\\',".dll'\r\n\tno file 'C:\\")error(p,2)end end;REQUIRE_BYPASS_LOADED=true end;require('OCTLogoFooter')
</LuaScript>
</CheatTable>
