{"name": "uip_ds6_route_rm", "code": "__int64 __fastcall uip_ds6_route_rm ( __int64 @@a1@@ ) { __int64 @@result@@ ; __int64 @@i@@ ; @@result@@ = list_head ( routelist ) ; for ( @@i@@ = @@result@@ ; @@i@@ ; @@i@@ = @@result@@ ) { if ( @@i@@ == @@a1@@ ) { list_remove ( routelist , @@a1@@ ) ; memb_free ( & routememb , @@a1@@ ) ; return call_route_callback ( Number , @@a1@@ + Number , @@a1@@ + Number ) ; } @@result@@ = list_item_next ( @@i@@ ) ; } 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": "__int64", "s": 8}, "location": "s8"}]}
{"name": "call_route_callback", "code": "__int64 __fastcall call_route_callback ( unsigned int @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { __int64 @@result@@ ; __int64 @@i@@ ; unsigned int @@v6@@ ; @@result@@ = list_head ( notificationlist ) ; for ( @@i@@ = @@result@@ ; @@i@@ ; @@i@@ = @@result@@ ) { if ( @@a1@@ && @@a1@@ != Number ) @@v6@@ = list_length ( routelist ) ; else @@v6@@ = list_length ( defaultrouterlist ) ; ( * ( void ( __fastcall * * ) ( _QWORD , __int64 , __int64 , _QWORD ) ) ( @@i@@ + Number ) ) ( @@a1@@ , @@a2@@ , @@a3@@ , @@v6@@ ) ; @@result@@ = list_item_next ( @@i@@ ) ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]} {"name": "uip_ds6_route_rm_by_nexthop", "code": "__int64 __fastcall uip_ds6_route_rm_by_nexthop ( const void * @@a1@@ ) { __int64 @@result@@ ; __int64 @@i@@ ; @@result@@ = list_head ( routelist ) ; for ( @@i@@ = @@result@@ ; @@i@@ ; @@i@@ = @@result@@ ) { if ( ! memcmp ( ( const void * ) ( @@i@@ + Number ) , @@a1@@ , Number ) ) { list_remove ( routelist , @@i@@ ) ; call_route_callback ( Number , @@i@@ + Number , @@i@@ + Number ) ; @@result@@ = list_head ( routelist ) ; } else { @@result@@ = list_item_next ( @@i@@ ) ; } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const void"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "rpl_purge_routes", "code": "__int64 rpl_purge_routes ( ) { __int64 @@result@@ ; __int64 i ; __int64 j ; for ( i = uip_ds6_route_list_head ( ) ; i ; i = list_item_next ( i ) ) { if ( * ( _DWORD * ) ( i + Number ) ) -- * ( _DWORD * ) ( i + Number ) ; } @@result@@ = uip_ds6_route_list_head ( ) ; for ( j = @@result@@ ; j ; j = @@result@@ ) { if ( * ( _DWORD * ) ( j + Number ) ) { @@result@@ = list_item_next ( j ) ; } else { uip_ds6_route_rm ( j ) ; @@result@@ = uip_ds6_route_list_head ( ) ; } } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "rpl_remove_routes", "code": "__int64 __fastcall rpl_remove_routes ( __int64 @@a1@@ ) { __int64 @@result@@ ; __int64 @@i@@ ; @@result@@ = uip_ds6_route_list_head ( ) ; for ( @@i@@ = @@result@@ ; @@i@@ ; @@i@@ = @@result@@ ) { if ( @@a1@@ == * ( _QWORD * ) ( @@i@@ + Number ) ) { uip_ds6_route_rm ( @@i@@ ) ; @@result@@ = uip_ds6_route_list_head ( ) ; } else { @@result@@ = list_item_next ( @@i@@ ) ; } } 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": "__int64", "s": 8}, "location": "s8"}]} {"name": "rpl_remove_routes_by_nexthop", "code": "__int64 __fastcall rpl_remove_routes_by_nexthop ( const void * @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; __int64 @@v3@@ ; @@result@@ = uip_ds6_route_list_head ( ) ; @@v3@@ = @@result@@ ; while ( @@v3@@ ) { if ( ! memcmp ( ( const void * ) ( @@v3@@ + Number ) , @@a1@@ , Number ) && @@a2@@ == * ( _QWORD * ) ( @@v3@@ + Number ) ) { uip_ds6_route_rm ( @@v3@@ ) ; @@result@@ = uip_ds6_route_list_head ( ) ; @@v3@@ = @@result@@ ; } else { @@result@@ = list_item_next ( @@v3@@ ) ; @@v3@@ = @@result@@ ; } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const void"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "rpl_link_neighbor_callback", "code": "void * __fastcall rpl_link_neighbor_callback ( _QWORD * @@a1@@ , unsigned int @@a2@@ , unsigned int @@a3@@ ) { void * @@result@@ ; __int16 @@v5@@ [ Number ] ; __int64 @@v6@@ ; unsigned __int64 @@v7@@ ; char * @@v8@@ ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; uip_ds6_set_addr_iid ( ( __int64 ) @@v5@@ , @@a1@@ ) ; @@v8@@ = ( char * ) & instance_table ; @@v7@@ = ( unsigned __int64 ) & instance_table + Number ; while ( Number ) { @@result@@ = @@v8@@ ; if ( ( unsigned __int64 ) @@v8@@ >= @@v7@@ ) break ; if ( @@v8@@ [ Number ] == Number ) { @@v6@@ = rpl_find_parent_any_dag ( @@v8@@ , @@v5@@ ) ; if ( @@v6@@ ) { * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; * ( _BYTE * ) ( @@v6@@ + Number ) = @@a3@@ ; if ( * ( _QWORD * ) ( * ( ( _QWORD * ) @@v8@@ + Number ) + Number L ) ) ( * ( void ( __fastcall * * ) ( __int64 , _QWORD , _QWORD ) ) ( * ( ( _QWORD * ) @@v8@@ + Number ) + Number L ) ) ( @@v6@@ , @@a2@@ , @@a3@@ ) ; if ( ! @@a2@@ ) * ( _WORD * ) ( @@v6@@ + Number ) = Number ; } } @@v8@@ += Number ; } if ( ! @@a2@@ ) @@result@@ = ( void * ) uip_ds6_route_rm_by_nexthop ( @@v5@@ ) ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "void"}, "location": "r8"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v5", "t": {"T": 2, "n": 12, "s": 2, "t": "__int16"}, "location": "s48"}, {"n": "v8", "t": {"T": 3, "t": "char"}, "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": "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_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": "list_item_next", "code": "__int64 __fastcall list_item_next ( __int64 * @@a1@@ ) { __int64 @@result@@ ; if ( @@a1@@ ) @@result@@ = * @@a1@@ ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "__int64"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}