Function at 0x440cc0
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10090
call fcn.00454c70
mov eax, dword [0x4a9d30]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x1005c], eax
mov edi, ecx
mov eax, dword [ebp + 0xc]
push eax
mov dword [ebp - 0x10084], eax
lea eax, [ebp - 0x10040]
push eax
mov dword [ebp - 0x10070], edi
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [ebp - 0x10040]
sub dword [ebp - 0x10038], eax
mov eax, dword [ebp - 0x1003c]
sub dword [ebp - 0x10034], eax
mov ecx, dword [edi + 0x92]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp - 0x10040], 0
mov dword [ebp - 0x1003c], 0
test ecx, ecx
je 0x440d89
mov eax, dword [edi + 0x9a]
test eax, eax
je 0x440d5c
push eax
push ecx
call esi
mov dword [edi + 0x9a], 0
mov eax, dword [edi + 0x96]
test eax, eax
je 0x440d73
push eax
call ebx
mov dword [edi + 0x96], 0
push dword [edi + 0x92]
call dword [sym.imp.GDI32.dll_DeleteDC]
mov dword [edi + 0x92], 0
push dword [ebp - 0x1005c]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [ebp - 0x10034]
mov dword [edi + 0x92], eax
push dword [ebp - 0x10038]
push dword [ebp - 0x1005c]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push dword [edi + 0x92]
mov dword [edi + 0x96], eax
call esi
push 0xf
mov dword [edi + 0x9a], eax
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
lea eax, [ebp - 0x10040]
push esi
push eax
push dword [edi + 0x92]
call dword [sym.imp.USER32.dll_FillRect]
push esi
call ebx
mov eax, dword [edi + 0xae]
xor ebx, ebx
mov dword [ebp - 0x1004c], ebx
mov esi, 1
mov dword [ebp - 0x10064], ebx
mov dword [ebp - 0x10080], esi
test eax, eax
je 0x440e2c
push 2
push eax
call dword [sym.imp.USER32.dll_GetScrollPos]
mov ebx, esi
mov dword [edi + 0x106], eax
sub ebx, eax
mov dword [ebp - 0x1004c], ebx
mov ecx, dword [edi + 0x8a]
mov dword [ebp - 0x1006c], ebx
mov byte [ebp - 0x10068], 0
test ecx, ecx
je 0x440e8d
cmp dword [edi + 0x8e], 0
jle 0x440e8d
add ecx, 4
mov eax, str.Color_Selection_Description
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440e74
test dl, dl
je 0x440e70
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440e74
add eax, 2
add ecx, 2
test dl, dl
jne 0x440e54
xor eax, eax
jmp 0x440e79
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0x10068]
test eax, eax
movzx edx, dl
cmove edx, esi
mov dword [ebp - 0x10068], edx
mov eax, dword [edi + 0xb2]
test eax, eax
je 0x440ef9
lea ecx, [ebp - 0x10020]
mov dword [ebp - 0x10008], 0
push ecx
xorps xmm0, xmm0
push 2
movdqu xmmword [ebp - 0x10020], xmm0
push eax
movq qword [ebp - 0x10010], xmm0
mov dword [ebp - 0x10020], 0x1c
mov dword [ebp - 0x1001c], 7
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp - 0x1000c]
dec eax
cmp dword [edi + 0x3c], 0
mov dword [edi + 0x102], eax
je 0x440ef9
push dword [ebp - 0x10010]
mov ecx, edi
push eax
call fcn.0043a970
mov ecx, dword [edi + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042a8f0
mov esi, dword [edi + 0x8e]
mov dword [ebp - 0x10058], eax
test esi, esi
jle 0x440f3f
lea edx, [esi - 1]
test edx, edx
jle 0x440f3f
mov ecx, dword [edi + 0x8a]
imul eax, edx, 0xb1
add ecx, 0xa0
add eax, ecx
cmp dword [eax], 0
jne 0x440f3f
dec edx
sub eax, 0xb1
test edx, edx
jg 0x440f30
xor eax, eax
mov dword [ebp - 0x10048], eax
test esi, esi
jle 0x441908
nop
mov ecx, dword [edi + 0x76]
test ecx, ecx
je 0x441169
call fcn.0043c160
mov ecx, dword [ebp - 0x10048]
cmp eax, ecx
jne 0x441163
mov eax, dword [edi + 0x8a]
imul ecx, ecx, 0xb1
mov dword [ebp - 0x10050], ecx
cmp dword [ecx + eax + 0xa0], 1
jne 0x4418ef
push dword [ecx + eax + 0x42]
mov ecx, dword [edi + 0x1c]
mov ecx, dword [ecx]
call fcn.0042a880
mov dword [ebp - 0x10054], eax
add eax, ebx
mov dword [ebp - 0x10060], eax
js 0x441054
cmp ebx, dword [ebp - 0x10038]
jge 0x441054
lea eax, [ebp - 0x10074]
mov ecx, edi
push eax
push dword [edi + 0x102]
call fcn.0043c3b0
mov ebx, dword [ebp - 0x10074]
mov ecx, eax
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x1005c], ecx
test ebx, ebx
je 0x440ff0
dec ebx
imul ebx, edx
neg ebx
jmp 0x440ff2
mov ebx, edx
cmp ecx, dword [edi + 0xbe]
jge 0x44104e
lea ebx, [ebx]
cmp ebx, dword [ebp - 0x10034]
jge 0x44104e
mov eax, dword [edi + 0x112]
mov esi, dword [eax + ecx*4]
imul esi, edx
push esi
push dword [ebp - 0x10054]
push ebx
push dword [ebp - 0x1004c]
push ecx
push dword [edi + 0x92]
mov ecx, dword [edi + 0x76]
call fcn.0043b3b0
mov ecx, dword [ebp - 0x1005c]
add ebx, esi
mov edx, dword [ebp - 0x10058]
inc ecx
mov dword [ebp - 0x1005c], ecx
cmp ecx, dword [edi + 0xbe]
jl 0x441000
mov ebx, dword [ebp - 0x1004c]
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi + 0x82]
mov eax, dword [ecx + 8]
cmp eax, 0xffffffff
je 0x44107f
mov ecx, dword [ecx + 0x10]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [edi + 0x18]
cmp eax, dword [ecx + edx*4]
mov eax, 1
cmove esi, eax
mov eax, dword [ebp - 0x10048]
xor ecx, ecx
cmp eax, dword [edi + 0x54]
jne 0x4410e2
lea eax, [ebp - 0x1007c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x1007c]
push eax
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
movsx eax, word [edi + 0x5c]
add eax, ebx
mov dword [ebp - 0x1007c], eax
lea eax, [ebp - 0x1007c]
push eax
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebp - 0x10078]
push dword [ebp - 0x1007c]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov eax, dword [ebp - 0x10048]
mov ecx, 1
xor edx, edx
cmp eax, dword [edi + 0x12e]
jne 0x441102
mov eax, dword [edi + 0x8a]
lea ecx, [edx + 1]
mov edx, dword [ebp - 0x10050]
mov edx, dword [edx + eax + 0xa8]
mov eax, dword [edi + 0x8a]
mov edi, dword [ebp - 0x10050]
push dword [edi + eax + 0x56]
push dword [edi + eax + 0x46]
push edx
push ecx
push dword [ebp - 0x10058]
mov ecx, edi
mov edi, dword [ebp - 0x10070]
push dword [ebp - 0x10054]
add ecx, 4
push 0
push ebx
add eax, ecx
mov ecx, dword [edi + 0x1c]
push esi
push eax
push dword [edi + 0x92]
mov ecx, dword [ecx]
call fcn.00427040
mov ecx, dword [ebp - 0x10064]
add ecx, dword [ebp - 0x10054]
mov ebx, dword [ebp - 0x10060]
mov dword [ebp - 0x10064], ecx
jmp 0x4418e9
mov eax, dword [ebp - 0x10048]
mov ecx, dword [edi + 0x1c]
imul esi, eax, 0xb1
mov eax, dword [edi + 0x8a]
mov ecx, dword [ecx]
mov dword [ebp - 0x10044], esi
push dword [esi + eax + 0x42]
call fcn.0042a880
mov edx, eax
mov dword [ebp - 0x1005c], edx
lea ecx, [edx + ebx]
test ecx, ecx
js 0x4418d1
cmp ebx, dword [ebp - 0x10038]
jge 0x4418d1
mov ecx, dword [edi + 0x8a]
cmp dword [esi + ecx + 0xa0], 1
jne 0x4418d1
cmp byte [ebp - 0x10068], 0
je 0x4411db
mov eax, dword [ebp - 0x1006c]
cmp dword [ebp - 0x10048], 0
cmove eax, ebx
mov dword [ebp - 0x1006c], eax
lea eax, [ebp - 0x10074]
mov ecx, edi
push eax
push dword [edi + 0x102]
call fcn.0043c3b0
mov esi, eax
mov eax, dword [ebp - 0x10074]
test eax, eax
je 0x441209
lea edx, [eax - 1]
imul edx, dword [ebp - 0x10058]
neg edx
jmp 0x44120f
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x10054], edx
cmp esi, dword [edi + 0xbe]
jge 0x4417cc
cmp edx, dword [ebp - 0x10034]
jge 0x4417c6
xor ecx, ecx
mov dword [ebp - 0x1004c], ecx
cmp dword [edi + 0x116], ecx
je 0x44125b
push esi
mov ecx, edi
call fcn.0043f000
mov edx, dword [ebp - 0x10054]
test eax, eax
je 0x44128c
mov dword [ebp - 0x1004c], 0xc84c
jmp 0x44128c
mov eax, dword [edi + 0x10e]
cmp esi, eax
cmove ecx, dword [ebp - 0x10080]
cmp dword [edi + 0x6e], 0
mov dword [ebp - 0x1004c], ecx
je 0x44128c
cmp dword [edi + 0x62], 0xffffffff
jle 0x44128c
cmp esi, eax
mov eax, 0xc84c
cmove ecx, eax
mov dword [ebp - 0x1004c], ecx
cmp byte [ebp - 0x10068], 0
je 0x4412b0
cmp dword [ebp - 0x10048], 0
jne 0x4412b0
cmp esi, dword [edi + 0x10e]
jne 0x4412b0
add ebx, 0xa
inc edx
mov dword [ebp - 0x10054], edx
mov edx, dword [edi + 0x8a]
mov ecx, dword [ebp - 0x10044]
mov byte [ebp - 0x10004], 0
mov eax, dword [ecx + edx + 0x36]
dec eax
cmp eax, 0x10
ja case.0x4412d8.12
movzx eax, byte [eax + 0x441e64]
jmp dword [eax*4 + 0x441e3c]
mov ecx, dword [edi + 0xe6]
mov eax, dword [ebp - 0x10044]
imul ecx, esi
add ecx, dword [eax + edx + 0x3e]
mov eax, dword [edi + 0xc2]
push dword [ecx + eax]
lea ecx, [edi + 0xea]
call fcn.00425e30
lea edx, [ebp - 0x10004]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [eax + edx - 1], cl
test cl, cl
jne 0x441310
mov ecx, dword [edi + 0x8a]
mov eax, dword [ebp - 0x10044]
cmp dword [eax + ecx + 0x4a], 0
je case.0x4412d8.12
mov eax, dword [eax + ecx + 0x9c]
inc eax
push 0
push eax
lea eax, [ebp - 0x10004]
push eax
call fcn.0041c850
add esp, 0xc
jmp case.0x4412d8.12
mov ecx, dword [edi + 0xe6]
mov eax, dword [ebp - 0x10044]
imul ecx, esi
add ecx, dword [eax + edx + 0x3e]
mov eax, dword [edi + 0xc2]
movzx ecx, word [ecx + eax]
test cx, cx
jne 0x441386
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x4412d8.12
lea eax, [ebp - 0x10004]
push eax
push ecx
call fcn.00405ee0
add esp, 8
jmp case.0x4412d8.12
mov ecx, dword [edi + 0xe6]
mov eax, dword [ebp - 0x10044]
imul ecx, esi
add ecx, dword [eax + edx + 0x3e]
mov eax, dword [edi + 0xc2]
movzx ecx, word [ecx + eax]
test cx, cx
jne 0x4413ce
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x4412d8.12
lea eax, [ebp - 0x10004]
push eax
push ecx
call fcn.0041cd00
add esp, 8
jmp case.0x4412d8.12
mov ecx, dword [edi + 0xe6]
mov eax, dword [ebp - 0x10044]
imul ecx, esi
add ecx, dword [eax + edx + 0x3e]
add ecx, dword [edi + 0xc2]
cmp word [ecx], 0
jne 0x44140d
cmp dword [eax + edx + 0x52], 0
jne case.0x4412d8.12
lea eax, [ebp - 0x10004]
push eax
call fcn.004204e0
jmp case.0x4412d8.12
mov ecx, dword [edi + 0xe6]
mov eax, dword [ebp - 0x10044]
imul ecx, esi
add ecx, dword [eax + edx + 0x3e]
mov eax, dword [edi + 0xc2]
movzx ecx, word [ecx + eax]
test cx, cx
jne 0x441451
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x4412d8.12
movsx eax, cx
push eax
lea eax, [ebp - 0x10004]
push 0x485a70
push eax
call fcn.00453b2a
add esp, 0xc
jmp case.0x4412d8.12
mov ecx, dword [edi + 0xe6]
mov eax, dword [ebp - 0x10044]
imul ecx, esi
add ecx, dword [eax + edx + 0x3e]
mov eax, dword [edi + 0xc2]
push dword [ecx + eax]
jmp 0x441455
mov ecx, dword [edi + 0xe6]
mov eax, dword [ebp - 0x10044]
imul ecx, esi
add ecx, dword [eax + edx + 0x3e]
mov eax, dword [edi + 0xc2]
movsx eax, byte [ecx + eax]
jmp 0x441454
lea eax, [ebp - 0x10004]
push eax
mov eax, dword [edi + 0xe6]
imul eax, esi
add eax, dword [ecx + edx + 0x3e]
add eax, dword [edi + 0xc2]
push eax
call fcn.0041ca70
add esp, 8
jmp case.0x4412d8.12
mov eax, dword [edi + 0xe6]
imul eax, esi
add eax, dword [ecx + edx + 0x3e]
lea ecx, [ebp - 0x1000d]
add eax, dword [edi + 0xc2]
mov dword [ebp - 0x10050], eax
lea eax, [ebp - 0x10090]
push eax
mov dword [ebp - 0x10090], 0
call fcn.004240f0
lea eax, [ebp - 0x1000d]
push eax
push dword [ebp - 0x10050]
call fcn.00424270
mov ecx, dword [ebp - 0x10044]
add esp, 8
test eax, eax
jne 0x441534
mov eax, dword [edi + 0x8a]
cmp dword [ecx + eax + 0x52], 0
jne case.0x4412d8.12
mov eax, dword [edi + 0x8a]
mov eax, dword [ecx + eax + 0x36]
sub eax, 6
je 0x44158f
dec eax
je 0x44156c
dec eax
jne case.0x4412d8.12
push 2
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.00424120
call fcn.00424860
add esp, 0x14
jmp case.0x4412d8.12
push 2
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.00424120
call fcn.00424760
add esp, 0x14
jmp case.0x4412d8.12
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.00424120
call fcn.004247c0
add esp, 0x10
mov eax, dword [edi + 0x8a]
mov edx, dword [ebp - 0x10044]
cmp dword [edx + eax + 0x4e], 0
je 0x4415ce
cmp byte [ebp - 0x10004], 0
je 0x441783
cmp byte [edi + 0x178], 0
je 0x4415e5
mov ecx, dword [ebp - 0x10048]
cmp ecx, dword [edi + 0x179]
jne 0x4415ef
cmp dword [edx + eax + 0xac], 0
je 0x4415f9
mov dword [ebp - 0x1004c], 0
cmp dword [edi + 0xca], 0
je 0x441620
mov ecx, dword [edi + 0x8e]
mov eax, dword [edi + 0xc6]
imul ecx, esi
add ecx, dword [ebp - 0x10048]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1008c], eax
cmp dword [edi + 0xd2], 0
je 0x441647
mov ecx, dword [edi + 0x8e]
mov eax, dword [edi + 0xce]
imul ecx, esi
add ecx, dword [ebp - 0x10048]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x10088], eax
cmp dword [edi + 0xda], 0
mov eax, dword [edi + 0x8a]
mov ecx, dword [ebp - 0x10048]
mov eax, dword [edx + eax + 0x5a]
mov dword [ebp - 0x10060], eax
je 0x44167f
mov eax, dword [edi + 0x8e]
imul eax, esi
add eax, dword [edi + 0xd6]
movsx eax, byte [eax + ecx]
mov dword [ebp - 0x10060], eax
xor edx, edx
cmp dword [edi + 0xe2], edx
je 0x441699
test ecx, ecx
jne 0x441699
mov eax, dword [edi + 0xde]
movsx edx, byte [eax + esi]
add ebx, edx
mov eax, dword [edi + 0x112]
mov edi, dword [edi + 0x8a]
mov ecx, dword [eax + esi*4]
mov eax, dword [ebp - 0x10044]
mov eax, dword [eax + edi + 0x36]
cmp eax, 3
je 0x4416c6
cmp eax, 0x10
je 0x4416c6
cmp ecx, 1
cmovg ecx, dword [ebp - 0x10080]
mov edi, dword [ebp - 0x1005c]
mov dword [ebp - 0x10050], edi
sub dword [ebp - 0x10050], edx
mov edi, dword [ebp - 0x10070]
cmp eax, 3
je 0x4416ec
cmp eax, 0x10
je 0x4416ec
xor eax, eax
jmp 0x4416f1
mov eax, 1
push dword [edi + 0x174]
mov edx, dword [edi + 0x8a]
push dword [ebp - 0x10088]
imul ecx, dword [ebp - 0x10058]
push dword [edi + 0xd2]
push dword [ebp - 0x1008c]
push dword [edi + 0xca]
push eax
push dword [ebp - 0x10060]
mov eax, dword [ebp - 0x10044]
push dword [eax + edx + 0x56]
push dword [eax + edx + 0x46]
lea eax, [ebp - 0x10004]
push dword [ebp - 0x1004c]
push ecx
push dword [ebp - 0x10050]
mov ecx, dword [edi + 0x1c]
push dword [ebp - 0x10054]
push ebx
push dword [edi + 0x82]
mov ecx, dword [ecx]
push eax
push dword [edi + 0x92]
call fcn.004272d0
cmp dword [edi + 0xe2], 0
mov ecx, dword [ebp - 0x10048]
je 0x441789
test ecx, ecx
jne 0x441789
mov eax, dword [edi + 0xde]
movsx eax, byte [eax + esi]
sub ebx, eax
jmp 0x441789
mov ecx, dword [ebp - 0x10048]
mov eax, dword [edi + 0x112]
mov edx, dword [ebp - 0x10054]
mov eax, dword [eax + esi*4]
inc esi
imul eax, dword [ebp - 0x10058]
add edx, eax
cmp byte [ebp - 0x10068], 0
mov dword [ebp - 0x10054], edx
je 0x4417ba
test ecx, ecx
cmove ebx, dword [ebp - 0x1006c]
cmp esi, dword [edi + 0xbe]
jl 0x441221
mov dword [ebp - 0x1004c], ebx
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi + 0x82]
mov eax, dword [ecx + 8]
cmp eax, 0xffffffff
je 0x4417f7
mov ecx, dword [ecx + 0x10]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [edi + 0x18]
cmp eax, dword [ecx + edx*4]
mov eax, 1
cmove esi, eax
mov eax, dword [ebp - 0x10048]
xor ecx, ecx
cmp eax, dword [edi + 0x54]
jne 0x44185a
lea eax, [ebp - 0x10028]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x10028]
push eax
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
movsx eax, word [edi + 0x5c]
add eax, ebx
mov dword [ebp - 0x10028], eax
lea eax, [ebp - 0x10028]
push eax
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebp - 0x10024]
push dword [ebp - 0x10028]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov eax, dword [ebp - 0x10048]
mov ecx, 1
mov edx, dword [ebp - 0x10044]
mov dword [ebp - 0x10060], 0
cmp eax, dword [edi + 0x12e]
jne 0x44188a
mov eax, dword [edi + 0x8a]
mov ecx, 1
mov eax, dword [edx + eax + 0xa8]
mov dword [ebp - 0x10060], eax
mov eax, dword [edi + 0x8a]
push dword [edx + eax + 0x56]
push dword [edx + eax + 0x46]
add eax, 4
push dword [ebp - 0x10060]
push ecx
push dword [ebp - 0x10058]
mov ecx, dword [edi + 0x1c]
push dword [ebp - 0x1005c]
push 0
mov ecx, dword [ecx]
push ebx
push esi
mov esi, dword [ebp - 0x10044]
add eax, esi
push eax
push dword [edi + 0x92]
call fcn.00427040
mov edx, dword [ebp - 0x1005c]
mov eax, dword [edi + 0x8a]
cmp dword [esi + eax + 0xa0], 1
jne 0x4418ef
add ebx, edx
add dword [ebp - 0x10064], edx
mov dword [ebp - 0x1004c], ebx
mov eax, dword [ebp - 0x10048]
inc eax
mov dword [ebp - 0x10048], eax
cmp eax, dword [edi + 0x8e]
jl 0x440f50
mov ebx, dword [ebp - 0x10064]
cmp ebx, dword [ebp - 0x10038]
jle 0x441a68
mov esi, dword [sym.imp.USER32.dll_GetScrollInfo]
lea eax, [ebp - 0x10020]
push eax
xorps xmm0, xmm0
mov dword [ebp - 0x10008], 0
push 2
push dword [edi + 0xae]
movdqu xmmword [ebp - 0x10020], xmm0
mov dword [ebp - 0x10020], 0x1c
movq qword [ebp - 0x10010], xmm0
mov dword [ebp - 0x1001c], 7
call esi
mov ecx, dword [edi + 0xae]
mov eax, dword [ebp - 0x10038]
test ecx, ecx
je 0x44198a
cmp dword [ebp - 0x10014], ebx
jne 0x441986
cmp dword [ebp - 0x10010], eax
je 0x441a94
test ecx, ecx
jne 0x441a02
mov eax, dword [edi + 0x1c]
mov esi, dword [ebp - 0x10084]
push 0
mov eax, dword [eax]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push dword [eax + 0x32]
mov eax, dword [esi + 0xc]
push 0xffffffffffffffff
push dword [edi + 0x18]
sub eax, ecx
dec eax
push eax
mov eax, dword [esi + 8]
sub eax, edx
sub eax, 2
push eax
push ecx
lea eax, [edx + 1]
push eax
push 0x40000004
push 0x4857e2
push str.scrollbar
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [edi + 0x1c]
mov dword [edi + 0xae], eax
mov ecx, dword [ecx]
push dword [ecx + 0xa3]
push 0xfffffffffffffffc
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [edi + 0xb6], eax
mov eax, dword [edi + 0x106]
mov dword [ebp - 0x1000c], eax
mov eax, dword [ebp - 0x10038]
push 1
mov dword [ebp - 0x10010], eax
lea eax, [ebp - 0x10020]
push eax
push 2
push dword [edi + 0xae]
mov dword [ebp - 0x10020], 0x1c
mov dword [ebp - 0x10018], 1
mov dword [ebp - 0x10014], ebx
mov dword [ebp - 0x1001c], 7
call dword [sym.imp.USER32.dll_SetScrollInfo]
push 1
push 2
push dword [edi + 0xae]
call dword [sym.imp.USER32.dll_ShowScrollBar]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00452f44
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0xae]
test eax, eax
je 0x441a8e
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00452f44
mov esp, ebp
pop ebp
ret 8
mov esi, dword [sym.imp.USER32.dll_GetScrollInfo]
mov ecx, dword [edi + 0x10a]
test ecx, ecx
jle 0x441c2d
mov ebx, dword [ebp - 0x10058]
mov eax, dword [ebp - 0x10034]
imul ecx, ebx
sub eax, ebx
cmp ecx, eax
jle 0x441c2d
lea eax, [ebp - 0x10020]
mov dword [ebp - 0x10008], 0
push eax
xorps xmm0, xmm0
push 2
push dword [edi + 0xb2]
movdqu xmmword [ebp - 0x10020], xmm0
mov dword [ebp - 0x10020], 0x1c
movq qword [ebp - 0x10010], xmm0
mov dword [ebp - 0x1001c], 7
call esi
movd xmm1, dword [ebp - 0x10034]
mov eax, 1
movd xmm0, ebx
cvtdq2pd xmm1, xmm1
mov ecx, dword [edi + 0xb2]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si esi, xmm1
sub esi, 2
test esi, esi
cmovle esi, eax
test ecx, ecx
je 0x441b4e
mov eax, dword [ebp - 0x10014]
cmp eax, dword [edi + 0x10a]
jne 0x441b4a
cmp dword [ebp - 0x10010], esi
je 0x441c53
test ecx, ecx
jne 0x441bc1
mov eax, dword [edi + 0x1c]
mov ebx, dword [ebp - 0x10084]
push 0
mov eax, dword [eax]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push dword [eax + 0x32]
mov eax, dword [ebx + 0xc]
push 0xffffffffffffffff
push dword [edi + 0x18]
sub eax, ecx
sub eax, 2
push eax
mov eax, dword [ebx + 8]
sub eax, edx
dec eax
push eax
lea eax, [ecx + 1]
push eax
push edx
push 0x40000005
push 0x4857e2
push str.scrollbar
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [edi + 0x1c]
mov dword [edi + 0xb2], eax
mov ecx, dword [ecx]
push dword [ecx + 0xa3]
push 0xfffffffffffffffc
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [edi + 0xba], eax
mov eax, dword [edi + 0x102]
inc eax
mov dword [ebp - 0x1000c], eax
mov eax, dword [edi + 0x10a]
push 1
mov dword [ebp - 0x10014], eax
lea eax, [ebp - 0x10020]
push eax
push 2
push dword [edi + 0xb2]
mov dword [ebp - 0x10020], 0x1c
mov dword [ebp - 0x10010], esi
mov dword [ebp - 0x10018], 1
mov dword [ebp - 0x1001c], 7
call dword [sym.imp.USER32.dll_SetScrollInfo]
push 1
push 2
push dword [edi + 0xb2]
call dword [sym.imp.USER32.dll_ShowScrollBar]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00452f44
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [edi + 0xb2]
test ecx, ecx
je 0x441c53
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00452f44
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0xae]
test eax, eax
je 0x441d9c
test ecx, ecx
je 0x441d34
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [ebp - 0x10014]
push ecx
push eax
call esi
lea eax, [ebp - 0x10030]
push eax
push dword [edi + 0xb2]
call esi
lea eax, [ebp - 0x10014]
push eax
push dword [edi + 0x18]
call fcn.0040f490
lea eax, [ebp - 0x10030]
push eax
push dword [edi + 0x18]
call fcn.0040f490
mov eax, dword [ebp - 0x10024]
add esp, 0x10
mov ecx, dword [ebp - 0x10010]
mov ebx, dword [sym.imp.USER32.dll_SetWindowPos]
cmp eax, ecx
jle 0x441cf3
sub ecx, dword [ebp - 0x10008]
mov edx, dword [ebp - 0x1002c]
sub ecx, edx
push 0x16
add ecx, eax
mov eax, dword [ebp - 0x10028]
push ecx
mov ecx, dword [ebp - 0x10030]
sub eax, ecx
push eax
push edx
push ecx
push 0
push dword [edi + 0xb2]
call ebx
mov ecx, dword [ebp - 0x10010]
mov edx, dword [ebp - 0x1000c]
mov esi, dword [ebp - 0x10030]
cmp edx, esi
jle 0x441e04
mov eax, dword [ebp - 0x10008]
push 0x16
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10014]
sub edx, eax
sub edx, dword [ebp - 0x10028]
add edx, esi
push edx
push ecx
push eax
push 0
push dword [edi + 0xae]
call ebx
jmp 0x441e04
test eax, eax
je 0x441d9c
lea ecx, [ebp - 0x10014]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x10014]
push eax
push dword [edi + 0x18]
call fcn.0040f490
mov esi, dword [ebp - 0x10038]
add esp, 8
mov ecx, dword [ebp - 0x1000c]
mov edx, dword [ebp - 0x10014]
sub ecx, edx
lea eax, [esi - 2]
cmp ecx, eax
je 0x441e04
mov eax, dword [ebp - 0x10008]
mov ecx, dword [ebp - 0x10010]
sub eax, ecx
push 0x16
dec eax
push eax
lea eax, [esi - 1]
push eax
push ecx
lea eax, [edx + 1]
push eax
push 0
push dword [edi + 0xae]
jmp 0x441dfe
test ecx, ecx
je 0x441e04
lea eax, [ebp - 0x10014]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x10014]
push eax
push dword [edi + 0x18]
call fcn.0040f490
mov esi, dword [ebp - 0x10034]
add esp, 8
mov ecx, dword [ebp - 0x10008]
mov edx, dword [ebp - 0x10010]
sub ecx, edx
lea eax, [esi - 2]
cmp ecx, eax
je 0x441e04
mov ecx, dword [ebp - 0x10014]
lea eax, [esi - 1]
push 0x16
push eax
mov eax, dword [ebp - 0x1000c]
sub eax, ecx
dec eax
push eax
lea eax, [edx + 1]
push eax
push ecx
push 0
push dword [edi + 0xb2]
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp dword [edi + 0x5e], 1
jne 0x441e23
push 0
push 0
push 0x200
push dword [edi + 0x18]
mov dword [edi + 0x5e], 0
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00452f44
mov esp, ebp
pop ebp
ret 8