{"name": "ospf_refresher_register_lsa", "code": "__int64 __fastcall ospf_refresher_register_lsa ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 result ; int v3 ; __int16 v4 ; unsigned int v5 ; __int64 v6 ; unsigned __int16 @@v7@@ ; int @@v8@@ ; if ( ( * ( _BYTE * ) @@a2@@ & Number ) == Number ) _assert_fail ( String , String , Number , String ) ; result = * ( unsigned int * ) ( @@a2@@ + Number ) ; if ( ( int ) result < Number ) { if ( ( int ) get_age ( @@a2@@ ) > Number || ( unsigned int ) get_age ( @@a2@@ ) || ntohl ( * ( _DWORD * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) ) != Number ) { if ( ( int ) get_age ( @@a2@@ ) > Number ) v3 = Number ; else v3 = Number - get_age ( @@a2@@ ) ; @@v8@@ = v3 + random ( ) % Number ; } else { @@v8@@ = random ( ) % Number + Number ; } if ( @@v8@@ < Number ) @@v8@@ = Number ; v4 = * ( _WORD * ) ( @@a1@@ + Number ) ; @@v7@@ = ( @@v8@@ / Number + ( unsigned __int16 ) ( v4 + ( __int16 ) ( time ( Number L ) - * ( _WORD * ) ( @@a1@@ + Number ) ) / Number ) ) % Number ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { if ( ( int ) get_age ( @@a2@@ ) > Number ) v5 = Number ; else v5 = get_age ( @@a2@@ ) ; zlog_info ( String , v5 , @@v7@@ ) ; } if ( ! * ( _QWORD * ) ( @@a1@@ + Number * ( @@v7@@ + Number L ) + Number ) ) * ( _QWORD * ) ( @@a1@@ + Number * ( @@v7@@ + Number L ) + Number ) = list_new ( ) ; v6 = ospf_lsa_lock ( @@a2@@ ) ; listnode_add ( * ( _QWORD * ) ( @@a1@@ + Number * ( @@v7@@ + Number L ) + Number ) , v6 ) ; result = @@a2@@ ; * ( _DWORD * ) ( @@a2@@ + Number ) = @@v7@@ ; } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s24"}]}
{"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": "ospf_lsa_lock", "code": "__int64 __fastcall ospf_lsa_lock ( __int64 @@a1@@ ) { ++ * ( _DWORD * ) ( @@a1@@ + Number ) ; return @@a1@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "ospf_external_lsa_refresh", "code": "__int64 __fastcall ospf_external_lsa_refresh ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned __int8 * @@a3@@ , int @@a4@@ ) { __int64 result ; char * v5 ; uint32_t v6 ; char * v7 ; unsigned int @@v10@@ ; struct timeval * @@v11@@ ; if ( ! ( unsigned int ) ospf_redistribute_check ( @@a1@@ , @@a3@@ , & @@v10@@ ) ) return ospf_external_lsa_flush ( @@a1@@ , * @@a3@@ , ( __int64 ) ( @@a3@@ + Number ) ) ; result = @@v10@@ ; if ( @@v10@@ || @@a4@@ ) { ospf_ls_retransmit_delete_nbr_as ( @@a1@@ , @@a2@@ ) ; ospf_refresher_unregister_lsa ( @@a1@@ , @@a2@@ ) ; @@v11@@ = ospf_external_lsa_new ( @@a1@@ , @@a3@@ , ( int * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) ) ; if ( @@v11@@ ) { v6 = lsa_seqnum_increment ( @@a2@@ ) ; * ( _DWORD * ) ( @@v11@@ -> tv_usec + Number ) = v6 ; gettimeofday ( @@v11@@ + Number , Number L ) ; ospf_lsa_checksum ( @@v11@@ -> tv_usec ) ; ospf_lsa_install ( @@a1@@ , Number L , @@v11@@ ) ; ospf_flood_through_as ( @@a1@@ , Number L , @@v11@@ ) ; ospf_refresher_register_lsa ( @@a1@@ , @@v11@@ ) ; result = term_debug_ospf_lsa & Number ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { v7 = inet_ntoa ( * ( struct in_addr * ) ( @@v11@@ -> tv_usec + Number ) ) ; zlog_info ( String , * ( unsigned __int8 * ) ( @@v11@@ -> tv_usec + Number ) , v7 ) ; result = ospf_lsa_header_dump ( @@v11@@ -> tv_usec ) ; } } else { result = term_debug_ospf_lsa & Number ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { v5 = inet_ntoa ( * ( struct in_addr * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) ) ; result = zlog_warn ( String , * ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) , v5 ) ; } } } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "unsigned __int8"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v11", "t": {"T": 3, "t": "struct timeval"}, "location": "s8"}]} {"name": "ospf_summary_lsa_install", "code": "_BYTE * __fastcall ospf_summary_lsa_install ( __int64 @@a1@@ , _BYTE * @@a2@@ , int @@a3@@ ) { if ( @@a3@@ ) { if ( ( * @@a2@@ & Number ) == Number ) { ospf_spf_calculate_schedule ( @@a1@@ ) ; if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String ) ; } } if ( ( * @@a2@@ & Number ) != Number ) ospf_refresher_register_lsa ( @@a1@@ , @@a2@@ ) ; return @@a2@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_BYTE"}, "location": "r64"}]} {"name": "ospf_summary_asbr_lsa_install", "code": "_BYTE * __fastcall ospf_summary_asbr_lsa_install ( __int64 @@a1@@ , _BYTE * @@a2@@ , int @@a3@@ ) { if ( @@a3@@ && ( * @@a2@@ & Number ) == Number ) ospf_spf_calculate_schedule ( @@a1@@ ) ; if ( ( * @@a2@@ & Number ) != Number ) ospf_refresher_register_lsa ( @@a1@@ , @@a2@@ ) ; return @@a2@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_BYTE"}, "location": "r64"}]} {"name": "ospf_external_lsa_install", "code": "_BYTE * __fastcall ospf_external_lsa_install ( __int64 @@a1@@ , _BYTE * @@a2@@ , int @@a3@@ ) { ospf_ase_register_external_lsa ( @@a2@@ , @@a1@@ ) ; if ( @@a3@@ && ( * @@a2@@ & Number ) == Number ) ospf_ase_incremental_update ( @@a1@@ , @@a2@@ ) ; if ( ( * @@a2@@ & Number ) != Number ) ospf_refresher_register_lsa ( @@a1@@ , @@a2@@ ) ; return @@a2@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_BYTE"}, "location": "r64"}]}