This was built to track decompiler and CFG progress.
An error occurred while decompiling the function: Expected StandaloneNode
{
"frames": []
}
{
"current_block_id": {
"index": 24,
"address": 14333,
"block_type": "Normal"
},
"current_ast_node_stack": [],
"current_instruction": {
"opcode": "Jne",
"operand": {
"Number": 14340
},
"address": 14332
}
}
function showRightsWindow(temp.texttype, temp.textoptions, temp.textlines)
{
lit#10 = 1;
lit#11 = "NPC-Control";
lit#12 = "NPC-Control";
lit#13 = 1;
lit#14 = "changefolderrights";
lit#15 = "Set Folder Rights";
lit#16 = 1;
lit#17 = "changefolderconfig";
lit#18 = "Set Folder Configuration";
lit#19 = 1;
lit#20 = "changeoptions";
lit#21 = "Set Server Options";
lit#22 = 1;
lit#23 = "setserverflags";
lit#24 = "Set Server Flags";
lit#25 = 1;
lit#26 = "changestaffaccounts";
lit#27 = "Change Accounts";
lit#28 = 1;
lit#29 = "changecomments";
lit#30 = "Change Comments";
lit#31 = 1;
lit#32 = "banplayers";
lit#33 = "Ban Players";
lit#34 = 1;
lit#35 = "changerights";
lit#36 = "Change Rights";
lit#37 = 1;
lit#38 = "adminmessage";
lit#39 = "Admin Message";
lit#40 = 1;
lit#41 = "resetattributes";
lit#42 = "Reset Attributes";
lit#43 = 1;
lit#44 = "setownattributes";
lit#45 = "Set Own Attributes";
lit#46 = 1;
lit#47 = "setattributes";
lit#48 = "Set Attributes";
lit#49 = 1;
lit#50 = "viewattributes";
lit#51 = "View Attributes";
lit#52 = 1;
lit#53 = "disconnectplayers";
lit#54 = "Disconnect";
lit#55 = 1;
lit#56 = "updatelevel";
lit#57 = "Update Level";
lit#58 = 1;
lit#59 = "warpplayers";
lit#60 = "Warp Players";
lit#61 = 1;
lit#62 = "warptoplayer";
lit#63 = "Warpto Player";
lit#64 = 1;
lit#65 = "warptoxy";
lit#66 = "Warpto XY";
lit#67 = 0;
lit#68 = "iprange";
lit#69 = "IP Ranges";
this.textrights = {{lit#69, lit#68, lit#67}, {lit#66, lit#65, lit#64}, {lit#63, lit#62, lit#61}, {lit#60, lit#59, lit#58}, {lit#57, lit#56, lit#55}, {lit#54, lit#53, lit#52}, {lit#51, lit#50, lit#49}, {lit#48, lit#47, lit#46}, {lit#45, lit#44, lit#43}, {lit#42, lit#41, lit#40}, {lit#39, lit#38, lit#37}, {lit#36, lit#35, lit#34}, {lit#33, lit#32, lit#31}, {lit#30, lit#29, lit#28}, {lit#27, lit#26, lit#25}, {lit#24, lit#23, lit#22}, {lit#21, lit#20, lit#19}, {lit#18, lit#17, lit#16}, {lit#15, lit#14, lit#13}, {lit#12, lit#11, lit#10}};
lit#71 = "TStaticVar";
new_node#72 = new lit#71(unknown_object#70);
temp.rights = new_node#72;
lit#73 = "";
temp.folderrights = lit#73;
lit#74 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#75 = "=";
builtin_fn_call#76 = temp.line.pos(lit#75);
lit#77 = -1;
// RegionId(2)
// RegionId(3)
if (builtin_fn_call#76 > lit#77)
{
lit#78 = "=";
builtin_fn_call#79 = temp.line.tokenize(lit#78);
temp.tok = builtin_fn_call#79;
lit#80 = 0;
lit#81 = 1;
temp.rights.temp.tok[lit#80] = temp.tok[lit#81];
}
// RegionId(4)
else
{
lit#82 = "\n";
temp.folderrights = temp.folderrights @ (temp.line @ lit#82);
}
phi<idx=0, regions=()>++;
}
lit#83 = "ScriptedRCRightsWindow";
gbf_new_obj#84 = lit#83;
lit#85 = "GuiWindowCtrl";
new_node#86 = new lit#85(gbf_new_obj#84);
gbf_new_obj#87 = new_node#86;
// RegionId(6)
// RegionId(7)
with (gbf_new_obj#84)
{
this.acc = temp.textoptions;
lit#90 = 10;
lit#91 = 100;
position#92 = {lit#91, lit#90};
lit#94 = "GuiBlueWindowProfile";
profile#95 = lit#94;
lit#97 = true;
useOwnProfile#98 = lit#97;
lit#100 = 0.9;
profile.transparency = lit#100;
fn_call#103 = getGUIStyle#102();
style#104 = fn_call#103;
lit#106 = true;
clientrelative#107 = lit#106;
lit#109 = 290;
lit#110 = 354;
clientextent#111 = {lit#110, lit#109};
lit#113 = "center";
horizSizing#114 = lit#113;
lit#116 = "center";
vertSizing#117 = lit#116;
lit#119 = "Local rights of player ";
text#120 = lit#119 @ this.acc;
lit#122 = false;
canResize#123 = lit#122;
lit#125 = false;
canMaximize#126 = lit#125;
lit#128 = true;
visible#129 = lit#128;
lit#131 = true;
isexternal#132 = lit#131;
fn_call#134 = bringToFront#133();
lit#135 = "ScriptedRCRightsTabSelect";
gbf_new_obj#136 = lit#135;
lit#137 = "GuiTabCtrl";
new_node#138 = new lit#137(gbf_new_obj#136);
gbf_new_obj#139 = new_node#138;
// RegionId(7)
// RegionId(8)
with (gbf_new_obj#136)
{
lit#140 = 2;
lit#141 = 2;
position#142 = {lit#141, lit#140};
lit#144 = 24;
lit#145 = 350;
extent#146 = {lit#145, lit#144};
lit#147 = "GuiBlueTabProfile";
profile#148 = lit#147;
lit#150 = 150;
tabwidth#151 = lit#150;
lit#152 = "IP Range and Rights";
lit#153 = 0;
fn_call#155 = this.addRow(lit#153, lit#152);
lit#156 = "Folder Rights";
lit#157 = 1;
fn_call#158 = this.addRow(lit#157, lit#156);
lit#159 = 0;
fn_call#161 = this.setSelectedRow(lit#159);
}
fn_call#163 = addcontrol#162(phi<idx=0, regions=()>);
lit#164 = "ScriptedRCRightsScroll";
gbf_new_obj#165 = lit#164;
lit#166 = "GuiScrollCtrl";
new_node#167 = new lit#166(gbf_new_obj#165);
gbf_new_obj#168 = new_node#167;
// RegionId(9)
// RegionId(10)
with (gbf_new_obj#165)
{
lit#169 = 26;
lit#170 = 2;
position#171 = {lit#170, lit#169};
lit#172 = 228;
lit#173 = 350;
extent#174 = {lit#173, lit#172};
lit#175 = "GuiBlueScrollProfile";
profile#176 = lit#175;
lit#177 = false;
visible#178 = lit#177;
lit#180 = "dynamic";
hScrollBar#181 = lit#180;
lit#183 = "dynamic";
vScrollBar#184 = lit#183;
lit#185 = "ScriptedRCRightsMLEdit";
gbf_new_obj#186 = lit#185;
lit#187 = "GuiMLTextEditCtrl";
new_node#188 = new lit#187(gbf_new_obj#186);
gbf_new_obj#189 = new_node#188;
// RegionId(10)
// RegionId(11)
with (gbf_new_obj#186)
{
lit#190 = 0;
lit#191 = 0;
position#192 = {lit#191, lit#190};
lit#193 = 220;
lit#194 = 340;
extent#195 = {lit#194, lit#193};
lit#196 = "GuiBlueMLTextEditProfile";
profile#197 = lit#196;
fn_call#199 = setText#198(temp.folderrights);
}
fn_call#200 = addcontrol#162(phi<idx=0, regions=()>);
}
fn_call#201 = addcontrol#162(phi<idx=0, regions=()>);
lit#202 = "ScriptedRCRightsPane";
gbf_new_obj#203 = lit#202;
lit#204 = "GuiScrollCtrl";
new_node#205 = new lit#204(gbf_new_obj#203);
gbf_new_obj#206 = new_node#205;
// RegionId(13)
// RegionId(14)
with (gbf_new_obj#203)
{
lit#207 = 26;
lit#208 = 2;
position#209 = {lit#208, lit#207};
lit#210 = 228;
lit#211 = 350;
extent#212 = {lit#211, lit#210};
lit#213 = "GuiBlueScrollProfile";
profile#214 = lit#213;
lit#215 = "alwaysOff";
vScrollBar#216 = lit#215;
lit#217 = "alwaysOff";
hScrollBar#218 = lit#217;
lit#220 = 0;
temp.i = lit#220;
builtin_fn_call#222 = thiso.textrights.size();
while (temp.i < builtin_fn_call#222)
{
lit#224 = 10;
// RegionId(16)
// RegionId(17)
if (temp.i <= lit#224)
{
lit#225 = 10;
}
// RegionId(18)
else
{
lit#226 = 186;
}
lit#227 = 2;
phi<idx=1, regions=()> = phi<idx=0, regions=()> + lit#227;
lit#229 = 8;
lit#230 = 20;
lit#231 = 1;
lit#232 = 10;
// RegionId(19)
// RegionId(20)
if (temp.i > lit#232)
{
lit#233 = 200;
}
// RegionId(21)
else
{
lit#234 = 0;
}
phi<idx=2, regions=()> = phi<idx=1, regions=()> - phi<idx=0, regions=()>;
lit#235 = "ScriptedRCRightBoxLabel";
gbf_new_obj#236 = lit#235 @ temp.i;
lit#237 = "GuiTextCtrl";
new_node#238 = new lit#237(gbf_new_obj#236);
gbf_new_obj#239 = new_node#238;
// RegionId(22)
// RegionId(23)
with (gbf_new_obj#236)
{
lit#240 = 24;
lit#241 = 2;
lit#242 = 0;
// RegionId(23)
// RegionId(24)
if (thiso.textrights[temp.i][lit#241] == lit#242)
{
lit#243 = 6;
}
// RegionId(25)
else
{
lit#244 = 12;
}
phi<idx=1, regions=()> = {, ...phi<idx=0, regions=()>};
lit#245 = 20;
lit#246 = 140;
extent#247 = {lit#246, lit#245};
lit#248 = "GuiBlueWindowProfile";
profile#249 = lit#248;
lit#250 = 0;
text#251 = thiso.textrights[temp.i][lit#250];
}
fn_call#252 = addcontrol#162(phi<idx=0, regions=()>);
lit#253 = 2;
lit#254 = 0;
// RegionId(27)
// RegionId(28)
if (thiso.textrights[temp.i][lit#253] == lit#254)
{
lit#255 = "ScriptedRCRightBox";
gbf_new_obj#256 = lit#255 @ temp.i;
lit#257 = "GuiTextEditCtrl";
new_node#258 = new lit#257(gbf_new_obj#256);
gbf_new_obj#259 = new_node#258;
// RegionId(28)
// RegionId(29)
with (gbf_new_obj#256)
{
lit#260 = 24;
lit#261 = 65;
position#262 = {temp.xpos + lit#261, temp.ypos - lit#260};
lit#263 = 20;
lit#264 = 266;
extent#265 = {lit#264, lit#263};
lit#266 = "GuiBlueTextEditProfile";
profile#267 = lit#266;
lit#269 = "text";
this.entrytype = lit#269;
lit#270 = 1;
text#271 = temp.rights.thiso.textrights[temp.i][lit#270];
}
fn_call#272 = addcontrol#162(phi<idx=0, regions=()>);
}
// RegionId(31)
else
{
lit#273 = "ScriptedRCRightBox";
gbf_new_obj#274 = lit#273 @ temp.i;
lit#275 = "GuiCheckBoxCtrl";
new_node#276 = new lit#275(gbf_new_obj#274);
gbf_new_obj#277 = new_node#276;
// RegionId(31)
// RegionId(32)
with (gbf_new_obj#274)
{
lit#278 = 24;
lit#279 = 6;
position#280 = {temp.xpos - lit#279, temp.ypos - lit#278};
lit#281 = 20;
lit#282 = 24;
extent#283 = {lit#282, lit#281};
lit#284 = "checked";
this.entrytype = lit#284;
lit#285 = "GuiBlueCheckBoxProfile";
profile#286 = lit#285;
lit#288 = 1;
checked#289 = temp.rights.thiso.textrights[temp.i][lit#288];
}
fn_call#290 = addcontrol#162(phi<idx=0, regions=()>);
}
temp.i++;
}
}
fn_call#291 = addcontrol#162(phi<idx=0, regions=()>);
lit#292 = "ScriptedRCRightsOK";
gbf_new_obj#293 = lit#292;
lit#294 = "GuiButtonCtrl";
new_node#295 = new lit#294(gbf_new_obj#293);
gbf_new_obj#296 = new_node#295;
// RegionId(36)
// RegionId(37)
with (gbf_new_obj#293)
{
lit#297 = 32;
lit#298 = 64;
extent#299 = {lit#298, lit#297};
lit#300 = 256;
lit#301 = 221;
position#302 = {lit#301, lit#300};
lit#303 = "GuiBlueButtonProfile";
profile#304 = lit#303;
lit#305 = "Apply";
text#306 = lit#305;
lit#307 = "onSaveRights";
lit#308 = "onAction";
fn_call#310 = thiso.catchEvent(this#8, lit#308, lit#307);
}
fn_call#311 = addcontrol#162(phi<idx=0, regions=()>);
lit#312 = "ScriptedRCRightsClose";
gbf_new_obj#313 = lit#312;
lit#314 = "GuiButtonCtrl";
new_node#315 = new lit#314(gbf_new_obj#313);
gbf_new_obj#316 = new_node#315;
// RegionId(38)
// RegionId(39)
with (gbf_new_obj#313)
{
lit#317 = 32;
lit#318 = 64;
extent#319 = {lit#318, lit#317};
lit#320 = 256;
lit#321 = 287;
position#322 = {lit#321, lit#320};
lit#323 = "GuiBlueButtonProfile";
profile#324 = lit#323;
lit#325 = "Close";
text#326 = lit#325;
}
fn_call#327 = addcontrol#162(phi<idx=0, regions=()>);
}
fn_call#328 = addcontrol#162(phi<idx=0, regions=()>);
lit#329 = 0;
return lit#329;
}
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Step 1 of 73