{"name": "calculate_path_metric", "code": "__int64 __fastcall calculate_path_metric ( __int64 @@a1@@ ) { __int64 @@result@@ ; if ( @@a1@@ && ( * ( _WORD * ) ( @@a1@@ + Number ) || * ( _WORD * ) ( @@a1@@ + Number ) <= * ( _WORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) + Number L ) ) ) @@result@@ = Number * * ( unsigned __int8 * ) ( @@a1@@ + Number ) + ( unsigned int ) * ( unsigned __int16 * ) ( @@a1@@ + Number ) ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}
{"name": "best_parent", "code": "__int64 __fastcall best_parent ( __int64 @@a1@@ , __int64 @@a2@@ ) { unsigned __int16 @@v3@@ ; unsigned __int16 @@v4@@ ; __int64 @@v5@@ ; @@v5@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v4@@ = calculate_path_metric ( @@a1@@ ) ; @@v3@@ = calculate_path_metric ( @@a2@@ ) ; if ( ( @@a1@@ == * ( _QWORD * ) ( @@v5@@ + Number ) || @@a2@@ == * ( _QWORD * ) ( @@v5@@ + Number ) ) && @@v4@@ < @@v3@@ + Number && @@v4@@ > @@v3@@ - Number ) return * ( _QWORD * ) ( @@v5@@ + Number ) ; if ( @@v4@@ >= @@v3@@ ) return @@a2@@ ; return @@a1@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s12"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s14"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "update_metric_container", "code": "__int64 __fastcall update_metric_container ( __int64 @@a1@@ ) { __int64 @@result@@ ; __int64 @@v2@@ ; __int16 @@v3@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; @@v2@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@result@@ = * ( unsigned __int8 * ) ( @@v2@@ + Number ) ; if ( ( _BYTE ) @@result@@ ) { if ( * ( _WORD * ) ( @@v2@@ + Number ) == * ( _WORD * ) ( @@a1@@ + Number ) ) @@v3@@ = Number ; else @@v3@@ = calculate_path_metric ( * ( _QWORD * ) ( @@v2@@ + Number ) ) ; * ( _BYTE * ) @@a1@@ = Number ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; @@result@@ = @@a1@@ ; * ( _WORD * ) ( @@a1@@ + Number ) = @@v3@@ ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v3", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s2"}]}