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

Disassembly:
push 8
push 0x18
mov eax, 0x60adbf
call fcn.005f9b71
mov edi, ecx
mov eax, dword [ebx + 0x10]
cmp dword [edi + 0x6278], eax
jne 0x585eaa
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x585d21
mov ecx, dword [edi + 0x6280]
xor esi, esi
test ecx, ecx
je 0x585ca1
push str.Title
lea eax, [ebp - 0x1c]
push eax
call fcn.00416eed
push str.Artist
lea eax, [ebp - 0x18]
mov dword [ebp - 4], esi
mov ecx, dword [edi + 0x6280]
push eax
call fcn.00416eed
push esi
push ecx
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 1
mov ecx, esp
push eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
push eax
call fcn.0040d36e
lea eax, [ebp - 0x14]
push eax
call fcn.005d11dc
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x585c77
inc dword [eax + 0x30]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x585c77
call fcn.0044e6da
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x585c8a
call fcn.00407965
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x585ca1
call fcn.00407965
mov ecx, edi
call fcn.0058c751
cmp dword [edi + 0x24b0], esi
jne 0x585ec4
cmp dword [edi + 0x2540], esi
jne 0x585ec4
cmp dword [edi + 0x629c], esi
je 0x585ec4
mov eax, dword [edi + 0x62d0]
test eax, eax
je 0x585ce0
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [edi + 0x62d0], esi
mov eax, dword [0x673830]
push esi
test eax, eax
jle 0x585d0d
imul eax, eax, 0x3e8
push eax
push 0xb
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [edi + 0x62d0], eax
jmp 0x585ec4
push esi
push 0x7ec
push dword [edi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x585ec4
push 2
pop eax
cmp cx, ax
jne 0x585ec4
xor esi, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x6280]
test eax, eax
je 0x585ddc
push str.Title
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00416eed
push str.Artist
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 3
mov ecx, dword [edi + 0x6280]
push eax
call fcn.00416eed
push esi
push ecx
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 4
mov ecx, esp
push eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x24]
mov ecx, esp
push eax
call fcn.0040d36e
lea eax, [ebp - 0x28]
push eax
call fcn.005d11dc
mov ecx, dword [eax]
test ecx, ecx
je 0x585d9e
lock inc dword [ecx + 0xcc]
mov ecx, dword [ebp - 0x28]
mov esi, dword [eax]
mov dword [ebp - 0x1c], esi
test ecx, ecx
je 0x585daf
call fcn.0044e6da
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x585dc2
call fcn.00407965
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x585dd9
call fcn.00407965
mov ecx, dword [ebx + 0xc]
xor edx, edx
shr ecx, 0x10
inc edx
cmp cx, dx
jne 0x585e29
push 0x8284
push ecx
lea ecx, [edi + 0x62b4]
call fcn.0041129f
and dword [edi + 0x6354], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x6350], eax
test esi, esi
je 0x585e7c
inc dword [esi + 0x58]
cmp dword [esi + 0x94], 0
jne 0x585e7c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x94], eax
jmp 0x585e7c
mov eax, dword [edi + 0x6278]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
cmp eax, 2
jne 0x585e41
push 0x81b9
jmp 0x585e52
cmp eax, 1
jne 0x585e4d
push 0x81ba
jmp 0x585e52
push 0x81bb
push ecx
lea ecx, [edi + 0x62b4]
call fcn.0041129f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x6354], eax
test esi, esi
je 0x585e7c
sub eax, dword [edi + 0x6350]
cmp dword [esi + 0x54], eax
jae 0x585e7c
mov dword [esi + 0x54], eax
push dword [edi + 0x62b4]
push dword [edi + 0x1f14]
call dword [sym.imp.USER32.dll_SetWindowTextW]
test esi, esi
je 0x585ec4
or eax, 0xffffffff
lock xadd dword [esi + 0xcc], eax
dec eax
jne 0x585ec4
push ecx
mov ecx, esi
call fcn.0044e701
jmp 0x585ec4
mov ecx, dword [edi + 0x627c]
cmp ecx, eax
jne 0x585ec4
test ecx, ecx
je 0x585ebd
mov eax, dword [ecx]
call dword [eax + 8]
and dword [edi + 0x627c], 0
xor eax, eax
call fcn.005f9aee
ret 0x10