{"name": "vringh_iov_xfer", "code": "__int64 __fastcall vringh_iov_xfer ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned __int64 @@a3@@ , __int64 ( __fastcall * @@a4@@ ) ( _QWORD , __int64 , unsigned __int64 ) ) { unsigned __int64 @@v4@@ ; int @@v9@@ ; unsigned __int64 @@v10@@ ; int @@v11@@ ; @@v11@@ = Number ; while ( @@a3@@ && * ( _DWORD * ) ( @@a1@@ + Number ) < * ( _DWORD * ) ( @@a1@@ + Number ) ) { @@v4@@ = * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L * * ( unsigned int * ) ( @@a1@@ + Number ) + Number ) ; if ( @@a3@@ <= @@v4@@ ) @@v4@@ = @@a3@@ ; @@v10@@ = @@v4@@ ; @@v9@@ = @@a4@@ ( * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L * * ( unsigned int * ) ( @@a1@@ + Number ) ) , @@a2@@ , @@v4@@ ) ; if ( @@v9@@ ) return @@v9@@ ; @@v11@@ += @@v10@@ ; @@a3@@ -= @@v10@@ ; @@a2@@ += @@v10@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) += @@v10@@ ; * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L * * ( unsigned int * ) ( @@a1@@ + Number ) + Number ) -= @@v10@@ ; * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L * * ( unsigned int * ) ( @@a1@@ + Number ) ) += @@v10@@ ; if ( ! * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L * * ( unsigned int * ) ( @@a1@@ + Number ) + Number ) ) { * ( _QWORD * ) ( Number L * * ( unsigned int * ) ( @@a1@@ + Number ) + * ( _QWORD * ) @@a1@@ + Number ) = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L * * ( unsigned int * ) ( @@a1@@ + Number ) ) -= * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; ++ * ( _DWORD * ) ( @@a1@@ + Number ) ; } } return @@v11@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 9, "n": "__int64 (__fastcall *)(_QWORD, __int64, unsigned __int64)"}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r8"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]}
{"name": "vringh_iov_pull_user", "code": "__int64 __fastcall vringh_iov_pull_user ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { return vringh_iov_xfer ( @@a1@@ , @@a2@@ , @@a3@@ , ( __int64 ( __fastcall * ) ( _QWORD , __int64 , unsigned __int64 ) ) xfer_from_user ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "vringh_iov_push_user", "code": "__int64 __fastcall vringh_iov_push_user ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { return vringh_iov_xfer ( @@a1@@ , @@a2@@ , @@a3@@ , ( __int64 ( __fastcall * ) ( _QWORD , __int64 , unsigned __int64 ) ) xfer_to_user ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "vringh_iov_pull_kern", "code": "__int64 __fastcall vringh_iov_pull_kern ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { return vringh_iov_xfer ( @@a1@@ , @@a2@@ , @@a3@@ , ( __int64 ( __fastcall * ) ( _QWORD , __int64 , unsigned __int64 ) ) xfer_kern ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "vringh_iov_push_kern", "code": "__int64 __fastcall vringh_iov_push_kern ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { return vringh_iov_xfer ( @@a1@@ , @@a2@@ , @@a3@@ , ( __int64 ( __fastcall * ) ( _QWORD , __int64 , unsigned __int64 ) ) xfer_kern ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]}