{"name": "zip64local_SearchCentralDir64", "code": "__int64 __fastcall zip64local_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 ) zip64local_getLong ( @@a1@@ , @@a2@@ , & @@v6@@ ) ) return Number L ; if ( ( unsigned int ) zip64local_getLong ( @@a1@@ , @@a2@@ , & @@v6@@ ) ) return Number L ; if ( @@v6@@ ) return Number L ; if ( ( unsigned int ) zip64local_getLong64 ( @@a1@@ , @@a2@@ , & @@v5@@ ) ) return Number L ; if ( ( unsigned int ) zip64local_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 ) zip64local_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"}]}