Function at 0x403150
Capabilities:
Read file on windows
Terminate process

Disassembly:
mov eax, 0x1408
call fcn.00406230
mov eax, dword [0x41769c]
push ebx
push ebp
mov ebp, dword [esp + 0x1414]
push esi
xor ebx, ebx
test eax, eax
push edi
mov edi, ecx
mov dword [esp + 0x10], ebx
je 0x40318a
mov eax, dword [0x41766c]
test eax, eax
jne 0x40318a
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
test ebp, ebp
mov eax, dword [sym.imp.msvcrt.dll_fopen]
jne 0x4031db
mov eax, dword [0x4176a0]
test eax, eax
je 0x40355b
push 0x407c38
call sub.libxml2.dll_xmlNewDoc
push 0
push str.info
mov ebx, eax
push 0
push ebx
mov dword [esp + 0x24], ebx
call sub.libxml2.dll_xmlNewDocNode
mov esi, eax
push 0x407c2c
push esi
call sub.libxml2.dll_xmlNodeSetContent
push esi
push ebx
call sub.libxml2.dll_xmlDocSetRootElement
add esp, 0x24
jmp 0x403557
mov ecx, dword [0x417674]
test ecx, ecx
mov ecx, dword [0x417680]
je 0x4032d2
test ecx, ecx
je 0x4032be
push 0x407c28
push ebp
call eax
mov esi, eax
add esp, 8
test esi, esi
je 0x40355b
mov ebp, dword [sym.imp.msvcrt.dll_fread]
push esi
push 4
lea eax, [esp + 0x420]
push 1
push eax
call ebp
add esp, 0x10
test eax, eax
jle 0x4032af
mov ecx, dword [esp + 0x141c]
push 0
push ecx
push eax
lea edx, [esp + 0x424]
push edx
push 0
push 0
call sub.libxml2.dll_htmlCreatePushParserCtxt
push esi
push 0x1000
mov edi, eax
lea eax, [esp + 0x438]
push 1
push eax
call ebp
add esp, 0x28
test eax, eax
jle 0x40328d
push 0
push eax
lea ecx, [esp + 0x420]
push ecx
push edi
call sub.libxml2.dll_htmlParseChunk
push esi
push 0x1000
lea edx, [esp + 0x430]
push 1
push edx
call ebp
add esp, 0x20
test eax, eax
jg 0x403263
push 1
push 0
lea eax, [esp + 0x420]
push eax
push edi
call sub.libxml2.dll_htmlParseChunk
mov ebx, dword [edi + 8]
push edi
mov dword [esp + 0x24], ebx
call sub.libxml2.dll_htmlFreeParserCtxt
add esp, 0x14
push esi
call dword [sym.imp.msvcrt.dll_fclose]
add esp, 4
jmp 0x403557
mov ecx, dword [section..data]
push ecx
push 0
push ebp
call sub.libxml2.dll_htmlReadFile
jmp 0x40354e
test ecx, ecx
je 0x4033cc
cmp byte [ebp], 0x2d
jne 0x4032ef
mov cl, byte [ebp + 1]
test cl, cl
jne 0x4032ef
mov edi, dword [sym.imp.msvcrt.dll__iob]
jmp 0x4032fc
push 0x407c28
push ebp
call eax
add esp, 8
mov edi, eax
test edi, edi
je 0x40355b
mov ebp, dword [sym.imp.msvcrt.dll_fread]
push edi
push 4
lea edx, [esp + 0x20]
push 1
push edx
call ebp
add esp, 0x10
test eax, eax
jle 0x40355b
mov ecx, dword [esp + 0x141c]
push ecx
push eax
lea edx, [esp + 0x20]
push edx
push 0
push 0
call sub.libxml2.dll_xmlCreatePushParserCtxt
mov esi, eax
mov eax, dword [section..data]
push eax
push esi
call sub.libxml2.dll_xmlCtxtUseOptions
push edi
push 0x400
lea ecx, [esp + 0x3c]
push 1
push ecx
call ebp
add esp, 0x2c
test eax, eax
jle 0x403384
lea esp, [esp]
push 0
push eax
lea edx, [esp + 0x20]
push edx
push esi
call sub.libxml2.dll_xmlParseChunk
push edi
push 0x400
lea eax, [esp + 0x30]
push 1
push eax
call ebp
add esp, 0x20
test eax, eax
jg 0x403360
push 1
push 0
lea ecx, [esp + 0x20]
push ecx
push esi
call sub.libxml2.dll_xmlParseChunk
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
push esi
mov dword [esp + 0x24], ebx
call sub.libxml2.dll_xmlFreeParserCtxt
add esp, 0x14
test edi, edi
jne 0x403557
push ebx
call sub.libxml2.dll_xmlFreeDoc
add esp, 4
pop edi
pop esi
pop ebp
mov dword [0x417698], 1
pop ebx
add esp, 0x1408
ret
mov ecx, dword [0x417684]
test ecx, ecx
je 0x40345c
cmp byte [ebp], 0x2d
jne 0x403401
mov cl, byte [ebp + 1]
test cl, cl
jne 0x403401
mov edx, dword [section..data]
push edx
push 0
push 0
push 0
call sub.libxml2.dll_xmlReadFd
add esp, 0x10
jmp 0x403551
push 0x407c28
push ebp
call eax
add esp, 8
test eax, eax
je 0x40355b
test edi, edi
jne 0x403439
mov ecx, dword [section..data]
push ecx
push edi
push ebp
push eax
push 0x401c20
push 0x401c00
call sub.libxml2.dll_xmlReadIO
add esp, 0x18
jmp 0x403551
mov edx, dword [section..data]
push edx
push 0
push ebp
push eax
push 0x401c20
push 0x401c00
push edi
call sub.libxml2.dll_xmlCtxtReadIO
add esp, 0x1c
jmp 0x403551
mov eax, dword [0x41767c]
test eax, eax
je 0x4034cb
test edi, edi
jne 0x403472
call sub.libxml2.dll_xmlNewParserCtxt
mov esi, eax
jmp 0x403474
mov esi, edi
test esi, esi
je 0x40355b
mov edx, dword [section..data]
mov eax, dword [esi]
push edx
mov dword [eax + 0x58], 0x4016e0
mov ecx, dword [esi]
push 0
mov dword [ecx + 0x54], 0x401800
push ebp
push esi
mov dword [esi + 0x70], 0x401920
mov dword [esi + 0x74], 0x401a40
call sub.libxml2.dll_xmlCtxtReadFile
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
test edi, edi
jne 0x403557
push esi
call sub.libxml2.dll_xmlFreeParserCtxt
add esp, 4
jmp 0x403557
mov eax, dword [0x417644]
test eax, eax
je 0x403512
test edi, edi
jne 0x4034e1
call sub.libxml2.dll_xmlNewParserCtxt
mov esi, eax
jmp 0x4034e3
mov esi, edi
test esi, esi
je 0x40355b
mov eax, dword [section..data]
push eax
push 0
push ebp
push esi
call sub.libxml2.dll_xmlCtxtReadFile
mov ebx, eax
mov eax, dword [esi + 0x64]
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], ebx
jne 0x4034b5
mov dword [0x417698], 4
jmp 0x4034b5
test edi, edi
je 0x40352b
mov ecx, dword [section..data]
push ecx
push 0
push ebp
push edi
call sub.libxml2.dll_xmlCtxtReadFile
add esp, 0x10
jmp 0x403551
mov eax, dword [0x4176c8]
test eax, eax
je 0x40353f
push ebp
call sub.libxml2.dll_xmlParseFile
add esp, 4
jmp 0x403551
mov edx, dword [section..data]
push edx
push 0
push ebp
call sub.libxml2.dll_xmlReadFile
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x403570
pop edi
pop esi
pop ebp
mov dword [0x417698], 1
pop ebx
add esp, 0x1408
ret
mov eax, dword [0x41769c]
test eax, eax
je 0x40358f
mov eax, dword [0x41766c]
test eax, eax
jne 0x40358f
push str.Parsing
call fcn.004013c0
add esp, 4
mov eax, dword [0x4176a4]
test eax, eax
je 0x4035b6
push ebx
call sub.libxml2.dll_xmlGetIntSubset
mov esi, eax
add esp, 4
test esi, esi
je 0x4035b6
push esi
call sub.libxml2.dll_xmlUnlinkNode
push esi
call sub.libxml2.dll_xmlFreeDtd
add esp, 8
mov eax, dword [0x41768c]
test eax, eax
je 0x403618
mov eax, dword [0x41769c]
test eax, eax
je 0x4035dc
mov eax, dword [0x41766c]
test eax, eax
jne 0x4035dc
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
mov eax, dword [section..data]
push eax
push ebx
call sub.libxml2.dll_xmlXIncludeProcessFlags
add esp, 8
test eax, eax
jge 0x4035f9
mov dword [0x417698], 1
mov eax, dword [0x41769c]
test eax, eax
je 0x403618
mov eax, dword [0x41766c]
test eax, eax
jne 0x403618
push str.Xinclude_processing
call fcn.004013c0
add esp, 4
mov eax, dword [0x41760c]
test eax, eax
je 0x403647
push ebx
call sub.libxml2.dll_xmlXPathOrderDocElems
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [esp + 0x1420]
add ecx, 0x20
push ecx
push 0x401b60
push edx
push ebx
call sub.libxml2.dll_xmlShell
add esp, 0x14
mov eax, dword [0x41761c]
test eax, eax
je 0x4036be
mov eax, dword [0x41769c]
test eax, eax
mov esi, ebx
je 0x403666
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
push 1
push ebx
call sub.libxml2.dll_xmlCopyDoc
mov dword [esp + 0x18], eax
mov eax, dword [0x41769c]
add esp, 8
test eax, eax
je 0x40369f
push str.Copying
call fcn.004013c0
mov eax, dword [0x41769c]
add esp, 4
test eax, eax
je 0x40369f
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
push esi
call sub.libxml2.dll_xmlFreeDoc
mov eax, dword [0x41769c]
add esp, 4
test eax, eax
je 0x4036be
push str.Freeing_original
call fcn.004013c0
add esp, 4
mov eax, dword [0x417670]
test eax, eax
mov ebx, dword [sym.imp.msvcrt.dll_fprintf]
je 0x403790
mov eax, dword [0x417674]
test eax, eax
jne 0x403790
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4037a4
lea ecx, [ecx]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x403703
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4036f0
jmp 0x4037a4
mov edx, dword [eax + 0x10]
push 0x100
lea ecx, [esp + 0x1c]
push ecx
push 0
push edx
call sub.libxml2.dll_xmlValidGetValidElements
mov edi, eax
add esp, 0x10
test edi, edi
jge 0x403736
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.could_not_get_valid_list_of_elements_n
push eax
call ebx
add esp, 8
jmp 0x4037a4
jne 0x40374e
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
push str.No_element_can_be_inserted_under_root_n
push ecx
call ebx
add esp, 8
jmp 0x4037a4
mov edx, dword [sym.imp.msvcrt.dll__iob]
push edi
add edx, 0x40
push str._d_element_types_can_be_inserted_under_root:_n
push edx
call ebx
add esp, 0xc
xor esi, esi
test edi, edi
jle 0x4037a4
lea esp, [esp]
mov eax, dword [esp + esi*4 + 0x18]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push eax
add ecx, 0x40
push 0x407b74
push ecx
call ebx
add esp, 0xc
inc esi
cmp esi, edi
jl 0x403770
jmp 0x4037a4
mov eax, dword [0x4176bc]
test eax, eax
mov ebp, dword [esp + 0x10]
je 0x4037a4
mov eax, ebp
call fcn.00402f80
mov eax, dword [0x41762c]
xor edi, edi
cmp eax, edi
jne 0x403c60
cmp dword [0x417614], edi
jne 0x403bf4
cmp dword [0x41769c], edi
je 0x4037da
cmp dword [0x41766c], edi
jne 0x4037da
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
cmp dword [0x417674], edi
je 0x403923
cmp dword [0x417678], edi
jne 0x403923
cmp dword [0x41763c], edi
je 0x403817
mov eax, dword [0x417638]
cmp eax, edi
jne 0x403808
mov eax, 0x407b70
push ebp
push eax
call sub.libxml2.dll_htmlSaveFile
add esp, 8
jmp 0x4038f9
mov ecx, dword [0x417688]
cmp ecx, edi
mov eax, dword [0x417634]
je 0x403864
cmp eax, edi
mov eax, dword [0x417638]
je 0x40384a
cmp eax, edi
jne 0x403838
mov eax, 0x407b70
push 1
push ecx
push ebp
push eax
call sub.libxml2.dll_htmlSaveFileFormat
add esp, 0x10
jmp 0x4038f9
cmp eax, edi
jne 0x403853
mov eax, 0x407b70
push edi
push ecx
push ebp
push eax
call sub.libxml2.dll_htmlSaveFileFormat
add esp, 0x10
jmp 0x4038f9
cmp eax, edi
mov eax, dword [0x417638]
je 0x403885
cmp eax, edi
jne 0x403876
mov eax, 0x407b70
push 1
push edi
push ebp
push eax
call sub.libxml2.dll_htmlSaveFileFormat
add esp, 0x10
jmp 0x4038f9
cmp eax, edi
jne 0x403894
mov esi, dword [sym.imp.msvcrt.dll__iob]
add esi, 0x20
jmp 0x4038aa
push 0x407b6c
push eax
call dword [sym.imp.msvcrt.dll_fopen]
mov esi, eax
mov eax, dword [0x417638]
add esp, 8
cmp esi, edi
je 0x4038da
push ebp
push esi
call sub.libxml2.dll_htmlDocDump
add esp, 8
test eax, eax
jge 0x4038c6
mov dword [0x417698], 6
cmp dword [0x417638], edi
je 0x4038f9
push esi
call dword [sym.imp.msvcrt.dll_fclose]
add esp, 4
jmp 0x4038f9
mov edx, dword [sym.imp.msvcrt.dll__iob]
push eax
add edx, 0x40
push str.failed_to_open__s_n
push edx
call ebx
add esp, 0xc
mov dword [0x417698], 6
cmp dword [0x41769c], edi
je 0x403c60
cmp dword [0x41766c], edi
jne 0x403a8a
push str.Saving
call fcn.004013c0
add esp, 4
jmp 0x403a8a
cmp dword [0x4176b0], edi
je 0x403981
lea eax, [esp + 0x14]
push eax
push 1
push edi
push edi
push edi
push ebp
mov dword [esp + 0x2c], edi
call sub.libxml2.dll_xmlC14NDocDumpMemory
add esp, 0x18
cmp eax, edi
jl 0x403968
mov ecx, dword [esp + 0x14]
push eax
push ecx
push 1
call dword [sym.imp.msvcrt.dll__write]
mov edx, dword [esp + 0x20]
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push edx
call dword [eax]
add esp, 0x10
jmp 0x403a8a
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
push str.Failed_to_canonicalize_n
push ecx
call ebx
add esp, 8
jmp 0x403a80
cmp dword [0x4176b4], edi
je 0x4039e0
lea edx, [esp + 0x14]
push edx
push 1
push edi
push 1
push edi
push ebp
mov dword [esp + 0x2c], edi
call sub.libxml2.dll_xmlC14NDocDumpMemory
add esp, 0x18
cmp eax, edi
jl 0x4039c8
push eax
mov eax, dword [esp + 0x18]
push eax
push 1
call dword [sym.imp.msvcrt.dll__write]
mov ecx, dword [esp + 0x20]
mov edx, dword [sym.imp.libxml2.dll_xmlFree]
push ecx
call dword [edx]
add esp, 0x10
jmp 0x403a8a
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.Failed_to_canonicalize_n
push eax
call ebx
add esp, 8
jmp 0x403a80
cmp dword [0x41763c], edi
je 0x403a05
mov eax, dword [0x417638]
cmp eax, edi
jne 0x4039f6
mov eax, 0x407b70
push ebp
push eax
call sub.libxml2.dll_xmlSaveFile
add esp, 8
jmp 0x403a8a
cmp dword [0x417640], edi
je 0x403b66
mov ecx, dword [0x417688]
cmp ecx, edi
mov eax, dword [0x417634]
je 0x403ab4
cmp eax, edi
mov eax, dword [0x417638]
je 0x403a45
cmp eax, edi
jne 0x403a36
mov eax, 0x407b70
push 1
push ecx
push ebp
push eax
call sub.libxml2.dll_xmlSaveFormatFileEnc
add esp, 0x10
jmp 0x403a59
cmp eax, edi
jne 0x403a4e
mov eax, 0x407b70
push ecx
push ebp
push eax
call sub.libxml2.dll_xmlSaveFileEnc
add esp, 0xc
cmp eax, edi
jge 0x403a8a
mov eax, dword [0x417638]
cmp eax, edi
jne 0x403a6b
mov eax, 0x407b70
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push eax
push str.failed_save_to__s_n
add ecx, 0x40
push ecx
call ebx
add esp, 0xc
mov dword [0x417698], 6
cmp dword [0x41769c], edi
je 0x403c60
cmp dword [0x41766c], edi
jne 0x403c60
push str.Saving
call fcn.004013c0
add esp, 4
jmp 0x403c60
cmp eax, edi
mov eax, dword [0x417638]
je 0x403af6
cmp eax, edi
jne 0x403ac6
mov eax, 0x407b70
push 1
push ebp
push eax
call sub.libxml2.dll_xmlSaveFormatFile
add esp, 0xc
test eax, eax
jge 0x403a8a
mov eax, dword [0x417638]
cmp eax, edi
jne 0x403ae4
mov eax, 0x407b70
mov edx, dword [sym.imp.msvcrt.dll__iob]
push eax
push str.failed_save_to__s_n
add edx, 0x40
push edx
jmp 0x403a7b
cmp eax, edi
jne 0x403b05
mov esi, dword [sym.imp.msvcrt.dll__iob]
add esi, 0x20
jmp 0x403b1b
push 0x407b6c
push eax
call dword [sym.imp.msvcrt.dll_fopen]
mov esi, eax
mov eax, dword [0x417638]
add esp, 8
cmp esi, edi
je 0x403b52
push ebp
push esi
call sub.libxml2.dll_xmlDocDump
add esp, 8
test eax, eax
jge 0x403b37
mov dword [0x417698], 6
cmp dword [0x417638], edi
je 0x403a8a
push esi
call dword [sym.imp.msvcrt.dll_fclose]
add esp, 4
jmp 0x403a8a
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
push str.failed_to_open__s_n
add eax, 0x40
push eax
jmp 0x403a7b
mov ecx, dword [0x417634]
xor eax, eax
cmp ecx, edi
je 0x403b77
mov eax, 1
mov ecx, dword [0x417638]
cmp ecx, edi
push eax
jne 0x403b92
mov ecx, dword [0x417688]
push ecx
push 1
call sub.libxml2.dll_xmlSaveToFd
jmp 0x403b9f
mov edx, dword [0x417688]
push edx
push ecx
call sub.libxml2.dll_xmlSaveToFilename
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x403a80
push ebp
push esi
call sub.libxml2.dll_xmlSaveDoc
add esp, 8
test eax, eax
jge 0x403be6
mov eax, dword [0x417638]
cmp eax, edi
jne 0x403bc8
mov eax, 0x407b70
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str.failed_save_to__s_n
push eax
call ebx
add esp, 0xc
mov dword [0x417698], 6
push esi
call sub.libxml2.dll_xmlSaveClose
add esp, 4
jmp 0x403a8a
mov eax, dword [0x417638]
cmp eax, edi
jne 0x403c08
mov esi, dword [sym.imp.msvcrt.dll__iob]
add esi, 0x20
jmp 0x403c1e
push 0x407b6c
push eax
call dword [sym.imp.msvcrt.dll_fopen]
mov esi, eax
mov eax, dword [0x417638]
add esp, 8
cmp esi, edi
je 0x403c41
push ebp
push esi
call sub.libxml2.dll_xmlDebugDumpDocument
mov eax, dword [0x417638]
add esp, 8
cmp eax, edi
je 0x403c60
push esi
call dword [sym.imp.msvcrt.dll_fclose]
add esp, 4
jmp 0x403c60
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push eax
add ecx, 0x40
push str.failed_to_open__s_n
push ecx
call ebx
add esp, 0xc
mov dword [0x417698], 6
mov eax, dword [0x41764c]
cmp eax, edi
jne 0x403d4b
cmp dword [0x417650], edi
jne 0x403d4b
cmp dword [0x417648], edi
je 0x403eec
call sub.libxml2.dll_xmlNewValidCtxt
mov esi, eax
cmp esi, edi
jne 0x403cb1
call sub.libxml2.dll___xmlGenericError
mov esi, eax
call sub.libxml2.dll___xmlGenericErrorContext
mov edx, dword [eax]
push str.Couldnt_allocate_validation_context_n
push edx
call dword [esi]
add esp, 8
push 0xffffffffffffffff
call dword [sym.imp.msvcrt.dll_exit]
cmp dword [0x41769c], edi
je 0x403ccc
cmp dword [0x41766c], edi
jne 0x403ccc
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push ebp
push esi
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
call sub.libxml2.dll_xmlValidateDocument
add esp, 8
test eax, eax
jne 0x403d17
call sub.libxml2.dll___xmlGenericError
mov edi, eax
call sub.libxml2.dll___xmlGenericErrorContext
mov ebp, dword [esp + 0x141c]
mov ecx, dword [eax]
push ebp
push str.Document__s_does_not_validate_n
push ecx
call dword [edi]
add esp, 0xc
mov dword [0x417698], 3
jmp 0x403d1e
mov ebp, dword [esp + 0x141c]
mov eax, dword [0x41769c]
test eax, eax
je 0x403d3d
mov eax, dword [0x41766c]
test eax, eax
jne 0x403d3d
push str.Validating
call fcn.004013c0
add esp, 4
push esi
call sub.libxml2.dll_xmlFreeValidCtxt
add esp, 4
jmp 0x403ef3
cmp dword [0x41769c], edi
je 0x403d6b
cmp dword [0x41766c], edi
jne 0x403d6b
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
mov eax, dword [0x41764c]
cmp eax, edi
je 0x403d73
push eax
push edi
jmp 0x403d7b
mov edx, dword [0x417650]
push edi
push edx
call sub.libxml2.dll_xmlParseDTD
mov edi, eax
mov eax, dword [0x41769c]
add esp, 8
test eax, eax
je 0x403da4
mov eax, dword [0x41766c]
test eax, eax
jne 0x403da4
push str.Parsing_DTD
call fcn.004013c0
add esp, 4
test edi, edi
jne 0x403df4
mov eax, dword [0x41764c]
test eax, eax
je 0x403dc5
call sub.libxml2.dll___xmlGenericError
mov esi, eax
call sub.libxml2.dll___xmlGenericErrorContext
mov ecx, dword [0x41764c]
jmp 0x403dd7
call sub.libxml2.dll___xmlGenericError
mov esi, eax
call sub.libxml2.dll___xmlGenericErrorContext
mov ecx, dword [0x417650]
mov edx, dword [eax]
push ecx
push str.Could_not_parse_DTD__s_n
push edx
call dword [esi]
add esp, 0xc
mov dword [0x417698], 2
jmp 0x403eec
call sub.libxml2.dll_xmlNewValidCtxt
mov esi, eax
test esi, esi
jne 0x403e20
call sub.libxml2.dll___xmlGenericError
mov esi, eax
call sub.libxml2.dll___xmlGenericErrorContext
mov eax, dword [eax]
push str.Couldnt_allocate_validation_context_n
push eax
call dword [esi]
add esp, 8
push 0xffffffffffffffff
call dword [sym.imp.msvcrt.dll_exit]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov eax, dword [0x41769c]
add ecx, 0x40
test eax, eax
mov dword [esi], ecx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
je 0x403e4e
mov eax, dword [0x41766c]
test eax, eax
jne 0x403e4e
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
push edi
push ebp
push esi
call sub.libxml2.dll_xmlValidateDtd
add esp, 0xc
test eax, eax
jne 0x403ebe
mov eax, dword [0x41764c]
test eax, eax
je 0x403e8b
call sub.libxml2.dll___xmlGenericError
mov ebp, eax
call sub.libxml2.dll___xmlGenericErrorContext
mov edx, dword [0x41764c]
mov ecx, dword [esp + 0x141c]
push edx
mov edx, dword [eax]
push ecx
push str.Document__s_does_not_validate_against__s_n
push edx
jmp 0x403eae
call sub.libxml2.dll___xmlGenericError
mov ebp, eax
call sub.libxml2.dll___xmlGenericErrorContext
mov ecx, dword [0x417650]
mov edx, dword [esp + 0x141c]
mov eax, dword [eax]
push ecx
push edx
push str.Document__s_does_not_validate_against__s_n
push eax
call dword [ebp]
add esp, 0x10
mov dword [0x417698], 3
mov eax, dword [0x41769c]
test eax, eax
je 0x403edd
mov eax, dword [0x41766c]
test eax, eax
jne 0x403edd
push str.Validating_against_DTD
call fcn.004013c0
add esp, 4
push esi
call sub.libxml2.dll_xmlFreeValidCtxt
push edi
call sub.libxml2.dll_xmlFreeDtd
add esp, 8
mov ebp, dword [esp + 0x141c]
mov eax, dword [0x417668]
test eax, eax
je 0x403fd0
mov eax, dword [0x41769c]
test eax, eax
je 0x403f1d
mov eax, dword [0x41766c]
test eax, eax
jne 0x403f1d
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
mov edx, dword [0x417614]
mov ecx, dword [0x41762c]
xor eax, eax
test edx, edx
setne al
test ecx, ecx
lea eax, [eax + eax + 2]
je 0x403f3b
or eax, 1
mov ecx, dword [0x417668]
push eax
push ecx
call sub.libxml2.dll_xmlSchematronNewValidCtxt
mov edx, dword [esp + 0x18]
mov esi, eax
push edx
push esi
call sub.libxml2.dll_xmlSchematronValidateDoc
add esp, 0x10
test eax, eax
push ebp
jne 0x403f74
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str._s_validates_n
push eax
call ebx
mov edi, 3
jmp 0x403fa3
jle 0x403f87
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push str._s_fails_to_validate_n
add ecx, 0x40
push ecx
jmp 0x403f96
mov edx, dword [sym.imp.msvcrt.dll__iob]
push str._s_validation_generated_an_internal_error_n
add edx, 0x40
push edx
call ebx
mov edi, 3
mov dword [0x417698], edi
add esp, 0xc
push esi
call sub.libxml2.dll_xmlSchematronFreeValidCtxt
mov eax, dword [0x41769c]
add esp, 4
test eax, eax
je 0x403fd5
mov eax, dword [0x41766c]
test eax, eax
jne 0x403fd5
push str.Validating
call fcn.004013c0
add esp, 4
jmp 0x403fd5
mov edi, 3
mov eax, dword [0x417658]
test eax, eax
je 0x404087
mov eax, dword [0x41769c]
test eax, eax
je 0x403fff
mov eax, dword [0x41766c]
test eax, eax
jne 0x403fff
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
mov eax, dword [0x417658]
push eax
call sub.libxml2.dll_xmlRelaxNGNewValidCtxt
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
push ecx
push ebx
mov esi, eax
push ebx
push esi
call sub.libxml2.dll_xmlRelaxNGSetValidErrors
mov edx, dword [esp + 0x24]
push edx
push esi
call sub.libxml2.dll_xmlRelaxNGValidateDoc
add esp, 0x1c
test eax, eax
push ebp
jne 0x40404f
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str._s_validates_n
push eax
call ebx
add esp, 0xc
push esi
call sub.libxml2.dll_xmlRelaxNGFreeValidCtxt
jmp 0x404128
jle 0x404062
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push str._s_fails_to_validate_n
add ecx, 0x40
push ecx
jmp 0x404071
mov edx, dword [sym.imp.msvcrt.dll__iob]
push str._s_validation_generated_an_internal_error_n
add edx, 0x40
push edx
call ebx
add esp, 0xc
push esi
mov dword [0x417698], edi
call sub.libxml2.dll_xmlRelaxNGFreeValidCtxt
jmp 0x404128
mov eax, dword [0x417660]
test eax, eax
je 0x40414a
mov eax, dword [0x41769c]
test eax, eax
je 0x4040b1
mov eax, dword [0x41766c]
test eax, eax
jne 0x4040b1
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
mov eax, dword [0x417660]
push eax
call sub.libxml2.dll_xmlSchemaNewValidCtxt
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
push ecx
push ebx
mov esi, eax
push ebx
push esi
call sub.libxml2.dll_xmlSchemaSetValidErrors
mov edx, dword [esp + 0x24]
push edx
push esi
call sub.libxml2.dll_xmlSchemaValidateDoc
add esp, 0x1c
test eax, eax
push ebp
jne 0x4040f5
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push str._s_validates_n
push eax
call ebx
jmp 0x40411f
jle 0x404108
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push str._s_fails_to_validate_n
add ecx, 0x40
push ecx
jmp 0x404117
mov edx, dword [sym.imp.msvcrt.dll__iob]
push str._s_validation_generated_an_internal_error_n
add edx, 0x40
push edx
call ebx
mov dword [0x417698], edi
add esp, 0xc
push esi
call sub.libxml2.dll_xmlSchemaFreeValidCtxt
mov eax, dword [0x41769c]
add esp, 4
test eax, eax
je 0x40414a
mov eax, dword [0x41766c]
test eax, eax
jne 0x40414a
push str.Validating
call fcn.004013c0
add esp, 4
mov eax, dword [0x417610]
test eax, eax
je 0x404173
mov eax, dword [0x417674]
test eax, eax
jne 0x404173
mov eax, dword [esp + 0x10]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push eax
add ecx, 0x40
push ecx
call sub.libxml2.dll_xmlDebugDumpEntities
add esp, 8
mov eax, dword [0x41769c]
test eax, eax
je 0x404190
mov eax, dword [0x41766c]
test eax, eax
jne 0x404190
call dword [sym.imp.msvcrt.dll_clock]
mov dword [0x40b1ac], eax
mov edx, dword [esp + 0x10]
push edx
call sub.libxml2.dll_xmlFreeDoc
mov eax, dword [0x41769c]
add esp, 4
test eax, eax
je 0x4041bc
mov eax, dword [0x41766c]
test eax, eax
jne 0x4041bc
push str.Freeing
call fcn.004013c0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1408
ret