{"name": "upper_layer_chksum", "code": "__int64 __fastcall upper_layer_chksum ( unsigned __int8 @@a1@@ ) { unsigned __int16 v1 ; __int64 result ; unsigned __int16 @@v3@@ ; unsigned __int16 @@v4@@ ; @@v3@@ = * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) + ( * ( ( unsigned __int8 * ) & uip_aligned_buf + Number ) << Number ) - ( unsigned __int8 ) uip_ext_len ; v1 = chksum ( @@a1@@ + @@v3@@ , byte_422788 , Number ) ; @@v4@@ = chksum ( v1 , ( unsigned __int8 * ) & uip_aligned_buf + ( unsigned __int8 ) uip_ext_len + Number , @@v3@@ ) ; if ( @@v4@@ ) result = uip_htons ( @@v4@@ ) ; else result = Number ; return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r56"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s2"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s4"}]}
{"name": "chksum", "code": "__int64 __fastcall chksum ( unsigned __int16 @@a1@@ , unsigned __int8 * @@a2@@ , unsigned __int16 @@a3@@ ) { unsigned __int16 v5 ; unsigned __int16 v6 ; unsigned __int8 * @@v7@@ ; unsigned __int8 * @@v8@@ ; @@v8@@ = @@a2@@ ; @@v7@@ = & @@a2@@ [ @@a3@@ - Number ] ; while ( @@v8@@ < @@v7@@ ) { v5 = ( * @@v8@@ << Number ) + @@v8@@ [ Number ] ; @@a1@@ += v5 ; if ( @@a1@@ < v5 ) ++ @@a1@@ ; @@v8@@ += Number ; } if ( @@v8@@ == @@v7@@ ) { v6 = * @@v8@@ << Number ; @@a1@@ += v6 ; if ( @@a1@@ < v6 ) ++ @@a1@@ ; } return @@a1@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "unsigned __int8"}, "location": "r64"}, {"n": "v7", "t": {"T": 3, "t": "unsigned __int8"}, "location": "s16"}, {"n": "v8", "t": {"T": 3, "t": "unsigned __int8"}, "location": "s8"}]} {"name": "uip_htons", "code": "__int64 __fastcall uip_htons ( unsigned __int16 @@a1@@ ) { unsigned int @@v1@@ ; @@v1@@ = @@a1@@ ; LOWORD ( @@v1@@ ) = HIBYTE ( @@a1@@ ) ; return ( @@a1@@ << Number ) | @@v1@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r56"}, {"n": "v1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r8"}]}