Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

Backtrace

{
  "frames": [
    {
      "line": 212,
      "file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs",
      "function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::pop_one_node"
    },
    {
      "line": 29,
      "function": "gbf_core::decompiler::handlers::general::impl$0::handle_instruction",
      "file": ".\\gbf_core\\src\\decompiler\\handlers\\general.rs"
    },
    {
      "line": 171,
      "file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs",
      "function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::process_instruction"
    },
    {
      "line": 467,
      "function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::process_regions",
      "file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs"
    },
    {
      "line": 286,
      "file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs",
      "function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::decompile"
    }
  ]
}

Context

{
  "current_block_id": {
    "index": 5,
    "block_type": "Normal",
    "address": 12998
  },
  "current_ast_node_stack": [],
  "current_instruction": {
    "opcode": "Pop",
    "operand": null,
    "address": 12999
  }
}
function performSearch(next#0)
{
    this.searchRows = {};
    lit#7 = 0;
    for (phi<idx=0, regions=()> : phi<idx=1, regions=()>) 
    {
        builtin_fn_call#10 = temp.row.text.starts(ScriptedRC_SearchEdit.text);
        // RegionId(2)
        // RegionId(3)
        if (builtin_fn_call#10) 
        {
            fn_call#13 = FileBrowser_FilesList.getRowNumByID(temp.row.id);
            fn_call#15 = FileBrowser_FilesList.setSelectedRow(fn_call#13);
            fn_call#16 = FileBrowser_FilesList.getRowNumByID(temp.row.id);
            builtin_fn_call#17 = this.searchRows.add(fn_call#16);
        }
        phi<idx=0, regions=()>++;
    }
    lit#18 = 0;
    // RegionId(5)
    // RegionId(6)
    if (next#0 == lit#18) 
    {
        lit#20 = 0;
        this.searchindex = lit#20;
        lit#21 = 0;
        fn_call#22 = FileBrowser_FilesList.setSelectedRow(this.searchRows[lit#21]);
    }
    // RegionId(7)
    else
    {
        lit#23 = 0;
        // RegionId(7)
        // RegionId(8)
        if (next#0 > lit#23) 
        {
            lit#24 = 0;
        }
        // RegionId(9)
        // RegionId(10)
        if (phi<idx=0, regions=()>) 
        {
            builtin_fn_call#25 = this.searchRows.size();
            this.searchindex = (this.searchindex + next#0) % builtin_fn_call#25;
            fn_call#26 = FileBrowser_FilesList.setSelectedRow(this.searchRows[this.searchindex]);
        }
    }
    lit#27 = "";
    // RegionId(11)
    // RegionId(12)
    if (ScriptedRC_SearchEdit.text == lit#27) 
    {
        lit#28 = -1;
        fn_call#29 = FileBrowser_FilesList.setSelectedRow(lit#28);
    }
    lit#30 = 0;
    return lit#30;
}