Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

Backtrace

{
  "frames": [
    {
      "line": 134,
      "function": "gbf_core::decompiler::structure_analysis::if_region_reducer::impl$1::reduce_region",
      "file": ".\\gbf_core\\src\\decompiler\\structure_analysis\\if_region_reducer.rs"
    },
    {
      "line": 564,
      "file": ".\\gbf_core\\src\\decompiler\\structure_analysis\\mod.rs",
      "function": "gbf_core::decompiler::structure_analysis::StructureAnalysis::reduce_acyclic_region"
    },
    {
      "line": 300,
      "file": ".\\gbf_core\\src\\decompiler\\structure_analysis\\mod.rs",
      "function": "gbf_core::decompiler::structure_analysis::StructureAnalysis::execute"
    },
    {
      "line": 292,
      "file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs",
      "function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::decompile"
    }
  ]
}

Context

{
  "current_block_id": {
    "index": 7,
    "address": 2706,
    "block_type": "Normal"
  },
  "current_ast_node_stack": [],
  "current_instruction": {
    "opcode": "Ret",
    "operand": null,
    "address": 2708
  }
}
function onMessageBoxButton()
{
    lit#2 = "close";
    // RegionId(5)
    // RegionId(6)
    if (!(this.messageboxaction == lit#2)) 
    {
        lit#3 = "relogin";
        // RegionId(6)
        // RegionId(4)
        if (!(phi<idx=0, regions=()> == lit#3)) 
        {
            lit#4 = "";
            this.messageboxaction = lit#4;
            lit#7 = "OK";
            builtin_fn_call#8 = _(lit#7);
            MessageBoxDialog_Button.text = builtin_fn_call#8;
            fn_call#13 = TClient_setConnectionAttributes#12(this.loginserver, this.loginhost, this.loginport);
            fn_call#15 = sendLogin#14();
        }
    }
    // RegionId(1)
    else
    {
        lit#16 = "";
        this.messageboxaction = lit#16;
        fn_call#18 = getplatform#17();
        lit#19 = "javascript";
        lit#20 = "flash";
        // RegionId(1)
        // RegionId(2)
        if (fn_call#18 in {lit#20, lit#19}) 
        {
            fn_call#22 = onCreated#21();
        }
        // RegionId(3)
        else
        {
            fn_call#24 = Adventure_quit#23();
        }
    }
    lit#25 = 0;
    return lit#25;
}