{"name": "rpl_free_instance", "code": "__int64 __fastcall rpl_free_instance ( __int64 @@a1@@ ) { __int64 @@result@@ ; unsigned __int64 @@i@@ ; for ( @@i@@ = @@a1@@ + Number ; @@i@@ < @@a1@@ + Number ; @@i@@ += Number L ) { if ( * ( _BYTE * ) ( @@i@@ + Number ) ) rpl_free_dag ( @@i@@ ) ; } rpl_set_default_route ( @@a1@@ , Number L ) ; ctimer_stop ( @@a1@@ + Number ) ; ctimer_stop ( @@a1@@ + Number ) ; if ( @@a1@@ == default_instance ) default_instance = Number L ; @@result@@ = @@a1@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; 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": "i", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "rpl_set_default_route", "code": "__int64 __fastcall rpl_set_default_route ( __int64 @@a1@@ , _QWORD * @@a2@@ ) { if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { uip_ds6_defrt_rm ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; } if ( @@a2@@ ) { * ( _QWORD * ) ( @@a1@@ + Number ) = uip_ds6_defrt_add ( @@a2@@ , * ( unsigned __int8 * ) ( @@a1@@ + Number ) * ( unsigned __int64 ) * ( unsigned __int16 * ) ( @@a1@@ + Number ) ) ; if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) ) return Number L ; } else if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { uip_ds6_defrt_rm ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}]} {"name": "rpl_alloc_dag", "code": "char * __fastcall rpl_alloc_dag ( unsigned __int8 @@a1@@ ) { char * @@v2@@ ; char * @@s@@ ; @@v2@@ = ( char * ) rpl_get_instance ( @@a1@@ ) ; if ( ! @@v2@@ ) { @@v2@@ = rpl_alloc_instance ( @@a1@@ ) ; if ( ! @@v2@@ ) return Number L ; } for ( @@s@@ = @@v2@@ + Number ; @@s@@ < @@v2@@ + Number ; @@s@@ += Number ) { if ( ! @@s@@ [ Number ] ) { memset ( @@s@@ , Number , Number ) ; * ( ( _QWORD * ) @@s@@ + Number ) = @@s@@ + Number ; * ( ( _QWORD * ) @@s@@ + Number ) = Number L ; list_init ( * ( ( _QWORD * ) @@s@@ + Number ) ) ; @@s@@ [ Number ] = Number ; * ( ( _WORD * ) @@s@@ + Number ) = Number ; * ( ( _WORD * ) @@s@@ + Number ) = Number ; * ( ( _QWORD * ) @@s@@ + Number ) = @@v2@@ ; return @@s@@ ; } } rpl_free_instance ( @@v2@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r56"}, {"n": "v2", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "rpl_free_dag", "code": "_BYTE * __fastcall rpl_free_dag ( _BYTE * @@a1@@ ) { _BYTE * @@result@@ ; if ( @@a1@@ [ Number ] ) { @@a1@@ [ Number ] = Number ; rpl_remove_routes ( ( __int64 ) @@a1@@ ) ; if ( ( @@a1@@ [ Number ] & Number ) != Number ) check_prefix ( @@a1@@ + Number , Number L ) ; remove_parents ( ( __int64 ) @@a1@@ , Number ) ; } @@result@@ = @@a1@@ ; @@a1@@ [ Number ] = Number ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "result", "t": {"T": 3, "t": "_BYTE"}, "location": "r8"}]} {"name": "ctimer_stop", "code": "_QWORD * __fastcall ctimer_stop ( _QWORD * @@a1@@ ) { if ( initialized_0 ) { etimer_stop ( ( __int64 ) ( @@a1@@ + Number ) ) ; } else { @@a1@@ [ Number ] = Number L ; @@a1@@ [ Number ] = Number L ; } return list_remove ( ctimer_list , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}]}