Function at 0x4063c5
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [0x493bd0]
xor eax, esp
mov dword [esp + 0xc0], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 8]
xor ebx, ebx
cmp dword [0x49daa0], ebx
mov dword [esp + 0x10], eax
jne 0x4063ff
lea ecx, [esp + 0x10]
mov dword [0x49daa0], ecx
cmp dword [edi + 0x30], ebx
jne 0x406426
cmp eax, ebx
je 0x406426
mov ecx, dword [eax + 0x28]
mov dword [edi + 0x2c], ecx
mov dword [eax + 0x28], edi
mov eax, dword [edi + 8]
or dword [edi + 0x30], 0xffffffff
cmp dword [eax + 0x30], 1
jne 0x40660c
mov eax, dword [esp + 0x10]
xor esi, esi
inc esi
cmp dword [edi + 0x30], esi
je 0x40660c
mov ecx, dword [0x49db18]
mov dword [edi + 0x34], ecx
mov ecx, dword [edi + 0x20]
cmp ecx, ebx
mov dword [0x49db18], edi
je 0x406465
cmp dword [ecx], ebx
je 0x406465
add ecx, 0x18
jne 0x406448
jmp 0x406465
mov edx, dword [eax + 0x20]
cmp edx, ebx
je 0x40645e
cmp dword [edx], ebx
jne 0x406469
mov eax, dword [eax + 8]
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x406453
cmp ecx, ebx
je 0x406470
mov dword [ecx + 0x10], eax
push edi
lea eax, [esp + 0x2c]
push eax
call fcn.00407770
call fcn.004059c1
mov dword [edi + 0x38], eax
mov ecx, dword [eax + 0xc]
mov dword [edi + 0x3c], ecx
cmp dword [0x496860], ebx
je 0x406498
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
cmp edi, 0x496828
jne 0x4064c7
mov dword [esp + 0x10], edi
mov eax, dword [edi + 0x34]
jmp 0x4064bf
cmp dword [eax + 0x38], ebx
je 0x4064bc
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x34]
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x4064a9
cmp edi, 0x497448
mov dword [edi + 0x30], esi
jne 0x4064d7
call fcn.00406df5
mov esi, dword [edi + 0x28]
jmp 0x4064e6
mov ecx, esi
call fcn.004063c5
mov esi, dword [esi + 0x2c]
cmp esi, ebx
jne 0x4064dc
mov eax, dword [edi + 0x20]
cmp eax, ebx
mov dword [esp + 0x14], ebx
je 0x40660c
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
cmp dword [eax], ebx
jne 0x406621
mov eax, dword [eax + 0x10]
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x406521
mov eax, dword [eax + 0x20]
cmp eax, ebx
jne 0x406507
test dword [esp + 0x14], 0x80000000
je 0x406550
push str.Stupidly_large_type
call fcn.00402295
pop ecx
push dword [edi]
call fcn.00402295
mov dword [esp], str.__refactor_it._r_n
call fcn.00402295
pop ecx
call dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, dword [edi + 0xc]
xor eax, eax
sub ecx, 4
shr ecx, 2
inc eax
shl eax, cl
dec eax
cmp dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
je 0x4065f5
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.Missing_property_in_type
call ebx
push dword [edi]
call ebx
push 0x482e54
call ebx
lea esi, [esp + 0x58]
call fcn.00408add
push dword [esp + 0x24]
lea esi, [esp + 0x64]
push str._want
push dword [esp + 0x1c]
push str.Have
call fcn.00406f7f
mov ecx, eax
call fcn.00407134
mov esi, eax
call fcn.00406f7f
mov ecx, eax
call fcn.00407134
push eax
call fcn.004063b2
pop ecx
push dword [esp + 0x80]
mov byte [esp + 0xac], 0
call ebx
call dword [sym.imp.KERNEL32.dll_DebugBreak]
lea ecx, [esp + 0x64]
call fcn.0040886e
lea ecx, [esp + 0xac]
call fcn.00403233
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x40], esi
not esi
and eax, esi
mov ecx, eax
or ecx, dword [esp + 0x20]
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], ecx
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004533e4
mov esp, ebp
pop ebp
ret
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x406521
mov ecx, dword [ebx + 0xc]
xor edx, edx
inc edx
test byte [eax + 0xe], dl
jne 0x406645
cmp ecx, 4
jbe 0x406645
lea edx, [edx + edx + 1]
sub ecx, 4
jmp 0x406637
movzx ecx, word [eax + 0xc]
test cx, cx
jbe 0x406651
shl edx, cl
dec edx
mov ecx, dword [eax + 8]
sub ecx, 4
shr ecx, 2
shl edx, cl
movzx ecx, word [eax + 0xe]
mov esi, edx
or dword [esp + 0x14], esi
mov dl, cl
and dl, 3
cmp dl, 3
jne 0x406674
or dword [esp + 0x18], esi
shr cl, 3
test cl, 1
je 0x406680
or dword [esp + 0x1c], esi
mov cl, byte [ebx + 0x14]
shr cl, 5
test cl, 1
je 0x40668f
or dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
add eax, 0x18
xor ebx, ebx
jmp 0x406507