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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x57e512
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.0x4bef50.3
jmp dword [eax*4 + 0x4c06a0]
cmp dword [esi + 0x1b4], ebp
jne 0x4bf15a
push esi
lea ecx, [esp + 0x34]
call fcn.00560763
push 0xff0000
push 1
push 4
lea ecx, [esp + 0x50]
mov dword [esp + 0xb0], ebp
call fcn.00560a78
lea eax, [esp + 0x44]
lea ecx, [esp + 0x30]
push eax
mov byte [esp + 0xa8], 1
call fcn.00560017
push 5
lea ecx, [esp + 0x34]
call fcn.0055ffdb
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.00405de0
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.00560a0b
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x34]
call fcn.0056005d
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 0x4bf016
xor edx, edx
jmp 0x4bf019
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.00566cf6
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.00560a62
test ebp, ebp
je 0x4bf08c
push ebp
lea ecx, [esp + 0x34]
call fcn.00560017
lea ecx, [esp + 0x10]
call fcn.00560a62
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 0x4bf0b1
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.00560a62
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 4
call fcn.00560a62
lea ecx, [esp + 0x30]
mov dword [esp + 0xa4], 0xffffffff
call fcn.005607d5
xor ebp, ebp
jmp case.0x4bef50.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 0x4bf1d9
mov dword [esi + 0x1b4], ebp
jmp case.0x4bef50.3
push esi
lea ecx, [esp + 0x70]
call fcn.00560763
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.00405de0
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.00560a0b
lea eax, [esp + 0x10]
lea ecx, [esp + 0x6c]
push eax
call fcn.0056005d
push 0xff0000
push 1
push 4
lea ecx, [esp + 0x50]
call fcn.00560a78
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 7
push ecx
lea ecx, [esp + 0x70]
call fcn.00560017
push 5
lea ecx, [esp + 0x70]
call fcn.0055ffdb
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 0x4bf291
mov dword [esp + 0x18], ebp
cmp ecx, ebp
jge 0x4bf299
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x38]
cmp edx, eax
jle 0x4bf2a5
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
cmp edi, eax
jle 0x4bf2b1
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x18]
call fcn.00566cf6
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.00560a62
cmp ebx, ebp
je 0x4bf2f0
push ebx
lea ecx, [esp + 0x70]
call fcn.00560017
lea ecx, [esp + 0x10]
call fcn.00560a62
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 8
call fcn.00560a62
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 9
call fcn.00560a62
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [esp + 0x6c]
jmp 0x4c065c
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 0x4bf3bb
mov dword [esi + 0x1b4], ebp
jmp case.0x4bef50.3
push esi
lea ecx, [esp + 0x70]
call fcn.00560763
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.00560a0b
lea eax, [esp + 0x10]
lea ecx, [esp + 0x6c]
push eax
call fcn.0056005d
push 0xff0000
push 1
push 4
lea ecx, [esp + 0x50]
call fcn.00560a78
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 0xc
push ecx
lea ecx, [esp + 0x70]
call fcn.00560017
push 5
lea ecx, [esp + 0x70]
call fcn.0055ffdb
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 0x4bf46e
mov dword [esp + 0x18], ebp
cmp ecx, ebp
jge 0x4bf476
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x38]
cmp edx, eax
jle 0x4bf482
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
cmp edi, eax
jle 0x4bf48e
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x18]
call fcn.00566cf6
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.00560a62
cmp ebx, ebp
je 0x4bf4cd
push ebx
lea ecx, [esp + 0x70]
call fcn.00560017
lea ecx, [esp + 0x10]
call fcn.00560a62
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 0xd
call fcn.00560a62
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0xe
call fcn.00560a62
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [esp + 0x6c]
jmp 0x4c065c
cmp dword [esi + 0x1b4], ebp
jne 0x4bf708
push esi
lea ecx, [esp + 0x70]
call fcn.00560763
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.00560a0b
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x70]
call fcn.0056005d
cmp dword [esi + 0x58], ebp
je 0x4bf6c8
lea edi, [esi + 0x184]
mov ecx, edi
call fcn.00566cf6
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.0055cecc
mov eax, dword [esi + 0xf4]
mov ecx, ebx
push eax
call fcn.004b66d0
mov ecx, dword [esi + 0xf8]
push ecx
mov ecx, ebx
call fcn.004b6690
lea eax, [esi + 0x234]
cmp eax, ebp
jne 0x4bf5df
xor eax, eax
jmp 0x4bf5e2
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.0055cf5c
mov ecx, ebx
call fcn.0055cfc5
lea eax, [esp + 0x4c]
mov ecx, ebx
push eax
call fcn.004b6960
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 0x4bf64f
mov ecx, dword [edi + 0xc]
mov ebx, dword [edi + 4]
sub ecx, ebx
cmp ecx, edx
jge 0x4bf64f
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 0x4bf690
mov ecx, dword [edi + 8]
mov ebx, dword [edi]
sub ecx, ebx
cmp ecx, eax
jge 0x4bf670
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 0x4bf690
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 4]
sub eax, ebx
cmp eax, edx
jge 0x4bf696
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.00566f0c
lea ecx, [esp + 0x10]
call fcn.00560a62
mov dword [esi + 0x1b4], 1
mov dword [esp + 0x10], vtable.CGdiObject.0
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x11
call fcn.00560a62
mov dword [esp + 0xa4], 0xffffffff
lea ecx, [esp + 0x6c]
jmp 0x4c065c
mov eax, dword [esi + 0x1b8]
cmp eax, 0xffffffff
je 0x4bf718
cmp eax, 8
jne 0x4bf790
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 0x4bf790
mov dword [esi + 0x1b4], ebp
mov dword [esi + 0x1b8], 0xffffffff
jmp case.0x4bef50.3
mov eax, dword [esi + 0x1fc]
cmp eax, 1
jne 0x4bf7d5
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.0x4bef50.3
cmp eax, 2
jne 0x4bf7f9
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esi + 0x208], ecx
mov dword [esi + 0x20c], edx
jmp case.0x4bef50.3
cmp eax, 3
jne case.0x4bef50.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.004c1380
jmp case.0x4bef50.3
mov eax, dword [esi + 0x228]
cmp eax, 1
jl case.0x4bef50.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 0x4bf8aa
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 0x4bf8b3
mov ebx, dword [ecx]
mov ebp, dword [ecx + 4]
mov dword [esp + 0x28], 1
jmp 0x4bf8b3
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.004c31b0
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.00560763
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.00560a0b
lea edx, [esp + 0x44]
lea ecx, [esp + 0x30]
push edx
call fcn.0056005d
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 0x4bf959
xor ebx, ebx
jmp 0x4bf95e
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 0x4bfa2f
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.00560a78
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x14
push ecx
lea ecx, [esp + 0x34]
call fcn.00560017
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.0056051c
mov eax, dword [esi + 0x228]
xor edi, edi
cmp eax, ebx
jle 0x4bfa00
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.00560568
mov eax, dword [esi + 0x228]
inc edi
cmp edi, eax
jl 0x4bf9dd
lea ecx, [esp + 0x10]
call fcn.00560a62
mov dword [esp + 0x10], vtable.CGdiObject.0
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x15
call fcn.00560a62
mov byte [esp + 0xa4], 0x13
jmp 0x4c059f
mov edx, dword [esp + 0xac]
xor ecx, ecx
and edx, 8
cmp dl, 8
jne 0x4bfa45
mov ecx, 1
mov eax, dword [esi + 0x1e4]
mov ebp, vtable.CGdiObject.0
cmp eax, 1
jne 0x4bfc6d
cmp ecx, ebx
jne 0x4bfae7
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.00560a78
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x16
call fcn.0055ffdb
mov edi, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x34]
call fcn.00560017
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.00560a62
cmp edi, ebx
je 0x4bfad2
push edi
lea ecx, [esp + 0x34]
call fcn.00560017
mov dword [esp + 0x10], ebp
mov byte [esp + 0xa4], 0x17
lea ecx, [esp + 0x10]
jmp 0x4c0566
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.00560a0b
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056005d
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 0x4bfb99
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4bfb65
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4bfb73
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4bfb82
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4bfb8f
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4bfb57
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.004c7570
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.00560a62
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.00560a78
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x19
call fcn.0055ffdb
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.00560017
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.00560a62
cmp edi, ebx
je 0x4bfc3e
push edi
lea ecx, [esp + 0x34]
call fcn.00560017
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x1a
call fcn.00560a62
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x1b
lea ecx, [esp + 0x10]
jmp 0x4c0566
cmp eax, 2
jne 0x4bfcea
mov edx, dword [esi + 0xf8]
lea ecx, [esp + 0x10]
push edx
call fcn.00560ac8
push 8
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x1c
call fcn.0055ffdb
mov edi, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x34]
call fcn.00560017
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.00560a62
cmp edi, ebx
je 0x4bfcd5
push edi
lea ecx, [esp + 0x34]
call fcn.00560017
mov dword [esp + 0x10], ebp
mov byte [esp + 0xa4], 0x1d
lea ecx, [esp + 0x10]
jmp 0x4c0566
cmp eax, 3
jne 0x4bfda2
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.00560a78
lea edx, [esp + 0x28]
lea ecx, [esp + 0x30]
push edx
mov byte [esp + 0xa8], 0x1e
call fcn.00560017
mov eax, dword [esi + 0xf8]
lea ecx, [esp + 0x10]
push eax
call fcn.00560ac8
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x1f
push ecx
lea ecx, [esp + 0x34]
call fcn.00560017
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.00560a62
lea ecx, [esp + 0x28]
call fcn.00560a62
mov dword [esp + 0x10], ebp
lea ecx, [esp + 0x10]
mov byte [esp + 0xa4], 0x20
call fcn.00560a62
mov dword [esp + 0x28], ebp
mov byte [esp + 0xa4], 0x21
lea ecx, [esp + 0x28]
jmp 0x4c0566
cmp eax, 4
jne 0x4bff31
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.00560a0b
lea eax, [esp + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.0056005d
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 0x4bfe5d
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4bfe29
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4bfe37
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4bfe46
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4bfe53
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4bfe1b
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.004c7570
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.00560a62
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.00560a78
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x23
call fcn.0055ffdb
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.00560017
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.00560a62
cmp edi, ebx
je 0x4bff02
push edi
lea ecx, [esp + 0x34]
call fcn.00560017
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x24
call fcn.00560a62
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x25
lea ecx, [esp + 0x10]
jmp 0x4c0566
cmp eax, 5
jne 0x4c00c1
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.00560a0b
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056005d
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 0x4bffec
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4bffb8
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4bffc6
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4bffd5
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4bffe2
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4bffaa
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.004c7570
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.00560a62
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.00560a78
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x27
call fcn.0055ffdb
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.00560017
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.00560a62
cmp edi, ebx
je 0x4c0092
push edi
lea ecx, [esp + 0x34]
call fcn.00560017
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x28
call fcn.00560a62
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x29
lea ecx, [esp + 0x10]
jmp 0x4c0566
cmp eax, 6
jne 0x4c01c9
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.00560a0b
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056005d
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 0x4c017c
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4c0148
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4c0156
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4c0165
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4c0172
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4c013a
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.004c7570
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.00560a62
mov dword [esp + 0x10], vtable.CGdiObject.0
mov byte [esp + 0xa4], 0x2b
lea ecx, [esp + 0x10]
jmp 0x4c0566
cmp eax, 7
jne 0x4c02d2
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.00560a0b
lea eax, [esp + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.0056005d
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 0x4c0284
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4c0250
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4c025e
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4c026d
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4c027a
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4c0242
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.004c7570
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.00560a62
mov dword [esp + 0x10], vtable.CGdiObject.0
mov byte [esp + 0xa4], 0x2d
lea ecx, [esp + 0x10]
jmp 0x4c0566
cmp eax, 8
jne 0x4c0462
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.00560a0b
lea eax, [esp + 0x10]
lea ecx, [esp + 0x30]
push eax
call fcn.0056005d
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 0x4c038d
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4c0359
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4c0367
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4c0376
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4c0383
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4c034b
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.004c7570
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.00560a62
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.00560a78
push 5
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x2f
call fcn.0055ffdb
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
call fcn.00560017
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.00560a62
cmp edi, ebx
je 0x4c0433
push edi
lea ecx, [esp + 0x34]
call fcn.00560017
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x28]
mov byte [esp + 0xa4], 0x30
call fcn.00560a62
mov dword [esp + 0x10], edi
mov byte [esp + 0xa4], 0x31
lea ecx, [esp + 0x10]
jmp 0x4c0566
cmp eax, 9
jne 0x4c0573
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.00560a0b
lea edx, [esp + 0x10]
lea ecx, [esp + 0x30]
push edx
call fcn.0056005d
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 0x4c051d
add eax, 8
mov ecx, dword [eax]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jge 0x4c04e9
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
cmp ecx, ebx
jle 0x4c04f7
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jge 0x4c0506
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
jle 0x4c0513
mov ebp, ecx
mov dword [esp + 0x24], ebp
inc edi
add eax, 8
cmp edi, edx
jl 0x4c04db
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.004c7570
add esp, 0x14
lea ecx, [esp + 0x10]
call fcn.00560a62
mov dword [esp + 0x10], vtable.CGdiObject.0
mov byte [esp + 0xa4], 0x33
lea ecx, [esp + 0x10]
call fcn.00560a62
mov byte [esp + 0xa4], 0x13
mov eax, dword [esi + 0x224]
cmp eax, ebx
je 0x4c058c
push eax
call fcn.00558a4c
add esp, 4
mov dword [esi + 0x224], ebx
mov ecx, esi
mov dword [esi + 0x22c], ebx
mov dword [esi + 0x228], ebx
call fcn.004c1380
lea ecx, [esp + 0x44]
call fcn.00560a62
mov dword [esp + 0x44], vtable.CGdiObject.0
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 0x34
call fcn.00560a62
lea ecx, [esp + 0x30]
mov dword [esp + 0xa4], 0xffffffff
call fcn.005607d5
xor ebp, ebp
jmp case.0x4bef50.3
push esi
lea ecx, [esp + 0x84]
call fcn.00560763
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 0x4c0636
mov eax, dword [esi + 0x244]
lea edx, [esp + 0x28]
push ebp
push edx
push 0x178a
push eax
jmp 0x4c064f
and eax, 2
cmp al, 2
jne 0x4c0655
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.005607d5
mov eax, dword [esi + 0x1bc]
mov dword [esi + 0x1c0], eax
mov esi, dword [esi + 0x240]
cmp esi, ebp
je 0x4c0685
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