{"name": "neighbor_attr_register", "code": "__int64 __fastcall neighbor_attr_register ( _QWORD * @@a1@@ ) { __int64 @@i@@ ; list_push ( neighbor_attrs , @@a1@@ ) ; for ( @@i@@ = list_head ( ( __int64 ) neighbor_addrs ) ; @@i@@ ; @@i@@ = * ( _QWORD * ) @@i@@ ) set_attr ( ( __int64 ) @@a1@@ , * ( _WORD * ) ( @@i@@ + Number ) ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]}
{"name": "list_head", "code": "__int64 __fastcall list_head ( __int64 @@a1@@ ) { return * ( _QWORD * ) @@a1@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "list_push", "code": "_QWORD * __fastcall list_push ( _QWORD * @@a1@@ , _QWORD * @@a2@@ ) { _QWORD * @@result@@ ; list_remove ( @@a1@@ , @@a2@@ ) ; * @@a2@@ = * @@a1@@ ; @@result@@ = @@a1@@ ; * @@a1@@ = @@a2@@ ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "_QWORD"}, "location": "r8"}]} {"name": "neighbor_info_subscribe", "code": "__int64 __fastcall neighbor_info_subscribe ( __int64 ( __fastcall * @@a1@@ ) ( _QWORD , _QWORD , _QWORD ) ) { if ( subscriber_callback ) return Number L ; neighbor_attr_register ( & attr_etx ) ; neighbor_attr_register ( & attr_timestamp ) ; subscriber_callback = @@a1@@ ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 9, "n": "__int64 (__fastcall *)(_QWORD, _QWORD, _QWORD)"}, "location": "r56"}]} {"name": "set_attr", "code": "void * __fastcall set_attr ( __int64 @@a1@@ , unsigned __int16 @@a2@@ ) { void * @@result@@ ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) @@result@@ = memcpy ( ( void * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + @@a2@@ * * ( unsigned __int16 * ) ( @@a1@@ + Number ) ) , * ( const void * * ) ( @@a1@@ + Number ) , * ( unsigned __int16 * ) ( @@a1@@ + Number ) ) ; else @@result@@ = memset ( ( void * ) ( @@a2@@ * * ( unsigned __int16 * ) ( @@a1@@ + Number ) + * ( _QWORD * ) ( @@a1@@ + Number ) ) , Number , * ( unsigned __int16 * ) ( @@a1@@ + Number ) ) ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "void"}, "location": "r8"}]}