{"name": "zipRemoveExtraInfoBlock", "code": "__int64 __fastcall zipRemoveExtraInfoBlock ( _WORD * @@a1@@ , int * @@a2@@ , __int16 @@a3@@ ) { __int16 @@v5@@ ; void * @@ptr@@ ; unsigned int @@v7@@ ; int @@v8@@ ; _WORD * @@src@@ ; @@src@@ = @@a1@@ ; @@v8@@ = Number ; if ( ! @@a1@@ || * @@a2@@ <= Number ) return Number L ; @@ptr@@ = malloc ( * @@a2@@ ) ; while ( @@src@@ < ( _WORD * ) ( ( char * ) @@a1@@ + * @@a2@@ ) ) { @@v5@@ = @@src@@ [ Number ] ; if ( * @@src@@ == @@a3@@ ) { @@src@@ = ( _WORD * ) ( ( char * ) @@src@@ + @@v5@@ + Number ) ; } else { memcpy ( @@ptr@@ , @@src@@ , @@v5@@ + Number ) ; @@src@@ = ( _WORD * ) ( ( char * ) @@src@@ + @@v5@@ + Number ) ; @@v8@@ += @@v5@@ + Number ; } } if ( @@v8@@ >= * @@a2@@ ) { @@v7@@ = Number ; } else { memset ( @@a1@@ , Number , * @@a2@@ ) ; if ( @@v8@@ > Number ) memcpy ( @@a1@@ , @@ptr@@ , @@v8@@ ) ; * @@a2@@ = @@v8@@ ; @@v7@@ = Number ; } if ( @@ptr@@ ) free ( @@ptr@@ ) ; return @@v7@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_WORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "int"}, "location": "r64"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s24"}, {"n": "v5", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s36"}, {"n": "src", "t": {"T": 3, "t": "_WORD"}, "location": "s8"}]}