{"name": "unzGetLocalExtrafield", "code": "__int64 __fastcall unzGetLocalExtrafield ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ ) { __int64 @@v4@@ ; unsigned int @@v5@@ ; if ( ! @@a1@@ ) return Number L ; @@v4@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( ! @@v4@@ ) return Number L ; if ( ! @@a2@@ ) return * ( unsigned int * ) ( @@v4@@ + Number ) - * ( _QWORD * ) ( @@v4@@ + Number ) ; if ( ( unsigned __int64 ) * ( unsigned int * ) ( @@v4@@ + Number ) - * ( _QWORD * ) ( @@v4@@ + Number ) >= @@a3@@ ) @@v5@@ = @@a3@@ ; else @@v5@@ = * ( _DWORD * ) ( @@v4@@ + Number ) - * ( _DWORD * ) ( @@v4@@ + Number ) ; if ( ! @@v5@@ ) return Number L ; if ( call_zseek64 ( @@v4@@ + Number , * ( _QWORD * ) ( @@v4@@ + Number ) , * ( _QWORD * ) ( @@v4@@ + Number ) + * ( _QWORD * ) ( @@v4@@ + Number ) , Number L ) ) return Number ; if ( ( * ( __int64 ( __fastcall * * ) ( _QWORD , _QWORD , __int64 , _QWORD ) ) ( @@v4@@ + Number ) ) ( * ( _QWORD * ) ( @@v4@@ + Number ) , * ( _QWORD * ) ( @@v4@@ + Number ) , @@a2@@ , @@v5@@ ) == @@v5@@ ) return @@v5@@ ; return Number ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"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": "__int64", "s": 8}, "location": "s24"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]}