{"name": "htmlFindEncoding", "code": "__int64 __fastcall htmlFindEncoding ( __int64 @@a1@@ ) { __int64 @@result@@ ; _BYTE * @@v2@@ ; __int64 v3 ; __int64 v4 ; __int64 v5 ; _BYTE * v6 ; if ( ! @@a1@@ || ! * ( _QWORD * ) ( @@a1@@ + Number ) || * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) || ! * * ( _QWORD * * ) ( @@a1@@ + Number ) || * ( _QWORD * ) ( * * ( _QWORD * * ) ( @@a1@@ + Number ) + Number L ) ) { return Number L ; } if ( ! * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) || ! * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) return Number L ; if ( * * ( _BYTE * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) return Number L ; v3 = xmlStrcasestr ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) , String ) ; if ( ! v3 ) return Number L ; v4 = xmlStrcasestr ( v3 , String ) ; if ( ! v4 ) return Number L ; v5 = xmlStrcasestr ( v4 , String ) ; if ( ! v5 ) return Number L ; v6 = ( _BYTE * ) ( v5 + Number ) ; @@v2@@ = v6 ; while ( * v6 > Number && * v6 <= Number || * v6 > Number && * v6 <= Number || * v6 > Number && * v6 <= Number || * v6 == Number || * v6 == Number || * v6 == Number || * v6 == Number ) ++ v6 ; if ( v6 == @@v2@@ ) @@result@@ = Number L ; else @@result@@ = xmlStrndup ( @@v2@@ , ( unsigned int ) ( ( _DWORD ) v6 - ( _DWORD ) @@v2@@ ) ) ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v2", "t": {"T": 3, "t": "_BYTE"}, "location": "s16"}]}
{"name": "htmlCurrentChar", "code": "__int64 __fastcall htmlCurrentChar ( __int64 @@a1@@ , _DWORD * @@a2@@ ) { __int64 result ; bool v3 ; bool v4 ; bool v5 ; char @@s@@ [ Number ] ; char @@v7@@ ; __int64 @@v8@@ ; __int64 @@v9@@ ; unsigned int @@v10@@ ; char * @@v11@@ ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) return Number L ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) { * @@a2@@ = Number ; return * ( unsigned int * ) ( @@a1@@ + Number ) ; } if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) { @@v11@@ = * ( char * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; @@v7@@ = * @@v11@@ ; if ( @@v7@@ >= Number ) { if ( * * ( _BYTE * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) || * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) >= * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) { * @@a2@@ = Number ; result = * * ( unsigned __int8 * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; } else { htmlParseErrInt ( ( _DWORD * ) @@a1@@ , Number , String , Number ) ; * @@a2@@ = Number ; result = Number L ; } return result ; } if ( ! @@v11@@ [ Number ] ) { xmlParserInputGrow ( * ( _QWORD * ) ( @@a1@@ + Number ) , Number L ) ; @@v11@@ = * ( char * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; } if ( ( @@v11@@ [ Number ] & Number ) == Number ) { if ( ( @@v7@@ & Number ) != Number ) { * @@a2@@ = Number ; @@v10@@ = @@v11@@ [ Number ] & Number | ( ( unsigned __int8 ) * @@v11@@ << Number ) & Number ; goto LABEL_22 ; } if ( ! @@v11@@ [ Number ] ) { xmlParserInputGrow ( * ( _QWORD * ) ( @@a1@@ + Number ) , Number L ) ; @@v11@@ = * ( char * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; } if ( ( @@v11@@ [ Number ] & Number ) == Number ) { if ( ( @@v7@@ & Number ) != Number ) { * @@a2@@ = Number ; @@v10@@ = @@v11@@ [ Number ] & Number | ( ( unsigned __int8 ) @@v11@@ [ Number ] << Number ) & Number | ( unsigned __int16 ) ( ( unsigned __int8 ) * @@v11@@ << Number ) ; goto LABEL_22 ; } if ( ! @@v11@@ [ Number ] ) { xmlParserInputGrow ( * ( _QWORD * ) ( @@a1@@ + Number ) , Number L ) ; @@v11@@ = * ( char * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; } if ( ( @@v7@@ & Number ) == Number && ( @@v11@@ [ Number ] & Number ) == Number ) { * @@a2@@ = Number ; @@v10@@ = @@v11@@ [ Number ] & Number | ( ( unsigned __int8 ) @@v11@@ [ Number ] << Number ) & Number | ( ( unsigned __int8 ) @@v11@@ [ Number ] << Number ) & Number | ( ( unsigned __int8 ) * @@v11@@ << Number ) & Number ; LABEL_22 : if ( @@v10@@ > Number ) { v5 = @@v10@@ > Number && ( @@v10@@ <= Number || @@v10@@ > Number ) && ( @@v10@@ <= Number || @@v10@@ > Number ) ; v4 = v5 ; } else { v3 = ( @@v10@@ <= Number || @@v10@@ > Number ) && @@v10@@ != Number && @@v10@@ <= Number ; v4 = v3 ; } if ( v4 ) htmlParseErrInt ( ( _DWORD * ) @@a1@@ , Number , String , @@v10@@ ) ; return @@v10@@ ; } } } if ( ( __int64 ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) - * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) <= Number ) snprintf ( @@s@@ , Number , String , * * ( unsigned __int8 * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ; else snprintf ( @@s@@ , Number , String , * * ( unsigned __int8 * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) , * ( unsigned __int8 * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) + Number L ) , * ( unsigned __int8 * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) + Number L ) , * ( unsigned __int8 * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) + Number L ) ) ; htmlParseErr ( ( _DWORD * ) @@a1@@ , Number , String , ( __int64 ) @@s@@ , Number L ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * @@a2@@ = Number ; return * * ( unsigned __int8 * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; } * @@a2@@ = Number ; if ( * * ( char * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) >= Number ) return * * ( unsigned __int8 * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; @@v9@@ = htmlFindEncoding ( @@a1@@ ) ; if ( @@v9@@ ) { if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) xmlFree ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ; * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = @@v9@@ ; @@v8@@ = xmlFindCharEncodingHandler ( @@v9@@ ) ; if ( @@v8@@ ) xmlSwitchToEncoding ( @@a1@@ , @@v8@@ ) ; else htmlParseErr ( ( _DWORD * ) @@a1@@ , Number , String , @@v9@@ , Number L ) ; } else { xmlSwitchEncoding ( @@a1@@ , Number L ) ; } * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return xmlCurrentChar ( @@a1@@ , @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "s", "t": {"T": 2, "n": 159, "s": 1, "t": "char"}, "location": "s192"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v7", "t": {"T": 1, "n": "char", "s": 1}, "location": "s33"}, {"n": "v11", "t": {"T": 3, "t": "char"}, "location": "s8"}]}