{"name": "uip_packetqueue_buflen", "code": "__int64 __fastcall uip_packetqueue_buflen ( __int64 @@a1@@ ) { __int64 @@result@@ ; if ( * ( _QWORD * ) @@a1@@ ) @@result@@ = * ( unsigned __int16 * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ; 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_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_nd6_na_input", "code": "__int64 uip_nd6_na_input ( ) { __int64 result ; size_t @@v1@@ ; const void * v2 ; char @@v3@@ ; char @@v4@@ ; char @@v5@@ ; char @@v6@@ ; @@v6@@ = Number ; @@v5@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) & Number ; @@v4@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) & Number ; @@v3@@ = * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) & Number ; result = * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) ; if ( ( _BYTE ) result != Number ) goto LABEL_44 ; result = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( _BYTE ) result ) goto LABEL_44 ; result = * ( ( unsigned __int8 * ) & unk_422784 + ( unsigned __int8 ) uip_ext_len + Number ) ; if ( ( _BYTE ) result == Number ) goto LABEL_44 ; if ( @@v4@@ ) { result = byte_422798 [ Number ] ; if ( byte_422798 [ Number ] == Number ) goto LABEL_44 ; } nd6_opt_offset = Number ; nd6_opt_llao = Number L ; while ( ( unsigned __int8 ) nd6_opt_offset + ( unsigned __int8 ) uip_ext_len + Number < ( unsigned __int16 ) uip_len ) { result = * ( ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) ; if ( ! ( _BYTE ) result ) goto LABEL_44 ; if ( * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) == Number ) nd6_opt_llao = ( unsigned __int8 ) uip_ext_len + Number + ( unsigned __int8 ) nd6_opt_offset + Number L ; nd6_opt_offset += Number * * ( ( _BYTE * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + ( unsigned __int8 ) nd6_opt_offset + Number ) ; } addr = uip_ds6_addr_lookup ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; result = addr ; if ( addr ) goto LABEL_44 ; nbr = uip_ds6_nbr_lookup ( ( unsigned __int8 ) uip_ext_len + Number + Number L ) ; result = nbr ; if ( ! nbr ) goto LABEL_44 ; if ( nd6_opt_llao ) @@v6@@ = memcmp ( ( const void * ) ( nd6_opt_llao + Number ) , ( const void * ) ( nbr + Number ) , Number ) ; if ( * ( _BYTE * ) ( nbr + Number ) ) { if ( ! @@v3@@ && @@v6@@ ) { result = * ( unsigned __int8 * ) ( nbr + Number ) ; if ( ( _BYTE ) result == Number ) { result = nbr ; * ( _BYTE * ) ( nbr + Number ) = Number ; } goto LABEL_44 ; } if ( @@v3@@ || nd6_opt_llao && ! @@v6@@ || ! nd6_opt_llao ) { if ( nd6_opt_llao ) * ( _QWORD * ) ( nbr + Number ) = * ( _QWORD * ) ( nd6_opt_llao + Number ) ; if ( @@v4@@ ) { * ( _BYTE * ) ( nbr + Number ) = Number ; stimer_set ( nbr + Number , dword_422C4C / Number ) ; } else if ( nd6_opt_llao && @@v6@@ ) { * ( _BYTE * ) ( nbr + Number ) = Number ; } } if ( * ( _BYTE * ) ( nbr + Number ) ) { if ( ! @@v5@@ ) { defrt = uip_ds6_defrt_lookup ( byte_422788 ) ; if ( defrt ) uip_ds6_defrt_rm ( defrt ) ; } } * ( _BYTE * ) ( nbr + Number ) = @@v5@@ ; } else { result = nd6_opt_llao ; if ( ! nd6_opt_llao ) goto LABEL_44 ; * ( _QWORD * ) ( nbr + Number ) = * ( _QWORD * ) ( nd6_opt_llao + Number ) ; if ( @@v4@@ ) { * ( _BYTE * ) ( nbr + Number ) = Number ; * ( _BYTE * ) ( nbr + Number ) = Number ; stimer_set ( nbr + Number , dword_422C4C / Number ) ; } else { * ( _BYTE * ) ( nbr + Number ) = Number ; } * ( _BYTE * ) ( nbr + Number ) = @@v5@@ ; } result = uip_packetqueue_buflen ( nbr + Number ) ; if ( ( _WORD ) result ) { uip_len = uip_packetqueue_buflen ( nbr + Number ) ; @@v1@@ = ( unsigned __int16 ) uip_len ; v2 = ( const void * ) uip_packetqueue_buf ( nbr + Number ) ; memcpy ( & uip_aligned_buf , v2 , @@v1@@ ) ; return uip_packetqueue_free ( nbr + Number ) ; } LABEL_44 : uip_len = Number ; return result ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r32"}, {"n": "v6", "t": {"T": 1, "n": "char", "s": 1}, "location": "s17"}, {"n": "v5", "t": {"T": 1, "n": "char", "s": 1}, "location": "s18"}, {"n": "v4", "t": {"T": 1, "n": "char", "s": 1}, "location": "s19"}, {"n": "v3", "t": {"T": 1, "n": "char", "s": 1}, "location": "s20"}]} {"name": "uip_packetqueue_buf", "code": "__int64 __fastcall uip_packetqueue_buf ( _QWORD * @@a1@@ ) { __int64 @@result@@ ; if ( * @@a1@@ ) @@result@@ = * @@a1@@ + Number L ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}