Function at 0x4a8bb0
Capabilities:
Parse pe header

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
or ebx, 0xffffffff
push edi
xor edi, edi
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3c
jne 0x4a8e89
cmp byte [eax + 1], 0x21
jne 0x4a8e89
cmp byte [eax + 2], 0x45
jne 0x4a8e89
cmp byte [eax + 3], 0x4c
jne 0x4a8e89
cmp byte [eax + 4], 0x45
jne 0x4a8e89
cmp byte [eax + 5], 0x4d
jne 0x4a8e89
cmp byte [eax + 6], 0x45
jne 0x4a8e89
cmp byte [eax + 7], 0x4e
jne 0x4a8e89
cmp byte [eax + 8], 0x54
jne 0x4a8e89
mov eax, dword [ecx + 0x38]
add dword [esi + 0xc8], 9
add dword [ecx + 0x10], 9
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x24]
add dword [eax + 0x20], 9
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x4a8c4e
push 0xfa
push ecx
call fcn.004c19d0
add esp, 8
push esi
call fcn.004b1e70
add esp, 4
test eax, eax
jne 0x4a8c73
push str.Space_required_after_ELEMENT_n
push 0x41
push esi
call fcn.004a2c80
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
push esi
call fcn.004ac2d0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x4a8c9a
push str.xmlParseElementDecl:_no_name_for_Element_n
push 0x44
push esi
call fcn.004a2c80
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
push esi
call fcn.004b1e70
add esp, 4
test eax, eax
jne 0x4a8cb7
push str.Space_required_after_the_element_name_n
push 0x41
push esi
call fcn.004a2c80
add esp, 0xc
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 0x10]
mov cl, byte [eax]
cmp cl, 0x45
jne 0x4a8d11
cmp byte [eax + 1], 0x4d
jne 0x4a8d11
cmp byte [eax + 2], 0x50
jne 0x4a8d11
cmp byte [eax + 3], 0x54
jne 0x4a8d11
cmp byte [eax + 4], 0x59
jne 0x4a8d11
add dword [esi + 0xc8], 5
add dword [edx + 0x10], 5
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 0x4a8d07
push 0xfa
push ecx
call fcn.004c19d0
add esp, 8
mov ebx, 1
jmp 0x4a8e03
cmp cl, 0x41
jne 0x4a8d57
cmp byte [eax + 1], 0x4e
jne 0x4a8d57
cmp byte [eax + 2], 0x59
jne 0x4a8d57
add dword [esi + 0xc8], 3
add dword [edx + 0x10], 3
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 0x4a8d4d
push 0xfa
push ecx
call fcn.004c19d0
add esp, 8
mov ebx, 2
jmp 0x4a8e03
cmp cl, 0x28
jne 0x4a8eff
mov ebx, dword [edx + 0x38]
xor edi, edi
push esi
call fcn.004c1530
add esp, 4
cmp dword [esi + 0x124], edi
jne 0x4a8d90
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x4a8d90
push esi
call fcn.004a2e50
add esp, 4
cmp dword [esi + 0xac], 0xffffffff
jne 0x4a8d9e
or ebx, 0xffffffff
jmp 0x4a8e03
push esi
call fcn.004b1e70
mov eax, dword [esi + 0x24]
add esp, 4
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x23
jne 0x4a8de7
cmp byte [eax + 1], 0x50
jne 0x4a8de7
cmp byte [eax + 2], 0x43
jne 0x4a8de7
cmp byte [eax + 3], 0x44
jne 0x4a8de7
cmp byte [eax + 4], 0x41
jne 0x4a8de7
cmp byte [eax + 5], 0x54
jne 0x4a8de7
cmp byte [eax + 6], 0x41
jne 0x4a8de7
push ebx
push esi
call fcn.004a8fe0
add esp, 8
mov ebx, 3
jmp 0x4a8df8
push 1
push ebx
push esi
call fcn.004a84c0
add esp, 0xc
mov ebx, 4
push esi
mov edi, eax
call fcn.004b1e70
add esp, 4
push esi
call fcn.004b1e70
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3e
je 0x4a8e90
cmp dword [esi + 0xd4], 0
je 0x4a8e29
cmp dword [esi + 0xac], 0xffffffff
je 0x4a8e79
push str.expected__
push 0x5d4848
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.004b77e0
add esp, 0x44
mov dword [esi + 0xc], 0
cmp dword [esi + 0x120], 0
jne 0x4a8e79
mov dword [esi + 0xd4], 1
test edi, edi
je 0x4a8e89
push edi
push dword [esi + 8]
call fcn.004be8e0
add esp, 8
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
ret
mov eax, dword [esp + 0x14]
cmp eax, dword [ecx + 0x38]
je 0x4a8ea9
push str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
push 0x5a
push esi
call fcn.004a2c80
add esp, 0xc
push esi
call fcn.004c1530
mov eax, dword [esi]
add esp, 4
test eax, eax
je 0x4a8e79
cmp dword [esi + 0xd4], 0
jne 0x4a8e79
cmp dword [eax + 0x24], 0
je 0x4a8e79
test edi, edi
je 0x4a8ed4
mov dword [edi + 0x14], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
push edi
push ebx
push ebp
push dword [esi + 4]
call eax
add esp, 0x10
test edi, edi
je 0x4a8e89
cmp dword [edi + 0x14], 0
jne 0x4a8e89
push edi
push dword [esi + 8]
call fcn.004be8e0
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
ret
cmp cl, 0x25
jne 0x4a8f2c
cmp dword [esi + 0x60], edi
jne 0x4a8f2c
cmp dword [esi + 0x28], 1
jne 0x4a8f2c
mov ecx, str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
mov eax, 0x15
push ecx
push eax
push esi
call fcn.004a2c80
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
mov eax, 0x36
push ecx
push eax
push esi
call fcn.004a2c80
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret