Function at 0x4c1571
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
mov esi, ecx
push edi
test dword [esi + 0x74], 0x40000
je 0x4c161a
call fcn.004d6912
mov edi, eax
cmp dword [edi + 0x1eb], 0
jne 0x4c15a9
call fcn.004c1513
cmp dword [edi + 0x1eb], 0
je 0x4c188e
mov eax, dword [esi + 0x48]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4c15c3
mov dword [esp + 0x28], 0x55c75e
mov eax, dword [0x4e054c]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
push eax
push 0
push 0x220
mov dword [esp + 0x3c], SysReAllocStringLen
mov dword [esp + 0x40], SysReAllocStringLen
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0x44cc0000
mov dword [esp + 0x50], esi
push dword [edi + 0x1eb]
call dword [sym.imp.USER32.dll_SendMessageW]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 8
cmp dword [esi + 0x48], 0
jne 0x4c164e
mov esi, dword [esi + 0x34]
test esi, esi
je 0x4c188e
lea ebx, [ebx]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4c163e
mov eax, dword [ecx]
push ecx
call dword [eax + 0x10]
mov esi, dword [esi]
test esi, esi
jne 0x4c1631
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 8
call fcn.004d6912
mov edx, dword [esi + 0x2c]
mov ebp, eax
mov ecx, dword [edx + 0x34]
cmp dword [ecx + 0x54], 0
setne cl
cmp byte [esi + 0x66], 0
mov byte [esp + 0x13], cl
jne 0x4c167b
test dword [esi + 0x74], 0x2000000
jne 0x4c167b
mov edi, dword [esp + 0x74]
jmp 0x4c16b8
mov edi, dword [ebp + 0xea]
test edi, edi
jne 0x4c16b2
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push 0x94000000
push 0x55c75e
push str.STATIC
push 0x8000080
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, eax
mov dword [ebp + 0xea], edi
mov edx, dword [esi + 0x2c]
mov cl, 1
mov byte [esp + 0x13], cl
mov eax, dword [esi + 0x50]
and eax, 0xefffffff
movzx ebx, cl
shl ebx, 0x1e
or ebx, eax
mov eax, dword [esi + 0x54]
or ebx, 0x4000000
mov dword [esp + 0x20], eax
mov eax, dword [0x4e054c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x74], eax
test eax, eax
jne 0x4c16fb
call fcn.004d509f
mov eax, dword [0x4e054c]
mov edx, dword [esi + 0x2c]
mov cl, byte [esp + 0x13]
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], esi
test cl, cl
je 0x4c1762
mov ecx, dword [edx + 0x34]
movzx eax, word [ecx + 0xb4]
mov dword [esp + 0x14], eax
inc eax
mov word [ecx + 0xb4], ax
mov edx, dword [esi + 0x2c]
mov cl, byte [esp + 0x13]
jmp 0x4c176a
mov dword [esp + 0x14], 0
test edi, edi
jne 0x4c1780
test cl, cl
je 0x4c1777
mov eax, dword [edx + 0x34]
jmp 0x4c177d
mov eax, dword [ebp + 0xe2]
mov edi, dword [eax + 0x54]
cmp dword [esp + 0x70], 0
mov eax, dword [edx + 0x2c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx + 0x58]
mov ebp, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
je 0x4c17a2
mov edx, SysReAllocStringLen
mov ecx, edx
jmp 0x4c17a8
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x28]
mov eax, dword [esi + 0x4c]
test eax, eax
jne 0x4c17b4
mov eax, 0x55c75e
lea ebx, [esp + 0x48]
push ebx
push dword [esp + 0x78]
mov ebx, dword [esp + 0x24]
push dword [esp + 0x1c]
push edi
push ebp
push dword [esp + 0x2c]
push edx
push ecx
push ebx
push eax
push dword [esi + 0x48]
push dword [esp + 0x4c]
call dword [sym.imp.USER32.dll_CreateWindowExW]
cmp byte [esi + 0x60], 0
mov dword [esi + 0x3c], eax
je 0x4c1844
push 0xffffffffffffffe6
push eax
call dword [sym.imp.USER32.dll_GetClassLongA]
or eax, 8
push eax
push 0xffffffffffffffe6
push dword [esi + 0x3c]
call dword [sym.imp.USER32.dll_SetClassLongA]
mov ecx, esi
call fcn.004c1359
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x24]
cmp word [eax + 0xb0], 0
jne 0x4c1829
push dword [esi + 0x3c]
mov eax, dword [esi]
push esi
call dword [eax + 0xa8]
mov edi, dword [esi + 0x34]
test edi, edi
je 0x4c1844
nop
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4c183e
mov eax, dword [ecx]
push ecx
call dword [eax + 0x10]
mov edi, dword [edi]
test edi, edi
jne 0x4c1831
cmp byte [esi + 0x61], 0
je 0x4c186d
push 0xfffffffffffffff0
push dword [esi + 0x3c]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x10000
jne 0x4c186d
or eax, 0x10000
push eax
push 0xfffffffffffffff0
push dword [esi + 0x3c]
call dword [sym.imp.USER32.dll_SetWindowLongA]
cmp byte [esi + 0x66], 0
jne 0x4c188e
cmp byte [esp + 0x13], 0
je 0x4c188e
test dword [esi + 0x50], 0x10000000
je 0x4c188e
push 5
push dword [esi + 0x3c]
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 8