{"name": "ospf_lsa_maxage_walker_remover", "code": "__int64 __fastcall ospf_lsa_maxage_walker_remover ( __int64 @@a1@@ , _QWORD * @@a2@@ ) { char * @@v2@@ ; if ( ( ( int ) get_age ( ( __int64 ) @@a2@@ ) > Number || ( unsigned int ) get_age ( ( __int64 ) @@a2@@ ) == Number ) && ! ( unsigned int ) ospf_lsa_is_self_originated ( @@a1@@ , @@a2@@ ) ) { if ( ( term_debug_ospf_lsa & Number ) != Number ) { @@v2@@ = dump_lsa_key ( ( __int64 ) @@a2@@ ) ; zlog_info ( String , @@v2@@ ) ; } if ( * ( _BYTE * ) ( @@a2@@ [ Number ] + Number L ) == Number ) ospf_ase_incremental_update ( @@a1@@ , @@a2@@ ) ; else ospf_spf_calculate_schedule ( @@a1@@ ) ; ospf_lsa_maxage ( @@a1@@ , @@a2@@ ) ; } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "v2", "t": {"T": 3, "t": "char"}, "location": "r8"}]}
{"name": "get_age", "code": "__int64 __fastcall get_age ( __int64 @@a1@@ ) { int @@v1@@ ; __int64 @@v2@@ ; __int64 @@v3@@ ; struct timeval @@tv@@ ; gettimeofday ( & @@tv@@ , Number L ) ; @@v1@@ = ntohs ( * * ( _WORD * * ) ( @@a1@@ + Number ) ) ; @@v2@@ = tv_sub ( @@tv@@ . tv_sec , @@tv@@ . tv_usec , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; return @@v1@@ + ( unsigned int ) tv_floor ( @@v2@@ , @@v3@@ ) ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r104"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "tv", "t": {"T": 6, "n": "struct timeval", "l": [{"T": 4, "n": "tv_sec", "t": "__time_t", "s": 8}, {"T": 4, "n": "tv_usec", "t": "__suseconds_t", "s": 8}]}, "location": "s48"}]} {"name": "dump_lsa_key", "code": "char * __fastcall dump_lsa_key ( __int64 @@a1@@ ) { char * v1 ; char * v2 ; char @@v4@@ [ Number ] ; char @@dest@@ [ Number ] ; __int64 @@v6@@ ; if ( @@a1@@ && ( @@v6@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ) != Number ) { v1 = inet_ntoa ( * ( struct in_addr * ) ( @@v6@@ + Number ) ) ; strcpy ( @@dest@@ , v1 ) ; v2 = inet_ntoa ( * ( struct in_addr * ) ( @@v6@@ + Number ) ) ; strcpy ( @@v4@@ , v2 ) ; sprintf ( buf_10699 , String , * ( unsigned __int8 * ) ( @@v6@@ + Number ) , @@dest@@ , @@v4@@ ) ; } else { strcpy ( buf_10699 , String ) ; } return buf_10699 ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "dest", "t": {"T": 2, "n": 24, "s": 1, "t": "char"}, "location": "s32"}, {"n": "v4", "t": {"T": 2, "n": 16, "s": 1, "t": "char"}, "location": "s48"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "ospf_lsa_maxage", "code": "__int64 __fastcall ospf_lsa_maxage ( __int64 @@a1@@ , _QWORD * @@a2@@ ) { __int64 result ; char * v3 ; __int64 v4 ; char * v5 ; if ( ( unsigned int ) ospf_lsa_maxage_exist ( @@a1@@ , ( __int64 ) @@a2@@ ) ) { result = term_debug_ospf_lsa & Number ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { v3 = inet_ntoa ( * ( struct in_addr * ) ( @@a2@@ [ Number ] + Number L ) ) ; result = zlog_info ( String , * ( unsigned __int8 * ) ( @@a2@@ [ Number ] + Number L ) , v3 , @@a2@@ ) ; } } else { v4 = ospf_lsa_lock ( ( __int64 ) @@a2@@ ) ; listnode_add ( * ( _QWORD * ) ( @@a1@@ + Number ) , v4 ) ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { v5 = dump_lsa_key ( ( __int64 ) @@a2@@ ) ; zlog_info ( String , v5 ) ; } result = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( ! result ) { result = thread_add_timer ( master , ospf_maxage_lsa_remover , @@a1@@ , Number L ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = result ; } } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}]} {"name": "ospf_lsa_maxage_walker", "code": "__int64 __fastcall ospf_lsa_maxage_walker ( __int64 @@a1@@ ) { __int64 @@v2@@ ; _QWORD * v3 ; _QWORD * v4 ; _QWORD * v5 ; _QWORD * v6 ; _QWORD * v7 ; __int64 @@v8@@ ; _QWORD * @@i@@ ; __int64 j ; __int64 k ; __int64 l ; __int64 m ; __int64 n ; @@v8@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@v8@@ + Number ) = Number L ; for ( @@i@@ = * * ( _QWORD * * * ) ( @@v8@@ + Number ) ; @@i@@ ; @@i@@ = ( _QWORD * ) * @@i@@ ) { @@v2@@ = @@i@@ [ Number ] ; if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) { for ( j = route_top ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) ; j ; j = route_next ( j ) ) { v3 = * ( _QWORD * * ) ( j + Number ) ; if ( v3 ) ospf_lsa_maxage_walker_remover ( @@v8@@ , v3 ) ; } } if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) { for ( k = route_top ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) ; k ; k = route_next ( k ) ) { v4 = * ( _QWORD * * ) ( k + Number ) ; if ( v4 ) ospf_lsa_maxage_walker_remover ( @@v8@@ , v4 ) ; } } if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) { for ( l = route_top ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) ; l ; l = route_next ( l ) ) { v5 = * ( _QWORD * * ) ( l + Number ) ; if ( v5 ) ospf_lsa_maxage_walker_remover ( @@v8@@ , v5 ) ; } } if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) { for ( m = route_top ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v2@@ + Number ) + Number L ) ) ; m ; m = route_next ( m ) ) { v6 = * ( _QWORD * * ) ( m + Number ) ; if ( v6 ) ospf_lsa_maxage_walker_remover ( @@v8@@ , v6 ) ; } } } if ( * ( _QWORD * ) ( @@v8@@ + Number ) && * ( _QWORD * ) ( * ( _QWORD * ) ( @@v8@@ + Number ) + Number L ) ) { for ( n = route_top ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v8@@ + Number ) + Number L ) ) ; n ; n = route_next ( n ) ) { v7 = * ( _QWORD * * ) ( n + Number ) ; if ( v7 ) ospf_lsa_maxage_walker_remover ( @@v8@@ , v7 ) ; } } if ( ! * ( _QWORD * ) ( @@v8@@ + Number ) ) * ( _QWORD * ) ( @@v8@@ + Number ) = thread_add_timer ( master , ospf_lsa_maxage_walker , @@v8@@ , Number L ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "i", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}]} {"name": "ospf_lsa_is_self_originated", "code": "__int64 __fastcall ospf_lsa_is_self_originated ( _QWORD * * @@a1@@ , __int64 @@a2@@ ) { __int64 @@v3@@ ; _QWORD * @@i@@ ; if ( ( * ( _BYTE * ) @@a2@@ & Number ) != Number ) return * ( _BYTE * ) @@a2@@ & Number ; * ( _BYTE * ) @@a2@@ |= Number ; if ( ! memcmp ( ( const void * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) , @@a1@@ , Number ) ) { * ( _BYTE * ) @@a2@@ |= Number ; } else if ( * ( _BYTE * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) == Number && ! memcmp ( ( const void * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) , @@a1@@ , Number ) ) { * ( _BYTE * ) @@a2@@ |= Number ; } else if ( * ( _BYTE * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) == Number ) { for ( @@i@@ = ( _QWORD * ) * @@a1@@ [ Number ] ; @@i@@ ; @@i@@ = ( _QWORD * ) * @@i@@ ) { @@v3@@ = @@i@@ [ Number ] ; if ( * ( _BYTE * ) ( @@v3@@ + Number ) != Number && * * ( _BYTE * * ) ( @@v3@@ + Number ) == Number && ! memcmp ( ( const void * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) , ( const void * ) ( * ( _QWORD * ) ( @@v3@@ + Number ) + Number L ) , Number ) ) { * ( _BYTE * ) @@a2@@ |= Number ; return * ( _BYTE * ) @@a2@@ & Number ; } } } return * ( _BYTE * ) @@a2@@ & Number ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD *"}, "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": 3, "t": "_QWORD"}, "location": "s8"}]}