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

Disassembly:
push 0x454
mov eax, 0x60b595
call fcn.004db4be
mov ebx, ecx
mov dword [ebp - 0x440], ebx
xor eax, eax
xor edi, edi
inc eax
mov dword [ebp - 0x428], edi
cmp word [ebp + 0xc], ax
jne 0x58dbbc
mov ecx, dword [ebx + 0x6284]
call fcn.0045201d
test eax, eax
je 0x58dbbc
cmp dword [ebx + 0x62a4], edi
jne 0x58dbbc
mov ecx, dword [ebx + 0x6280]
or esi, 0xffffffff
mov dword [ebp - 0x444], esi
test ecx, ecx
jne 0x58d387
mov eax, dword [ebx + 0x6284]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x418], ecx
test ecx, ecx
je 0x58d35f
lock inc dword [ecx + 4]
mov edx, dword [ebx + 0x6280]
test edx, edx
je 0x58d381
mov eax, esi
lock xadd dword [edx + 4], eax
dec eax
jne 0x58d381
mov eax, dword [edx]
mov ecx, edx
push 1
call dword [eax]
mov ecx, dword [ebp - 0x418]
mov dword [ebx + 0x6280], ecx
mov esi, edi
mov dword [ebp - 0x44c], esi
mov dword [ebp - 4], 4
mov edi, 0x668010
test ecx, ecx
je 0x58d487
push str.Title
lea eax, [ebp - 0x424]
push eax
call fcn.00416eed
push str.Artist
lea eax, [ebp - 0x418]
mov byte [ebp - 4], 5
mov ecx, dword [ebx + 0x6280]
push eax
call fcn.00416eed
push 0
push ecx
lea eax, [ebp - 0x418]
mov byte [ebp - 4], 6
mov ecx, esp
push eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x424]
mov ecx, esp
push eax
call fcn.0040d36e
lea eax, [ebp - 0x42c]
push eax
call fcn.005d11dc
mov ecx, dword [eax]
test ecx, ecx
je 0x58d40c
lock inc dword [ecx + 0xcc]
mov ecx, dword [ebp - 0x42c]
mov esi, dword [eax]
mov dword [ebp - 0x44c], esi
test ecx, ecx
je 0x58d423
call fcn.0044e6da
test esi, esi
je 0x58d45f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x64]
mov edx, eax
call fcn.004a8891
mov dword [esi + 0x64], eax
cmp dword [esi + 0x70], 0
je 0x58d453
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x70]
mov edx, eax
call fcn.004a8891
mov dword [esi + 0x70], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x90], eax
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff4
cmp ecx, edi
je 0x58d471
call fcn.00407965
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x424]
add ecx, 0xfffffff4
cmp ecx, edi
je 0x58d487
call fcn.00407965
mov ecx, dword [ebx + 0x6284]
call fcn.0045201d
mov dword [ebp - 0x418], eax
test eax, eax
je 0x58d4a3
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
mov ecx, dword [ebx + 0x6278]
test ecx, ecx
je 0x58d4b2
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x418]
mov dword [ebx + 0x6278], eax
mov ecx, dword [ebx + 0x6284]
call fcn.0045203a
mov eax, dword [ebx + 0x6278]
lea edx, [ebp - 0x450]
and dword [ebp - 0x43c], 0
push edx
lea edx, [ebp - 0x43c]
mov dword [ebp - 0x450], 4
mov ecx, dword [eax]
push edx
push 5
push eax
call dword [ecx + 0x40]
mov ecx, dword [ebx + 0x6280]
mov eax, dword [ebp - 0x43c]
mov dword [ecx + 0x20], eax
mov eax, dword [0x668294]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x438], eax
mov eax, 0x200
mov byte [ebp - 4], 0xa
push eax
mov dword [ebp - 0x434], eax
lea eax, [ebp - 0x214]
push 0
push eax
call fcn.004e0bc0
mov eax, dword [ebx + 0x6278]
lea edx, [ebp - 0x434]
add esp, 0xc
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x214]
push edx
push 0x10
push eax
call dword [ecx + 0x40]
push 0
lea edx, [ebp - 0x214]
lea ecx, [ebp - 0x418]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x41c]
call fcn.0040d242
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff4
cmp ecx, edi
je 0x58d591
call fcn.00407965
push 0x200
lea eax, [ebp - 0x214]
push 0
push eax
call fcn.004e0bc0
mov eax, dword [ebx + 0x6278]
lea edx, [ebp - 0x434]
add esp, 0xc
mov dword [ebp - 0x434], 0x200
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x214]
push edx
push 0x11
push eax
call dword [ecx + 0x40]
push 0
lea edx, [ebp - 0x214]
lea ecx, [ebp - 0x418]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x42c]
call fcn.0040d242
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff4
cmp ecx, edi
je 0x58d5ff
call fcn.00407965
push 0x200
lea eax, [ebp - 0x214]
push 0
push eax
call fcn.004e0bc0
mov eax, dword [ebx + 0x6278]
lea edx, [ebp - 0x434]
add esp, 0xc
mov dword [ebp - 0x434], 0x200
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x214]
push edx
push 0x12
push eax
call dword [ecx + 0x40]
push 0
lea edx, [ebp - 0x214]
lea ecx, [ebp - 0x418]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x438]
call fcn.0040d242
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff4
cmp ecx, edi
je 0x58d66d
call fcn.00407965
push 0x200
lea eax, [ebp - 0x214]
push 0
push eax
call fcn.004e0bc0
mov eax, dword [ebx + 0x6278]
lea edx, [ebp - 0x434]
add esp, 0xc
mov dword [ebp - 0x434], 0x200
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x214]
push edx
push 0x13
push eax
call dword [ecx + 0x40]
push 0
lea edx, [ebp - 0x214]
lea ecx, [ebp - 0x418]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x424]
call fcn.0040d242
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff4
cmp ecx, edi
je 0x58d6db
call fcn.00407965
mov eax, dword [ebp - 0x41c]
xor edi, edi
mov dword [ebp - 0x428], eax
cmp dword [eax - 8], edi
je 0x58d706
mov ecx, dword [ebx + 0x6280]
lea eax, [ebp - 0x41c]
push eax
add ecx, 0x90
call fcn.0040d242
mov eax, dword [ebp - 0x438]
mov dword [ebp - 0x45c], eax
cmp dword [eax - 8], edi
je 0x58d72f
mov ecx, dword [ebx + 0x6280]
lea eax, [ebp - 0x438]
push eax
add ecx, 0x94
call fcn.0040d242
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x460], eax
cmp dword [eax - 8], edi
je 0x58d758
mov ecx, dword [ebx + 0x6280]
lea eax, [ebp - 0x42c]
push eax
add ecx, 0x98
call fcn.0040d242
mov edi, dword [ebp - 0x424]
cmp dword [edi - 8], 0
je 0x58d77c
mov ecx, dword [ebx + 0x6280]
lea eax, [ebp - 0x424]
push eax
add ecx, 0x9c
call fcn.0040d242
mov eax, dword [ebx + 0x6278]
lea edx, [ebp - 0x448]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov byte [ebp - 4], 0xb
push dword [ebp - 0x448]
mov ecx, dword [ebx + 0x6280]
call fcn.0044e7cb
mov ecx, dword [ebx + 0x6280]
call fcn.005bf0a6
mov ecx, dword [ebx + 0x6278]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x50]
mov dword [ebx + 0x6288], eax
mov eax, dword [ebx + 0x6278]
push 0x7e9
push dword [ebx + 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebx + 0x6278]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov ecx, eax
mov dword [ebp - 0x454], ecx
test ecx, ecx
js 0x58d807
cmp ecx, 0x7530
sbb eax, eax
and eax, 0xfffff060
add eax, 0x1388
mov dword [ebp - 0x418], eax
jmp 0x58d814
push 0x64
mov dword [ebp - 0x418], 1
pop ecx
push ecx
push 0
lea ecx, [ebx + 0x1f8c]
call fcn.0042e894
mov eax, dword [ebp - 0x418]
lea ecx, [ebx + 0x1f8c]
mov dword [ebx + 0x1fec], eax
mov eax, dword [ebp - 0x43c]
push 0
mov dword [ebx + 0x2050], eax
call fcn.00446c83
push 0
lea ecx, [ebx + 0x1f8c]
call fcn.0042e833
mov eax, dword [ebx + 0x6288]
push 2
pop ecx
and eax, ecx
mov dword [ebp - 0x420], ecx
push eax
push dword [ebx + 0x1f90]
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, dword [ebx + 0x6278]
cmp dword [0x673748], 0
mov eax, dword [0x67374c]
cmovne eax, dword [ebp - 0x444]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x24]
mov eax, dword [ebx + 0x6278]
push dword [0x673750]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebx + 0x6278]
push 0x673840
push dword [0x67383c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
mov eax, dword [ebx + 0x6278]
push dword [0x673834]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebx + 0x6278]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov eax, dword [ebx + 0x6278]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov eax, dword [ebx + 0x6278]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x6280]
lea edx, [ebp - 0x414]
push ecx
movzx ecx, word [eax + 0xc]
call fcn.005c9428
cmp dword [0x673748], 0
pop ecx
je 0x58d93e
mov eax, dword [0x668294]
push 0x81b8
push ecx
lea ecx, [ebp - 0x418]
mov dword [ebp - 0x418], eax
call fcn.0041129f
xor ecx, ecx
lea eax, [ebp - 0x418]
inc ecx
mov dword [ebp - 0x420], ecx
jmp 0x58d950
lea eax, [ebp - 0x414]
push eax
lea ecx, [ebp - 0x444]
call fcn.0040d2ee
push dword [eax]
push dword [ebx + 0x1ee0]
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [ebp - 0x420]
test cl, 2
je 0x58d98f
mov eax, dword [ebp - 0x444]
and ecx, 0xfffffffd
add eax, 0xfffffff4
mov dword [ebp - 0x420], ecx
cmp eax, 0x668010
je 0x58d98f
mov ecx, eax
call fcn.00407965
mov ecx, dword [ebp - 0x420]
test cl, 1
je 0x58d9aa
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x58d9aa
call fcn.00407965
push dword [0x6737a0]
mov ecx, ebx
push dword [ebx + 0x6280]
call fcn.0058ba6b
cmp dword [0x673a40], 0
je 0x58d9d3
push 0
lea ecx, [ebx + 0x2100]
call fcn.005790d4
mov eax, dword [ebx + 0x6278]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
lea ecx, [ebx + 0x6244]
movzx eax, word [eax + 2]
mov dword [ebx + 0x8dc], eax
call fcn.0040834e
cmp dword [ebp + 0x10], 0
je 0x58db11
mov ecx, ebx
call fcn.0058c820
cmp dword [0x673824], 0
je 0x58dae0
cmp dword [0x673828], 0
je 0x58dae0
cmp dword [0x67373c], 0
je 0x58dae0
test byte [ebx + 0x6288], 2
je 0x58dae0
cmp dword [ebp - 0x454], 0
jl 0x58dae0
mov ecx, dword [ebx + 0x6280]
call fcn.00421f50
test eax, eax
jne 0x58dae0
mov ecx, dword [ebx + 0x6280]
lea eax, [ebp - 0x458]
push eax
call fcn.0041be56
mov edx, eax
mov ecx, 0x673740
call fcn.00421d60
mov ecx, dword [ebp - 0x458]
add ecx, 0xfffffff4
mov byte [ebp - 0x42d], al
cmp ecx, 0x668010
je 0x58da99
call fcn.00407965
mov al, byte [ebp - 0x42d]
test al, al
je 0x58dae0
mov eax, dword [ebx + 0x6278]
push dword [0x67373c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
test eax, eax
js 0x58dae0
push dword [0x67373c]
lea ecx, [ebx + 0x2100]
call fcn.00578ea6
mov ecx, dword [ebx + 0x6278]
push 1
push ecx
mov eax, dword [ecx]
call dword [eax + 0x34]
push eax
push dword [0x67373c]
mov ecx, ebx
call fcn.0058b999
mov eax, dword [ebx + 0x3ba0]
lea ecx, [ebx + 0x3a18]
test eax, eax
je 0x58daf5
mov eax, dword [eax + 0x1c]
jmp 0x58daf8
or eax, 0xffffffff
push eax
call fcn.005a54e4
and dword [0x67373c], 0
mov dword [ebx + 0x629c], 1
jmp 0x58db3a
push 0x81bb
push ecx
lea ecx, [ebx + 0x62b4]
call fcn.0041129f
mov eax, dword [ebp - 0x440]
push dword [ebx + 0x62b4]
push dword [eax + 0x1f14]
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x448]
test eax, eax
je 0x58db4e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x45c]
mov ebx, 0x668010
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x58db65
call fcn.00407965
lea ecx, [edi - 0xc]
cmp ecx, ebx
je 0x58db71
call fcn.00407965
mov ecx, dword [ebp - 0x460]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x58db83
call fcn.00407965
mov ecx, dword [ebp - 0x428]
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x58db95
call fcn.00407965
test esi, esi
je 0x58deca
or eax, 0xffffffff
lock xadd dword [esi + 0xcc], eax
dec eax
jne 0x58deca
push ecx
mov ecx, esi
call fcn.0044e701
jmp 0x58deca
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x58deca
mov eax, dword [ebx + 0x6284]
mov esi, dword [eax + 0x24]
mov dword [ebp - 0x438], esi
test esi, esi
je 0x58dd6a
push str.Title
lea eax, [ebp - 0x424]
mov ecx, esi
push eax
call fcn.00416eed
push str.Artist
lea eax, [ebp - 0x418]
mov dword [ebp - 4], edi
push eax
mov ecx, esi
call fcn.00416eed
push edi
push ecx
lea eax, [ebp - 0x418]
mov byte [ebp - 4], 1
mov ecx, esp
push eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x424]
mov ecx, esp
push eax
call fcn.0040d36e
lea eax, [ebp - 0x41c]
push eax
call fcn.005d11dc
push 2
pop eax
mov byte [ebp - 4], al
mov esi, dword [ebp - 0x41c]
test esi, esi
je 0x58dce1
cmp dword [esi + 0x38], 0
je 0x58dc5b
cmp dword [esi + 0x38], eax
jne 0x58dc68
mov dword [esi + 0x38], 1
mov esi, dword [ebp - 0x41c]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov ecx, dword [esi + 0x64]
mov edx, eax
call fcn.004a8891
mov dword [esi + 0x64], eax
mov esi, dword [ebp - 0x41c]
cmp dword [esi + 0x70], 0
je 0x58dc9e
call edi
mov ecx, dword [esi + 0x70]
mov edx, eax
call fcn.004a8891
mov dword [esi + 0x70], eax
mov esi, dword [ebp - 0x41c]
call edi
mov dword [esi + 0x90], eax
mov esi, dword [ebp - 0x41c]
call edi
sub eax, dword [ebx + 0x63a8]
mov dword [esi + 0xb0], eax
mov eax, dword [ebp - 0x41c]
push 2
pop ecx
cmp dword [eax + 0xb4], ecx
je 0x58dcdb
mov dword [eax + 0xb4], 1
mov eax, dword [ebp - 0x41c]
lock dec dword [eax + 0x44]
xor edi, edi
push edi
push ecx
lea eax, [ebp - 0x418]
mov ecx, esp
push eax
call fcn.0040d36e
push ecx
lea eax, [ebp - 0x424]
mov ecx, esp
push eax
call fcn.0040d36e
lea eax, [ebp - 0x42c]
push eax
call fcn.005d188e
mov eax, dword [ebp - 0x42c]
test eax, eax
je 0x58dd29
lock dec dword [eax + 0x20]
mov ecx, dword [ebp - 0x42c]
test ecx, ecx
je 0x58dd29
call fcn.004226b1
mov ecx, dword [ebp - 0x41c]
test ecx, ecx
je 0x58dd38
call fcn.0044e6da
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x58dd4e
call fcn.00407965
mov ecx, dword [ebp - 0x424]
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x58dd64
call fcn.00407965
mov esi, dword [ebp - 0x438]
mov eax, dword [0x668294]
mov dword [ebp - 0x420], eax
push 3
pop edi
mov dword [ebp - 4], edi
mov eax, dword [ebx + 0x6284]
mov eax, dword [eax + 0x50]
cmp eax, 0x8004006f
jne 0x58dd92
push 0x8290
jmp 0x58ddc1
cmp eax, 0x80040070
jne 0x58dda0
push 0x828f
jmp 0x58ddc1
cmp eax, 0x80040071
jne 0x58ddae
push 0x8291
jmp 0x58ddc1
mov ecx, esi
call fcn.00421f50
neg eax
sbb eax, eax
and eax, edi
add eax, 0x828e
push eax
push ecx
lea ecx, [ebp - 0x420]
call fcn.0041129f
lea ecx, [ebx + 0x1e78]
call fcn.00414f43
mov esi, dword [ebp - 0x420]
push esi
push dword [ebx + 0x1e7c]
mov ebx, dword [sym.imp.USER32.dll_SetWindowTextW]
call ebx
mov edi, dword [ebp - 0x440]
push 0x8285
push ecx
lea ecx, [edi + 0x62b4]
call fcn.0041129f
push dword [edi + 0x62b4]
push dword [edi + 0x1f14]
call ebx
mov eax, dword [edi + 0x62e4]
mov ebx, dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x58de28
push eax
push dword [edi + 4]
call ebx
push 0
push 0x1388
push 0x10
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
push 1
mov ecx, edi
mov dword [edi + 0x62e4], eax
call fcn.00459b0c
mov ecx, dword [edi + 0x6284]
call fcn.0045203a
mov ecx, dword [edi + 0x6278]
test ecx, ecx
je 0x58de63
mov eax, dword [ecx]
call dword [eax + 8]
and dword [edi + 0x6278], 0
mov ecx, dword [edi + 0x6280]
test ecx, ecx
je 0x58de79
call fcn.00416ed3
and dword [edi + 0x6280], 0
cmp dword [edi + 0x629c], 0
je 0x58deba
cmp dword [0x67382c], 0
jne 0x58deba
mov eax, dword [edi + 0x62d0]
test eax, eax
je 0x58dea2
push eax
push dword [edi + 4]
call ebx
push 0
push 0xbb8
push 0xb
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [edi + 0x62d0], eax
lea ecx, [esi - 0xc]
cmp ecx, 0x668010
je 0x58deca
call fcn.00407965
xor eax, eax
call fcn.004db46d
ret 0x10