{"name": "off", "code": "__int64 __fastcall off ( unsigned int @@a1@@ ) { return off_0 ( @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}]}
{"name": "uip_nd6_ns_input", "code": "__int64 uip_nd6_ns_input ( ) { __int64 @@result@@ ; __int64 v1 ; __int64 v2 ; _QWORD * @@v3@@ ; __int64 v4 ; @@result@@ = * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) ; if ( ( _BYTE ) @@result@@ != Number ) goto LABEL_44 ; @@result@@ = * ( ( unsigned __int8 * ) & unk_422784 + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( _BYTE ) @@result@@ == Number ) goto LABEL_44 ; @@result@@ = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( _BYTE ) @@result@@ ) goto LABEL_44 ; nd6_opt_llao = Number L ; for ( nd6_opt_offset = Number ; ( unsigned __int8 ) nd6_opt_offset + ( unsigned __int8 ) uip_ext_len + Number < ( unsigned __int16 ) uip_len ; nd6_opt_offset += Number * * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) ) { @@result@@ = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) ; if ( ! ( _BYTE ) @@result@@ ) goto LABEL_44 ; if ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) == Number ) { nd6_opt_llao = ( unsigned __int8 ) uip_ext_len + Number + ( unsigned __int8 ) nd6_opt_offset + Number L ; if ( ! * ( _WORD * ) byte_422788 && ! * ( _WORD * ) & byte_422788 [ Number ] && ! * ( _WORD * ) & byte_422788 [ Number ] && ! * ( _WORD * ) & byte_422788 [ Number ] && ! * ( _WORD * ) & byte_422788 [ Number ] && ! * ( _WORD * ) & byte_422788 [ Number ] && ! * ( _WORD * ) & byte_422788 [ Number ] ) { @@result@@ = * ( unsigned __int16 * ) & byte_422788 [ Number ] ; if ( ! ( _WORD ) @@result@@ ) goto LABEL_44 ; } nbr = uip_ds6_nbr_lookup ( byte_422788 ) ; if ( nbr ) { if ( ! memcmp ( ( const void * ) ( nd6_opt_llao + Number ) , ( const void * ) ( nbr + Number ) , Number ) ) { if ( ! * ( _BYTE * ) ( nbr + Number ) ) * ( _BYTE * ) ( nbr + Number ) = Number ; } else { * ( _QWORD * ) ( nbr + Number ) = * ( _QWORD * ) ( nd6_opt_llao + Number ) ; * ( _BYTE * ) ( nbr + Number ) = Number ; } } else { uip_ds6_nbr_add ( byte_422788 , nd6_opt_llao + Number , Number L , Number L ) ; } } } if ( ( addr = uip_ds6_addr_lookup ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) , ( @@result@@ = addr ) != Number ) && ( * ( _WORD * ) byte_422788 || * ( _WORD * ) & byte_422788 [ Number ] || * ( _WORD * ) & byte_422788 [ Number ] || * ( _WORD * ) & byte_422788 [ Number ] || * ( _WORD * ) & byte_422788 [ Number ] || * ( _WORD * ) & byte_422788 [ Number ] || * ( _WORD * ) & byte_422788 [ Number ] || ( @@result@@ = * ( unsigned __int16 * ) & byte_422788 [ Number ] , ( _WORD ) @@result@@ ) ) && ( @@result@@ = uip_ds6_addr_lookup ( byte_422788 ) ) == Number && ( unk_422798 == Number && * ( ( _BYTE * ) & unk_422798 + Number ) == Number && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _BYTE * ) & unk_422798 + Number ) && * ( ( _BYTE * ) & unk_422798 + Number ) == Number && * ( ( _BYTE * ) & unk_422798 + Number ) == Number || ( @@result@@ = uip_ds6_addr_lookup ( & unk_422798 ) , @@result@@ == addr ) ) ) { v1 = * ( _QWORD * ) & byte_422788 [ Number ] ; unk_422798 = * ( _QWORD * ) byte_422788 ; * ( ( _QWORD * ) & unk_422798 + Number ) = v1 ; v2 = * ( _QWORD * ) & byte_422788 [ ( unsigned __int8 ) uip_ext_len + Number ] ; * ( _QWORD * ) byte_422788 = * ( _QWORD * ) ( ( char * ) & unk_422784 + ( unsigned __int8 ) uip_ext_len + Number ) ; * ( _QWORD * ) & byte_422788 [ Number ] = v2 ; uip_ext_len = Number ; uip_aligned_buf = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; @@v3@@ = ( _QWORD * ) ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; v4 = * ( _QWORD * ) ( addr + Number ) ; * @@v3@@ = * ( _QWORD * ) ( addr + Number ) ; @@v3@@ [ Number ] = v4 ; create_llao ( ( unsigned __int8 ) uip_ext_len + Number + Number L , Number ) ; * ( _WORD * ) ( ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; @@result@@ = ( unsigned int ) ~ uip_icmp6chksum ( ) ; * ( _WORD * ) ( ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = @@result@@ ; uip_len = Number ; } else { LABEL_44 : uip_len = Number ; } return @@result@@ ; }", "source": [{"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "r24"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "uip_nd6_na_input", "code": "__int64 uip_nd6_na_input ( ) { __int64 result ; size_t @@v1@@ ; const void * v2 ; char @@v3@@ ; char @@v4@@ ; char @@v5@@ ; char @@v6@@ ; @@v6@@ = Number ; @@v5@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) & Number ; @@v4@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) & Number ; @@v3@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) & Number ; result = * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) ; if ( ( _BYTE ) result != Number ) goto LABEL_44 ; result = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( _BYTE ) result ) goto LABEL_44 ; result = * ( ( unsigned __int8 * ) & unk_422784 + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( _BYTE ) result == Number ) goto LABEL_44 ; if ( @@v4@@ ) { result = byte_422798 [ Number ] ; if ( byte_422798 [ Number ] == Number ) goto LABEL_44 ; } nd6_opt_offset = Number ; nd6_opt_llao = Number L ; while ( ( unsigned __int8 ) nd6_opt_offset + ( unsigned __int8 ) uip_ext_len + Number < ( unsigned __int16 ) uip_len ) { result = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) ; if ( ! ( _BYTE ) result ) goto LABEL_44 ; if ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) == Number ) nd6_opt_llao = ( unsigned __int8 ) uip_ext_len + Number + ( unsigned __int8 ) nd6_opt_offset + Number L ; nd6_opt_offset += Number * * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) ; } addr = uip_ds6_addr_lookup ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; result = addr ; if ( addr ) goto LABEL_44 ; nbr = uip_ds6_nbr_lookup ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; result = nbr ; if ( ! nbr ) goto LABEL_44 ; if ( nd6_opt_llao ) @@v6@@ = memcmp ( ( const void * ) ( nd6_opt_llao + Number ) , ( const void * ) ( nbr + Number ) , Number ) ; if ( * ( _BYTE * ) ( nbr + Number ) ) { if ( ! @@v3@@ && @@v6@@ ) { result = * ( unsigned __int8 * ) ( nbr + Number ) ; if ( ( _BYTE ) result == Number ) { result = nbr ; * ( _BYTE * ) ( nbr + Number ) = Number ; } goto LABEL_44 ; } if ( @@v3@@ || nd6_opt_llao && ! @@v6@@ || ! nd6_opt_llao ) { if ( nd6_opt_llao ) * ( _QWORD * ) ( nbr + Number ) = * ( _QWORD * ) ( nd6_opt_llao + Number ) ; if ( @@v4@@ ) { * ( _BYTE * ) ( nbr + Number ) = Number ; stimer_set ( nbr + Number , dword_422C4C / Number ) ; } else if ( nd6_opt_llao && @@v6@@ ) { * ( _BYTE * ) ( nbr + Number ) = Number ; } } if ( * ( _BYTE * ) ( nbr + Number ) ) { if ( ! @@v5@@ ) { defrt = uip_ds6_defrt_lookup ( byte_422788 ) ; if ( defrt ) uip_ds6_defrt_rm ( defrt ) ; } } * ( _BYTE * ) ( nbr + Number ) = @@v5@@ ; } else { result = nd6_opt_llao ; if ( ! nd6_opt_llao ) goto LABEL_44 ; * ( _QWORD * ) ( nbr + Number ) = * ( _QWORD * ) ( nd6_opt_llao + Number ) ; if ( @@v4@@ ) { * ( _BYTE * ) ( nbr + Number ) = Number ; * ( _BYTE * ) ( nbr + Number ) = Number ; stimer_set ( nbr + Number , dword_422C4C / Number ) ; } else { * ( _BYTE * ) ( nbr + Number ) = Number ; } * ( _BYTE * ) ( nbr + Number ) = @@v5@@ ; } result = uip_packetqueue_buflen ( nbr + Number ) ; if ( ( _WORD ) result ) { uip_len = uip_packetqueue_buflen ( nbr + Number ) ; @@v1@@ = ( unsigned __int16 ) uip_len ; v2 = ( const void * ) uip_packetqueue_buf ( nbr + Number ) ; memcpy ( & uip_aligned_buf , v2 , @@v1@@ ) ; return uip_packetqueue_free ( nbr + Number ) ; } LABEL_44 : uip_len = Number ; return result ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r32"}, {"n": "v6", "t": {"T": 1, "n": "char", "s": 1}, "location": "s17"}, {"n": "v5", "t": {"T": 1, "n": "char", "s": 1}, "location": "s18"}, {"n": "v4", "t": {"T": 1, "n": "char", "s": 1}, "location": "s19"}, {"n": "v3", "t": {"T": 1, "n": "char", "s": 1}, "location": "s20"}]} {"name": "_off_0", "code": "__int64 __fastcall off_0 ( int @@a1@@ ) { __int64 @@result@@ ; if ( @@a1@@ ) @@result@@ = on_1 ( ) ; else @@result@@ = sub_4179FE ( ) ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "neighbor_attr_add_neighbor", "code": "__int64 __fastcall neighbor_attr_add_neighbor ( unsigned __int64 @@a1@@ ) { __int64 @@v2@@ ; unsigned __int16 @@i@@ ; _QWORD * @@j@@ ; if ( neighbor_attr_has_neighbor ( @@a1@@ ) ) return Number L ; @@v2@@ = memb_alloc ( & neighbor_addr_mem ) ; if ( ! @@v2@@ ) return Number ; list_push ( neighbor_addrs , ( _QWORD * ) @@v2@@ ) ; * ( _WORD * ) ( @@v2@@ + Number ) = Number ; rimeaddr_copy ( @@v2@@ + Number , @@a1@@ ) ; for ( @@i@@ = Number ; @@i@@ < ( unsigned __int16 ) word_41F3E2 && ( void * ) @@v2@@ != ( char * ) off_41F3F0 + Number * @@i@@ ; ++ @@i@@ ) ; * ( _WORD * ) ( @@v2@@ + Number ) = @@i@@ ; for ( @@j@@ = ( _QWORD * ) list_head ( ( __int64 ) neighbor_attrs ) ; @@j@@ ; @@j@@ = ( _QWORD * ) * @@j@@ ) set_attr ( ( __int64 ) @@j@@ , @@i@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s10"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "j", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]}