{"name": "LoadCentralDirectoryRecord", "code": "__int64 __fastcall LoadCentralDirectoryRecord ( __int64 @@a1@@ ) { __int64 result ; __int64 v2 ; __int64 @@v3@@ ; __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; unsigned __int64 @@v7@@ ; unsigned __int64 @@v8@@ ; __int64 @@v9@@ ; __int64 @@v10@@ ; unsigned __int64 @@v11@@ ; unsigned __int64 @@v12@@ ; unsigned __int64 @@v13@@ ; void * @@ptr@@ ; size_t @@size@@ ; unsigned __int64 @@v16@@ ; unsigned __int64 @@v17@@ ; unsigned __int64 @@v18@@ ; int @@v19@@ ; unsigned __int64 @@v20@@ ; unsigned int @@v21@@ ; @@v21@@ = Number ; @@v19@@ = Number ; @@v20@@ = zip64local_SearchCentralDir64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; if ( @@v20@@ ) @@v19@@ = Number ; else @@v20@@ = zip64local_SearchCentralDir ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; if ( @@v19@@ ) { if ( call_zseek64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v20@@ , Number L ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v11@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v3@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getShort ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v6@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getShort ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v5@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v10@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v9@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v8@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v7@@ ) ) @@v21@@ = Number ; if ( @@v7@@ != @@v8@@ || @@v9@@ || @@v10@@ ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v13@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v12@@ ) ) @@v21@@ = Number ; @@v4@@ = Number L ; } else { if ( call_zseek64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v20@@ , Number L ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getLong ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v11@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getShort ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v10@@ ) ) @@v21@@ = Number ; if ( ( unsigned int ) zip64local_getShort ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v9@@ ) ) @@v21@@ = Number ; @@v8@@ = Number L ; if ( ( unsigned int ) zip64local_getShort ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v11@@ ) ) @@v21@@ = Number ; else @@v8@@ = @@v11@@ ; @@v7@@ = Number L ; if ( ( unsigned int ) zip64local_getShort ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v11@@ ) ) @@v21@@ = Number ; else @@v7@@ = @@v11@@ ; if ( @@v7@@ != @@v8@@ || @@v9@@ || @@v10@@ ) @@v21@@ = Number ; @@v13@@ = Number L ; if ( ( unsigned int ) zip64local_getLong ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v11@@ ) ) @@v21@@ = Number ; else @@v13@@ = @@v11@@ ; @@v12@@ = Number L ; if ( ( unsigned int ) zip64local_getLong ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v11@@ ) ) @@v21@@ = Number ; else @@v12@@ = @@v11@@ ; if ( ( unsigned int ) zip64local_getShort ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , & @@v4@@ ) ) @@v21@@ = Number ; } if ( @@v20@@ < @@v12@@ + @@v13@@ && ! @@v21@@ ) @@v21@@ = Number ; if ( @@v21@@ ) { ( * ( void ( __fastcall * * ) ( _QWORD , _QWORD ) ) ( @@a1@@ + Number ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; result = Number ; } else { if ( @@v4@@ ) { * ( _QWORD * ) ( @@a1@@ + Number ) = malloc ( @@v4@@ + Number ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { @@v4@@ = ( * ( __int64 ( __fastcall * * ) ( _QWORD , _QWORD , _QWORD , __int64 ) ) ( @@a1@@ + Number ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v4@@ ) ; * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + @@v4@@ ) = Number ; } } @@v16@@ = @@v20@@ - ( @@v13@@ + @@v12@@ ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v16@@ ; @@v18@@ = @@v13@@ ; @@size@@ = Number L ; @@ptr@@ = malloc ( Number ) ; if ( call_zseek64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v16@@ + @@v12@@ , Number L ) ) @@v21@@ = Number ; while ( @@v18@@ && ! @@v21@@ ) { @@v17@@ = Number L ; if ( @@v18@@ < Number ) @@v17@@ = @@v18@@ ; v2 = ( * ( __int64 ( __fastcall * * ) ( _QWORD , _QWORD , void * , unsigned __int64 ) ) ( @@a1@@ + Number ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) , @@ptr@@ , @@v17@@ ) ; if ( @@v17@@ != v2 ) @@v21@@ = Number ; if ( ! @@v21@@ ) @@v21@@ = add_data_in_datablock ( ( _QWORD * ) ( @@a1@@ + Number ) , ( __int64 ) @@ptr@@ , @@v17@@ ) ; @@v18@@ -= @@v17@@ ; } if ( @@ptr@@ ) free ( @@ptr@@ ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v16@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v7@@ ; if ( call_zseek64 ( @@a1@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , @@v16@@ + @@v12@@ , Number L ) ) @@v21@@ = Number ; result = @@v21@@ ; } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s112"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s120"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s128"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s136"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s144"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s152"}, {"n": "v20", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v18", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s32"}, {"n": "v21", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v17", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s40"}, {"n": "v16", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s48"}, {"n": "size", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s56"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s64"}, {"n": "v13", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s72"}, {"n": "v12", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s80"}, {"n": "v11", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s88"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]}