{"name": "ospf_lsa_checksum", "code": "__int64 __fastcall ospf_lsa_checksum ( __int64 @@a1@@ ) { unsigned __int64 @@v2@@ ; unsigned __int16 @@v3@@ ; int @@v4@@ ; int @@v5@@ ; int @@v6@@ ; int @@v7@@ ; unsigned __int64 @@v8@@ ; unsigned __int8 * @@i@@ ; unsigned __int8 * @@v10@@ ; @@v7@@ = Number ; @@v6@@ = Number ; * ( _WORD * ) ( @@a1@@ + Number ) = Number ; @@v3@@ = ntohs ( * ( _WORD * ) ( @@a1@@ + Number ) ) - Number ; @@v10@@ = ( unsigned __int8 * ) ( @@a1@@ + Number ) ; @@v2@@ = @@v3@@ + @@a1@@ + Number ; while ( ( unsigned __int64 ) @@v10@@ < @@v2@@ ) { @@v8@@ = ( unsigned __int64 ) ( @@v10@@ + Number ) ; if ( ( unsigned __int64 ) ( @@v10@@ + Number ) > @@v2@@ ) @@v8@@ = @@v3@@ + @@a1@@ + Number ; for ( @@i@@ = @@v10@@ ; ( unsigned __int64 ) @@i@@ < @@v8@@ ; ++ @@i@@ ) { @@v7@@ += * @@i@@ ; @@v6@@ += @@v7@@ ; } @@v7@@ %= Number ; @@v6@@ %= Number ; @@v10@@ = ( unsigned __int8 * ) @@v8@@ ; } @@v5@@ = ( @@v7@@ * ( @@v3@@ - Number ) - @@v6@@ ) % Number ; if ( @@v5@@ <= Number ) @@v5@@ += Number ; @@v4@@ = Number - @@v7@@ - @@v5@@ ; if ( @@v4@@ > Number ) LOWORD ( @@v4@@ ) = @@v4@@ - Number ; * ( _WORD * ) ( @@a1@@ + Number ) = htons ( ( ( _WORD ) @@v5@@ << Number ) + @@v4@@ ) ; return * ( unsigned __int16 * ) ( @@a1@@ + Number ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "i", "t": {"T": 3, "t": "unsigned __int8"}, "location": "s16"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s40"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s42"}, {"n": "v2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v10", "t": {"T": 3, "t": "unsigned __int8"}, "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_install", "code": "__int64 __fastcall ospf_lsa_install ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { const char * v4 ; char * v5 ; char * v6 ; const char * v7 ; char * v8 ; char * v9 ; char @@dest@@ [ Number ] ; __int64 @@v12@@ ; int @@v13@@ ; __int64 @@v14@@ ; __int64 @@v15@@ ; @@v15@@ = Number L ; @@v12@@ = Number L ; @@v14@@ = Number L ; if ( * ( _BYTE * ) ( * ( _QWORD * ) ( @@a3@@ + Number ) + Number L ) == Number ) @@v14@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; else @@v14@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a3@@ + Number ) + Number L ) ; if ( ! @@v14@@ ) _assert_fail ( String , String , Number , String ) ; @@v12@@ = ospf_lsdb_lookup ( @@v14@@ , @@a3@@ ) ; @@v13@@ = Number ; if ( ! @@v12@@ || ( unsigned int ) ospf_lsa_different ( @@v12@@ , @@a3@@ ) ) @@v13@@ = Number ; if ( @@v12@@ ) ospf_discard_from_db ( @@a1@@ , @@v14@@ , @@a3@@ ) ; ospf_lsdb_add ( @@v14@@ , @@a3@@ ) ; * ( _QWORD * ) ( @@a3@@ + Number ) = @@v14@@ ; if ( ( * ( _BYTE * ) @@a3@@ & Number ) != Number ) ospf_lsa_checksum ( * ( _QWORD * ) ( @@a3@@ + Number ) ) ; switch ( * ( _BYTE * ) ( * ( _QWORD * ) ( @@a3@@ + Number ) + Number L ) ) { case Number : @@v15@@ = ospf_router_lsa_install ( @@a1@@ , @@a3@@ , @@v13@@ ) ; break ; case Number : if ( ! @@a2@@ ) _assert_fail ( String , String , Number , String ) ; @@v15@@ = ( __int64 ) ospf_network_lsa_install ( @@a1@@ , @@a2@@ , ( _BYTE * ) @@a3@@ , @@v13@@ ) ; break ; case Number : @@v15@@ = ( __int64 ) ospf_summary_lsa_install ( @@a1@@ , ( _BYTE * ) @@a3@@ , @@v13@@ ) ; break ; case Number : @@v15@@ = ( __int64 ) ospf_summary_asbr_lsa_install ( @@a1@@ , ( _BYTE * ) @@a3@@ , @@v13@@ ) ; break ; case Number : @@v15@@ = ( __int64 ) ospf_external_lsa_install ( @@a1@@ , ( _BYTE * ) @@a3@@ , @@v13@@ ) ; break ; default : break ; } if ( ! @@v15@@ ) return Number L ; if ( ( term_debug_ospf_lsa & Number ) != Number ) { if ( * ( _BYTE * ) ( * ( _QWORD * ) ( @@a3@@ + Number ) + Number L ) == Number ) { v4 = ( const char * ) mes_lookup ( & ospf_lsa_type_msg , ospf_lsa_type_msg_max , * ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@v15@@ + Number ) + Number L ) ) ; v5 = dump_lsa_key ( @@v15@@ ) ; zlog_info ( String , v5 , v4 ) ; } else { v6 = inet_ntoa ( * ( struct in_addr * ) ( * ( _QWORD * ) ( @@v15@@ + Number ) + Number L ) ) ; strcpy ( @@dest@@ , v6 ) ; v7 = ( const char * ) mes_lookup ( & ospf_lsa_type_msg , ospf_lsa_type_msg_max , * ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@v15@@ + Number ) + Number L ) ) ; v8 = dump_lsa_key ( @@v15@@ ) ; zlog_info ( String , v8 , v7 , @@dest@@ ) ; } } if ( ( ( int ) get_age ( @@v15@@ ) > Number || ( unsigned int ) get_age ( @@v15@@ ) == Number ) && ( * ( _BYTE * ) @@v15@@ & Number ) == Number ) { if ( ( term_debug_ospf_lsa & Number ) != Number ) { v9 = inet_ntoa ( * ( struct in_addr * ) ( * ( _QWORD * ) ( @@v15@@ + Number ) + Number L ) ) ; zlog_info ( String , * ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@v15@@ + Number ) + Number L ) , v9 ) ; } ospf_lsa_maxage ( @@a1@@ , @@a3@@ ) ; } return @@v15@@ ; }", "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"}, {"n": "v15", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "dest", "t": {"T": 2, "n": 16, "s": 1, "t": "char"}, "location": "s64"}]}