{"name": "ospf_lsa_refresh", "code": "__int64 __fastcall ospf_lsa_refresh ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; unsigned __int8 * @@v3@@ ; if ( ( * ( _BYTE * ) @@a2@@ & Number ) == Number ) _assert_fail ( String , String , Number , String ) ; @@result@@ = * ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) ; if ( ( _DWORD ) @@result@@ == Number ) { @@v3@@ = ( unsigned __int8 * ) ospf_external_info_check ( @@a2@@ ) ; if ( @@v3@@ ) @@result@@ = ospf_external_lsa_refresh ( @@a1@@ , @@a2@@ , @@v3@@ , Number ) ; else @@result@@ = ospf_lsa_flush_as ( @@a1@@ , @@a2@@ ) ; } else if ( * ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) <= Number ) { if ( ( _DWORD ) @@result@@ == Number ) { @@result@@ = ( __int64 ) ospf_summary_asbr_lsa_refresh ( @@a1@@ , @@a2@@ ) ; } else if ( * ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) > Number ) { @@result@@ = ( __int64 ) ospf_summary_lsa_refresh ( @@a1@@ , @@a2@@ ) ; } } 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": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v3", "t": {"T": 3, "t": "unsigned __int8"}, "location": "s8"}]}
{"name": "ospf_lsa_refresh_delay", "code": "__int64 __fastcall ospf_lsa_refresh_delay ( _QWORD * @@a1@@ ) { __int64 v1 ; __int64 v2 ; int v3 ; __int64 v4 ; __int64 v5 ; __int64 v6 ; __int64 v7 ; char * v8 ; struct timeval @@tv@@ ; __int64 @@v11@@ ; __int64 @@v12@@ ; unsigned int @@v13@@ ; @@v13@@ = Number ; gettimeofday ( & @@tv@@ , Number L ) ; @@v11@@ = tv_sub ( @@tv@@ . tv_sec , @@tv@@ . tv_usec , @@a1@@ [ Number ] , @@a1@@ [ Number ] ) ; @@v12@@ = v1 ; v2 = int2tv ( Number ) ; if ( ( int ) tv_cmp ( @@v11@@ , @@v12@@ , v2 , v3 ) < Number ) { v4 = int2tv ( Number ) ; v6 = tv_sub ( v4 , v5 , @@v11@@ , @@v12@@ ) ; @@v13@@ = tv_ceil ( v6 , v7 ) ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { v8 = inet_ntoa ( * ( struct in_addr * ) ( @@a1@@ [ Number ] + Number L ) ) ; zlog_info ( String , * ( unsigned __int8 * ) ( @@a1@@ [ Number ] + Number L ) , v8 , @@v13@@ ) ; } if ( ( int ) @@v13@@ <= Number ) _assert_fail ( String , String , Number , String ) ; } return @@v13@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "v13", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"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": "s64"}]} {"name": "ospf_router_lsa_timer_add", "code": "__int64 __fastcall ospf_router_lsa_timer_add ( __int64 @@a1@@ ) { __int64 @@result@@ ; int @@v2@@ ; _QWORD * @@v3@@ ; @@v3@@ = * ( _QWORD * * ) ( @@a1@@ + Number ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) && ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { thread_cancel ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; } if ( @@v3@@ && ( @@v2@@ = ospf_lsa_refresh_delay ( @@v3@@ ) , @@v2@@ > Number ) ) { @@result@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( ! @@result@@ ) { @@result@@ = thread_add_timer ( master , ospf_router_lsa_timer , @@a1@@ , @@v2@@ ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@result@@ ; } } else { if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String ) ; @@result@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( ! @@result@@ ) { @@result@@ = thread_add_timer ( master , ospf_router_lsa_timer , @@a1@@ , Number L ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@result@@ ; } } 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": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "ospf_network_lsa_timer_add", "code": "__int64 __fastcall ospf_network_lsa_timer_add ( __int64 @@a1@@ ) { __int64 @@result@@ ; int @@v2@@ ; _QWORD * @@v3@@ ; @@v3@@ = * ( _QWORD * * ) ( @@a1@@ + Number ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) && ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { thread_cancel ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; } if ( @@v3@@ && ( @@v2@@ = ospf_lsa_refresh_delay ( @@v3@@ ) , @@v2@@ > Number ) ) { @@result@@ = thread_add_timer ( master , ospf_network_lsa_refresh_timer , @@a1@@ , @@v2@@ ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@result@@ ; } else { if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String ) ; @@result@@ = thread_add_event ( master , ospf_network_lsa_refresh_timer , @@a1@@ , Number L ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@result@@ ; } 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": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "ospf_summary_lsa_refresh", "code": "struct timeval * __fastcall ospf_summary_lsa_refresh ( __int64 @@a1@@ , __int64 @@a2@@ ) { uint32_t v2 ; uint32_t v3 ; char * v4 ; char @@v6@@ [ Number ] ; struct timeval * @@v7@@ ; __int64 @@v8@@ ; if ( ! * ( _QWORD * ) ( @@a2@@ + Number ) ) _assert_fail ( String , String , Number , String ) ; @@v8@@ = * ( _QWORD * ) ( @@a2@@ + Number ) ; @@v6@@ [ Number ] = ip_masklen ( * ( unsigned int * ) ( @@v8@@ + Number ) ) ; v2 = get_metric ( ( unsigned __int8 * ) ( @@v8@@ + Number ) ) ; @@v7@@ = ospf_summary_lsa_new ( * ( _QWORD * ) ( @@a2@@ + Number ) , ( __int64 ) @@v6@@ , v2 , * ( _DWORD * ) ( @@v8@@ + Number ) ) ; v3 = lsa_seqnum_increment ( @@a2@@ ) ; * ( _DWORD * ) ( @@v7@@ -> tv_usec + Number ) = v3 ; ospf_lsa_checksum ( @@v7@@ -> tv_usec ) ; ospf_lsa_install ( @@a1@@ , Number L , @@v7@@ ) ; ospf_flood_through_area ( @@v7@@ [ Number ] . tv_usec , Number L , @@v7@@ ) ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { v4 = inet_ntoa ( * ( struct in_addr * ) ( @@v7@@ -> tv_usec + Number ) ) ; zlog_info ( String , * ( unsigned __int8 * ) ( @@v7@@ -> tv_usec + Number ) , v4 ) ; ospf_lsa_header_dump ( @@v7@@ -> tv_usec ) ; } return @@v7@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v7", "t": {"T": 3, "t": "struct timeval"}, "location": "s16"}, {"n": "v6", "t": {"T": 2, "n": 32, "s": 1, "t": "char"}, "location": "s48"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "ospf_summary_asbr_lsa_refresh", "code": "struct timeval * __fastcall ospf_summary_asbr_lsa_refresh ( __int64 @@a1@@ , __int64 @@a2@@ ) { uint32_t v2 ; uint32_t v3 ; char * v4 ; char @@v6@@ [ Number ] ; struct timeval * @@v7@@ ; __int64 @@v8@@ ; if ( ! * ( _QWORD * ) ( @@a2@@ + Number ) ) _assert_fail ( String , String , Number , String ) ; @@v8@@ = * ( _QWORD * ) ( @@a2@@ + Number ) ; @@v6@@ [ Number ] = ip_masklen ( * ( unsigned int * ) ( @@v8@@ + Number ) ) ; v2 = get_metric ( ( unsigned __int8 * ) ( @@v8@@ + Number ) ) ; @@v7@@ = ospf_summary_asbr_lsa_new ( * ( _QWORD * ) ( @@a2@@ + Number ) , ( __int64 ) @@v6@@ , v2 , * ( _DWORD * ) ( @@v8@@ + Number ) ) ; v3 = lsa_seqnum_increment ( @@a2@@ ) ; * ( _DWORD * ) ( @@v7@@ -> tv_usec + Number ) = v3 ; ospf_lsa_checksum ( @@v7@@ -> tv_usec ) ; ospf_lsa_install ( @@a1@@ , Number L , @@v7@@ ) ; ospf_flood_through_area ( @@v7@@ [ Number ] . tv_usec , Number L , @@v7@@ ) ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { v4 = inet_ntoa ( * ( struct in_addr * ) ( @@v7@@ -> tv_usec + Number ) ) ; zlog_info ( String , * ( unsigned __int8 * ) ( @@v7@@ -> tv_usec + Number ) , v4 ) ; ospf_lsa_header_dump ( @@v7@@ -> tv_usec ) ; } return @@v7@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v7", "t": {"T": 3, "t": "struct timeval"}, "location": "s16"}, {"n": "v6", "t": {"T": 2, "n": 32, "s": 1, "t": "char"}, "location": "s48"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"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_lsa_refresh_walker", "code": "__int64 __fastcall ospf_lsa_refresh_walker ( __int64 @@a1@@ ) { __int64 @@v1@@ ; _QWORD * @@v3@@ ; _DWORD * @@v4@@ ; _QWORD * @@v5@@ ; _QWORD * @@v6@@ ; __int64 @@v7@@ ; int @@v8@@ ; _QWORD * i ; _QWORD * j ; @@v7@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v6@@ = ( _QWORD * ) list_new ( ) ; if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String ) ; @@v8@@ = * ( unsigned __int16 * ) ( @@v7@@ + Number ) ; @@v1@@ = * ( unsigned __int16 * ) ( @@v7@@ + Number ) ; * ( _WORD * ) ( @@v7@@ + Number ) = ( @@v1@@ + ( time ( Number L ) - * ( _QWORD * ) ( @@v7@@ + Number ) ) / Number ) % Number ; if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String , * ( unsigned __int16 * ) ( @@v7@@ + Number ) ) ; while ( @@v8@@ != * ( unsigned __int16 * ) ( @@v7@@ + Number ) ) { if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String , ( unsigned int ) @@v8@@ ) ; @@v5@@ = * ( _QWORD * * ) ( @@v7@@ + Number * ( @@v8@@ + Number L ) + Number ) ; * ( _QWORD * ) ( @@v7@@ + Number * ( @@v8@@ + Number L ) + Number ) = Number L ; if ( @@v5@@ ) { for ( i = ( _QWORD * ) * @@v5@@ ; i ; i = @@v3@@ ) { @@v4@@ = ( _DWORD * ) i [ Number ] ; @@v3@@ = ( _QWORD * ) * i ; if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String , @@v4@@ ) ; list_delete_node ( @@v5@@ , i ) ; ospf_lsa_unlock ( ( __int64 ) @@v4@@ ) ; @@v4@@ [ Number ] = Number ; listnode_add ( @@v6@@ , @@v4@@ ) ; } list_free ( @@v5@@ ) ; } @@v8@@ = ( @@v8@@ + Number ) % Number ; } * ( _QWORD * ) ( @@v7@@ + Number ) = thread_add_timer ( master , ospf_lsa_refresh_walker , @@v7@@ , * ( unsigned __int16 * ) ( @@v7@@ + Number ) ) ; * ( _QWORD * ) ( @@v7@@ + Number ) = time ( Number L ) ; for ( j = ( _QWORD * ) * @@v6@@ ; j ; j = ( _QWORD * ) * j ) ospf_lsa_refresh ( @@v7@@ , j [ Number ] ) ; list_delete ( @@v6@@ ) ; if ( ( term_debug_ospf_lsa & Number ) != Number ) zlog_info ( String ) ; return Number L ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v6", "t": {"T": 3, "t": "_QWORD"}, "location": "s48"}, {"n": "v5", "t": {"T": 3, "t": "_QWORD"}, "location": "s56"}, {"n": "v4", "t": {"T": 3, "t": "_DWORD"}, "location": "s64"}, {"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "s72"}]}