Function at 0x423f90
Capabilities:
Access peb ldr_data
Get kernel32 base address
Resolve function by parsing pe exports

Disassembly:
mov ecx, 0x566788
jmp 0x4bc830
push 0xffffffffffffffff
push 0x52c24d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x80
mov dword [esp + 0x18], esi
mov dword [esi], vtable.Table_class_AM_PlugIn_.0
call sub.MFC42.DLL_operatornew
xor ebx, ebx
mov ebp, 0x1f
mov edi, 0x40
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebp
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], edi
mov dword [esi], vtable.STable_class_AM_PlugIn_.0
push 0x80
mov dword [esp + 0x2c], ebx
mov dword [esi + 0x1c], vtable.Table_class_CX_PlugIn_.0
call sub.MFC42.DLL_operatornew
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebp
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], edi
mov dword [esi + 0x1c], vtable.STable_class_CX_PlugIn_.0
push 0x80
mov byte [esp + 0x30], 1
mov dword [esi + 0x38], vtable.Table_class_DC_PlugIn_.0
call sub.MFC42.DLL_operatornew
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebp
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], edi
mov dword [esi + 0x38], vtable.STable_class_DC_PlugIn_.0
push 0x80
mov byte [esp + 0x34], 2
mov dword [esi + 0x54], vtable.Table_class_ID_PlugIn_.0
call sub.MFC42.DLL_operatornew
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], ebp
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], edi
mov dword [esi + 0x54], vtable.STable_class_ID_PlugIn_.0
push 0x80
mov byte [esp + 0x38], 3
mov dword [esi + 0x70], vtable.Table_class_IE_PlugIn_.0
call sub.MFC42.DLL_operatornew
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ebp
mov dword [esi + 0x80], ebx
mov dword [esi + 0x84], edi
mov dword [esi + 0x70], vtable.STable_class_IE_PlugIn_.0
push 0x80
mov byte [esp + 0x3c], 4
mov dword [esi + 0x8c], vtable.Table_class_PX_PlugIn_.0
call sub.MFC42.DLL_operatornew
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], ebx
mov dword [esi + 0x98], ebp
mov dword [esi + 0x9c], ebx
mov dword [esi + 0xa0], edi
mov dword [esi + 0x8c], vtable.STable_class_PX_PlugIn_.0
push 0x80
mov byte [esp + 0x40], 5
mov dword [esi + 0xa8], vtable.Table_struct_PlugIn_.0
call sub.MFC42.DLL_operatornew
add esp, 0x1c
mov dword [esi + 0xac], eax
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xb4], ebp
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], edi
mov dword [esi + 0xa8], vtable.STable_struct_PlugIn_.0
lea edi, [esi + 0xe4]
mov ecx, 0x15
xor eax, eax
mov ebp, 0xfffffef0
rep stosd dword es:[edi], eax
mov eax, 1
mov dword [esi + 0x13c], ebx
mov dword [esi + 0x10], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x64], eax
mov dword [esi + 0x80], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x9c], eax
mov byte [esp + 0x24], 6
mov dword [esi + 0xb8], ebx
lea edi, [esi + 0x110]
sub ebp, esi
call dword [sym.imp.MSVCRT.dll_rand]
and eax, 0x800000ff
jns 0x4bca1b
dec eax
or eax, 0xffffff00
inc eax
mov byte [edi - 0x28], al
call dword [sym.imp.MSVCRT.dll_rand]
and eax, 0x800000ff
jns 0x4bca32
dec eax
or eax, 0xffffff00
inc eax
mov byte [edi], al
inc edi
lea eax, [edi + ebp]
cmp eax, 0x28
jl 0x4bca07
push 0x14
mov dword [esi + 0x10c], ebx
mov dword [esi + 0x134], 0x4c5660
mov dword [esi + 0xe0], ebx
mov byte [esi + 0x139], bl
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x24], 7
je 0x4bca94
mov ecx, dword [str.SoftwareACD_SystemsPlugIns]
push ecx
push SysReAllocString
push reloc.OLEAUT32.dll_SysReAllocString
push reloc.OLEAUT32.dll_SysReAllocString
push SysReAllocString
mov ecx, eax
call fcn.00477ac0
jmp 0x4bca96
xor eax, eax
push 0x14
mov byte [esp + 0x28], 6
mov dword [esi + 0xc4], eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x24], 8
je 0x4bcacd
mov edx, dword [esi + 0xc4]
push str.InfoCacheAMP
push edx
mov ecx, eax
call fcn.004779c0
jmp 0x4bcacf
xor eax, eax
push 0x14
mov byte [esp + 0x28], 6
mov dword [esi + 0xc8], eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x24], 9
je 0x4bcb06
mov ecx, dword [esi + 0xc4]
push str.InfoCacheCXP
push ecx
mov ecx, eax
call fcn.004779c0
jmp 0x4bcb08
xor eax, eax
push 0x14
mov byte [esp + 0x28], 6
mov dword [esi + 0xcc], eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x24], 0xa
je 0x4bcb3f
mov edx, dword [esi + 0xc4]
push str.InfoCacheDCP
push edx
mov ecx, eax
call fcn.004779c0
jmp 0x4bcb41
xor eax, eax
push 0x14
mov byte [esp + 0x28], 6
mov dword [esi + 0xd0], eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x24], 0xb
je 0x4bcb78
mov ecx, dword [esi + 0xc4]
push str.InfoCacheIDP
push ecx
mov ecx, eax
call fcn.004779c0
jmp 0x4bcb7a
xor eax, eax
push 0x14
mov byte [esp + 0x28], 6
mov dword [esi + 0xd4], eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x24], 0xc
je 0x4bcbb1
mov edx, dword [esi + 0xc4]
push str.InfoCacheIEP
push edx
mov ecx, eax
call fcn.004779c0
jmp 0x4bcbb3
xor eax, eax
push 0x14
mov byte [esp + 0x28], 6
mov dword [esi + 0xd8], eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x24], 0xd
je 0x4bcbea
mov ecx, dword [esi + 0xc4]
push str.InfoCachePXP
push ecx
mov ecx, eax
call fcn.004779c0
jmp 0x4bcbec
xor eax, eax
mov ecx, dword [esi + 0xc4]
lea edx, [esp + 0x10]
lea edi, [esi + 0x138]
push edx
push edi
push str.HandleExceptions
mov byte [esp + 0x30], 6
mov dword [esi + 0xdc], eax
mov dword [esp + 0x1c], 1
call fcn.00477dc0
test eax, eax
je 0x4bcc22
mov byte [edi], 1
mov ecx, dword [esp + 0x1c]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret