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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [0x53f040]
xor eax, esp
mov dword [esp + 0x28], eax
cmp dword [0x541cf8], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
je 0x40bd87
mov eax, dword [edi + 4]
mov esi, str._null_
test eax, eax
mov edx, str.___Analyzing_schema_restriction_
mov ecx, 0x540ff8
cmovne esi, eax
call fcn.00403770
mov edx, esi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x40bd94
push ebx
call fcn.0040aa00
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x40bda1
push ebx
call fcn.0040d5c0
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x40bdb0
push ebx
call fcn.0040da30
jmp 0x40bdf8
mov edi, dword [edi + 0x14]
test edi, edi
je 0x40be72
cmp dword [0x541cf8], 0
je 0x40bddc
mov edx, str.___Analyzing_schema_all
mov ecx, 0x540ff8
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
je 0x40bdf4
push ebx
mov ecx, esi
call fcn.00409980
add esi, 0x78
cmp esi, dword [edi + 8]
jne 0x40bde4
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edi, dword [edi + 0x20]
mov dword [esp + 0x30], edi
cmp edi, dword [eax + 0x24]
je 0x40c564
mov esi, eax
nop
push ebx
mov ecx, edi
call fcn.00409050
mov edx, dword [edi + 0x30]
test edx, edx
je 0x40c554
mov ecx, dword [ebx + 0x94]
call fcn.00426d00
mov ebx, eax
push 0x5b
push ebx
mov dword [esp + 0x28], ebx
call fcn.004f3040
add esp, 8
test eax, eax
je 0x40be46
mov byte [eax], 0
test ebx, ebx
je 0x40c05d
mov al, byte [ebx]
cmp al, 0x22
jne 0x40bf2e
cmp byte [ebx + 1], al
jne 0x40bf2e
cmp byte [ebx + 2], 0x3a
jne 0x40bf2e
mov eax, ebx
jmp 0x40bf7d
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x40be88
push ebx
call fcn.0040d180
jmp 0x40bdf8
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je 0x40be9a
push ebx
call fcn.0040d180
jmp 0x40bdf8
mov esi, dword [edi + 0x30]
cmp esi, dword [edi + 0x34]
je 0x40bef1
cmp dword [0x541cf8], 0
je 0x40bee9
mov eax, dword [esi + 4]
mov edi, str._null_
test eax, eax
mov edx, str.___Analyzing_schema_enumeration_
mov ecx, 0x540ff8
cmovne edi, eax
call fcn.00403770
mov edx, edi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
mov edi, dword [esp + 0x14]
add esp, 4
add esi, 0x10
cmp esi, dword [edi + 0x34]
jne 0x40bea2
mov esi, dword [edi + 0x3c]
cmp esi, dword [edi + 0x40]
je 0x40bdf8
nop dword [eax]
cmp dword [0x541cf8], 0
je 0x40bf21
mov edx, str.___Analyzing_schema_pattern
mov ecx, 0x540ff8
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
add esi, 8
cmp esi, dword [edi + 0x40]
jne 0x40bf00
jmp 0x40bdf8
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40c05d
cmp al, 0x22
jne 0x40c05d
mov esi, ecx
lea edx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x40bf50
sub esi, edx
lea eax, [ebx + 1]
push esi
push ecx
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40c05d
cmp byte [esi + ebx + 1], 0x22
lea eax, [esi + ebx]
jne 0x40c05d
lea ebx, [eax + 3]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
mov dword [eax + 0x94], 0
test ebx, ebx
je 0x40bfe4
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x7c]
mov ecx, dword [ecx + 0x80]
cmp eax, ecx
je 0x40bfe4
mov edx, dword [eax + 4]
test edx, edx
je 0x40bfdd
mov esi, ebx
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x40bfd0
test bl, bl
je 0x40bfcc
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x40bfd0
add edx, 2
add esi, 2
test bl, bl
jne 0x40bfb0
xor edx, edx
jmp 0x40bfd5
sbb edx, edx
or edx, 1
test edx, edx
je 0x40c00d
mov ebx, dword [esp + 0x24]
add eax, 0x50
cmp eax, ecx
jne 0x40bfa7
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x94], 0
jne 0x40c1cf
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x40]
cmp esi, dword [ecx + 0x44]
je 0x40c1cf
mov eax, ecx
jmp 0x40c074
cmp dword [0x541cf8], 0
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x94], eax
je 0x40bfe4
mov eax, dword [esp + 0x24]
mov esi, str._null_
test eax, eax
mov edx, str.____Found_restriction_array_type_
mov ecx, 0x540ff8
cmovne esi, eax
call fcn.00403770
mov edx, esi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
jmp 0x40bfe4
mov eax, dword [esp + 0x10]
mov dword [eax + 0x94], 0
jmp 0x40bfec
mov ebx, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x40c1c3
test ebx, ebx
je 0x40c1c3
mov al, byte [ebx]
cmp al, 0x22
jne 0x40c0a0
cmp byte [ebx + 1], al
jne 0x40c0a0
cmp byte [ebx + 2], 0x3a
jne 0x40c0a0
mov eax, ebx
jmp 0x40c0ed
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40c1bf
cmp al, 0x22
jne 0x40c1bf
mov ebx, ecx
lea edx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x40c0b8
mov eax, dword [esp + 0x20]
sub ebx, edx
push ebx
push ecx
inc eax
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40c1bf
mov eax, dword [esp + 0x20]
add eax, ebx
cmp byte [eax + 1], 0x22
jne 0x40c1bf
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 3]
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x40c1bf
mov eax, dword [ecx + 0x7c]
mov ecx, dword [ecx + 0x80]
mov dword [esp + 0x24], ecx
cmp eax, ecx
je 0x40c1b2
mov edx, dword [eax + 4]
test edx, edx
je 0x40c15b
mov cl, byte [edx]
cmp cl, byte [ebx]
mov byte [esp + 0x1b], cl
mov ecx, dword [esp + 0x24]
jne 0x40c14e
cmp byte [esp + 0x1b], 0
je 0x40c14a
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 1]
mov byte [esp + 0x1b], cl
mov ecx, dword [esp + 0x24]
jne 0x40c14e
add edx, 2
add ebx, 2
cmp byte [esp + 0x1b], 0
jne 0x40c118
xor edx, edx
jmp 0x40c153
sbb edx, edx
or edx, 1
test edx, edx
je 0x40c164
mov ebx, dword [esp + 0x1c]
add eax, 0x50
cmp eax, ecx
jne 0x40c111
jmp 0x40c1b2
cmp dword [0x541cf8], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x94], eax
je 0x40c1b2
mov eax, dword [esp + 0x1c]
mov ebx, str._null_
test eax, eax
mov edx, str.____Found_restriction_array_type_
mov ecx, 0x540ff8
cmovne ebx, eax
call fcn.00403770
mov edx, ebx
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x94], 0
jne 0x40c1ea
mov eax, dword [esp + 0x14]
add esi, 0x14
cmp esi, dword [eax + 0x44]
jne 0x40c070
mov ebx, dword [esp + 0x20]
test ebx, ebx
jne 0x40c1ee
mov esi, dword [esp + 0x10]
mov dword [esi + 0x98], 0
jmp 0x40c2ba
mov ebx, dword [esp + 0x20]
mov al, byte [ebx]
cmp al, 0x22
jne 0x40c203
cmp byte [ebx + 1], al
jne 0x40c203
cmp byte [ebx + 2], 0x3a
jne 0x40c203
mov eax, ebx
jmp 0x40c23c
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40c1d7
cmp al, 0x22
jne 0x40c1d7
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x40c217
sub esi, edx
lea eax, [ebx + 1]
push esi
push ecx
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40c1d7
cmp byte [esi + ebx + 1], 0x22
lea eax, [esi + ebx]
jne 0x40c1d7
mov esi, dword [esp + 0x10]
lea ebx, [eax + 3]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
mov dword [esi + 0x98], 0
test ebx, ebx
je 0x40c2be
mov eax, dword [edx + 0x88]
mov ecx, dword [edx + 0x8c]
cmp eax, ecx
je 0x40c2be
nop dword [eax]
mov edx, dword [eax + 4]
test edx, edx
je 0x40c2ad
mov esi, ebx
nop dword [eax]
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x40c2a0
test bl, bl
je 0x40c29c
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x40c2a0
add edx, 2
add esi, 2
test bl, bl
jne 0x40c280
xor edx, edx
jmp 0x40c2a5
sbb edx, edx
or edx, 1
test edx, edx
je 0x40c30f
mov ebx, dword [esp + 0x1c]
add eax, 0x8c
cmp eax, ecx
jne 0x40c270
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esi + 0x98], 0
jne 0x40c4a8
mov esi, dword [edx + 0x40]
cmp esi, dword [edx + 0x44]
je 0x40c4a4
mov edi, dword [esp + 0x20]
nop dword [eax + eax]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x40c494
test edi, edi
je 0x40c494
mov al, byte [edi]
cmp al, 0x22
jne 0x40c362
cmp byte [edi + 1], al
jne 0x40c362
cmp byte [edi + 2], 0x3a
jne 0x40c362
mov eax, edi
jmp 0x40c3b5
cmp dword [0x541cf8], 0
mov esi, dword [esp + 0x10]
mov dword [esi + 0x98], eax
je 0x40c2ba
mov eax, dword [esp + 0x1c]
mov esi, str._null_
test eax, eax
mov edx, str.____Found_restriction_array_type_
mov ecx, 0x540ff8
cmovne esi, eax
call fcn.00403770
mov edx, esi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
jmp 0x40c2b6
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40c494
cmp al, 0x22
jne 0x40c494
mov ebx, ecx
lea edx, [ebx + 1]
nop word [eax + eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x40c380
sub ebx, edx
lea eax, [edi + 1]
push ebx
push ecx
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40c490
cmp byte [ebx + edi + 1], 0x22
lea eax, [ebx + edi]
mov edx, dword [esp + 0x14]
jne 0x40c494
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 3]
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x40c494
mov eax, dword [ecx + 0x88]
mov ecx, dword [ecx + 0x8c]
mov dword [esp + 0x1c], ecx
cmp eax, ecx
je 0x40c483
nop dword [eax]
mov edx, dword [eax + 4]
test edx, edx
je 0x40c42a
mov cl, byte [edx]
cmp cl, byte [ebx]
mov byte [esp + 0x1b], cl
mov ecx, dword [esp + 0x1c]
jne 0x40c41d
cmp byte [esp + 0x1b], 0
je 0x40c419
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 1]
mov byte [esp + 0x1b], cl
mov ecx, dword [esp + 0x1c]
jne 0x40c41d
add edx, 2
add ebx, 2
cmp byte [esp + 0x1b], 0
jne 0x40c3e7
xor edx, edx
jmp 0x40c422
sbb edx, edx
or edx, 1
test edx, edx
je 0x40c435
mov ebx, dword [esp + 0x24]
add eax, 0x8c
cmp eax, ecx
jne 0x40c3e0
jmp 0x40c483
cmp dword [0x541cf8], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x98], eax
je 0x40c483
mov eax, dword [esp + 0x24]
mov ebx, str._null_
test eax, eax
mov edx, str.____Found_restriction_array_type_
mov ecx, 0x540ff8
cmovne ebx, eax
call fcn.00403770
mov edx, ebx
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x98], 0
jne 0x40c4a0
mov edx, dword [esp + 0x14]
add esi, 0x14
cmp esi, dword [edx + 0x44]
jne 0x40c2e0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x94], 0
jne 0x40c550
cmp dword [esi + 0x98], 0
jne 0x40c550
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.0044af30
test eax, eax
je 0x40c4f0
mov dword [esp + 0x30], ebx
lea eax, [esp + 0x30]
mov ebx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x2c]
push eax
lea ecx, [ebx + 0xb0]
call fcn.0040e940
jmp 0x40c554
cmp dword [0x541cf4], 0
jne 0x40c550
mov eax, dword [esp + 0x14]
mov esi, str._undefined_
mov edx, str._nWarning:_could_not_find_restriction_array_type_
mov ecx, 0x540ff8
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
call fcn.00403770
mov edx, ebx
mov ecx, eax
call fcn.00403770
mov edx, str._in_schema_
mov ecx, eax
call fcn.00403770
mov edx, esi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
mov esi, dword [esp + 0x14]
add esp, 4
mov ebx, dword [esp + 0x14]
add edi, 0x4c
mov dword [esp + 0x30], edi
cmp edi, dword [esi + 0x24]
jne 0x40be10
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 4]
test edi, edi
je 0x40c686
mov al, byte [edi]
cmp al, 0x22
jne 0x40c584
cmp byte [edi + 1], al
jne 0x40c584
cmp byte [edi + 2], 0x3a
je 0x40c5cf
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x40c686
cmp al, 0x22
jne 0x40c686
mov esi, ecx
lea edx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x40c5a0
sub esi, edx
lea eax, [edi + 1]
push esi
push ecx
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40c686
cmp byte [esi + edi + 1], 0x22
lea eax, [esi + edi]
mov edi, eax
jne 0x40c686
mov eax, dword [esp + 0x10]
mov dword [eax + 0x8c], 0
add edi, 3
je 0x40c698
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebx + 0x80]
cmp eax, ecx
je 0x40c680
mov edx, dword [eax + 4]
test edx, edx
je 0x40c629
mov esi, edi
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x40c620
test bl, bl
je 0x40c61c
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x40c620
add edx, 2
add esi, 2
test bl, bl
jne 0x40c600
xor edx, edx
jmp 0x40c625
sbb edx, edx
or edx, 1
test edx, edx
je 0x40c636
add eax, 0x50
cmp eax, ecx
jne 0x40c5f7
mov eax, dword [esp + 0x10]
jmp 0x40c698
cmp dword [0x541cf8], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x8c], eax
je 0x40c696
test edi, edi
mov esi, str._null_
mov edx, str.____Found_restriction_base_type_
mov ecx, 0x540ff8
cmovne esi, edi
call fcn.00403770
mov edx, esi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov eax, dword [esp + 0x10]
jmp 0x40c698
mov eax, dword [esp + 0x10]
mov dword [eax + 0x8c], 0
jmp 0x40c698
mov eax, ecx
cmp dword [eax + 0x8c], 0
mov ecx, dword [esp + 0x14]
jne 0x40c7f9
mov esi, dword [ecx + 0x40]
cmp esi, dword [ecx + 0x44]
je 0x40c7f9
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x40c8c4
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x40c8c4
mov al, byte [ebx]
cmp al, 0x22
jne 0x40c6e0
cmp byte [ebx + 1], al
jne 0x40c6e0
cmp byte [ebx + 2], 0x3a
je 0x40c72b
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40c8c0
cmp al, 0x22
jne 0x40c8c0
mov edi, ecx
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x40c6f8
sub edi, edx
lea eax, [ebx + 1]
push edi
push ecx
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40c8c0
cmp byte [edi + ebx + 1], 0x22
lea eax, [edi + ebx]
mov ebx, eax
jne 0x40c8c0
mov ecx, dword [esp + 0x30]
add ebx, 3
mov dword [esp + 0x30], ebx
je 0x40c8c0
mov eax, dword [ecx + 0x7c]
mov ecx, dword [ecx + 0x80]
cmp eax, ecx
je 0x40c7e4
nop dword [eax]
mov edx, dword [eax + 4]
test edx, edx
je 0x40c78d
mov edi, ebx
nop dword [eax]
mov bl, byte [edx]
cmp bl, byte [edi]
jne 0x40c780
test bl, bl
je 0x40c77c
mov bl, byte [edx + 1]
cmp bl, byte [edi + 1]
jne 0x40c780
add edx, 2
add edi, 2
test bl, bl
jne 0x40c760
xor edx, edx
jmp 0x40c785
sbb edx, edx
or edx, 1
test edx, edx
je 0x40c796
mov ebx, dword [esp + 0x30]
add eax, 0x50
cmp eax, ecx
jne 0x40c750
jmp 0x40c7e4
cmp dword [0x541cf8], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x8c], eax
je 0x40c7e4
mov eax, dword [esp + 0x30]
mov edi, str._null_
test eax, eax
mov edx, str.____Found_restriction_base_type_
mov ecx, 0x540ff8
cmovne edi, eax
call fcn.00403770
mov edx, edi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x8c], 0
je 0x40c8c4
mov ecx, dword [esp + 0x14]
mov edi, dword [eax + 4]
test edi, edi
je 0x40c945
mov al, byte [edi]
cmp al, 0x22
jne 0x40c815
cmp byte [edi + 1], al
jne 0x40c815
cmp byte [edi + 2], 0x3a
je 0x40c85f
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40c941
cmp al, 0x22
jne 0x40c941
mov esi, ecx
lea edx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x40c830
sub esi, edx
lea eax, [edi + 1]
push esi
push ecx
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40c941
cmp byte [esi + edi + 1], 0x22
lea eax, [esi + edi]
mov edi, eax
jne 0x40c941
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x90], 0
add edi, 3
je 0x40c95d
mov eax, dword [edx + 0x88]
mov ecx, dword [edx + 0x8c]
cmp eax, ecx
je 0x40c951
nop
mov edx, dword [eax + 4]
test edx, edx
je 0x40c8e2
mov esi, edi
nop dword [eax]
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x40c8d9
test bl, bl
je 0x40c8bc
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x40c8d9
add edx, 2
add esi, 2
test bl, bl
jne 0x40c8a0
xor edx, edx
jmp 0x40c8de
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
cmp esi, dword [ecx + 0x44]
jne 0x40c6b5
jmp 0x40c7f9
sbb edx, edx
or edx, 1
test edx, edx
je 0x40c8f1
add eax, 0x8c
cmp eax, ecx
jne 0x40c890
mov eax, dword [esp + 0x10]
jmp 0x40c959
cmp dword [0x541cf8], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x90], eax
je 0x40c957
test edi, edi
mov esi, str._null_
mov edx, str.____Found_restriction_base_type_
mov ecx, 0x540ff8
cmovne esi, edi
call fcn.00403770
mov edx, esi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
mov eax, dword [esp + 0x14]
add esp, 4
jmp 0x40c959
mov eax, dword [esp + 0x10]
mov dword [eax + 0x90], 0
jmp 0x40c959
mov eax, dword [esp + 0x10]
jmp 0x40c95d
mov eax, ecx
mov edx, dword [esp + 0x14]
cmp dword [eax + 0x90], 0
jne 0x40cad0
mov esi, dword [edx + 0x40]
cmp esi, dword [edx + 0x44]
je 0x40cad0
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x40cac4
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x40cac4
mov al, byte [ebx]
cmp al, 0x22
jne 0x40c9a1
cmp byte [ebx + 1], al
jne 0x40c9a1
cmp byte [ebx + 2], 0x3a
je 0x40c9f7
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40cab6
cmp al, 0x22
jne 0x40cab6
mov edi, ecx
lea edx, [edi + 1]
nop dword [eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x40c9c0
sub edi, edx
lea eax, [ebx + 1]
push edi
push ecx
push eax
call fcn.004f99a0
add esp, 0xc
test eax, eax
jne 0x40cabc
cmp byte [edi + ebx + 1], 0x22
lea eax, [edi + ebx]
mov edx, dword [esp + 0x14]
mov ebx, eax
jne 0x40cab6
mov ecx, dword [esp + 0x30]
add ebx, 3
mov dword [esp + 0x30], ebx
je 0x40cab6
mov eax, dword [ecx + 0x88]
mov ecx, dword [ecx + 0x8c]
cmp eax, ecx
je 0x40caa7
mov edx, dword [eax + 4]
test edx, edx
je 0x40ca4e
mov edi, ebx
mov bl, byte [edx]
cmp bl, byte [edi]
jne 0x40ca41
test bl, bl
je 0x40ca3d
mov bl, byte [edx + 1]
cmp bl, byte [edi + 1]
jne 0x40ca41
add edx, 2
add edi, 2
test bl, bl
jne 0x40ca21
xor edx, edx
jmp 0x40ca46
sbb edx, edx
or edx, 1
test edx, edx
je 0x40ca59
mov ebx, dword [esp + 0x30]
add eax, 0x8c
cmp eax, ecx
jne 0x40ca18
jmp 0x40caa7
cmp dword [0x541cf8], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x90], eax
je 0x40caa7
mov eax, dword [esp + 0x30]
mov edi, str._null_
test eax, eax
mov edx, str.____Found_restriction_base_type_
mov ecx, 0x540ff8
cmovne edi, eax
call fcn.00403770
mov edx, edi
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x90], 0
jne 0x40cad0
jmp 0x40cac0
mov eax, dword [esp + 0x10]
jmp 0x40cac4
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add esi, 0x14
cmp esi, dword [edx + 0x44]
jne 0x40c976
cmp dword [eax + 0x8c], 0
jne 0x40cb9b
cmp dword [eax + 0x90], 0
jne 0x40cb9b
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x40cb79
call fcn.0044af30
test eax, eax
je 0x40cb24
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
lea ecx, [ecx + 0xb0]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040e940
jmp 0x40cb9b
cmp dword [0x541cf4], 0
jne 0x40cb9b
mov eax, dword [esp + 0x14]
mov ebx, str._undefined_
mov edx, str._nWarning:_could_not_find_restriction_base_type_
mov ecx, 0x540ff8
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
call fcn.00403770
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 4]
mov ecx, eax
call fcn.00403770
mov edx, str._in_schema_
mov ecx, eax
call fcn.00403770
mov edx, ebx
mov ecx, eax
call fcn.00403770
mov edx, 0x51ec6c
mov ecx, eax
jmp 0x40cb8d
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jne 0x40cb9b
mov edx, str.Restriction_has_no_base
mov ecx, 0x540ff8
call fcn.00403770
push eax
call fcn.004039c0
add esp, 4
mov ecx, dword [esp + 0x34]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004f197d
mov esp, ebp
pop ebp
ret 4