Function at 0x4c0c7b
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x575dae
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x5bd250]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push esi
push edi
mov eax, dword [0x5bd250]
xor eax, esp
push eax
lea eax, [esp + 0x188]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x24], ebx
cmp dword [ebx], 0
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], eax
je 0x4c207e
lea ecx, [ebx + 0x100]
push 0
mov dword [esp + 0x24], ecx
call fcn.004bf139
mov esi, eax
test esi, esi
je 0x4c0d74
lea eax, [ebx + 0xb8]
mov ebx, eax
push 0
call fcn.004bf0ce
mov eax, dword [esi + 0x108]
test eax, eax
je 0x4c0d25
lea edx, [eax + 0x34]
mov ecx, edx
call fcn.004cf190
test al, al
je 0x4c0d25
push esi
mov ecx, edx
call fcn.004cf298
mov ecx, ebx
xor edi, edi
call fcn.004bf132
test eax, eax
jle 0x4c0d4d
push edi
mov ecx, ebx
call fcn.004bf155
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx]
mov ecx, ebx
inc edi
call fcn.004bf132
cmp edi, eax
jl 0x4c0d32
mov ecx, esi
call fcn.004c0414
push esi
call fcn.0053ce3a
pop ecx
mov ecx, dword [esp + 0x20]
push 0
call fcn.004bf139
mov esi, eax
test esi, esi
jne 0x4c0cfe
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
xor edx, edx
lea ecx, [ebx + 0xdc]
mov dword [esp + 0x14], edx
call fcn.004bf132
mov esi, dword [ebp + 8]
test eax, eax
jle 0x4c0dd3
mov edi, dword [esp + 0x10]
push edx
mov byte [esp + 0x23], 0
call fcn.004bf155
lea ecx, [esp + 0x1f]
push ecx
push edi
push dword [esp + 0x20]
mov edx, dword [eax]
mov ecx, eax
push esi
call dword [edx]
cmp byte [esp + 0x1f], 0
jne 0x4c0e5a
mov edx, dword [esp + 0x14]
lea ecx, [ebx + 0xdc]
inc edx
mov dword [esp + 0x14], edx
call fcn.004bf132
cmp edx, eax
jl 0x4c0d90
mov edi, dword [esp + 0x18]
mov eax, 0x113
cmp esi, eax
ja 0x4c1769
je 0x4c16d2
cmp esi, 0x4e
ja 0x4c14b8
je 0x4c1498
sub esi, 5
je 0x4c143c
sub esi, 0xa
je 0x4c1002
dec esi
je 0x4c0f52
sub esi, 4
je 0x4c0f44
sub esi, 0xc
je 0x4c0e67
sub esi, 4
jne 0x4c1ff7
mov ecx, dword [ebx + 0x6c]
mov eax, dword [esp + 0x10]
test ecx, ecx
jle 0x4c0e33
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0x70]
test ecx, ecx
jle 0x4c0e3d
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x74]
test ecx, ecx
jle 0x4c0e47
mov dword [eax + 0x20], ecx
mov ecx, dword [ebx + 0x78]
test ecx, ecx
jle 0x4c1ff7
mov dword [eax + 0x24], ecx
jmp 0x4c1ff7
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
mov al, 1
jmp 0x4c2080
mov esi, dword [esp + 0x10]
xor eax, eax
inc eax
cmp si, ax
jne 0x4c1ff7
cmp byte [ebx + 0xb6], 0
jne 0x4c2080
and dword [esp + 0x34], 0
lea eax, [esp + 0x34]
and dword [esp + 0x38], 0
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [esp + 0x34]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [esp + 0x38]
mov ecx, ebx
push dword [esp + 0x38]
call fcn.004c3ae6
mov dword [esp + 0x24], eax
test eax, eax
je 0x4c1ff7
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
test al, 2
je 0x4c1ff7
xor eax, eax
lea edi, [esp + 0x88]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x84], 0x17
mov dword [esp + 0xa0], esi
mov dword [esp + 0x94], eax
call fcn.004bff1f
mov word [esp + 0x9a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x84]
mov dword [esp + 0x8c], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x108]
jmp 0x4c0e60
mov ecx, dword [esp + 0x34]
xor eax, eax
inc eax
mov dword [ecx], eax
jmp 0x4c2080
and dword [esp + 0xc4], 0
lea edi, [esp + 0xc8]
push 7
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x64]
mov dword [esp + 0xd0], eax
mov eax, dword [ebx + 0x68]
mov dword [esp + 0xd4], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x58]
mov dword [esp + 0xcc], eax
test ecx, ecx
je 0x4c0fb2
mov dword [esp + 0xc4], 0xa
lea edx, [esp + 0xc4]
mov dword [esp + 0xc8], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x108]
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
je 0x4c0fdb
mov dword [esp + 0xc4], 0xe
lea edx, [esp + 0xc4]
mov dword [esp + 0xc8], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x108]
push 0
mov ecx, ebx
call fcn.004c2434
push 4
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindow]
test eax, eax
je 0x4c1ff7
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x4c1ff7
push 0
lea eax, [esp + 0xe8]
xorps xmm0, xmm0
push eax
push dword [ebx]
movdqu xmmword [esp + 0xf0], xmm0
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
je 0x4c0e60
xor eax, eax
cmp dword [ebx + 0x50], eax
jne 0x4c106e
push 0x3c
push eax
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x90]
push eax
call fcn.0053e230
add esp, 0xc
lea eax, [esp + 0x84]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_BeginPaint]
lea eax, [esp + 0x84]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_EndPaint]
jmp 0x4c0e60
cmp byte [ebx + 0xb1], al
je 0x4c117c
mov byte [ebx + 0xb1], al
xorps xmm0, xmm0
lea eax, [esp + 0xc4]
push eax
push dword [ebx]
movdqu xmmword [esp + 0xcc], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0xc4]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x4c117c
mov ecx, dword [ebx + 0x50]
call fcn.004c59cc
test al, al
mov eax, dword [ecx]
je 0x4c111b
sub esp, 0x10
lea esi, [esp + 0xd4]
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x34]
cmp dword [ebx + 0xc], 0
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
je 0x4c10e4
push dword [ebx + 0xc]
call esi
cmp dword [ebx + 0x10], 0
je 0x4c10ef
push dword [ebx + 0x10]
call esi
cmp dword [ebx + 0x14], 0
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x4c1100
push dword [ebx + 0x14]
call esi
cmp dword [ebx + 0x18], 0
je 0x4c110b
push dword [ebx + 0x18]
call esi
xor eax, eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], eax
jmp 0x4c115b
push SysReAllocString
push 0
push 0x4c3d29
call dword [eax + 0xfc]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4c1159
mov ebx, dword [eax]
mov ecx, eax
call dword [ebx + 0x30]
mov ecx, dword [esp + 0x14]
sub esp, 0x10
mov esi, eax
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ebx + 0x34]
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x50]
mov eax, dword [ecx]
jmp 0x4c111b
xor eax, eax
cmp byte [ebx + 0xb0], 0
je 0x4c117c
push ecx
push eax
push eax
push str.windowinit
push dword [ebx + 0x50]
mov ecx, ebx
mov byte [ebx + 0xb0], al
call fcn.004c2a8a
cmp byte [ebx + 0xb2], 0
je 0x4c118e
push 1
mov ecx, ebx
call fcn.004c2845
cmp byte [ebx + 0xb3], 0
je 0x4c11dd
cmp dword [ebx + 0x14], 0
jne 0x4c11dd
lea eax, [esp + 0x24]
xorps xmm0, xmm0
push eax
push dword [ebx]
movdqu xmmword [esp + 0x2c], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
push eax
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebx + 0x14], eax
and dword [esp + 0x44], 0
lea eax, [esp + 0x48]
push 0x3c
push 0
push eax
call fcn.0053e230
add esp, 0xc
lea eax, [esp + 0x44]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_BeginPaint]
cmp byte [ebx + 0xb3], 0
je 0x4c13e6
push dword [ebx + 0x14]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebx + 0xc]
call edi
push dword [ebx + 0xc]
mov dword [esp + 0x28], eax
call dword [sym.imp.GDI32.dll_SaveDC]
cmp byte [ebx + 0xb4], 0
mov esi, dword [sym.imp.GDI32.dll_BitBlt]
mov dword [esp + 0x20], eax
je 0x4c12f4
cmp dword [ebx + 0x18], 0
jne 0x4c12bd
lea eax, [esp + 0x34]
xorps xmm0, xmm0
push eax
push dword [ebx]
movdqu xmmword [esp + 0x3c], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
push eax
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push dword [ebx + 0x10]
mov dword [ebx + 0x18], eax
call edi
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
push 0xcc0020
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
push eax
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [ebx + 0x10]
call esi
jmp 0x4c12c5
push dword [ebx + 0x18]
push dword [ebx + 0x10]
call edi
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
push 0xcc0020
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [ebx + 0x10]
push eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
push eax
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [ebx + 0xc]
call esi
mov ecx, dword [ebx + 0x50]
lea edx, [esp + 0x4c]
push edx
push dword [ebx + 0xc]
mov eax, dword [ecx]
call dword [eax + pe_nt_image_headers32]
lea ecx, [ebx + 0xe8]
xor esi, esi
call fcn.004bf132
test eax, eax
jle 0x4c134a
lea edi, [ebx + 0xe8]
push esi
mov ecx, edi
call fcn.004bf155
lea ecx, [esp + 0x4c]
push ecx
push dword [ebx + 0xc]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x130]
mov ecx, edi
inc esi
call fcn.004bf132
cmp esi, eax
jl 0x4c131e
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x20]
push dword [ebx + 0xc]
call dword [sym.imp.GDI32.dll_RestoreDC]
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
push 0xcc0020
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [ebx + 0xc]
push eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
push eax
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [esp + 0x64]
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [esp + 0x24]
push dword [ebx + 0xc]
call edi
cmp byte [ebx + 0x4c], 0
je 0x4c1411
push dword [0x5c5a38]
push dword [esp + 0x48]
call edi
push 5
mov esi, eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push dword [esp + 0x48]
call edi
push dword [esp + 0xf0]
push dword [esp + 0xf0]
push dword [esp + 0xf0]
push dword [esp + 0xf0]
push dword [esp + 0x54]
call dword [sym.imp.GDI32.dll_Rectangle]
push esi
push dword [esp + 0x48]
call edi
jmp 0x4c1411
push dword [esp + 0x44]
call dword [sym.imp.GDI32.dll_SaveDC]
mov ecx, dword [ebx + 0x50]
mov esi, eax
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x48]
mov edx, dword [ecx]
call dword [edx + pe_nt_image_headers32]
push esi
push dword [esp + 0x48]
call dword [sym.imp.GDI32.dll_RestoreDC]
lea eax, [esp + 0x44]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_EndPaint]
cmp byte [ebx + 0xb1], 0
je 0x4c0e60
push 0
push 0
push dword [ebx]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x4c0e60
mov edx, dword [ebx + 0x54]
test edx, edx
je 0x4c1483
push 7
pop ecx
xor eax, eax
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
mov dword [esp + 0xc4], 0x16
mov dword [esp + 0xc8], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x54]
lea edx, [esp + 0xc4]
mov dword [esp + 0xcc], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x108]
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x4c0e60
call fcn.004c59d3
jmp 0x4c0e60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4c0e60
push eax
push edi
push 0x204e
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4c0e5a
sub esi, 0x7b
je 0x4c1648
sub esi, 0x85
je 0x4c15cd
dec esi
je 0x4c1554
dec esi
je 0x4c14f6
sub esi, 0xf
jne 0x4c1ff7
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4c1ff7
push eax
push edi
push 0x2111
push eax
jmp 0x4c14ad
cmp dword [ebx + 0x54], 0
je 0x4c1ff7
xor eax, eax
lea edi, [esp + 0xc8]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov word [esp + 0xd8], ax
mov eax, dword [ebx + 0x64]
mov dword [esp + 0xd0], eax
mov eax, dword [ebx + 0x68]
mov dword [esp + 0xc4], 5
mov dword [esp + 0xd4], eax
call fcn.004bff1f
mov word [esp + 0xda], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x54]
jmp 0x4c174d
cmp dword [ebx + 0x60], 0
je 0x4c1ff7
xor eax, eax
lea edi, [esp + 0xc8]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov word [esp + 0xd8], ax
mov eax, dword [ebx + 0x64]
mov dword [esp + 0xd0], eax
mov eax, dword [ebx + 0x68]
mov dword [esp + 0xc4], 4
mov dword [esp + 0xd4], eax
call fcn.004bff1f
mov word [esp + 0xda], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x60]
lea edx, [esp + 0xc4]
mov dword [esp + 0xcc], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x108]
and dword [ebx + 0x60], 0
jmp 0x4c1ff7
cmp dword [ebx + 0x54], 0
je 0x4c1ff7
xor eax, eax
lea edi, [esp + 0xc8]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov word [esp + 0xd8], ax
mov eax, dword [ebx + 0x64]
mov dword [esp + 0xd0], eax
mov eax, dword [ebx + 0x68]
mov dword [esp + 0xc4], 3
mov dword [esp + 0xd4], eax
call fcn.004bff1f
mov word [esp + 0xda], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x54]
lea edx, [esp + 0xc4]
mov dword [esp + 0xcc], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x108]
mov eax, dword [ebx + 0x54]
mov dword [ebx + 0x60], eax
jmp 0x4c1ff7
mov ecx, dword [esp + 0x10]
movsx eax, cx
mov dword [esp + 0x24], eax
shr ecx, 0x10
movsx eax, cx
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
cmp dword [ebx + 0x5c], 0
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x64], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x68], eax
je 0x4c1ff7
mov ecx, ebx
call fcn.004c282c
xor eax, eax
lea edi, [esp + 0xc8]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x5c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc4], 0x11
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xe0], ecx
jmp 0x4c18d6
lea ecx, [ebx + 0xc4]
xor edx, edx
call fcn.004bf132
test eax, eax
jle 0x4c1ff7
push edx
call fcn.004bf155
mov esi, eax
mov eax, dword [ebx]
cmp dword [esi + 8], eax
jne 0x4c1704
movzx ecx, di
cmp dword [esi + 0xc], ecx
jne 0x4c1704
cmp byte [esi + 0x10], 0
je 0x4c1719
lea ecx, [ebx + 0xc4]
inc edx
call fcn.004bf132
cmp edx, eax
jl 0x4c16e7
jmp 0x4c1ff7
push 7
xor eax, eax
lea edi, [esp + 0xcc]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esi]
mov dword [esp + 0xc8], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xc4], 0x18
mov dword [esp + 0xdc], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi]
mov dword [esp + 0xcc], eax
mov eax, dword [ecx]
lea edx, [esp + 0xc4]
push edx
call dword [eax + 0x108]
jmp 0x4c1ff7
mov eax, 0x204
cmp esi, eax
ja 0x4c1c0f
je 0x4c1b71
mov eax, esi
sub eax, 0x133
je 0x4c1b56
sub eax, 5
je 0x4c1b56
sub eax, 0xc8
je 0x4c19c4
dec eax
je 0x4c1907
dec eax
je 0x4c1865
dec eax
jne 0x4c1ff7
push dword [ebx]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [esp + 0x10]
movsx ecx, ax
shr eax, 0x10
cwde
push eax
mov dword [esp + 0x28], ecx
mov dword [ebx + 0x64], ecx
push ecx
mov ecx, ebx
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x68], eax
call fcn.004c3ae6
mov esi, eax
test esi, esi
je 0x4c1ff7
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x4c1ff7
mov ecx, ebx
call fcn.004c2818
xor eax, eax
lea edi, [esp + 0xc8]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc4], 0x10
mov dword [esp + 0xc8], esi
mov word [esp + 0xda], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0xcc], eax
lea ecx, [esp + 0xc4]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x108]
mov dword [ebx + 0x5c], esi
jmp 0x4c1ff7
mov eax, dword [esp + 0x10]
movsx esi, ax
shr eax, 0x10
cmp dword [ebx + 0x5c], 0
cwde
mov dword [esp + 0x24], eax
mov dword [ebx + 0x64], esi
mov dword [ebx + 0x68], eax
je 0x4c1ff7
mov ecx, ebx
call fcn.004c282c
push 7
xor eax, eax
lea edi, [esp + 0xcc]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x5c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc4], 0xe
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ecx
mov word [esp + 0xda], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x5c]
lea edx, [esp + 0xc4]
mov dword [esp + 0xcc], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x108]
and dword [ebx + 0x5c], 0
jmp 0x4c1ff7
push dword [ebx]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [esp + 0x10]
movsx ecx, ax
shr eax, 0x10
cwde
push eax
mov dword [esp + 0x28], ecx
mov dword [ebx + 0x64], ecx
push ecx
mov ecx, ebx
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x68], eax
call fcn.004c3ae6
mov esi, eax
test esi, esi
je 0x4c1ff7
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x4c1ff7
mov dword [ebx + 0x5c], esi
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0xf0]
mov ecx, ebx
call fcn.004c2818
push 7
xor eax, eax
lea edi, [esp + 0xcc]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc4], 0xd
mov dword [esp + 0xc8], esi
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
mov dword [esp + 0xd4], ecx
mov word [esp + 0xda], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0xcc], eax
jmp 0x4c1b45
cmp byte [ebx + 0xb5], 0
jne 0x4c1a22
xor eax, eax
lea edi, [esp + 0x28]
cmp dword [ebx + 0x1c], 0
stosd dword es:[edi], eax
push 3
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebx]
mov dword [esp + 0x24], 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
jne 0x4c19fb
mov dword [esp + 0x30], 0x190
jmp 0x4c1a10
push 0
push ecx
push 0x415
push dword [ebx + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.COMCTL32.dll__TrackMouseEvent]
mov byte [ebx + 0xb5], 1
mov eax, dword [esp + 0x10]
movsx ecx, ax
shr eax, 0x10
cwde
push eax
mov dword [esp + 0x28], ecx
mov dword [ebx + 0x64], ecx
push ecx
mov ecx, ebx
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x68], eax
call fcn.004c3ae6
mov esi, eax
test esi, esi
je 0x4c1a59
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x4c1ff7
and dword [esp + 0xc4], 0
lea edi, [esp + 0xc8]
push 7
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd4], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x58]
mov dword [esp + 0xcc], eax
cmp esi, ecx
je 0x4c1add
test ecx, ecx
je 0x4c1add
mov dword [esp + 0xc4], 0xa
lea edx, [esp + 0xc4]
mov dword [esp + 0xc8], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x108]
and dword [ebx + 0x58], 0
cmp dword [ebx + 0x1c], 0
je 0x4c1add
lea eax, [ebx + 0x20]
push eax
push 0
push 0x411
push dword [ebx + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, dword [ebx + 0x58]
je 0x4c1b0d
test esi, esi
je 0x4c1b0d
mov dword [esp + 0xc4], 0xb
lea ecx, [esp + 0xc4]
mov dword [esp + 0xc8], esi
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x108]
mov dword [ebx + 0x58], esi
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
je 0x4c1b2b
mov dword [esp + 0xc4], 9
mov dword [esp + 0xc8], ecx
jmp 0x4c1754
test esi, esi
je 0x4c1ff7
mov dword [esp + 0xc4], 9
mov dword [esp + 0xc8], esi
mov eax, dword [esi]
lea ecx, [esp + 0xc4]
push ecx
mov ecx, esi
jmp 0x4c175e
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4c1ff7
push ecx
push edi
lea eax, [esi + 0x2000]
push eax
push ecx
jmp 0x4c14ad
push dword [ebx]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [esp + 0x10]
movsx ecx, ax
shr eax, 0x10
cwde
push eax
mov dword [esp + 0x28], ecx
mov dword [ebx + 0x64], ecx
push ecx
mov ecx, ebx
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x68], eax
call fcn.004c3ae6
mov esi, eax
test esi, esi
je 0x4c1ff7
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x4c1ff7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xf0]
mov ecx, ebx
call fcn.004c2818
push 7
xor eax, eax
lea edi, [esp + 0xcc]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
mov dword [esp + 0xd4], ecx
jmp 0x4c182f
sub esi, 0x20a
je 0x4c1f1d
sub esi, 0x97
je 0x4c1d88
dec esi
dec esi
je 0x4c1d4a
sub esi, 0x75
je 0x4c1c7f
sub esi, 0x7ce9
jne 0x4c1ff7
lea esi, [ebx + 0xf4]
xor edi, edi
mov ecx, esi
call fcn.004bf132
test eax, eax
jle 0x4c1c73
push edi
mov ecx, esi
call fcn.004bf155
test eax, eax
je 0x4c1c67
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, esi
inc edi
call fcn.004bf132
cmp edi, eax
jl 0x4c1c53
mov ecx, esi
call fcn.004bef7f
jmp 0x4c1ff7
lea eax, [esp + 0xc4]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_GetClientRect]
push edi
call dword [sym.imp.GDI32.dll_SaveDC]
mov ecx, dword [ebx + 0x50]
mov dword [esp + 0x24], eax
lea eax, [esp + 0xc4]
push eax
push edi
mov edx, dword [ecx]
call dword [edx + pe_nt_image_headers32]
test byte [esp + 0x10], 0x10
je 0x4c1d3a
push 5
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
test esi, esi
je 0x4c1d3a
or dword [esp + 0x10], 2
lea eax, [esp + 0xe4]
xorps xmm0, xmm0
push eax
push esi
movdqu xmmword [esp + 0xec], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [esp + 0xe8]
push eax
push dword [ebx]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0xe8]
push 0
neg eax
push eax
mov eax, dword [esp + 0xec]
neg eax
push eax
push edi
call dword [sym.imp.GDI32.dll_SetWindowOrgEx]
push dword [esp + 0x10]
push edi
push 0x317
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
push 2
push esi
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
test esi, esi
jne 0x4c1cce
push dword [esp + 0x24]
push edi
call dword [sym.imp.GDI32.dll_RestoreDC]
jmp 0x4c1ff7
cmp dword [ebx + 0x1c], 0
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
je 0x4c1d66
lea eax, [ebx + 0x20]
push eax
push 0
push 0x411
push dword [ebx + 0x1c]
call esi
cmp byte [ebx + 0xb5], 0
je 0x4c1d7c
push 0xffffffffffffffff
push 0
push 0x200
push dword [ebx]
call esi
mov byte [ebx + 0xb5], 0
jmp 0x4c1ff7
mov eax, dword [esp + 0x10]
movsx ecx, ax
shr eax, 0x10
cwde
push eax
mov dword [esp + 0x28], ecx
push ecx
mov ecx, ebx
mov byte [ebx + 0xb5], 0
mov dword [esp + 0x1c], eax
call fcn.004c3ae6
mov esi, eax
mov dword [esp + 0x34], esi
test esi, esi
je 0x4c1ff7
mov edx, dword [ebx + 0x58]
test edx, edx
je 0x4c1e16
push 7
xor eax, eax
lea edi, [esp + 0xcc]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xc4], 0xc
mov dword [esp + 0xc8], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x58]
lea edx, [esp + 0xc4]
mov dword [esp + 0xcc], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x108]
mov eax, dword [esi]
lea ecx, [esp + 0xf4]
push ecx
mov ecx, esi
call dword [eax + 0x98]
and dword [esp + 0x190], 0
lea ecx, [esp + 0xf4]
call fcn.004bf41b
test al, al
je 0x4c1e51
lea ecx, [esp + 0xf4]
call fcn.004bf2f3
jmp 0x4c0e60
push 0x2c
lea edi, [ebx + 0x20]
push 0
push edi
call fcn.0053e230
mov eax, dword [ebx]
lea ecx, [esp + 0x100]
add esp, 0xc
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
mov eax, dword [0x5c5a34]
mov dword [edi], 0x2c
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x40], eax
call fcn.004bf30c
mov dword [ebx + 0x44], eax
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x30]
mov esi, eax
lea edi, [ebx + 0x30]
xor ecx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebx + 0x1c], ecx
jne 0x4c1ee2
push ecx
push dword [0x5c5a34]
mov eax, SysReAllocString
push ecx
push dword [ebx]
push eax
push eax
push eax
push eax
push SysStringLen
push ecx
push str.tooltips_class32
push ecx
call dword [sym.imp.USER32.dll_CreateWindowExW]
lea edi, [ebx + 0x20]
mov dword [ebx + 0x1c], eax
push edi
push 0
push 0x432
push eax
call esi
jmp 0x4c1ee5
lea edi, [ebx + 0x20]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
call dword [eax + 0xa4]
push eax
push 0
push 0x418
push dword [ebx + 0x1c]
call esi
push edi
push 0
push 0x436
push dword [ebx + 0x1c]
call esi
push edi
push 1
push 0x411
push dword [ebx + 0x1c]
call esi
jmp 0x4c1e40
mov ecx, dword [esp + 0x10]
movsx eax, cx
mov dword [esp + 0x24], eax
mov eax, ecx
shr eax, 0x10
cwde
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
mov dword [ebx + 0x64], ecx
push ecx
mov ecx, ebx
mov dword [ebx + 0x68], eax
call fcn.004c3ae6
mov esi, eax
test esi, esi
je 0x4c1ff7
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x4c1ff7
xor eax, eax
lea edi, [esp + 0xc8]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
test cx, cx
mov dword [esp + 0xc4], 0x12
mov dword [esp + 0xc8], esi
sets al
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe0], eax
call fcn.004bff1f
mov word [esp + 0xda], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0xcc], eax
lea ecx, [esp + 0xc4]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x108]
movzx ecx, word [ebx + 0x68]
movzx eax, word [ebx + 0x64]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 0x200
push dword [ebx]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
lea ecx, [ebx + 0x100]
call fcn.004bf139
mov esi, eax
test esi, esi
je 0x4c207e
add ebx, 0xb8
push 0
call fcn.004bf0ce
mov eax, dword [esi + 0x108]
test eax, eax
je 0x4c2037
lea edx, [eax + 0x34]
mov ecx, edx
call fcn.004cf190
test al, al
je 0x4c2037
push esi
mov ecx, edx
call fcn.004cf298
mov ecx, ebx
xor edi, edi
call fcn.004bf132
test eax, eax
jle 0x4c205f
push edi
mov ecx, ebx
call fcn.004bf155
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx]
mov ecx, ebx
inc edi
call fcn.004bf132
cmp edi, eax
jl 0x4c2044
mov ecx, esi
call fcn.004c0414
push esi
call fcn.0053ce3a
pop ecx
mov ecx, dword [esp + 0x20]
push 0
call fcn.004bf139
mov esi, eax
test esi, esi
jne 0x4c2010
xor al, al
mov ecx, dword [esp + 0x188]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.0053f9bc
mov esp, ebp
pop ebp
ret 0x10