Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

Backtrace

{
  "frames": []
}

Context

{
  "current_block_id": {
    "index": 12,
    "address": 1369,
    "block_type": "Normal"
  },
  "current_ast_node_stack": [
    {
      "StandaloneNode": {
        "Expression": {
          "Assignable": {
            "Phi": {
              "metadata": {
                "properties": {},
                "comments": []
              },
              "ptr": {
                "region_ids": [
                  [
                    {
                      "index": 11
                    },
                    "Fallthrough"
                  ]
                ],
                "index": 0,
                "ssa_version": null
              },
              "node_id": 244198
            }
          }
        }
      }
    },
    {
      "StandaloneNode": {
        "Expression": {
          "Assignable": {
            "Identifier": {
              "metadata": {
                "properties": {},
                "comments": []
              },
              "node_id": 244199,
              "ptr": {
                "ssa_version": 46,
                "id": "builtin_fn_call"
              }
            }
          }
        }
      }
    },
    {
      "StandaloneNode": {
        "Expression": {
          "Assignable": {
            "MemberAccess": {
              "metadata": {
                "properties": {},
                "comments": []
              },
              "ptr": {
                "rhs": {
                  "Identifier": {
                    "metadata": {
                      "properties": {},
                      "comments": []
                    },
                    "node_id": 244201,
                    "ptr": {
                      "ssa_version": null,
                      "id": "i"
                    }
                  }
                },
                "lhs": {
                  "Identifier": {
                    "metadata": {
                      "properties": {},
                      "comments": []
                    },
                    "node_id": 244200,
                    "ptr": {
                      "ssa_version": null,
                      "id": "temp"
                    }
                  }
                },
                "ssa_version": 6
              },
              "node_id": 244202
            }
          }
        }
      }
    }
  ],
  "current_instruction": {
    "opcode": "Inc",
    "operand": null,
    "address": 1382
  }
}
function sendPasswordAndIDs(account#0)
{
    fn_call#6 = this.client.setLoginAccount(temp.account);
    lit#7 = "guest";
    // RegionId(0)
    // RegionId(1)
    if (account#0 == lit#7) 
    {
        lit#9 = 63;
        builtin_fn_call#10 = char(lit#9);
        lit#11 = 160;
        builtin_fn_call#12 = char(lit#11);
        lit#13 = 96;
        builtin_fn_call#14 = char(lit#13);
        lit#15 = 245;
        builtin_fn_call#16 = char(lit#15);
        lit#17 = 118;
        builtin_fn_call#18 = char(lit#17);
        lit#19 = 201;
        builtin_fn_call#20 = char(lit#19);
        lit#21 = 134;
        builtin_fn_call#22 = char(lit#21);
        lit#23 = 26;
        builtin_fn_call#24 = char(lit#23);
        temp.passcode = ((((((builtin_fn_call#10 @ builtin_fn_call#12) @ builtin_fn_call#14) @ builtin_fn_call#16) @ builtin_fn_call#18) @ builtin_fn_call#20) @ builtin_fn_call#22) @ builtin_fn_call#24;
        lit#26 = "T5sd0g6J";
        fn_call#28 = des_decrypt#27(lit#26, temp.passcode);
        temp.password = fn_call#28;
    }
    // RegionId(2)
    else
    {
        fn_call#30 = this.client.getPassword();
        temp.password = fn_call#30;
    }
    fn_call#33 = getplatform#32();
    lit#34 = "win";
    // RegionId(3)
    // RegionId(4)
    if (fn_call#33 == lit#34) 
    {
        lit#35 = "G3D2204D";
    }
    // RegionId(5)
    else
    {
        fn_call#36 = getplatform#32();
        lit#37 = "mac";
        // RegionId(5)
        // RegionId(6)
        if (fn_call#36 == lit#37) 
        {
            lit#38 = "G3D2304D";
        }
        // RegionId(7)
        else
        {
            fn_call#39 = getplatform#32();
            lit#40 = "linux";
            // RegionId(7)
            // RegionId(8)
            if (fn_call#39 == lit#40) 
            {
                lit#41 = "G3D2404D";
            }
            // RegionId(9)
            else
            {
                lit#42 = "G3D2504D";
            }
        }
    }
    phi<idx=1, regions=()> = phi<idx=0, regions=()>;
    temp.idlist = {};
    fn_call#44 = getplatform#32();
    builtin_fn_call#45 = temp.idlist.add(fn_call#44);
    lit#46 = 0;
    temp.i = lit#46;
    lit#47 = 4;
    while (temp.i < lit#47) 
    {
        fn_call#49 = Adventure_getSystemID#48(temp.i);
        builtin_fn_call#50 = temp.idlist.add(fn_call#49);
        temp.i++;
    }
    fn_call#52 = get1PlusTextNetString#51(temp.account);
    fn_call#53 = get1PlusTextNetString#51(temp.password);
    lit#54 = 5;
    fn_call#56 = this.client.sendData(lit#54, ((temp.clientversion @ fn_call#52) @ fn_call#53) @ idlist#43);
    fn_call#58 = this.client.flush();
    lit#60 = 37;
    fn_call#61 = this.client.sendData(lit#60, $pref::Graal::language#59);
    lit#62 = "DownloadControl";
    fn_call#64 = isObject#63(lit#62);
    // RegionId(13)
    // RegionId(14)
    if (fn_call#64) 
    {
        fn_call#68 = DownloadControl.checkEnableScriptedDownloads(this.loginserver);
    }
    fn_call#70 = this.client.requestBaseFiles();
    fn_call#71 = this.client.flush();
    lit#72 = 0;
    return lit#72;
}