Function at 0x4705e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov esi, edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0
test edx, edx
je 0x4706b0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x470627
sub esp, 0xc
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0044b0d0
pop eax
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0044ba90
mov dword [ebp - 0x1c], 0
add esp, 0x10
mov eax, dword [esi + 4]
cmp eax, 1
je 0x4706b8
sub eax, 3
cmp eax, 1
ja 0x470740
mov eax, dword [esi + 0x28]
call fcn.0046b5e0
test eax, eax
jne 0x470784
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x470743
mov ecx, dword [ebx + 4]
cmp ecx, 0x11
setne dl
cmp ecx, 5
setne al
and eax, 0xff
test edx, eax
je 0x470743
cmp ecx, 6
je 0x470743
mov esi, ebx
test esi, esi
jne 0x470600
lea esi, [esi]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4706b0
sub esp, 0xc
mov edi, dword [ebp - 0x1c]
push edi
call fcn.0044b0d0
pop esi
mov ebx, dword [ebp - 0x1c]
push ebx
call fcn.0044ba90
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x24]
test eax, eax
je 0x4706dc
mov ebx, dword [str.http:__relaxng.org_ns_structure_1.0]
push edi
push edi
push ebx
mov ecx, dword [eax + 8]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x4707ce
mov eax, dword [esi + 0x14]
test eax, eax
je 0x470740
cmp dword [eax + 4], 1
jne 0x470740
push edx
push edx
push 0x749507
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x47071e
push eax
push eax
push 0x749cd8
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x4713dc
push 0
mov edx, esi
mov eax, dword [esi + 0x14]
mov ebx, dword [eax + 8]
mov eax, dword [ebp - 0x14]
push ebx
push str.element__s_doesnt_allow_foreign_elements_n
push 0x40b
call fcn.00468d10
add esp, 0x10
mov esi, esi
mov dword [ebp - 0x1c], esi
mov eax, dword [esi + 0x18]
test eax, eax
je 0x470760
mov esi, eax
test esi, esi
jne 0x470600
jmp 0x470690
mov esi, dword [esi + 0x14]
test esi, esi
je 0x470690
cmp esi, dword [ebp - 0x18]
je 0x470690
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x47074a
test esi, esi
jne 0x470760
jmp 0x470690
mov eax, dword [esi + 0x14]
cmp dword [eax + 4], 1
jne 0x470740
push edx
push edx
push 0x749cd8
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x47064f
push eax
push eax
push 0x749cde
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x47064f
mov dword [ebp - 0x1c], esi
jmp 0x47064f
mov ebx, dword [esi + 0x2c]
test ebx, ebx
je 0x470836
mov eax, dword [ebx + 0x24]
mov edi, dword [ebx + 0x18]
test eax, eax
je 0x4707f8
mov edx, dword [str.http:__relaxng.org_ns_structure_1.0]
push ecx
push ecx
push edx
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470830
push eax
push eax
push 0x749507
mov eax, dword [ebx + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470b58
push ecx
push ecx
push 0x749ced
mov edx, dword [esi + 8]
push edx
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470afb
mov esi, esi
mov ebx, edi
test ebx, ebx
jne 0x4707d5
push eax
push eax
push str.externalRef
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470c48
push eax
push eax
push 0x74a0a3
push esi
call fcn.0044ff10
add esp, 0x10
test eax, eax
mov dword [ebp - 0x28], eax
je 0x4710c8
push ebx
push ebx
push 0x74b267
push esi
call fcn.0044ff10
add esp, 0x10
mov edi, eax
test eax, eax
je 0x47120f
sub esp, 0xc
push eax
call fcn.00431ae0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4715d1
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x471010
sub esp, 0xc
push ebx
call fcn.0042f6c0
pop ebx
pop eax
push esi
mov ecx, dword [esi + 0x20]
push ecx
call fcn.0044ff40
mov ebx, eax
pop eax
pop edx
push ebx
push edi
call fcn.004320c0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x2c], eax
je 0x4714b3
sub esp, 0xc
push edi
call dword [0x69a2d0]
add esp, 0x10
test ebx, ebx
je 0x4708f3
sub esp, 0xc
push ebx
call dword [0x69a2d0]
add esp, 0x10
mov ecx, dword [ebp - 0x14]
xor ebx, ebx
mov eax, dword [ecx + 0x64]
test eax, eax
jle 0x47092b
mov edi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
push eax
push eax
push edi
mov eax, dword [edx + 0x6c]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax + 4]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x47105f
mov ecx, dword [ebp - 0x14]
inc ebx
cmp dword [ecx + 0x64], ebx
jg 0x4708ff
mov eax, dword [ebp - 0x2c]
push edx
push 0
push 0
push eax
call fcn.0041da70
add esp, 0x10
test eax, eax
mov dword [ebp - 0x30], eax
je 0x4713c7
sub esp, 0xc
push 0x18
call dword [0x69a2cc]
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x471450
cld
xor eax, eax
mov ecx, 6
mov edi, ebx
sub esp, 0xc
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x30]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004622d0
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov dword [ebx + 4], eax
add esp, 0x10
mov eax, dword [edx + 0x3c]
mov dword [ebx + 0x14], 1
mov dword [ebx], eax
test edi, edi
mov dword [edx + 0x3c], ebx
je 0x4709c9
sub esp, 0xc
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0044c600
add esp, 0x10
mov edi, eax
test eax, eax
je 0x4709c9
push edx
push edx
push 0x74a0a3
push eax
call fcn.0044fe50
add esp, 0x10
test eax, eax
je 0x471651
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x6c]
test eax, eax
je 0x471241
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x64]
mov ecx, dword [ecx + 0x68]
cmp edx, ecx
jge 0x4712c3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x6c]
mov dword [eax + edx*4], ebx
lea eax, [edx + 1]
mov dword [ecx + 0x60], ebx
mov dword [ecx + 0x64], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
call fcn.00471ab0
test eax, eax
je 0x471502
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x64]
test eax, eax
jle 0x470a3c
dec eax
mov dword [edx + 0x64], eax
test eax, eax
jle 0x47163f
mov ecx, edx
mov edx, dword [edx + 0x6c]
mov eax, dword [edx + eax*4 - 4]
mov dword [ecx + 0x60], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x64]
mov dword [edx + eax*4], 0
mov edi, ebx
test ebx, ebx
je 0x47107c
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x470a5d
sub esp, 0xc
mov eax, dword [ebp - 0x28]
push eax
call dword [0x69a2d0]
add esp, 0x10
sub esp, 0xc
mov eax, dword [ebp - 0x2c]
push eax
call dword [0x69a2d0]
mov dword [esi + 0x34], edi
add esp, 0x10
push eax
push eax
push 0x74b26c
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x47064f
push eax
push eax
push 0x74a0a3
push esi
call fcn.0044ff10
mov edi, dword [esi + 0xc]
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], eax
jmp 0x470ac0
sub esp, 0xc
mov ebx, dword [edi + 0x18]
push edi
call fcn.0044b0d0
pop eax
pop edx
push edi
mov edi, dword [ebp - 0x4c]
push edi
call fcn.0044e230
mov edi, ebx
mov dword [ebp - 0x4c], eax
add esp, 0x10
test edi, edi
je 0x471150
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x470aa3
push eax
push eax
push 0x74a0a3
push edi
call fcn.0044fe50
add esp, 0x10
test eax, eax
jne 0x470aa3
mov ecx, dword [ebp - 0x48]
push ebx
push ecx
push 0x74a0a3
push edi
call fcn.00450220
add esp, 0x10
jmp 0x470aa3
push eax
push eax
push 0x749cc9
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
push eax
push eax
push 0x749cc1
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
push eax
push eax
push str.parentRef
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
push ecx
push ecx
push 0x749cde
jmp 0x470c28
push edx
push edx
push 0x74a98f
mov eax, dword [ebx + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470bcb
push eax
push eax
push 0x749cd8
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
push eax
push eax
push 0x749e88
mov ecx, dword [esi + 8]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
mov edx, dword [esi + 8]
push edx
mov eax, dword [ebx + 8]
push eax
push str.Attribute__s_is_not_allowed_on__s_n
push 0x40a
mov edx, esi
mov eax, dword [ebp - 0x14]
call fcn.00468d10
add esp, 0x10
mov ebx, edi
jmp 0x470832
push eax
push eax
push 0x74b267
mov eax, dword [ebx + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470c06
push ecx
push ecx
push str.externalRef
mov edx, dword [esi + 8]
push edx
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
push eax
push eax
push 0x7494ea
jmp 0x470b91
push eax
push eax
push str.combine
mov eax, dword [ebx + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470d3b
push eax
push eax
push 0x7494fa
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
push eax
push eax
push str.define
jmp 0x470b91
push eax
push eax
push 0x7494ea
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470d92
push eax
push eax
push 0x749ced
mov edi, dword [esi + 8]
push edi
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470c95
push ebx
push ebx
push 0x749cc9
mov ecx, dword [esi + 8]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x4712fc
mov dword [ebp - 0x44], 0
push edx
push edx
push 0x749507
push esi
call fcn.0044ff10
add esp, 0x10
mov edi, eax
test eax, eax
je 0x470a70
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x47110e
push edi
push 0x749507
mov eax, dword [esi + 0x24]
push eax
push esi
call fcn.0044eb20
mov dword [ebp - 0x44], eax
mov ebx, dword [ebp - 0x44]
add esp, 0x10
test ebx, ebx
je 0x4711aa
push ecx
push ecx
push 0x749507
push esi
call fcn.00450190
mov dword [esp], edi
call dword [0x69a2d0]
pop eax
pop edx
push 0x74a0a3
push esi
call fcn.0044ff10
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x47160b
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x470d2c
push eax
mov eax, dword [ebp - 0x44]
push ebx
push 0x74a0a3
push eax
call fcn.00450220
add esp, 0x10
sub esp, 0xc
push ebx
call dword [0x69a2d0]
jmp 0x470a6d
push eax
push eax
push str.datatypeLibrary
mov eax, dword [ebx + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470fde
push eax
push 1
mov eax, dword [ebx + 0xc]
push eax
mov eax, dword [esi + 0x20]
push eax
call fcn.0044a280
add esp, 0x10
test eax, eax
mov dword [ebp - 0x20], eax
je 0x470830
cmp byte [eax], 0
jne 0x4711c9
sub esp, 0xc
mov ecx, dword [ebp - 0x20]
push ecx
call dword [0x69a2d0]
add esp, 0x10
jmp 0x470bc4
push eax
push eax
push 0x74b267
push esi
call fcn.0044ff10
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x471551
push edi
push edi
push esi
mov ecx, dword [esi + 0x20]
push ecx
call fcn.0044ff40
mov edi, eax
pop eax
pop edx
push edi
push ebx
call fcn.004320c0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x38], eax
je 0x47156e
sub esp, 0xc
push ebx
call dword [0x69a2d0]
add esp, 0x10
test edi, edi
je 0x470def
sub esp, 0xc
push edi
call dword [0x69a2d0]
add esp, 0x10
push ebx
push ebx
push 0x74a0a3
push esi
call fcn.0044ff10
add esp, 0x10
test eax, eax
mov dword [ebp - 0x34], eax
je 0x47127d
mov eax, dword [ebp - 0x14]
xor ebx, ebx
mov edx, dword [eax + 0x74]
test edx, edx
jle 0x470e42
mov edx, dword [ebp - 0x14]
push eax
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [edx + 0x7c]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 4]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x471193
mov ecx, dword [ebp - 0x14]
inc ebx
cmp dword [ecx + 0x74], ebx
jg 0x470e16
push eax
mov eax, dword [ebp - 0x38]
push 0
push 0
push eax
call fcn.0041da70
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4713ff
sub esp, 0xc
push 0x14
call dword [0x69a2cc]
add esp, 0x10
test eax, eax
mov dword [ebp - 0x3c], eax
je 0x471533
cld
xor eax, eax
mov edi, dword [ebp - 0x3c]
mov ecx, 5
sub esp, 0xc
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
mov dword [eax + 8], ebx
push edi
call fcn.004622d0
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov dword [edx + 4], eax
mov eax, dword [ecx + 0x40]
mov dword [edx], eax
mov dword [ecx + 0x40], edx
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x470eed
sub esp, 0xc
push ebx
call fcn.0044c600
add esp, 0x10
test eax, eax
mov dword [ebp - 0x40], eax
je 0x470eed
push edx
push edx
push 0x74a0a3
push eax
call fcn.0044fe50
add esp, 0x10
test eax, eax
jne 0x470eed
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
push eax
push edi
push 0x74a0a3
push ecx
call fcn.00450220
add esp, 0x10
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x7c]
test edx, edx
je 0x471414
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x74]
mov ecx, dword [ecx + 0x78]
cmp edx, ecx
jge 0x47147a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x7c]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + edx*4], ecx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x70], ecx
lea eax, [edx + 1]
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x74], eax
mov edx, ebx
mov eax, dword [ebp - 0x14]
call fcn.00471ab0
mov ebx, eax
test eax, eax
je 0x47159e
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x74]
test eax, eax
jle 0x470f6a
dec eax
mov dword [edx + 0x74], eax
test eax, eax
jle 0x4716b1
mov ecx, edx
mov edx, dword [edx + 0x7c]
mov eax, dword [edx + eax*4 - 4]
mov dword [ecx + 0x70], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x74]
mov dword [edx + eax*4], 0
sub esp, 0xc
push ebx
call fcn.0044c600
add esp, 0x10
test eax, eax
mov dword [ebp - 0x40], eax
je 0x47188f
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax + 0x24]
test ebx, ebx
je 0x470f95
cmp dword [eax + 4], 1
je 0x471820
mov eax, dword [ebp - 0x38]
push 0
push eax
push str.xmlRelaxNG:_included_document__s_root_is_not_a_grammar_n
push 0x40e
mov edx, esi
mov eax, dword [ebp - 0x14]
call fcn.00468d10
add esp, 0x10
xor edi, edi
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x470fcb
sub esp, 0xc
mov eax, dword [ebp - 0x34]
push eax
call dword [0x69a2d0]
add esp, 0x10
test edi, edi
je 0x4715ad
sub esp, 0xc
mov eax, dword [ebp - 0x38]
jmp 0x470a63
push edx
push edx
push 0x74a0a3
mov eax, dword [ebx + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x470830
mov eax, dword [esi + 8]
push eax
mov eax, dword [ebx + 8]
push eax
push str.Unknown_attribute__s_on__s_n
push 0x459
jmp 0x470bb7
mov eax, dword [ebp - 0x14]
mov edx, esi
push 0
push edi
push str.Fragment_forbidden_in_URI_for_externalRef__s_n
push 0x411
call fcn.00468d10
mov eax, dword [ebp - 0x28]
add esp, 0x10
test eax, eax
je 0x471041
sub esp, 0xc
mov eax, dword [ebp - 0x28]
push eax
call dword [0x69a2d0]
add esp, 0x10
sub esp, 0xc
push ebx
call fcn.0042f6c0
add esp, 0x10
sub esp, 0xc
push edi
call dword [0x69a2d0]
add esp, 0x10
jmp 0x470740
mov eax, dword [ebp - 0x2c]
push 0
push eax
push str.Detected_an_externalRef_recursion_for__s_n
push 0x409
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00468d10
add esp, 0x10
mov edi, dword [ebp - 0x2c]
mov edx, esi
mov eax, dword [ebp - 0x14]
push 0
push edi
push str.Failed_to_load_externalRef__s_n
push 0x408
call fcn.00468d10
mov ebx, dword [ebp - 0x28]
add esp, 0x10
test ebx, ebx
je 0x4710b0
sub esp, 0xc
mov ecx, dword [ebp - 0x28]
push ecx
call dword [0x69a2d0]
add esp, 0x10
sub esp, 0xc
mov edx, dword [ebp - 0x2c]
push edx
call dword [0x69a2d0]
add esp, 0x10
mov dword [ebp - 0x1c], esi
jmp 0x470743
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x47086c
cmp dword [ebx + 4], 1
jne 0x47086c
push edi
push edi
push 0x74a0a3
push ebx
call fcn.0044ff10
add esp, 0x10
test eax, eax
mov dword [ebp - 0x28], eax
jne 0x47086c
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x47086c
cmp dword [ebx + 4], 1
je 0x4710dd
jmp 0x47086c
push 0
push 0x749507
mov eax, dword [esi + 0x24]
push eax
mov eax, dword [esi + 0x20]
push eax
call fcn.0044ea80
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4711aa
push eax
push eax
push ebx
mov eax, dword [esi + 0xc]
push eax
call fcn.0044e8a0
mov dword [esp], edi
call fcn.0044a710
pop edx
pop ecx
push eax
push ebx
call fcn.0044db50
mov dword [ebp - 0x44], ebx
jmp 0x470cd4
mov ebx, dword [ebp - 0x48]
test ebx, ebx
je 0x471167
sub esp, 0xc
mov ecx, dword [ebp - 0x48]
push ecx
call dword [0x69a2d0]
add esp, 0x10
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x470740
mov eax, dword [esi + 0x14]
lea edx, [eax + 0x30]
mov eax, dword [eax + 0x30]
jmp 0x471181
mov edx, eax
mov eax, dword [eax]
test eax, eax
jne 0x47117d
mov dword [edx], ecx
mov dword [esi + 0x30], 0
jmp 0x470740
mov eax, dword [ebp - 0x38]
push 0
xor edx, edx
push eax
push str.Detected_an_Include_recursion_for__s_n
push 0x414
jmp 0x470fa7
mov edx, esi
mov eax, dword [ebp - 0x14]
push 0
push edi
push str.Failed_to_create_a_name__s_element_n
push 0x3f0
call fcn.00468d10
add esp, 0x10
jmp 0x470ce2
sub esp, 0xc
push eax
call fcn.00431ae0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x24], eax
je 0x4718a4
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
test eax, eax
je 0x47168d
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x20]
test eax, eax
jne 0x471669
sub esp, 0xc
mov ebx, dword [ebp - 0x24]
push ebx
call fcn.0042f6c0
add esp, 0x10
jmp 0x470d7d
mov edx, esi
mov eax, dword [ebp - 0x14]
push 0
push 0
push str.xmlRelaxNGParse:_externalRef_has_no_href_attribute_n
push 0x41c
call fcn.00468d10
mov ecx, dword [ebp - 0x28]
add esp, 0x10
test ecx, ecx
je 0x470740
sub esp, 0xc
mov edx, dword [ebp - 0x28]
push edx
jmp 0x471051
sub esp, 0xc
mov dword [ecx + 0x68], 4
mov dword [ecx + 0x64], 0
push 0x10
call dword [0x69a2cc]
mov edx, dword [ebp - 0x14]
add esp, 0x10
test eax, eax
mov dword [edx + 0x6c], eax
jne 0x4709d7
mov edx, str.adding_document_n
mov eax, dword [ebp - 0x14]
call fcn.00468bf0
jmp 0x4709fa
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x470e0a
cmp dword [ebx + 4], 1
jne 0x470e0a
push ecx
push ecx
push 0x74a0a3
push ebx
call fcn.0044ff10
add esp, 0x10
test eax, eax
mov dword [ebp - 0x34], eax
jne 0x470e0a
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x470e0a
cmp dword [ebx + 4], 1
je 0x471292
jmp 0x470e0a
mov edx, dword [ebp - 0x14]
lea eax, [ecx + ecx]
mov dword [edx + 0x68], eax
push eax
push eax
lea eax, [ecx*8]
push eax
mov eax, dword [edx + 0x6c]
push eax
call dword [0x69a2c4]
mov ecx, dword [ebp - 0x14]
add esp, 0x10
test eax, eax
mov dword [ecx + 0x6c], eax
je 0x47174a
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x64]
jmp 0x4709e8
push edx
push edx
push 0x749507
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x47132e
push eax
push eax
push str.nsName
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x47176c
push eax
push eax
push 0x74a0a3
push esi
call fcn.0044fe50
add esp, 0x10
test eax, eax
jne 0x471367
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x471353
cmp dword [ebx + 4], 1
je 0x471511
push ecx
push 0x74951d
push 0x74a0a3
push esi
call fcn.00450220
add esp, 0x10
push eax
push eax
push 0x749507
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x4716c3
push eax
push eax
push str.nsName
mov edi, dword [esi + 8]
push edi
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470a70
mov edx, dword [ebp - 0x14]
test byte [edx + 0x21], 2
je 0x470a70
push 0
push 0
push str.Found_nsName_except__nsName_forbidden_construct_n
push 0x43d
mov edx, esi
mov eax, dword [ebp - 0x14]
call fcn.00468d10
jmp 0x470a6d
mov eax, dword [ebp - 0x2c]
push 0
push eax
push str.xmlRelaxNG:_could_not_load__s_n
push 0x429
jmp 0x47106f
push eax
push eax
push 0x749cde
mov eax, dword [esi + 0x14]
mov edi, dword [eax + 8]
push edi
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470740
jmp 0x47071e
mov eax, dword [ebp - 0x38]
push 0
push eax
push str.xmlRelaxNG:_could_not_load__s_n
push 0x429
jmp 0x470fa5
sub esp, 0xc
mov dword [eax + 0x78], 4
mov dword [eax + 0x74], 0
push 0x10
call dword [0x69a2cc]
mov edx, dword [ebp - 0x14]
add esp, 0x10
test eax, eax
mov dword [edx + 0x7c], eax
jne 0x470efb
mov edx, str.allocating_include_n
mov eax, dword [ebp - 0x14]
call fcn.00468bf0
jmp 0x470f27
mov eax, dword [ebp - 0x2c]
push 0
mov edx, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x14]
push str.xmlRelaxNG:_allocate_memory_for_doc__s_n
push 2
call fcn.00468d10
pop eax
mov eax, dword [ebp - 0x30]
push eax
call fcn.0044b4c0
add esp, 0x10
jmp 0x47107c
mov edx, dword [ebp - 0x14]
lea eax, [ecx + ecx]
mov dword [edx + 0x78], eax
push eax
push eax
lea eax, [ecx*8]
push eax
mov eax, dword [edx + 0x7c]
push eax
call dword [0x69a2c4]
mov ecx, dword [ebp - 0x14]
add esp, 0x10
test eax, eax
mov dword [ecx + 0x7c], eax
je 0x47175b
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x74]
jmp 0x470f0c
mov eax, dword [ebp - 0x14]
mov edx, esi
push 0
push edi
push str.Failed_to_compute_URL_for_externalRef__s_n
push 0x411
call fcn.00468d10
mov eax, dword [ebp - 0x28]
add esp, 0x10
test eax, eax
je 0x4714e4
sub esp, 0xc
mov eax, dword [ebp - 0x28]
push eax
call dword [0x69a2d0]
add esp, 0x10
sub esp, 0xc
push edi
call dword [0x69a2d0]
add esp, 0x10
test ebx, ebx
je 0x470740
sub esp, 0xc
push ebx
jmp 0x471051
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x60], 0
jmp 0x47107c
push edi
push edi
push 0x74a0a3
push ebx
call fcn.0044ff10
add esp, 0x10
mov edi, eax
test eax, eax
jne 0x47197e
mov ebx, dword [ebx + 0x14]
jmp 0x471345
mov edx, str.allocating_include_n
mov eax, dword [ebp - 0x14]
call fcn.00468bf0
sub esp, 0xc
push ebx
call fcn.0044b4c0
add esp, 0x10
jmp 0x470fb2
mov edx, esi
mov eax, dword [ebp - 0x14]
push 0
push 0
push str.xmlRelaxNGParse:_include_has_no_href_attribute_n
push 0x41c
call fcn.00468d10
jmp 0x4710bd
push 0
mov edx, esi
push ebx
mov eax, dword [ebp - 0x14]
push str.Failed_to_compute_URL_for_include__s_n
push 0x411
call fcn.00468d10
mov dword [esp], ebx
call dword [0x69a2d0]
add esp, 0x10
test edi, edi
jne 0x47104d
jmp 0x470740
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x70], 0
jmp 0x470fb2
mov eax, dword [ebp - 0x38]
push 0
mov edx, esi
push eax
mov eax, dword [ebp - 0x14]
push str.Failed_to_load_include__s_n
push 0x413
call fcn.00468d10
pop eax
mov eax, dword [ebp - 0x38]
push eax
jmp 0x4710b7
mov eax, dword [ebp - 0x14]
mov edx, esi
push 0
push edi
push str.Incorrect_URI_for_externalRef__s_n
push 0x411
call fcn.00468d10
mov eax, dword [ebp - 0x28]
add esp, 0x10
test eax, eax
je 0x47104d
sub esp, 0xc
mov eax, dword [ebp - 0x28]
push eax
call dword [0x69a2d0]
add esp, 0x10
jmp 0x47104d
push eax
push eax
push 0x749cc9
mov edi, dword [esi + 8]
push edi
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470a70
mov ecx, dword [ebp - 0x44]
push ebx
push 0x74951d
push 0x74a0a3
push ecx
call fcn.00450220
jmp 0x470a6d
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x6c]
mov dword [eax + 0x60], 0
jmp 0x470a2f
push eax
mov eax, dword [ebp - 0x28]
push eax
push 0x74a0a3
push edi
call fcn.00450220
add esp, 0x10
jmp 0x4709c9
mov eax, dword [ebp - 0x20]
mov edx, esi
push eax
mov eax, dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x14]
push str.Attribute__s_URI__s_has_a_fragment_ID_n
push 0x45d
call fcn.00468d10
add esp, 0x10
jmp 0x4711fb
mov eax, dword [ebp - 0x20]
mov edx, esi
push eax
mov eax, dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x14]
push str.Attribute__s_URI__s_is_not_absolute_n
push 0x45e
call fcn.00468d10
add esp, 0x10
jmp 0x4711ed
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x7c]
mov dword [eax + 0x70], 0
jmp 0x470f5d
sub esp, 0xc
push esi
call fcn.0044c930
add esp, 0x10
mov edi, eax
test eax, eax
je 0x471382
push eax
push eax
lea eax, [ebp - 0x10]
push eax
push edi
call fcn.00448970
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x471738
push eax
mov eax, dword [ebp - 0x10]
push eax
push esi
mov eax, dword [esi + 0x20]
push eax
call fcn.0044cbc0
add esp, 0x10
test eax, eax
je 0x471999
push edx
mov ecx, dword [eax + 8]
push ecx
push 0x74a0a3
push esi
call fcn.00450220
pop eax
pop edx
push ebx
push esi
call fcn.0044e780
mov dword [esp], ebx
call dword [0x69a2d0]
pop eax
mov eax, dword [ebp - 0x10]
push eax
call dword [0x69a2d0]
add esp, 0x10
sub esp, 0xc
push edi
call dword [0x69a2d0]
add esp, 0x10
jmp 0x471382
mov edx, str.adding_document_n
mov eax, ecx
call fcn.00468bf0
jmp 0x4709fa
mov edx, str.allocating_include_n
mov eax, ecx
call fcn.00468bf0
jmp 0x470f27
push eax
push eax
push 0x749cd8
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x47132e
push ebx
push ebx
push str.except
mov ecx, dword [esi + 8]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x471a4e
cmp esi, dword [ebp - 0x18]
je 0x471a4e
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x14]
test eax, eax
mov ebx, dword [ecx + 0x20]
je 0x470a70
push edx
push edx
push str.anyName
mov edi, dword [eax + 8]
push edi
call fcn.004623e0
add esp, 0x10
test eax, eax
jne 0x471a30
mov eax, dword [esi + 0x14]
test eax, eax
je 0x470a70
push edx
push edx
push str.nsName
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470a70
mov ecx, dword [ebp - 0x14]
mov edx, esi
mov eax, ecx
mov edi, dword [ecx + 0x20]
or edi, 0x200
mov dword [ecx + 0x20], edi
call fcn.004705e0
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x20], ebx
jmp 0x470743
push ecx
push ecx
push str.grammar
mov edx, dword [eax + 8]
push edx
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470f95
mov edx, dword [ebp - 0x40]
push eax
push eax
mov eax, dword [str.http:__relaxng.org_ns_structure_1.0]
push eax
mov eax, dword [edx + 0x24]
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470f95
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x4719b8
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x471879
cmp dword [ebx + 4], 1
je 0x4719c0
test ebx, ebx
je 0x47188a
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x47188a
cmp dword [ebx + 4], 1
je 0x4718c8
mov ebx, dword [ebx + 0x18]
jmp 0x471860
mov edi, dword [ebp - 0x38]
push 0
push edi
push str.xmlRelaxNG:_included_document_is_empty__s_n
push 0x3fe
jmp 0x470fa5
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
push ecx
mov edx, dword [ebx + 8]
push edx
mov edx, esi
push str.Attribute__s_contains_invalid_URI__s_n
push 0x41a
call fcn.00468d10
add esp, 0x10
jmp 0x470d7d
push edi
push edi
push str.define
mov ecx, dword [ebx + 8]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x47188a
mov eax, dword [str.http:__relaxng.org_ns_structure_1.0]
push edx
push edx
push eax
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x47188a
push eax
push eax
push 0x749507
push ebx
call fcn.0044ff10
add esp, 0x10
mov edi, eax
test eax, eax
je 0x471962
call fcn.004699e0
mov edx, dword [ebp - 0x38]
push eax
push eax
mov eax, dword [ebp - 0x40]
push edi
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0x14]
call fcn.00469b10
add esp, 0x10
test eax, eax
jne 0x47194d
mov ecx, dword [ebp - 0x38]
push edi
mov edx, esi
push ecx
mov eax, dword [ebp - 0x14]
push str.xmlRelaxNG:_include__s_has_a_define__s_but_not_the_included_grammar_n
push 0x3f5
call fcn.00468d10
add esp, 0x10
sub esp, 0xc
push edi
call dword [0x69a2d0]
add esp, 0x10
mov ebx, dword [ebx + 0x18]
jmp 0x471860
mov eax, dword [ebp - 0x38]
push 0
push eax
push str.xmlRelaxNG:_include__s_has_define_without_name_n
push 0x41d
mov edx, esi
mov eax, dword [ebp - 0x14]
call fcn.00468d10
jmp 0x471957
push edx
push eax
push 0x74a0a3
push esi
call fcn.00450220
mov dword [esp], edi
call dword [0x69a2d0]
jmp 0x471364
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov eax, dword [ebp - 0x14]
push 0
push ecx
push str.xmlRelaxNGParse:_no_namespace_for_prefix__s_n
push 0x449
call fcn.00468d10
jmp 0x471721
mov edi, dword [ebp - 0x3c]
jmp 0x470fb4
push edi
push edi
push 0x7494fa
mov ecx, dword [ebx + 8]
push ecx
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x471879
mov eax, dword [str.http:__relaxng.org_ns_structure_1.0]
push edx
push edx
push eax
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x471879
mov ecx, dword [ebp - 0x40]
push eax
push eax
push 0
mov edx, dword [ebp - 0x38]
mov eax, dword [ecx + 0xc]
push eax
mov eax, dword [ebp - 0x14]
call fcn.00469b10
add esp, 0x10
test eax, eax
jne 0x47188a
mov eax, dword [ebp - 0x38]
push 0
push eax
push str.xmlRelaxNG:_include__s_has_a_start_but_not_the_included_grammar_n
push 0x453
jmp 0x471972
mov eax, dword [ebp - 0x14]
mov edx, esi
mov ecx, dword [eax + 0x20]
or ch, 1
mov dword [eax + 0x20], ecx
call fcn.004705e0
mov edx, dword [ebp - 0x14]
mov dword [edx + 0x20], ebx
jmp 0x470743
push edx
push edx
push str.anyName
mov eax, dword [esi + 8]
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x470a70
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x20]
test ah, 1
jne 0x471a90
test ah, 2
je 0x470a70
push 0
push 0
push str.Found_nsName_except__anyName_forbidden_construct_n
push 0x43c
jmp 0x4713b8
push 0
push 0
push str.Found_anyName_except__anyName_forbidden_construct_n
push 0x42a
jmp 0x4713b8