This was built to track decompiler and CFG progress.
An error occurred while decompiling the function: Expected StandaloneNode
{
"frames": []
}
{
"current_block_id": {
"index": 51,
"address": 16099,
"block_type": "Normal"
},
"current_ast_node_stack": [],
"current_instruction": {
"opcode": "Jne",
"operand": {
"Number": 16101
},
"address": 16098
}
}
function showAttributesWindow(temp.texttype, temp.textoptions, temp.textlines)
{
lit#9 = 0;
lit#10 = "dir";
lit#11 = "Direction";
lit#12 = 0;
lit#13 = "shield";
lit#14 = "Shield";
lit#15 = 0;
lit#16 = "sword";
lit#17 = "Sword";
lit#18 = 0;
lit#19 = "body";
lit#20 = "Body";
lit#21 = 0;
lit#22 = "ani";
lit#23 = "Gani";
lit#24 = 0;
lit#25 = "head";
lit#26 = "Head";
lit#27 = 2;
lit#28 = "colors[4]";
lit#29 = "Belt";
lit#30 = 2;
lit#31 = "colors[3]";
lit#32 = "Shoes";
lit#33 = 2;
lit#34 = "colors[2]";
lit#35 = "Sleeves";
lit#36 = 2;
lit#37 = "colors[1]";
lit#38 = "Coat";
lit#39 = 2;
lit#40 = "colors[0]";
lit#41 = "Skin";
this.lookattributes = {{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#9}};
lit#43 = 1;
lit#44 = "canspin";
lit#45 = "Spin attack";
lit#46 = 1;
lit#47 = "ismale";
lit#48 = "Male";
lit#49 = 1;
lit#50 = "weaponsenabled";
lit#51 = "Weapons Enabled";
lit#52 = 0;
lit#53 = "shieldpower";
lit#54 = "Shield Power";
lit#55 = 0;
lit#56 = "swordpower";
lit#57 = "Sword Power";
lit#58 = 0;
lit#59 = "maxhp";
lit#60 = "Full Hearts";
lit#61 = 0;
lit#62 = "hp";
lit#63 = "Hearts";
lit#64 = 0;
lit#65 = "arrows";
lit#66 = "Arrows";
lit#67 = 0;
lit#68 = "bombs";
lit#69 = "Bombs";
lit#70 = 0;
lit#71 = "glovepower";
lit#72 = "Glove";
lit#73 = 0;
lit#74 = "ap";
lit#75 = "AP";
lit#76 = 0;
lit#77 = "mp";
lit#78 = "MP";
lit#79 = 0;
lit#80 = "gralats";
lit#81 = "Gralats";
lit#82 = 0;
lit#83 = "z";
lit#84 = "Z Height";
lit#85 = 0;
lit#86 = "y";
lit#87 = "Y Pos";
lit#88 = 0;
lit#89 = "x";
lit#90 = "X Pos";
lit#91 = 0;
lit#92 = "level";
lit#93 = "Level";
this.textattributes = {{lit#93, lit#92, lit#91}, {lit#90, lit#89, lit#88}, {lit#87, lit#86, lit#85}, {lit#84, lit#83, lit#82}, {lit#81, lit#80, lit#79}, {lit#78, lit#77, lit#76}, {lit#75, lit#74, lit#73}, {lit#72, lit#71, lit#70}, {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#95 = "transparent";
lit#96 = "black";
lit#97 = "gray";
lit#98 = "lightgray";
lit#99 = "darkpurple";
lit#100 = "purple";
lit#101 = "cynober";
lit#102 = "brown";
lit#103 = "darkblue";
lit#104 = "blue";
lit#105 = "lightblue";
lit#106 = "darkgreen";
lit#107 = "green";
lit#108 = "lightgreen";
lit#109 = "darker";
lit#110 = "red";
lit#111 = "pink";
lit#112 = "orange";
lit#113 = "yellow";
lit#114 = "white";
temp.acolors = {lit#114, lit#113, lit#112, lit#111, lit#110, lit#109, lit#108, lit#107, lit#106, lit#105, lit#104, lit#103, lit#102, lit#101, lit#100, lit#99, lit#98, lit#97, lit#96, lit#95};
lit#116 = "TStaticVar";
new_node#117 = new lit#116(unknown_object#115);
temp.attributes = new_node#117;
lit#118 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#119 = "=";
builtin_fn_call#120 = temp.line.tokenize(lit#119);
temp.tok = builtin_fn_call#120;
lit#121 = 0;
lit#122 = 1;
temp.attributes.temp.tok[lit#121] = temp.tok[lit#122];
phi<idx=0, regions=()>++;
}
lit#123 = "ScriptedRCAttributeWindow";
gbf_new_obj#124 = lit#123;
lit#125 = "GuiWindowCtrl";
new_node#126 = new lit#125(gbf_new_obj#124);
gbf_new_obj#127 = new_node#126;
// RegionId(3)
// RegionId(4)
with (gbf_new_obj#124)
{
this.acc = temp.attributes.account;
lit#131 = 10;
lit#132 = 100;
position#133 = {lit#132, lit#131};
lit#135 = "GuiBlueWindowProfile";
profile#136 = lit#135;
lit#138 = true;
useOwnProfile#139 = lit#138;
lit#141 = 0.9;
profile.transparency = lit#141;
fn_call#144 = getGUIStyle#143();
style#145 = fn_call#144;
lit#147 = true;
clientrelative#148 = lit#147;
lit#150 = 298;
lit#151 = 350;
clientextent#152 = {lit#151, lit#150};
lit#154 = "Attributes of player ";
text#155 = lit#154 @ temp.attributes.account;
lit#157 = true;
canResize#158 = lit#157;
lit#160 = false;
canMaximize#161 = lit#160;
lit#163 = true;
visible#164 = lit#163;
lit#166 = true;
isexternal#167 = lit#166;
fn_call#169 = bringToFront#168();
lit#170 = "ScriptedRCAttributeTabs";
gbf_new_obj#171 = lit#170;
lit#172 = "GuiTabCtrl";
new_node#173 = new lit#172(gbf_new_obj#171);
gbf_new_obj#174 = new_node#173;
// RegionId(4)
// RegionId(5)
with (gbf_new_obj#171)
{
lit#175 = 2;
lit#176 = 2;
position#177 = {lit#176, lit#175};
lit#179 = 24;
lit#180 = 346;
extent#181 = {lit#180, lit#179};
lit#182 = "GuiBlueTabProfile";
profile#183 = lit#182;
lit#185 = "width";
horizSizing#186 = lit#185;
fn_call#188 = clearRows#187();
lit#189 = "Stats";
lit#190 = 0;
fn_call#192 = addRow#191(lit#190, lit#189);
lit#193 = "Look";
lit#194 = 1;
fn_call#195 = addRow#191(lit#194, lit#193);
lit#196 = "Attributes";
lit#197 = 2;
fn_call#198 = addRow#191(lit#197, lit#196);
lit#199 = 0;
fn_call#201 = setSelectedRow#200(lit#199);
}
fn_call#203 = addcontrol#202(phi<idx=0, regions=()>);
lit#204 = "ScriptedRCAttributesTab_Stats";
gbf_new_obj#205 = lit#204;
lit#206 = "GuiScrollCtrl";
new_node#207 = new lit#206(gbf_new_obj#205);
gbf_new_obj#208 = new_node#207;
// RegionId(6)
// RegionId(7)
with (gbf_new_obj#205)
{
lit#209 = 26;
lit#210 = 2;
position#211 = {lit#210, lit#209};
lit#212 = 236;
lit#213 = 346;
extent#214 = {lit#213, lit#212};
lit#215 = false;
visible#216 = lit#215;
lit#217 = "GuiBlueScrollProfile";
profile#218 = lit#217;
lit#220 = "alwaysOff";
hScrollBar#221 = lit#220;
lit#223 = "dynamic";
vScrollBar#224 = lit#223;
lit#225 = "width";
horizSizing#226 = lit#225;
lit#228 = "height";
vertSizing#229 = lit#228;
lit#230 = "ScriptedRCAttributesML";
gbf_new_obj#231 = lit#230;
lit#232 = "GuiMLTextCtrl";
new_node#233 = new lit#232(gbf_new_obj#231);
gbf_new_obj#234 = new_node#233;
// RegionId(7)
// RegionId(8)
with (gbf_new_obj#231)
{
lit#235 = 5;
lit#236 = 5;
position#237 = {lit#236, lit#235};
lit#238 = 240;
lit#239 = 330;
extent#240 = {lit#239, lit#238};
lit#241 = "width";
horizSizing#242 = lit#241;
lit#243 = "height";
vertSizing#244 = lit#243;
lit#245 = "GuiBlueMLTextProfile";
profile#246 = lit#245;
lit#247 = "<b>Direction:</b> ";
lit#249 = "<b>Guild:</b> ";
lit#251 = "<b>Graal Version:</b> ";
lit#253 = "<b>Language:</b> ";
lit#255 = "<b>Platform:</b> ";
lit#257 = "<b>Upgrade Status:</b> ";
lit#259 = "<b>Rating Deviation:</b> ";
lit#261 = "<b>Rating:</b> ";
lit#263 = "<b>Online Seconds:</b> ";
lit#265 = "<b>Deaths:</b> ";
lit#267 = "<b>Kills:</b> ";
lit#269 = "<b>IP Address:</b> ";
lit#271 = "<b>Account:</b> ";
fn_call#273 = setLines#272({lit#271 @ temp.attributes.account, lit#269 @ temp.attributes.ip, lit#267 @ temp.attributes.kills, lit#265 @ temp.attributes.deaths, lit#263 @ temp.attributes.onlinetime, lit#261 @ temp.attributes.rating, lit#259 @ temp.attributes.ratingd, lit#257 @ temp.attributes.upgradestatus, lit#255 @ temp.attributes.platform, lit#253 @ temp.attributes.language, lit#251 @ temp.attributes.graalversion, lit#249 @ temp.attributes.guild, lit#247 @ temp.attributes.dir});
}
fn_call#274 = addcontrol#202(phi<idx=0, regions=()>);
}
fn_call#275 = addcontrol#202(phi<idx=0, regions=()>);
lit#276 = "ScriptedRCAttributesTab_Look";
gbf_new_obj#277 = lit#276;
lit#278 = "GuiScrollCtrl";
new_node#279 = new lit#278(gbf_new_obj#277);
gbf_new_obj#280 = new_node#279;
// RegionId(10)
// RegionId(11)
with (gbf_new_obj#277)
{
lit#281 = 26;
lit#282 = 2;
position#283 = {lit#282, lit#281};
lit#284 = 236;
lit#285 = 346;
extent#286 = {lit#285, lit#284};
lit#287 = true;
visible#288 = lit#287;
lit#289 = "alwaysOff";
hScrollBar#290 = lit#289;
lit#291 = "alwaysOff";
vScrollBar#292 = lit#291;
lit#293 = "width";
horizSizing#294 = lit#293;
lit#295 = "height";
vertSizing#296 = lit#295;
lit#297 = "GuiBlueScrollProfile";
profile#298 = lit#297;
lit#300 = 0;
temp.i = lit#300;
builtin_fn_call#302 = thiso.lookattributes.size();
while (temp.i < builtin_fn_call#302)
{
lit#304 = 8;
// RegionId(13)
// RegionId(14)
if (temp.i <= lit#304)
{
lit#305 = 8;
}
// RegionId(15)
else
{
lit#306 = 178;
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#308 = 8;
lit#309 = 22;
lit#310 = 8;
// RegionId(16)
// RegionId(17)
if (temp.i > lit#310)
{
lit#311 = 198;
}
// RegionId(18)
else
{
lit#312 = 0;
}
phi<idx=2, regions=()> = phi<idx=1, regions=()> - phi<idx=0, regions=()>;
lit#313 = "ScriptedRCLookAttributeBoxLabel";
gbf_new_obj#314 = lit#313 @ temp.i;
lit#315 = "GuiTextCtrl";
new_node#316 = new lit#315(gbf_new_obj#314);
gbf_new_obj#317 = new_node#316;
// RegionId(19)
// RegionId(20)
with (gbf_new_obj#314)
{
position#318 = {temp.xpos, temp.ypos};
lit#319 = 20;
lit#320 = 120;
extent#321 = {lit#320, lit#319};
lit#322 = "GuiBlueTextProfile";
profile#323 = lit#322;
lit#324 = 0;
text#325 = thiso.lookattributes[temp.i][lit#324];
}
fn_call#326 = addcontrol#202(phi<idx=0, regions=()>);
lit#327 = 2;
lit#328 = 0;
// RegionId(21)
// RegionId(22)
if (thiso.lookattributes[temp.i][lit#327] == lit#328)
{
lit#329 = "ScriptedRCLookAttributeBox";
gbf_new_obj#330 = lit#329 @ temp.i;
lit#331 = "GuiTextEditCtrl";
new_node#332 = new lit#331(gbf_new_obj#330);
gbf_new_obj#333 = new_node#332;
// RegionId(22)
// RegionId(23)
with (gbf_new_obj#330)
{
lit#334 = 60;
position#335 = {temp.xpos + lit#334, temp.ypos};
lit#336 = 20;
lit#337 = 100;
extent#338 = {lit#337, lit#336};
lit#339 = "GuiBlueTextEditProfile";
profile#340 = lit#339;
lit#342 = "text";
this.entrytype = lit#342;
lit#343 = 1;
text#344 = temp.attributes.thiso.lookattributes[temp.i][lit#343];
}
fn_call#345 = addcontrol#202(phi<idx=0, regions=()>);
}
// RegionId(25)
else
{
lit#346 = 2;
lit#347 = 2;
// RegionId(25)
// RegionId(26)
if (thiso.lookattributes[temp.i][lit#346] == lit#347)
{
lit#348 = "ScriptedRCLookAttributeBox";
gbf_new_obj#349 = lit#348 @ temp.i;
lit#350 = "GuiPopUpMenuCtrl";
new_node#351 = new lit#350(gbf_new_obj#349);
gbf_new_obj#352 = new_node#351;
// RegionId(26)
// RegionId(27)
with (gbf_new_obj#349)
{
lit#353 = 60;
position#354 = {temp.xpos + lit#353, temp.ypos};
lit#355 = 20;
lit#356 = 100;
extent#357 = {lit#356, lit#355};
lit#358 = "GuiBluePopUpMenuProfile";
profile#359 = lit#358;
lit#361 = "GuiBlueScrollProfile";
scrollprofile#362 = lit#361;
lit#364 = "GuiBlueTextListProfile";
textprofile#365 = lit#364;
lit#366 = "text";
this.entrytype = lit#366;
fn_call#368 = clearrows#367();
lit#370 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#371 = 0;
fn_call#373 = this.addrow(lit#371, temp.color);
phi<idx=0, regions=()>++;
}
lit#374 = 1;
fn_call#376 = setselectedbytext#375(temp.attributes.thiso.lookattributes[temp.i][lit#374]);
}
fn_call#377 = addcontrol#202(phi<idx=0, regions=()>);
}
// RegionId(32)
else
{
lit#378 = "ScriptedRCLookAttributeBox";
gbf_new_obj#379 = lit#378 @ temp.i;
lit#380 = "GuiCheckBoxCtrl";
new_node#381 = new lit#380(gbf_new_obj#379);
gbf_new_obj#382 = new_node#381;
// RegionId(32)
// RegionId(33)
with (gbf_new_obj#379)
{
lit#383 = 145;
position#384 = {temp.xpos + lit#383, temp.ypos};
lit#385 = 20;
lit#386 = 24;
extent#387 = {lit#386, lit#385};
lit#388 = "checked";
this.entrytype = lit#388;
lit#389 = "GuiBlueCheckBoxProfile";
profile#390 = lit#389;
lit#392 = 1;
checked#393 = temp.attributes.thiso.lookattributes[temp.i][lit#392];
}
fn_call#394 = addcontrol#202(phi<idx=0, regions=()>);
}
}
temp.i++;
}
}
fn_call#395 = addcontrol#202(phi<idx=0, regions=()>);
lit#396 = "ScriptedRCAttributesTab_Attributes";
gbf_new_obj#397 = lit#396;
lit#398 = "GuiScrollCtrl";
new_node#399 = new lit#398(gbf_new_obj#397);
gbf_new_obj#400 = new_node#399;
// RegionId(37)
// RegionId(38)
with (gbf_new_obj#397)
{
lit#401 = 26;
lit#402 = 2;
position#403 = {lit#402, lit#401};
lit#404 = 236;
lit#405 = 346;
extent#406 = {lit#405, lit#404};
lit#407 = true;
visible#408 = lit#407;
lit#409 = "GuiBlueScrollProfile";
profile#410 = lit#409;
lit#411 = "alwaysOff";
hScrollBar#412 = lit#411;
lit#413 = "alwaysOff";
vScrollBar#414 = lit#413;
lit#415 = "width";
horizSizing#416 = lit#415;
lit#417 = "height";
vertSizing#418 = lit#417;
lit#419 = 0;
temp.i = lit#419;
builtin_fn_call#420 = thiso.textattributes.size();
while (temp.i < builtin_fn_call#420)
{
lit#421 = 8;
// RegionId(40)
// RegionId(41)
if (temp.i <= lit#421)
{
lit#422 = 8;
}
// RegionId(42)
else
{
lit#423 = 178;
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#424 = 8;
lit#425 = 22;
lit#426 = 8;
// RegionId(43)
// RegionId(44)
if (temp.i > lit#426)
{
lit#427 = 198;
}
// RegionId(45)
else
{
lit#428 = 0;
}
phi<idx=2, regions=()> = phi<idx=1, regions=()> - phi<idx=0, regions=()>;
lit#429 = "ScriptedRCAttributeBoxLabel";
gbf_new_obj#430 = lit#429 @ temp.i;
lit#431 = "GuiTextCtrl";
new_node#432 = new lit#431(gbf_new_obj#430);
gbf_new_obj#433 = new_node#432;
// RegionId(46)
// RegionId(47)
with (gbf_new_obj#430)
{
position#434 = {temp.xpos, temp.ypos};
lit#435 = 20;
lit#436 = 120;
extent#437 = {lit#436, lit#435};
lit#438 = "GuiBlueWindowProfile";
profile#439 = lit#438;
lit#440 = 0;
text#441 = thiso.textattributes[temp.i][lit#440];
}
fn_call#442 = addcontrol#202(phi<idx=0, regions=()>);
lit#443 = 2;
lit#444 = 0;
// RegionId(48)
// RegionId(49)
if (thiso.textattributes[temp.i][lit#443] == lit#444)
{
lit#445 = "ScriptedRCAttributeBox";
gbf_new_obj#446 = lit#445 @ temp.i;
lit#447 = "GuiTextEditCtrl";
new_node#448 = new lit#447(gbf_new_obj#446);
gbf_new_obj#449 = new_node#448;
// RegionId(49)
// RegionId(50)
with (gbf_new_obj#446)
{
lit#450 = 8;
// RegionId(50)
// RegionId(51)
if (temp.i > lit#450)
{
lit#451 = 80;
}
// RegionId(52)
else
{
lit#452 = 60;
}
phi<idx=3, regions=()> = {phi<idx=1, regions=()> + phi<idx=0, regions=()>, ...phi<idx=2, regions=()>};
lit#453 = 20;
lit#454 = 8;
// RegionId(53)
// RegionId(54)
if (temp.i > lit#454)
{
lit#455 = 80;
}
// RegionId(55)
else
{
lit#456 = 100;
}
phi<idx=1, regions=()> = {, ...phi<idx=0, regions=()>};
lit#457 = "GuiBlueTextEditProfile";
profile#458 = lit#457;
lit#459 = "text";
this.entrytype = lit#459;
lit#460 = 1;
text#461 = temp.attributes.thiso.textattributes[temp.i][lit#460];
}
fn_call#462 = addcontrol#202(phi<idx=0, regions=()>);
}
// RegionId(58)
else
{
lit#463 = "ScriptedRCAttributeBox";
gbf_new_obj#464 = lit#463 @ temp.i;
lit#465 = "GuiCheckBoxCtrl";
new_node#466 = new lit#465(gbf_new_obj#464);
gbf_new_obj#467 = new_node#466;
// RegionId(58)
// RegionId(59)
with (gbf_new_obj#464)
{
lit#468 = 145;
position#469 = {temp.xpos + lit#468, temp.ypos};
lit#470 = 20;
lit#471 = 24;
extent#472 = {lit#471, lit#470};
lit#473 = "checked";
this.entrytype = lit#473;
lit#474 = "GuiBlueCheckBoxProfile";
profile#475 = lit#474;
lit#476 = 1;
checked#477 = temp.attributes.thiso.textattributes[temp.i][lit#476];
}
fn_call#478 = addcontrol#202(phi<idx=0, regions=()>);
}
temp.i++;
}
}
fn_call#479 = addcontrol#202(phi<idx=0, regions=()>);
lit#480 = "ScriptedRCAttributesOK";
gbf_new_obj#481 = lit#480;
lit#482 = "GuiButtonCtrl";
new_node#483 = new lit#482(gbf_new_obj#481);
gbf_new_obj#484 = new_node#483;
// RegionId(63)
// RegionId(64)
with (gbf_new_obj#481)
{
lit#485 = 264;
lit#486 = 218;
position#487 = {lit#486, lit#485};
lit#488 = 32;
lit#489 = 64;
extent#490 = {lit#489, lit#488};
lit#491 = "GuiBlueButtonProfile";
profile#492 = lit#491;
lit#493 = "left";
horizSizing#494 = lit#493;
lit#495 = "top";
vertSizing#496 = lit#495;
lit#497 = "Apply";
text#498 = lit#497;
lit#499 = "onSaveAttributes";
lit#500 = "onAction";
fn_call#502 = thiso.catchEvent(this#7, lit#500, lit#499);
}
fn_call#503 = addcontrol#202(phi<idx=0, regions=()>);
lit#504 = "ScriptedRCAttributesCancel";
gbf_new_obj#505 = lit#504;
lit#506 = "GuiButtonCtrl";
new_node#507 = new lit#506(gbf_new_obj#505);
gbf_new_obj#508 = new_node#507;
// RegionId(65)
// RegionId(66)
with (gbf_new_obj#505)
{
lit#509 = 264;
lit#510 = 284;
position#511 = {lit#510, lit#509};
lit#512 = 32;
lit#513 = 64;
extent#514 = {lit#513, lit#512};
lit#515 = "GuiBlueButtonProfile";
profile#516 = lit#515;
lit#517 = "left";
horizSizing#518 = lit#517;
lit#519 = "top";
vertSizing#520 = lit#519;
lit#521 = "Cancel";
text#522 = lit#521;
}
fn_call#523 = addcontrol#202(phi<idx=0, regions=()>);
}
fn_call#524 = addcontrol#202(phi<idx=0, regions=()>);
lit#525 = 0;
return lit#525;
}
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 119