Function at 0x52e050
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 4
mov eax, 0xcccccccc
mov dword [esp], eax
mov dword [ebp - 8], 0
push str.Cannot_initialize_OLE
call fcn.0040d340
pop ecx
push eax
push str.Cannot_initialize_OLE
lea ecx, [ebp - 8]
call fcn.00589f70
cmp dword [ebp - 8], 0
je 0x52e091
mov ebx, dword [ebp - 8]
mov edx, dword [0x63df30]
mov dword [ebx + 0x10], edx
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp + 8]
call fcn.0058a7b0
cmp dword [ebp - 8], 0
je 0x52e0ab
mov ecx, dword [ebp - 8]
call fcn.00589d70
cmp byte [0x6567b0], 0
je 0x52e0bc
mov al, 1
lea esp, [ebp - 4]
pop ebx
pop ebp
ret
cmp byte [0x6567b8], 0
jne 0x52e0dc
push str.ole32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x6567b4], eax
mov byte [0x6567b8], 1
cmp byte [0x6567c0], 0
jne 0x52e0fc
push str.oleaut32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x6567bc], eax
mov byte [0x6567c0], 1
cmp dword [0x6567b4], 0
je 0x52e308
cmp dword [0x6567bc], 0
je 0x52e308
push str.CoInitialize
push dword [0x6567b4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008ac], eax
push str.OleInitialize
push dword [0x6567b4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008b4], eax
push str.CoCreateInstance
push dword [0x6567b4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008a8], eax
push str.CLSIDFromProgID
push dword [0x6567b4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008a0], eax
push str.CLSIDFromString
push dword [0x6567b4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008a4], eax
push str.GetActiveObject
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008b0], eax
push str.SafeArrayAccessData
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008bc], eax
push str.SafeArrayUnaccessData
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008c0], eax
push str.SafeArrayCreate
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008c4], eax
push str.SafeArrayDestroy
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008c8], eax
push str.SafeArrayGetElement
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008cc], eax
push str.SafeArrayPutElement
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008d0], eax
push str.SysFreeString
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008d4], eax
push str.SysAllocString
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008d8], eax
push str.VariantChangeType
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008dc], eax
push str.VariantInit
push dword [0x6567bc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x6008b8], eax
cmp dword [0x6008a8], 0
je 0x52e308
cmp dword [0x6008a0], 0
je 0x52e308
cmp dword [0x6008a4], 0
je 0x52e308
cmp dword [0x6008b0], 0
je 0x52e308
cmp dword [0x6008bc], 0
je 0x52e308
cmp dword [0x6008c0], 0
je 0x52e308
cmp dword [0x6008c4], 0
je 0x52e308
cmp dword [0x6008c8], 0
je 0x52e308
cmp dword [0x6008cc], 0
je 0x52e308
cmp dword [0x6008d0], 0
je 0x52e308
cmp dword [0x6008d4], 0
je 0x52e308
cmp dword [0x6008d8], 0
je 0x52e308
cmp dword [0x6008dc], 0
je 0x52e308
cmp dword [0x6008b8], 0
je 0x52e308
cmp dword [0x6008b4], 0
je 0x52e308
mov byte [0x6567b0], 1
mov al, byte [0x6567b0]
lea esp, [ebp - 4]
pop ebx
pop ebp
ret