Function at 0x404888
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [0x6d25dc]
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 0x4048e1
cmp dword [edi + 8], ebx
je 0x4048e1
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 0x404aae
mov ecx, dword [esp + 0x10]
xor esi, esi
inc esi
cmp dword [edi + 0x30], esi
je 0x404aae
mov eax, dword [0x6e71ec]
mov dword [edi + 0x34], eax
mov eax, dword [edi + 0x20]
cmp eax, ebx
mov dword [0x6e71ec], edi
je 0x40491f
cmp dword [eax], ebx
je 0x40491f
add eax, 0x18
jne 0x404902
jmp 0x40491f
mov edx, dword [ecx + 0x20]
cmp edx, ebx
je 0x404918
cmp dword [edx], ebx
jne 0x404923
mov ecx, dword [ecx + 8]
mov dword [esp + 0x10], ecx
cmp ecx, ebx
jne 0x40490d
cmp eax, ebx
je 0x40492a
mov dword [eax + 0x10], ecx
push edi
call fcn.00404636
mov dword [edi + 0x38], eax
pop ecx
mov ecx, dword [eax + 0xc]
mov dword [edi + 0x3c], ecx
cmp dword [0x6d6f10], ebx
je 0x404949
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
cmp edi, 0x6d6ed8
jne 0x404978
mov dword [esp + 0x10], edi
mov eax, dword [edi + 0x34]
jmp 0x404970
cmp dword [eax + 0x38], ebx
je 0x40496d
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 0x40495a
cmp edi, 0x6d8090
mov dword [edi + 0x30], esi
jne 0x404988
call fcn.00405841
mov esi, dword [edi + 0x28]
jmp 0x404997
mov ecx, esi
call fcn.00404888
mov esi, dword [esi + 0x2c]
cmp esi, ebx
jne 0x40498d
mov eax, dword [edi + 0x20]
cmp eax, ebx
mov dword [esp + 0x14], ebx
je 0x404aae
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
cmp dword [eax], ebx
jne 0x404ac3
mov eax, dword [eax + 0x10]
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x4049d2
mov eax, dword [eax + 0x20]
cmp eax, ebx
jne 0x4049b8
test dword [esp + 0x14], 0x80000000
je 0x404a01
push str.Stupidly_large_type
call fcn.0040bb8b
pop ecx
push dword [edi]
call fcn.0040bb8b
mov dword [esp], str.__refactor_it._r_n
call fcn.0040bb8b
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 0x404a97
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.Missing_property_in_type
call ebx
push dword [edi]
call ebx
push 0x655e44
call ebx
lea esi, [esp + 0x28]
call fcn.0040e88d
push dword [esp + 0x24]
lea eax, [esp + 0x34]
push str._want
push dword [esp + 0x1c]
push str.Have
call fcn.0040c3df
mov ecx, eax
call fcn.0040c69a
call fcn.0040c3df
mov ecx, eax
call fcn.0040c69a
push eax
call fcn.00404866
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.0040e42b
lea ecx, [esp + 0x7c]
call fcn.0040d273
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.00579aab
mov esp, ebp
pop ebp
ret
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x4049d2
mov ecx, dword [ebx + 0xc]
xor edx, edx
inc edx
test byte [eax + 0xe], dl
jne 0x404ae7
cmp ecx, 4
jbe 0x404ae7
lea edx, [edx + edx + 1]
sub ecx, 4
jmp 0x404ad9
movzx ecx, word [eax + 0xc]
test cx, cx
jbe 0x404af3
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 0x404b16
or dword [esp + 0x18], esi
shr cl, 3
test cl, 1
je 0x404b22
or dword [esp + 0x1c], esi
mov cl, byte [ebx + 0x14]
shr cl, 5
test cl, 1
je 0x404b31
or dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
add eax, 0x18
xor ebx, ebx
jmp 0x4049b8