Function at 0x4c8e40
Capabilities:
Check for unmoving mouse cursor
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x58e102
push eax
mov dword fs:[0], esp
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
mov esi, ecx
call dword [sym.imp.USER32.dll_ReleaseCapture]
xor ebp, ebp
push ebp
call dword [sym.imp.USER32.dll_ClipCursor]
mov eax, dword [esi + 0x1bc]
dec eax
cmp eax, 0xf
ja case.0x4c8e80.3
jmp dword [eax*4 + 0x4ca5d0]
cmp dword [esi + 0x1b4], ebp
jne 0x4c908a
push esi
lea ecx, [esp + 0x34]
call fcn.0056f86b
push 0xff0000
push 1
push 4
lea ecx, [esp + 0x50]
mov dword [esp + 0xb0], ebp
call fcn.0056fb80
lea eax, [esp + 0x44]
lea ecx, [esp + 0x30]
push eax
mov byte [esp + 0xa8], 1
call fcn.0056f11f
push 5
lea ecx, [esp + 0x34]
call fcn.0056f0e3
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x18]
push ecx
push edx
mov ebp, eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x10]
call fcn.00405dd0
mov dword [esp + 0x10], vtable.CRgn.0
lea eax, [esp + 0x18]
mov byte [esp + 0xa4], 2
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x34]
call fcn.0056f165
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
sub eax, ebx
lea ebx, [esi + 0xfc]
sub ecx, edi
test ebx, ebx
jne 0x4c8f46
xor edx, edx
jmp 0x4c8f49
mov edx, dword [ebx + 4]
push 0xcc0020
push 0
push 0
push edx
mov edx, dword [esp + 0x44]
push ecx
push eax
push 0
push 0
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
lea edi, [esi + 0x184]
mov dword [esi + 0x190], ecx
mov ecx, edi
mov dword [esi + 0x18c], eax
call fcn.00575dfb
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push edx
mov edx, dword [edi]
push eax
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
lea ecx, [esp + 0x44]
call fcn.0056fb6a
test ebp, ebp
je 0x4c8fbc
push ebp
lea ecx, [esp + 0x34]
call fcn.0056f11f
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov ebp, dword [edi]
mov edx, dword [esi + 0x188]
sub eax, ecx
mov ecx, dword [edi + 8]
sub ecx, ebp
test ebx, ebx
je 0x4c8fe1
mov ebx, dword [ebx + 4]
push 0xcc0020
push edx
push ebp
push ebx
push eax
push ecx
mov ecx, dword [esi + 0x170]
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, edi
lea edx, [esi + 0x194]
mov dword [esi + 0x1b4], 1
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
lea ecx, [esi + 0x1a4]
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov dword [ecx], edx
mov edx, dword [edi + 8]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0xc]
mov edi, vtable.CGdiObject.0
mov dword [ecx + 8], edx
mov dword [esp + 0x10], edi
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 3
call fcn.0056fb6a
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 4
call fcn.0056fb6a
lea ecx, [esp + 0x30]
mov dword [esp + 0xa4], 0xffffffff
call fcn.0056f8dd
xor ebp, ebp
jmp case.0x4c8e80.3
lea edi, [esi + 0x194]
lea ecx, [esi + 0x1a4]
mov edx, edi
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
lea eax, [esp + 0x4c]
mov edx, dword [edx + 0xc]
push eax
mov dword [ecx + 0xc], edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x4c]
push ecx
push edx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, edi
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x60], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x68], edx
push eax
lea edx, [esp + 0x60]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x4c9109
mov dword [esi + 0x1b4], ebp
jmp case.0x4c8e80.3
push esi
lea ecx, [esp + 0x70]
call fcn.0056f86b
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x30]
push eax
push ecx
mov dword [esp + 0xac], 5
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x10]
call fcn.00405dd0
mov dword [esp + 0x10], vtable.CRgn.0
lea edx, [esp + 0x30]
mov byte [esp + 0xa4], 6
push edx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea eax, [esp + 0x10]
lea ecx, [esp + 0x6c]
push eax
call fcn.0056f165
push 0xff0000
push 1
push 4
lea ecx, [esp + 0x50]
call fcn.0056fb80
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 7
push ecx
lea ecx, [esp + 0x70]
call fcn.0056f11f
push 5
lea ecx, [esp + 0x70]
call fcn.0056f0e3
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov ebx, eax
mov eax, dword [edi]
mov edi, dword [edi + 0xc]
cmp eax, ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edi
jge 0x4c91c1
mov dword [esp + 0x18], ebp
cmp ecx, ebp
jge 0x4c91c9
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x38]
cmp edx, eax
jle 0x4c91d5
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
cmp edi, eax
jle 0x4c91e1
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x18]
call fcn.00575dfb
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x78]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
lea ecx, [esp + 0x44]
call fcn.0056fb6a
cmp ebx, ebp
je 0x4c9220
push ebx
lea ecx, [esp + 0x70]
call fcn.0056f11f
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 8
call fcn.0056fb6a
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 9
call fcn.0056fb6a
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [esp + 0x6c]
jmp 0x4ca58c
lea edi, [esi + 0x194]
lea ecx, [esi + 0x1a4]
mov edx, edi
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
lea eax, [esp + 0x4c]
mov edx, dword [edx + 0xc]
push eax
mov dword [ecx + 0xc], edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x4c]
push ecx
push edx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, edi
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x60], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x68], edx
push eax
lea edx, [esp + 0x60]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x4c92eb
mov dword [esi + 0x1b4], ebp
jmp case.0x4c8e80.3
push esi
lea ecx, [esp + 0x70]
call fcn.0056f86b
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x30]
push eax
push ecx
mov dword [esp + 0xac], 0xa
call dword [sym.imp.USER32.dll_GetClientRect]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], vtable.CRgn.0
lea edx, [esp + 0x30]
mov byte [esp + 0xa4], 0xb
push edx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea eax, [esp + 0x10]
lea ecx, [esp + 0x6c]
push eax
call fcn.0056f165
push 0xff0000
push 1
push 4
lea ecx, [esp + 0x50]
call fcn.0056fb80
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 0xc
push ecx
lea ecx, [esp + 0x70]
call fcn.0056f11f
push 5
lea ecx, [esp + 0x70]
call fcn.0056f0e3
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov ebx, eax
mov eax, dword [edi]
mov edi, dword [edi + 0xc]
cmp eax, ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edi
jge 0x4c939e
mov dword [esp + 0x18], ebp
cmp ecx, ebp
jge 0x4c93a6
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x38]
cmp edx, eax
jle 0x4c93b2
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
cmp edi, eax
jle 0x4c93be
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x18]
call fcn.00575dfb
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x78]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
lea ecx, [esp + 0x44]
call fcn.0056fb6a
cmp ebx, ebp
je 0x4c93fd
push ebx
lea ecx, [esp + 0x70]
call fcn.0056f11f
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 0xd
call fcn.0056fb6a
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0xe
call fcn.0056fb6a
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [esp + 0x6c]
jmp 0x4ca58c
cmp dword [esi + 0x1b4], ebp
jne 0x4c9638
push esi
lea ecx, [esp + 0x70]
call fcn.0056f86b
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x30]
push ecx
push edx
mov dword [esp + 0xac], 0xf
call dword [sym.imp.USER32.dll_GetClientRect]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], vtable.CRgn.0
lea eax, [esp + 0x30]
mov byte [esp + 0xa4], 0x10
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x70]
call fcn.0056f165
cmp dword [esi + 0x58], ebp
je 0x4c95f8
lea edi, [esi + 0x184]
mov ecx, edi
call fcn.00575dfb
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
mov ecx, dword [edi]
sub edx, eax
push 1
push edx
mov edx, dword [edi + 8]
lea ebx, [esi + 0x3c]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, ebx
call fcn.0056bfd0
mov eax, dword [esi + 0xf4]
mov ecx, ebx
push eax
call fcn.004c05f0
mov ecx, dword [esi + 0xf8]
push ecx
mov ecx, ebx
call fcn.004c05b0
lea eax, [esi + 0x234]
cmp eax, ebp
jne 0x4c950f
xor eax, eax
jmp 0x4c9512
mov eax, dword [eax + 4]
mov edx, dword [esi + 0x58]
push 1
push eax
push 0x30
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 5
mov ecx, ebx
call fcn.0056c060
mov ecx, ebx
call fcn.0056c0c9
lea eax, [esp + 0x4c]
mov ecx, ebx
push eax
call fcn.004c0880
mov eax, dword [esp + 0x4c]
mov ecx, dword [edi + 8]
mov ebx, dword [edi]
mov edx, dword [esp + 0x50]
lea eax, [eax + eax*4]
sub ecx, ebx
cmp ecx, eax
jge 0x4c957f
mov ecx, dword [edi + 0xc]
mov ebx, dword [edi + 4]
sub ecx, ebx
cmp ecx, edx
jge 0x4c957f
mov ecx, dword [edi]
mov ebx, dword [edi + 8]
sub ecx, ebx
mov ebx, dword [edi + 0xc]
add ecx, eax
mov eax, dword [edi + 4]
sub eax, ebx
push ecx
add eax, edx
mov edx, dword [esi + 0x1c]
push eax
push 0x1792
push edx
jmp 0x4c95c0
mov ecx, dword [edi + 8]
mov ebx, dword [edi]
sub ecx, ebx
cmp ecx, eax
jge 0x4c95a0
mov edx, dword [edi + 8]
mov ecx, ebx
sub eax, edx
mov edx, dword [esi + 0x1c]
add eax, ecx
push eax
push ebp
push 0x1792
push edx
jmp 0x4c95c0
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 4]
sub eax, ebx
cmp eax, edx
jge 0x4c95c6
mov ecx, dword [esi + 0x1c]
mov eax, ebx
mov ebx, dword [edi + 0xc]
push ebp
sub eax, ebx
add eax, edx
push eax
push 0x1792
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x190]
mov eax, dword [esi + 0x18c]
mov edx, dword [edi]
mov edi, dword [edi + 4]
push ecx
push eax
push edi
push edx
lea edx, [esi + 0x8c]
push edx
call dword [sym.imp.USER32.dll_SetRect]
lea eax, [esp + 0x6c]
lea ecx, [esi + 0x84]
push eax
call fcn.00576011
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov dword [esi + 0x1b4], 1
mov dword [esp + 0x10], vtable.CGdiObject.0
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x11
call fcn.0056fb6a
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [esp + 0x6c]
jmp 0x4ca58c
mov eax, dword [esi + 0x1b8]
cmp eax, 0xffffffff
je 0x4c9648
cmp eax, 8
jne 0x4c96c0
lea edi, [esi + 0x194]
lea ecx, [esi + 0x1a4]
mov edx, edi
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
lea eax, [esp + 0x4c]
mov edx, dword [edx + 0xc]
push eax
mov dword [ecx + 0xc], edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x4c]
push ecx
push edx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
push ecx
lea eax, [esp + 0x60]
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x4c96c0
mov dword [esi + 0x1b4], ebp
mov dword [esi + 0x1b8], 0xffffffff
jmp case.0x4c8e80.3
mov eax, dword [esi + 0x1fc]
cmp eax, 1
jne 0x4c9705
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esi + 0x210], eax
mov dword [esi + 0x218], eax
mov dword [esi + 0x214], ecx
mov dword [esi + 0x21c], ecx
jmp case.0x4c8e80.3
cmp eax, 2
jne 0x4c9729
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esi + 0x208], ecx
mov dword [esi + 0x20c], edx
jmp case.0x4c8e80.3
cmp eax, 3
jne case.0x4c8e80.3
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esi + 0x210], eax
mov dword [esi + 0x214], ecx
mov dword [esi + 0x1fc], ebp
mov ecx, esi
call fcn.004cb2b0
jmp case.0x4c8e80.3
mov eax, dword [esi + 0x228]
cmp eax, 1
jl case.0x4c8e80.3
mov edx, dword [esi + 0x1dc]
mov ecx, dword [esi + 0x224]
mov ebx, dword [esp + 0xb0]
add edx, 2
mov dword [esp + 0x10], edx
mov edx, dword [ecx]
fild dword [esp + 0x10]
mov eax, ebx
mov dword [esp + 0x28], ebp
sub eax, edx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fabs
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x4c97da
mov ebp, dword [esp + 0xb4]
mov eax, dword [ecx + 4]
mov edx, ebp
sub edx, eax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fabs
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
je 0x4c97e3
mov ebx, dword [ecx]
mov ebp, dword [ecx + 4]
mov dword [esp + 0x28], 1
jmp 0x4c97e3
mov ebp, dword [esp + 0xb4]
fstp st(0)
mov edi, dword [esi + 0x228]
lea ecx, [esi + 0x220]
push 0xffffffffffffffff
lea eax, [edi + 1]
push eax
call fcn.004cd0e0
mov ecx, dword [esi + 0x224]
push esi
mov dword [ecx + edi*8], ebx
mov dword [ecx + edi*8 + 4], ebp
lea ecx, [esp + 0x34]
call fcn.0056f86b
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x4c]
push edx
push eax
mov dword [esp + 0xac], 0x12
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, vtable.CRgn.0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x4c]
mov byte [esp + 0xa4], 0x13
push ecx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
lea ecx, [esp + 0x48]
call fcn.0056fb13
lea edx, [esp + 0x44]
lea ecx, [esp + 0x30]
push edx
call fcn.0056f165
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
sub eax, ecx
mov ecx, dword [esp + 0x58]
lea edx, [esi + 0xfc]
sub ecx, ebp
test edx, edx
jne 0x4c9889
xor ebx, ebx
jmp 0x4c988e
mov edx, dword [edx + 4]
xor ebx, ebx
push 0xcc0020
push ebx
push ebx
push edx
push ecx
push eax
mov eax, dword [esp + 0x4c]
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
cmp dword [esp + 0x28], ebx
jne 0x4c995f
mov ecx, dword [esi + 0xf4]
mov edx, dword [esi + 0x1dc]
mov eax, dword [esi + 0x1cc]
push ecx
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.0056fb80
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x14
push ecx
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov edx, dword [esi + 0x224]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
push ecx
push eax
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x38]
push eax
call fcn.0056f624
mov eax, dword [esi + 0x228]
xor edi, edi
cmp eax, ebx
jle 0x4c9930
mov ecx, dword [esi + 0x224]
mov eax, dword [ecx + edi*8]
mov ecx, dword [ecx + edi*8 + 4]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.0056f670
mov eax, dword [esi + 0x228]
inc edi
cmp edi, eax
jl 0x4c990d
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov dword [esp + 0x10], vtable.CGdiObject.0
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x15
call fcn.0056fb6a
mov byte [esp + 0xa4], 0x13
jmp 0x4ca4cf
mov edx, dword [esp + 0xac]
xor ecx, ecx
and edx, 8
cmp dl, 8
jne 0x4c9975
mov ecx, 1
mov eax, dword [esi + 0x1e4]
mov ebp, vtable.CGdiObject.0
cmp eax, 1
jne 0x4c9b9d
cmp ecx, ebx
jne 0x4c9a17
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1dc]
mov edx, dword [esi + 0x1cc]
push eax
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.0056fb80
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x16
call fcn.0056f0e3
mov edi, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.GDI32.dll_Polygon]
lea ecx, [esp + 0x10]
call fcn.0056fb6a
cmp edi, ebx
je 0x4c9a02
push edi
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov dword [esp + 0x10], ebp
mov byte [esp + 0xa4], 0x17
lea ecx, [esp + 0x10]
jmp 0x4ca496
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push 1
push eax
push ecx
mov byte [esp + 0xb0], 0x18
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056f165
mov eax, dword [esi + 0x224]
mov edi, 1
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 4]
cmp edx, edi
mov dword [esp + 0x24], ebp
jle 0x4c9ac9
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4c9a95
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4c9aa3
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4c9ab2
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4c9abf
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4c9a87
xor ebx, ebx
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf4]
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
push edx
push ecx
lea edx, [esp + 0x20]
and eax, ebp
push ebx
push edx
push eax
call fcn.004d14e0
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1dc]
mov edx, dword [esi + 0x1cc]
push eax
push ecx
push edx
lea ecx, [esp + 0x34]
call fcn.0056fb80
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x19
call fcn.0056f0e3
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.GDI32.dll_Polygon]
lea ecx, [esp + 0x28]
call fcn.0056fb6a
cmp edi, ebx
je 0x4c9b6e
push edi
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x1a
call fcn.0056fb6a
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x1b
lea ecx, [esp + 0x10]
jmp 0x4ca496
cmp eax, 2
jne 0x4c9c1a
mov edx, dword [esi + 0xf8]
lea ecx, [esp + 0x10]
push edx
call fcn.0056fbd0
push 8
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x1c
call fcn.0056f0e3
mov edi, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.GDI32.dll_Polygon]
lea ecx, [esp + 0x10]
call fcn.0056fb6a
cmp edi, ebx
je 0x4c9c05
push edi
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov dword [esp + 0x10], ebp
mov byte [esp + 0xa4], 0x1d
lea ecx, [esp + 0x10]
jmp 0x4ca496
cmp eax, 3
jne 0x4c9cd2
mov edx, dword [esi + 0xf4]
mov eax, dword [esi + 0x1dc]
mov ecx, dword [esi + 0x1cc]
push edx
push eax
push ecx
lea ecx, [esp + 0x34]
call fcn.0056fb80
lea edx, [esp + 0x28]
lea ecx, [esp + 0x30]
push edx
mov byte [esp + 0xa8], 0x1e
call fcn.0056f11f
mov eax, dword [esi + 0xf8]
lea ecx, [esp + 0x10]
push eax
call fcn.0056fbd0
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x1f
push ecx
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_Polygon]
lea ecx, [esp + 0x10]
call fcn.0056fb6a
lea ecx, [esp + 0x28]
call fcn.0056fb6a
mov dword [esp + 0x10], ebp
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x20
call fcn.0056fb6a
mov dword [esp + 0x28], ebp
mov byte [esp + 0xa4], 0x21
lea ecx, [esp + 0x28]
jmp 0x4ca496
cmp eax, 4
jne 0x4c9e61
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push 1
push eax
push ecx
mov byte [esp + 0xb0], 0x22
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea eax, [esp + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.0056f165
mov eax, dword [esi + 0x224]
mov edi, 1
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 4]
cmp edx, edi
mov dword [esp + 0x24], ebp
jle 0x4c9d8d
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4c9d59
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4c9d67
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4c9d76
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4c9d83
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4c9d4b
xor ebx, ebx
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf4]
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
push edx
push ecx
lea edx, [esp + 0x20]
and eax, ebp
push ebx
push edx
push eax
call fcn.004d14e0
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1dc]
mov edx, dword [esi + 0x1cc]
push eax
push ecx
push edx
lea ecx, [esp + 0x34]
call fcn.0056fb80
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x23
call fcn.0056f0e3
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.GDI32.dll_Polygon]
lea ecx, [esp + 0x28]
call fcn.0056fb6a
cmp edi, ebx
je 0x4c9e32
push edi
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x24
call fcn.0056fb6a
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x25
lea ecx, [esp + 0x10]
jmp 0x4ca496
cmp eax, 5
jne 0x4c9ff1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push 1
push eax
push ecx
mov byte [esp + 0xb0], 0x26
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056f165
mov eax, dword [esi + 0x224]
mov edi, 1
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 4]
cmp edx, edi
mov dword [esp + 0x24], ebp
jle 0x4c9f1c
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4c9ee8
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4c9ef6
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4c9f05
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4c9f12
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4c9eda
xor ebx, ebx
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf4]
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
push edx
push ecx
lea edx, [esp + 0x20]
and eax, ebp
push 1
push edx
push eax
call fcn.004d14e0
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1dc]
mov edx, dword [esi + 0x1cc]
push eax
push ecx
push edx
lea ecx, [esp + 0x34]
call fcn.0056fb80
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x27
call fcn.0056f0e3
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.GDI32.dll_Polygon]
lea ecx, [esp + 0x28]
call fcn.0056fb6a
cmp edi, ebx
je 0x4c9fc2
push edi
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x28
call fcn.0056fb6a
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x29
lea ecx, [esp + 0x10]
jmp 0x4ca496
cmp eax, 6
jne 0x4ca0f9
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push 1
push eax
push ecx
mov byte [esp + 0xb0], 0x2a
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056f165
mov eax, dword [esi + 0x224]
mov edi, 1
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 4]
cmp edx, edi
mov dword [esp + 0x24], ebp
jle 0x4ca0ac
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4ca078
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4ca086
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4ca095
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4ca0a2
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4ca06a
xor ebx, ebx
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf4]
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
push edx
push ecx
lea edx, [esp + 0x20]
and eax, ebp
push ebx
push edx
push eax
call fcn.004d14e0
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov dword [esp + 0x10], vtable.CGdiObject.0
mov byte [esp + 0xa4], 0x2b
lea ecx, [esp + 0x10]
jmp 0x4ca496
cmp eax, 7
jne 0x4ca202
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push 1
push eax
push ecx
mov byte [esp + 0xb0], 0x2c
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea eax, [esp + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.0056f165
mov eax, dword [esi + 0x224]
mov edi, 1
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 4]
cmp edx, edi
mov dword [esp + 0x24], ebp
jle 0x4ca1b4
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4ca180
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4ca18e
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4ca19d
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4ca1aa
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4ca172
xor ebx, ebx
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf4]
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
push edx
push ecx
lea edx, [esp + 0x20]
and eax, ebp
push 1
push edx
push eax
call fcn.004d14e0
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov dword [esp + 0x10], vtable.CGdiObject.0
mov byte [esp + 0xa4], 0x2d
lea ecx, [esp + 0x10]
jmp 0x4ca496
cmp eax, 8
jne 0x4ca392
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push 1
push eax
push ecx
mov byte [esp + 0xb0], 0x2e
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea eax, [esp + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.0056f165
mov eax, dword [esi + 0x224]
mov edi, 1
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 4]
cmp edx, edi
mov dword [esp + 0x24], ebp
jle 0x4ca2bd
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4ca289
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4ca297
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4ca2a6
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4ca2b3
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4ca27b
xor ebx, ebx
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf4]
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
push edx
push ecx
lea edx, [esp + 0x20]
and eax, ebp
push 2
push edx
push eax
call fcn.004d14e0
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1dc]
mov edx, dword [esi + 0x1cc]
push eax
push ecx
push edx
lea ecx, [esp + 0x34]
call fcn.0056fb80
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x2f
call fcn.0056f0e3
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.GDI32.dll_Polygon]
lea ecx, [esp + 0x28]
call fcn.0056fb6a
cmp edi, ebx
je 0x4ca363
push edi
lea ecx, [esp + 0x34]
call fcn.0056f11f
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x30
call fcn.0056fb6a
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x31
lea ecx, [esp + 0x10]
jmp 0x4ca496
cmp eax, 9
jne 0x4ca4a3
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x224]
push 1
push eax
push ecx
mov byte [esp + 0xb0], 0x32
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [esp + 0x14]
call fcn.0056fb13
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056f165
mov eax, dword [esi + 0x224]
mov edi, 1
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], ecx
mov ebp, dword [eax + 4]
cmp edx, edi
mov dword [esp + 0x24], ebp
jle 0x4ca44d
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4ca419
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4ca427
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4ca436
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4ca443
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4ca40b
xor ebx, ebx
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf4]
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
push edx
push ecx
lea edx, [esp + 0x20]
and eax, ebp
push 2
push edx
push eax
call fcn.004d14e0
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov dword [esp + 0x10], vtable.CGdiObject.0
mov byte [esp + 0xa4], 0x33
lea ecx, [esp + 0x10]
call fcn.0056fb6a
mov byte [esp + 0xa4], 0x13
mov eax, dword [esi + 0x224]
cmp eax, ebx
je 0x4ca4bc
push eax
call fcn.00567b2c
add esp, 4
mov dword [esi + 0x224], ebx
mov ecx, esi
mov dword [esi + 0x22c], ebx
mov dword [esi + 0x228], ebx
call fcn.004cb2b0
lea ecx, [esp + 0x44]
call fcn.0056fb6a
mov dword [esp + 0x44], vtable.CGdiObject.0
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 0x34
call fcn.0056fb6a
lea ecx, [esp + 0x30]
mov dword [esp + 0xa4], 0xffffffff
call fcn.0056f8dd
xor ebp, ebp
jmp case.0x4c8e80.3
push esi
lea ecx, [esp + 0x84]
call fcn.0056f86b
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x84]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetPixel]
mov dword [esp + 0x28], eax
mov dword [esi + 0xf4], eax
mov eax, dword [esp + 0xac]
mov ecx, eax
and ecx, 1
cmp cl, 1
jne 0x4ca566
mov eax, dword [esi + 0x244]
lea edx, [esp + 0x28]
push ebp
push edx
push 0x178a
push eax
jmp 0x4ca57f
and eax, 2
cmp al, 2
jne 0x4ca585
mov edx, dword [esi + 0x244]
lea ecx, [esp + 0x28]
push ebp
push ecx
push 0x178b
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x80]
call fcn.0056f8dd
mov eax, dword [esi + 0x1bc]
mov dword [esi + 0x1c0], eax
mov esi, dword [esi + 0x240]
cmp esi, ebp
je 0x4ca5b5
push ebp
push ebp
push 0x4c2
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x98
ret 0xc