{"name": "htmlReadIO", "code": "__int64 __fastcall htmlReadIO ( __int64 @@a1@@ , void ( __fastcall * @@a2@@ ) ( __int64 ) , __int64 @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , unsigned int @@a6@@ ) { __int64 @@result@@ ; __int64 @@v11@@ ; _QWORD * @@v12@@ ; __int64 @@v13@@ ; if ( ! @@a1@@ ) return Number L ; xmlInitParser ( ) ; @@v13@@ = xmlParserInputBufferCreateIO ( @@a1@@ , @@a2@@ , @@a3@@ , Number L ) ; if ( @@v13@@ ) { @@v12@@ = htmlNewParserCtxt ( ) ; if ( @@v12@@ ) { @@v11@@ = xmlNewIOInputStream ( @@v12@@ , @@v13@@ , Number L ) ; if ( @@v11@@ ) { inputPush ( @@v12@@ , @@v11@@ ) ; @@result@@ = htmlDoRead ( ( __int64 ) @@v12@@ , @@a4@@ , @@a5@@ , @@a6@@ , Number ) ; } else { xmlFreeParserInputBuffer ( @@v13@@ ) ; xmlFreeParserCtxt ( @@v12@@ ) ; @@result@@ = Number L ; } } else { xmlFreeParserInputBuffer ( @@v13@@ ) ; @@result@@ = Number L ; } } else { if ( @@a2@@ ) @@a2@@ ( @@a3@@ ) ; @@result@@ = Number L ; } return @@result@@ ; }", "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": 9, "n": "void (__fastcall *)(__int64)"}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "a6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r80"}, {"n": "v12", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v13", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "htmlDoRead", "code": "__int64 __fastcall htmlDoRead ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , unsigned int @@a4@@ , int @@a5@@ ) { __int64 v5 ; __int64 v6 ; __int64 @@v10@@ ; __int64 @@v11@@ ; htmlCtxtUseOptions ( ( _DWORD * ) @@a1@@ , @@a4@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; if ( @@a3@@ ) { @@v11@@ = xmlFindCharEncodingHandler ( @@a3@@ ) ; if ( @@v11@@ ) { xmlSwitchToEncoding ( @@a1@@ , @@v11@@ ) ; if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) xmlFree ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ; v5 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( v5 + Number ) = xmlStrdup ( @@a3@@ ) ; } } if ( @@a2@@ && * ( _QWORD * ) ( @@a1@@ + Number ) && ! * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) { v6 = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( v6 + Number ) = xmlStrdup ( @@a2@@ ) ; } htmlParseDocument ( @@a1@@ ) ; @@v10@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; if ( ! @@a5@@ ) { if ( * ( _DWORD * ) ( @@a1@@ + Number ) && @@v10@@ && * ( _QWORD * ) ( @@v10@@ + Number ) == * ( _QWORD * ) ( @@a1@@ + Number ) ) * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; xmlFreeParserCtxt ( @@a1@@ ) ; } return @@v10@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}]}