Function at 0x423d10
Capabilities:
Parse pe header

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
or esi, 0xffffffff
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x1c], 0
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x3c
je 0x423d40
add esp, 0x2c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [edx + 1], 0x21
jne 0x423d31
cmp byte [edx + 2], 0x45
jne 0x423d31
cmp byte [edx + 3], 0x4c
jne 0x423d31
cmp byte [edx + 4], 0x45
jne 0x423d31
cmp byte [edx + 5], 0x4d
jne 0x423d31
cmp byte [edx + 6], 0x45
jne 0x423d31
cmp byte [edx + 7], 0x4e
jne 0x423d31
cmp byte [edx + 8], 0x54
jne 0x423d31
add dword [ebx + 0xc8], 9
add dword [eax + 0x20], 9
lea ecx, [edx + 9]
mov edi, eax
mov dword [eax + 0x10], ecx
cmp byte [edx + 9], 0x25
jne 0x423d94
mov dword [esp], ebx
call fcn.0041b270
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
je 0x423e71
mov eax, dword [eax + 0x10]
mov al, byte [eax]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x423dc6
cmp al, 0x20
je 0x423dc6
cmp al, 0xd
je 0x423dc6
mov ecx, str.Space_required_after_ELEMENT_n
mov edx, 0x41
mov eax, ebx
call fcn.00418120
mov dword [esp], ebx
call fcn.00420c40
mov dword [esp], ebx
call fcn.0041d710
mov ebp, eax
test eax, eax
jne 0x423def
jmp 0x42408b
cmp dword [ebx + 0x28], 1
jle 0x423e0b
mov dword [esp], ebx
call fcn.0041a1a0
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
mov al, byte [eax]
test al, al
je 0x423de1
lea edx, [eax - 9]
cmp dl, 1
jbe 0x423e1c
cmp al, 0x20
je 0x423e1c
cmp al, 0xd
je 0x423e1c
mov ecx, str.Space_required_after_the_element_name_n
mov edx, 0x41
mov eax, ebx
call fcn.00418120
mov dword [esp], ebx
call fcn.00420c40
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov cl, byte [edx]
cmp cl, 0x45
je 0x423ff0
cmp cl, 0x41
je 0x423ece
cmp cl, 0x28
je 0x423e95
cmp cl, 0x25
jne 0x423e58
cmp dword [ebx + 0x60], 0
jne 0x423e58
cmp dword [ebx + 0x28], 1
je 0x42404c
mov ecx, str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
mov edx, 0x36
mov eax, ebx
or esi, 0xffffffff
call fcn.00418120
jmp 0x423d31
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.00446980
test eax, eax
jg 0x423e8d
mov dword [esp], ebx
call fcn.0041a1a0
mov eax, dword [ebx + 0x24]
jmp 0x423da0
lea eax, [esp + 0x1c]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00423c10
mov esi, eax
mov dword [esp], ebx
call fcn.00420c40
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
jne 0x423f0f
cmp dword [ebx + 0x28], 1
jle 0x423f0f
mov dword [esp], ebx
call fcn.0041a1a0
jmp 0x423eb3
cmp byte [edx + 1], 0x4e
jne 0x423e58
cmp byte [edx + 2], 0x59
jne 0x423e58
add dword [ebx + 0xc8], 3
add dword [eax + 0x20], 3
lea ecx, [edx + 3]
mov dword [eax + 0x10], ecx
cmp byte [edx + 3], 0x25
jne 0x423f00
mov dword [esp], ebx
call fcn.0041b270
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
je 0x423f50
mov esi, 2
jmp 0x423eab
mov dword [esp], ebx
call fcn.00420c40
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x3e
je 0x423f6e
xor ecx, ecx
mov eax, ebx
mov edx, 0x49
call fcn.00417fb0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x423d31
mov dword [esp + 4], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.004304b0
jmp 0x423d31
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.00446980
test eax, eax
jg 0x423f08
mov dword [esp], ebx
call fcn.0041a1a0
jmp 0x423f08
cmp edi, eax
je 0x423f83
mov ecx, str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x5a
mov eax, ebx
call fcn.00418120
mov dword [esp], ebx
call fcn.00446ac0
mov eax, dword [ebx]
test eax, eax
je 0x423fdf
cmp dword [ebx + 0xd4], 0
jne 0x423fdf
mov edx, dword [eax + 0x24]
test edx, edx
je 0x423fdf
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x423fb0
mov dword [eax + 0x14], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov eax, dword [ebx + 4]
mov dword [esp], eax
call edx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x423d31
cmp dword [eax + 0x14], 0
jne 0x423d31
jmp 0x423f3c
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x423f3c
jmp 0x423d31
cmp byte [edx + 1], 0x4d
jne 0x423e58
cmp byte [edx + 2], 0x50
jne 0x423e58
cmp byte [edx + 3], 0x54
jne 0x423e58
cmp byte [edx + 4], 0x59
jne 0x423e58
add dword [ebx + 0xc8], 5
add dword [eax + 0x20], 5
lea ecx, [edx + 5]
mov dword [eax + 0x10], ecx
cmp byte [edx + 5], 0x25
jne 0x42403a
mov dword [esp], ebx
call fcn.0041b270
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
je 0x424065
mov esi, 1
jmp 0x423eab
mov ecx, str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
mov edx, 0x15
mov eax, ebx
or esi, 0xffffffff
call fcn.00418120
jmp 0x423d31
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.00446980
test eax, eax
jg 0x424042
mov dword [esp], ebx
mov esi, 1
call fcn.0041a1a0
jmp 0x423eab
mov ecx, str.xmlParseElementDecl:_no_name_for_Element_n
mov edx, 0x44
mov eax, ebx
or esi, 0xffffffff
call fcn.00418120
jmp 0x423d31