Function at 0x45f410
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d7460
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x510620]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
push esi
push edi
mov eax, dword [0x510620]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi]
push str.Scrollable
mov eax, dword [eax + 0x2c]
call eax
test al, al
je 0x45f769
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x7c]
mov esi, dword [eax]
lea eax, [esp + 0x20]
push eax
push dword [esi + 4]
push esi
call fcn.0045fc10
mov edx, eax
mov ecx, 0xffffffe
mov eax, dword [edi + 0x80]
sub ecx, eax
cmp ecx, 1
jae 0x45f4a1
push str.list_T__too_long
call fcn.0047dacc
inc eax
mov dword [edi + 0x80], eax
mov dword [esi + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
call ebx
mov edx, dword [edi + 0x7c]
xor esi, esi
mov ebx, eax
mov ecx, dword [edx]
cmp ecx, edx
je 0x45f4d5
nop
mov eax, ebx
sub eax, dword [ecx + 8]
cmp eax, 0x1f4
ja 0x45f4d5
add esi, dword [ecx + 0xc]
mov ecx, dword [ecx]
cmp ecx, edx
jne 0x45f4c0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x98]
mov ebx, eax
mov eax, 0x66666667
imul esi
mov eax, dword [edi]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ebx, ecx
lea ecx, [esp + 0x44]
push ecx
mov ecx, edi
call dword [eax + 0xe4]
mov eax, dword [edi]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, edi
call dword [eax + 0xac]
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
mov ecx, esi
mov dword [esp + 0x1c], eax
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
add ecx, 0x3c
cmp ebx, ecx
mov ecx, dword [esp + 0x1c]
jle 0x45f54b
mov eax, ecx
mov ebx, esi
cdq
xor eax, edx
sub eax, edx
sub ebx, eax
add ebx, 0x3c
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
sub esi, eax
cmp ebx, esi
jle 0x45f611
mov eax, dword [edi + 0x7c]
mov ecx, dword [eax]
mov dword [eax], eax
mov eax, dword [edi + 0x7c]
mov dword [eax + 4], eax
mov dword [edi + 0x80], 0
cmp ecx, dword [edi + 0x7c]
je 0x45f58a
mov esi, dword [ecx]
push ecx
call fcn.00494c0b
add esp, 4
mov ecx, esi
cmp esi, dword [edi + 0x7c]
jne 0x45f578
mov eax, dword [edi + 0x128]
test eax, eax
je 0x45f5cf
push eax
push 0
mov dword [esp + 0x28], eax
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], 0
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00465b70
mov eax, dword [esp + 0x1c]
cmp eax, dword [0x519e10]
je 0x45f5cf
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00465770
mov eax, dword [esp + 0x5c]
sub esp, 0x18
sub eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x60]
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
mov eax, esp
mov dword [eax], vtable.._AV___Func_impl_U___Callable_obj_V_lambda_762d7575260f8819a28b934f13c9cf71____0A__std__V__allocator_V___Func_class__N___V_std___2__N___V_std__.0
mov dword [eax + 8], ecx
mov ecx, 0x12c
mov dword [eax + 4], edi
mov dword [eax + 0x10], eax
mov byte [esp + 0x88], 0
call fcn.00464d30
add esp, 0x18
mov dword [edi + 0x128], eax
cmp ebx, 0xffffffc4
jge 0x45f61d
mov ebx, 0xffffffc4
jmp 0x45f625
test ebx, ebx
jns 0x45f6c4
mov eax, dword [edi + 0x7c]
mov ecx, dword [eax]
mov dword [eax], eax
mov eax, dword [edi + 0x7c]
mov dword [eax + 4], eax
mov dword [edi + 0x80], 0
cmp ecx, dword [edi + 0x7c]
je 0x45f653
mov esi, dword [ecx]
push ecx
call fcn.00494c0b
add esp, 4
mov ecx, esi
cmp esi, dword [edi + 0x7c]
jne 0x45f641
mov eax, dword [edi + 0x128]
test eax, eax
je 0x45f698
push eax
push 0
mov dword [esp + 0x28], eax
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], 0
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00465b70
mov eax, dword [esp + 0x1c]
cmp eax, dword [0x519e10]
je 0x45f698
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00465770
sub esp, 0x18
mov eax, esp
mov dword [eax], vtable.._AV___Func_impl_U___Callable_obj_V_lambda_ddea8f3295f9a4e46e28909da288a5e8____0A__std__V__allocator_V___Func_class__N___V_std___2__N___V_std__.0
mov ecx, 0x12c
mov dword [eax + 4], edi
mov dword [eax + 0x10], eax
mov byte [esp + 0x88], 0
call fcn.00464d30
add esp, 0x18
mov dword [edi + 0x128], eax
xor eax, eax
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], 0
mov word [esp + 0x2c], ax
mov dword [esp + 0x28], vtable.UString.0
push ebx
lea eax, [esp + 0x2c]
mov byte [esp + 0x74], 3
push str.VScrollPos:_d
push eax
call fcn.00456660
mov ebx, dword [ebp + 8]
mov eax, 0x88888889
imul ebx
add esp, 0xc
add edx, ebx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 3
push ecx
sub ebx, eax
mov ecx, edi
lea eax, [esp + 0x30]
jne 0x45f732
push 0x12c
push str.linear
jmp 0x45f73c
push 0x1f4
push str.decelerate
cmp dword [esp + 0x4c], 8
cmovae eax, dword [esp + 0x38]
push eax
call fcn.0045e0d0
cmp dword [esp + 0x40], 8
mov dword [esp + 0x28], vtable.UString.0
jb 0x45f77b
push dword [esp + 0x2c]
call fcn.00494c0b
add esp, 4
jmp 0x45f77b
mov ecx, dword [edi + 0x58]
test ecx, ecx
je 0x45f77b
mov eax, dword [ecx]
push dword [ebp + 8]
call dword [eax + 0xe8]
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.00494c10
mov esp, ebp
pop ebp
ret 4