{"name": "timeout_check", "code": "unsigned __int64 __fastcall timeout_check ( __int64 @@a1@@ ) { unsigned __int64 @@result@@ ; __int64 @@v2@@ ; __int64 @@v3@@ ; @@result@@ = ( unsigned __int16 ) timeout ; if ( timeout ) { @@v3@@ = neighbor_attr_list_neighbors ( ) ; while ( @@v3@@ ) { * ( _WORD * ) ( @@v3@@ + Number ) += Number ; if ( * ( _WORD * ) ( @@v3@@ + Number ) < ( unsigned __int16 ) timeout ) { @@v3@@ = * ( _QWORD * ) @@v3@@ ; } else { @@v2@@ = * ( _QWORD * ) @@v3@@ ; list_remove ( neighbor_addrs , ( _QWORD * ) @@v3@@ ) ; memb_free ( & neighbor_addr_mem , @@v3@@ ) ; @@v3@@ = @@v2@@ ; } } @@result@@ = ( unsigned __int64 ) ctimer_set ( ct , Number L , ( __int64 ) timeout_check , @@a1@@ ) ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r8"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]}
{"name": "memb_free", "code": "__int64 __fastcall memb_free ( unsigned __int16 * @@a1@@ , __int64 @@a2@@ ) { __int64 @@v3@@ ; int @@i@@ ; @@v3@@ = * ( ( _QWORD * ) @@a1@@ + Number ) ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { if ( @@i@@ >= @@a1@@ [ Number ] ) return Number ; if ( @@v3@@ == @@a2@@ ) break ; @@v3@@ += * @@a1@@ ; } if ( * ( char * ) ( * ( ( _QWORD * ) @@a1@@ + Number ) + @@i@@ ) > Number ) -- * ( _BYTE * ) ( * ( ( _QWORD * ) @@a1@@ + Number ) + @@i@@ ) ; return * ( unsigned __int8 * ) ( * ( ( _QWORD * ) @@a1@@ + Number ) + @@i@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "unsigned __int16"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]} {"name": "timer_set", "code": "__time_t __fastcall timer_set ( __time_t * @@a1@@ , __time_t @@a2@@ ) { __time_t @@result@@ ; @@a1@@ [ Number ] = @@a2@@ ; @@result@@ = clock_time ( ) ; * @@a1@@ = @@result@@ ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "__time_t"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__time_t", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__time_t", "s": 8}, "location": "r8"}]} {"name": "list_remove", "code": "_QWORD * __fastcall list_remove ( _QWORD * @@a1@@ , _QWORD * @@a2@@ ) { _QWORD * @@result@@ ; _QWORD * @@v3@@ ; _QWORD * @@i@@ ; @@result@@ = ( _QWORD * ) * @@a1@@ ; if ( * @@a1@@ ) { @@v3@@ = Number L ; @@result@@ = ( _QWORD * ) * @@a1@@ ; for ( @@i@@ = ( _QWORD * ) * @@a1@@ ; @@i@@ ; @@i@@ = ( _QWORD * ) * @@i@@ ) { if ( @@i@@ == @@a2@@ ) { if ( @@v3@@ ) * @@v3@@ = * @@i@@ ; else * @@a1@@ = * @@i@@ ; @@result@@ = @@i@@ ; * @@i@@ = Number L ; return @@result@@ ; } @@v3@@ = @@i@@ ; @@result@@ = ( _QWORD * ) * @@i@@ ; } } 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"}, {"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "i", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "ctimer_set", "code": "_QWORD * __fastcall ctimer_set ( _QWORD * @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ ) { __int64 @@v5@@ ; @@a1@@ [ Number ] = process_current ; @@a1@@ [ Number ] = @@a3@@ ; @@a1@@ [ Number ] = @@a4@@ ; if ( initialized_0 ) { @@v5@@ = process_current ; process_current = ( __int64 ) & ctimer_process ; etimer_set ( ( __int64 ) ( @@a1@@ + Number ) , @@a2@@ ) ; process_current = @@v5@@ ; } else { @@a1@@ [ Number ] = @@a2@@ ; } list_remove ( ctimer_list , @@a1@@ ) ; return list_add ( ctimer_list , @@a1@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "neighbor_attr_set_timeout", "code": "__int64 __fastcall neighbor_attr_set_timeout ( unsigned __int16 @@a1@@ ) { __int64 @@result@@ ; if ( timeout || ! @@a1@@ ) { if ( timeout && ! @@a1@@ ) ctimer_stop ( ct ) ; } else { ctimer_set ( ct , Number L , ( __int64 ) timeout_check , Number L ) ; } @@result@@ = @@a1@@ ; timeout = @@a1@@ ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}