{"name": "unz64local_SearchCentralDir64", "code": "__int64 __fastcall unz64local_SearchCentralDir64 ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 v3 ; int v4 ; __int64 @@v5@@ ; __int64 @@v6@@ ; __int64 @@v7@@ ; unsigned __int64 @@v8@@ ; void * @@ptr@@ ; unsigned __int64 @@v10@@ ; int @@v11@@ ; __int64 @@v12@@ ; unsigned __int64 @@v13@@ ; unsigned __int64 @@v14@@ ; @@v13@@ = Number ; @@v12@@ = Number L ; if ( call_zseek64 ( @@a1@@ , @@a2@@ , Number L , Number L ) ) return Number L ; @@v10@@ = call_ztell64 ( @@a1@@ , @@a2@@ ) ; if ( @@v13@@ > @@v10@@ ) @@v13@@ = @@v10@@ ; @@ptr@@ = malloc ( Number ) ; if ( ! @@ptr@@ ) return Number L ; @@v14@@ = Number L ; do { if ( @@v14@@ >= @@v13@@ ) break ; if ( @@v13@@ >= @@v14@@ + Number ) @@v14@@ += Number L ; else @@v14@@ = @@v13@@ ; @@v8@@ = @@v10@@ - @@v14@@ ; v3 = @@v14@@ ; if ( @@v14@@ > Number ) v3 = Number L ; @@v7@@ = v3 ; if ( call_zseek64 ( @@a1@@ , @@a2@@ , @@v8@@ , Number L ) || @@v7@@ != ( * ( __int64 ( __fastcall * * ) ( _QWORD , __int64 , void * , __int64 ) ) ( @@a1@@ + Number ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) , @@a2@@ , @@ptr@@ , @@v7@@ ) ) { break ; } @@v11@@ = @@v7@@ - Number ; while ( Number ) { v4 = @@v11@@ -- ; if ( v4 <= Number ) break ; if ( * ( ( _BYTE * ) @@ptr@@ + @@v11@@ ) == Number && * ( ( _BYTE * ) @@ptr@@ + @@v11@@ + Number ) == Number && * ( ( _BYTE * ) @@ptr@@ + @@v11@@ + Number ) == Number && * ( ( _BYTE * ) @@ptr@@ + @@v11@@ + Number ) == Number ) { @@v12@@ = @@v11@@ + @@v8@@ ; break ; } } } while ( ! @@v12@@ ) ; free ( @@ptr@@ ) ; if ( ! @@v12@@ ) return Number L ; if ( call_zseek64 ( @@a1@@ , @@a2@@ , @@v12@@ , Number L ) ) return Number L ; if ( ( unsigned int ) unz64local_getLong ( @@a1@@ , @@a2@@ , & @@v6@@ ) ) return Number L ; if ( ( unsigned int ) unz64local_getLong ( @@a1@@ , @@a2@@ , & @@v6@@ ) ) return Number L ; if ( @@v6@@ ) return Number L ; if ( ( unsigned int ) unz64local_getLong64 ( @@a1@@ , @@a2@@ , & @@v5@@ ) ) return Number L ; if ( ( unsigned int ) unz64local_getLong ( @@a1@@ , @@a2@@ , & @@v6@@ ) ) return Number L ; if ( @@v6@@ != Number ) return Number L ; if ( call_zseek64 ( @@a1@@ , @@a2@@ , @@v5@@ , Number L ) ) return Number L ; if ( ( unsigned int ) unz64local_getLong ( @@a1@@ , @@a2@@ , & @@v6@@ ) ) return Number L ; if ( @@v6@@ == Number ) return @@v5@@ ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v13", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s40"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s48"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v14", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s80"}]}
{"name": "unz64local_getLong", "code": "__int64 __fastcall unz64local_getLong ( __int64 @@a1@@ , __int64 @@a2@@ , _QWORD * @@a3@@ ) { int @@v5@@ ; __int64 @@v6@@ ; unsigned int @@v7@@ ; @@v5@@ = Number ; @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ = @@v5@@ ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ += ( __int64 ) @@v5@@ << Number ; if ( @@v7@@ ) * @@a3@@ = Number L ; else * @@a3@@ = @@v6@@ ; return @@v7@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "_QWORD"}, "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": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]} {"name": "unz64local_getLong64", "code": "__int64 __fastcall unz64local_getLong64 ( __int64 @@a1@@ , __int64 @@a2@@ , _QWORD * @@a3@@ ) { int @@v5@@ ; __int64 @@v6@@ ; unsigned int @@v7@@ ; @@v5@@ = Number ; @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ = @@v5@@ ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( ! @@v7@@ ) @@v7@@ = unz64local_getByte ( @@a1@@ , @@a2@@ , & @@v5@@ ) ; @@v6@@ |= ( __int64 ) @@v5@@ << Number ; if ( @@v7@@ ) * @@a3@@ = Number L ; else * @@a3@@ = @@v6@@ ; return @@v7@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "_QWORD"}, "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": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]} {"name": "unz64local_SearchCentralDir", "code": "unsigned __int64 __fastcall unz64local_SearchCentralDir ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 v3 ; int v4 ; __int64 @@v5@@ ; unsigned __int64 @@v6@@ ; _BYTE * @@ptr@@ ; unsigned __int64 @@v8@@ ; int @@v9@@ ; unsigned __int64 @@v10@@ ; unsigned __int64 @@v11@@ ; unsigned __int64 @@v12@@ ; @@v11@@ = Number ; @@v10@@ = Number L ; if ( call_zseek64 ( @@a1@@ , @@a2@@ , Number L , Number L ) ) return Number L ; @@v8@@ = call_ztell64 ( @@a1@@ , @@a2@@ ) ; if ( @@v8@@ < Number ) @@v11@@ = @@v8@@ ; @@ptr@@ = malloc ( Number ) ; if ( ! @@ptr@@ ) return Number L ; @@v12@@ = Number L ; do { if ( @@v12@@ >= @@v11@@ ) break ; if ( @@v11@@ >= @@v12@@ + Number ) @@v12@@ += Number L ; else @@v12@@ = @@v11@@ ; @@v6@@ = @@v8@@ - @@v12@@ ; v3 = @@v12@@ ; if ( @@v12@@ > Number ) v3 = Number L ; @@v5@@ = v3 ; if ( call_zseek64 ( @@a1@@ , @@a2@@ , @@v6@@ , Number L ) || @@v5@@ != ( * ( __int64 ( __fastcall * * ) ( _QWORD , __int64 , _BYTE * , __int64 ) ) ( @@a1@@ + Number ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) , @@a2@@ , @@ptr@@ , @@v5@@ ) ) { break ; } @@v9@@ = @@v5@@ - Number ; while ( Number ) { v4 = @@v9@@ -- ; if ( v4 <= Number ) break ; if ( @@ptr@@ [ @@v9@@ ] == Number && @@ptr@@ [ @@v9@@ + Number ] == Number && @@ptr@@ [ @@v9@@ + Number ] == Number && @@ptr@@ [ @@v9@@ + Number ] == Number ) { @@v10@@ = @@v9@@ + @@v6@@ ; break ; } } } while ( ! @@v10@@ ) ; free ( @@ptr@@ ) ; return @@v10@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v11", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s40"}, {"n": "ptr", "t": {"T": 3, "t": "_BYTE"}, "location": "s48"}, {"n": "v6", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v12", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "unzOpenInternal", "code": "__int64 * __fastcall unzOpenInternal ( __int64 @@a1@@ , __int64 * @@a2@@ , int @@a3@@ ) { __int64 v3 ; __int64 v4 ; __int64 v5 ; __int64 v6 ; __int64 v7 ; __int64 * @@result@@ ; __int64 @@v10@@ ; __int64 @@v11@@ ; __int64 @@v12@@ ; __int64 @@v13@@ ; __int64 @@v14@@ ; __int64 @@v15@@ ; __int64 @@v16@@ [ Number ] ; __int64 @@v17@@ ; __int64 * @@v18@@ ; int @@v19@@ ; unsigned __int64 @@v20@@ ; @@v19@@ = Number ; @@v16@@ [ Number ] = Number L ; @@v16@@ [ Number ] = Number L ; if ( @@a2@@ ) { v3 = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = * @@a2@@ ; @@v16@@ [ Number ] = v3 ; v4 = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = v4 ; v5 = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = v5 ; v6 = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = v6 ; v7 = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = @@a2@@ [ Number ] ; @@v16@@ [ Number ] = v7 ; @@v16@@ [ Number ] = @@a2@@ [ Number ] ; } else { fill_fopen64_filefunc ( @@v16@@ ) ; } LODWORD ( @@v16@@ [ Number ] ) = @@a3@@ ; @@v16@@ [ Number ] = call_zopen64 ( @@v16@@ , @@a1@@ , Number L ) ; if ( ! @@v16@@ [ Number ] ) return Number L ; @@v20@@ = unz64local_SearchCentralDir64 ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] ) ; if ( @@v20@@ ) { HIDWORD ( @@v16@@ [ Number ] ) = Number ; if ( call_zseek64 ( @@v16@@ , @@v16@@ [ Number ] , @@v20@@ , Number L ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v15@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong64 ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v10@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getShort ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v11@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getShort ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v11@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v14@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v13@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong64 ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v16@@ [ Number ] ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong64 ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v12@@ ) ) @@v19@@ = Number ; if ( @@v16@@ [ Number ] != @@v12@@ || @@v13@@ || @@v14@@ ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong64 ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v16@@ [ Number ] ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong64 ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v16@@ [ Number ] ) ) @@v19@@ = Number ; @@v16@@ [ Number ] = Number L ; } else { @@v20@@ = unz64local_SearchCentralDir ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] ) ; if ( ! @@v20@@ ) @@v19@@ = Number ; HIDWORD ( @@v16@@ [ Number ] ) = Number ; if ( call_zseek64 ( @@v16@@ , @@v16@@ [ Number ] , @@v20@@ , Number L ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v15@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getShort ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v14@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getShort ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v13@@ ) ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getShort ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v15@@ ) ) @@v19@@ = Number ; @@v16@@ [ Number ] = @@v15@@ ; if ( ( unsigned int ) unz64local_getShort ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v15@@ ) ) @@v19@@ = Number ; @@v12@@ = @@v15@@ ; if ( @@v16@@ [ Number ] != @@v15@@ || @@v13@@ || @@v14@@ ) @@v19@@ = Number ; if ( ( unsigned int ) unz64local_getLong ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v15@@ ) ) @@v19@@ = Number ; @@v16@@ [ Number ] = @@v15@@ ; if ( ( unsigned int ) unz64local_getLong ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v15@@ ) ) @@v19@@ = Number ; @@v16@@ [ Number ] = @@v15@@ ; if ( ( unsigned int ) unz64local_getShort ( ( __int64 ) @@v16@@ , @@v16@@ [ Number ] , & @@v16@@ [ Number ] ) ) @@v19@@ = Number ; } if ( @@v20@@ < @@v16@@ [ Number ] + @@v16@@ [ Number ] && ! @@v19@@ ) @@v19@@ = Number ; if ( @@v19@@ ) { ( ( void ( __fastcall * ) ( __int64 , __int64 ) ) @@v16@@ [ Number ] ) ( @@v16@@ [ Number ] , @@v16@@ [ Number ] ) ; @@result@@ = Number L ; } else { @@v16@@ [ Number ] = @@v20@@ - ( @@v16@@ [ Number ] + @@v16@@ [ Number ] ) ; @@v16@@ [ Number ] = @@v20@@ ; @@v16@@ [ Number ] = Number L ; LODWORD ( @@v16@@ [ Number ] ) = Number ; @@v18@@ = ( __int64 * ) malloc ( Number ) ; if ( @@v18@@ ) { qmemcpy ( @@v18@@ , @@v16@@ , Number ) ; unzGoToFirstFile ( @@v18@@ , & @@v17@@ , Number L ) ; } @@result@@ = @@v18@@ ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "__int64"}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "__int64"}, "location": "r8"}, {"n": "v20", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v16", "t": {"T": 2, "n": 42, "s": 8, "t": "__int64"}, "location": "s384"}, {"n": "v15", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s392"}, {"n": "v18", "t": {"T": 3, "t": "__int64"}, "location": "s40"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s400"}, {"n": "v13", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s408"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s416"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s424"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s432"}, {"n": "v17", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}]}