Function at 0x442010
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10090
call fcn.00454e10
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 0x4420d9
mov eax, dword [edi + 0x9a]
test eax, eax
je 0x4420ac
push eax
push ecx
call esi
mov dword [edi + 0x9a], 0
mov eax, dword [edi + 0x96]
test eax, eax
je 0x4420c3
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 0x44217c
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 0x4421dd
cmp dword [edi + 0x8e], 0
jle 0x4421dd
add ecx, 4
mov eax, str.Color_Selection_Description
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4421c4
test dl, dl
je 0x4421c0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4421c4
add eax, 2
add ecx, 2
test dl, dl
jne 0x4421a4
xor eax, eax
jmp 0x4421c9
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 0x442249
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 0x442249
push dword [ebp - 0x10010]
mov ecx, edi
push eax
call fcn.0043bcb0
mov ecx, dword [edi + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042b860
mov esi, dword [edi + 0x8e]
mov dword [ebp - 0x10058], eax
test esi, esi
jle 0x44228f
lea edx, [esi - 1]
test edx, edx
jle 0x44228f
mov ecx, dword [edi + 0x8a]
imul eax, edx, 0xb1
add ecx, 0xa0
add eax, ecx
cmp dword [eax], 0
jne 0x44228f
dec edx
sub eax, 0xb1
test edx, edx
jg 0x442280
xor eax, eax
mov dword [ebp - 0x10048], eax
test esi, esi
jle 0x442c58
nop
mov ecx, dword [edi + 0x76]
test ecx, ecx
je 0x4424b9
call fcn.00472f80
mov ecx, dword [ebp - 0x10048]
cmp eax, ecx
jne 0x4424b3
mov eax, dword [edi + 0x8a]
imul ecx, ecx, 0xb1
mov dword [ebp - 0x10050], ecx
cmp dword [ecx + eax + 0xa0], 1
jne 0x442c3f
push dword [ecx + eax + 0x42]
mov ecx, dword [edi + 0x1c]
mov ecx, dword [ecx]
call fcn.0042b7f0
mov dword [ebp - 0x10054], eax
add eax, ebx
mov dword [ebp - 0x10060], eax
js 0x4423a4
cmp ebx, dword [ebp - 0x10038]
jge 0x4423a4
lea eax, [ebp - 0x10074]
mov ecx, edi
push eax
push dword [edi + 0x102]
call fcn.0043d6e0
mov ebx, dword [ebp - 0x10074]
mov ecx, eax
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x1005c], ecx
test ebx, ebx
je 0x442340
dec ebx
imul ebx, edx
neg ebx
jmp 0x442342
mov ebx, edx
cmp ecx, dword [edi + 0xbe]
jge 0x44239e
lea ebx, [ebx]
cmp ebx, dword [ebp - 0x10034]
jge 0x44239e
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.0043c6f0
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 0x442350
mov ebx, dword [ebp - 0x1004c]
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi + 0x82]
mov eax, dword [ecx + 8]
cmp eax, 0xffffffff
je 0x4423cf
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 0x442432
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 0x442452
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.00427eb0
mov ecx, dword [ebp - 0x10064]
add ecx, dword [ebp - 0x10054]
mov ebx, dword [ebp - 0x10060]
mov dword [ebp - 0x10064], ecx
jmp 0x442c39
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.0042b7f0
mov edx, eax
mov dword [ebp - 0x1005c], edx
lea ecx, [edx + ebx]
test ecx, ecx
js 0x442c21
cmp ebx, dword [ebp - 0x10038]
jge 0x442c21
mov ecx, dword [edi + 0x8a]
cmp dword [esi + ecx + 0xa0], 1
jne 0x442c21
cmp byte [ebp - 0x10068], 0
je 0x44252b
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.0043d6e0
mov esi, eax
mov eax, dword [ebp - 0x10074]
test eax, eax
je 0x442559
lea edx, [eax - 1]
imul edx, dword [ebp - 0x10058]
neg edx
jmp 0x44255f
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x10054], edx
cmp esi, dword [edi + 0xbe]
jge 0x442b1c
cmp edx, dword [ebp - 0x10034]
jge 0x442b16
xor ecx, ecx
mov dword [ebp - 0x1004c], ecx
cmp dword [edi + 0x116], ecx
je 0x4425ab
push esi
mov ecx, edi
call fcn.00440350
mov edx, dword [ebp - 0x10054]
test eax, eax
je 0x4425dc
mov dword [ebp - 0x1004c], 0xc84c
jmp 0x4425dc
mov eax, dword [edi + 0x10e]
cmp esi, eax
cmove ecx, dword [ebp - 0x10080]
cmp dword [edi + 0x6e], 0
mov dword [ebp - 0x1004c], ecx
je 0x4425dc
cmp dword [edi + 0x62], 0xffffffff
jle 0x4425dc
cmp esi, eax
mov eax, 0xc84c
cmove ecx, eax
mov dword [ebp - 0x1004c], ecx
cmp byte [ebp - 0x10068], 0
je 0x442600
cmp dword [ebp - 0x10048], 0
jne 0x442600
cmp esi, dword [edi + 0x10e]
jne 0x442600
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.0x442628.12
movzx eax, byte [eax + 0x4431b4]
jmp dword [eax*4 + 0x44318c]
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.00426cd0
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 0x442660
mov ecx, dword [edi + 0x8a]
mov eax, dword [ebp - 0x10044]
cmp dword [eax + ecx + 0x4a], 0
je case.0x442628.12
mov eax, dword [eax + ecx + 0x9c]
inc eax
push 0
push eax
lea eax, [ebp - 0x10004]
push eax
call fcn.0041d6f0
add esp, 0xc
jmp case.0x442628.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 0x4426d6
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x442628.12
lea eax, [ebp - 0x10004]
push eax
push ecx
call fcn.004069c0
add esp, 8
jmp case.0x442628.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 0x44271e
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x442628.12
lea eax, [ebp - 0x10004]
push eax
push ecx
call fcn.0041dbb0
add esp, 8
jmp case.0x442628.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 0x44275d
cmp dword [eax + edx + 0x52], 0
jne case.0x442628.12
lea eax, [ebp - 0x10004]
push eax
call fcn.00421300
jmp case.0x442628.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 0x4427a1
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x442628.12
movsx eax, cx
push eax
lea eax, [ebp - 0x10004]
push 0x485b00
push eax
call fcn.00453cca
add esp, 0xc
jmp case.0x442628.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 0x4427a5
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 0x4427a4
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.0041d920
add esp, 8
jmp case.0x442628.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.00424f10
lea eax, [ebp - 0x1000d]
push eax
push dword [ebp - 0x10050]
call fcn.00425090
mov ecx, dword [ebp - 0x10044]
add esp, 8
test eax, eax
jne 0x442884
mov eax, dword [edi + 0x8a]
cmp dword [ecx + eax + 0x52], 0
jne case.0x442628.12
mov eax, dword [edi + 0x8a]
mov eax, dword [ecx + eax + 0x36]
sub eax, 6
je 0x4428df
dec eax
je 0x4428bc
dec eax
jne case.0x442628.12
push 2
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.00424f40
call fcn.00425680
add esp, 0x14
jmp case.0x442628.12
push 2
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.00424f40
call fcn.00425580
add esp, 0x14
jmp case.0x442628.12
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.00424f40
call fcn.004255e0
add esp, 0x10
mov eax, dword [edi + 0x8a]
mov edx, dword [ebp - 0x10044]
cmp dword [edx + eax + 0x4e], 0
je 0x44291e
cmp byte [ebp - 0x10004], 0
je 0x442ad3
cmp byte [edi + 0x178], 0
je 0x442935
mov ecx, dword [ebp - 0x10048]
cmp ecx, dword [edi + 0x179]
jne 0x44293f
cmp dword [edx + eax + 0xac], 0
je 0x442949
mov dword [ebp - 0x1004c], 0
cmp dword [edi + 0xca], 0
je 0x442970
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 0x442997
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 0x4429cf
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 0x4429e9
test ecx, ecx
jne 0x4429e9
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 0x442a16
cmp eax, 0x10
je 0x442a16
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 0x442a3c
cmp eax, 0x10
je 0x442a3c
xor eax, eax
jmp 0x442a41
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.00428140
cmp dword [edi + 0xe2], 0
mov ecx, dword [ebp - 0x10048]
je 0x442ad9
test ecx, ecx
jne 0x442ad9
mov eax, dword [edi + 0xde]
movsx eax, byte [eax + esi]
sub ebx, eax
jmp 0x442ad9
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 0x442b0a
test ecx, ecx
cmove ebx, dword [ebp - 0x1006c]
cmp esi, dword [edi + 0xbe]
jl 0x442571
mov dword [ebp - 0x1004c], ebx
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi + 0x82]
mov eax, dword [ecx + 8]
cmp eax, 0xffffffff
je 0x442b47
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 0x442baa
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 0x442bda
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.00427eb0
mov edx, dword [ebp - 0x1005c]
mov eax, dword [edi + 0x8a]
cmp dword [esi + eax + 0xa0], 1
jne 0x442c3f
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 0x4422a0
mov ebx, dword [ebp - 0x10064]
cmp ebx, dword [ebp - 0x10038]
jle 0x442db8
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 0x442cda
cmp dword [ebp - 0x10014], ebx
jne 0x442cd6
cmp dword [ebp - 0x10010], eax
je 0x442de4
test ecx, ecx
jne 0x442d52
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 0x48586e
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.004530e4
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0xae]
test eax, eax
je 0x442dde
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.004530e4
mov esp, ebp
pop ebp
ret 8
mov esi, dword [sym.imp.USER32.dll_GetScrollInfo]
mov ecx, dword [edi + 0x10a]
test ecx, ecx
jle 0x442f7d
mov ebx, dword [ebp - 0x10058]
mov eax, dword [ebp - 0x10034]
imul ecx, ebx
sub eax, ebx
cmp ecx, eax
jle 0x442f7d
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 0x442e9e
mov eax, dword [ebp - 0x10014]
cmp eax, dword [edi + 0x10a]
jne 0x442e9a
cmp dword [ebp - 0x10010], esi
je 0x442fa3
test ecx, ecx
jne 0x442f11
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 0x48586e
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.004530e4
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [edi + 0xb2]
test ecx, ecx
je 0x442fa3
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.004530e4
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0xae]
test eax, eax
je 0x4430ec
test ecx, ecx
je 0x443084
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.0040ffb0
lea eax, [ebp - 0x10030]
push eax
push dword [edi + 0x18]
call fcn.0040ffb0
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 0x443043
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 0x443154
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 0x443154
test eax, eax
je 0x4430ec
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.0040ffb0
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 0x443154
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 0x44314e
test ecx, ecx
je 0x443154
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.0040ffb0
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 0x443154
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 0x443173
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.004530e4
mov esp, ebp
pop ebp
ret 8