{"name": "unzReadCurrentFile", "code": "__int64 __fastcall unzReadCurrentFile ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ ) { __int64 @@result@@ ; __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; __int64 @@v7@@ ; unsigned int @@i@@ ; unsigned int @@v9@@ ; unsigned int @@v10@@ ; unsigned int @@v11@@ ; int @@v12@@ ; @@v12@@ = Number ; @@v11@@ = Number ; if ( ! @@a1@@ ) return Number L ; @@v7@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( ! @@v7@@ ) return Number L ; if ( ! * ( _QWORD * ) @@v7@@ ) return Number L ; if ( ! @@a3@@ ) return Number L ; * ( _QWORD * ) ( @@v7@@ + Number ) = @@a2@@ ; * ( _DWORD * ) ( @@v7@@ + Number ) = @@a3@@ ; if ( ( unsigned __int64 ) @@a3@@ > * ( _QWORD * ) ( @@v7@@ + Number ) && ! * ( _DWORD * ) ( @@v7@@ + Number ) ) * ( _DWORD * ) ( @@v7@@ + Number ) = * ( _QWORD * ) ( @@v7@@ + Number ) ; if ( @@a3@@ > * ( _QWORD * ) ( @@v7@@ + Number ) + ( unsigned __int64 ) * ( unsigned int * ) ( @@v7@@ + Number ) && * ( _DWORD * ) ( @@v7@@ + Number ) ) * ( _DWORD * ) ( @@v7@@ + Number ) = * ( _DWORD * ) ( @@v7@@ + Number ) + * ( _QWORD * ) ( @@v7@@ + Number ) ; while ( * ( _DWORD * ) ( @@v7@@ + Number ) ) { if ( ! * ( _DWORD * ) ( @@v7@@ + Number ) && * ( _QWORD * ) ( @@v7@@ + Number ) ) { @@v10@@ = Number ; if ( * ( _QWORD * ) ( @@v7@@ + Number ) < Number ) @@v10@@ = * ( _QWORD * ) ( @@v7@@ + Number ) ; if ( ! @@v10@@ ) return Number L ; if ( call_zseek64 ( @@v7@@ + Number , * ( _QWORD * ) ( @@v7@@ + Number ) , * ( _QWORD * ) ( @@v7@@ + Number ) + * ( _QWORD * ) ( @@v7@@ + Number ) , Number L ) ) return Number ; if ( ( * ( __int64 ( __fastcall * * ) ( _QWORD , _QWORD , _QWORD , _QWORD ) ) ( @@v7@@ + Number ) ) ( * ( _QWORD * ) ( @@v7@@ + Number ) , * ( _QWORD * ) ( @@v7@@ + Number ) , * ( _QWORD * ) @@v7@@ , @@v10@@ ) != @@v10@@ ) return Number ; * ( _QWORD * ) ( @@v7@@ + Number ) += @@v10@@ ; * ( _QWORD * ) ( @@v7@@ + Number ) -= @@v10@@ ; * ( _QWORD * ) ( @@v7@@ + Number ) = * ( _QWORD * ) @@v7@@ ; * ( _DWORD * ) ( @@v7@@ + Number ) = @@v10@@ ; } if ( * ( _QWORD * ) ( @@v7@@ + Number ) && ! * ( _DWORD * ) ( @@v7@@ + Number ) ) { if ( * ( _QWORD * ) ( @@v7@@ + Number ) != Number L ) { @@v6@@ = * ( _QWORD * ) ( @@v7@@ + Number ) ; @@v5@@ = * ( _QWORD * ) ( @@v7@@ + Number ) ; @@v12@@ = inflate ( @@v7@@ + Number , Number L ) ; if ( @@v12@@ >= Number && * ( _QWORD * ) ( @@v7@@ + Number ) ) @@v12@@ = Number ; @@v4@@ = * ( _QWORD * ) ( @@v7@@ + Number ) ; * ( _QWORD * ) ( @@v7@@ + Number ) += @@v4@@ - @@v6@@ ; * ( _QWORD * ) ( @@v7@@ + Number ) = crc32 ( * ( _QWORD * ) ( @@v7@@ + Number ) , @@v5@@ , ( unsigned int ) ( @@v4@@ - @@v6@@ ) ) ; * ( _QWORD * ) ( @@v7@@ + Number ) -= @@v4@@ - @@v6@@ ; @@v11@@ += @@v4@@ - @@v6@@ ; if ( @@v12@@ == Number ) return @@v11@@ ; if ( @@v12@@ ) break ; } } else { if ( ! * ( _DWORD * ) ( @@v7@@ + Number ) && ! * ( _QWORD * ) ( @@v7@@ + Number ) ) return @@v11@@ ; if ( * ( _DWORD * ) ( @@v7@@ + Number ) >= * ( _DWORD * ) ( @@v7@@ + Number ) ) @@v9@@ = * ( _DWORD * ) ( @@v7@@ + Number ) ; else @@v9@@ = * ( _DWORD * ) ( @@v7@@ + Number ) ; for ( @@i@@ = Number ; @@i@@ < @@v9@@ ; ++ @@i@@ ) * ( _BYTE * ) ( @@i@@ + * ( _QWORD * ) ( @@v7@@ + Number ) ) = * ( _BYTE * ) ( * ( _QWORD * ) ( @@v7@@ + Number ) + @@i@@ ) ; * ( _QWORD * ) ( @@v7@@ + Number ) += @@v9@@ ; * ( _QWORD * ) ( @@v7@@ + Number ) = crc32 ( * ( _QWORD * ) ( @@v7@@ + Number ) , * ( _QWORD * ) ( @@v7@@ + Number ) , @@v9@@ ) ; * ( _QWORD * ) ( @@v7@@ + Number ) -= @@v9@@ ; * ( _DWORD * ) ( @@v7@@ + Number ) -= @@v9@@ ; * ( _DWORD * ) ( @@v7@@ + Number ) -= @@v9@@ ; * ( _QWORD * ) ( @@v7@@ + Number ) += @@v9@@ ; * ( _QWORD * ) ( @@v7@@ + Number ) += @@v9@@ ; * ( _QWORD * ) ( @@v7@@ + Number ) += @@v9@@ ; @@v11@@ += @@v9@@ ; } } if ( @@v12@@ ) @@result@@ = ( unsigned int ) @@v12@@ ; else @@result@@ = @@v11@@ ; return @@result@@ ; }", "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": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s56"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}