{"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": "uip_ds6_notification_rm", "code": "__int64 __fastcall uip_ds6_notification_rm ( __int64 @@a1@@ ) { return list_remove ( notificationlist , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"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": "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": "uip_ds6_defrt_rm", "code": "__int64 __fastcall uip_ds6_defrt_rm ( __int64 @@a1@@ ) { __int64 @@result@@ ; __int64 @@i@@ ; @@result@@ = list_head ( defaultrouterlist ) ; for ( @@i@@ = @@result@@ ; @@i@@ ; @@i@@ = @@result@@ ) { if ( @@i@@ == @@a1@@ ) { list_remove ( defaultrouterlist , @@a1@@ ) ; memb_free ( & defaultroutermemb , @@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": "purge_registrations", "code": "__int64 purge_registrations ( ) { __int64 @@result@@ ; __int64 i ; __int64 j ; for ( i = list_head ( own_services ) ; i ; i = list_item_next ( i ) ) { if ( ( unsigned int ) timer_expired ( i + Number ) ) { ++ * ( _BYTE * ) ( i + Number ) ; timer_set ( i + Number , Number L ) ; } } @@result@@ = list_head ( others_services ) ; for ( j = @@result@@ ; j ; j = @@result@@ ) { if ( ( unsigned int ) timer_expired ( j + Number ) ) { list_remove ( others_services , j ) ; memb_free ( & registrations , j ) ; j = list_head ( others_services ) ; } @@result@@ = list_item_next ( j ) ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "handle_incoming_reg", "code": "char __fastcall handle_incoming_reg ( _QWORD * @@a1@@ , char @@a2@@ , char @@a3@@ ) { char @@result@@ ; __int64 v4 ; __int64 @@v6@@ ; __int64 @@i@@ ; for ( @@i@@ = servreg_hack_list_head ( ) ; ; @@i@@ = list_item_next ( @@i@@ ) ) { if ( ! @@i@@ ) { @@v6@@ = memb_alloc ( & registrations ) ; if ( ! @@v6@@ ) return puts ( String String ) ; * ( _BYTE * ) ( @@v6@@ + Number ) = @@a2@@ ; * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; v4 = @@a1@@ [ Number ] ; * ( _QWORD * ) ( @@v6@@ + Number ) = * @@a1@@ ; * ( _QWORD * ) ( @@v6@@ + Number ) = v4 ; timer_set ( @@v6@@ + Number , Number L ) ; return list_add ( others_services , @@v6@@ ) ; } if ( @@a2@@ == ( unsigned __int8 ) servreg_hack_item_id ( @@i@@ ) ) break ; } @@result@@ = * ( _BYTE * ) ( @@i@@ + Number ) - @@a3@@ ; if ( @@result@@ < Number ) { * ( _BYTE * ) ( @@i@@ + Number ) = @@a3@@ ; timer_set ( @@i@@ + Number , Number L ) ; list_remove ( others_services , @@i@@ ) ; @@result@@ = list_push ( others_services , @@i@@ ) ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "char", "s": 1}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "char", "s": 1}, "location": "r8"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "rpl_remove_parent", "code": "__int64 __fastcall rpl_remove_parent ( __int64 @@a1@@ , __int64 @@a2@@ ) { rpl_nullify_parent ( @@a1@@ , @@a2@@ ) ; list_remove ( * ( _QWORD * ) ( @@a1@@ + Number ) , @@a2@@ ) ; return memb_free ( & parent_memb , @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "rpl_move_parent", "code": "__int64 __fastcall rpl_move_parent ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { if ( @@a3@@ == * ( _QWORD * ) ( @@a1@@ + Number ) ) { * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; * ( _WORD * ) ( @@a1@@ + Number ) = Number ; if ( * ( _BYTE * ) ( @@a1@@ + Number ) && * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) { uip_ds6_defrt_rm ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ; * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = Number L ; } } else if ( * ( _BYTE * ) ( @@a1@@ + Number ) ) { rpl_remove_routes_by_nexthop ( ( const void * ) ( @@a3@@ + Number ) , @@a1@@ ) ; } list_remove ( * ( _QWORD * ) ( @@a1@@ + Number ) , @@a3@@ ) ; * ( _QWORD * ) ( @@a3@@ + Number ) = @@a2@@ ; return list_add ( * ( _QWORD * ) ( @@a2@@ + Number ) , @@a3@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "list_add", "code": "_QWORD * __fastcall list_add ( _QWORD * @@a1@@ , _QWORD * @@a2@@ ) { _QWORD * @@result@@ ; _QWORD * @@v3@@ ; list_remove ( @@a1@@ , @@a2@@ ) ; * @@a2@@ = Number L ; @@v3@@ = list_tail ( @@a1@@ ) ; if ( @@v3@@ ) { @@result@@ = @@v3@@ ; * @@v3@@ = @@a2@@ ; } else { @@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"}, {"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"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": "process_thread_ctimer_process", "code": "__int64 __fastcall process_thread_ctimer_process ( _WORD * @@a1@@ , char @@a2@@ , __int64 @@a3@@ ) { __int64 @@result@@ ; __int64 @@v5@@ ; char @@v6@@ ; _QWORD * i ; __int64 j ; @@v6@@ = Number ; if ( ! * @@a1@@ ) { for ( i = ( _QWORD * ) list_head ( ( __int64 ) ctimer_list ) ; i ; i = ( _QWORD * ) * i ) etimer_set ( ( __int64 ) ( i + Number ) , i [ Number ] ) ; initialized_0 = Number ; goto LABEL_8 ; } if ( * @@a1@@ == Number ) { while ( @@v6@@ && @@a2@@ == Number ) { for ( j = list_head ( ( __int64 ) ctimer_list ) ; j ; j = * ( _QWORD * ) j ) { if ( @@a3@@ == j + Number ) { list_remove ( ctimer_list , ( _QWORD * ) j ) ; @@v5@@ = process_current ; process_current = * ( _QWORD * ) ( j + Number ) ; if ( * ( _QWORD * ) ( j + Number ) ) ( * ( void ( __fastcall * * ) ( _QWORD ) ) ( j + Number ) ) ( * ( _QWORD * ) ( j + Number ) ) ; process_current = @@v5@@ ; break ; } } LABEL_8 : @@v6@@ = Number ; * @@a1@@ = Number ; } @@result@@ = Number L ; } else { * @@a1@@ = Number ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_WORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v6", "t": {"T": 1, "n": "char", "s": 1}, "location": "s9"}]} {"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": "ctimer_reset", "code": "_QWORD * __fastcall ctimer_reset ( _QWORD * @@a1@@ ) { __int64 @@v2@@ ; if ( initialized_0 ) { @@v2@@ = process_current ; process_current = ( __int64 ) & ctimer_process ; etimer_reset ( ( __int64 ) ( @@a1@@ + Number ) ) ; process_current = @@v2@@ ; } list_remove ( ctimer_list , @@a1@@ ) ; return list_add ( ctimer_list , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "ctimer_restart", "code": "_QWORD * __fastcall ctimer_restart ( _QWORD * @@a1@@ ) { __int64 @@v2@@ ; if ( initialized_0 ) { @@v2@@ = process_current ; process_current = ( __int64 ) & ctimer_process ; etimer_restart ( ( __int64 ) ( @@a1@@ + Number ) ) ; process_current = @@v2@@ ; } list_remove ( ctimer_list , @@a1@@ ) ; return list_add ( ctimer_list , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"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"}]} {"name": "neighbor_attr_remove_neighbor", "code": "__int64 __fastcall neighbor_attr_remove_neighbor ( unsigned __int64 @@a1@@ ) { _QWORD * @@v2@@ ; @@v2@@ = neighbor_addr_get ( @@a1@@ ) ; if ( ! @@v2@@ ) return Number ; list_remove ( neighbor_addrs , @@v2@@ ) ; memb_free ( & neighbor_addr_mem , ( __int64 ) @@v2@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r56"}, {"n": "v2", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"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"}]}