Function at 0x405dd0
Capabilities:
Access peb ldr_data
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
lea eax, [ebp - 0x208]
sub esp, 0x260
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x244], 0x45
mov dword [ebp - 0x230], 0x100
mov dword [ebp - 0x224], 1
mov dword [ebp - 0x248], 0xffff0001
mov dword [ebp - 0x24c], 0xffff0000
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov dword [esp + 4], 0xe6
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0x10
mov dword [esp + 8], 0x60c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
xor edx, edx
mov byte [eax], 1
sub esp, 0xc
lea esi, [esi]
movzx ecx, word [edx + str.Interface_]
mov word [eax + edx + 2], cx
add edx, 2
test cx, cx
jne 0x405e70
lea ebx, [ebp - 0x24c]
mov dword [ebp - 0x220], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [0x41667c], eax
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], 0xdc
mov dword [esp + 8], eax
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
sub esp, 0x10
mov dword [esp + 8], 0x60c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
xor edx, edx
mov byte [eax], 1
sub esp, 0xc
lea esi, [esi]
movzx ecx, word [edx + str.TypeLib_]
mov word [eax + edx + 2], cx
add edx, 2
test cx, cx
jne 0x405f10
mov dword [ebp - 0x220], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [0x416678], eax
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], 0xd2
mov dword [esp + 8], eax
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
sub esp, 0x10
mov dword [esp + 8], 0x60c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
xor edx, edx
mov byte [eax], 3
sub esp, 0xc
lea esi, [esi]
lea esi, [esi]
movzx ecx, word [edx + str.AppID_]
mov word [eax + edx + 2], cx
add edx, 2
test cx, cx
jne 0x405fb0
mov dword [ebp - 0x220], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [0x416674], eax
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], 0xc8
mov dword [esp + 8], eax
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
mov dword [ebp - 0x220], 0
sub esp, 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [0x416660], eax
mov dword [ebp - 0x24c], eax
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], 0xcc
mov dword [esp + 8], eax
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
sub esp, 0x10
mov dword [esp + 8], 0x60c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
xor edx, edx
mov byte [eax], 1
sub esp, 0xc
lea esi, [esi]
movzx ecx, word [edx + str.CLSID_]
mov word [eax + edx + 2], cx
add edx, 2
test cx, cx
jne 0x4060b0
mov dword [ebp - 0x220], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [0x416670], eax
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], 0xcb
mov dword [esp + 8], eax
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
sub esp, 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [0x41666c], eax
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], 0xca
mov dword [esp + 8], eax
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
mov dword [ebp - 0x220], 0
sub esp, 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
mov dword [0x416668], eax
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], 0xc9
mov dword [esp + 8], eax
mov eax, dword [0x41603c]
mov dword [esp], eax
call sym._LoadStringW_16
sub esp, 0x10
mov dword [esp + 8], 0x60c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
xor edx, edx
mov byte [eax], 3
sub esp, 0xc
lea esi, [esi]
lea esi, [esi]
movzx ecx, word [edx + str.Component_Categories_]
mov word [eax + edx + 2], cx
add edx, 2
test cx, cx
jne 0x406200
mov dword [ebp - 0x220], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
mov dword [0x416664], eax
mov eax, dword [0x416660]
sub esp, 0x10
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x1102
mov eax, dword [0x416030]
mov dword [esp], eax
call sym._SendMessageW_16
sub esp, 0x10
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret