This was built to track decompiler and CFG progress.
The AST Node stack is empty.
{
"frames": [
{
"line": 212,
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::pop_one_node",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs"
},
{
"line": 29,
"function": "gbf_core::decompiler::handlers::general::impl$0::handle_instruction",
"file": ".\\gbf_core\\src\\decompiler\\handlers\\general.rs"
},
{
"line": 171,
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::process_instruction",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs"
},
{
"line": 467,
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::process_regions",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs"
},
{
"line": 286,
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::decompile",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs"
}
]
}
{
"current_block_id": {
"index": 15,
"address": 19130,
"block_type": "Normal"
},
"current_ast_node_stack": [],
"current_instruction": {
"opcode": "Pop",
"operand": null,
"address": 19131
}
}
function public.showAccountList(temp.accounts)
{
lit#5 = null;
// RegionId(0)
// RegionId(1)
if (ScriptedRCAccountListWindow#4 != lit#5)
{
fn_call#7 = ScriptedRCAccountListWindow.destroy();
}
lit#8 = "ScriptedRCAccountListWindow";
gbf_new_obj#9 = lit#8;
lit#10 = "GuiWindowCtrl";
new_node#11 = new lit#10(gbf_new_obj#9);
gbf_new_obj#12 = new_node#11;
// RegionId(2)
// RegionId(3)
with (gbf_new_obj#9)
{
lit#14 = 70;
lit#15 = 70;
position#16 = {lit#15, lit#14};
lit#18 = "GuiBlueWindowProfile";
profile#19 = lit#18;
fn_call#22 = getGUIStyle#21();
style#23 = fn_call#22;
lit#25 = true;
clientrelative#26 = lit#25;
lit#28 = 282;
lit#29 = 300;
clientextent#30 = {lit#29, lit#28};
lit#32 = true;
isexternal#33 = lit#32;
lit#35 = true;
visible#36 = lit#35;
lit#38 = "Account list";
text#39 = lit#38;
lit#40 = "ScriptedRCAccountListScroll";
gbf_new_obj#41 = lit#40;
lit#42 = "GuiScrollCtrl";
new_node#43 = new lit#42(gbf_new_obj#41);
gbf_new_obj#44 = new_node#43;
// RegionId(3)
// RegionId(4)
with (gbf_new_obj#41)
{
lit#45 = 0;
lit#46 = 0;
position#47 = {lit#46, lit#45};
lit#49 = 250;
lit#50 = 300;
extent#51 = {lit#50, lit#49};
lit#53 = "width";
horizSizing#54 = lit#53;
lit#56 = "height";
vertSizing#57 = lit#56;
lit#58 = "GuiBlueScrollProfile";
profile#59 = lit#58;
lit#61 = "dynamic";
vScrollBar#62 = lit#61;
lit#64 = "alwaysOff";
hScrollBar#65 = lit#64;
lit#66 = "ScriptedRCAccountListList";
gbf_new_obj#67 = lit#66;
lit#68 = "GuiTextListCtrl";
new_node#69 = new lit#68(gbf_new_obj#67);
gbf_new_obj#70 = new_node#69;
// RegionId(4)
// RegionId(5)
with (gbf_new_obj#67)
{
fn_call#72 = clearRows#71();
lit#73 = "GuiBlueTextListProfile";
profile#74 = lit#73;
lit#75 = "onAccountSelect";
lit#76 = "onDblClick";
fn_call#80 = thiso.catchEvent(this#77, lit#76, lit#75);
}
fn_call#82 = addcontrol#81(phi<idx=0, regions=()>);
}
fn_call#83 = addcontrol#81(phi<idx=0, regions=()>);
lit#84 = "ScriptedRCAccountListClose";
gbf_new_obj#85 = lit#84;
lit#86 = "GuiButtonCtrl";
new_node#87 = new lit#86(gbf_new_obj#85);
gbf_new_obj#88 = new_node#87;
// RegionId(7)
// RegionId(8)
with (gbf_new_obj#85)
{
lit#89 = 250;
lit#90 = 236;
position#91 = {lit#90, lit#89};
lit#92 = 32;
lit#93 = 64;
extent#94 = {lit#93, lit#92};
lit#95 = "GuiBlueButtonProfile";
profile#96 = lit#95;
lit#97 = "&Close";
text#98 = lit#97;
lit#99 = "top";
vertSizing#100 = lit#99;
lit#101 = "left";
horizSizing#102 = lit#101;
}
fn_call#103 = addcontrol#81(phi<idx=0, regions=()>);
}
fn_call#104 = addcontrol#81(phi<idx=0, regions=()>);
lit#105 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#106 = "@";
builtin_fn_call#107 = temp.account.ends(lit#106);
// RegionId(12)
// RegionId(13)
if (!builtin_fn_call#107)
{
lit#108 = 0;
fn_call#110 = ScriptedRCAccountListList.addrow(lit#108, temp.account);
}
phi<idx=0, regions=()>++;
}
lit#111 = 0;
return lit#111;
}
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 31