{"name": "Insert_Extension_Map", "code": "__int64 __fastcall Insert_Extension_Map ( __int64 @@a1@@ , _WORD * @@a2@@ ) { unsigned __int16 v2 ; int * v4 ; char * v5 ; int * v6 ; char * v7 ; unsigned __int16 @@v8@@ ; int @@v9@@ ; int @@i@@ ; char * @@j@@ ; if ( @@a2@@ [ Number ] == Number ) v2 = Number ; else v2 = @@a2@@ [ Number ] ; @@v8@@ = v2 ; @@a2@@ [ Number ] = v2 ; if ( * ( _QWORD * ) ( @@a1@@ + Number L * v2 ) && * ( _WORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number L * v2 ) + Number L ) + Number L ) == @@a2@@ [ Number ] ) { for ( @@i@@ = Number ; * ( _WORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number L * v2 ) + Number L ) + Number L * @@i@@ + Number ) && * ( _WORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number L * v2 ) + Number L ) + Number L * @@i@@ + Number ) == @@a2@@ [ @@i@@ + Number ] ; ++ @@i@@ ) { ; } if ( ! * ( _WORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number L * v2 ) + Number L ) + Number L * @@i@@ + Number ) ) return Number L ; } for ( @@j@@ = * ( char * * ) ( @@a1@@ + Number ) ; @@j@@ ; @@j@@ = * ( char * * ) @@j@@ ) { @@v9@@ = Number ; if ( * ( _WORD * ) ( * ( ( _QWORD * ) @@j@@ + Number ) + Number L ) == @@a2@@ [ Number ] ) { while ( * ( _WORD * ) ( * ( ( _QWORD * ) @@j@@ + Number ) + Number L * @@v9@@ + Number ) && * ( _WORD * ) ( * ( ( _QWORD * ) @@j@@ + Number ) + Number L * @@v9@@ + Number ) == @@a2@@ [ @@v9@@ + Number ] ) ++ @@v9@@ ; if ( ! * ( _WORD * ) ( * ( ( _QWORD * ) @@j@@ + Number ) + Number L * @@v9@@ + Number ) ) break ; } } if ( ! @@j@@ ) { @@j@@ = ( char * ) malloc ( Number ) ; if ( ! @@j@@ ) { v4 = _errno_location ( ) ; v5 = strerror ( * v4 ) ; fprintf ( stderr , String , String , Number L , v5 ) ; exit ( Number ) ; } * ( ( _DWORD * ) @@j@@ + Number ) = Number ; * ( _QWORD * ) @@j@@ = Number L ; memset ( @@j@@ + Number , Number , Number ) ; * ( ( _QWORD * ) @@j@@ + Number ) = malloc ( ( unsigned __int16 ) @@a2@@ [ Number ] ) ; if ( ! * ( ( _QWORD * ) @@j@@ + Number ) ) { v6 = _errno_location ( ) ; v7 = strerror ( * v6 ) ; fprintf ( stderr , String , String , Number L , v7 ) ; exit ( Number ) ; } memcpy ( * ( ( void * * ) @@j@@ + Number ) , @@a2@@ , ( unsigned __int16 ) @@a2@@ [ Number ] ) ; * * ( _QWORD * * ) ( @@a1@@ + Number ) = @@j@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@j@@ ; FixExtensionMap ( @@a2@@ ) ; } if ( * ( _QWORD * ) ( @@a1@@ + Number L * @@v8@@ ) ) * ( _WORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number L * @@v8@@ ) + Number L ) + Number L ) = Number ; * ( _QWORD * ) ( @@a1@@ + Number L * @@v8@@ ) = @@j@@ ; * ( _WORD * ) ( * ( ( _QWORD * ) @@j@@ + Number ) + Number L ) = @@v8@@ ; if ( ( unsigned int ) @@v8@@ > * ( _DWORD * ) ( @@a1@@ + Number ) ) * ( _DWORD * ) ( @@a1@@ + Number ) = @@v8@@ ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_WORD"}, "location": "r64"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s18"}, {"n": "j", "t": {"T": 3, "t": "char"}, "location": "s8"}]}
{"name": "FixExtensionMap", "code": "int __fastcall FixExtensionMap ( unsigned __int16 * @@a1@@ ) { int @@result@@ ; unsigned int @@v2@@ ; int @@v3@@ ; int @@v4@@ ; int @@i@@ ; if ( ( @@a1@@ [ Number ] & Number ) != Number ) { printf ( String , @@a1@@ [ Number ] , @@a1@@ [ Number ] ) ; exit ( Number ) ; } if ( @@a1@@ [ Number ] <= Number ) { printf ( String , @@a1@@ [ Number ] , @@a1@@ [ Number ] ) ; exit ( Number ) ; } @@v3@@ = ( ( unsigned __int64 ) @@a1@@ [ Number ] - Number ) >> Number ; @@v4@@ = Number ; for ( @@i@@ = Number ; @@a1@@ [ @@i@@ + Number ] && @@i@@ <= @@v3@@ ; ++ @@i@@ ) { @@v2@@ = @@a1@@ [ @@i@@ + Number ] ; if ( @@v2@@ > Max_num_extensions ) printf ( String , @@a1@@ [ Number ] , @@a1@@ [ @@i@@ + Number ] , ( unsigned int ) Max_num_extensions ) ; @@v4@@ += * ( ( unsigned __int16 * ) & extension_descriptor + Number * ( int ) @@v2@@ + Number ) ; } if ( @@v4@@ != @@a1@@ [ Number ] ) @@a1@@ [ Number ] = @@v4@@ ; @@result@@ = @@i@@ ; if ( @@i@@ != @@v3@@ ) { @@result@@ = @@v3@@ - @@i@@ ; if ( @@v3@@ - @@i@@ != Number ) @@result@@ = printf ( String , @@a1@@ [ Number ] , ( unsigned int ) @@v3@@ , ( unsigned int ) @@i@@ ) ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "unsigned __int16"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}