Function at 0x28ac1406
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
and dword [ebp - 4], 0
push ebx
push esi
push edi
mov edi, eax
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + 0x10]
or ebx, 0xffffffff
cmp byte [eax], 0x3c
jne 0x28ac16d4
cmp byte [eax + 1], 0x21
jne 0x28ac16d4
cmp byte [eax + 2], 0x45
jne 0x28ac16d4
cmp byte [eax + 3], 0x4c
jne 0x28ac16d4
cmp byte [eax + 4], 0x45
jne 0x28ac16d4
cmp byte [eax + 5], 0x4d
jne 0x28ac16d4
cmp byte [eax + 6], 0x45
jne 0x28ac16d4
cmp byte [eax + 7], 0x4e
jne 0x28ac16d4
cmp byte [eax + 8], 0x54
jne 0x28ac16d4
push 9
pop ebx
add dword [edi + 0xc8], ebx
add dword [ecx + 0x10], ebx
mov eax, dword [edi + 0x24]
add dword [eax + 0x20], ebx
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
mov dword [ebp - 0xc], ecx
jne 0x28ac149e
push edi
call fcn.28abb01a
pop ecx
mov esi, dword [edi + 0x24]
mov eax, dword [esi + 0x10]
cmp byte [eax], 0
jne 0x28ac14bd
push 0xfa
call fcn.28ac93d1
test eax, eax
pop ecx
jg 0x28ac14bd
call fcn.28aba9cf
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
mov al, byte [eax]
cmp al, 0x20
je 0x28ac14e3
cmp al, bl
jb 0x28ac14d1
cmp al, 0xa
jbe 0x28ac14e3
cmp al, 0xd
je 0x28ac14e3
push str.Space_required_after_ELEMENT_n
push 0x41
pop eax
call fcn.28ab990a
pop ecx
mov eax, edi
call fcn.28aba8e7
mov eax, edi
call fcn.28abc660
test eax, eax
mov dword [ebp - 8], eax
jne 0x28ac150f
push str.xmlParseElementDecl:_no_name_for_Element_n
push 0x44
jmp 0x28ac16fc
cmp dword [edi + 0x28], 1
jle 0x28ac151a
call fcn.28aba9cf
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x28ac1504
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
mov al, byte [eax]
cmp al, 0x20
je 0x28ac1540
cmp al, bl
jb 0x28ac152e
cmp al, 0xa
jbe 0x28ac1540
cmp al, 0xd
je 0x28ac1540
push str.Space_required_after_the_element_name_n
push 0x41
pop eax
call fcn.28ab990a
pop ecx
mov eax, edi
call fcn.28aba8e7
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0x10]
mov dl, byte [ecx]
cmp dl, 0x45
jne 0x28ac15b4
cmp byte [ecx + 1], 0x4d
jne 0x28ac15b4
cmp byte [ecx + 2], 0x50
jne 0x28ac15b4
cmp byte [ecx + 3], 0x54
jne 0x28ac15b4
cmp byte [ecx + 4], 0x59
jne 0x28ac15b4
add dword [edi + 0xc8], 5
add dword [eax + 0x10], 5
mov eax, dword [edi + 0x24]
add dword [eax + 0x20], 5
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x28ac1590
push edi
call fcn.28abb01a
pop ecx
mov esi, dword [edi + 0x24]
mov eax, dword [esi + 0x10]
cmp byte [eax], 0
jne 0x28ac15af
push 0xfa
call fcn.28ac93d1
test eax, eax
pop ecx
jg 0x28ac15af
call fcn.28aba9cf
xor ebx, ebx
inc ebx
jmp 0x28ac1628
cmp dl, 0x41
jne 0x28ac160d
cmp byte [ecx + 1], 0x4e
jne 0x28ac160d
cmp byte [ecx + 2], 0x59
jne 0x28ac160d
add dword [edi + 0xc8], 3
add dword [eax + 0x10], 3
mov eax, dword [edi + 0x24]
add dword [eax + 0x20], 3
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x28ac15e9
push edi
call fcn.28abb01a
pop ecx
mov esi, dword [edi + 0x24]
mov eax, dword [esi + 0x10]
cmp byte [eax], 0
jne 0x28ac1608
push 0xfa
call fcn.28ac93d1
test eax, eax
pop ecx
jg 0x28ac1608
call fcn.28aba9cf
push 2
pop ebx
jmp 0x28ac1628
cmp dl, 0x28
jne 0x28ac16db
lea eax, [ebp - 4]
push eax
push dword [ebp - 8]
mov eax, edi
call fcn.28ac1334
pop ecx
pop ecx
mov ebx, eax
mov eax, edi
call fcn.28aba8e7
jmp 0x28ac163c
cmp dword [edi + 0x28], 1
jle 0x28ac1647
call fcn.28aba9cf
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x28ac1631
mov eax, edi
call fcn.28aba8e7
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x3e
je 0x28ac166c
push 0
push edi
push 0x49
pop eax
call fcn.28ab952c
cmp dword [ebp - 4], 0
pop ecx
pop ecx
jmp 0x28ac16c5
cmp dword [ebp - 0xc], eax
je 0x28ac167f
push str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
push 0x5a
pop eax
call fcn.28ab990a
pop ecx
mov eax, edi
call fcn.28ac94ff
mov eax, dword [edi]
xor ecx, ecx
cmp eax, ecx
je 0x28ac16c2
cmp dword [edi + 0xd4], ecx
jne 0x28ac16c2
cmp dword [eax + 0x24], ecx
je 0x28ac16c2
mov esi, dword [ebp - 4]
test esi, esi
je 0x28ac16a5
and dword [esi + 0x14], ecx
mov eax, dword [edi]
push esi
push ebx
push dword [ebp - 8]
push dword [edi + 4]
call dword [eax + 0x24]
add esp, 0x10
test esi, esi
je 0x28ac16d4
cmp dword [esi + 0x14], 0
jne 0x28ac16d4
push esi
jmp 0x28ac16ca
cmp dword [ebp - 4], ecx
je 0x28ac16d4
push dword [ebp - 4]
push dword [edi + 8]
call fcn.28ad71d9
pop ecx
pop ecx
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
cmp dl, 0x25
jne 0x28ac16f5
cmp dword [edi + 0x60], 0
jne 0x28ac16f5
cmp dword [edi + 0x28], 1
jne 0x28ac16f5
push str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
push 0x15
jmp 0x28ac16fc
push str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
push 0x36
pop eax
call fcn.28ab990a
pop ecx
or eax, 0xffffffff
jmp 0x28ac16d6