Function at 0x5b9ae0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x10
push esi
mov esi, dword [esp + 0x1c]
push edi
lea edi, [esi + 0x24]
call fcn.005b8c90
cmp al, 8
je 0x5b9b0f
mov cl, al
sub cl, 0xa
cmp cl, 2
jbe 0x5b9b0f
sub al, 1
cmp al, 6
setbe al
test al, al
sete al
test al, al
jne 0x5b9b30
push 0x6cf9d8
lea edx, [esp + 0xc]
mov eax, 0xca
mov ecx, str.Invalid_property_element_name
push edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
call fcn.0060ac26
mov ecx, dword [esi + 0x68]
test ecx, ecx
push ebp
lea ebp, [esi + 0x64]
je 0x5b9b62
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp eax, 3
jbe 0x5b9b62
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push eax
push esi
push ecx
call 0x5ba880
add esp, 0xc
pop ebp
pop edi
pop esi
add esp, 0x10
ret
mov edi, ecx
cmp edi, dword [ebp + 8]
jbe 0x5b9b6e
call fcn.0060b331
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebp + 4], ebx
mov dword [esp + 0x10], ebx
jbe 0x5b9b80
call fcn.0060b331
xor esi, esi
cmp ebp, ebp
je 0x5b9b8b
call fcn.0060b331
cmp edi, ebx
je 0x5b9be1
cmp edi, dword [ebp + 8]
jb 0x5b9b99
call fcn.0060b331
mov esi, dword [edi]
mov eax, dword [esi + 0x38]
add esi, 0x24
push 8
push str.xml:lang
xor ebx, ebx
mov ecx, esi
call fcn.005a9340
test eax, eax
je 0x5b9bca
mov eax, dword [esi + 0x14]
push 6
push str.rdf:ID
mov ecx, esi
call fcn.005a9340
test eax, eax
jne 0x5b9bdd
cmp edi, dword [ebp + 8]
jb 0x5b9bd4
call fcn.0060b331
mov ebx, dword [esp + 0x10]
add edi, 4
jmp 0x5b9b82
mov ebx, dword [esp + 0x10]
cmp ebp, ebp
je 0x5b9bea
call fcn.0060b331
cmp edi, ebx
je 0x5b9d46
cmp edi, dword [ebp + 8]
jb 0x5b9bfc
call fcn.0060b331
mov edi, dword [edi]
mov eax, dword [esi + 0x14]
push 0xc
push str.rdf:datatype
xor ebx, ebx
mov ecx, esi
add edi, 0x40
call fcn.005a9340
test eax, eax
jne 0x5b9c35
mov edx, dword [esp + 0x28]
mov al, byte [esp + 0x2c]
mov ecx, dword [esp + 0x24]
push edx
call fcn.005ba400
add esp, 4
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x10
ret
mov eax, dword [esi + 0x14]
push 0xd
push str.rdf:parseType
xor ebx, ebx
mov ecx, esi
call fcn.005a9340
test eax, eax
je 0x5b9c58
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x10
jmp 0x5ba880
mov eax, dword [edi + 0x14]
push 7
push str.Literal
xor ebx, ebx
mov ecx, edi
call fcn.005a9340
test eax, eax
jne 0x5b9caa
mov al, byte [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x28], al
mov eax, 0xcb
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
push 0x6cf9d8
lea eax, [esp + 0x1c]
lea edx, [esp + 0x2c]
mov ecx, str.ParseTypeLiteral_property_element_not_allowed
push eax
mov dword [0x6fa360], edx
mov dword [esp + 0x24], ecx
call fcn.0060ac26
mov esi, str.Resource
mov ecx, edi
call fcn.005a9a80
test al, al
je 0x5b9cc6
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x10
jmp 0x5ba6b0
mov esi, str.Collection
mov ecx, edi
call fcn.005a9a80
test al, al
push 0x6cf9d8
je 0x5b9d10
mov cl, byte [esp + 0x30]
mov edx, dword [esp + 0x28]
mov byte [esp + 0x2c], cl
mov ecx, str.ParseTypeCollection_property_element_not_allowed
lea eax, [esp + 0x2c]
mov dword [esp + 0x20], ecx
mov dword [0x6fa360], eax
lea ecx, [esp + 0x1c]
mov eax, 0xcb
push ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
call fcn.0060ac26
mov dl, byte [esp + 0x30]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], dl
mov dword [esp + 0x14], eax
mov dword [0x6fa360], ecx
lea edx, [esp + 0x1c]
mov eax, 0xcb
mov ecx, str.ParseTypeOther_property_element_not_allowed
push edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
call fcn.0060ac26
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp + 0x78]
test eax, eax
lea esi, [ebp + 0x74]
je 0x5b9d5e
mov ecx, dword [esi + 8]
sub ecx, eax
sar ecx, 2
jne 0x5b9d79
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
push edx
push ebp
push eax
call 0x5ba880
add esp, 0xc
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x10
ret
mov edi, eax
cmp edi, dword [esi + 8]
jbe 0x5b9d85
call fcn.0060b331
mov ebx, dword [esi + 8]
cmp dword [esi + 4], ebx
jbe 0x5b9d92
call fcn.0060b331
cmp esi, esi
je 0x5b9d9b
call fcn.0060b331
cmp edi, ebx
je 0x5b9dc0
cmp edi, dword [esi + 8]
jb 0x5b9da9
call fcn.0060b331
mov ecx, dword [edi]
cmp byte [ecx + 4], 3
jne 0x5b9dc0
cmp edi, dword [esi + 8]
jb 0x5b9dbb
call fcn.0060b331
add edi, 4
jmp 0x5b9d92
cmp esi, esi
je 0x5b9dc9
call fcn.0060b331
cmp edi, ebx
mov ecx, dword [esp + 0x24]
jne 0x5b9de6
mov al, byte [esp + 0x2c]
push ebp
call fcn.005ba400
add esp, 4
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x10
ret
mov edx, dword [esp + 0x2c]
push edx
mov edx, ebp
call fcn.005b9e00
add esp, 4
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x10
ret
sub esp, 0x10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
push edi
push eax
push 0x67b348
push ebx
call fcn.005b8e30
mov ebp, eax
or dword [ebp + 4], 0x100
mov esi, dword [ebx + 0x68]
add esp, 0xc
cmp esi, dword [ebx + 0x6c]
mov dword [esp + 0x10], ebp
jbe 0x5ba6ec
call fcn.0060b331
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x68], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], eax
jbe 0x5ba701
call fcn.0060b331
lea edi, [ebx + 0x64]
cmp edi, edi
je 0x5ba70d
call fcn.0060b331
cmp esi, dword [esp + 0x14]
je 0x5ba859
cmp esi, dword [edi + 8]
jb 0x5ba721
call fcn.0060b331
mov esi, dword [esi]
mov ebx, dword [esi + 0x38]
add esi, 0x24
mov ebp, ebx
cmp ebp, ebx
jae 0x5ba72f
cmp ebx, 0xd
mov eax, ebx
jb 0x5ba73b
mov eax, 0xd
cmp dword [esi + 0x18], 0x10
lea edi, [esi + 4]
jb 0x5ba748
mov edx, dword [edi]
jmp 0x5ba74a
mov edx, edi
mov ecx, str.rdf:parseType
call fcn.005a6dd0
test eax, eax
jne 0x5ba76b
cmp ebx, 0xd
jb 0x5ba76b
cmp ebx, 0xd
setne al
test eax, eax
je 0x5ba7ee
mov ebx, ebp
cmp ebp, ebx
jae 0x5ba771
cmp ebx, 8
mov eax, ebx
jb 0x5ba77d
mov eax, 8
cmp dword [esi + 0x18], 0x10
jb 0x5ba787
mov edx, dword [edi]
jmp 0x5ba789
mov edx, edi
mov ecx, str.xml:lang
call fcn.005a6dd0
test eax, eax
jne 0x5ba7d8
cmp ebx, 8
jb 0x5ba7d8
cmp ebx, 8
setne al
test eax, eax
jne 0x5ba7d8
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
add eax, 0x64
cmp esi, dword [eax + 8]
jb 0x5ba7bb
call fcn.0060b331
mov eax, dword [esi]
cmp dword [eax + 0x1c], 0
je 0x5ba817
mov edi, dword [esp + 0x10]
lea ecx, [eax + 0x40]
push ecx
lea ecx, [eax + 0x24]
call fcn.005b90a0
add esp, 4
jmp 0x5ba7f2
push 6
push str.rdf:ID
mov eax, ebp
xor ebx, ebx
mov ecx, esi
call fcn.005a9340
test eax, eax
jne 0x5ba838
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
add eax, 0x64
cmp esi, dword [eax + 8]
jb 0x5ba803
call fcn.0060b331
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x5ba701
push 0x6cf9d8
lea edx, [esp + 0x1c]
mov eax, 0xca
mov ecx, str.XML_namespace_required_for_all_elements_and_attributes
push edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
call fcn.0060ac26
mov eax, 0xca
mov dword [esp + 0x18], eax
push 0x6cf9d8
lea eax, [esp + 0x1c]
mov ecx, str.Invalid_attribute_for_ParseTypeResource_property_element
push eax
mov dword [esp + 0x24], ecx
call fcn.0060ac26
push 0
push ebx
push ebp
call fcn.005b9a20
add esp, 0xc
test dword [ebp + 4], 0x10000000
je 0x5ba877
push ebp
call fcn.005b9220
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
sub esp, 0x40
push edi
mov edi, dword [esp + 0x4c]
mov eax, dword [edi + 0x78]
test eax, eax
mov byte [esp + 7], 0
mov byte [esp + 4], 0
mov byte [esp + 6], 0
mov byte [esp + 5], 0
mov dword [esp + 0xc], 0
je 0x5ba8d6
mov ecx, dword [edi + 0x7c]
sub ecx, eax
sar ecx, 2
je 0x5ba8d6
push 0x6cf9d8
lea edx, [esp + 0x18]
mov eax, 0xca
mov ecx, str.Nested_content_not_allowed_with_rdf:resource_or_property_attributes
push edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.0060ac26
push ebx
lea ebx, [edi + 0x64]
push ebp
mov ebp, dword [ebx + 4]
cmp ebp, dword [ebx + 8]
mov dword [esp + 0x10], ebx
jbe 0x5ba8ec
call fcn.0060b331
push esi
mov esi, dword [ebx + 8]
cmp dword [ebx + 4], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], esi
jbe 0x5ba906
call fcn.0060b331
cmp ebx, ebx
je 0x5ba90f
call fcn.0060b331
cmp ebp, esi
je 0x5baaba
cmp ebp, dword [ebx + 8]
jb 0x5ba921
call fcn.0060b331
mov edi, dword [ebp]
add edi, 0x24
call fcn.005b8c90
movzx eax, al
cmp eax, 6
ja case.0x5ba938.1
jmp dword [eax*4 + 0x5bacc8]
cmp byte [esp + 0x12], 0
jne 0x5baa15
cmp byte [esp + 0x11], 0
jne 0x5baa36
lea esi, [esp + 0x20]
mov byte [esp + 0x10], 1
call fcn.005bad00
mov eax, dword [eax]
mov dword [esp + 0x18], eax
jmp case.0x5ba938.2
cmp byte [esp + 0x10], 0
jne 0x5baa57
mov byte [esp + 0x12], 1
jmp case.0x5ba938.2
cmp ebp, dword [ebx + 8]
jb 0x5ba98a
call fcn.0060b331
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x38]
add ecx, 0x24
push 9
push str.rdf:value
xor ebx, ebx
call fcn.005a9340
test eax, eax
jne 0x5ba9c5
cmp byte [esp + 0x10], al
jne 0x5baa78
lea esi, [esp + 0x20]
mov byte [esp + 0x11], 1
call fcn.005bad00
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
jmp 0x5ba9f3
mov edx, dword [esp + 0x14]
cmp ebp, dword [edx + 8]
jb 0x5ba9d3
call fcn.0060b331
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x38]
add ecx, 0x24
push 8
push str.xml:lang
xor ebx, ebx
call fcn.005a9340
test eax, eax
je 0x5ba9f3
mov byte [esp + 0x13], 1
mov ebx, dword [esp + 0x14]
cmp ebp, dword [ebx + 8]
jb 0x5baa01
call fcn.0060b331
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x1c]
add ebp, 4
mov dword [esp + 0x24], ebp
jmp 0x5ba906
mov eax, 0xca
mov dword [esp + 0x28], eax
push 0x6cf9d8
lea eax, [esp + 0x2c]
mov ecx, str.Empty_property_element_cant_have_both_rdf:resource_and_rdf:nodeID
push eax
mov dword [esp + 0x34], ecx
call fcn.0060ac26
mov ecx, str.Empty_property_element_cant_have_both_rdf:value_and_rdf:resource
mov dword [esp + 0x34], ecx
push 0x6cf9d8
lea ecx, [esp + 0x34]
mov eax, 0xcb
push ecx
mov dword [esp + 0x38], eax
call fcn.0060ac26
push 0x6cf9d8
lea edx, [esp + 0x3c]
mov eax, 0xca
mov ecx, str.Empty_property_element_cant_have_both_rdf:resource_and_rdf:nodeID
push edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
call fcn.0060ac26
mov eax, 0xcb
mov dword [esp + 0x40], eax
push 0x6cf9d8
lea eax, [esp + 0x44]
mov ecx, str.Empty_property_element_cant_have_both_rdf:value_and_rdf:resource
push eax
mov dword [esp + 0x4c], ecx
call fcn.0060ac26
mov ecx, str.Unrecognized_attribute_of_empty_property_element
mov dword [esp + 0x4c], ecx
push 0x6cf9d8
lea ecx, [esp + 0x4c]
mov eax, 0xca
push ecx
mov dword [esp + 0x50], eax
call fcn.0060ac26
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
push edx
push 0x67b348
push edi
call fcn.005b8e30
mov esi, eax
mov al, byte [esp + 0x1d]
add esp, 0xc
or al, byte [esp + 0x10]
mov dword [esp + 0x1c], esi
mov byte [esp + 0x58], 0
je 0x5bab07
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
add ecx, 0x40
push 0
push ecx
lea ecx, [esi + 0x24]
call fcn.005a9260
cmp byte [esp + 0x11], 0
jne 0x5bab1a
or dword [esi + 4], 2
jmp 0x5bab1a
cmp byte [esp + 0x13], 0
je 0x5bab1a
or dword [esi + 4], 0x100
mov byte [esp + 0x58], 1
mov esi, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jbe 0x5bab27
call fcn.0060b331
mov edi, dword [ebx + 8]
cmp dword [ebx + 4], edi
mov ebp, ebx
mov dword [esp + 0x20], edi
jbe 0x5bab40
call fcn.0060b331
lea ebx, [ebx]
test ebp, ebp
je 0x5bab48
cmp ebp, ebx
je 0x5bab4d
call fcn.0060b331
cmp esi, edi
je 0x5bacbd
test ebp, ebp
jne 0x5bab5e
call fcn.0060b331
cmp esi, dword [ebp + 8]
jb 0x5bab68
call fcn.0060b331
mov edx, dword [esp + 0x18]
cmp dword [esi], edx
je case.0x5bab94.2
cmp esi, dword [ebp + 8]
jb 0x5bab7e
call fcn.0060b331
mov edi, dword [esi]
add edi, 0x24
call fcn.005b8c90
movzx eax, al
cmp eax, 6
ja case.0x5bab94.1
jmp dword [eax*4 + 0x5bace4]
cmp esi, dword [ebp + 8]
jb 0x5baba5
call fcn.0060b331
mov eax, dword [esi]
cmp dword [eax + 0x1c], 0
jne 0x5bac52
push 0x6cf9d8
lea edx, [esp + 0x4c]
mov eax, 0xca
mov ecx, str.XML_namespace_required_for_all_elements_and_attributes
push edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
call fcn.0060ac26
cmp byte [esp + 0x58], 0
je 0x5bac40
cmp esi, dword [ebp + 8]
jb 0x5babe3
call fcn.0060b331
mov ecx, dword [esi]
mov eax, dword [ecx + 0x38]
add ecx, 0x24
push 8
push str.xml:lang
xor ebx, ebx
call fcn.005a9340
test eax, eax
je 0x5bac3c
cmp esi, dword [ebp + 8]
jb 0x5bac07
call fcn.0060b331
mov eax, dword [esi]
add eax, 0x40
cmp dword [eax + 0x18], 0x10
jb 0x5bac17
mov edi, dword [eax + 4]
jmp 0x5bac1a
lea edi, [eax + 4]
cmp esi, dword [ebp + 8]
jb 0x5bac24
call fcn.0060b331
mov edx, dword [esi]
mov ecx, dword [esp + 0x1c]
push 0
push edi
push edx
call fcn.005b8e30
mov ebx, dword [esp + 0x20]
add esp, 0xc
jmp case.0x5bab94.2
mov ebx, dword [esp + 0x14]
cmp esi, dword [ebp + 8]
jb 0x5bac4a
call fcn.0060b331
mov eax, dword [esi]
cmp dword [eax + 0x1c], 0
je 0x5bac7b
mov edi, dword [esp + 0x1c]
lea ecx, [eax + 0x40]
push ecx
lea ecx, [eax + 0x24]
call fcn.005b90a0
add esp, 4
cmp esi, dword [ebp + 8]
jb 0x5bac6f
call fcn.0060b331
mov edi, dword [esp + 0x20]
add esi, 4
jmp 0x5bab40
mov eax, 0xca
mov dword [esp + 0x48], eax
push 0x6cf9d8
lea eax, [esp + 0x4c]
mov ecx, str.XML_namespace_required_for_all_elements_and_attributes
push eax
mov dword [esp + 0x54], ecx
call fcn.0060ac26
mov ecx, str.Unrecognized_attribute_of_empty_property_element
mov dword [esp + 0x44], ecx
push 0x6cf9d8
lea ecx, [esp + 0x44]
mov eax, 0xca
push ecx
mov dword [esp + 0x48], eax
call fcn.0060ac26
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x40
ret