{"name": "uip_ds6_set_addr_iid", "code": "__int64 __fastcall uip_ds6_set_addr_iid ( __int64 @@a1@@ , _QWORD * @@a2@@ ) { __int64 @@result@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = * @@a2@@ ; @@result@@ = @@a1@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) ^= Number ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}
{"name": "set_global_address", "code": "__int64 set_global_address ( ) { __int16 @@v1@@ [ Number ] ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; uip_ds6_set_addr_iid ( @@v1@@ , & uip_lladdr ) ; return uip_ds6_addr_add ( @@v1@@ , Number L , Number L ) ; }", "source": [{"n": "v1", "t": {"T": 2, "n": 8, "s": 2, "t": "__int16"}, "location": "s16"}]} {"name": "rpl_link_neighbor_callback", "code": "void * __fastcall rpl_link_neighbor_callback ( _QWORD * @@a1@@ , unsigned int @@a2@@ , unsigned int @@a3@@ ) { void * @@result@@ ; __int16 @@v5@@ [ Number ] ; __int64 @@v6@@ ; unsigned __int64 @@v7@@ ; char * @@v8@@ ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; @@v5@@ [ Number ] = Number ; uip_ds6_set_addr_iid ( ( __int64 ) @@v5@@ , @@a1@@ ) ; @@v8@@ = ( char * ) & instance_table ; @@v7@@ = ( unsigned __int64 ) & instance_table + Number ; while ( Number ) { @@result@@ = @@v8@@ ; if ( ( unsigned __int64 ) @@v8@@ >= @@v7@@ ) break ; if ( @@v8@@ [ Number ] == Number ) { @@v6@@ = rpl_find_parent_any_dag ( @@v8@@ , @@v5@@ ) ; if ( @@v6@@ ) { * ( _BYTE * ) ( @@v6@@ + Number ) = Number ; * ( _BYTE * ) ( @@v6@@ + Number ) = @@a3@@ ; if ( * ( _QWORD * ) ( * ( ( _QWORD * ) @@v8@@ + Number ) + Number L ) ) ( * ( void ( __fastcall * * ) ( __int64 , _QWORD , _QWORD ) ) ( * ( ( _QWORD * ) @@v8@@ + Number ) + Number L ) ) ( @@v6@@ , @@a2@@ , @@a3@@ ) ; if ( ! @@a2@@ ) * ( _WORD * ) ( @@v6@@ + Number ) = Number ; } } @@v8@@ += Number ; } if ( ! @@a2@@ ) @@result@@ = ( void * ) uip_ds6_route_rm_by_nexthop ( @@v5@@ ) ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "void"}, "location": "r8"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v5", "t": {"T": 2, "n": 12, "s": 2, "t": "__int16"}, "location": "s48"}, {"n": "v8", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "set_ip_from_prefix", "code": "__int64 __fastcall set_ip_from_prefix ( void * @@a1@@ , unsigned __int8 * @@a2@@ ) { int @@v2@@ ; memset ( @@a1@@ , Number , Number ) ; @@v2@@ = @@a2@@ [ Number ] + Number ; if ( @@v2@@ < Number ) @@v2@@ = @@a2@@ [ Number ] + Number ; memcpy ( @@a1@@ , @@a2@@ , @@v2@@ >> Number ) ; return uip_ds6_set_addr_iid ( ( __int64 ) @@a1@@ , & uip_lladdr ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "unsigned __int8"}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "uncompress_addr", "code": "__int64 __fastcall uncompress_addr ( _BYTE * @@a1@@ , const void * @@a2@@ , unsigned __int8 @@a3@@ , _QWORD * @@a4@@ ) { char v4 ; char v5 ; __int64 result ; unsigned __int8 @@v8@@ ; unsigned __int8 @@v9@@ ; if ( @@a3@@ >> Number == Number ) v4 = Number ; else v4 = @@a3@@ >> Number ; @@v9@@ = v4 ; if ( ( @@a3@@ & Number ) == Number ) v5 = Number ; else v5 = @@a3@@ & Number ; @@v8@@ = v5 ; if ( @@v9@@ ) memcpy ( @@a1@@ , @@a2@@ , @@v9@@ ) ; result = @@v9@@ + ( unsigned int ) @@v8@@ ; if ( ( int ) result <= Number ) result = ( __int64 ) memset ( & @@a1@@ [ @@v9@@ ] , Number , Number - ( @@v9@@ + @@v8@@ ) ) ; if ( @@v8@@ ) { memcpy ( & @@a1@@ [ Number - @@v8@@ ] , hc06_ptr , @@v8@@ ) ; if ( @@v8@@ == Number && @@v9@@ <= Number ) { @@a1@@ [ Number ] = Number ; @@a1@@ [ Number ] = Number ; } result = ( __int64 ) hc06_ptr + @@v8@@ ; hc06_ptr = ( void * ) result ; } else if ( @@v9@@ ) { result = uip_ds6_set_addr_iid ( ( __int64 ) @@a1@@ , @@a4@@ ) ; } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "_QWORD"}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const void"}, "location": "r64"}, {"n": "v9", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s1"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s2"}]}