From ba1a0d6df364237d6964f36d30595772fb29ed41 Mon Sep 17 00:00:00 2001 From: JoshuaMK Date: Wed, 26 Jan 2022 06:47:34 -0600 Subject: [PATCH] Fix more (de)compilation errors --- lib/arookas.dll | Bin 0 -> 64512 bytes lib/arookas.pdb | Bin 0 -> 26296 bytes sbdump/main.cs | 62 +++++++++++++++++++++++++++------------------ sbdump/settings.cs | 4 --- ssc/binary.cs | 8 ++---- ssc/symbol.cs | 6 +++++ 6 files changed, 45 insertions(+), 35 deletions(-) create mode 100644 lib/arookas.dll create mode 100644 lib/arookas.pdb diff --git a/lib/arookas.dll b/lib/arookas.dll new file mode 100644 index 0000000000000000000000000000000000000000..057de470eadee735cf6e07977e18c8fcf9bd5793 GIT binary patch literal 64512 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 oZN^75|$ zyohI1J%*=vjNcPIh9`KeKBhYGoE^kh{65=z@SgYJJ@3JD-h-dM2S0ref4}PfoDQJMfzwbrFyJoI8KER+}u> z%Ie%|+wHn`(|yx9za7%f*K4(^8+4lX{!-Hp0$o$uOtQ_Er@!=DS_tK-7MhA)rUZJ` zZuX=Djgr;WG+Ffv1U<@UT2oP7fD2A{Yro?Juesg5g)Y8$e7n~bw$E!%8oYYr5oMs$UF=2kX|A4La^NKwI~{q zQ0c-11YxPa0p3(uZaOWfG^}7yQ@G@{Z#ll`yR3GdZtdLpy;^O{x7$HSW@5F0w(gGW z_+_=?d##NNi?a)p0&Z?iFHK@XIT@2RK#?$Hu1PF}iJ`D>Sb|Ey^x*aaX0X<`$P5I>6L+u3n$Vp=xOwnZdhJgkbGwE1x&!ofh zpGk*_KZ`yEYY6Gn1XkM(=g!*BYkQ9GoNvJ3KwRmy>&UM3noWDV=>S|^@>-b65Torl zA-3i3L&*WFt@}>Ht=nC~n_atp6S=+ac}>lt*>vh%*J}e?exnEX)ZN#79iJ5pS1b)+ z7wuqg)9I3a$qktMyW6vKv-YG4y3=*4?xSpsWvyCm#ckWo=KiFr)gVjPtuOe#y-&|b zZ?g&C_?hV`MN?lv{+jQ09RgzeAz{-HLLB*)cXhSh6+q`=yJu@t>fA?8xs>EL!@-FI)ni>$Uf zdfUP3_1aaZYrDu9gV66yZWi$;7M4z7Dl3=w#<>2%CSDf1y zddSaxw39ENcj@AtCTexzDF;wH3}>E23;INMz1(gnyMgeep@QCa*SGfwE_6CVaq1qh zmebwy8ZtX8o`2i+8&^9_)sDv078b1I@7Q%mMJ5~cX&0PsA6X4v+rv(?*#zdVali}) z1`xBkVYdP385a;bSZ&|(ZaQkw*>&3n9@z4utr@|9TGdm>P(axO@G5lEg6gFJjU^;> zS!>IydOZRgJw$;mM`rD!-EQ6Dk6R zLyQJmmwU~w3;&^7A#lmTLIRcO8Gx_ihKAQ^rsZ{K#aj1}g=~{=}BGEy=#7nb>WOY(=rWy4D9}I>RNZ7y!CW z#}{`7wvB#8x_~~W1)?NJX#+y`i@^6)H=zCXX$wK%w6>f3TQ2ONPhQ31wGnm72rt|9 zJxp%D)Xd`H)2WJB`F6u;+5XLbgDvcjPItwJ-Q4yD3!vNvj^!T0(thn$9}HD~(WOJ` z)0gjbopykBeNxyxSnjyHJ&6Cz;;IwWeYbPC5MJBHlDG_2IDVg{o(N&I;WX_#0tNkY zP8;I;TP{M=J~b3%-N)Wt?>=3yN;? zTN2LqX`v(>huz-q7Z|T2^sc+@^4QTYW!H9OjTfBm!gk;_aRH$=7x$5JBNRYPS|B!A z#2zljE~{QSI1p)wh49Q8X=qhz<6sn0D87MMgmC^actMEp!Og5q-^#zj&C*^*D4qF3tugN9I zKRbtz3}-ig-(Z`)?LgBF_o{E-mhrgV`kq?v1$&4|J@2L+OkB3RKqRGyC3%Z88x* zd+`GPDxTe>JbthTpz73JL^_;s_y>J36O8e}u8$HkLK-Xf6vT1Z!@)r7Lrl=W+I5@i zj-=tJ8_lNj5gTeTcy13FU2CDW(G6iryo&XUJ%4Qn`gQD9M3dd0a}|}eObw_%s)(pr zYzAJlr4Y%qOjn2pu>{@SHeEC~YPG{eZh;Ue0pj^y*^(~E^^;n})qrES(Nyovkje#0 zA(!?IZ~@^ANRo<{FS~8nJ|5_K4Xy>Cr?VEog#d}v6aTP*h{kIx#H4WYZGyPPsk*nY zH2`Ku#zaZKN~4p2orNv?j@#f?OeN$HgcbGBa zOPTa=b~ctNaWjNDL6=+m!w-OXO7_4?pm+Awj;sl z(`7W_K6SuY`$U8~JS)(gLXJ-rE@7AH6J-bRoh?tTVkvO^tL+_+H%$?&H$@>+M_+J! zPhIf39&S~fj@s-px#@NkF3?*YweEG)CC3L10SqqWVegmVhI%0A(}QkUYEDf+UE)sz7fB_ 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 ljAVW0|95NPe*?|GsBi!P literal 0 HcmV?d00001 diff --git a/lib/arookas.pdb b/lib/arookas.pdb new file mode 100644 index 0000000000000000000000000000000000000000..37d8ad5eda38cec127ff6b59af7c5b9816806ce7 GIT binary patch literal 26296 zcmb822YeL88~5k-Hkahm+odO$oODGW`8;Xj8fKmh$QN)4* zA{K0jf5i&+iUmdVZ^woW#rOBjZj#59|ND90@cG^Bcc<*k?94M|_m2MKhxfM#i=aP$ zXw1O=&PDk-dGds?i7RlRK`CQutLfaIP+2*6xe!GaLewK_%J>#fUE}O#^54}{2o-M1 z#PQ;G9FL*nArprUg!?o2nQq|z^-YwRMcJIY|Nh%XKKPYw+TNx!pFZLHvKlW)1L zyKe&gaXb&|4^ck$C_?yHg$Tj%MtFL`-38&a7zEMz8ITJKgpft)N9ow0Sm-i{&Uc6C z4{^yGe`j?^JR@RoMAzB??Z7dLD+A%uVv=GNa}-rPXtj#xtg7gtT16jK70<$b7jBHr zDza^=xYO4v9`jYj0)MMm?XQZ@;QkKxu>h-hB|sI|23y4~!K(NLu02E*QQ?Reu8Q?= zcf*|#VHKVTRU|m9qQIewB~ezfHcAzzqOIawv?`L~t)etu72^}FqApPtpF6GMPp2wg zO0kMhQdF@g)hZrIRmE57R&gO6@v^Mqhb&c$?Pe9TyQyL$+}&{hfB!6EjbcH~Sj1Ln zHxz8Oh)5^_N`tbYLTDH?2AT}rWL3l$&{^m_gaYEvDrTa_euwN{s)&WMpP!%*E zS_|C_?Wf!QfBo|kqikMc0yGV(hU%dC&|+vgv>I9q-2iQeZiQ03y+kh56B+`IhpM1? z&|>I%Xg9PMItYCVeGUBtorkPGUcwIwgJPi+s5?{$?S$@t_CrCwULq1ogfgH!s0`{0 z4TZ))Q=pl?Ht_-UDfAWe1LSSDiFha#>JC*x1EAs1SZE4V1w_D-2&YS9e^H&o`jx*UV+|$PC@^L&O*OJe?#8>HW36xLWxiYlna$YeW2mcIDc<( z2ec150v+@B5itQiA_>Zba-kBa7jy|U6`BQkpykjt&_?J+=n7$^zKj|dbuK>MKwp~s=8p%W}1XdE;(Dp>4;9)KQ$jze!i zC!tTEFQBu~FVJ6*8XYWRpggD&8U;;&ra{$E9W)pUjD*q=i@+ZiTOoX85m%&=ok;)@7@CJth3hkr2RTNu-vf1AN7Ql!o` z7J^N|+CiW8)0!ugu{Su(#Nmu7KM^K&FphwKBx6cHiZP`h&3F@I3fpe54f&%RHXMpU zcyA-W6h9WZ=NxC^c*f}npTIaC>}2c!Cn2?t^n$_3jA<>D!kGM185e=m7)OKCO`O3P z%RiK>>v|KwS&VbR-57_1yPLR3_~MLy|0sXOj8nlSCN5=63)?crbU(`(2Y@RW)0(m; zWAd*waWBSx@bAr-;`cFeU&bfk-@#=#rurlHLHVZRnAWVsm>Y^!jP2n4U@VhGKlu6? z^+DI~Z{h)rgWx}qG4+W-jHx~cGfn{yVNC63DC1=CFvfA<;f$%hj$lmpb0p&i@F>RA zJ}zNQ?Q1k+G8AJN7lOw!CjW7ao#63|Dg6nI3&0Z@mw+cRt^rSG?2Tqe9EkdU0e+Q+ ze-N1NCAF_9@DDcb$6WBGjH!=LW&F9p5eQFpzYm%Qe}@sD`tN0obHLLXlm86H@ z{AZfj#n=b_)r_%4BWf5^d#Ytj?aj@Y?*A<89ChTE?)PlQ)c)r%rt;S@jsnjGM;hfN zo(GOHnA%&ti5nP`J!)i3C}V1$kD2&!6F*_%BaErPJPA%<^>Nh1Pcf$c z@*l91^_Qnne;rKaeTFgR_ZVZUuV)#P{eBLdWTZ#@JUE&03nqS%F{SqsW4hjP#?;&;Mbx{>}sa2Pn#;NjqKa5sa; zfg`}(4IXN6HkjHn*>?y0dl>%149+q9seF;}&o%rjz)|2lgXwzF-~xlkfMdW#2GjLp z!NmsC^@&Ts9oLTomm2x!=H;t~Y=&+2etXDZhhE zJeYAL{D&~6>kVa0=?`N}=?!O0_hSTOYTqMGJc=>p?-Isk;L(h!eU35lSjIHJ8OL}C zcs#hDQJ=F>trNh5SbLhtxC!AWF{b=ZHt`h36#h~ZPi0K;r!lsJFJnwLVmf2$FEbcZ zd#GX@0G`QsEZD`E_6w@PgN^bvf@{D-489Ru3m#!G)t8&`Ch#oqSi_&{e>USwz;hU% zGk6@rXXE%NR0sbFMts_Tn#(v3Jdg1(a6MzPzYQjCWPBR_O^j(jWj9<`eIauY8#@f9XsX5!_HDZg!u z$-ZeOZf8v8S;3g@$4bVuKf8)C-NV(4CxfqKO#S&P##BF7Gp6>uhH($@HH>M#cr9b{ zUu)uZjH&%!XX5pYDgFk=6n-OP^1q%j)!z-4^v?TD{c{szvag#Nlm8aR0pP8S$^S;i zWS_P%rv9~^G2M?HCccR=)aXH4-AnD{;uA2jj(jOl(I0#7s2zXALJW2%n_P5cmJvfmFgruKN4F}43k z7*qI18I%2ZjB%mCmmxni_L6;j9RAad{89gXf^k2_WSgk{AA$c2BRtvPCoSDNncBlq z##Db#nfO19Db1%DQ+s)aG5H^3OnH8mFM)z1rzDg770F2kSZ%P*Pu zIAf~66DEF{F~xty#IG`@_^+Axb;cC`4HLh~nBu=>;3;{j)Kq{CG1a`|iV-)*rqmwlk*t>&KYl`!lBa0VWP) zO!XPWnBoUBruZQy4rNT&4`WR6!x>Zj2opOP)Ab`6Q~W5#6hGR;F^uW@v5YBx9Ak*CW=!!@7*qUI#uPuz#OaKC!9N4sYP2V6KbefF{bVtw@tHHF z-wpnk8}U;Z+i*MwkWSjU(T59bp>OZ zuMlrQcq%)!kDlO-Mtr(o#Mc}CWM3-5H!y$BlwL3RZ!-L;emPTmz2U#v@TdH6rkBwA zz<-P3pJ8GO-xvN{4S$+X5#I==_CWdTrUm$uNA!VF$b3NX5UC$$pGtOm#e(F}3e;j4Awh#uR=cV+uc6adf6n?dwt# zPh(8^o57gUuQKsW#&kUwV+vnw;u^*jzLqhCcQYpcS&YelHe>Ri!h$iVoc@VV&ZM+za9N&Km0qG`sy&~Hu&FU^e-AS_Mks<#wqb5WWkd{`i9b# z`1BI3_=K&86ytamj`g>~6!~tLResX*Av#Z%MZvQb`kqZKK2-!C@I63s_o>vIEkd#RNOz?#Sz|wWJk_5p4OusfIPOoQG+ACR$!CJ8#gHYli1T68 zO2`UXL`yi0{+C2e+$4E?B%1nODwHN!jn9Ca2~mHxi2jM);bucU zBp-KDZ>L=u>gi$f+^WmQBx?I3x&%iYF#ZZQC%&XtMNji$L*>WHFN6fYsIW4 z&tjLSRy5;FqqT0~YMfo~7Ilp+ZqF=NjeA1te4J~6U-iNkw^-z=U+5O~h>b6p3YTX# zjvHsU%)$P_e3!@7AnID&4SK>JccZAUYjoE&&T7JP+~aO=)iu_-J)(NytXXgtxocXQ zJh=SA##*{cbJt~>MRjWnPRJztdGJkE*OIzsQPTv?ad`|6H?l}4>zl~&G&LhyT}!iY z*Sj0sjX0R+Zf(YOTcGBJ^(`G9qPD4KA%#HPh4`#(Y7xx~JS_s3Y(dFu-AlkrP&$vR z6=CML0!f$4%0?^s=E8%ou3b5N%gMpjs~#KiuFsHB%NuaF)Weybka=UMMJLN<&SM@R2gZcVu3?uO@nYZ-c^dd}mM@=h%f+C4Q* z4fE^j-JTwcP^P-3Mp2kkmXp_`IHw@5B(EqZKd*baySAvhw6v(UAg{bAudFPu)?HRR zE5F87R-IQ`oLA;@<>l9u)zpf5+`)ye*={i)MKsNCscWda+|@!!dQdU0X1DO5&~**& z&Px^HQbk1tdH9lXN8C=o(wst3>z;+%D8>yMIjG8GC^Fto^_LX&46de3?d}}irL(YIEkJ|{javVZBRpGySXXUXCyM`WE zUZ$;i?Bth5NIkjT6i9Q3V@le|8@&(q-+o}woB0RxVvRrpJ+8%Qdq#@w6c{FE>YUFO zP5Smf{qI}fsBTWbC)5Z$rJ>#kxS9g?4HSphzPKXh=GdY8o~lXycD3plc_ae)!q zL!m#0t;mYsv+4flh8+6r@T;drUUEs8%hS{}&((}V)z_o_qFS46dJ-L%WIi!Q;_Ot; z5O<^7Q&;0>c+oXGjwiU6w1isP_gdPISlW+S+TXRb|72@X)D-u>Dt;kqWu%diLAN(8QJp9zG zWY05i@A&A@6WJpUd~oK-)cX%ad~|i;8>LC}!(N}~P3F=OfbW;W39*x*42rPPo9?Og zu&4zNt4$Q!6dx?;@jiUG0yCs4nXs7(CMxr6*tb~VCqfmhRt76dsPI?YtU!U}6cK8} zT?$hW8PMBCmd+-W*>TYjdx_JbOQRyOoh{TY%!h>v6FGG z7>@h|D2g{ekO3oN@)$khcy%Ch7BN}HyNHTn!=?__QpheQyfVAq*mhWufxQg{1A!vq zk(5vtCt!r|B|9AvT;)wAkaba~T5(eXYU`R&-LC5Ti&gK+JDsQAY`dc2X}hmj9{gmt zO)oUR^5?^s{CG#`)W|4p{(-3`L>u z(4g|e;1Ne2bk^Otu;C)Nbyb@4vsLN;`DMgk_dWgM)eXL1y*q21wT@I9)f}TMg}KyyM)njK&+$*+LuUH#Nc}j%uoP*LO7KfpxCgjZMuhbv4btM!;dC zgDk6NQwv>nxn~GSJ~rFRQ5U2 zF!1lw6B|;CuAoBt`Qw}Vg$kCSC?uT-qf(bBN=V0v&{&*Er~7P#=$4{JiZKdSHO7hf z?rI2jb-F^t7nn|zm#fL0A!r0I?574|<597Qg=$-x(6%T_Vn=di!&Q96Qc>{Erk)6O$mFxFqQ$&^OqzW0;{k-K68_q5I|OPN7}X5U8lP z>JTFo>=4B$cogTW*fHC}gj#9!7uL2M75#aE7k+QS)#aC=wBoyB|4)9gHdjz*nnt`l z72UcC-@LI^kuA!bXrpi0%%bD$$?|vx9VcFDqi=rcw?*T4oIGD; zqc>jl^DY}&ju=Oixxm@DkuVKD*aXH0j$rPTHfo0f%< zuFi!WjnPhm%N5K{((mvhbnbIBB?v`$Gd!1@GIw58SL0yMA zGzMebWrOaTIhHle)+G(~{+%;lbjC2#fVyVOn(fXpx#JccY#4jSQ*reD8@9iHOZxh- zOPp1MV~+KjQ*wIs*FC9sh3Z49Geq{M$Z&fEMw#p=FK-d2qVd=jtXpDjZSri&KhDP6 zNUoD8_mwQjQb)SeevQ4tYtvrIXxGcLqu)Wr%c~!=;lnN_X@zGI_kD za7a~>Lj1Xwf)Fu-3{vzVEo74~t+I_TJ z)c|bfV&Ild4_#Kf19l(FC2b#u*JwE)C~bPfyDMB720{}_S7y&w;mmk%2n2`s&-n%;``$5KJrvbyT5cJ+k;eJV}h-Hx1SQZpmwFo!6{<`M%?=bB0fP_}E>M-_9+*;p^c8-G40msqy1))_>{$ z=aaG}+w~S0Xlj8O;qpF5MymdDZm`=TyO3YUO6%g+e9!s9J7ITS`p3Fsb$ce=blo>E+X55;TcSx<8{xJ_DC5$vOPxi zZK|G&)$B#v^M-ckk9TEH9M)&<6zAD9JA0pM+%OU_eOt`kMBTPg`I)^&K^z2CI(T*^Y9qAnH2!s0d#@LX7?oE@BLE6jA&X7+Q zIyU(X!+g8T0+CN9x^y`01EZ$3&%La)C*m!7>j`$#zKIQ|4dMV1seO;Dg;VeAtI7dt zxVJSJD@tLbZn64PyQgzWZg0Q_=N#9?ddMbaQ-JfJUv>GulF{$m-}^G}P}GW7t7|I{ z+`WIwb7YLJtv(R)dys=Xu1gM}aV+B1f$ z_>C5SVNB{rxmxDDmDCMO`7yh-r);B1o$MugK zbKTwd#JxTLNI2YW%fj%Ns9#0q7dCF%`>n{Tz zSaa&e=g*!RcGJnM8ce8go+YmSIf+kz;#{-I(CNY`@bW&9(N4WUAwTLkT^|@Qq*tTa z3!4G@nx{xkEv$2wsD60RQr4zMcp*Ff>C}<0R)Yz0Gq4AsZNyE?rwt2C@500cMadF* zs!tefQ7eACPHl_8>qc1gC+pLQ0&S<7hNm^D+HEkY*yjwy&J#XT=>r%<7(}Vl?7LJu zNMk5g_7AFgcodU?DTJ|;fOcc00{Mt!vN)NF;!E|F<)zw%cAdxwG|b|gh|sagKuM04 zi+Vh<(-#m(`V-?4a=`%BX9vaF?{r>_(*9CIQ0i>V2BK-D6pGhVD05ya<^vQWqCHUc z)6IznJsb^KUtm}JXJas zGo(|X&tYj4s!L_vhG;AF6%Q=ws@=3%U)N-- zu4{C8T77i~)f{2kH`w;lwwJfP|E%bcnoqr;0~(=Z;;Cgn4ot{<{UPa>O=XhjkT z{6FI)`Ba6`^=R(lz>UODJQ~9msslR#SLADflxvOWld`FE~%6E?SOVy1$}4rz8AjZt6}vVvf9CkEmTO#LZDiRu%J#}z1A zmfD6*O$84`@FZE=3nOMg2If1RPz(cvy-Yn=FYN&pKZ~FjC{lYE1}w-Z5Y38lUxTzK zaI0h5C~2EaIzTRR;*l3Tj*gZq9L!;;%JkjcZb~bDO{=q-18gpuE(gh7k0M1x==TWM z%*5*nk+5C%&ZxtbR%d5aFA-sL$*on2ABo)%JMAUMQB#no<%2K%$wEh8@}-B=a=+qY zJ?Q30=T^Tf-`J7SI&RRi^ZmEa95&*myMwM;;&rR9J27)tyWhT{)FS--uxD#gm(p=m z5VkFhV@FumadIR*T z<11hcqNv&eX%`%i^83r!g@dG1HdHzlBczk7ue0;@b#{rq&Mwo}*?ERha>xYcEv)~lZT954r7SPwKracMVG-=wp<9}L7UnZKsQA0^!g~RDq0_g zLhCXZ5A+-S2(FLID&ke2P~^YWhnlV(uLI)!1k4BQc+nQa30h((&EJg2Y#2skQ5O|h zjwj+xQ3XGENPe=_6e}VHelZwC@e5fra|%@3WOwyZ@f*!)ZJ0g;;MZhPMQK=^sx2GVjA#apV5%lThgC=W2f;`@DnZ^deAy zG?yGzgiB!Pq>d9nPd&5R+U#h?^3hz31G$f+%0}ClvEpFiEcmfjytWaS2v5ute8{}f z0F|7E`-6E?SLp6W=n}M^98>7DB2(y~3K=>z7{)rG7usDA)}weTq32{UPVk%rjbx!m zn?p}wp($%IGZ8vMMbkk+V(_j>)+}5-g))z3q+(vA_|gNA4BXfFMwk>lh{N=cZn>Nt zp>iTAc32yXGmJ{d%Qqj(EOqmPJL^b-V`sk3RKX~dG9fEzT zI^#zdpamK6oh4mqMVISo(e+Y$p`b>XNt-%hNI)S|H!W6qA@C-*XoU8 z(1fn=y(f2t88Ef$*ja^q8{zxcbcOFZt1C?3x~}7bhOYDnEa(bf+0qrJ-{P+0q$~9F zX&@PZ4R~1qf=VpXWeEuSX;*eZA-3RT8OUcKM!U{9y)fE!#_5mIt`iEeInUzU%;W6p z3f3RnbDeRDv^%@v41z)EyiRXze^;;p802J}SiA;Rq&=jD>7z!jf_JtsWx-Fq=>s6` z;K{Z@`Hs_$>Nhk2jl)+v<}2+G##a2wap!o3CyPntm@8{1@RROn%GlkZPP+hh1@oY` zIJ7Q$o{1$9M!e2Zw^Vya4W)~Q7>#?rtCrq}`X7ya_an~K$kX1QlOuXo;C(P}jEPuvd7(^-mq?&4h}|=KVy8FiaI)Xlwi5h2 zyQsr&m-|$q;i$_7^+eprf5(*%<~nSDq|)k576>yB6=vDmiU9zr;1|6E@qiDh=oa){ zznZQWTLQX{Q8M#0gWIpYeXDcKTi>^)2PDKdP5bk<;q!j--tob{mnx$@FJ1fShtH1P z^OAfRo$ReCPNA6t_ zs-4Xd(<>RImIcAMOwZ6eOc{d2Q-iM8+jF|oieE!*8>wO{HXZ|ztxEbX(0#L%R{S>V zzkC<{Bkph&W9~$1>3ZCy|A@2{kjKsIyQbMkGyJZx)-P?Ui_4B?-`gz|naTZcgdt}+FdefU+p33@2x##_&=>*T6?;T zlI=02Ksqy}6H=E)i8-_{ox1yz%vW$SniO_(3&xQX)Cd0&0IIFGbPD@Ah$8w)itmqk z5#Bo)fd2;o=5(N3ym}8TqSOMlvwq$KXhHR(pPu?T>4s~+`-R|qCf+Hq!8XwgKl<9G zSo<4iuqz@5VcN+KZnt6iDW4_C4=h;Z>Yvh!Y7c-PxxuuK6^{0BxJZglrnW~)&$RX! z>4s{DbLo7bcEoU>$t@m;6LBJtUM#RH>DX&0`_kY~b|jD{!gv~h373ktrnDx+2#bFe z1`BF<@()|&Vhuzk_nwp@ozMcitGR*Re1+vSzleADo6hn@1D>1KGwUN%;?}PVkn=kfm+up04=guV+U)b23eD949zIR<+;?vnlcV3bI_^O@v-&)yt JbDXyA{{V6Iq0s;U literal 0 HcmV?d00001 diff --git a/sbdump/main.cs b/sbdump/main.cs index 1ed902e..f6308ed 100644 --- a/sbdump/main.cs +++ b/sbdump/main.cs @@ -158,8 +158,8 @@ namespace arookas { } case 0x03: sWriter.Write(" ${0:X8}", sReader.Read32()); break; case 0x04: WriteVar(); break; - case 0x06: WriteVar(); break; - case 0x07: WriteVar(); break; + case 0x06: break; + case 0x07: break; case 0x0D: { sReader.Read8(); // TSpcInterp skips this byte WriteVar(); @@ -294,7 +294,7 @@ namespace arookas { } case 0x01: //flt { - Stack.Push(sReader.ReadF32().ToString()); + Stack.Push(sReader.ReadF32().ToString("0.0###############")); break; } case 0x02: //str @@ -302,12 +302,12 @@ namespace arookas { var data = sReader.ReadS32(); var value = FetchDataValue(data); - Stack.Push("\"" + value +"\""); + Stack.Push("\"" + value.Replace("\n", "\\n") +"\""); break; } case 0x03: //adr { - Stack.Push(sReader.ReadS32().ToString("X8")); + Stack.Push("$" + sReader.ReadS32().ToString("X8")); break; } case 0x04: //var @@ -317,20 +317,32 @@ namespace arookas { switch (display) { case 0: Stack.Push(FetchSymbolName(FetchSymbol(i => i.Type == SymbolType.Variable && i.Data == data))); break; - case 1: Stack.Push("local" + data.ToString()); break; + case 1: Stack.Push("local " + data.ToString()); break; } break; } case 0x06: //inc { - string Op = Stack.Pop(); - Stack.Push("(" + Op + "+1)"); + sReader.ReadS8(); // Ignore inline var + var display = sReader.ReadS32(); + var data = sReader.ReadS32(); + switch (display) + { + case 0: Stack.Push("++" + FetchSymbolName(FetchSymbol(i => i.Type == SymbolType.Variable && i.Data == data))); break; + case 1: Stack.Push("++" + data.ToString()); break; + } break; } case 0x07: //dec { - string Op = Stack.Pop(); - Stack.Push("(" + Op + "-1)"); + sReader.ReadS8(); // Ignore inline var + var display = sReader.ReadS32(); + var data = sReader.ReadS32(); + switch (display) + { + case 0: Stack.Push("--" + FetchSymbolName(FetchSymbol(i => i.Type == SymbolType.Variable && i.Data == data))); break; + case 1: Stack.Push("--" + data.ToString()); break; + } break; } case 0x08: //add @@ -342,8 +354,8 @@ namespace arookas { } case 0x09: //sub { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " - " + Op2 + ")"); break; } @@ -356,15 +368,15 @@ namespace arookas { } case 0x0B: //div { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " / " + Op2 + ")"); break; } case 0x0C: //mod { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " % " + Op2 + ")"); break; } @@ -376,8 +388,8 @@ namespace arookas { string VariableName = ""; switch (display) { - case 0: VariableName = FetchSymbolName(FetchSymbol(i => i.Type == SymbolType.Variable && i.Data == data)); break; - case 1: VariableName = "local" + data.ToString(); break; + case 0: VariableName = "var " + FetchSymbolName(FetchSymbol(i => i.Type == SymbolType.Variable && i.Data == data)); break; + case 1: VariableName = "var local " + data.ToString(); break; } CodeVertex NewLine = new CodeVertex(VertexType.CodeBlock , -1, VariableName + " = " + Stack.Pop() + ";", pos); FuncCodeGraph.AddVertex(NewLine); @@ -399,29 +411,29 @@ namespace arookas { } case 0x10: //gt { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " > " + Op2 + ")"); break; } case 0x11: //lt { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " < " + Op2 + ")"); break; } case 0x12: //ge { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " >= " + Op2 + ")"); break; } case 0x13: //le { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " <= " + Op2 + ")"); break; } @@ -439,43 +451,43 @@ namespace arookas { } case 0x16: //and { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " && " + Op2 + ")"); break; } case 0x17: //or { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " || " + Op2 + ")"); break; } case 0x18: //band { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " & " + Op2 + ")"); break; } case 0x19: //bor { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " ^ " + Op2 + ")"); break; } case 0x1A: //shl { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " << " + Op2 + ")"); break; } case 0x1B: //shr { - string Op1 = Stack.Pop(); string Op2 = Stack.Pop(); + string Op1 = Stack.Pop(); Stack.Push("(" + Op1 + " >> " + Op2 + ")"); break; } diff --git a/sbdump/settings.cs b/sbdump/settings.cs index 7d2eb4c..9bf873f 100644 --- a/sbdump/settings.cs +++ b/sbdump/settings.cs @@ -38,10 +38,6 @@ namespace arookas { case "-sun": mDecomp = true; continue; } } - ///Debug/// - mInput = "C:\\Users\\August\\Downloads\\Sunshine ROM hacking\\ssc\\Decompile\\talkevent.sb"; - mDecomp = true; - ///Debug/// if (mInput == null) { throw new Exception("Missing input file setting."); } diff --git a/ssc/binary.cs b/ssc/binary.cs index 98eed39..7a7d7dc 100644 --- a/ssc/binary.cs +++ b/ssc/binary.cs @@ -184,18 +184,14 @@ namespace arookas { TraceInstruction("inc {0} {1}", display, index); #endif mText.Writer.Write8(0x06); - mText.Writer.Write8(0x04); - mText.Writer.WriteS32(display); - mText.Writer.WriteS32(index); + WriteVAR(display, index); } public override void WriteDEC(int display, int index) { #if DEBUG TraceInstruction("dec {0} {1}", display, index); #endif mText.Writer.Write8(0x07); - mText.Writer.Write8(0x04); - mText.Writer.WriteS32(display); - mText.Writer.WriteS32(index); + WriteVAR(display, index); } public override void WriteADD() { #if DEBUG diff --git a/ssc/symbol.cs b/ssc/symbol.cs index 0de4e71..da776ea 100644 --- a/ssc/symbol.cs +++ b/ssc/symbol.cs @@ -333,10 +333,16 @@ namespace arookas { public override void CompileGet(sunCompiler compiler) { mExpression.Compile(compiler); } + public override void CompileSet(sunCompiler compiler) { // checks against this have to be implemented at a higher level throw new InvalidOperationException(); } + + public override void CompilePop(sunCompiler compiler) + { + throw new InvalidOperationException(); + } } public enum sunSymbolType {