{"name": "zipCloseFileInZipRaw64", "code": "__int64 __fastcall zipCloseFileInZipRaw64 ( __int64 @@a1@@ , unsigned __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { __int64 @@v6@@ ; unsigned __int64 @@v7@@ ; unsigned int @@v8@@ ; __int64 @@v9@@ ; __int64 v10 ; __int64 v11 ; unsigned int @@v12@@ ; __int16 @@v13@@ ; @@v13@@ = Number ; @@v12@@ = Number ; if ( ! @@a1@@ ) return Number L ; if ( ! * ( _DWORD * ) ( @@a1@@ + Number ) ) return Number L ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number && ! * ( _DWORD * ) ( @@a1@@ + Number ) ) { while ( ! @@v12@@ ) { if ( ! * ( _DWORD * ) ( @@a1@@ + Number ) ) { zip64FlushWriteBuffer ( @@a1@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@a1@@ + Number ; } @@v9@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v12@@ = deflate ( @@a1@@ + Number , Number L ) ; * ( _DWORD * ) ( @@a1@@ + Number ) += * ( _QWORD * ) ( @@a1@@ + Number ) - @@v9@@ ; } } if ( @@v12@@ == Number ) @@v12@@ = Number ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) && ! @@v12@@ && ( unsigned int ) zip64FlushWriteBuffer ( @@a1@@ ) == Number ) @@v12@@ = Number ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number && ! * ( _DWORD * ) ( @@a1@@ + Number ) ) { @@v8@@ = deflateEnd ( @@a1@@ + Number ) ; if ( ! @@v12@@ ) @@v12@@ = @@v8@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; } if ( ! * ( _DWORD * ) ( @@a1@@ + Number ) ) { @@a3@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@a2@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; } @@v7@@ = * ( int * ) ( @@a1@@ + Number ) + * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( @@v7@@ > Number || @@a2@@ > Number || * ( _QWORD * ) ( @@a1@@ + Number ) > Number ) { zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , Number , Number ) ; zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , Number , Number ) ; } zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , @@a3@@ , Number ) ; if ( @@v7@@ <= Number ) zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , @@v7@@ , Number ) ; else zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , Number , Number ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , Number , Number ) ; if ( @@a2@@ <= Number ) zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , @@a2@@ , Number ) ; else zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , Number , Number ) ; if ( @@a2@@ > Number ) @@v13@@ = Number ; if ( @@v7@@ > Number ) @@v13@@ += Number ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) > Number ) @@v13@@ += Number ; if ( @@v13@@ > Number ) { if ( ( unsigned __int64 ) ( @@v13@@ + Number ) > * ( _QWORD * ) ( @@a1@@ + Number ) ) return Number L ; v10 = * ( _QWORD * ) ( @@a1@@ + Number ) + * ( _QWORD * ) ( @@a1@@ + Number ) ; zip64local_putValue_inmemory ( v10 , Number , Number ) ; v10 += Number L ; zip64local_putValue_inmemory ( v10 , @@v13@@ , Number ) ; v11 = v10 + Number ; if ( @@a2@@ > Number ) { zip64local_putValue_inmemory ( v11 , @@a2@@ , Number ) ; v11 += Number L ; } if ( @@v7@@ > Number ) { zip64local_putValue_inmemory ( v11 , @@v7@@ , Number ) ; v11 += Number L ; } if ( * ( _QWORD * ) ( @@a1@@ + Number ) > Number ) zip64local_putValue_inmemory ( v11 , * ( _QWORD * ) ( @@a1@@ + Number ) , Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) -= @@v13@@ + Number ; * ( _QWORD * ) ( @@a1@@ + Number ) += @@v13@@ + Number ; * ( _QWORD * ) ( @@a1@@ + Number ) += @@v13@@ + Number ; zip64local_putValue_inmemory ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , * ( _QWORD * ) ( @@a1@@ + Number ) , Number ) ; } if ( ! @@v12@@ ) @@v12@@ = add_data_in_datablock ( ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; free ( * ( void * * ) ( @@a1@@ + Number ) ) ; if ( ! @@v12@@ ) { @@v6@@ = call_ztell64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; if ( call_zseek64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , Number L ) ) @@v12@@ = Number ; if ( ! @@v12@@ ) @@v12@@ = zip64local_putValue ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@a3@@ , Number ) ; if ( @@a2@@ <= Number ) { if ( ! @@v12@@ ) @@v12@@ = zip64local_putValue ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v7@@ , Number ) ; if ( ! @@v12@@ ) @@v12@@ = zip64local_putValue ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@a2@@ , Number ) ; } else if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { if ( call_zseek64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) + Number L , Number L ) ) @@v12@@ = Number ; if ( ! @@v12@@ ) @@v12@@ = zip64local_putValue ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@a2@@ , Number ) ; if ( ! @@v12@@ ) @@v12@@ = zip64local_putValue ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v7@@ , Number ) ; } if ( call_zseek64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v6@@ , Number L ) ) @@v12@@ = Number ; } ++ * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return @@v12@@ ; }", "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": "unsigned __int64", "s": 8}, "location": "r64"}, {"n": "v13", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s2"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v12", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}