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

Disassembly:
mov al, byte [0x74d0a1]
cmp al, 3
je 0x4d59a8
test al, al
je 0x4d5aa9
mov byte [0x74d0a1], 3
mov ax, word [0x74d0a8]
test ax, ax
je 0x4d5aa9
cmp ax, 1
jne 0x4d59d0
mov eax, 0xb
mov word [0x74d0a8], ax
mov byte [0x74d0b5], 0
ret
cmp ax, 3
je 0x4d62e0
cmp ax, 2
je 0x4d5c30
cmp ax, 5
je fcn.004d5b70
cmp ax, 6
je 0x4d5ab0
cmp ax, 7
jne 0x4d5a39
movsx eax, word [0x74d0ae]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [0x6243d0]
mov ecx, dword [0x74a844]
mulss xmm0, dword [0x74d230]
movss dword [esp], xmm0
call fcn.0051a790
mov eax, 0xc
mov word [0x74d0a8], ax
ret
cmp ax, 9
jne 0x4d5a56
mov ecx, dword [0x74a844]
call fcn.0051a210
mov eax, 0xd
mov word [0x74d0a8], ax
ret
cmp ax, 0xa
jne 0x4d5a73
mov ecx, dword [0x74a844]
call fcn.0051a4d0
mov eax, 0xc
mov word [0x74d0a8], ax
ret
cmp ax, 0xb
je 0x4d5aa9
cmp ax, 0xc
je 0x4d6340
cmp ax, 0xd
jne 0x4d5aa9
mov ecx, dword [0x74a844]
call fcn.0051a1d0
test eax, eax
je 0x4d5aa9
xor eax, eax
mov word [0x74d0a8], ax
or eax, 0xffffffff
mov word [0x74d0aa], ax
ret
mov ecx, dword [0x74a844]
mov byte [0x74d0b5], 1
call fcn.0051a1e0
test eax, eax
je 0x4d5ae5
mov ecx, dword [0x74a844]
call fcn.0051a870
xor eax, eax
mov word [0x74d0b0], ax
mov eax, 0xc
mov word [0x74d0a8], ax
ret
movsx ecx, word [0x74d0b0]
imul ecx, ecx, 0x3e8
mov eax, 0x88888889
imul ecx
add edx, ecx
push esi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x4d5b20
mov ecx, dword [0x74a844]
call fcn.0051a870
mov eax, 0xc
pop esi
mov word [0x74d0a8], ax
ret
call fcn.00519530
mov ecx, dword [0x74a844]
mov dword [0x74d0b8], eax
mov dword [0x74d0bc], edx
call fcn.0051a200
fstp dword [0x74d0c0]
movss xmm1, dword [0x74d0c0]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0xc
divss xmm1, xmm0
pop esi
movss dword [0x74d0c4], xmm1
mov word [0x74d0a8], ax
ret
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fba43
mov eax, dword fs:[0]
push eax
sub esp, 0x138
mov eax, dword [0x6a4108]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ax, word [0x74d0b2]
test ax, ax
jle 0x4d5c94
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x7419c8]
cvttss2si eax, xmm0
mov word [0x74d0b2], ax
test ax, ax
jg 0x4d62bc
xor eax, eax
mov word [0x74d0b2], ax
movsx eax, word [0x74d0ae]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6243d0]
mulss xmm0, dword [0x74d230]
movss dword [ebp - 0x144], xmm0
call fcn.004c2f50
mov cx, word [0x74d0aa]
mov dx, word [0x69b4ec]
mov ebx, eax
cmp cx, dx
je 0x4d5d88
cmp dx, 0xffff
je 0x4d5d88
mov ecx, dword [0x74a844]
test ecx, ecx
je 0x4d5cf1
call fcn.0051a870
mov ecx, dword [0x74a804]
test ecx, ecx
je 0x4d5d1b
sub esp, 8
mov ecx, esp
push 0x74a800
call fcn.0054b1c0
mov ecx, dword [0x74d23c]
call fcn.0051bb30
mov ecx, dword [0x74a804]
mov eax, dword [0x74a800]
mov dword [ebp - 0x13c], ecx
lea ecx, [ebp - 0x140]
mov dword [0x74a800], 0
mov dword [0x74a804], 0
mov dword [ebp - 0x140], eax
call fcn.0051e400
mov ecx, dword [0x74a844]
mov eax, dword [0x74a840]
mov dword [ebp - 0x13c], ecx
lea ecx, [ebp - 0x140]
mov dword [0x74a840], 0
mov dword [0x74a844], 0
mov dword [ebp - 0x140], eax
call fcn.0051e400
mov cx, word [0x74d0aa]
mov word [0x69b4ec], cx
push 0x74a800
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
call fcn.0054b1c0
push 0x74a840
lea ecx, [ebp - 0x128]
mov dword [ebp - 4], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0
call fcn.0054b1c0
mov edi, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x124]
mov byte [ebp - 4], 1
test edi, edi
jne 0x4d60e0
test esi, esi
je 0x4d5e5c
mov ecx, esi
call fcn.0051a870
mov eax, dword [ebp - 0x128]
mov ecx, esi
mov dword [ebp - 0x13c], ecx
xor esi, esi
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x128], edi
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x140], eax
call fcn.0051e400
mov ecx, dword [0x74a844]
mov eax, dword [0x74a840]
mov dword [ebp - 0x13c], ecx
lea ecx, [ebp - 0x140]
mov dword [0x74a840], esi
mov dword [0x74a844], esi
mov dword [ebp - 0x140], eax
call fcn.0051e400
movsx eax, word [0x74d0aa]
push eax
push dword [ebx*4 + 0x69b55c]
lea eax, [ebp - 0x110]
push dword [ebx*4 + 0x69b4f0]
push str._s_s._05d.ogg
push eax
call fcn.005c6a3f
add esp, 0x14
lea eax, [ebp - 0x110]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x118]
call fcn.004f8040
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 2
call fcn.004fc100
push ecx
mov ecx, dword [0x74d23c]
mov dword [esp], 0x3f800000
push 0
push 1
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x140]
push eax
mov byte [ebp - 4], 3
call fcn.0051b880
push eax
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 4
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
call fcn.0054b1c0
mov eax, dword [ebp - 0x120]
mov ecx, dword [0x74a800]
mov edx, dword [0x74a804]
mov dword [0x74a800], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x120], ecx
lea ecx, [ebp - 0x120]
mov dword [0x74a804], eax
mov dword [ebp - 0x11c], edx
call fcn.0051e400
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 3
call fcn.0051e400
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 1
call fcn.004f8230
push 0x74a800
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
call fcn.0054b1c0
mov ecx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x120]
mov edi, dword [ebp - 0x11c]
mov dword [ebp - 0x120], ecx
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edi
mov dword [ebp - 0x11c], 0
call fcn.0051e400
test edi, edi
je 0x4d60e0
movsx eax, word [0x74d0aa]
push eax
push dword [ebx*4 + 0x69b55c]
lea eax, [ebp - 0x110]
push dword [ebx*4 + 0x69b4f0]
push str._s_s._05d.loop
push eax
call fcn.005c6a3f
add esp, 0x14
lea eax, [ebp - 0x110]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
call fcn.004f8040
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 5
call fcn.004fc100
push 1
push 1
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x118]
push eax
mov byte [ebp - 4], 6
call fcn.004fcd60
add esp, 0x10
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 8
call fcn.004f8230
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x4d60d1
cmp dword [ecx + 0x20], 0
je 0x4d60d1
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test edx, edx
jne 0x4d6064
cmp eax, 0xc
jb 0x4d60d1
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x138], 0
mov eax, dword [ecx]
push 4
lea edx, [ebp - 0x11c]
push edx
call dword [eax + 8]
mov ecx, dword [ebp - 0x114]
push 4
mov eax, dword [ecx]
lea edx, [ebp - 0x134]
push edx
call dword [eax + 8]
mov ecx, dword [ebp - 0x114]
push 4
mov eax, dword [ecx]
lea edx, [ebp - 0x138]
push edx
call dword [eax + 8]
push dword [ebp - 0x138]
mov ecx, edi
push dword [ebp - 0x134]
call fcn.00519a90
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 1
call fcn.0051e400
test esi, esi
jne 0x4d6206
test edi, edi
je 0x4d6289
lea eax, [ebp - 0x140]
push eax
mov ecx, edi
call fcn.00519950
push eax
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 9
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x114], esi
call fcn.0054b1c0
mov eax, dword [ebp - 0x118]
mov ecx, dword [0x74a840]
mov edx, dword [0x74a844]
mov dword [0x74a840], eax
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x118], ecx
lea ecx, [ebp - 0x118]
mov dword [0x74a844], eax
mov dword [ebp - 0x114], edx
call fcn.0051e400
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 1
call fcn.0051e400
push 0x74a840
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x114], esi
call fcn.0054b1c0
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x118]
mov esi, dword [ebp - 0x114]
mov dword [ebp - 0x118], ecx
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x114], 0
call fcn.0051e400
test esi, esi
je 0x4d6289
xor eax, eax
cmp byte [0x74d0b4], al
mov ecx, esi
sete al
push eax
call fcn.0051a300
movss xmm0, dword [ebp - 0x144]
push ecx
mov ecx, esi
movss dword [esp], xmm0
call fcn.0051a790
mov ecx, dword [0x74d23c]
sub esp, 8
mov eax, esp
push 1
push eax
call fcn.0051b7a0
mov ecx, esi
call fcn.0051a0a0
jmp 0x4d6289
mov ecx, esi
call fcn.0051a1f0
test eax, eax
je 0x4d6224
mov ecx, esi
call fcn.0051a1e0
test eax, eax
jne 0x4d6224
cmp byte [0x74d0b5], al
jne 0x4d629b
mov ecx, esi
call fcn.0051a1f0
test eax, eax
je 0x4d6243
mov ecx, esi
call fcn.0051a1e0
test eax, eax
je 0x4d6243
mov ecx, esi
call fcn.0051a4d0
jmp 0x4d629b
mov ecx, esi
call fcn.0051a1f0
test eax, eax
jne 0x4d6274
cmp byte [0x74d0b4], al
mov ecx, esi
sete al
push eax
call fcn.0051a300
movss xmm0, dword [ebp - 0x144]
push ecx
mov ecx, esi
movss dword [esp], xmm0
call fcn.0051a790
movss xmm0, dword [ebp - 0x144]
push ecx
mov ecx, esi
movss dword [esp], xmm0
call fcn.0051a790
mov eax, 0xc
mov word [0x74d0a8], ax
mov byte [0x74d0b5], 0
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 0
call fcn.0051e400
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 0xffffffff
call fcn.0051e400
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005c7124
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x74a844]
call fcn.0051a1f0
test eax, eax
je 0x4d633b
movsx eax, word [0x74d0ae]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [0x6243d0]
mov ecx, dword [0x74a844]
mulss xmm0, dword [0x74d230]
movss dword [esp], xmm0
call fcn.0051a790
mov ecx, dword [0x74a844]
call fcn.0051a4d0
mov eax, 0xc
mov word [0x74d0a8], ax
mov byte [0x74d0b5], 0
ret
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fba90
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x6a4108]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x74a840
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call fcn.0054b1c0
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 4], 0
test ebx, ebx
jne 0x4d639e
xor eax, eax
mov word [0x74d0b0], ax
jmp 0x4d6609
push 1
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.0051a100
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.004afba0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.0054b1c0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.0051e400
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.0051e400
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x4d64df
cmp dword [edi + 0x14], 0
je 0x4d64df
call fcn.004c2f50
mov esi, dword [eax*4 + 0x69b5a4]
movd xmm6, dword [edi + 0x10]
movd xmm0, esi
cvtdq2ps xmm6, xmm6
cvtdq2ps xmm0, xmm0
xorps xmm5, xmm5
movaps xmm4, xmm5
divss xmm6, xmm0
test esi, esi
jle 0x4d64df
movss xmm1, dword [0x612894]
movss xmm7, dword [0x62eb70]
mov edx, 0x74d0d4
jmp 0x4d6450
movss xmm3, dword [0x612898]
andps xmm3, xmm4
movaps xmm0, xmm4
xorps xmm0, xmm3
cmpltss xmm0, xmm1
movaps xmm2, xmm4
mov eax, dword [edi + 0x14]
andps xmm1, xmm0
orps xmm1, xmm3
addss xmm2, xmm1
subss xmm2, xmm1
movss xmm1, dword [0x612878]
movaps xmm0, xmm2
subss xmm0, xmm4
cmpnless xmm0, xmm3
andps xmm0, xmm1
subss xmm2, xmm0
cvttss2si ecx, xmm2
movss xmm0, dword [eax + ecx*4]
mulss xmm0, dword [0x69b5b0]
comiss xmm0, xmm7
jbe 0x4d64b0
movaps xmm0, xmm7
jmp 0x4d64b8
comiss xmm5, xmm0
jbe 0x4d64b8
movaps xmm0, xmm5
movsx eax, word [edx]
cvttss2si ecx, xmm0
cmp ecx, eax
jle 0x4d64c6
mov word [edx], cx
movss xmm1, dword [0x612894]
add edx, 2
movaps xmm0, xmm6
addss xmm4, xmm0
dec esi
jne 0x4d6450
cmp byte [0x74d0b5], 0
je 0x4d65f2
cmp word [0x74d0b0], 0
jle 0x4d65f2
call fcn.00519530
sub eax, dword [0x74d0b8]
sbb edx, dword [0x74d0bc]
mov dword [ebp - 0x14], eax
mov eax, edx
and edx, 0x7fffffff
mov dword [ebp - 0x10], edx
fild qword [ebp - 0x14]
and eax, 0x80000000
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 0
fild qword [ebp - 0x14]
fchs
faddp st(1)
fstp qword [ebp - 0x14]
movsd xmm0, qword [ebp - 0x14]
mulsd xmm0, qword [0x631f38]
movsd qword [ebp - 0x14], xmm0
fld qword [ebp - 0x14]
fld qword [0x62fe30]
xorps xmm0, xmm0
fxch st(1)
movlpd qword [ebp - 0x14], xmm0
fcomi st(1)
jb 0x4d6577
fsub st(1)
fxch st(1)
fcompi st(1)
jbe 0x4d6579
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
add esi, 0
adc edi, 0x80000000
jmp 0x4d657f
fstp st(1)
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
call fcn.005c9496
movss xmm1, dword [0x74d0c0]
add eax, esi
adc edx, edi
mov dword [ebp - 0x14], eax
mov eax, edx
and edx, 0x7fffffff
mov dword [ebp - 0x10], edx
fild qword [ebp - 0x14]
and eax, 0x80000000
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 0
fild qword [ebp - 0x14]
fchs
faddp st(1)
fstp dword [ebp - 0x10]
movss xmm0, dword [ebp - 0x10]
mulss xmm0, dword [0x74d0c4]
subss xmm1, xmm0
comiss xmm1, dword [0x6245a4]
jbe 0x4d65e3
push ecx
mov ecx, ebx
movss dword [esp], xmm1
call fcn.0051a790
jmp 0x4d65f2
xor eax, eax
mov ecx, ebx
mov word [0x74d0b0], ax
call fcn.0051a870
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call fcn.0051e400
mov ecx, ebx
call fcn.0051a1d0
test eax, eax
je 0x4d664b
mov ax, word [0x74d0ac]
cmp ax, 0xffff
je 0x4d6631
mov word [0x74d0aa], ax
or eax, 0xffffffff
mov word [0x74d0ac], ax
mov eax, 2
mov word [0x74d0a8], ax
jmp 0x4d664b
cmp byte [0x74d0b4], 0
jne 0x4d664b
xor eax, eax
mov word [0x74d0a8], ax
or eax, 0xffffffff
mov word [0x74d0aa], ax
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.0051e400
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret