{"name": "vmxnet_tx_pkt_do_sw_csum", "code": "unsigned __int64 __fastcall vmxnet_tx_pkt_do_sw_csum ( __int64 @@a1@@ ) { int v1 ; __int16 v2 ; __int16 @@v4@@ ; unsigned __int16 @@v5@@ ; unsigned int @@v6@@ ; unsigned int @@v7@@ ; __int64 @@v8@@ ; __int64 @@v9@@ ; __int64 @@v10@@ ; unsigned __int64 @@v11@@ ; @@v11@@ = __readfsqword ( Number ) ; @@v8@@ = * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ; @@v4@@ = Number ; @@v6@@ = * ( _DWORD * ) ( @@a1@@ + Number ) + Number ; @@v9@@ = * ( unsigned __int16 * ) ( @@a1@@ + Number ) + * ( unsigned __int16 * ) ( @@a1@@ + Number ) ; iov_from_buf ( @@v8@@ , @@v6@@ , @@v9@@ , & @@v4@@ , Number L ) ; @@v5@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v7@@ = net_checksum_add_iov ( @@v8@@ , @@v6@@ , * ( unsigned __int16 * ) ( @@a1@@ + Number ) , @@v5@@ ) ; @@v10@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; v1 = eth_calc_pseudo_hdr_csum ( @@v10@@ , @@v5@@ ) ; @@v7@@ += v1 ; v2 = net_checksum_finish ( @@v7@@ ) ; @@v4@@ = cpu_to_be16 ( v2 ) ; iov_from_buf ( @@v8@@ , @@v6@@ , @@v9@@ , & @@v4@@ , Number L ) ; return __readfsqword ( Number ) ^ @@v11@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v5", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s42"}, {"n": "v4", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s44"}, {"n": "v11", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "cpu_to_be16", "code": "__int16 __fastcall cpu_to_be16 ( __int16 @@a1@@ ) { return bswap16 ( @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r56"}]} {"name": "net_checksum_add", "code": "__int64 __fastcall net_checksum_add ( unsigned int @@a1@@ , __int64 @@a2@@ ) { return net_checksum_add_cont ( @@a1@@ , @@a2@@ , Number L ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "vmxnet_tx_pkt_send", "code": "__int64 __fastcall vmxnet_tx_pkt_send ( __int64 @@a1@@ , __int64 @@a2@@ ) { if ( ! @@a1@@ ) _assert_fail ( String , String , Number , String ) ; if ( * ( _BYTE * ) ( @@a1@@ + Number ) != Number && ( * ( _BYTE * ) @@a1@@ & Number ) != Number ) vmxnet_tx_pkt_do_sw_csum ( @@a1@@ ) ; if ( * ( _BYTE * ) ( @@a1@@ + Number ) && * ( unsigned int * ) ( @@a1@@ + Number ) > ( unsigned __int64 ) ( Number - * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ) { return Number L ; } if ( ! * ( _BYTE * ) ( @@a1@@ + Number ) && * ( _BYTE * ) ( @@a1@@ + Number ) ) return vmxnet_tx_pkt_do_sw_fragmentation ( @@a1@@ , @@a2@@ ) ; qemu_sendv_packet ( @@a2@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , ( unsigned int ) ( * ( _DWORD * ) ( @@a1@@ + Number ) + Number ) ) ; 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"}]}