{"name": "vmxnet_tx_pkt_get_gso_type", "code": "__int64 __fastcall vmxnet_tx_pkt_get_gso_type ( __int64 @@a1@@ , char @@a2@@ ) { unsigned __int8 @@v3@@ ; unsigned __int16 @@v4@@ ; @@v3@@ = Number ; @@v4@@ = eth_get_l3_proto ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) , * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ; if ( @@a2@@ == Number ) @@v3@@ = eth_get_gso_type ( @@v4@@ , * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) , * ( unsigned __int8 * ) ( @@a1@@ + Number ) ) ; return @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s2"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s3"}]}
{"name": "eth_get_l3_proto", "code": "__int16 __fastcall eth_get_l3_proto ( __int64 @@a1@@ , __int64 @@a2@@ ) { return be16_to_cpup ( ( __int16 * ) ( @@a2@@ - Number + @@a1@@ ) ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "vmxnet_tx_pkt_build_vheader", "code": "unsigned __int64 __fastcall vmxnet_tx_pkt_build_vheader ( __int64 @@a1@@ , char @@a2@@ , char @@a3@@ , __int16 @@a4@@ ) { int v4 ; int v5 ; char @@v9@@ [ Number ] ; unsigned __int64 @@v10@@ ; @@v10@@ = __readfsqword ( Number ) ; if ( ! @@a1@@ ) _assert_fail ( String , String , Number , String ) ; if ( ! @@a3@@ && @@a2@@ == Number ) _assert_fail ( String , String , Number , String ) ; * ( _BYTE * ) ( @@a1@@ + Number ) = vmxnet_tx_pkt_get_gso_type ( @@a1@@ , @@a2@@ ) ; v4 = * ( _BYTE * ) ( @@a1@@ + Number ) & Number ; if ( v4 == Number ) goto LABEL_14 ; if ( ( * ( _BYTE * ) ( @@a1@@ + Number ) & Number ) > Number ) goto LABEL_15 ; if ( v4 == Number ) { * ( _WORD * ) ( @@a1@@ + Number ) = @@a4@@ & Number ; * ( _WORD * ) ( @@a1@@ + Number ) = * ( _WORD * ) ( @@a1@@ + Number ) + Number ; goto LABEL_16 ; } if ( ( * ( _BYTE * ) ( @@a1@@ + Number ) & Number ) == Number ) { * ( _WORD * ) ( @@a1@@ + Number ) = Number ; * ( _WORD * ) ( @@a1@@ + Number ) = Number ; goto LABEL_16 ; } if ( v4 == Number ) { LABEL_14 : iov_to_buf ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , * ( unsigned int * ) ( @@a1@@ + Number ) , Number L , @@v9@@ , Number L ) ; * ( _WORD * ) ( @@a1@@ + Number ) = * ( _WORD * ) ( @@a1@@ + Number ) + Number * ( ( unsigned __int8 ) @@v9@@ [ Number ] >> Number ) ; * ( _WORD * ) ( @@a1@@ + Number ) = @@a4@@ & Number ; } else { LABEL_15 : g_assertion_message_expr ( Number L , String , Number L , String , Number L ) ; } LABEL_16 : if ( @@a3@@ ) { v5 = * ( unsigned __int8 * ) ( @@a1@@ + Number ) ; if ( v5 == Number ) { * ( _BYTE * ) @@a1@@ = Number ; * ( _WORD * ) ( @@a1@@ + Number ) = * ( _WORD * ) ( @@a1@@ + Number ) ; * ( _WORD * ) ( @@a1@@ + Number ) = Number ; } else if ( v5 == Number ) { * ( _BYTE * ) @@a1@@ = Number ; * ( _WORD * ) ( @@a1@@ + Number ) = * ( _WORD * ) ( @@a1@@ + Number ) ; * ( _WORD * ) ( @@a1@@ + Number ) = Number ; } } return __readfsqword ( Number ) ^ @@v10@@ ; }", "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": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "v9", "t": {"T": 2, "n": 24, "s": 1, "t": "char"}, "location": "s32"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}