Function at 0x4479e0
Capabilities:
Parse pe header

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x24]
push edi
push 0xfa
xor ebx, ebx
push eax
or edi, 0xffffffff
mov dword [esp + 0x14], ebx
call fcn.0046bc50
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
mov dl, byte [ecx]
add esp, 8
test dl, dl
jne 0x447a2b
push 0xfa
push eax
call fcn.0046bc50
add esp, 8
test eax, eax
jg 0x447a2b
push esi
call fcn.00440510
add esp, 4
cmp dword [esi + 0x98], ebx
jne 0x447e98
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
movzx edx, byte [eax]
cmp edx, 0x3c
jne 0x447e98
cmp byte [eax + 1], 0x21
jne 0x447e98
cmp byte [eax + 2], 0x45
jne 0x447e98
cmp byte [eax + 3], 0x4c
jne 0x447e98
cmp byte [eax + 4], 0x45
jne 0x447e98
cmp byte [eax + 5], 0x4d
jne 0x447e98
cmp byte [eax + 6], 0x45
jne 0x447e98
cmp byte [eax + 7], 0x4e
jne 0x447e98
cmp byte [eax + 8], 0x54
jne 0x447e98
mov eax, dword [esi + 0xb0]
mov edi, 9
add eax, edi
mov dword [esi + 0xb0], eax
add dword [ecx + 0x10], edi
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x10], ecx
cmp byte [eax], 0x25
jne 0x447ac7
push esi
call fcn.004430b0
add esp, 4
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0
jne 0x447aed
push 0xfa
push eax
call fcn.0046bc50
add esp, 8
test eax, eax
jg 0x447aed
push esi
call fcn.00440510
add esp, 4
mov eax, dword [esi + 0x98]
cmp eax, ebx
je 0x447afb
mov ecx, eax
jmp 0x447b04
mov edx, dword [esi + 0x24]
mov ecx, dword [edx + 0x10]
movzx ecx, byte [ecx]
cmp ecx, 0x20
je 0x447b75
cmp eax, ebx
je 0x447b11
mov ecx, eax
jmp 0x447b1a
mov edx, dword [esi + 0x24]
mov ecx, dword [edx + 0x10]
movzx ecx, byte [ecx]
cmp ecx, edi
je 0x447b75
cmp eax, ebx
je 0x447b26
mov ecx, eax
jmp 0x447b2f
mov edx, dword [esi + 0x24]
mov ecx, dword [edx + 0x10]
movzx ecx, byte [ecx]
cmp ecx, 0xa
je 0x447b75
cmp eax, ebx
jne 0x447b41
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 0x10]
movzx eax, byte [eax]
cmp eax, 0xd
je 0x447b75
mov eax, dword [esi]
cmp eax, ebx
mov dword [esi + 0x54], 0x41
je 0x447b68
mov eax, dword [eax + 0x58]
cmp eax, ebx
je 0x447b68
mov ecx, dword [esi + 4]
push str.Space_required_after_ELEMENT_n
push ecx
call eax
add esp, 8
mov dword [esi + 0xc], ebx
mov dword [esi + 0xbc], 1
push esi
call fcn.00441df0
push esi
call fcn.00443410
add esp, 8
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x447bc5
mov eax, dword [esi]
cmp eax, ebx
mov dword [esi + 0x54], 0x44
je 0x447bae
mov eax, dword [eax + 0x58]
cmp eax, ebx
je 0x447bae
mov edx, dword [esi + 4]
push str.xmlParseElementDecl:_no_name_for_Element_n
push edx
call eax
add esp, 8
pop edi
mov dword [esi + 0xc], ebx
mov dword [esi + 0xbc], 1
pop esi
or eax, 0xffffffff
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0x98]
cmp eax, ebx
je 0x447bd3
mov ecx, eax
jmp 0x447bdc
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx + 0x10]
movzx ecx, byte [edx]
cmp ecx, 0x20
je 0x447c4d
cmp eax, ebx
je 0x447be9
mov ecx, eax
jmp 0x447bf2
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx + 0x10]
movzx ecx, byte [edx]
cmp ecx, edi
je 0x447c4d
cmp eax, ebx
je 0x447bfe
mov ecx, eax
jmp 0x447c07
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx + 0x10]
movzx ecx, byte [edx]
cmp ecx, 0xa
je 0x447c4d
cmp eax, ebx
jne 0x447c19
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
movzx eax, byte [ecx]
cmp eax, 0xd
je 0x447c4d
mov eax, dword [esi]
cmp eax, ebx
mov dword [esi + 0x54], 0x41
je 0x447c40
mov eax, dword [eax + 0x58]
cmp eax, ebx
je 0x447c40
mov edx, dword [esi + 4]
push str.Space_required_after_the_element_name_n
push edx
call eax
add esp, 8
mov dword [esi + 0xc], ebx
mov dword [esi + 0xbc], 1
push esi
call fcn.00441df0
mov edi, dword [esi + 0x98]
add esp, 4
test edi, edi
mov bl, 0x59
jne 0x447edf
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
movzx edx, byte [eax]
cmp edx, 0x45
jne 0x447ce5
cmp byte [eax + 1], 0x4d
jne 0x447ce5
cmp byte [eax + 2], 0x50
jne 0x447ce5
cmp byte [eax + 3], 0x54
jne 0x447ce5
cmp byte [eax + 4], bl
jne 0x447ce5
mov edi, dword [esi + 0xb0]
mov eax, 5
add edi, eax
mov dword [esi + 0xb0], edi
add dword [ecx + 0x10], eax
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x25
jne 0x447cb5
push esi
call fcn.004430b0
add esp, 4
mov eax, dword [esi + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x447cdb
push 0xfa
push eax
call fcn.0046bc50
add esp, 8
test eax, eax
jg 0x447cdb
push esi
call fcn.00440510
add esp, 4
mov edi, 1
jmp 0x447d8c
test edi, edi
jne 0x447edf
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx]
cmp edx, 0x41
jne 0x447d5d
cmp byte [ecx + 1], 0x4e
jne 0x447d5d
cmp byte [ecx + 2], bl
jne 0x447d5d
mov edi, dword [esi + 0xb0]
mov ecx, 3
add edi, ecx
mov dword [esi + 0xb0], edi
add dword [eax + 0x10], ecx
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x25
jne 0x447d30
push esi
call fcn.004430b0
add esp, 4
mov eax, dword [esi + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x447d56
push 0xfa
push eax
call fcn.0046bc50
add esp, 8
test eax, eax
jg 0x447d56
push esi
call fcn.00440510
add esp, 4
mov edi, 2
jmp 0x447d8c
test edi, edi
jne 0x447edf
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
movzx eax, byte [ecx]
cmp eax, 0x28
jne 0x447ea1
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc]
push edx
push eax
push esi
call fcn.00447880
add esp, 0xc
mov edi, eax
push esi
call fcn.00441df0
mov ebx, 1
mov eax, dword [esi + 0x98]
add esp, 4
test eax, eax
jne 0x447dbe
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx + 0x10]
movzx eax, byte [edx]
test eax, eax
jne 0x447dbe
cmp dword [esi + 0x28], ebx
jle 0x447dbe
push esi
call fcn.00440510
jmp 0x447d97
push esi
call fcn.00441df0
mov eax, dword [esi + 0x98]
add esp, 4
test eax, eax
jne 0x447ddf
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x10]
movzx ecx, byte [ecx]
cmp ecx, 0x3e
je 0x447e10
mov eax, dword [esi]
test eax, eax
mov dword [esi + 0x54], 0x49
je 0x447e01
mov eax, dword [eax + 0x58]
test eax, eax
je 0x447e01
mov edx, dword [esi + 4]
push str.xmlParseElementDecl:_expected___at_the_end_n
push edx
call eax
add esp, 8
mov dword [esi + 0xc], 0
mov dword [esi + 0xbc], ebx
jmp 0x447e79
cmp dword [esp + 0x10], eax
je 0x447e45
mov eax, dword [esi]
test eax, eax
mov dword [esi + 0x54], 0x5a
je 0x447e38
mov eax, dword [eax + 0x58]
test eax, eax
je 0x447e38
mov ecx, dword [esi + 4]
push str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
push ecx
call eax
add esp, 8
mov dword [esi + 0xc], 0
mov dword [esi + 0xbc], ebx
push esi
call fcn.0046bd80
mov eax, dword [esi]
add esp, 4
test eax, eax
je 0x447e79
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jne 0x447e79
mov eax, dword [eax + 0x24]
test eax, eax
je 0x447e79
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esi + 4]
push edi
push ecx
push edx
call eax
add esp, 0x10
mov eax, dword [esp + 0xc]
test eax, eax
je 0x447e8a
push eax
call fcn.00464570
add esp, 4
mov eax, dword [esp + 0x18]
push eax
call dword [0x490c98]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 8
ret
test edi, edi
jne 0x447edf
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx + 0x10]
movzx eax, byte [edx]
cmp eax, 0x25
jne 0x447edf
mov eax, dword [esi + 0x60]
test eax, eax
jne 0x447edf
cmp dword [esi + 0x28], 1
jne 0x447edf
mov eax, dword [esi]
test eax, eax
mov dword [esi + 0x54], 0x15
je 0x447f01
mov eax, dword [eax + 0x58]
test eax, eax
je 0x447f01
mov ecx, dword [esi + 4]
push str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
push ecx
jmp 0x447efc
mov eax, dword [esi]
test eax, eax
mov dword [esi + 0x54], 0x36
je 0x447f01
mov eax, dword [eax + 0x58]
test eax, eax
je 0x447f01
mov edx, dword [esi + 4]
push str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
push edx
call eax
add esp, 8
mov eax, dword [esp + 0x18]
push eax
mov dword [esi + 0xc], 0
mov dword [esi + 0xbc], 1
call dword [0x490c98]
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 8
ret