Function at 0x40487c
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [0x6d15dc]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], ecx
call fcn.00403cae
xor ebx, ebx
cmp dword [edi + 0x30], ebx
jne 0x4048d5
cmp dword [edi + 8], ebx
je 0x4048d5
mov eax, dword [ecx + 0x28]
mov dword [edi + 0x2c], eax
mov dword [ecx + 0x28], edi
mov eax, dword [edi + 8]
or dword [edi + 0x30], 0xffffffff
cmp dword [eax + 0x30], 1
jne 0x404aa2
mov ecx, dword [esp + 0x10]
xor esi, esi
inc esi
cmp dword [edi + 0x30], esi
je 0x404aa2
mov eax, dword [0x6e59e4]
mov dword [edi + 0x34], eax
mov eax, dword [edi + 0x20]
cmp eax, ebx
mov dword [0x6e59e4], edi
je 0x404913
cmp dword [eax], ebx
je 0x404913
add eax, 0x18
jne 0x4048f6
jmp 0x404913
mov edx, dword [ecx + 0x20]
cmp edx, ebx
je 0x40490c
cmp dword [edx], ebx
jne 0x404917
mov ecx, dword [ecx + 8]
mov dword [esp + 0x10], ecx
cmp ecx, ebx
jne 0x404901
cmp eax, ebx
je 0x40491e
mov dword [eax + 0x10], ecx
push edi
call fcn.00404600
mov dword [edi + 0x38], eax
pop ecx
mov ecx, dword [eax + 0xc]
mov dword [edi + 0x3c], ecx
cmp dword [0x6d5f10], ebx
je 0x40493d
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
cmp edi, 0x6d5ed8
jne 0x40496c
mov dword [esp + 0x10], edi
mov eax, dword [edi + 0x34]
jmp 0x404964
cmp dword [eax + 0x38], ebx
je 0x404961
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 0x40494e
cmp edi, 0x6d7090
mov dword [edi + 0x30], esi
jne 0x40497c
call fcn.00405517
mov esi, dword [edi + 0x28]
jmp 0x40498b
mov ecx, esi
call fcn.0040487c
mov esi, dword [esi + 0x2c]
cmp esi, ebx
jne 0x404981
mov eax, dword [edi + 0x20]
cmp eax, ebx
mov dword [esp + 0x14], ebx
je 0x404aa2
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
cmp dword [eax], ebx
jne 0x404ab7
mov eax, dword [eax + 0x10]
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x4049c6
mov eax, dword [eax + 0x20]
cmp eax, ebx
jne 0x4049ac
test dword [esp + 0x14], 0x80000000
je 0x4049f5
push str.Stupidly_large_type
call fcn.0040b83a
pop ecx
push dword [edi]
call fcn.0040b83a
mov dword [esp], str.__refactor_it._r_n
call fcn.0040b83a
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 0x404a8b
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.Missing_property_in_type
call ebx
push dword [edi]
call ebx
push 0x654ef4
call ebx
lea esi, [esp + 0x28]
call fcn.0040cf60
push dword [esp + 0x24]
lea eax, [esp + 0x34]
push str._want
push dword [esp + 0x1c]
push str.Have
call fcn.0040c08e
mov ecx, eax
call fcn.0040c349
call fcn.0040c08e
mov ecx, eax
call fcn.0040c349
push eax
call fcn.0040485a
pop ecx
push dword [esp + 0x50]
mov byte [esp + 0x7c], 0
call ebx
call dword [sym.imp.KERNEL32.dll_DebugBreak]
lea ecx, [esp + 0x34]
call fcn.0040cafe
lea ecx, [esp + 0x7c]
call fcn.0040db2e
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 + 0x9c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0057937b
mov esp, ebp
pop ebp
ret
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x4049c6
mov ecx, dword [ebx + 0xc]
xor edx, edx
inc edx
test byte [eax + 0xe], dl
jne 0x404adb
cmp ecx, 4
jbe 0x404adb
lea edx, [edx + edx + 1]
sub ecx, 4
jmp 0x404acd
movzx ecx, word [eax + 0xc]
test cx, cx
jbe 0x404ae7
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 0x404b0a
or dword [esp + 0x18], esi
shr cl, 3
test cl, 1
je 0x404b16
or dword [esp + 0x1c], esi
mov cl, byte [ebx + 0x14]
shr cl, 5
test cl, 1
je 0x404b25
or dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
add eax, 0x18
xor ebx, ebx
jmp 0x4049ac