Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

Backtrace

{
  "frames": [
    {
      "line": 39,
      "function": "gbf_core::decompiler::handlers::special_two_operand::impl$0::handle_instruction::closure$0",
      "file": ".\\gbf_core\\src\\decompiler\\handlers\\special_two_operand.rs"
    },
    {
      "line": 35,
      "file": ".\\gbf_core\\src\\decompiler\\handlers\\special_two_operand.rs",
      "function": "gbf_core::decompiler::handlers::special_two_operand::impl$0::handle_instruction"
    },
    {
      "line": 171,
      "file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs",
      "function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::process_instruction"
    },
    {
      "line": 466,
      "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": 0,
    "block_type": "Entry",
    "address": 9009
  },
  "current_ast_node_stack": [],
  "current_instruction": {
    "opcode": "AccessMember",
    "operand": null,
    "address": 9024
  }
}
function public.queueText(texttype#2, textoptions#1, textlines#0)
{
    fn_call#4 = getcallstack#3();
    lit#5 = 0;
    lit#7 = "-TextEditor";
    fn_call#9 = findweapon#8(lit#7);
    // RegionId(1)
    if (!(fn_call#4[lit#5].scriptcallobject in {this#10, fn_call#9})) 
    {
        lit#11 = 0;
        return lit#11;
    }
    // RegionId(2)
    else
    {
        fn_call#13 = sendtext#12(texttype#2, textoptions#1, textlines#0);
        lit#14 = 0;
        return lit#14;
    }
}