Function at 0x454920
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov dword [ebp - 0x10], 0
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x24]
mov eax, dword [esi + 0x10]
cmp byte [eax], 0x3c
je 0x454950
or ebx, 0xffffffff
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [eax + 1], 0x21
jne 0x45493e
cmp byte [eax + 2], 0x45
jne 0x45493e
cmp byte [eax + 3], 0x4c
jne 0x45493e
cmp byte [eax + 4], 0x45
jne 0x45493e
cmp byte [eax + 5], 0x4d
jne 0x45493e
cmp byte [eax + 6], 0x45
jne 0x45493e
cmp byte [eax + 7], 0x4e
jne 0x45493e
cmp byte [eax + 8], 0x54
jne 0x45493e
mov ebx, dword [esi + 0x10]
mov eax, dword [edi + 0xc8]
add ebx, 9
add eax, 9
mov dword [esi + 0x10], ebx
mov ecx, dword [esi + 0x20]
add ecx, 9
mov dword [edi + 0xc8], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], ecx
mov ecx, esi
mov dl, byte [eax]
cmp dl, 0x25
jne 0x4549c1
sub esp, 0xc
push edi
call fcn.0044e900
mov ecx, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [ecx + 0x10]
mov dl, byte [eax]
test dl, dl
je 0x454aad
cmp dl, 0x20
je 0x4549eb
lea eax, [edx - 9]
cmp al, 1
jbe 0x4549eb
cmp dl, 0xd
je 0x4549eb
mov ecx, str.Space_required_after_ELEMENT_n
mov edx, 0x41
mov eax, edi
call fcn.0044c4a0
sub esp, 0xc
push edi
call fcn.00451b40
mov dword [esp], edi
call fcn.00450a70
add esp, 0x10
mov dword [ebp - 0x20], eax
test eax, eax
je 0x454d3c
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
mov dl, byte [eax]
test dl, dl
je 0x454a3c
jmp 0x454d1a
sub esp, 0xc
push edi
call fcn.0044d5b0
mov eax, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x10]
mov dl, byte [eax]
test dl, dl
jne 0x454d1a
cmp dword [edi + 0x28], 1
jg 0x454a20
mov ecx, str.Space_required_after_the_element_name_n
mov edx, 0x41
mov eax, edi
call fcn.0044c4a0
sub esp, 0xc
push edi
call fcn.00451b40
mov edx, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [edx + 0x10]
mov cl, byte [eax]
cmp cl, 0x45
je 0x454b7a
cmp cl, 0x41
je 0x454b16
cmp cl, 0x28
je 0x454ad2
cmp cl, 0x25
jne 0x454a94
mov eax, dword [edi + 0x60]
test eax, eax
jne 0x454a94
cmp dword [edi + 0x28], 1
je 0x454d6e
mov ecx, str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
mov edx, 0x36
mov eax, edi
or ebx, 0xffffffff
call fcn.0044c4a0
jmp 0x454941
push edx
push edx
push 0xfa
push ecx
call fcn.004385a0
add esp, 0x10
test eax, eax
jle 0x454d55
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
mov dl, byte [eax]
jmp 0x4549c9
lea eax, [ebp - 0x10]
push edx
push eax
mov eax, dword [ebp - 0x20]
push eax
push edi
call fcn.00454810
add esp, 0x10
mov ebx, eax
sub esp, 0xc
push edi
call fcn.00451b40
mov eax, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
jne 0x454bf2
cmp dword [edi + 0x28], 1
jle 0x454bf2
sub esp, 0xc
push edi
call fcn.0044d5b0
jmp 0x454aef
cmp byte [eax + 1], 0x4e
jne 0x454a94
cmp byte [eax + 2], 0x59
jne 0x454a94
mov eax, dword [edi + 0xc8]
mov ebx, dword [edx + 0x20]
add eax, 3
add ebx, 3
mov dword [edi + 0xc8], eax
mov eax, dword [edx + 0x10]
add eax, 3
mov dword [edx + 0x20], ebx
mov dword [edx + 0x10], eax
mov eax, dword [edx + 0x10]
mov al, byte [eax]
cmp al, 0x25
jne 0x454b68
sub esp, 0xc
push edi
call fcn.0044e900
mov edx, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [edx + 0x10]
mov al, byte [eax]
test al, al
je 0x454c3a
mov ebx, 2
jmp 0x454ae6
cmp byte [eax + 1], 0x4d
jne 0x454a94
cmp byte [eax + 2], 0x50
jne 0x454a94
cmp byte [eax + 3], 0x54
jne 0x454a94
cmp byte [eax + 4], 0x59
jne 0x454a94
mov eax, dword [edi + 0xc8]
add eax, 5
mov dword [edi + 0xc8], eax
mov eax, dword [edx + 0x10]
add eax, 5
mov dword [edx + 0x10], eax
mov eax, dword [edx + 0x20]
add eax, 5
mov dword [edx + 0x20], eax
mov eax, dword [edx + 0x10]
mov al, byte [eax]
cmp al, 0x25
jne 0x454be0
sub esp, 0xc
push edi
call fcn.0044e900
mov edx, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [edx + 0x10]
mov al, byte [eax]
test al, al
je 0x454c68
mov ebx, 1
jmp 0x454ae6
sub esp, 0xc
push edi
call fcn.00451b40
mov edx, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x3e
je 0x454c96
xor ecx, ecx
mov eax, edi
mov edx, 0x49
call fcn.0044d130
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x454941
push edx
push edx
push eax
mov eax, dword [edi + 8]
push eax
call fcn.00492d90
add esp, 0x10
jmp 0x454941
push ecx
push ecx
push 0xfa
push edx
call fcn.004385a0
add esp, 0x10
test eax, eax
jg 0x454b70
sub esp, 0xc
mov ebx, 2
push edi
call fcn.0044d5b0
add esp, 0x10
jmp 0x454ae6
push eax
push eax
push 0xfa
push edx
call fcn.004385a0
add esp, 0x10
test eax, eax
jg 0x454be8
sub esp, 0xc
mov ebx, 1
push edi
call fcn.0044d5b0
add esp, 0x10
jmp 0x454ae6
cmp esi, edx
je 0x454cab
mov ecx, str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x5a
mov eax, edi
call fcn.0044c4a0
sub esp, 0xc
push edi
call fcn.00438ac0
mov edx, dword [edi]
add esp, 0x10
test edx, edx
je 0x454d0a
mov eax, dword [edi + 0xd4]
test eax, eax
jne 0x454d0a
mov eax, dword [edx + 0x24]
test eax, eax
je 0x454d0a
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x454cdc
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x20]
push ebx
push eax
mov esi, dword [edi + 4]
push esi
call dword [edx + 0x24]
mov eax, dword [ebp - 0x10]
add esp, 0x10
test eax, eax
je 0x454941
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x454941
jmp 0x454c26
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x454c26
jmp 0x454941
cmp dl, 0x20
je 0x454a53
lea eax, [edx - 9]
cmp al, 1
jbe 0x454a53
cmp dl, 0xd
jne 0x454a42
jmp 0x454a53
mov ecx, str.xmlParseElementDecl:_no_name_for_Element_n
mov edx, 0x44
mov eax, edi
or ebx, 0xffffffff
call fcn.0044c4a0
jmp 0x454941
sub esp, 0xc
push edi
call fcn.0044d5b0
mov eax, dword [edi + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x10]
mov dl, byte [eax]
jmp 0x4549c9
mov ecx, str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
mov edx, 0x15
mov eax, edi
or ebx, 0xffffffff
call fcn.0044c4a0
jmp 0x454941