This was built to track decompiler and CFG progress.
Unimplemented Opcode: NewObject
{
"frames": []
}
{
"current_block_id": {
"index": 0,
"address": 171,
"block_type": "Entry"
},
"current_ast_node_stack": [
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"MemberAccess": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"rhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": null,
"id": "foo"
},
"node_id": 29065
}
},
"lhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": null,
"id": "temp"
},
"node_id": 29064
}
},
"ssa_version": 2
},
"node_id": 29066
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 29067,
"ptr": {
"String": "ropguy"
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Literal": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"String": "TServerPlayer"
},
"node_id": 29068
}
}
}
}
],
"current_instruction": {
"opcode": "NewObject",
"operand": null,
"address": 181
}
}
function regularNew()
{
lit#2 = "ropguy";
gbf_new_obj#3 = lit#2;
lit#4 = "TServerPlayer";
new_node#5 = new lit#4(gbf_new_obj#3);
fn_call#7 = new_node.loadAccount();
temp.foo = new_node#5;
fn_call#10 = echo#9(temp.foo.account);
lit#13 = "TStaticVar";
new_node#14 = new lit#13(unknown_object#12);
temp.var = new_node#14;
fn_call#15 = echo#9(temp.var);
lit#17 = "TStaticVar";
new_node#18 = new lit#17(unknown_object#12);
temp.var2 = new_node#18;
fn_call#19 = echo#9(temp.var2);
lit#20 = 0;
return lit#20;
}
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 1