{"name": "output", "code": "__int64 __fastcall output ( __int64 @@a1@@ ) { char @@v2@@ [ Number ] ; __int64 * @@v3@@ ; unsigned __int16 @@v4@@ ; uncomp_hdr_len = Number ; rime_hdr_len = Number ; packetbuf_clear ( ) ; rime_ptr = packetbuf_dataptr ( ) ; packetbuf_set_attr ( Number , Number ) ; if ( callback ) set_packet_attrs ( ) ; if ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) != Number || ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number || ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) == Number ) { if ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) == Number && ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) packetbuf_set_attr ( Number , Number ) ; } else { packetbuf_set_attr ( Number , Number ) ; } if ( @@a1@@ ) rimeaddr_copy ( ( __int64 ) @@v2@@ , @@a1@@ ) ; else rimeaddr_copy ( ( __int64 ) @@v2@@ , ( __int64 ) & rimeaddr_null ) ; compress_hdr_hc06 ( @@v2@@ ) ; if ( ( unsigned __int16 ) uip_len - ( unsigned __int8 ) uncomp_hdr_len <= Number - ( unsigned __int8 ) rime_hdr_len ) { memcpy ( ( char * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len , ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uncomp_hdr_len , ( unsigned __int16 ) uip_len - ( unsigned __int8 ) uncomp_hdr_len ) ; packetbuf_set_datalen ( uip_len - ( unsigned __int8 ) uncomp_hdr_len + ( unsigned __int8 ) rime_hdr_len ) ; send_packet_1 ( ( __int64 ) @@v2@@ ) ; } else { memmove ( ( char * ) rime_ptr + Number , rime_ptr , ( unsigned __int8 ) rime_hdr_len ) ; * ( _BYTE * ) rime_ptr = HIBYTE ( uip_len ) | Number ; * ( ( _BYTE * ) rime_ptr + Number ) = uip_len ; * ( ( _BYTE * ) rime_ptr + Number ) = HIBYTE ( my_tag ) ; * ( ( _BYTE * ) rime_ptr + Number ) = my_tag ++ ; rime_hdr_len += Number ; rime_payload_len = ( Number - rime_hdr_len ) & Number ; memcpy ( ( char * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len , ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uncomp_hdr_len , ( Number - rime_hdr_len ) & Number ) ; packetbuf_set_datalen ( ( unsigned __int8 ) rime_payload_len + ( unsigned __int8 ) rime_hdr_len ) ; @@v3@@ = ( __int64 * ) queuebuf_new_from_packetbuf ( ) ; if ( ! @@v3@@ ) return Number L ; send_packet_1 ( ( __int64 ) @@v2@@ ) ; queuebuf_to_packetbuf ( ( unsigned __int64 ) @@v3@@ ) ; queuebuf_free ( @@v3@@ ) ; @@v3@@ = Number L ; if ( last_tx_status == Number || last_tx_status == Number || last_tx_status == Number ) return Number L ; @@v4@@ = ( unsigned __int8 ) rime_payload_len + ( unsigned __int8 ) uncomp_hdr_len ; rime_hdr_len = Number ; * ( _BYTE * ) rime_ptr = HIBYTE ( uip_len ) | Number ; * ( ( _BYTE * ) rime_ptr + Number ) = uip_len ; rime_payload_len = ( Number - rime_hdr_len ) & Number ; while ( @@v4@@ < ( unsigned __int16 ) uip_len ) { * ( ( _BYTE * ) rime_ptr + Number ) = @@v4@@ >> Number ; if ( ( unsigned __int16 ) uip_len - @@v4@@ < ( unsigned __int8 ) rime_payload_len ) rime_payload_len = uip_len - @@v4@@ ; memcpy ( ( char * ) rime_ptr + ( unsigned __int8 ) rime_hdr_len , ( char * ) & uip_aligned_buf + @@v4@@ , ( unsigned __int8 ) rime_payload_len ) ; packetbuf_set_datalen ( ( unsigned __int8 ) rime_payload_len + ( unsigned __int8 ) rime_hdr_len ) ; @@v3@@ = ( __int64 * ) queuebuf_new_from_packetbuf ( ) ; if ( ! @@v3@@ ) return Number L ; send_packet_1 ( ( __int64 ) @@v2@@ ) ; queuebuf_to_packetbuf ( ( unsigned __int64 ) @@v3@@ ) ; queuebuf_free ( @@v3@@ ) ; @@v3@@ = Number L ; @@v4@@ += ( unsigned __int8 ) rime_payload_len ; if ( last_tx_status == Number || last_tx_status == Number || last_tx_status == Number ) return Number L ; } } return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v3", "t": {"T": 3, "t": "__int64"}, "location": "s16"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s2"}, {"n": "v2", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s24"}]}
{"name": "uip_process", "code": "__int64 __fastcall uip_process ( char @@a1@@ ) { char * @@v1@@ ; __int64 result ; char v3 ; __int64 v4 ; __int64 v5 ; __int64 v6 ; __int16 v7 ; __int16 v8 ; __int64 v9 ; char @@v10@@ ; @@v1@@ = ( char * ) uip_conn ; if ( @@a1@@ == Number ) goto LABEL_155 ; uip_appdata = ( __int64 ) & unk_4227BC ; uip_sappdata = & unk_4227BC ; if ( @@a1@@ == Number ) { if ( ( * ( _BYTE * ) ( uip_conn + Number ) & Number ) != Number || * ( _WORD * ) ( uip_conn + Number ) ) { result = * ( _BYTE * ) ( uip_conn + Number ) & Number ; if ( ( _DWORD ) result == Number ) { * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; LABEL_203 : * ( ( _BYTE * ) & dword_4227A8 + Number ) |= Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; uip_len = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; LABEL_313 : * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = @@v1@@ [ Number ] ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; dword_4227A8 = * ( ( _DWORD * ) @@v1@@ + Number ) ; v9 = * ( ( _QWORD * ) @@v1@@ + Number ) ; unk_422798 = * ( _QWORD * ) @@v1@@ ; * ( ( _QWORD * ) & unk_422798 + Number ) = v9 ; uip_ds6_select_src ( byte_422788 , & unk_422798 ) ; if ( ( @@v1@@ [ Number ] & Number ) != Number ) { * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; } else { * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; } LABEL_316 : * ( ( _BYTE * ) & uip_aligned_buf + Number ) = byte_422C44 ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = ( unsigned __int16 ) ( uip_len - Number ) >> Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = uip_len - Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _WORD * ) & dword_4227A8 + Number ) = Number ; * ( ( _WORD * ) & dword_4227A8 + Number ) = ~ ( unsigned __int16 ) uip_tcpchksum ( ) ; goto LABEL_317 ; } goto LABEL_319 ; } LABEL_5 : uip_flags = Number ; tcpip_uipcall ( ) ; LABEL_270 : if ( ( uip_flags & Number ) != Number ) { uip_slen = Number ; @@v1@@ [ Number ] = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; LABEL_311 : uip_len = Number ; goto LABEL_312 ; } if ( ( uip_flags & Number ) != Number ) { uip_slen = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_311 ; } if ( uip_slen ) { if ( ( uip_flags & Number ) != Number ) * ( ( _WORD * ) @@v1@@ + Number ) = Number ; if ( * ( ( _WORD * ) @@v1@@ + Number ) ) { uip_slen = * ( ( _WORD * ) @@v1@@ + Number ) ; } else { if ( * ( ( _WORD * ) @@v1@@ + Number ) < ( unsigned __int16 ) uip_slen ) uip_slen = * ( ( _WORD * ) @@v1@@ + Number ) ; * ( ( _WORD * ) @@v1@@ + Number ) = uip_slen ; } } @@v1@@ [ Number ] = Number ; LABEL_283 : uip_appdata = ( __int64 ) uip_sappdata ; if ( uip_slen && * ( ( _WORD * ) @@v1@@ + Number ) ) { uip_len = * ( ( _WORD * ) @@v1@@ + Number ) + Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; LABEL_312 : * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_313 ; } result = uip_flags & Number ; if ( ( uip_flags & Number ) != Number ) { uip_len = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_312 ; } goto LABEL_319 ; } if ( @@a1@@ != Number ) { if ( @@a1@@ != Number ) { result = ( unsigned __int8 ) uip_aligned_buf & Number ; if ( ( _DWORD ) result != Number ) goto LABEL_319 ; result = ( unsigned __int16 ) uip_len ; if ( * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) + ( * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) << Number ) > ( unsigned __int16 ) uip_len ) goto LABEL_319 ; uip_len = ( * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) << Number ) + * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) + Number ; result = byte_422788 [ Number ] ; if ( byte_422788 [ Number ] == Number ) goto LABEL_319 ; uip_next_hdr = ( __int64 ) byte_422786 ; uip_ext_len = Number ; uip_ext_bitmap = Number ; if ( ! byte_422786 [ Number ] ) { uip_ext_bitmap |= Number ; result = ( unsigned __int8 ) ext_hdr_options_process ( ) ; if ( ( unsigned __int8 ) result == Number ) goto LABEL_318 ; if ( ( int ) result <= Number ) { if ( ( _DWORD ) result ) { if ( ( _DWORD ) result == Number ) goto LABEL_319 ; } else { uip_next_hdr = ( unsigned __int8 ) uip_ext_len + Number + Number L ; uip_ext_len += Number * * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) + Number ; } } } if ( uip_ds6_addr_lookup ( & unk_422798 ) || uip_ds6_maddr_lookup ( & unk_422798 ) ) { while ( Number ) { result = * ( unsigned __int8 * ) uip_next_hdr ; switch ( * ( _BYTE * ) uip_next_hdr ) { case Number : if ( ( uip_ext_bitmap & Number ) != Number ) goto LABEL_121 ; uip_ext_bitmap |= Number ; result = ( unsigned __int8 ) ext_hdr_options_process ( ) ; if ( ( unsigned __int8 ) result == Number ) goto LABEL_318 ; if ( ( int ) result > Number ) continue ; if ( ( _DWORD ) result ) { if ( ( _DWORD ) result == Number ) goto LABEL_319 ; } else { uip_next_hdr = ( unsigned __int8 ) uip_ext_len + Number + Number L ; uip_ext_len += Number * * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) + Number ; } continue ; case Number : remove_ext_hdr ( ) ; result = uip_tcpchksum ( ) ; if ( ( _WORD ) result != Number ) goto LABEL_319 ; result = HIWORD ( dword_4227A8 ) ; if ( ! ( _WORD ) result ) goto LABEL_319 ; result = ( unsigned __int16 ) dword_4227A8 ; if ( ! ( _WORD ) dword_4227A8 ) goto LABEL_319 ; @@v1@@ = ( char * ) & uip_conns ; while ( Number ) { if ( @@v1@@ <= byte_422708 ) { if ( ! @@v1@@ [ Number ] || HIWORD ( dword_4227A8 ) != * ( ( _WORD * ) @@v1@@ + Number ) || ( _WORD ) dword_4227A8 != * ( ( _WORD * ) @@v1@@ + Number ) || memcmp ( byte_422788 , @@v1@@ , Number ) ) { @@v1@@ += Number ; continue ; } uip_conn = ( __int64 ) @@v1@@ ; uip_flags = Number ; if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) { @@v1@@ [ Number ] = Number ; uip_flags = Number ; result = tcpip_uipcall ( ) ; goto LABEL_319 ; } c = Number * ( * ( ( _BYTE * ) & dword_4227A8 + Number ) >> Number ) ; uip_len = uip_len - ( unsigned __int8 ) c - Number ; if ( ( ( @@v1@@ [ Number ] & Number ) != Number || ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) && ( ( @@v1@@ [ Number ] & Number ) != Number || ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) && ( uip_len || ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) && ( * ( ( _BYTE * ) & dword_4227A8 + Number ) != @@v1@@ [ Number ] || * ( ( _BYTE * ) & dword_4227A8 + Number ) != @@v1@@ [ Number ] || * ( ( _BYTE * ) & dword_4227A8 + Number ) != @@v1@@ [ Number ] || * ( ( _BYTE * ) & dword_4227A8 + Number ) != @@v1@@ [ Number ] ) ) { if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) { LABEL_202 : * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_203 ; } LABEL_310 : * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_311 ; } if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) { if ( * ( ( _WORD * ) @@v1@@ + Number ) ) { uip_add32 ( @@v1@@ + Number , * ( ( _WORD * ) @@v1@@ + Number ) ) ; if ( * ( ( _BYTE * ) & dword_4227A8 + Number ) == uip_acc32 && * ( ( _BYTE * ) & dword_4227A8 + Number ) == byte_421E63 && * ( ( _BYTE * ) & dword_4227A8 + Number ) == byte_421E64 && * ( ( _BYTE * ) & dword_4227A8 + Number ) == byte_421E65 ) { @@v1@@ [ Number ] = uip_acc32 ; @@v1@@ [ Number ] = byte_421E63 ; @@v1@@ [ Number ] = byte_421E64 ; @@v1@@ [ Number ] = byte_421E65 ; if ( ! @@v1@@ [ Number ] ) { @@v10@@ = @@v1@@ [ Number ] - @@v1@@ [ Number ] - ( ( unsigned __int8 ) @@v1@@ [ Number ] >> Number ) ; @@v1@@ [ Number ] += @@v10@@ ; if ( @@v10@@ < Number ) @@v10@@ = - @@v10@@ ; @@v1@@ [ Number ] += @@v10@@ - ( ( unsigned __int8 ) @@v1@@ [ Number ] >> Number ) ; @@v1@@ [ Number ] = ( ( unsigned __int8 ) @@v1@@ [ Number ] >> Number ) + @@v1@@ [ Number ] ; } uip_flags = Number ; @@v1@@ [ Number ] = @@v1@@ [ Number ] ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; } } } result = @@v1@@ [ Number ] & Number ; switch ( @@v1@@ [ Number ] & Number ) { case Number : if ( ( uip_flags & Number ) != Number ) { @@v1@@ [ Number ] = Number ; uip_flags = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; if ( uip_len ) { uip_flags |= Number ; uip_add_rcv_nxt ( uip_len ) ; } goto LABEL_269 ; } result = * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ; if ( ( _DWORD ) result != Number ) goto LABEL_319 ; goto LABEL_202 ; case Number : if ( ( uip_flags & Number ) != Number && ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) == Number ) { if ( ( * ( _BYTE * ) ( & dword_4227A8 + Number ) & Number ) > Number ) { for ( c = Number ; ; c += * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ) { while ( Number ) { if ( ( unsigned __int8 ) c >= Number * ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) >> Number ) - Number ) ) goto LABEL_251 ; opt = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ; if ( ! opt ) goto LABEL_251 ; if ( opt != Number ) break ; ++ c ; } if ( opt == Number && * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) == Number ) break ; if ( ! * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ) goto LABEL_251 ; } tmp16 = ( * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) << Number ) | * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ; v8 = tmp16 ; if ( ( unsigned __int16 ) tmp16 > Number ) v8 = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = v8 ; * ( ( _WORD * ) @@v1@@ + Number ) = * ( ( _WORD * ) @@v1@@ + Number ) ; } LABEL_251 : @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; uip_add_rcv_nxt ( Number ) ; uip_flags = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; uip_len = Number ; uip_slen = Number ; tcpip_uipcall ( ) ; goto LABEL_270 ; } uip_flags = Number ; tcpip_uipcall ( ) ; * ( _BYTE * ) ( uip_conn + Number ) = Number ; break ; case Number : if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number && ( @@v1@@ [ Number ] & Number ) == Number ) { result = * ( ( unsigned __int16 * ) @@v1@@ + Number ) ; if ( ( _WORD ) result ) goto LABEL_319 ; uip_add_rcv_nxt ( uip_len + Number ) ; uip_flags |= Number ; if ( uip_len ) uip_flags |= Number ; tcpip_uipcall ( ) ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; LABEL_259 : * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_311 ; } if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) { uip_appdata += ( * ( ( unsigned __int8 * ) & dword_4227A8 + Number ) << Number ) | ( unsigned int ) * ( ( unsigned __int8 * ) & dword_4227A8 + Number ) ; uip_len -= _byteswap_ushort ( * ( ( _WORD * ) & dword_4227A8 + Number ) ) ; } if ( uip_len && ( @@v1@@ [ Number ] & Number ) == Number ) { uip_flags |= Number ; uip_add_rcv_nxt ( uip_len ) ; } tmp16 = ( * ( ( unsigned __int8 * ) & dword_4227A8 + Number ) << Number ) + * ( ( unsigned __int8 * ) & dword_4227A8 + Number ) ; if ( * ( ( _WORD * ) @@v1@@ + Number ) < ( unsigned __int16 ) tmp16 || ! tmp16 ) tmp16 = * ( ( _WORD * ) @@v1@@ + Number ) ; * ( ( _WORD * ) @@v1@@ + Number ) = tmp16 ; result = uip_flags & Number ; if ( ( uip_flags & Number ) != Number ) { LABEL_269 : uip_slen = Number ; tcpip_uipcall ( ) ; goto LABEL_270 ; } goto LABEL_319 ; case Number : if ( uip_len ) uip_add_rcv_nxt ( uip_len ) ; if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) { if ( ( uip_flags & Number ) != Number ) { @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; } else { @@v1@@ [ Number ] = Number ; } uip_add_rcv_nxt ( Number ) ; uip_flags = Number ; tcpip_uipcall ( ) ; goto LABEL_310 ; } result = uip_flags & Number ; if ( ( uip_flags & Number ) != Number ) { @@v1@@ [ Number ] = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; goto LABEL_319 ; } result = ( unsigned __int16 ) uip_len ; if ( uip_len ) goto LABEL_310 ; goto LABEL_319 ; case Number : if ( uip_len ) uip_add_rcv_nxt ( uip_len ) ; if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) { @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; uip_add_rcv_nxt ( Number ) ; uip_flags = Number ; tcpip_uipcall ( ) ; goto LABEL_310 ; } result = ( unsigned __int16 ) uip_len ; if ( uip_len ) goto LABEL_310 ; goto LABEL_319 ; case Number : result = uip_flags & Number ; if ( ( uip_flags & Number ) != Number ) { @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; } goto LABEL_319 ; case Number : goto LABEL_310 ; case Number : result = uip_flags & Number ; if ( ( uip_flags & Number ) != Number ) { @@v1@@ [ Number ] = Number ; uip_flags = Number ; result = tcpip_uipcall ( ) ; } goto LABEL_319 ; default : goto LABEL_319 ; } } else if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) == Number ) { tmp16 = HIWORD ( dword_4227A8 ) ; for ( c = Number ; ( unsigned __int8 ) c <= Number ; ++ c ) { if ( uip_listenports [ ( unsigned __int8 ) c ] == tmp16 ) { @@v1@@ = Number L ; for ( c = Number ; ; ++ c ) { result = ( unsigned __int8 ) c ; if ( ( unsigned __int8 ) c > Number ) break ; if ( ! byte_421EA5 [ Number * ( unsigned __int8 ) c ] ) { result = Number L * ( unsigned __int8 ) c ; @@v1@@ = ( char * ) & uip_conns + result ; break ; } if ( byte_421EA5 [ Number * ( unsigned __int8 ) c ] == Number && ( ! @@v1@@ || byte_421EA5 [ Number * ( unsigned __int8 ) c + Number ] > ( unsigned __int8 ) @@v1@@ [ Number ] ) ) { @@v1@@ = ( char * ) & uip_conns + Number * ( unsigned __int8 ) c ; } } if ( @@v1@@ ) { uip_conn = ( __int64 ) @@v1@@ ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = @@v1@@ [ Number ] ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = HIWORD ( dword_4227A8 ) ; * ( ( _WORD * ) @@v1@@ + Number ) = dword_4227A8 ; v6 = * ( _QWORD * ) & byte_422788 [ Number ] ; * ( _QWORD * ) @@v1@@ = * ( _QWORD * ) byte_422788 ; * ( ( _QWORD * ) @@v1@@ + Number ) = v6 ; @@v1@@ [ Number ] = Number ; @@v1@@ [ Number ] = iss ; @@v1@@ [ Number ] = byte_41F477 ; @@v1@@ [ Number ] = byte_41F478 ; @@v1@@ [ Number ] = byte_41F479 ; * ( ( _WORD * ) @@v1@@ + Number ) = Number ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; @@v1@@ [ Number ] = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; uip_add_rcv_nxt ( Number ) ; if ( ( * ( _BYTE * ) ( & dword_4227A8 + Number ) & Number ) > Number ) { c = Number ; while ( ( unsigned __int8 ) c < Number * ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) >> Number ) - Number ) ) { opt = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ; if ( ! opt ) break ; if ( opt == Number ) { ++ c ; } else { if ( opt == Number && * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) == Number ) { tmp16 = ( * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) << Number ) | * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ; v7 = tmp16 ; if ( ( unsigned __int16 ) tmp16 > Number ) v7 = Number ; * ( ( _WORD * ) @@v1@@ + Number ) = v7 ; * ( ( _WORD * ) @@v1@@ + Number ) = * ( ( _WORD * ) @@v1@@ + Number ) ; goto LABEL_202 ; } if ( ! * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ) goto LABEL_202 ; c += * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) c + Number ) ; } } } goto LABEL_202 ; } goto LABEL_319 ; } } } break ; } result = * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ; if ( ( * ( ( _BYTE * ) & dword_4227A8 + Number ) & Number ) != Number ) goto LABEL_319 ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; uip_len = Number ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; c = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = c ; c = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = c ; c = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = c ; c = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = * ( ( _BYTE * ) & dword_4227A8 + Number ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = c ; if ( ! ++ * ( ( _BYTE * ) & dword_4227A8 + Number ) && ! ++ * ( ( _BYTE * ) & dword_4227A8 + Number ) && ! ++ * ( ( _BYTE * ) & dword_4227A8 + Number ) ) { ++ * ( ( _BYTE * ) & dword_4227A8 + Number ) ; } tmp16 = dword_4227A8 ; LOWORD ( dword_4227A8 ) = HIWORD ( dword_4227A8 ) ; HIWORD ( dword_4227A8 ) = tmp16 ; v5 = * ( _QWORD * ) & byte_422788 [ Number ] ; unk_422798 = * ( _QWORD * ) byte_422788 ; * ( ( _QWORD * ) & unk_422798 + Number ) = v5 ; uip_ds6_select_src ( byte_422788 , & unk_422798 ) ; goto LABEL_316 ; case Number : remove_ext_hdr ( ) ; uip_len -= Number ; uip_appdata = ( __int64 ) & unk_4227B0 ; if ( * ( ( _WORD * ) & dword_4227A8 + Number ) ) { result = uip_udpchksum ( ) ; if ( ( _WORD ) result != Number ) goto LABEL_319 ; } result = HIWORD ( dword_4227A8 ) ; if ( ! ( _WORD ) result ) goto LABEL_319 ; uip_udp_conn = & uip_udp_conns ; while ( Number ) { result = ( __int64 ) uip_udp_conn ; if ( uip_udp_conn >= & uip_udp_conn ) goto LABEL_319 ; if ( ! * ( ( _WORD * ) uip_udp_conn + Number ) || HIWORD ( dword_4227A8 ) != * ( ( _WORD * ) uip_udp_conn + Number ) || * ( ( _WORD * ) uip_udp_conn + Number ) && ( _WORD ) dword_4227A8 != * ( ( _WORD * ) uip_udp_conn + Number ) || ( * ( _WORD * ) uip_udp_conn || * ( ( _WORD * ) uip_udp_conn + Number ) || * ( ( _WORD * ) uip_udp_conn + Number ) || * ( ( _WORD * ) uip_udp_conn + Number ) || * ( ( _WORD * ) uip_udp_conn + Number ) || * ( ( _WORD * ) uip_udp_conn + Number ) || * ( ( _WORD * ) uip_udp_conn + Number ) || * ( ( _WORD * ) uip_udp_conn + Number ) ) && memcmp ( byte_422788 , uip_udp_conn , Number ) ) { uip_udp_conn = ( char * ) uip_udp_conn + Number ; continue ; } break ; } uip_conn = Number L ; uip_flags = Number ; uip_appdata = ( __int64 ) & unk_4227B0 ; uip_sappdata = & unk_4227B0 ; uip_slen = Number ; tcpip_uipcall ( ) ; goto LABEL_155 ; case Number : if ( ( uip_ext_bitmap & Number ) != Number ) goto LABEL_121 ; uip_ext_bitmap |= Number ; if ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ) { result = uip_icmp6_error_output ( Number L , Number L , ( unsigned int ) ( unsigned __int8 ) uip_ext_len + Number ) ; goto LABEL_318 ; } uip_next_hdr = ( unsigned __int8 ) uip_ext_len + Number + Number L ; uip_ext_len += Number * * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) + Number ; continue ; case Number : case Number : goto LABEL_319 ; case Number : result = uip_icmp6chksum ( ) ; if ( ( _WORD ) result == Number ) { tcpip_icmp6_call ( * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ) ; switch ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ) { case Number : uip_icmp6_echo_request_input ( ) ; break ; case Number : uip_len = Number ; break ; case Number : uip_len = Number ; break ; case Number : uip_len = Number ; break ; case Number : uip_nd6_ns_input ( ) ; break ; case Number : uip_nd6_na_input ( ) ; break ; case Number : uip_rpl_input ( ) ; break ; default : uip_len = Number ; break ; } result = ( unsigned __int16 ) uip_len ; if ( uip_len ) goto LABEL_318 ; } goto LABEL_319 ; case Number : if ( ( uip_ext_bitmap & Number ) != Number ) { if ( ( uip_ext_bitmap & Number ) != Number ) { LABEL_121 : result = uip_icmp6_error_output ( Number L , Number L , ( unsigned int ) ( uip_next_hdr - ( _QWORD ) & uip_aligned_buf ) ) ; goto LABEL_318 ; } uip_ext_bitmap |= Number ; } else { uip_ext_bitmap |= Number ; } result = ( unsigned __int8 ) ext_hdr_options_process ( ) ; if ( ( unsigned __int8 ) result == Number ) goto LABEL_318 ; if ( ( int ) result <= Number ) { if ( ( _DWORD ) result ) { if ( ( _DWORD ) result == Number ) goto LABEL_319 ; } else { uip_next_hdr = ( unsigned __int8 ) uip_ext_len + Number + Number L ; uip_ext_len += Number * * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) + Number ; } } continue ; default : goto LABEL_121 ; } } } if ( unk_422798 != Number && ( unk_422798 != Number || * ( ( _BYTE * ) & unk_422798 + Number ) != Number ) && ( byte_422788 [ Number ] != Number || byte_422788 [ Number ] != 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 ] || * ( _WORD * ) & byte_422788 [ Number ] ) && ( unk_422798 || * ( ( _WORD * ) & unk_422798 + Number ) || * ( ( _WORD * ) & unk_422798 + 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 ) ) { if ( ( unsigned __int16 ) uip_len <= Number ) { if ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) > Number ) { rpl_update_header_empty ( ) ; result = ( unsigned int ) ( unsigned __int8 ) ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) ) -- - Number ; } else { result = uip_icmp6_error_output ( Number L , Number L , Number L ) ; } } else { result = uip_icmp6_error_output ( Number L , Number L , Number L ) ; } goto LABEL_318 ; } result = byte_422788 [ Number ] ; if ( byte_422788 [ Number ] == Number ) { result = byte_422788 [ Number ] ; if ( ( _BYTE ) result == Number ) { 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 ] , ( _WORD ) result ) ) { if ( unk_422798 || * ( ( _WORD * ) & unk_422798 + Number ) || * ( ( _WORD * ) & unk_422798 + Number ) || * ( ( _WORD * ) & unk_422798 + Number ) || * ( ( _WORD * ) & unk_422798 + Number ) || * ( ( _WORD * ) & unk_422798 + Number ) || * ( ( _WORD * ) & unk_422798 + Number ) || * ( ( _BYTE * ) & unk_422798 + Number ) || ( result = * ( ( unsigned __int8 * ) & unk_422798 + Number ) , ( _BYTE ) result != Number ) ) { result = unk_422798 ; if ( unk_422798 != Number ) { result = uip_ds6_is_addr_onlink ( & unk_422798 ) ; if ( ! ( _BYTE ) result ) { result = uip_icmp6_error_output ( Number L , Number L , Number L ) ; goto LABEL_318 ; } } } } } } goto LABEL_319 ; } result = * ( ( unsigned __int16 * ) uip_udp_conn + Number ) ; if ( ! ( _WORD ) result ) goto LABEL_319 ; uip_conn = Number L ; uip_appdata = ( __int64 ) & unk_4227B0 ; uip_sappdata = & unk_4227B0 ; uip_slen = Number ; uip_len = Number ; uip_flags = Number ; tcpip_uipcall ( ) ; LABEL_155 : result = ( unsigned __int16 ) uip_slen ; if ( uip_slen ) { uip_len = uip_slen + Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = ( unsigned __int16 ) ( uip_slen + Number ) >> Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = uip_len - Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = * ( ( _BYTE * ) uip_udp_conn + Number ) ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _WORD * ) & dword_4227A8 + Number ) = ( ( uip_slen + Number ) << Number ) | ( ( unsigned __int16 ) ( uip_slen + Number ) >> Number ) ; * ( ( _WORD * ) & dword_4227A8 + Number ) = Number ; dword_4227A8 = * ( ( _DWORD * ) uip_udp_conn + Number ) ; v4 = * ( ( _QWORD * ) uip_udp_conn + Number ) ; unk_422798 = * ( _QWORD * ) uip_udp_conn ; * ( ( _QWORD * ) & unk_422798 + Number ) = v4 ; uip_ds6_select_src ( byte_422788 , & unk_422798 ) ; uip_appdata = ( __int64 ) & unk_4227BC ; * ( ( _WORD * ) & dword_4227A8 + Number ) = ~ ( unsigned __int16 ) uip_udpchksum ( ) ; if ( ! * ( ( _WORD * ) & dword_4227A8 + Number ) ) * ( ( _WORD * ) & dword_4227A8 + Number ) = Number ; LABEL_317 : uip_aligned_buf = Number ; result = ( __int64 ) & uip_aligned_buf ; LABEL_318 : uip_flags = Number ; return result ; } goto LABEL_319 ; } uip_len = Number ; uip_slen = Number ; if ( ! ++ byte_41F479 && ! ++ byte_41F478 && ! ++ byte_41F477 ) ++ iss ; if ( * ( _BYTE * ) ( uip_conn + Number ) == Number || * ( _BYTE * ) ( uip_conn + Number ) == Number ) { ++ * ( _BYTE * ) ( uip_conn + Number ) ; result = ( unsigned __int8 ) @@v1@@ [ Number ] ; if ( ( _BYTE ) result == Number ) @@v1@@ [ Number ] = Number ; goto LABEL_319 ; } result = * ( unsigned __int8 * ) ( uip_conn + Number ) ; if ( ( _BYTE ) result ) { if ( * ( _WORD * ) ( uip_conn + Number ) ) { result = * ( unsigned __int8 * ) ( uip_conn + Number ) ; * ( _BYTE * ) ( uip_conn + Number ) = result - Number ; if ( ! ( _BYTE ) result ) { if ( @@v1@@ [ Number ] != Number && ( @@v1@@ [ Number ] != Number && @@v1@@ [ Number ] != Number || @@v1@@ [ Number ] != Number ) ) { v3 = @@v1@@ [ Number ] ; if ( ( unsigned __int8 ) v3 > Number ) v3 = Number ; @@v1@@ [ Number ] = Number << v3 ; ++ @@v1@@ [ Number ] ; result = @@v1@@ [ Number ] & Number ; switch ( @@v1@@ [ Number ] & Number ) { case Number : goto LABEL_202 ; case Number : * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_203 ; case Number : uip_flags = Number ; tcpip_uipcall ( ) ; goto LABEL_283 ; case Number : case Number : case Number : goto LABEL_259 ; default : goto LABEL_319 ; } } @@v1@@ [ Number ] = Number ; uip_flags = Number ; tcpip_uipcall ( ) ; * ( ( _BYTE * ) & dword_4227A8 + Number ) = Number ; goto LABEL_311 ; } goto LABEL_319 ; } result = * ( _BYTE * ) ( uip_conn + Number ) & Number ; if ( ( _DWORD ) result != Number ) goto LABEL_319 ; goto LABEL_5 ; } LABEL_319 : uip_len = Number ; uip_ext_len = Number ; uip_ext_bitmap = Number ; uip_flags = Number ; return result ; }", "source": [{"n": "v1", "t": {"T": 3, "t": "char"}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "char", "s": 1}, "location": "r56"}, {"n": "v10", "t": {"T": 1, "n": "char", "s": 1}, "location": "s17"}]} {"name": "tcpip_output", "code": "__int64 __fastcall tcpip_output ( __int64 @@a1@@ ) { __int64 @@result@@ ; if ( outputfunc ) @@result@@ = ( unsigned __int8 ) outputfunc ( @@a1@@ ) ; else @@result@@ = Number L ; 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"}]} {"name": "tcpip_set_outputfunc", "code": "__int64 ( __fastcall * __fastcall tcpip_set_outputfunc ( __int64 ( __fastcall * @@a1@@ ) ( _QWORD ) ) ) ( _QWORD ) { __int64 ( __fastcall * @@result@@ ) ( _QWORD ) ; @@result@@ = @@a1@@ ; outputfunc = @@a1@@ ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 9, "n": "__int64 (__fastcall *)(_QWORD)"}, "location": "r56"}, {"n": "result", "t": {"T": 9, "n": "__int64 (__fastcall *)(_QWORD)"}, "location": "r8"}]} {"name": "packet_input", "code": "__int64 packet_input ( ) { __int64 @@result@@ ; @@result@@ = ( unsigned __int16 ) uip_len ; if ( uip_len ) { check_for_tcp_syn ( ) ; uip_process ( Number ) ; @@result@@ = ( unsigned __int16 ) uip_len ; if ( uip_len ) @@result@@ = tcpip_ipv6_output ( ) ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "eventhandler", "code": "__int64 __fastcall eventhandler ( unsigned __int8 @@a1@@ , void * @@a2@@ ) { __int64 @@result@@ ; __int16 * v3 ; __int64 * i ; void * * j ; @@result@@ = @@a1@@ ; if ( @@a1@@ == Number ) { if ( @@a2@@ == & periodic ) { @@result@@ = etimer_expired ( ( __int64 ) & periodic ) ; if ( ( _DWORD ) @@result@@ ) { for ( i_4773 = Number ; ; ++ i_4773 ) { @@result@@ = ( unsigned __int8 ) i_4773 ; if ( ( unsigned __int8 ) i_4773 > Number ) break ; if ( byte_421EA5 [ Number * ( unsigned __int8 ) i_4773 ] ) { etimer_restart ( ( __int64 ) & periodic ) ; uip_conn = Number L * ( unsigned __int8 ) i_4773 + Number ; uip_process ( Number ) ; tcpip_ipv6_output ( ) ; } } } } if ( @@a2@@ == & uip_ds6_timer_periodic ) { @@result@@ = etimer_expired ( ( __int64 ) & uip_ds6_timer_periodic ) ; if ( ( _DWORD ) @@result@@ ) { uip_ds6_periodic ( ) ; @@result@@ = tcpip_ipv6_output ( ) ; } } } else if ( @@a1@@ <= Number ) { if ( @@a1@@ == Number ) { v3 = ( __int16 * ) & s ; for ( i_4773 = Number ; ; ++ i_4773 ) { @@result@@ = ( unsigned __int8 ) i_4773 ; if ( ( unsigned __int8 ) i_4773 > Number ) break ; if ( @@a2@@ == * ( ( void * * ) v3 + Number ) ) { uip_unlisten ( * v3 ) ; * v3 = Number ; * ( ( _QWORD * ) v3 + Number ) = Number L ; } v3 += Number ; } for ( i = ( __int64 * ) & uip_conns ; i < & uip_icmp6_conns ; i += Number ) { @@result@@ = i [ Number ] ; if ( @@a2@@ == ( void * ) @@result@@ ) { i [ Number ] = Number L ; * ( ( _BYTE * ) i + Number ) = Number ; } } for ( j = ( void * * ) & uip_udp_conns ; j < & uip_udp_conn ; j += Number ) { @@result@@ = ( __int64 ) j [ Number ] ; if ( @@a2@@ == ( void * ) @@result@@ ) * ( ( _WORD * ) j + Number ) = Number ; } } else if ( @@a1@@ <= Number ) { if ( @@a1@@ == Number ) { @@result@@ = packet_input ( ) ; } else if ( @@a1@@ <= Number ) { if ( @@a1@@ ) { if ( @@a2@@ ) { uip_udp_conn = @@a2@@ ; uip_process ( Number ) ; @@result@@ = tcpip_ipv6_output ( ) ; } } else if ( @@a2@@ ) { uip_conn = ( __int64 ) @@a2@@ ; uip_process ( Number ) ; tcpip_ipv6_output ( ) ; @@result@@ = start_periodic_tcp_timer ( ) ; } } } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "void"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "tcpip_ipv6_output", "code": "__int64 tcpip_ipv6_output ( ) { __int64 result ; size_t v1 ; void * v2 ; size_t v3 ; void * v4 ; size_t v5 ; const void * @@v6@@ ; __int64 @@v7@@ ; __int64 v8 ; __int64 v9 ; void * @@v10@@ ; result = ( unsigned __int16 ) uip_len ; if ( uip_len ) { result = ( unsigned __int16 ) uip_len ; if ( ( unsigned __int16 ) uip_len > Number ) { uip_len = Number ; return result ; } if ( ! unk_422798 && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) && ! * ( ( _WORD * ) & unk_422798 + Number ) ) { result = * ( ( unsigned __int16 * ) & unk_422798 + Number ) ; if ( ! ( _WORD ) result ) { uip_len = Number ; return result ; } } if ( unk_422798 == Number ) { LABEL_41 : result = tcpip_output ( Number L ) ; uip_len = Number ; uip_ext_len = Number ; return result ; } if ( ( unsigned __int8 ) uip_ds6_is_addr_onlink ( & unk_422798 ) ) { @@v10@@ = & unk_422798 ; result = rpl_update_header_final ( & unk_422798 ) ; } else { @@v7@@ = uip_ds6_route_lookup ( & unk_422798 ) ; if ( @@v7@@ ) { @@v10@@ = ( void * ) ( @@v7@@ + Number ) ; } else { result = uip_ds6_defrt_choose ( ) ; @@v10@@ = ( void * ) result ; if ( ! result ) { uip_len = Number ; return result ; } } result = rpl_update_header_final ( @@v10@@ ) ; } if ( ( _DWORD ) result ) { uip_len = Number ; return result ; } v8 = uip_ds6_nbr_lookup ( @@v10@@ ) ; if ( ! v8 ) { result = uip_ds6_nbr_add ( @@v10@@ , Number L , Number L , Number L ) ; v9 = result ; if ( ! result ) { uip_len = Number ; return result ; } if ( uip_packetqueue_alloc ( result + Number , Number L ) ) { v1 = ( unsigned __int16 ) uip_len ; v2 = ( void * ) uip_packetqueue_buf ( v9 + Number ) ; memcpy ( v2 , & uip_aligned_buf , v1 ) ; uip_packetqueue_set_buflen ( v9 + Number , ( unsigned __int16 ) uip_len ) ; } if ( uip_ds6_addr_lookup ( byte_422788 ) ) uip_nd6_ns_output ( byte_422788 , Number L , v9 + Number ) ; else uip_nd6_ns_output ( Number L , Number L , v9 + Number ) ; stimer_set ( v9 + Number , dword_422C50 / Number ) ; * ( _BYTE * ) ( v9 + Number ) = Number ; goto LABEL_41 ; } if ( * ( _BYTE * ) ( v8 + Number ) ) { if ( * ( _BYTE * ) ( v8 + Number ) == Number ) { * ( _BYTE * ) ( v8 + Number ) = Number ; stimer_set ( v8 + Number , Number L ) ; * ( _BYTE * ) ( v8 + Number ) = Number ; } tcpip_output ( v8 + Number ) ; result = uip_packetqueue_buflen ( v8 + Number ) ; if ( ( _WORD ) result ) { uip_len = uip_packetqueue_buflen ( v8 + Number ) ; v5 = ( unsigned __int16 ) uip_len ; @@v6@@ = ( const void * ) uip_packetqueue_buf ( v8 + Number ) ; memcpy ( & uip_aligned_buf , @@v6@@ , v5 ) ; uip_packetqueue_free ( v8 + Number ) ; result = tcpip_output ( v8 + Number ) ; } uip_len = Number ; } else { result = uip_packetqueue_alloc ( v8 + Number , Number L ) ; if ( result ) { v3 = ( unsigned __int16 ) uip_len ; v4 = ( void * ) uip_packetqueue_buf ( v8 + Number ) ; memcpy ( v4 , & uip_aligned_buf , v3 ) ; result = uip_packetqueue_set_buflen ( v8 + Number , ( unsigned __int16 ) uip_len ) ; } uip_len = Number ; } } return result ; }", "source": [{"n": "v6", "t": {"T": 3, "t": "const void"}, "location": "r64"}, {"n": "v10", "t": {"T": 3, "t": "void"}, "location": "s24"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}]} {"name": "uip_icmp6_error_output", "code": "__int64 __fastcall uip_icmp6_error_output ( char @@a1@@ , char @@a2@@ , int @@a3@@ ) { __int64 @@result@@ ; __int64 v4 ; __int64 v5 ; _DWORD * @@v6@@ ; if ( uip_ext_len ) { if ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) == Number ) { @@result@@ = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( @@result@@ & Number ) == Number L ) { uip_len = Number ; return @@result@@ ; } } } else if ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) == Number ) { @@result@@ = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( @@result@@ & Number ) == Number L ) { uip_len = Number ; return @@result@@ ; } } uip_ext_len = rpl_invert_header ( ) ; v4 = * ( ( _QWORD * ) & unk_422798 + Number ) ; tmp_ipaddr = unk_422798 ; qword_41F748 = v4 ; uip_len += Number ; if ( ( unsigned __int16 ) uip_len > Number ) uip_len = Number ; memmove ( ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) uip_ext_len + Number , & uip_aligned_buf , ( unsigned __int16 ) uip_len - Number - ( unsigned __int8 ) uip_ext_len - Number ) ; uip_aligned_buf = Number ; if ( uip_ext_len ) LOBYTE ( dword_4227A8 ) = Number ; else * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = byte_422C44 ; 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 ] , ( _WORD ) @@result@@ ) ) { v5 = * ( _QWORD * ) & byte_422788 [ Number ] ; unk_422798 = * ( _QWORD * ) byte_422788 ; * ( ( _QWORD * ) & unk_422798 + Number ) = v5 ; @@result@@ = ( unsigned __int8 ) tmp_ipaddr ; if ( ( _BYTE ) tmp_ipaddr != Number || @@a1@@ == Number && @@a2@@ == Number ) { uip_ds6_select_src ( byte_422788 , & tmp_ipaddr ) ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = @@a1@@ ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = @@a2@@ ; @@v6@@ = ( int * ) ( ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; * @@v6@@ = uip_htonl ( @@a3@@ ) ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = ( unsigned __int16 ) ( uip_len - Number ) >> Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = uip_len - 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@@ ; } else { uip_len = Number ; } } else { uip_len = Number ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "v6", "t": {"T": 3, "t": "_DWORD"}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "char", "s": 1}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "uip_icmp6_send", "code": "__int64 __fastcall uip_icmp6_send ( _QWORD * @@a1@@ , char @@a2@@ , char @@a3@@ , __int16 @@a4@@ ) { __int64 v4 ; uip_aligned_buf = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = byte_422C44 ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = ( unsigned __int16 ) ( @@a4@@ + Number ) >> Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = @@a4@@ + Number ; v4 = @@a1@@ [ Number ] ; unk_422798 = * @@a1@@ ; * ( ( _QWORD * ) & unk_422798 + Number ) = v4 ; uip_ds6_select_src ( byte_422788 , & unk_422798 ) ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = @@a2@@ ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = @@a3@@ ; * ( _WORD * ) ( ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; * ( _WORD * ) ( ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = ~ ( unsigned __int16 ) uip_icmp6chksum ( ) ; uip_len = @@a4@@ + Number ; return tcpip_ipv6_output ( ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "char", "s": 1}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}]} {"name": "uip_nd6_ns_output", "code": "__int64 __fastcall uip_nd6_ns_output ( _QWORD * @@a1@@ , _QWORD * @@a2@@ , __int64 @@a3@@ ) { __int64 v3 ; char * @@v4@@ ; __int64 v5 ; __int64 v6 ; __int64 @@result@@ ; uip_ext_len = Number ; uip_aligned_buf = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; if ( @@a2@@ ) { v3 = @@a2@@ [ Number ] ; unk_422798 = * @@a2@@ ; * ( ( _QWORD * ) & unk_422798 + Number ) = v3 ; } else { unk_422798 = Number ; * ( ( _BYTE * ) & unk_422798 + Number ) = Number ; * ( ( _WORD * ) & unk_422798 + Number ) = Number ; * ( ( _WORD * ) & unk_422798 + Number ) = Number ; * ( ( _WORD * ) & unk_422798 + Number ) = Number ; * ( ( _WORD * ) & unk_422798 + Number ) = Number ; * ( ( _BYTE * ) & unk_422798 + Number ) = Number ; * ( ( _BYTE * ) & unk_422798 + Number ) = Number ; * ( ( _BYTE * ) & unk_422798 + Number ) = Number ; * ( ( _BYTE * ) & unk_422798 + Number ) = * ( _BYTE * ) ( @@a3@@ + Number ) ; * ( ( _WORD * ) & unk_422798 + Number ) = * ( _WORD * ) ( @@a3@@ + Number ) ; } * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; * ( int * ) ( ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = Number ; @@v4@@ = ( char * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ; v5 = * ( _QWORD * ) ( @@a3@@ + Number ) ; * ( _QWORD * ) ( @@v4@@ + Number ) = * ( _QWORD * ) @@a3@@ ; * ( _QWORD * ) ( @@v4@@ + Number ) = v5 ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; if ( uip_ds6_addr_lookup ( @@a3@@ ) ) { * ( _WORD * ) byte_422788 = Number ; * ( _WORD * ) & byte_422788 [ Number ] = Number ; * ( _WORD * ) & byte_422788 [ Number ] = Number ; * ( _WORD * ) & byte_422788 [ Number ] = Number ; * ( _WORD * ) & byte_422788 [ Number ] = Number ; * ( _WORD * ) & byte_422788 [ Number ] = Number ; * ( _WORD * ) & byte_422788 [ Number ] = Number ; * ( _WORD * ) & byte_422788 [ Number ] = Number ; * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; uip_len = Number ; } else { if ( @@a1@@ ) { v6 = @@a1@@ [ Number ] ; * ( _QWORD * ) byte_422788 = * @@a1@@ ; * ( _QWORD * ) & byte_422788 [ Number ] = v6 ; } else { uip_ds6_select_src ( byte_422788 , & unk_422798 ) ; } 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@@ ) { uip_len = Number ; return @@result@@ ; } } * ( ( _BYTE * ) & uip_aligned_buf + Number ) = Number ; create_llao ( ( unsigned __int8 ) uip_ext_len + Number + Number L , Number ) ; uip_len = 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@@ ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "v4", "t": {"T": 3, "t": "char"}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "uip_ds6_periodic", "code": "__int64 uip_ds6_periodic ( ) { int @@v0@@ ; for ( locaddr = ( __int64 ) & unk_422C58 ; locaddr < ( unsigned __int64 ) & unk_422CD0 ; locaddr += Number L ) { if ( * ( _BYTE * ) locaddr && ! * ( _BYTE * ) ( locaddr + Number ) && ( unsigned int ) stimer_expired ( locaddr + Number ) ) uip_ds6_addr_rm ( locaddr ) ; } uip_ds6_defrt_periodic ( ) ; for ( locnbr = ( __int64 ) & uip_ds6_nbr_cache ; locnbr < ( unsigned __int64 ) & contiki_argv ; locnbr += Number L ) { if ( ! * ( _BYTE * ) locnbr ) continue ; @@v0@@ = * ( unsigned __int8 * ) ( locnbr + Number ) ; if ( @@v0@@ == Number ) { if ( * ( _BYTE * ) ( locnbr + Number ) > Number ) { locdefrt = uip_ds6_defrt_lookup ( locnbr + Number ) ; if ( locdefrt && ! * ( _BYTE * ) ( locdefrt + Number ) ) uip_ds6_defrt_rm ( locdefrt ) ; LABEL_17 : uip_ds6_nbr_rm ( locnbr ) ; continue ; } if ( ( unsigned int ) stimer_expired ( locnbr + Number ) && ! uip_len ) { ++ * ( _BYTE * ) ( locnbr + Number ) ; uip_nd6_ns_output ( Number L , ( _QWORD * ) ( locnbr + Number ) , locnbr + Number ) ; stimer_set ( locnbr + Number , dword_422C50 / Number ) ; } } else { if ( * ( unsigned __int8 * ) ( locnbr + Number ) > Number ) continue ; if ( @@v0@@ == Number ) { if ( ( unsigned int ) stimer_expired ( locnbr + Number ) ) { * ( _BYTE * ) ( locnbr + Number ) = Number ; * ( _BYTE * ) ( locnbr + Number ) = Number ; stimer_set ( locnbr + Number , Number L ) ; } } else if ( * ( _BYTE * ) ( locnbr + Number ) ) { if ( @@v0@@ == Number && ( unsigned int ) stimer_expired ( locnbr + Number ) ) * ( _BYTE * ) ( locnbr + Number ) = Number ; } else { if ( * ( _BYTE * ) ( locnbr + Number ) > Number ) goto LABEL_17 ; if ( ( unsigned int ) stimer_expired ( locnbr + Number ) && ! uip_len ) { ++ * ( _BYTE * ) ( locnbr + Number ) ; uip_nd6_ns_output ( Number L , Number L , locnbr + Number ) ; stimer_set ( locnbr + Number , dword_422C50 / Number ) ; } } } } return etimer_reset ( ( __int64 ) & uip_ds6_timer_periodic ) ; }", "source": [{"n": "v0", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "rimeaddr_copy", "code": "__int64 __fastcall rimeaddr_copy ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; unsigned __int8 @@i@@ ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { * ( _BYTE * ) ( @@a1@@ + @@i@@ ) = * ( _BYTE * ) ( @@a2@@ + @@i@@ ) ; @@result@@ = ( unsigned int ) @@i@@ + Number ; } 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": "i", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s1"}]} {"name": "send_packet", "code": "__int64 __fastcall send_packet ( __int64 @@a1@@ , __int64 @@a2@@ ) { return send_packet_0 ( @@a1@@ , @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "rpl_select_dag", "code": "__int64 __fastcall rpl_select_dag ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 @@v3@@ ; __int64 @@v4@@ ; unsigned __int64 @@i@@ ; @@v3@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; @@v4@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( * ( _WORD * ) ( @@v4@@ + Number ) != * ( _WORD * ) ( @@a1@@ + Number ) ) { if ( rpl_select_parent ( * ( _QWORD * ) ( @@a2@@ + Number ) ) ) { if ( @@v4@@ != * ( _QWORD * ) ( @@a2@@ + Number ) ) @@v4@@ = ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ( @@v4@@ , * ( _QWORD * ) ( @@a2@@ + Number ) ) ; } else if ( @@v4@@ == * ( _QWORD * ) ( @@a2@@ + Number ) ) { @@v4@@ = Number L ; for ( @@i@@ = @@a1@@ + Number ; @@i@@ < @@a1@@ + Number ; @@i@@ += Number L ) { if ( * ( _BYTE * ) ( @@i@@ + Number ) && * ( _QWORD * ) ( @@i@@ + Number ) && * ( _WORD * ) ( * ( _QWORD * ) ( @@i@@ + Number ) + Number L ) != Number ) { if ( @@v4@@ ) @@v4@@ = ( * ( __int64 ( __fastcall * * ) ( __int64 , unsigned __int64 ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ( @@v4@@ , @@i@@ ) ; else @@v4@@ = @@i@@ ; } } } } if ( ! @@v4@@ ) return Number L ; if ( @@v4@@ != * ( _QWORD * ) ( @@a1@@ + Number ) ) { rpl_remove_routes ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; if ( ( * ( _BYTE * ) ( @@v4@@ + Number ) & Number ) != Number ) { check_prefix ( ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) , ( unsigned __int8 * ) ( @@v4@@ + Number ) ) ; } else if ( ( * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) & Number ) != Number ) { check_prefix ( ( unsigned __int8 * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) , Number L ) ; } * ( _BYTE * ) ( @@v4@@ + Number ) = Number ; * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v4@@ ; } ( * ( void ( __fastcall * * ) ( __int64 ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ( @@a1@@ ) ; * ( _WORD * ) ( @@v4@@ + Number ) = ( * ( __int64 ( __fastcall * * ) ( _QWORD , _QWORD ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ( * ( _QWORD * ) ( @@v4@@ + Number ) , Number L ) ; if ( * ( _WORD * ) ( @@v4@@ + Number ) < * ( _WORD * ) ( @@v4@@ + Number ) ) { * ( _WORD * ) ( @@v4@@ + Number ) = * ( _WORD * ) ( @@v4@@ + Number ) ; LABEL_30 : if ( @@v3@@ != * ( _QWORD * ) ( @@v4@@ + Number ) ) { rpl_set_default_route ( @@a1@@ , ( _QWORD * ) ( * ( _QWORD * ) ( @@v4@@ + Number ) + Number L ) ) ; if ( * ( _BYTE * ) ( @@a1@@ + Number ) ) { if ( @@v3@@ ) dao_output ( @@v3@@ , Number L ) ; ++ * ( _BYTE * ) ( @@a1@@ + Number ) ; rpl_schedule_dao ( @@a1@@ ) ; } rpl_reset_dio_timer ( @@a1@@ ) ; } return @@v4@@ ; } if ( acceptable_rank ( @@v4@@ , * ( _WORD * ) ( @@v4@@ + Number ) ) ) goto LABEL_30 ; * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = Number L ; if ( * ( _BYTE * ) ( @@a1@@ + Number ) && @@v3@@ ) dao_output ( @@v3@@ , Number L ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "rpl_nullify_parent", "code": "__int64 __fastcall rpl_nullify_parent ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; @@result@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( @@a2@@ == @@result@@ ) { * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; * ( _WORD * ) ( @@a1@@ + Number ) = Number ; @@result@@ = * ( unsigned __int8 * ) ( @@a1@@ + Number ) ; if ( ( _BYTE ) @@result@@ ) { if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) { uip_ds6_defrt_rm ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ; * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = Number L ; } @@result@@ = dao_output ( @@a2@@ , Number L ) ; } } 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"}]} {"name": "dis_input", "code": "char * dis_input ( ) { char * @@result@@ ; char * @@i@@ ; for ( @@i@@ = ( char * ) & instance_table ; ; @@i@@ += Number ) { @@result@@ = @@i@@ ; if ( @@i@@ >= ( char * ) & instance_table + Number ) break ; if ( @@i@@ [ Number ] == Number ) { if ( byte_422798 [ Number ] == Number ) rpl_reset_dio_timer ( @@i@@ ) ; else dio_output ( @@i@@ , byte_422788 ) ; } } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "i", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "dis_output", "code": "__int64 __fastcall dis_output ( __int16 * @@a1@@ ) { _BYTE * @@v1@@ ; __int16 * @@v3@@ ; __int16 @@v4@@ [ Number ] ; _BYTE * @@v5@@ ; @@v3@@ = @@a1@@ ; @@v5@@ = ( _BYTE * ) ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; @@v1@@ = ( _BYTE * ) ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; * @@v1@@ = Number ; * @@v5@@ = * @@v1@@ ; if ( ! @@a1@@ ) { @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = Number ; @@v3@@ = @@v4@@ ; } return uip_icmp6_send ( @@v3@@ , Number , Number , Number ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "__int16"}, "location": "r56"}, {"n": "v1", "t": {"T": 3, "t": "_BYTE"}, "location": "r8"}, {"n": "v4", "t": {"T": 2, "n": 12, "s": 2, "t": "__int16"}, "location": "s32"}, {"n": "v3", "t": {"T": 3, "t": "__int16"}, "location": "s40"}, {"n": "v5", "t": {"T": 3, "t": "_BYTE"}, "location": "s8"}]} {"name": "dio_output", "code": "__int64 __fastcall dio_output ( unsigned __int8 * @@a1@@ , _QWORD * @@a2@@ ) { int v2 ; int v3 ; int v4 ; int v5 ; _QWORD * v6 ; __int64 v7 ; int v8 ; int v9 ; int v10 ; unsigned __int8 v11 ; int v12 ; int v13 ; int v14 ; __int64 result ; int v16 ; int v17 ; int v18 ; int v19 ; int v20 ; int v21 ; int v22 ; int v23 ; int v24 ; int v25 ; int v26 ; int v27 ; int v28 ; int v29 ; int v30 ; _QWORD * v31 ; __int64 v32 ; __int64 @@v33@@ ; __int16 @@v34@@ ; __int16 @@v35@@ ; __int16 @@v36@@ ; __int16 @@v37@@ ; __int64 @@v38@@ ; __int64 @@v39@@ ; int @@v40@@ ; @@v39@@ = * ( ( _QWORD * ) @@a1@@ + Number ) ; @@v38@@ = ( unsigned __int8 ) uip_ext_len + Number + Number L ; @@v40@@ = Number ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = @@a1@@ [ Number ] ; v2 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v2 ) = * ( _BYTE * ) ( @@v39@@ + Number ) ; set16 ( @@v38@@ , @@v40@@ , * ( _WORD * ) ( @@v39@@ + Number ) ) ; @@v40@@ += Number ; * ( _BYTE * ) ( @@v40@@ + @@v38@@ ) = Number ; if ( * ( _BYTE * ) ( @@v39@@ + Number ) ) * ( _BYTE * ) ( @@v40@@ + @@v38@@ ) |= Number ; * ( _BYTE * ) ( @@v40@@ + @@v38@@ ) |= Number * @@a1@@ [ Number ] ; * ( _BYTE * ) ( @@v40@@ + @@v38@@ ) |= * ( _BYTE * ) ( @@v39@@ + Number ) & Number ; v3 = @@v40@@ + Number ; @@v40@@ += Number ; * ( _BYTE * ) ( @@v38@@ + v3 ) = @@a1@@ [ Number ] ++ ; v4 = @@v40@@ ++ ; * ( _BYTE * ) ( v4 + @@v38@@ ) = Number ; v5 = @@v40@@ ++ ; * ( _BYTE * ) ( v5 + @@v38@@ ) = Number ; v6 = ( _QWORD * ) ( @@v38@@ + @@v40@@ ) ; v7 = * ( _QWORD * ) ( @@v39@@ + Number ) ; * v6 = * ( _QWORD * ) @@v39@@ ; v6 [ Number ] = v7 ; @@v40@@ += Number ; if ( * @@a1@@ ) { ( * ( void ( __fastcall * * ) ( unsigned __int8 * ) ) ( * ( ( _QWORD * ) @@a1@@ + Number ) + Number L ) ) ( @@a1@@ ) ; v8 = @@v40@@ ++ ; * ( _BYTE * ) ( v8 + @@v38@@ ) = Number ; v9 = @@v40@@ ++ ; * ( _BYTE * ) ( v9 + @@v38@@ ) = Number ; v10 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v10 ) = * @@a1@@ ; v11 = @@a1@@ [ Number ] ; v12 = @@v40@@ ++ ; * ( _BYTE * ) ( v12 + @@v38@@ ) = v11 >> Number ; * ( _BYTE * ) ( @@v40@@ + @@v38@@ ) = @@a1@@ [ Number ] << Number ; v13 = @@v40@@ ++ ; * ( _BYTE * ) ( v13 + @@v38@@ ) |= ( unsigned __int8 ) ( Number * @@a1@@ [ Number ] ) | @@a1@@ [ Number ] ; if ( * @@a1@@ == Number ) { v14 = @@v40@@ ++ ; * ( _BYTE * ) ( v14 + @@v38@@ ) = Number ; set16 ( @@v38@@ , @@v40@@ , * ( ( _WORD * ) @@a1@@ + Number ) ) ; @@v40@@ += Number ; } else { result = * @@a1@@ ; if ( ( _BYTE ) result != Number ) return result ; v16 = @@v40@@ ++ ; * ( _BYTE * ) ( v16 + @@v38@@ ) = Number ; v17 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v17 ) = @@a1@@ [ Number ] ; v18 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v18 ) = @@a1@@ [ Number ] ; } } v19 = @@v40@@ ++ ; * ( _BYTE * ) ( v19 + @@v38@@ ) = Number ; v20 = @@v40@@ ++ ; * ( _BYTE * ) ( v20 + @@v38@@ ) = Number ; v21 = @@v40@@ ++ ; * ( _BYTE * ) ( v21 + @@v38@@ ) = Number ; v22 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v22 ) = @@a1@@ [ Number ] ; v23 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v23 ) = @@a1@@ [ Number ] ; v24 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v24 ) = @@a1@@ [ Number ] ; set16 ( @@v38@@ , @@v40@@ , * ( ( _WORD * ) @@a1@@ + Number ) ) ; @@v40@@ += Number ; set16 ( @@v38@@ , @@v40@@ , * ( ( _WORD * ) @@a1@@ + Number ) ) ; @@v40@@ += Number ; set16 ( @@v38@@ , @@v40@@ , * ( _WORD * ) ( * ( ( _QWORD * ) @@a1@@ + Number ) + Number L ) ) ; v25 = @@v40@@ + Number ; @@v40@@ += Number ; * ( _BYTE * ) ( v25 + @@v38@@ ) = Number ; v26 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v26 ) = @@a1@@ [ Number ] ; set16 ( @@v38@@ , @@v40@@ , * ( ( _WORD * ) @@a1@@ + Number ) ) ; @@v40@@ += Number ; if ( * ( _BYTE * ) ( @@v39@@ + Number ) ) { v27 = @@v40@@ ++ ; * ( _BYTE * ) ( v27 + @@v38@@ ) = Number ; v28 = @@v40@@ ++ ; * ( _BYTE * ) ( v28 + @@v38@@ ) = Number ; v29 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v29 ) = * ( _BYTE * ) ( @@v39@@ + Number ) ; v30 = @@v40@@ ++ ; * ( _BYTE * ) ( @@v38@@ + v30 ) = * ( _BYTE * ) ( @@v39@@ + Number ) ; set32 ( @@v38@@ , @@v40@@ , * ( _DWORD * ) ( @@v39@@ + Number ) ) ; @@v40@@ += Number ; set32 ( @@v38@@ , @@v40@@ , * ( _DWORD * ) ( @@v39@@ + Number ) ) ; @@v40@@ += Number ; memset ( ( void * ) ( @@v40@@ + @@v38@@ ) , Number , Number ) ; @@v40@@ += Number ; v31 = ( _QWORD * ) ( @@v38@@ + @@v40@@ ) ; v32 = * ( _QWORD * ) ( @@v39@@ + Number ) ; * v31 = * ( _QWORD * ) ( @@v39@@ + Number ) ; v31 [ Number ] = v32 ; @@v40@@ += Number ; } if ( @@a2@@ ) return uip_icmp6_send ( @@a2@@ , Number , Number , @@v40@@ ) ; @@v33@@ = Number L ; @@v34@@ = Number ; @@v35@@ = Number ; @@v36@@ = Number ; @@v37@@ = Number ; return uip_icmp6_send ( & @@v33@@ , Number , Number , @@v40@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "unsigned __int8"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "v39", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v38", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v37", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s34"}, {"n": "v36", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s36"}, {"n": "v35", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s38"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v34", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s40"}, {"n": "v33", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}]} {"name": "dao_input", "code": "int dao_input ( ) { __int64 @@v0@@ ; __int64 v1 ; int v2 ; int v3 ; int v4 ; int v5 ; _QWORD @@s@@ [ Number ] ; __int64 @@v8@@ [ Number ] ; char @@v9@@ ; char @@v10@@ ; char @@v11@@ ; _QWORD * @@v12@@ ; int @@v13@@ ; __int64 @@v14@@ ; void * @@s1@@ ; __int16 @@v16@@ ; unsigned __int8 @@v17@@ ; __int64 @@v18@@ ; char @@v19@@ ; unsigned __int8 @@v20@@ ; __int64 @@v21@@ ; int @@i@@ ; int @@v23@@ ; int @@v24@@ ; unsigned __int8 @@v25@@ ; unsigned __int8 @@v26@@ ; @@v25@@ = Number ; @@v0@@ = * ( _QWORD * ) & byte_422788 [ Number ] ; @@v8@@ [ Number ] = * ( _QWORD * ) byte_422788 ; @@v8@@ [ Number ] = @@v0@@ ; @@v21@@ = ( unsigned __int8 ) uip_ext_len + Number + Number L ; @@v20@@ = uip_len - uip_ext_len - Number ; @@v24@@ = Number ; @@v19@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; v1 = rpl_get_instance ( @@v19@@ ) ; @@v18@@ = v1 ; if ( v1 ) { @@v26@@ = * ( _BYTE * ) ( @@v18@@ + Number ) ; v2 = @@v24@@ ++ ; @@v17@@ = * ( _BYTE * ) ( v2 + @@v21@@ ) ; v3 = @@v24@@ + Number ; @@v24@@ += Number ; @@v16@@ = * ( unsigned __int8 * ) ( v3 + @@v21@@ ) ; @@s1@@ = * ( void * * ) ( @@v18@@ + Number ) ; if ( ( @@v17@@ & Number ) != Number ) { LODWORD ( v1 ) = memcmp ( @@s1@@ , ( const void * ) ( @@v24@@ + @@v21@@ ) , Number ) ; if ( ( _DWORD ) v1 ) return v1 ; @@v24@@ += Number ; } for ( @@i@@ = @@v24@@ ; @@i@@ < @@v20@@ ; @@i@@ += @@v23@@ ) { @@v11@@ = * ( _BYTE * ) ( @@i@@ + @@v21@@ ) ; if ( @@v11@@ ) @@v23@@ = * ( unsigned __int8 * ) ( @@i@@ + Number L + @@v21@@ ) + Number ; else @@v23@@ = Number ; if ( @@v11@@ == Number ) { @@v25@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; v4 = @@v25@@ + Number ; if ( v4 < Number ) v4 = @@v25@@ + Number ; memcpy ( @@s@@ , ( const void * ) ( @@v21@@ + @@i@@ + Number L ) , v4 >> Number ) ; } else if ( @@v11@@ == Number ) { @@v10@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; @@v9@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; @@v26@@ = * ( _BYTE * ) ( @@i@@ + Number L + @@v21@@ ) ; } } v1 = uip_ds6_route_lookup ( @@s@@ ) ; @@v14@@ = v1 ; if ( @@v26@@ ) { if ( LOBYTE ( @@v8@@ [ Number ] ) == Number ) v5 = Number ; else v5 = Number ; @@v13@@ = v5 ; if ( v5 == Number && ( @@v12@@ = rpl_find_parent ( ( __int64 ) @@s1@@ , @@v8@@ ) ) != Number L && ( unsigned __int16 ) ( * ( ( _WORD * ) @@v12@@ + Number ) / * ( _WORD * ) ( @@v18@@ + Number ) ) < ( unsigned __int16 ) ( * ( ( _WORD * ) @@s1@@ + Number ) / * ( _WORD * ) ( @@v18@@ + Number ) ) ) { * ( ( _WORD * ) @@v12@@ + Number ) = Number ; LODWORD ( v1 ) = ( _DWORD ) @@v12@@ ; * ( ( _BYTE * ) @@v12@@ + Number ) = Number ; } else { v1 = rpl_add_route ( ( __int64 ) @@s1@@ , @@s@@ , @@v25@@ , @@v8@@ ) ; @@v14@@ = v1 ; if ( v1 ) { * ( _DWORD * ) ( @@v14@@ + Number ) = @@v26@@ * * ( unsigned __int16 * ) ( @@v18@@ + Number ) ; LODWORD ( v1 ) = @@v14@@ ; * ( _BYTE * ) ( @@v14@@ + Number ) = @@v13@@ ; if ( @@v13@@ == Number ) { if ( * ( ( _QWORD * ) @@s1@@ + Number ) ) uip_icmp6_send ( ( _QWORD * ) ( * ( ( _QWORD * ) @@s1@@ + Number ) + Number L ) , Number , Number , @@v20@@ ) ; LODWORD ( v1 ) = @@v17@@ ; if ( ( @@v17@@ & Number ) != Number ) LODWORD ( v1 ) = dao_ack_output ( @@v18@@ , @@v8@@ , ( unsigned __int8 ) @@v16@@ ) ; } } } } else if ( @@v14@@ ) { LODWORD ( v1 ) = * ( _DWORD * ) ( @@v14@@ + Number ) ; if ( ! ( _DWORD ) v1 ) { LODWORD ( v1 ) = * ( unsigned __int8 * ) ( @@v14@@ + Number ) ; if ( @@v25@@ == ( _BYTE ) v1 ) { * ( _DWORD * ) ( @@v14@@ + Number ) = * ( _DWORD * ) ( @@v14@@ + Number ) ; LODWORD ( v1 ) = @@v14@@ ; * ( _DWORD * ) ( @@v14@@ + Number ) = Number ; } } } } return v1 ; }", "source": [{"n": "v0", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "v26", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s1"}, {"n": "v8", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s112"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "s", "t": {"T": 2, "n": 2, "s": 8, "t": "_QWORD"}, "location": "s128"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v25", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s2"}, {"n": "v21", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v20", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s25"}, {"n": "v19", "t": {"T": 1, "n": "char", "s": 1}, "location": "s26"}, {"n": "v18", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v17", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s41"}, {"n": "v16", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s44"}, {"n": "s1", "t": {"T": 3, "t": "void"}, "location": "s56"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}, {"n": "v12", "t": {"T": 3, "t": "_QWORD"}, "location": "s80"}, {"n": "v11", "t": {"T": 1, "n": "char", "s": 1}, "location": "s81"}, {"n": "v10", "t": {"T": 1, "n": "char", "s": 1}, "location": "s82"}, {"n": "v9", "t": {"T": 1, "n": "char", "s": 1}, "location": "s83"}]} {"name": "dao_output", "code": "__int64 __fastcall dao_output ( __int64 @@a1@@ , char @@a2@@ ) { __int64 result ; int v3 ; int v4 ; _QWORD * v5 ; __int64 @@v6@@ ; int v7 ; int v8 ; int v9 ; int v10 ; int v11 ; int v12 ; int v13 ; int v14 ; int v15 ; int v16 ; int v17 ; int v18 ; int v19 ; int v20 ; _QWORD @@src@@ [ Number ] ; unsigned __int8 @@v22@@ ; int @@v23@@ ; _BYTE * @@v24@@ ; __int64 @@v25@@ ; _QWORD * @@v26@@ ; result = get_global_addr ( @@src@@ ) ; if ( ( _DWORD ) result ) { @@v26@@ = * ( _QWORD * * ) ( @@a1@@ + Number ) ; @@v25@@ = @@v26@@ [ Number ] ; @@v24@@ = ( _BYTE * ) ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; ++ dao_sequence ; @@v23@@ = Number ; * @@v24@@ = * ( _BYTE * ) ( @@v25@@ + Number ) ; @@v24@@ [ @@v23@@ ] = Number ; @@v24@@ [ @@v23@@ ++ ] |= Number ; v3 = @@v23@@ ++ ; @@v24@@ [ v3 ] = Number ; v4 = @@v23@@ ++ ; @@v24@@ [ v4 ] = dao_sequence ; v5 = & @@v24@@ [ @@v23@@ ] ; @@v6@@ = @@v26@@ [ Number ] ; * v5 = * @@v26@@ ; v5 [ Number ] = @@v6@@ ; @@v23@@ += Number ; @@v22@@ = Number ; v7 = @@v23@@ ++ ; @@v24@@ [ v7 ] = Number ; v8 = @@v22@@ + Number ; if ( v8 < Number ) v8 = @@v22@@ + Number ; v9 = v8 >> Number ; v10 = @@v23@@ ++ ; @@v24@@ [ v10 ] = v9 + Number ; v11 = @@v23@@ ++ ; @@v24@@ [ v11 ] = Number ; v12 = @@v23@@ ++ ; @@v24@@ [ v12 ] = @@v22@@ ; v13 = @@v22@@ + Number ; if ( v13 < Number ) v13 = @@v22@@ + Number ; memcpy ( & @@v24@@ [ @@v23@@ ] , @@src@@ , v13 >> Number ) ; v14 = @@v22@@ + Number ; if ( v14 < Number ) v14 = @@v22@@ + Number ; @@v23@@ += v14 >> Number ; v15 = @@v23@@ ++ ; @@v24@@ [ v15 ] = Number ; v16 = @@v23@@ ++ ; @@v24@@ [ v16 ] = Number ; v17 = @@v23@@ ++ ; @@v24@@ [ v17 ] = Number ; v18 = @@v23@@ ++ ; @@v24@@ [ v18 ] = Number ; v19 = @@v23@@ ++ ; @@v24@@ [ v19 ] = Number ; v20 = @@v23@@ ++ ; @@v24@@ [ v20 ] = @@a2@@ ; result = uip_icmp6_send ( ( _QWORD * ) ( @@a1@@ + Number ) , Number , Number , @@v23@@ ) ; } return result ; }", "source": [{"n": "v6", "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": "char", "s": 1}, "location": "r64"}, {"n": "v25", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v24", "t": {"T": 3, "t": "_BYTE"}, "location": "s24"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v22", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s29"}, {"n": "src", "t": {"T": 2, "n": 2, "s": 8, "t": "_QWORD"}, "location": "s48"}, {"n": "v26", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "dao_ack_output", "code": "__int64 __fastcall dao_ack_output ( __int64 @@a1@@ , _QWORD * @@a2@@ , char @@a3@@ ) { _BYTE * @@v4@@ ; @@v4@@ = ( _BYTE * ) ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) = * ( _BYTE * ) ( @@a1@@ + Number ) ; @@v4@@ [ Number ] = Number ; @@v4@@ [ Number ] = @@a3@@ ; @@v4@@ [ Number ] = Number ; return uip_icmp6_send ( @@a2@@ , Number , Number , Number ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "char", "s": 1}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "v4", "t": {"T": 3, "t": "_BYTE"}, "location": "s8"}]} {"name": "handle_dio_timer", "code": "__int64 __fastcall handle_dio_timer ( __int64 @@a1@@ ) { __int64 @@result@@ ; if ( ! dio_send_ok ) { if ( ! uip_ds6_get_link_local ( Number ) ) return ctimer_set ( @@a1@@ + Number , Number L , handle_dio_timer , @@a1@@ ) ; dio_send_ok = Number ; } if ( * ( _BYTE * ) ( @@a1@@ + Number ) ) { if ( * ( _BYTE * ) ( @@a1@@ + Number ) < * ( _BYTE * ) ( @@a1@@ + Number ) ) dio_output ( ( unsigned __int8 * ) @@a1@@ , Number L ) ; * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; @@result@@ = ctimer_set ( @@a1@@ + Number , * ( _QWORD * ) ( @@a1@@ + Number ) , handle_dio_timer , @@a1@@ ) ; } else { if ( * ( unsigned __int8 * ) ( @@a1@@ + Number ) < * ( unsigned __int8 * ) ( @@a1@@ + Number ) + * ( unsigned __int8 * ) ( @@a1@@ + Number ) ) ++ * ( _BYTE * ) ( @@a1@@ + Number ) ; @@result@@ = new_dio_interval ( @@a1@@ ) ; } 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"}]} {"name": "handle_dao_timer", "code": "__int64 __fastcall handle_dao_timer ( __int64 @@a1@@ ) { if ( ! dio_send_ok && ! uip_ds6_get_link_local ( Number ) ) return ctimer_set ( @@a1@@ + Number , Number L , handle_dao_timer , @@a1@@ ) ; if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) dao_output ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) , * ( _BYTE * ) ( @@a1@@ + Number ) ) ; return ctimer_stop ( @@a1@@ + Number ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "packetbuf_set_datalen", "code": "__int64 __fastcall packetbuf_set_datalen ( unsigned __int16 @@a1@@ ) { __int64 @@result@@ ; @@result@@ = @@a1@@ ; buflen = @@a1@@ ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "packetbuf_set_attr", "code": "__int64 __fastcall packetbuf_set_attr ( unsigned __int8 @@a1@@ , __int16 @@a2@@ ) { packetbuf_attrs [ @@a1@@ ] = @@a2@@ ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r64"}]} {"name": "queuebuf_new_from_packetbuf", "code": "__int64 queuebuf_new_from_packetbuf ( ) { __int64 @@result@@ ; __int64 @@v1@@ ; __int64 @@v2@@ ; __int64 @@v3@@ ; if ( packetbuf_is_reference ( ) ) { @@v1@@ = memb_alloc ( refbufmem ) ; if ( @@v1@@ ) { * ( _WORD * ) @@v1@@ = packetbuf_datalen ( ) ; * ( _QWORD * ) ( @@v1@@ + Number ) = packetbuf_reference_ptr ( ) ; * ( _BYTE * ) ( @@v1@@ + Number ) = packetbuf_copyto_hdr ( ( void * ) ( @@v1@@ + Number ) ) ; } @@result@@ = @@v1@@ ; } else { @@v3@@ = memb_alloc ( ( unsigned __int16 * ) bufmem ) ; if ( @@v3@@ ) { * ( _QWORD * ) @@v3@@ = memb_alloc ( buframmem ) ; if ( ! * ( _QWORD * ) @@v3@@ ) return Number L ; @@v2@@ = * ( _QWORD * ) @@v3@@ ; * ( _WORD * ) @@v2@@ = packetbuf_copyto ( ( char * ) ( * ( _QWORD * ) @@v3@@ + Number L ) ) ; packetbuf_attr_copyto ( ( void * ) ( @@v2@@ + Number ) , ( _QWORD * ) ( @@v2@@ + Number ) ) ; } @@result@@ = @@v3@@ ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "queuebuf_free", "code": "__int64 __fastcall queuebuf_free ( __int64 * @@a1@@ ) { __int64 @@result@@ ; if ( memb_inmemb ( ( unsigned __int16 * ) bufmem , ( unsigned __int64 ) @@a1@@ ) ) { memb_free ( buframmem , * @@a1@@ ) ; @@result@@ = memb_free ( ( unsigned __int16 * ) bufmem , ( __int64 ) @@a1@@ ) ; } else { @@result@@ = memb_inmemb ( refbufmem , ( unsigned __int64 ) @@a1@@ ) ; if ( ( _DWORD ) @@result@@ ) @@result@@ = memb_free ( refbufmem , ( __int64 ) @@a1@@ ) ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "__int64"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "queuebuf_to_packetbuf", "code": "__int64 __fastcall queuebuf_to_packetbuf ( unsigned __int64 @@a1@@ ) { __int64 result ; size_t @@v2@@ ; char * v3 ; __int64 @@v4@@ ; if ( memb_inmemb ( ( unsigned __int16 * ) bufmem , @@a1@@ ) ) { @@v4@@ = queuebuf_load_to_ram ( @@a1@@ ) ; packetbuf_copyfrom ( ( const void * ) ( @@v4@@ + Number ) , * ( _WORD * ) @@v4@@ ) ; result = packetbuf_attr_copyfrom ( ( const void * ) ( @@v4@@ + Number ) , ( __int64 * ) ( @@v4@@ + Number ) ) ; } else { result = memb_inmemb ( refbufmem , @@a1@@ ) ; if ( ( _DWORD ) result ) { packetbuf_clear ( ) ; packetbuf_copyfrom ( * ( const void * * ) ( @@a1@@ + Number ) , * ( _WORD * ) @@a1@@ ) ; packetbuf_hdralloc ( * ( unsigned __int8 * ) ( @@a1@@ + Number ) ) ; @@v2@@ = * ( unsigned __int8 * ) ( @@a1@@ + Number ) ; v3 = packetbuf_hdrptr ( ) ; result = ( __int64 ) memcpy ( v3 , ( const void * ) ( @@a1@@ + Number ) , @@v2@@ ) ; } } return result ; }", "source": [{"n": "v2", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r56"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}]} {"name": "uip_udp_packet_send", "code": "void __fastcall uip_udp_packet_send ( void * @@a1@@ , const void * @@a2@@ , int @@a3@@ ) { int @@v3@@ ; if ( @@a2@@ ) { uip_udp_conn = @@a1@@ ; uip_slen = @@a3@@ ; @@v3@@ = Number ; if ( @@a3@@ <= Number ) @@v3@@ = @@a3@@ ; memcpy ( & unk_4227B0 , @@a2@@ , @@v3@@ ) ; uip_process ( Number ) ; tcpip_ipv6_output ( ) ; } uip_slen = Number ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const void"}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "set_packet_attrs", "code": "__int64 set_packet_attrs ( ) { __int16 @@v1@@ ; @@v1@@ = Number ; packetbuf_set_attr ( Number , * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) ) ; switch ( * ( ( _BYTE * ) & uip_aligned_buf + Number ) ) { case Number : @@v1@@ = dword_4227A8 ; if ( ( unsigned __int16 ) dword_4227A8 > ( int ) HIWORD ( dword_4227A8 ) ) return packetbuf_set_attr ( Number , HIWORD ( dword_4227A8 ) ) ; break ; case Number : @@v1@@ = dword_4227A8 ; if ( ( unsigned __int16 ) dword_4227A8 > ( int ) HIWORD ( dword_4227A8 ) ) return packetbuf_set_attr ( Number , HIWORD ( dword_4227A8 ) ) ; break ; case Number : @@v1@@ = ( ( unsigned __int8 ) dword_4227A8 << Number ) | BYTE1 ( dword_4227A8 ) ; break ; } return packetbuf_set_attr ( Number , @@v1@@ ) ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s4"}]} {"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": "send_packet_1", "code": "__int64 __fastcall send_packet_1 ( __int64 @@a1@@ ) { packetbuf_set_addr ( Number , @@a1@@ ) ; send_packet ( ( __int64 ) packet_sent , Number L ) ; return watchdog_periodic ( ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "sicslowpan_init", "code": "__int64 ( __fastcall * sicslowpan_init ( ) ) ( _QWORD ) { __int64 ( __fastcall * @@result@@ ) ( _QWORD ) ; int @@i@@ ; @@result@@ = tcpip_set_outputfunc ( output ) ; addr_contexts [ Number ] = Number ; byte_421BF1 [ Number ] = Number ; byte_421BF2 = Number ; byte_421BF3 = Number ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { @@result@@ = ( __int64 ( __fastcall * ) ( _QWORD ) ) ( Number L * @@i@@ + Number ) ; addr_contexts [ Number * @@i@@ ] = Number ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 9, "n": "__int64 (__fastcall *)(_QWORD)"}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]} {"name": "send", "code": "__int64 __fastcall send ( __int64 @@a1@@ , unsigned __int16 @@a2@@ ) { prepare ( @@a1@@ , @@a2@@ ) ; return transmit ( @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r64"}]} {"name": "set_attr", "code": "void * __fastcall set_attr ( __int64 @@a1@@ , unsigned __int16 @@a2@@ ) { void * @@result@@ ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) @@result@@ = memcpy ( ( void * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + @@a2@@ * * ( unsigned __int16 * ) ( @@a1@@ + Number ) ) , * ( const void * * ) ( @@a1@@ + Number ) , * ( unsigned __int16 * ) ( @@a1@@ + Number ) ) ; else @@result@@ = memset ( ( void * ) ( @@a2@@ * * ( unsigned __int16 * ) ( @@a1@@ + Number ) + * ( _QWORD * ) ( @@a1@@ + Number ) ) , Number , * ( unsigned __int16 * ) ( @@a1@@ + Number ) ) ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "void"}, "location": "r8"}]}