Function at 0x441f20
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10090
call fcn.00453dd0
mov eax, dword [0x4a7ea0]
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 0x441fe9
mov eax, dword [edi + 0x9a]
test eax, eax
je 0x441fbc
push eax
push ecx
call esi
mov dword [edi + 0x9a], 0
mov eax, dword [edi + 0x96]
test eax, eax
je 0x441fd3
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 0x44208c
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 0x4420ed
cmp dword [edi + 0x8e], 0
jle 0x4420ed
add ecx, 4
mov eax, str.Color_Selection_Description
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4420d4
test dl, dl
je 0x4420d0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4420d4
add eax, 2
add ecx, 2
test dl, dl
jne 0x4420b4
xor eax, eax
jmp 0x4420d9
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 0x442159
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 0x442159
push dword [ebp - 0x10010]
mov ecx, edi
push eax
call fcn.0043bbe0
mov ecx, dword [edi + 0x1c]
push 0x39
mov ecx, dword [ecx]
call fcn.0042bb10
mov esi, dword [edi + 0x8e]
mov dword [ebp - 0x10058], eax
test esi, esi
jle 0x44219f
lea edx, [esi - 1]
test edx, edx
jle 0x44219f
mov ecx, dword [edi + 0x8a]
imul eax, edx, 0xb1
add ecx, 0xa0
add eax, ecx
cmp dword [eax], 0
jne 0x44219f
dec edx
sub eax, 0xb1
test edx, edx
jg 0x442190
xor eax, eax
mov dword [ebp - 0x10048], eax
test esi, esi
jle 0x442b68
nop
mov ecx, dword [edi + 0x76]
test ecx, ecx
je 0x4423c9
call fcn.00471fd0
mov ecx, dword [ebp - 0x10048]
cmp eax, ecx
jne 0x4423c3
mov eax, dword [edi + 0x8a]
imul ecx, ecx, 0xb1
mov dword [ebp - 0x10050], ecx
cmp dword [ecx + eax + 0xa0], 1
jne 0x442b4f
push dword [ecx + eax + 0x42]
mov ecx, dword [edi + 0x1c]
mov ecx, dword [ecx]
call fcn.0042baa0
mov dword [ebp - 0x10054], eax
add eax, ebx
mov dword [ebp - 0x10060], eax
js 0x4422b4
cmp ebx, dword [ebp - 0x10038]
jge 0x4422b4
lea eax, [ebp - 0x10074]
mov ecx, edi
push eax
push dword [edi + 0x102]
call fcn.0043d610
mov ebx, dword [ebp - 0x10074]
mov ecx, eax
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x1005c], ecx
test ebx, ebx
je 0x442250
dec ebx
imul ebx, edx
neg ebx
jmp 0x442252
mov ebx, edx
cmp ecx, dword [edi + 0xbe]
jge 0x4422ae
lea ebx, [ebx]
cmp ebx, dword [ebp - 0x10034]
jge 0x4422ae
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.0043c620
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 0x442260
mov ebx, dword [ebp - 0x1004c]
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi + 0x82]
mov eax, dword [ecx + 8]
cmp eax, 0xffffffff
je 0x4422df
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 0x442342
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 0x442362
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.00428150
mov ecx, dword [ebp - 0x10064]
add ecx, dword [ebp - 0x10054]
mov ebx, dword [ebp - 0x10060]
mov dword [ebp - 0x10064], ecx
jmp 0x442b49
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.0042baa0
mov edx, eax
mov dword [ebp - 0x1005c], edx
lea ecx, [edx + ebx]
test ecx, ecx
js 0x442b31
cmp ebx, dword [ebp - 0x10038]
jge 0x442b31
mov ecx, dword [edi + 0x8a]
cmp dword [esi + ecx + 0xa0], 1
jne 0x442b31
cmp byte [ebp - 0x10068], 0
je 0x44243b
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.0043d610
mov esi, eax
mov eax, dword [ebp - 0x10074]
test eax, eax
je 0x442469
lea edx, [eax - 1]
imul edx, dword [ebp - 0x10058]
neg edx
jmp 0x44246f
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x10054], edx
cmp esi, dword [edi + 0xbe]
jge 0x442a2c
cmp edx, dword [ebp - 0x10034]
jge 0x442a26
xor ecx, ecx
mov dword [ebp - 0x1004c], ecx
cmp dword [edi + 0x116], ecx
je 0x4424bb
push esi
mov ecx, edi
call fcn.00440260
mov edx, dword [ebp - 0x10054]
test eax, eax
je 0x4424ec
mov dword [ebp - 0x1004c], 0xc84c
jmp 0x4424ec
mov eax, dword [edi + 0x10e]
cmp esi, eax
cmove ecx, dword [ebp - 0x10080]
cmp dword [edi + 0x6e], 0
mov dword [ebp - 0x1004c], ecx
je 0x4424ec
cmp dword [edi + 0x62], 0xffffffff
jle 0x4424ec
cmp esi, eax
mov eax, 0xc84c
cmove ecx, eax
mov dword [ebp - 0x1004c], ecx
cmp byte [ebp - 0x10068], 0
je 0x442510
cmp dword [ebp - 0x10048], 0
jne 0x442510
cmp esi, dword [edi + 0x10e]
jne 0x442510
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.0x442538.12
movzx eax, byte [eax + 0x4430c4]
jmp dword [eax*4 + 0x44309c]
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.00426f30
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 0x442570
mov ecx, dword [edi + 0x8a]
mov eax, dword [ebp - 0x10044]
cmp dword [eax + ecx + 0x4a], 0
je case.0x442538.12
mov eax, dword [eax + ecx + 0x9c]
inc eax
push 0
push eax
lea eax, [ebp - 0x10004]
push eax
call fcn.0041d670
add esp, 0xc
jmp case.0x442538.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 0x4425e6
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x442538.12
lea eax, [ebp - 0x10004]
push eax
push ecx
call fcn.00406a20
add esp, 8
jmp case.0x442538.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 0x44262e
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x442538.12
lea eax, [ebp - 0x10004]
push eax
push ecx
call fcn.0041db20
add esp, 8
jmp case.0x442538.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 0x44266d
cmp dword [eax + edx + 0x52], 0
jne case.0x442538.12
lea eax, [ebp - 0x10004]
push eax
call fcn.00421560
jmp case.0x442538.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 0x4426b1
mov eax, dword [ebp - 0x10044]
cmp dword [eax + edx + 0x52], 0
jne case.0x442538.12
movsx eax, cx
push eax
lea eax, [ebp - 0x10004]
push 0x484b00
push eax
call fcn.00452c8a
add esp, 0xc
jmp case.0x442538.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 0x4426b5
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 0x4426b4
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.0041d890
add esp, 8
jmp case.0x442538.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.00425170
lea eax, [ebp - 0x1000d]
push eax
push dword [ebp - 0x10050]
call fcn.004252f0
mov ecx, dword [ebp - 0x10044]
add esp, 8
test eax, eax
jne 0x442794
mov eax, dword [edi + 0x8a]
cmp dword [ecx + eax + 0x52], 0
jne case.0x442538.12
mov eax, dword [edi + 0x8a]
mov eax, dword [ecx + eax + 0x36]
sub eax, 6
je 0x4427ef
dec eax
je 0x4427cc
dec eax
jne case.0x442538.12
push 2
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.004251a0
call fcn.004258e0
add esp, 0x14
jmp case.0x442538.12
push 2
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.004251a0
call fcn.004257e0
add esp, 0x14
jmp case.0x442538.12
lea eax, [ebp - 0x10004]
push eax
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x10050]
call fcn.004251a0
call fcn.00425840
add esp, 0x10
mov eax, dword [edi + 0x8a]
mov edx, dword [ebp - 0x10044]
cmp dword [edx + eax + 0x4e], 0
je 0x44282e
cmp byte [ebp - 0x10004], 0
je 0x4429e3
cmp byte [edi + 0x178], 0
je 0x442845
mov ecx, dword [ebp - 0x10048]
cmp ecx, dword [edi + 0x179]
jne 0x44284f
cmp dword [edx + eax + 0xac], 0
je 0x442859
mov dword [ebp - 0x1004c], 0
cmp dword [edi + 0xca], 0
je 0x442880
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 0x4428a7
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 0x4428df
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 0x4428f9
test ecx, ecx
jne 0x4428f9
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 0x442926
cmp eax, 0x10
je 0x442926
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 0x44294c
cmp eax, 0x10
je 0x44294c
xor eax, eax
jmp 0x442951
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.004283e0
cmp dword [edi + 0xe2], 0
mov ecx, dword [ebp - 0x10048]
je 0x4429e9
test ecx, ecx
jne 0x4429e9
mov eax, dword [edi + 0xde]
movsx eax, byte [eax + esi]
sub ebx, eax
jmp 0x4429e9
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 0x442a1a
test ecx, ecx
cmove ebx, dword [ebp - 0x1006c]
cmp esi, dword [edi + 0xbe]
jl 0x442481
mov dword [ebp - 0x1004c], ebx
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi + 0x82]
mov eax, dword [ecx + 8]
cmp eax, 0xffffffff
je 0x442a57
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 0x442aba
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 0x442aea
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.00428150
mov edx, dword [ebp - 0x1005c]
mov eax, dword [edi + 0x8a]
cmp dword [esi + eax + 0xa0], 1
jne 0x442b4f
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 0x4421b0
mov ebx, dword [ebp - 0x10064]
cmp ebx, dword [ebp - 0x10038]
jle 0x442cc8
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 0x442bea
cmp dword [ebp - 0x10014], ebx
jne 0x442be6
cmp dword [ebp - 0x10010], eax
je 0x442cf4
test ecx, ecx
jne 0x442c62
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 0x48486e
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.004520a4
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0xae]
test eax, eax
je 0x442cee
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.004520a4
mov esp, ebp
pop ebp
ret 8
mov esi, dword [sym.imp.USER32.dll_GetScrollInfo]
mov ecx, dword [edi + 0x10a]
test ecx, ecx
jle 0x442e8d
mov ebx, dword [ebp - 0x10058]
mov eax, dword [ebp - 0x10034]
imul ecx, ebx
sub eax, ebx
cmp ecx, eax
jle 0x442e8d
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 0x442dae
mov eax, dword [ebp - 0x10014]
cmp eax, dword [edi + 0x10a]
jne 0x442daa
cmp dword [ebp - 0x10010], esi
je 0x442eb3
test ecx, ecx
jne 0x442e21
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 0x48486e
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.004520a4
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [edi + 0xb2]
test ecx, ecx
je 0x442eb3
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.004520a4
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0xae]
test eax, eax
je 0x442ffc
test ecx, ecx
je 0x442f94
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.0040ff80
lea eax, [ebp - 0x10030]
push eax
push dword [edi + 0x18]
call fcn.0040ff80
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 0x442f53
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 0x443064
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 0x443064
test eax, eax
je 0x442ffc
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.0040ff80
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 0x443064
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 0x44305e
test ecx, ecx
je 0x443064
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.0040ff80
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 0x443064
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 0x443083
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.004520a4
mov esp, ebp
pop ebp
ret 8