{"name": "VerifyExtensionMap", "code": "__int64 __fastcall VerifyExtensionMap ( unsigned __int16 * @@a1@@ ) { __int64 @@result@@ ; unsigned int @@v2@@ ; unsigned int @@v3@@ ; unsigned int @@v4@@ ; unsigned int @@v5@@ ; unsigned int @@i@@ ; @@v5@@ = Number ; if ( ( @@a1@@ [ Number ] & Number ) != Number ) { printf ( String , @@a1@@ [ Number ] , @@a1@@ [ Number ] ) ; @@v5@@ = Number ; } if ( @@a1@@ [ Number ] > Number ) { @@v3@@ = ( ( unsigned __int64 ) @@a1@@ [ Number ] - Number ) >> Number ; @@v4@@ = Number ; for ( @@i@@ = Number ; @@a1@@ [ @@i@@ + Number ] && ( int ) @@i@@ <= ( int ) @@v3@@ ; ++ @@i@@ ) { @@v2@@ = @@a1@@ [ @@i@@ + Number ] ; if ( @@v2@@ > Max_num_extensions ) { printf ( String , @@a1@@ [ Number ] , @@a1@@ [ @@i@@ + Number ] , ( unsigned int ) Max_num_extensions ) ; @@v5@@ = Number ; } @@v4@@ += * ( ( unsigned __int16 * ) & extension_descriptor + Number * ( int ) @@v2@@ + Number ) ; } if ( @@v4@@ != @@a1@@ [ Number ] ) { printf ( String , @@a1@@ [ Number ] , @@v4@@ , @@a1@@ [ Number ] ) ; @@v5@@ = Number ; } if ( @@i@@ != @@v3@@ && @@v3@@ - @@i@@ != Number ) { printf ( String , @@a1@@ [ Number ] , @@v3@@ , @@i@@ ) ; @@v5@@ = Number ; } @@result@@ = @@v5@@ ; } else { printf ( String , @@a1@@ [ Number ] , @@a1@@ [ Number ] ) ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "unsigned __int16"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}
{"name": "DumpExMaps", "code": "__int64 __fastcall DumpExMaps ( const char * @@a1@@ ) { __int64 result ; const char * @@v2@@ ; int * v3 ; char * v4 ; int @@v5@@ ; __int64 @@v6@@ ; unsigned int @@i@@ ; __int64 @@v8@@ ; int @@v9@@ ; unsigned __int16 * @@v10@@ ; int @@v11@@ ; puts ( String ) ; puts ( String ) ; result = OpenFile ( @@a1@@ , Number L ) ; @@v6@@ = result ; if ( result ) { @@v11@@ = Number ; while ( Number ) { if ( @@v11@@ ) { CloseFile ( @@v6@@ ) ; return DisposeFile ( @@v6@@ ) ; } @@v5@@ = ReadBlock ( @@v6@@ ) ; if ( @@v5@@ >= Number ) { if ( @@v5@@ ) goto LABEL_13 ; @@v11@@ = Number ; } else if ( @@v5@@ >= Number ) { if ( @@v5@@ == Number ) { LogError ( String , @@a1@@ , @@v2@@ ) ; } else { v3 = _errno_location ( ) ; v4 = strerror ( * v3 ) ; LogError ( String , @@a1@@ , v4 ) ; } @@v11@@ = Number ; } else { LABEL_13 : @@v8@@ += @@v5@@ ; if ( * ( _WORD * ) ( * ( _QWORD * ) ( @@v6@@ + Number ) + Number L ) == Number ) { @@v10@@ = * ( unsigned __int16 * * ) ( @@v6@@ + Number ) ; for ( @@i@@ = Number ; * * ( _DWORD * * ) ( @@v6@@ + Number ) > @@i@@ ; ++ @@i@@ ) { if ( * @@v10@@ == Number ) { VerifyExtensionMap ( @@v10@@ ) ; PrintExtensionMap ( @@v10@@ ) ; } @@v10@@ = ( unsigned __int16 * ) ( ( char * ) @@v10@@ + @@v10@@ [ Number ] ) ; } } else { ++ @@v9@@ ; } } } } return result ; }", "source": [{"n": "v2", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "v10", "t": {"T": 3, "t": "unsigned __int16"}, "location": "s16"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}]}