{"name": "wpm_decode_object_id", "code": "__int64 __fastcall wpm_decode_object_id ( __int64 @@a1@@ , unsigned __int16 @@a2@@ , _DWORD * @@a3@@ ) { __int16 v3 ; __int16 v4 ; __int64 result ; char v6 ; __int16 @@v8@@ ; unsigned __int16 @@v9@@ ; int @@v10@@ ; int @@v11@@ ; char @@v12@@ ; unsigned __int16 @@v13@@ ; @@v12@@ = Number ; @@v11@@ = Number ; @@v10@@ = Number ; @@v9@@ = Number ; @@v13@@ = Number ; if ( @@a1@@ && @@a2@@ > Number && @@a3@@ ) { v3 = decode_tag_number_and_value ( @@v13@@ + @@a1@@ , & @@v12@@ , & @@v11@@ ) ; @@v13@@ += v3 ; if ( @@v12@@ || @@a2@@ <= @@v13@@ ) { @@a3@@ [ Number ] = Number ; result = Number L ; } else { @@v8@@ = @@a2@@ - @@v13@@ ; if ( ( unsigned __int16 ) ( @@a2@@ - @@v13@@ ) <= Number ) { @@a3@@ [ Number ] = Number ; result = Number L ; } else { v4 = decode_object_id ( @@v13@@ + @@a1@@ , & @@v9@@ , & @@v10@@ ) ; @@v13@@ += v4 ; * @@a3@@ = @@v9@@ ; @@a3@@ [ Number ] = @@v10@@ ; if ( @@v8@@ == @@v13@@ || ( v6 = decode_is_opening_tag_number ( @@v13@@ + @@a1@@ , Number L ) , v6 == Number ) ) { result = @@v13@@ ; } else { @@a3@@ [ Number ] = Number ; result = Number L ; } } } } else { @@a3@@ [ Number ] = Number ; result = Number L ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "_DWORD"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r64"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v9", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s14"}, {"n": "v13", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s2"}, {"n": "v8", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s28"}, {"n": "v12", "t": {"T": 1, "n": "char", "s": 1}, "location": "s3"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}