{"name": "uncompress_hdr_hc06", "code": "__int64 __fastcall uncompress_hdr_hc06 ( __int16 @@a1@@ ) { char v1 ; __int64 result ; _QWORD * @@v3@@ ; const void * v4 ; _QWORD * v5 ; char v6 ; _QWORD * v7 ; _QWORD * v8 ; __int16 @@v9@@ ; char @@v10@@ ; char @@v11@@ ; char @@v12@@ ; unsigned __int8 @@v13@@ ; unsigned __int8 @@v14@@ ; char @@v15@@ ; hc06_ptr = ( char * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ; @@v15@@ = * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len ) ; @@v14@@ = * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ) ; if ( ( @@v14@@ & Number ) != Number ) hc06_ptr = ( char * ) hc06_ptr + Number ; if ( ( @@v15@@ & Number ) != Number ) { if ( ( @@v15@@ & Number ) != Number ) { sicslowpan_aligned_buf = Number ; * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = Number ; * ( ( _WORD * ) & sicslowpan_aligned_buf + Number ) = Number ; } else { sicslowpan_aligned_buf = ( * ( _BYTE * ) hc06_ptr >> Number ) & Number | Number ; * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = ( * ( _BYTE * ) hc06_ptr >> Number ) & Number | ( * ( _BYTE * ) hc06_ptr << Number ) ; * ( ( _WORD * ) & sicslowpan_aligned_buf + Number ) = Number ; hc06_ptr = ( char * ) hc06_ptr + Number ; } } else if ( ( @@v15@@ & Number ) != Number ) { sicslowpan_aligned_buf = Number ; * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = ( * ( _BYTE * ) hc06_ptr >> Number ) & Number | * ( _BYTE * ) hc06_ptr & Number ; unk_421A22 = * ( _WORD * ) ( ( char * ) hc06_ptr + Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { memcpy ( & unk_421A21 , ( char * ) hc06_ptr + Number , Number ) ; @@v13@@ = * ( _BYTE * ) hc06_ptr ; hc06_ptr = ( char * ) hc06_ptr + Number ; sicslowpan_aligned_buf = ( @@v13@@ >> Number ) & Number | Number ; * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) & Number | ( @@v13@@ << Number ) | ( @@v13@@ >> Number ) & Number ; } if ( ( @@v15@@ & Number ) == Number ) { * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = * ( _BYTE * ) hc06_ptr ; hc06_ptr = ( char * ) hc06_ptr + Number ; } if ( ( @@v15@@ & Number ) != Number ) { * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = ttl_values [ @@v15@@ & Number ] ; } else { * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = * ( _BYTE * ) hc06_ptr ; hc06_ptr = ( char * ) hc06_ptr + Number ; } @@v13@@ = ( ( int ) @@v14@@ >> Number ) & Number ; if ( ( @@v14@@ & Number ) != Number ) { if ( ( @@v14@@ & Number ) == Number ) v1 = Number ; else v1 = * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ) >> Number ; @@v12@@ = v1 ; if ( @@v13@@ ) { context = addr_context_lookup_by_number ( @@v12@@ ) ; result = context ; if ( ! context ) return result ; } @@v3@@ = ( _QWORD * ) packetbuf_addr ( Number ) ; if ( @@v13@@ ) v4 = ( const void * ) ( context + Number ) ; else v4 = Number L ; uncompress_addr ( byte_421A28 , v4 , unc_ctxconf [ @@v13@@ ] , @@v3@@ ) ; } else { v5 = ( _QWORD * ) packetbuf_addr ( Number ) ; uncompress_addr ( byte_421A28 , & llprefix , unc_llconf [ @@v13@@ ] , v5 ) ; } @@v13@@ = @@v14@@ & Number ; if ( ( @@v14@@ & Number ) != Number ) { if ( ( @@v14@@ & Number ) == Number ) { @@v9@@ = Number ; if ( @@v13@@ && @@v13@@ <= Number ) { HIBYTE ( @@v9@@ ) = * ( _BYTE * ) hc06_ptr ; hc06_ptr = ( char * ) hc06_ptr + Number ; } uncompress_addr ( byte_421A38 , & @@v9@@ , unc_mxconf [ @@v13@@ ] , Number L ) ; } } else if ( ( @@v14@@ & Number ) != Number ) { if ( ( @@v14@@ & Number ) == Number ) v6 = Number ; else v6 = * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ) & Number ; @@v11@@ = v6 ; context = addr_context_lookup_by_number ( v6 ) ; result = context ; if ( ! context ) return result ; v7 = ( _QWORD * ) packetbuf_addr ( Number ) ; uncompress_addr ( byte_421A38 , ( const void * ) ( context + Number ) , unc_ctxconf [ @@v13@@ ] , v7 ) ; } else { v8 = ( _QWORD * ) packetbuf_addr ( Number ) ; uncompress_addr ( byte_421A38 , & llprefix , unc_llconf [ @@v13@@ ] , v8 ) ; } uncomp_hdr_len += Number ; if ( ( @@v15@@ & Number ) != Number && ( * ( _BYTE * ) hc06_ptr & Number ) == Number ) { * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = Number ; @@v10@@ = * ( _BYTE * ) hc06_ptr & Number ; result = * ( _BYTE * ) hc06_ptr & Number ; if ( ( _DWORD ) result == Number ) { word_421A48 = ( ( ( * ( ( _BYTE * ) hc06_ptr + Number ) >> Number ) - Number ) << Number ) | ( ( unsigned __int16 ) ( ( * ( ( _BYTE * ) hc06_ptr + Number ) >> Number ) - Number ) >> Number ) ; * ( & word_421A48 + Number ) = ( ( ( * ( ( _BYTE * ) hc06_ptr + Number ) & Number ) - Number ) << Number ) | ( ( unsigned __int16 ) ( ( * ( ( _BYTE * ) hc06_ptr + Number ) & Number ) - Number ) >> Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { if ( ( * ( _BYTE * ) hc06_ptr & Number ) > Number ) return result ; switch ( ( _DWORD ) result ) { case Number : word_421A48 = ( ( * ( ( unsigned __int8 * ) hc06_ptr + Number ) - Number ) << Number ) | ( ( unsigned __int16 ) ( * ( ( unsigned __int8 * ) hc06_ptr + Number ) - Number ) >> Number ) ; unk_421A4A = * ( ( _WORD * ) hc06_ptr + Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; break ; case Number : word_421A48 = * ( _WORD * ) ( ( char * ) hc06_ptr + Number ) ; unk_421A4A = * ( _WORD * ) ( ( char * ) hc06_ptr + Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; break ; case Number : word_421A48 = * ( _WORD * ) ( ( char * ) hc06_ptr + Number ) ; * ( & word_421A48 + Number ) = ( ( * ( ( unsigned __int8 * ) hc06_ptr + Number ) - Number ) << Number ) | ( ( unsigned __int16 ) ( * ( ( unsigned __int8 * ) hc06_ptr + Number ) - Number ) >> Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; break ; default : return result ; } } if ( ! @@v10@@ ) { unk_421A4E = * ( _WORD * ) hc06_ptr ; hc06_ptr = ( char * ) hc06_ptr + Number ; } uncomp_hdr_len += Number ; } rime_hdr_len = ( _BYTE ) hc06_ptr - ( _BYTE ) rime_ptr ; if ( @@a1@@ ) { * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = ( unsigned __int16 ) ( @@a1@@ - Number ) >> Number ; * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = @@a1@@ - Number ; } else { * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & sicslowpan_aligned_buf + Number ) = packetbuf_datalen ( ) - rime_hdr_len + uncomp_hdr_len - Number ; } result = * ( ( unsigned __int8 * ) & sicslowpan_aligned_buf + Number ) ; if ( ( _BYTE ) result == Number ) { result = word_421A24 [ Number ] ; unk_421A4C = word_421A24 [ Number ] ; } return result ; }", "source": [{"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r56"}, {"n": "v15", "t": {"T": 1, "n": "char", "s": 1}, "location": "s1"}, {"n": "v14", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s2"}, {"n": "v13", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s3"}, {"n": "v12", "t": {"T": 1, "n": "char", "s": 1}, "location": "s4"}, {"n": "v11", "t": {"T": 1, "n": "char", "s": 1}, "location": "s5"}, {"n": "v10", "t": {"T": 1, "n": "char", "s": 1}, "location": "s6"}, {"n": "v9", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s8"}]}
{"name": "addr_context_lookup_by_number", "code": "__int64 __fastcall addr_context_lookup_by_number ( char @@a1@@ ) { int @@i@@ ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { if ( addr_contexts [ Number * @@i@@ ] == Number && @@a1@@ == byte_421BF1 [ Number * @@i@@ ] ) return Number L * @@i@@ + Number ; } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "char", "s": 1}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]} {"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"}]} {"name": "compress_hdr_hc06", "code": "signed __int64 __fastcall compress_hdr_hc06 ( _BYTE * @@a1@@ ) { int v1 ; _QWORD * v2 ; __int64 v3 ; _QWORD * v4 ; __int64 v5 ; _QWORD * v6 ; __int64 v7 ; signed __int64 result ; unsigned __int8 v9 ; char v10 ; char @@v11@@ ; char @@v12@@ ; hc06_ptr = ( char * ) rime_ptr + Number ; @@v12@@ = Number ; @@v11@@ = Number ; * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ) = Number ; if ( addr_context_lookup_by_prefix ( byte_422798 ) || addr_context_lookup_by_prefix ( byte_422788 ) ) { @@v11@@ = Number ; hc06_ptr = ( char * ) hc06_ptr + Number ; } v9 = ( Number * uip_aligned_buf ) | ( BYTE1 ( uip_aligned_buf ) >> Number ) ; v10 = ( v9 << Number ) | ( v9 >> Number ) ; if ( ( uip_aligned_buf & Number ) != Number || HIWORD ( uip_aligned_buf ) ) { if ( ( uip_aligned_buf & Number ) != Number || ( uip_aligned_buf & Number ) != Number ) { * ( _DWORD * ) hc06_ptr = uip_aligned_buf ; * ( _BYTE * ) hc06_ptr = v10 ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { @@v12@@ = Number ; * ( _BYTE * ) hc06_ptr = BYTE1 ( uip_aligned_buf ) & Number | v10 & Number ; * ( _WORD * ) ( ( char * ) hc06_ptr + Number ) = HIWORD ( uip_aligned_buf ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } } else { @@v12@@ = Number ; if ( ( uip_aligned_buf & Number ) != Number || ( uip_aligned_buf & Number ) != Number ) { * ( _BYTE * ) hc06_ptr = v10 ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { @@v12@@ = Number ; } } if ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) == Number ) @@v12@@ |= Number ; if ( ( @@v12@@ & Number ) == Number ) { * ( _BYTE * ) hc06_ptr = * ( ( _BYTE * ) & uip_aligned_buf + Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } v1 = * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) ; switch ( v1 ) { case Number : @@v12@@ |= Number ; break ; case Number : @@v12@@ |= Number ; break ; case Number : @@v12@@ |= Number ; break ; default : * ( _BYTE * ) hc06_ptr = * ( ( _BYTE * ) & uip_aligned_buf + Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; break ; } 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 ] || * ( _WORD * ) & byte_422788 [ Number ] ) { context = addr_context_lookup_by_prefix ( byte_422788 ) ; if ( context ) { * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ) |= Number * * ( _BYTE * ) ( context + Number ) ; @@v11@@ |= compress_addr_64 ( Number , byte_422788 , & uip_lladdr ) | Number ; } else if ( byte_422788 [ Number ] != Number || byte_422788 [ Number ] != Number || * ( ( _WORD * ) & uip_aligned_buf + Number ) || * ( ( _WORD * ) & uip_aligned_buf + Number ) || * ( ( _WORD * ) & uip_aligned_buf + Number ) ) { v2 = hc06_ptr ; v3 = * ( _QWORD * ) & byte_422788 [ Number ] ; * ( _QWORD * ) hc06_ptr = * ( _QWORD * ) byte_422788 ; v2 [ Number ] = v3 ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { @@v11@@ |= compress_addr_64 ( Number , byte_422788 , & uip_lladdr ) ; } } else { @@v11@@ |= Number ; } if ( byte_422798 [ Number ] == Number ) { @@v11@@ |= Number ; if ( byte_422798 [ Number ] != Number || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || byte_422798 [ Number ] ) { if ( * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || byte_422798 [ Number ] ) { if ( * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || * ( _WORD * ) & byte_422798 [ Number ] || byte_422798 [ Number ] ) { v4 = hc06_ptr ; v5 = * ( _QWORD * ) & byte_422798 [ Number ] ; * ( _QWORD * ) hc06_ptr = * ( _QWORD * ) byte_422798 ; v4 [ Number ] = v5 ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { @@v11@@ |= Number ; * ( _BYTE * ) hc06_ptr = * ( ( _BYTE * ) & uip_aligned_buf + Number ) ; memcpy ( ( char * ) hc06_ptr + Number , & unk_4227A3 , Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } } else { @@v11@@ |= Number ; * ( _BYTE * ) hc06_ptr = * ( ( _BYTE * ) & uip_aligned_buf + Number ) ; memcpy ( ( char * ) hc06_ptr + Number , & unk_4227A5 , Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } } else { @@v11@@ |= Number ; * ( _BYTE * ) hc06_ptr = * ( ( _BYTE * ) & uip_aligned_buf + Number ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } } else { context = addr_context_lookup_by_prefix ( byte_422798 ) ; if ( context ) { * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ) |= * ( _BYTE * ) ( context + Number ) ; @@v11@@ |= compress_addr_64 ( Number , byte_422798 , @@a1@@ ) | Number ; } else if ( byte_422798 [ Number ] != Number || byte_422798 [ Number ] != Number || * ( ( _WORD * ) & uip_aligned_buf + Number ) || * ( ( _WORD * ) & uip_aligned_buf + Number ) || * ( ( _WORD * ) & uip_aligned_buf + Number ) ) { v6 = hc06_ptr ; v7 = * ( _QWORD * ) & byte_422798 [ Number ] ; * ( _QWORD * ) hc06_ptr = * ( _QWORD * ) byte_422798 ; v6 [ Number ] = v7 ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { @@v11@@ |= compress_addr_64 ( Number , byte_422798 , @@a1@@ ) ; } } uncomp_hdr_len = Number ; if ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) == Number ) { if ( ( ( ( unsigned __int16 ) ( ( _WORD ) dword_4227A8 << Number ) | BYTE1 ( dword_4227A8 ) ) & Number ) == Number && ( ( ( unsigned __int16 ) ( HIWORD ( dword_4227A8 ) << Number ) | HIBYTE ( HIWORD ( dword_4227A8 ) ) ) & Number ) == Number ) { * ( _BYTE * ) hc06_ptr = Number ; * ( ( _BYTE * ) hc06_ptr + Number ) = HIBYTE ( HIWORD ( dword_4227A8 ) ) + Number * ( BYTE1 ( dword_4227A8 ) + Number ) + Number ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else if ( ( ( ( unsigned __int16 ) ( HIWORD ( dword_4227A8 ) << Number ) | HIBYTE ( HIWORD ( dword_4227A8 ) ) ) & Number ) == Number ) { * ( _BYTE * ) hc06_ptr = Number ; * ( _WORD * ) ( ( char * ) hc06_ptr + Number ) = dword_4227A8 ; * ( ( _BYTE * ) hc06_ptr + Number ) = HIBYTE ( HIWORD ( dword_4227A8 ) ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else if ( ( ( ( unsigned __int16 ) ( ( _WORD ) dword_4227A8 << Number ) | BYTE1 ( dword_4227A8 ) ) & Number ) == Number ) { * ( _BYTE * ) hc06_ptr = Number ; * ( ( _BYTE * ) hc06_ptr + Number ) = BYTE1 ( dword_4227A8 ) ; * ( ( _WORD * ) hc06_ptr + Number ) = HIWORD ( dword_4227A8 ) ; hc06_ptr = ( char * ) hc06_ptr + Number ; } else { * ( _BYTE * ) hc06_ptr = Number ; * ( _DWORD * ) ( ( char * ) hc06_ptr + Number ) = dword_4227A8 ; hc06_ptr = ( char * ) hc06_ptr + Number ; } * ( _WORD * ) hc06_ptr = unk_4227AE ; hc06_ptr = ( char * ) hc06_ptr + Number ; uncomp_hdr_len += Number ; } * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len ) = @@v12@@ ; * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len + Number ) = @@v11@@ ; result = ( _BYTE * ) hc06_ptr - ( _BYTE * ) rime_ptr ; rime_hdr_len = ( _BYTE ) hc06_ptr - ( _BYTE ) rime_ptr ; return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "v12", "t": {"T": 1, "n": "char", "s": 1}, "location": "s1"}, {"n": "v11", "t": {"T": 1, "n": "char", "s": 1}, "location": "s2"}]} {"name": "input", "code": "__int64 input ( ) { int v0 ; int @@v1@@ ; __int64 result ; __int64 v3 ; __int64 v4 ; char v5 ; char @@v6@@ ; char @@v7@@ ; unsigned __int16 @@v8@@ ; unsigned __int8 @@v9@@ ; unsigned __int16 @@v10@@ ; @@v10@@ = Number ; @@v9@@ = Number ; @@v8@@ = Number ; @@v7@@ = Number ; @@v6@@ = Number ; uncomp_hdr_len = Number ; rime_hdr_len = Number ; rime_ptr = packetbuf_dataptr ( ) ; if ( timer_expired ( reass_timer ) ) { sicslowpan_len = Number ; processed_ip_in_len = Number ; } v0 = ( ( ( unsigned __int16 ) ( * ( unsigned __int8 * ) rime_ptr << Number ) | * ( ( unsigned __int8 * ) rime_ptr + Number ) ) >> Number ) & Number ; if ( v0 == Number ) { @@v9@@ = Number ; @@v10@@ = _byteswap_ushort ( * ( _WORD * ) rime_ptr ) & Number ; @@v8@@ = _byteswap_ushort ( * ( ( _WORD * ) rime_ptr + Number ) ) ; rime_hdr_len += Number ; @@v7@@ = Number ; } else if ( v0 == Number ) { @@v9@@ = * ( ( _BYTE * ) rime_ptr + Number ) ; @@v8@@ = _byteswap_ushort ( * ( ( _WORD * ) rime_ptr + Number ) ) ; @@v10@@ = _byteswap_ushort ( * ( _WORD * ) rime_ptr ) & Number ; rime_hdr_len += Number ; @@v1@@ = ( unsigned __int16 ) processed_ip_in_len ; if ( @@v1@@ + ( unsigned __int16 ) packetbuf_datalen ( ) - ( unsigned __int8 ) rime_hdr_len >= @@v10@@ ) @@v6@@ = Number ; } result = ( unsigned __int16 ) processed_ip_in_len ; if ( processed_ip_in_len ) { if ( @@v10@@ ) { result = ( unsigned __int16 ) sicslowpan_len ; if ( @@v10@@ != sicslowpan_len ) return result ; result = ( unsigned __int16 ) reass_tag ; if ( @@v8@@ != reass_tag ) return result ; v3 = packetbuf_addr ( Number ) ; result = rimeaddr_cmp ( ( __int64 ) & frag_sender , v3 ) ; if ( ! ( _DWORD ) result ) return result ; } if ( ! @@v10@@ ) return result ; } else if ( @@v10@@ && @@v10@@ <= Number ) { sicslowpan_len = @@v10@@ ; reass_tag = @@v8@@ ; timer_set ( reass_timer , Number L ) ; v4 = packetbuf_addr ( Number ) ; rimeaddr_copy ( ( __int64 ) & frag_sender , v4 ) ; } if ( rime_hdr_len != Number ) { if ( ( * ( ( _BYTE * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len ) & Number ) == Number ) { uncompress_hdr_hc06 ( @@v10@@ ) ; } else { result = * ( ( unsigned __int8 * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len ) ; if ( ( _DWORD ) result != Number ) return result ; memcpy ( & sicslowpan_aligned_buf , ( char * ) rime_ptr + ( unsigned __int8 ) ++ rime_hdr_len , Number ) ; rime_hdr_len += Number ; uncomp_hdr_len += Number ; } } result = packetbuf_datalen ( ) ; if ( ( unsigned __int16 ) result >= ( unsigned __int8 ) rime_hdr_len ) { v5 = packetbuf_datalen ( ) ; rime_payload_len = v5 - rime_hdr_len ; memcpy ( ( char * ) & sicslowpan_aligned_buf + ( unsigned __int8 ) uncomp_hdr_len + ( unsigned __int64 ) ( unsigned __int16 ) ( Number * @@v9@@ ) , ( char * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len , ( unsigned __int8 ) ( v5 - rime_hdr_len ) ) ; if ( @@v10@@ ) { if ( @@v7@@ ) processed_ip_in_len += ( unsigned __int8 ) uncomp_hdr_len ; if ( @@v6@@ ) processed_ip_in_len = @@v10@@ ; else processed_ip_in_len += ( unsigned __int8 ) rime_payload_len ; } else { sicslowpan_len = ( unsigned __int8 ) rime_payload_len + ( unsigned __int8 ) uncomp_hdr_len ; } if ( ! processed_ip_in_len || ( result = ( unsigned __int16 ) sicslowpan_len , processed_ip_in_len == sicslowpan_len ) ) { memcpy ( & uip_aligned_buf , & sicslowpan_aligned_buf , ( unsigned __int16 ) sicslowpan_len ) ; uip_len = sicslowpan_len ; sicslowpan_len = Number ; processed_ip_in_len = Number ; neighbor_info_packet_received ( ) ; if ( callback ) { set_packet_attrs ( ) ; ( * ( void ( * * ) ( void ) ) ( callback + Number ) ) ( ) ; } result = tcpip_input ( ) ; } } return result ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r32"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s18"}, {"n": "v9", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s19"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s22"}, {"n": "v7", "t": {"T": 1, "n": "char", "s": 1}, "location": "s23"}, {"n": "v6", "t": {"T": 1, "n": "char", "s": 1}, "location": "s24"}]}