Function at 0x459980
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
or ebx, 0xffffffff
push edi
xor edi, edi
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3c
jne 0x459c68
cmp byte [eax + 1], 0x21
jne 0x459c68
cmp byte [eax + 2], 0x45
jne 0x459c68
cmp byte [eax + 3], 0x4c
jne 0x459c68
cmp byte [eax + 4], 0x45
jne 0x459c68
cmp byte [eax + 5], 0x4d
jne 0x459c68
cmp byte [eax + 6], 0x45
jne 0x459c68
cmp byte [eax + 7], 0x4e
jne 0x459c68
cmp byte [eax + 8], 0x54
jne 0x459c68
mov edx, dword [ecx + 0x38]
add eax, 9
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x24]
mov dword [ebp + 8], edx
add dword [eax + 0x20], 9
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x459a1a
push 0xfa
push ecx
call fcn.00489520
add esp, 8
push esi
call fcn.00464500
add esp, 4
test eax, eax
jne 0x459a41
push str.Space_required_after_ELEMENT_n
push 0x41
push esi
call fcn.00452f90
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.0045d980
add esp, 4
mov dword [ebp - 4], eax
test eax, eax
jne 0x459a6b
push str.xmlParseElementDecl:_no_name_for_Element_n
push 0x44
push esi
call fcn.00452f90
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.00464500
add esp, 4
test eax, eax
jne 0x459a88
push str.Space_required_after_the_element_name_n
push 0x41
push esi
call fcn.00452f90
add esp, 0xc
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 0x10]
mov cl, byte [eax]
cmp cl, 0x45
jne 0x459aed
cmp byte [eax + 1], 0x4d
jne 0x459d83
cmp byte [eax + 2], 0x50
jne 0x459d83
cmp byte [eax + 3], 0x54
jne 0x459d83
cmp byte [eax + 4], 0x59
jne 0x459d83
add eax, 5
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x24]
add dword [eax + 0x20], 5
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x459ae3
push 0xfa
push ecx
call fcn.00489520
add esp, 8
mov ebx, 1
jmp 0x459be2
cmp cl, 0x41
jne 0x459b36
cmp byte [eax + 1], 0x4e
jne 0x459d83
cmp byte [eax + 2], 0x59
jne 0x459d83
add eax, 3
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x24]
add dword [eax + 0x20], 3
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x459b2c
push 0xfa
push ecx
call fcn.00489520
add esp, 8
mov ebx, 2
jmp 0x459be2
cmp cl, 0x28
jne 0x459d39
mov ebx, dword [edx + 0x38]
xor edi, edi
push esi
call fcn.00488f50
add esp, 4
cmp dword [esi + 0x124], edi
jne 0x459b6f
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x459b6f
push esi
call fcn.00453070
add esp, 4
cmp dword [esi + 0xac], 0xffffffff
jne 0x459b7d
or ebx, 0xffffffff
jmp 0x459be2
push esi
call fcn.00464500
mov eax, dword [esi + 0x24]
add esp, 4
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x23
jne 0x459bc6
cmp byte [eax + 1], 0x50
jne 0x459bc6
cmp byte [eax + 2], 0x43
jne 0x459bc6
cmp byte [eax + 3], 0x44
jne 0x459bc6
cmp byte [eax + 4], 0x41
jne 0x459bc6
cmp byte [eax + 5], 0x54
jne 0x459bc6
cmp byte [eax + 6], 0x41
jne 0x459bc6
push ebx
push esi
call fcn.00459eb0
add esp, 8
mov ebx, 3
jmp 0x459bd7
push 1
push ebx
push esi
call fcn.004591c0
add esp, 0xc
mov ebx, 4
push esi
mov edi, eax
call fcn.00464500
add esp, 4
push esi
call fcn.00464500
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3e
je 0x459c71
cmp dword [esi + 0xd4], 0
je 0x459c08
cmp dword [esi + 0xac], 0xffffffff
je 0x459c58
push 0x501f38
push 0x502258
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
push 0x49
push 1
push 0
push esi
push 0
push 0
push 0
mov dword [esi + 0x54], 0x49
call fcn.00465410
add esp, 0x44
mov dword [esi + 0xc], 0
cmp dword [esi + 0x120], 0
jne 0x459c58
mov dword [esi + 0xd4], 1
test edi, edi
je 0x459c68
push edi
push dword [esi + 8]
call fcn.0047e9c0
add esp, 8
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
cmp eax, dword [ecx + 0x38]
je 0x459cdb
cmp dword [esi + 0xd4], 0
je 0x459c8b
cmp dword [esi + 0xac], 0xffffffff
je 0x459cdb
push str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
push 0x523a30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
push 0x5a
push 1
push 0
push esi
push 0
push 0
push 0
mov dword [esi + 0x54], 0x5a
call fcn.00465410
add esp, 0x44
mov dword [esi + 0xc], 0
cmp dword [esi + 0x120], 0
jne 0x459cdb
mov dword [esi + 0xd4], 1
push esi
call fcn.00488f50
mov eax, dword [esi]
add esp, 4
test eax, eax
je 0x459c58
cmp dword [esi + 0xd4], 0
jne 0x459c58
cmp dword [eax + 0x24], 0
je 0x459c58
test edi, edi
je 0x459d12
mov dword [edi + 0x14], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
push edi
push ebx
push dword [ebp - 4]
push dword [esi + 4]
call eax
add esp, 0x10
test edi, edi
je 0x459c68
cmp dword [edi + 0x14], 0
jne 0x459c68
jmp 0x459c5c
cmp cl, 0x25
jne 0x459d83
cmp dword [esi + 0x60], edi
jne 0x459d83
cmp dword [esi + 0x28], 1
jne 0x459d83
cmp dword [esi + 0xd4], edi
je 0x459d5e
cmp dword [esi + 0xac], 0xffffffff
je 0x459ddf
push str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
push 0x523a30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x15
push 0x15
jmp 0x459db7
cmp dword [esi + 0xd4], edi
je 0x459d94
cmp dword [esi + 0xac], 0xffffffff
je 0x459ddf
push str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
push 0x523a30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 3
mov dword [esi + 0x54], 0x36
push 0x36
push 1
push 0
push esi
push 0
push 0
push 0
call fcn.00465410
add esp, 0x44
mov dword [esi + 0xc], edi
cmp dword [esi + 0x120], edi
jne 0x459ddf
mov dword [esi + 0xd4], 1
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret