Function at 0x45efe8
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
mov dword [ebp - 0x1c], 0
mov ebx, dword [ebp + 8]
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x3c
jne 0x45f340
cmp byte [eax + 1], 0x21
jne 0x45f340
cmp byte [eax + 2], 0x45
jne 0x45f340
cmp byte [eax + 3], 0x4c
jne 0x45f340
cmp byte [eax + 4], 0x45
jne 0x45f340
cmp byte [eax + 5], 0x4d
jne 0x45f340
cmp byte [eax + 6], 0x45
jne 0x45f340
cmp byte [eax + 7], 0x4e
jne 0x45f340
cmp byte [eax + 8], 0x54
jne 0x45f340
add dword [edi + 0x10], 9
add dword [ebx + 0xc8], 9
add dword [edi + 0x20], 9
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x25
jne 0x45f079
mov dword [esp], ebx
call fcn.0045820a
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x45f0a0
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.0047ad84
test eax, eax
jg 0x45f0a0
mov dword [esp], ebx
call fcn.00456dba
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
mov al, byte [eax]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x45f0c9
cmp al, 0x20
je 0x45f0c9
cmp al, 0xd
je 0x45f0c9
mov ecx, str.Space_required_after_ELEMENT_n
mov edx, 0x41
mov eax, ebx
call fcn.00455f95
mov dword [esp], ebx
call fcn.0045a676
mov dword [esp], ebx
call fcn.00459ca8
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x45f0f7
mov ecx, str.xmlParseElementDecl:_no_name_for_Element_n
mov edx, 0x44
jmp 0x45f261
mov dword [esp], ebx
call fcn.00456dba
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
mov al, byte [eax]
test al, al
jne 0x45f109
cmp dword [ebx + 0x28], 1
jg 0x45f0ef
lea edx, [eax - 9]
cmp dl, 1
jbe 0x45f12a
cmp al, 0x20
je 0x45f12a
cmp al, 0xd
je 0x45f12a
mov ecx, str.Space_required_after_the_element_name_n
mov edx, 0x41
mov eax, ebx
call fcn.00455f95
mov dword [esp], ebx
call fcn.0045a676
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov cl, byte [edx]
cmp cl, 0x45
jne 0x45f1ba
cmp byte [edx + 1], 0x4d
jne 0x45f257
cmp byte [edx + 2], 0x50
jne 0x45f257
cmp byte [edx + 3], 0x54
jne 0x45f257
cmp byte [edx + 4], 0x59
jne 0x45f257
add dword [eax + 0x10], 5
add dword [ebx + 0xc8], 5
add dword [eax + 0x20], 5
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x45f186
mov dword [esp], ebx
call fcn.0045820a
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x45f26d
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.0047ad84
test eax, eax
jg 0x45f26d
mov dword [esp], ebx
call fcn.00456dba
jmp 0x45f26d
cmp cl, 0x41
jne 0x45f21b
cmp byte [edx + 1], 0x4e
jne 0x45f257
cmp byte [edx + 2], 0x59
jne 0x45f257
add dword [eax + 0x10], 3
add dword [ebx + 0xc8], 3
add dword [eax + 0x20], 3
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x45f1f2
mov dword [esp], ebx
call fcn.0045820a
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x45f274
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.0047ad84
test eax, eax
jg 0x45f274
mov dword [esp], ebx
call fcn.00456dba
jmp 0x45f274
cmp cl, 0x28
jne 0x45f23a
lea eax, [ebp - 0x1c]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
call fcn.0045ef05
mov esi, eax
jmp 0x45f279
cmp cl, 0x25
jne 0x45f257
cmp dword [ebx + 0x60], 0
jne 0x45f257
cmp dword [ebx + 0x28], 1
jne 0x45f257
mov ecx, str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
mov edx, 0x15
jmp 0x45f261
mov ecx, str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
mov edx, 0x36
mov eax, ebx
call fcn.00455f95
jmp 0x45f340
mov esi, 1
jmp 0x45f279
mov esi, 2
mov dword [esp], ebx
call fcn.0045a676
jmp 0x45f28b
mov dword [esp], ebx
call fcn.00456dba
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
jne 0x45f29c
cmp dword [ebx + 0x28], 1
jg 0x45f283
mov dword [esp], ebx
call fcn.0045a676
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x3e
je 0x45f2bf
xor ecx, ecx
mov edx, 0x49
mov eax, ebx
call fcn.00455def
jmp 0x45f328
cmp edi, eax
je 0x45f2d4
mov ecx, str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x5a
mov eax, ebx
call fcn.00455f95
mov dword [esp], ebx
call fcn.0047b003
mov eax, dword [ebx]
test eax, eax
je 0x45f328
cmp dword [ebx + 0xd4], 0
jne 0x45f328
cmp dword [eax + 0x24], 0
je 0x45f328
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45f2ff
mov dword [eax + 0x14], 0
mov edx, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call dword [edx + 0x24]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45f343
cmp dword [eax + 0x14], 0
jne 0x45f343
jmp 0x45f32f
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45f343
mov dword [esp + 4], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.00469cce
jmp 0x45f343
or esi, 0xffffffff
add esp, 0x3c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret