Function at 0x411ac0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xc
mov dword [ebp - 0x10], 0
mov ebx, dword [ebp + 8]
or edi, 0xffffffff
mov esi, dword [ebx + 0x24]
mov ecx, esi
mov edx, dword [esi + 0x10]
cmp byte [edx], 0x3c
je 0x411af0
mov eax, edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [edx + 1], 0x21
jne 0x411ae3
cmp byte [edx + 2], 0x45
jne 0x411ae3
cmp byte [edx + 3], 0x4c
jne 0x411ae3
cmp byte [edx + 4], 0x45
jne 0x411ae3
cmp byte [edx + 5], 0x4d
jne 0x411ae3
cmp byte [edx + 6], 0x45
jne 0x411ae3
cmp byte [edx + 7], 0x4e
jne 0x411ae3
cmp byte [edx + 8], 0x54
jne 0x411ae3
mov eax, dword [ebx + 0xc8]
mov edi, dword [esi + 0x20]
add eax, 9
add edi, 9
mov dword [ebx + 0xc8], eax
lea eax, [edx + 9]
mov dword [esi + 0x10], eax
mov dword [esi + 0x20], edi
cmp byte [edx + 9], 0x25
jne 0x411b53
sub esp, 0xc
push ebx
call fcn.00408c00
add esp, 0x10
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
je 0x411bd1
mov eax, dword [ecx + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
lea eax, [ecx - 9]
setne dl
cmp al, 1
seta al
and eax, 0xff
test edx, eax
je 0x411b93
cmp cl, 0xd
je 0x411b93
sub esp, 0xc
mov edx, 0x41
mov eax, ebx
push str.Space_required_after_ELEMENT_n
call fcn.00406030
add esp, 0x10
sub esp, 0xc
push ebx
call fcn.0040ede0
mov dword [esp], ebx
call fcn.0040b680
add esp, 0x10
test eax, eax
mov dword [ebp - 0x14], eax
je 0x411ca1
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x411bf9
cmp dword [ebx + 0x28], 1
jle 0x411bf9
sub esp, 0xc
push ebx
call fcn.00406f90
add esp, 0x10
jmp 0x411bb2
push eax
push eax
push 0xfa
push ecx
call fcn.00453850
add esp, 0x10
test eax, eax
jg 0x411bf1
sub esp, 0xc
push ebx
call fcn.00406f90
add esp, 0x10
mov ecx, dword [ebx + 0x24]
jmp 0x411b5b
mov eax, dword [ecx + 0x10]
mov cl, byte [eax]
cmp cl, 0x20
lea eax, [ecx - 9]
setne dl
cmp al, 1
seta al
and eax, 0xff
test edx, eax
je 0x411c31
cmp cl, 0xd
je 0x411c31
sub esp, 0xc
mov edx, 0x41
mov eax, ebx
push str.Space_required_after_the_element_name_n
call fcn.00406030
add esp, 0x10
sub esp, 0xc
push ebx
call fcn.0040ede0
mov ecx, dword [ebx + 0x24]
add esp, 0x10
mov edx, dword [ecx + 0x10]
cmp byte [edx], 0x45
je 0x411d95
mov edx, dword [ecx + 0x10]
cmp byte [edx], 0x41
je 0x411d3c
mov eax, dword [ecx + 0x10]
mov al, byte [eax]
cmp al, 0x28
jne 0x411d0b
lea eax, [ebp - 0x10]
push edx
push eax
mov eax, dword [ebp - 0x14]
push eax
push ebx
call fcn.004119c0
add esp, 0x10
mov edi, eax
sub esp, 0xc
push ebx
call fcn.0040ede0
mov eax, dword [ebx + 0x24]
add esp, 0x10
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
jne 0x411cbd
cmp dword [ebx + 0x28], 1
jle 0x411cbd
sub esp, 0xc
push ebx
call fcn.00406f90
jmp 0x411c82
sub esp, 0xc
mov edx, 0x44
mov eax, ebx
push str.xmlParseElementDecl:_no_name_for_Element_n
call fcn.00406030
or eax, 0xffffffff
jmp 0x411ae5
sub esp, 0xc
push ebx
call fcn.0040ede0
mov edx, dword [ebx + 0x24]
add esp, 0x10
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x3e
je 0x411e4d
sub esp, 0xc
mov edx, 0x49
mov eax, ebx
push 0
call fcn.00405c40
add esp, 0x10
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x411ae3
push edx
push edx
push eax
mov eax, dword [ebx + 8]
push eax
call fcn.00457b30
add esp, 0x10
jmp 0x411ae3
cmp al, 0x25
jne 0x411d20
mov eax, dword [ebx + 0x60]
test eax, eax
jne 0x411d20
cmp dword [ebx + 0x28], 1
je 0x411ed3
sub esp, 0xc
mov edx, 0x36
push str.xmlParseElementDecl:_EMPTY__ANY_or___expected_n
mov eax, ebx
call fcn.00406030
add esp, 0x10
jmp 0x411cb5
cmp byte [edx + 1], 0x4e
jne 0x411c58
cmp byte [edx + 2], 0x59
jne 0x411c58
mov eax, dword [ebx + 0xc8]
add eax, 3
mov dword [ebx + 0xc8], eax
lea eax, [edx + 3]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x20]
add eax, 3
mov dword [ecx + 0x20], eax
cmp byte [edx + 3], 0x25
jne 0x411d83
sub esp, 0xc
push ebx
call fcn.00408c00
add esp, 0x10
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
je 0x411e02
mov edi, 2
jmp 0x411c79
cmp byte [edx + 1], 0x4d
jne 0x411c4c
cmp byte [edx + 2], 0x50
jne 0x411c4c
cmp byte [edx + 3], 0x54
jne 0x411c4c
cmp byte [edx + 4], 0x59
jne 0x411c4c
mov eax, dword [ebx + 0xc8]
add eax, 5
mov dword [ebx + 0xc8], eax
lea eax, [edx + 5]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x20]
add eax, 5
mov dword [ecx + 0x20], eax
cmp byte [edx + 5], 0x25
jne 0x411df0
sub esp, 0xc
push ebx
call fcn.00408c00
add esp, 0x10
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
je 0x411e2b
mov edi, 1
jmp 0x411c79
push edi
push edi
push 0xfa
push ecx
call fcn.00453850
add esp, 0x10
test eax, eax
jg 0x411d8b
sub esp, 0xc
push ebx
call fcn.00406f90
add esp, 0x10
jmp 0x411d8b
push eax
push eax
push 0xfa
push ecx
call fcn.00453850
add esp, 0x10
test eax, eax
jg 0x411df8
sub esp, 0xc
push ebx
call fcn.00406f90
add esp, 0x10
jmp 0x411df8
cmp edx, esi
je 0x411e68
sub esp, 0xc
mov edx, 0x5a
mov eax, ebx
push str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
call fcn.00406030
add esp, 0x10
sub esp, 0xc
push ebx
call fcn.00453a10
mov edx, dword [ebx]
add esp, 0x10
test edx, edx
je 0x411cec
mov eax, dword [ebx + 0xd4]
test eax, eax
jne 0x411cec
mov eax, dword [edx + 0x24]
test eax, eax
je 0x411cec
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x411ea5
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
push edi
push eax
mov esi, dword [ebx + 4]
push esi
call dword [edx + 0x24]
mov eax, dword [ebp - 0x10]
add esp, 0x10
test eax, eax
je 0x411ae3
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x411ae3
jmp 0x411cf7
sub esp, 0xc
mov edx, 0x15
push str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
jmp 0x411d2d