{"name": "htmlCreateFileParserCtxt", "code": "_QWORD * __fastcall htmlCreateFileParserCtxt ( __int64 @@a1@@ , const char * @@a2@@ ) { __int64 v3 ; __int64 ( __fastcall * @@v4@@ ) ( size_t ) ; int v5 ; char * @@dest@@ ; size_t @@v7@@ ; __int64 @@v8@@ ; __int64 @@v9@@ ; _QWORD * @@v10@@ ; if ( ! @@a1@@ ) return Number L ; @@v10@@ = htmlNewParserCtxt ( ) ; if ( ! @@v10@@ ) return Number L ; @@v9@@ = xmlCanonicPath ( @@a1@@ ) ; if ( ! @@v9@@ ) { if ( * ( _QWORD * ) ( _xmlDefaultSAXHandler ( ) + Number ) ) { v3 = _xmlDefaultSAXHandler ( ) ; ( * ( void ( __fastcall * * ) ( _QWORD , const char * ) ) ( v3 + Number ) ) ( Number L , String ) ; } goto LABEL_10 ; } @@v8@@ = xmlLoadExternalEntity ( @@v9@@ , Number L , @@v10@@ ) ; xmlFree ( @@v9@@ ) ; if ( ! @@v8@@ ) { LABEL_10 : xmlFreeParserCtxt ( @@v10@@ ) ; return Number L ; } inputPush ( @@v10@@ , @@v8@@ ) ; if ( @@a2@@ ) { @@v7@@ = strlen ( @@a2@@ ) ; if ( @@v7@@ <= Number ) { @@v4@@ = xmlMallocAtomic ; v5 = xmlStrlen ( String ) ; @@dest@@ = ( char * ) @@v4@@ ( v5 + @@v7@@ + Number ) ; if ( @@dest@@ ) { strcpy ( @@dest@@ , String ) ; strcat ( @@dest@@ , @@a2@@ ) ; htmlCheckEncoding ( ( __int64 ) @@v10@@ , ( __int64 ) @@dest@@ ) ; xmlFree ( @@dest@@ ) ; } } } return @@v10@@ ; }", "source": [{"n": "v4", "t": {"T": 9, "n": "__int64 (__fastcall *)(size_t)"}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "v10", "t": {"T": 3, "t": "_QWORD"}, "location": "s32"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v7", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s56"}, {"n": "dest", "t": {"T": 3, "t": "char"}, "location": "s64"}]}
{"name": "htmlCheckEncoding", "code": "void __fastcall htmlCheckEncoding ( __int64 @@a1@@ , __int64 @@a2@@ ) { _BYTE * @@v2@@ ; if ( @@a2@@ ) { @@v2@@ = ( _BYTE * ) xmlStrcasestr ( @@a2@@ , String ) ; if ( @@v2@@ ) @@v2@@ += Number ; if ( @@v2@@ && ( * @@v2@@ == Number || * @@v2@@ > Number && * @@v2@@ <= Number || * @@v2@@ == Number ) ) @@v2@@ = ( _BYTE * ) xmlStrcasestr ( @@a2@@ , String ) ; if ( @@v2@@ ) { if ( * @@v2@@ == Number ) htmlCheckEncodingDirect ( @@a1@@ , @@v2@@ + Number ) ; } } }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v2", "t": {"T": 3, "t": "_BYTE"}, "location": "s8"}]} {"name": "htmlNewParserCtxt", "code": "_QWORD * htmlNewParserCtxt ( ) { _QWORD * @@result@@ ; _QWORD * @@s@@ ; @@s@@ = ( _QWORD * ) xmlMalloc ( Number L ) ; if ( @@s@@ ) { memset ( @@s@@ , Number , Number ) ; if ( ( int ) htmlInitParserCtxt ( @@s@@ ) >= Number ) { @@result@@ = @@s@@ ; } else { htmlFreeParserCtxt ( ( __int64 ) @@s@@ ) ; @@result@@ = Number L ; } } else { htmlErrMemory ( Number L , String ) ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "result", "t": {"T": 3, "t": "_QWORD"}, "location": "r8"}, {"n": "s", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "htmlSAXParseFile", "code": "__int64 __fastcall htmlSAXParseFile ( __int64 @@a1@@ , const char * @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ ) { __int64 @@v7@@ ; __int64 * @@v8@@ ; __int64 @@v9@@ ; @@v9@@ = Number L ; xmlInitParser ( ) ; @@v8@@ = htmlCreateFileParserCtxt ( @@a1@@ , @@a2@@ ) ; if ( ! @@v8@@ ) return Number L ; if ( @@a3@@ ) { @@v9@@ = * @@v8@@ ; * @@v8@@ = @@a3@@ ; @@v8@@ [ Number ] = @@a4@@ ; } htmlParseDocument ( ( __int64 ) @@v8@@ ) ; @@v7@@ = @@v8@@ [ Number ] ; if ( @@a3@@ ) { * @@v8@@ = @@v9@@ ; @@v8@@ [ Number ] = Number L ; } htmlFreeParserCtxt ( ( __int64 ) @@v8@@ ) ; return @@v7@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "v8", "t": {"T": 3, "t": "__int64"}, "location": "s16"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "htmlReadFile", "code": "__int64 __fastcall htmlReadFile ( __int64 @@a1@@ , const char * @@a2@@ , unsigned int @@a3@@ ) { __int64 @@result@@ ; _QWORD * @@v5@@ ; xmlInitParser ( ) ; @@v5@@ = htmlCreateFileParserCtxt ( @@a1@@ , @@a2@@ ) ; if ( @@v5@@ ) @@result@@ = htmlDoRead ( ( __int64 ) @@v5@@ , Number L , Number L , @@a3@@ , Number ) ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v5", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]}