Function at 0x431054
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
push eax
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x10], 0
or edi, 0xffffffff
mov esi, dword [ebx + 0x24]
mov edx, dword [esi + 0x10]
cmp byte [edx], 0x3c
jne 0x43138c
cmp byte [edx + 1], 0x21
jne 0x43138c
cmp byte [edx + 2], 0x45
jne 0x43138c
cmp byte [edx + 3], 0x4c
jne 0x43138c
cmp byte [edx + 4], 0x45
jne 0x43138c
cmp byte [edx + 5], 0x4d
jne 0x43138c
cmp byte [edx + 6], 0x45
jne 0x43138c
cmp byte [edx + 7], 0x4e
jne 0x43138c
cmp byte [edx + 8], 0x54
jne 0x43138c
add dword [ebx + 0xc8], 9
add dword [esi + 0x20], 9
lea eax, [edx + 9]
mov dword [esi + 0x10], eax
cmp byte [edx + 9], 0x25
jne 0x4310e6
push ebx
call fcn.0042b82f
pop edi
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
jne 0x431109
push 0xfa
push edx
call fcn.0044a955
pop edx
test eax, eax
pop ecx
jg 0x431109
push ebx
call fcn.00429b91
pop eax
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
lea eax, [ecx - 9]
setne dl
cmp al, 1
seta al
movzx eax, al
test eax, edx
je 0x43113d
cmp cl, 0xd
je 0x43113d
mov edx, 0x41
mov eax, ebx
push str.Space_required_after_ELEMENT_n
call fcn.00429123
pop edi
push ebx
call fcn.0042f05b
push ebx
call fcn.0042db23
pop edx
test eax, eax
mov dword [ebp - 0x14], eax
pop ecx
jne 0x431175
mov edx, 0x44
mov eax, ebx
push str.xmlParseElementDecl:_no_name_for_Element_n
call fcn.00429123
jmp 0x4312d0
cmp dword [ebx + 0x28], 1
jle 0x431180
push ebx
call fcn.00429b91
pop eax
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x431168
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
lea eax, [ecx - 9]
setne dl
cmp al, 1
seta al
movzx eax, al
test eax, edx
je 0x4311b4
cmp cl, 0xd
je 0x4311b4
mov eax, ebx
mov edx, 0x41
push str.Space_required_after_the_element_name_n
call fcn.00429123
pop eax
push ebx
call fcn.0042f05b
mov ecx, dword [ebx + 0x24]
pop eax
mov edx, dword [ecx + 0x10]
cmp byte [edx], 0x45
jne 0x431229
cmp byte [edx + 1], 0x4d
jne 0x431229
cmp byte [edx + 2], 0x50
jne 0x431229
cmp byte [edx + 3], 0x54
jne 0x431229
cmp byte [edx + 4], 0x59
jne 0x431229
add dword [ebx + 0xc8], 5
add dword [ecx + 0x20], 5
lea eax, [edx + 5]
mov dword [ecx + 0x10], eax
cmp byte [edx + 5], 0x25
jne 0x4311fc
push ebx
call fcn.0042b82f
pop edi
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
jne 0x43121f
push 0xfa
push edx
call fcn.0044a955
pop edx
test eax, eax
pop ecx
jg 0x43121f
push ebx
call fcn.00429b91
pop eax
mov edi, 1
jmp 0x4312d8
mov edx, dword [ecx + 0x10]
cmp byte [edx], 0x41
jne 0x431285
cmp byte [edx + 1], 0x4e
jne 0x431285
cmp byte [edx + 2], 0x59
jne 0x431285
add dword [ebx + 0xc8], 3
add dword [ecx + 0x20], 3
lea eax, [edx + 3]
mov dword [ecx + 0x10], eax
cmp byte [edx + 3], 0x25
jne 0x43125b
push ebx
call fcn.0042b82f
pop edi
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
jne 0x43127e
push 0xfa
push edx
call fcn.0044a955
pop edx
test eax, eax
pop ecx
jg 0x43127e
push ebx
call fcn.00429b91
pop eax
mov edi, 2
jmp 0x4312d8
mov eax, dword [ecx + 0x10]
mov al, byte [eax]
cmp al, 0x28
jne 0x4312a2
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
push ebx
call fcn.00430f86
add esp, 0xc
mov edi, eax
jmp 0x4312d8
cmp al, 0x25
jne 0x4312be
cmp dword [ebx + 0x60], 0
jne 0x4312be
cmp dword [ebx + 0x28], 1
jne 0x4312be
push str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
mov edx, 0x15
jmp 0x4312c8
push str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
mov edx, 0x36
mov eax, ebx
call fcn.00429123
pop eax
or eax, 0xffffffff
jmp 0x43138e
push ebx
call fcn.0042f05b
jmp 0x4312ec
cmp dword [ebx + 0x28], 1
jle 0x4312f8
push ebx
call fcn.00429b91
pop eax
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x4312e0
push ebx
call fcn.0042f05b
mov edx, dword [ebx + 0x24]
pop ecx
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x3e
je 0x43131b
mov eax, ebx
mov edx, 0x49
push 0
call fcn.00428ea9
pop eax
jmp 0x43137a
cmp esi, edx
je 0x431331
mov edx, 0x5a
mov eax, ebx
push str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
call fcn.00429123
pop esi
push ebx
call fcn.0044aa83
mov edx, dword [ebx]
pop ecx
test edx, edx
je 0x43137a
cmp dword [ebx + 0xd4], 0
jne 0x43137a
cmp dword [edx + 0x24], 0
je 0x43137a
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x43135b
mov dword [eax + 0x14], 0
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x14]
push dword [ebx + 4]
call dword [edx + 0x24]
mov eax, dword [ebp - 0x10]
add esp, 0x10
test eax, eax
je 0x43138c
cmp dword [eax + 0x14], 0
jne 0x43138c
jmp 0x431381
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x43138c
push eax
push dword [ebx + 8]
call fcn.0043a0c2
pop eax
pop edx
mov eax, edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret