Function at 0x411f40
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 dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3c
jne 0x4122f0
cmp byte [eax + 1], 0x21
jne 0x4122f0
cmp byte [eax + 2], 0x45
jne 0x4122f0
cmp byte [eax + 3], 0x4c
jne 0x4122f0
cmp byte [eax + 4], 0x45
jne 0x4122f0
cmp byte [eax + 5], 0x4d
jne 0x4122f0
cmp byte [eax + 6], 0x45
jne 0x4122f0
cmp byte [eax + 7], 0x4e
jne 0x4122f0
cmp byte [eax + 8], 0x54
jne 0x4122f0
add dword [esi + 0xc8], 9
add dword [ecx + 0x10], 9
mov eax, dword [esi + 0x24]
add dword [eax + 0x20], 9
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x25
jne 0x411fd9
push esi
call fcn.0041b260
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x411ffc
push 0xfa
push ecx
call fcn.00433810
add esp, 8
test eax, eax
jg 0x411ffc
push esi
call fcn.0041b6e0
add esp, 4
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x10]
mov al, byte [eax]
cmp al, 0x20
je 0x41202c
cmp al, 9
jb 0x412010
cmp al, 0xa
jbe 0x41202c
cmp al, 0xd
je 0x41202c
push str.Space_required_after_ELEMENT_n
push 0x41
push esi
call fcn.0040b730
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
push esi
call fcn.0041b960
push esi
call fcn.00415650
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x412059
push str.xmlParseElementDecl:_no_name_for_Element_n
push 0x44
push esi
call fcn.0040b730
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x41207e
cmp dword [esi + 0x28], 1
jle 0x41207e
push esi
call fcn.0041b6e0
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
je 0x412064
mov eax, dword [ecx + 0x10]
mov al, byte [eax]
cmp al, 0x20
je 0x4120a3
cmp al, 9
jb 0x41208f
cmp al, 0xa
jbe 0x4120a3
cmp al, 0xd
je 0x4120a3
push str.Space_required_after_the_element_name_n
push 0x41
push esi
call fcn.0040b730
add esp, 0xc
push esi
call fcn.0041b960
mov edx, dword [esi + 0x24]
add esp, 4
mov eax, dword [edx + 0x10]
mov cl, byte [eax]
cmp cl, 0x45
jne 0x412127
cmp byte [eax + 1], 0x4d
jne 0x412127
cmp byte [eax + 2], 0x50
jne 0x412127
cmp byte [eax + 3], 0x54
jne 0x412127
cmp byte [eax + 4], 0x59
jne 0x412127
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], 0x25
jne 0x4120fa
push esi
call fcn.0041b260
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x41211d
push 0xfa
push ecx
call fcn.00433810
add esp, 8
test eax, eax
jg 0x41211d
push esi
call fcn.0041b6e0
add esp, 4
mov ebx, 1
jmp 0x41223a
cmp cl, 0x41
jne 0x41218e
cmp byte [eax + 1], 0x4e
jne 0x41218e
cmp byte [eax + 2], 0x59
jne 0x41218e
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], 0x25
jne 0x412161
push esi
call fcn.0041b260
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
jne 0x412184
push 0xfa
push ecx
call fcn.00433810
add esp, 8
test eax, eax
jg 0x412184
push esi
call fcn.0041b6e0
add esp, 4
mov ebx, 2
jmp 0x41223a
cmp cl, 0x28
jne 0x412363
mov ebx, dword [edx + 0x38]
xor edi, edi
push esi
call fcn.00433310
add esp, 4
cmp dword [esi + 0x124], edi
jne 0x4121c7
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
cmp ecx, 0xfa
jge 0x4121c7
push esi
call fcn.0040b900
add esp, 4
cmp dword [esi + 0xac], 0xffffffff
jne 0x4121d5
or ebx, 0xffffffff
jmp 0x41223a
push esi
call fcn.0041b960
mov eax, dword [esi + 0x24]
add esp, 4
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x23
jne 0x41221e
cmp byte [eax + 1], 0x50
jne 0x41221e
cmp byte [eax + 2], 0x43
jne 0x41221e
cmp byte [eax + 3], 0x44
jne 0x41221e
cmp byte [eax + 4], 0x41
jne 0x41221e
cmp byte [eax + 5], 0x54
jne 0x41221e
cmp byte [eax + 6], 0x41
jne 0x41221e
push ebx
push esi
call fcn.004123b0
add esp, 8
mov ebx, 3
jmp 0x41222f
push 1
push ebx
push esi
call fcn.00411840
add esp, 0xc
mov ebx, 4
push esi
mov edi, eax
call fcn.0041b960
add esp, 4
push esi
call fcn.0041b960
mov eax, dword [esi + 0x24]
add esp, 4
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
jne 0x41226a
nop
cmp dword [esi + 0x28], 1
jle 0x41226a
push esi
call fcn.0041b6e0
mov eax, dword [esi + 0x24]
add esp, 4
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x412250
push esi
call fcn.0041b960
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3e
je 0x4122f7
cmp dword [esi + 0xd4], 0
je 0x412290
cmp dword [esi + 0xac], 0xffffffff
je 0x4122e0
push str.expected__
push 0x46bf50
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.004277b0
add esp, 0x44
mov dword [esi + 0xc], 0
cmp dword [esi + 0x120], 0
jne 0x4122e0
mov dword [esi + 0xd4], 1
test edi, edi
je 0x4122f0
push edi
push dword [esi + 8]
call fcn.0042a000
add esp, 8
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
ret
cmp dword [esp + 0x14], ecx
je 0x41230d
push str.Element_declaration_doesnt_start_and_stop_in_the_same_entity_n
push 0x5a
push esi
call fcn.0040b730
add esp, 0xc
push esi
call fcn.00433310
mov eax, dword [esi]
add esp, 4
test eax, eax
je 0x4122e0
cmp dword [esi + 0xd4], 0
jne 0x4122e0
cmp dword [eax + 0x24], 0
je 0x4122e0
test edi, edi
je 0x412338
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 0x4122f0
cmp dword [edi + 0x14], 0
jne 0x4122f0
push edi
push dword [esi + 8]
call fcn.0042a000
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
ret
cmp cl, 0x25
jne 0x412390
cmp dword [esi + 0x60], edi
jne 0x412390
cmp dword [esi + 0x28], 1
jne 0x412390
mov ecx, str.PEReference:_forbidden_within_markup_decl_in_internal_subset_n
mov eax, 0x15
push ecx
push eax
push esi
call fcn.0040b730
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.0040b730
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret