{"name": "uip_htonl", "code": "__int64 __fastcall uip_htonl ( int @@a1@@ ) { return ( ( unsigned __int16 ) ( ( ( _WORD ) @@a1@@ << Number ) | BYTE1 ( @@a1@@ ) ) << Number ) | ( unsigned int ) ( unsigned __int16 ) ( ( HIWORD ( @@a1@@ ) << Number ) | HIBYTE ( HIWORD ( @@a1@@ ) ) ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}]}
{"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"}]}