Function at 0x511120
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x56f329
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10c
mov eax, dword [0x5c58d0]
push ebx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x124]
test eax, eax
push esi
mov esi, dword [esp + 0x124]
push edi
mov dword [esp + 0x10], 0
je 0x5111e9
mov dword [esi + 4], 0x592acc
mov dword [esi + 0x168], 0x592ac4
mov dword [esi + 0x17c], 0x592ab4
mov dword [esi + method.CElement.virtual_0], vtable.CElement.0
mov eax, dword [esi + 0x168]
mov dword [esi + method.CInteractiveElement.virtual_0], vtable.CInteractiveElement.0
mov ecx, dword [eax + 4]
mov dword [ecx + esi + method.CInteractiveElement.1.virtual_0], vtable.CInteractiveElement.1.0
mov dword [esi + method.CSerializable.virtual_0], vtable.CSerializable.0
push 0
lea edx, [esi + 0x178]
mov dword [esp + 0x124], 2
push edx
mov dword [esp + 0x18], 7
call fcn.0047c000
mov dword [esp + 0x120], 3
mov dword [esp + 0x10], 0xf
push 0
push esi
call fcn.004ad4d0
mov dword [esp + 0x120], 4
mov eax, dword [esi + 4]
mov dword [esi], vtable.CFieldElement.4.0
mov ecx, dword [eax + 4]
mov dword [ecx + esi + 4], vtable.CFieldElement.3.0
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
mov dword [eax + esi + 4], vtable.CFieldElement.2.0
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0xc]
mov dword [edx + esi + 4], vtable.CFieldElement.1.0
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x10]
mov dword [ecx + esi + 4], vtable.CFieldElement.0
mov edx, dword [esi + 4]
mov eax, dword [edx + 4]
lea ecx, [eax - 0x158]
mov dword [eax + esi], ecx
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
lea ecx, [eax - 0x160]
mov dword [eax + esi], ecx
mov edx, dword [esi + 4]
mov eax, dword [edx + 0xc]
lea ecx, [eax - 0x16c]
mov dword [eax + esi], ecx
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x10]
push 1
lea edx, [esp + 0x18]
lea ecx, [eax - 0x174]
push edx
mov dword [eax + esi], ecx
call fcn.004bb6a0
mov byte [esp + 0x120], 5
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x10]
lea ecx, [edx + esi + 4]
push 1
lea ebx, [ecx + 8]
call fcn.004475a0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x120], 4
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x64]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x38]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov eax, dword [esp + 0x18]
push 0
mov dword [esp + 0x18], vtable.CProperty.0
mov ecx, dword [eax + 4]
mov dword [esp + ecx + 0x1c], vtable.CProperty.1.0
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x10]
mov edx, dword [eax + esi + 4]
push 0x5c81b4
push 0x5c61c0
lea ecx, [eax + esi + 4]
push 0
push 0x5c81b4
call dword [edx + 4]
push eax
call sub.MSVCR71.dll___RTDynamicCast
mov edi, eax
add esp, 0x14
lea eax, [esp + 0x8c]
push eax
mov ecx, 1
call fcn.004c7aa0
mov byte [esp + 0x120], 6
mov eax, edi
lea ebx, [esp + 0x8c]
call fcn.004c1f80
xor bl, bl
mov byte [esp + 0xd], bl
mov byte [esp + 0xe], 1
mov cx, word [esp + 0xd]
lea edx, [esp + 0x8c]
xor al, al
mov word [esp + 0x9f], cx
push edx
lea ecx, [esi + 0x170]
mov byte [esp + 0xa5], al
call fcn.004b2a70
lea ecx, [esp + 0x110]
mov byte [esi + 0x150], bl
mov byte [esi + 0x151], bl
mov byte [esp + 0x120], 4
call fcn.004c7c70
mov ecx, dword [esp + 0x118]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x114]
mov eax, esi
call fcn.0054939e
pop edi
pop esi
pop ebx
add esp, 0x118
ret 8