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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x218]
push ebx
sub esp, 0x27c
mov dword [ebp - 0x244], eax
mov edi, dword [sym.imp.user32.dll_LoadStringW]
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [ebp - 0x254], 0x45
mov dword [ebp - 0x240], 0x100
mov dword [ebp - 0x234], 1
mov dword [ebp - 0x258], 0xffff0001
mov dword [ebp - 0x25c], 0xffff0000
mov dword [esp + 0xc], 0x100
mov dword [esp + 4], 0xe6
mov dword [esp], eax
call edi
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
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x26c], eax
call eax
mov edx, 0x49
mov byte [eax], 1
mov ecx, eax
sub esp, 0xc
mov eax, 2
jmp 0x406182
movzx edx, word [eax + str.Interface_]
add eax, 2
mov word [ecx + eax], dx
test dx, dx
jne 0x406178
mov eax, dword [0x41b030]
lea esi, [ebp - 0x25c]
mov dword [ebp - 0x230], ecx
mov dword [esp + 0xc], esi
mov ebx, dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b67c], eax
mov eax, dword [ebp - 0x244]
sub esp, 0x10
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [esp + 4], 0xdc
mov dword [esp], eax
call edi
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
mov eax, dword [ebp - 0x26c]
call eax
mov edx, 0x54
mov byte [eax], 1
mov ecx, eax
sub esp, 0xc
mov eax, 2
jmp 0x406232
movzx edx, word [eax + str.TypeLib_]
add eax, 2
mov word [ecx + eax], dx
test dx, dx
jne 0x406228
mov eax, dword [0x41b030]
mov dword [ebp - 0x230], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b678], eax
mov eax, dword [ebp - 0x244]
sub esp, 0x10
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [esp + 4], 0xd2
mov dword [esp], eax
call edi
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
mov eax, dword [ebp - 0x26c]
call eax
mov edx, 0x41
mov byte [eax], 3
mov ecx, eax
sub esp, 0xc
mov eax, 2
jmp 0x4062da
movzx edx, word [eax + str.AppID_]
add eax, 2
mov word [ecx + eax], dx
test dx, dx
jne 0x4062d0
mov eax, dword [0x41b030]
mov dword [ebp - 0x230], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b674], eax
mov eax, dword [ebp - 0x244]
sub esp, 0x10
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [esp + 4], 0xc8
mov dword [esp], eax
call edi
mov eax, dword [0x41b030]
mov dword [ebp - 0x230], 0
sub esp, 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b660], eax
sub esp, 0x10
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x244]
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [esp + 4], 0xcc
mov dword [esp], eax
call edi
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
mov eax, dword [ebp - 0x26c]
call eax
mov edx, 0x43
mov byte [eax], 1
mov ecx, eax
sub esp, 0xc
mov eax, 2
jmp 0x4063da
movzx edx, word [eax + str.CLSID_]
add eax, 2
mov word [ecx + eax], dx
test dx, dx
jne 0x4063d0
mov eax, dword [0x41b030]
mov dword [ebp - 0x230], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b670], eax
mov eax, dword [ebp - 0x244]
sub esp, 0x10
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [esp + 4], 0xcb
mov dword [esp], eax
call edi
mov eax, dword [0x41b030]
sub esp, 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b66c], eax
mov eax, dword [ebp - 0x244]
sub esp, 0x10
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [esp + 4], 0xca
mov dword [esp], eax
call edi
mov eax, dword [0x41b030]
mov dword [ebp - 0x230], 0
sub esp, 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b668], eax
mov eax, dword [ebp - 0x244]
sub esp, 0x10
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
mov eax, dword [0x41b03c]
mov dword [esp + 4], 0xc9
mov dword [esp], eax
call edi
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
mov eax, dword [ebp - 0x26c]
call eax
mov edx, 0x43
mov byte [eax], 3
mov ecx, eax
sub esp, 0xc
mov eax, 2
jmp 0x406522
movzx edx, word [eax + str.Component_Categories_]
add eax, 2
mov word [ecx + eax], dx
test dx, dx
jne 0x406518
mov eax, dword [0x41b030]
mov dword [ebp - 0x230], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp], eax
call ebx
mov dword [0x41b664], eax
mov eax, dword [0x41b660]
sub esp, 0x10
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov eax, dword [0x41b030]
mov dword [esp + 4], 0x1102
mov dword [esp], eax
call ebx
sub esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret