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

Disassembly:
sub esp, 0x220
push ebx
mov ebx, dword [0x61d5b0]
mov eax, ebx
push ebp
and eax, 0xff
push esi
mov dword [esp + 0xc], eax
push edi
fild dword [esp + 0x10]
xor eax, eax
lea edi, [esp + 0x30]
xor ebp, ebp
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], ecx
mov ecx, 0x80
rep stosd dword es:[edi], eax
mov al, byte [0x61d5b2]
mov dword [esp + 0x20], ebp
cmp eax, 5
ja case.default.0x5ef910
jmp dword [eax*4 + 0x5efebc]
fild dword [0x628ae4]
mov edx, dword [0x628f64]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
fld st(0)
fadd dword [esp + 0x14]
fadd dword [0x5fdc94]
fild qword [esp + 0x18]
fcompp
fnstsw ax
test ah, 1
je 0x5ef980
fstp st(0)
fld dword [esp + 0x14]
fmul dword [0x604e70]
fiadd dword [0x628adc]
mov al, bl
shr al, 1
and eax, 0xff
mov dword [esp + 0x10], eax
fsub dword [0x5fdc94]
fstp dword [esp + 0x30]
fild dword [0x628ae8]
fisub dword [esp + 0x10]
fstp dword [esp + 0x34]
jmp case.default.0x5ef910
fld dword [esp + 0x14]
fmul dword [0x5fdf9c]
mov cl, bl
shr cl, 1
fsubr st(1)
and ecx, 0xff
fadd dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fadd dword [0x5fdc94]
fstp dword [esp + 0x30]
fstp st(0)
fild dword [0x628ae8]
fisub dword [esp + 0x10]
fstp dword [esp + 0x34]
jmp case.default.0x5ef910
fld dword [esp + 0x14]
fmul dword [0x5fdf9c]
fadd dword [0x5fdc94]
fst dword [esp + 0x30]
fstp dword [esp + 0x34]
jmp case.default.0x5ef910
fld dword [esp + 0x14]
fmul dword [0x5fdf9c]
mov edx, dword [0x628f64]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
fadd dword [0x5fdc94]
fild qword [esp + 0x18]
fsub st(1)
fstp dword [esp + 0x30]
fstp dword [esp + 0x34]
jmp case.default.0x5ef910
fld dword [esp + 0x14]
fmul dword [0x5fdf9c]
mov eax, dword [0x628f64]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], eax
mov ecx, dword [0x628d54]
fadd dword [0x5fdc94]
fild qword [esp + 0x18]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebp
fsub st(1)
fstp dword [esp + 0x30]
fild qword [esp + 0x18]
fsub st(1)
fstp dword [esp + 0x34]
fstp st(0)
jmp case.default.0x5ef910
fld dword [esp + 0x14]
fmul dword [0x5fdf9c]
mov edx, dword [0x628d54]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
fadd dword [0x5fdc94]
fst dword [esp + 0x30]
fild qword [esp + 0x18]
fsub st(1)
fstp dword [esp + 0x34]
fstp st(0)
jmp case.default.0x5ef910
mov edx, dword [0x628f64]
mov esi, dword [0x628d54]
xor eax, eax
cmp edx, 0x500
ja 0x5efadf
cmp edx, 0x500
je 0x5efacf
cmp edx, 0x320
je 0x5efac8
cmp edx, 0x400
je 0x5efac1
cmp edx, 0x480
jne 0x5efb17
mov eax, 3
jmp 0x5efb17
mov eax, 2
jmp 0x5efb17
mov eax, 1
jmp 0x5efb17
xor eax, eax
cmp esi, 0x3c0
setne al
add eax, 4
jmp 0x5efb17
cmp edx, 0x640
je 0x5efb12
cmp edx, 0x780
jne 0x5efb17
mov eax, esi
sub eax, 0x438
je 0x5efb0b
sub eax, 0x78
je 0x5efb04
mov eax, 9
jmp 0x5efb17
mov eax, 8
jmp 0x5efb17
mov eax, 7
jmp 0x5efb17
mov eax, 6
mov ecx, dword [eax*8 + 0x61d5b4]
mov eax, dword [eax*8 + 0x61d5b8]
cmp ecx, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
jle 0x5efb37
mov ecx, edx
mov dword [esp + 0x10], ecx
cmp eax, esi
jle 0x5efb41
mov eax, esi
mov dword [esp + 0x20], eax
fld dword [esp + 0x14]
fmul dword [0x5fdf9c]
fild dword [esp + 0x10]
mov dword [esp + 0x24], ecx
fadd st(1)
fadd dword [0x5fdc94]
fstp dword [esp + 0x30]
fild dword [esp + 0x20]
mov dword [esp + 0x20], eax
fadd st(1)
fadd dword [0x5fdc94]
fstp dword [esp + 0x34]
fstp st(0)
mov al, byte [esp + 0x234]
mov dword [esp + 0x3c], 0x3f800000
test al, al
je 0x5efc9f
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
fild qword [esp + 0x28]
fsub qword [0x629880]
fcomp qword [0x604e68]
fnstsw ax
test ah, 0x41
jne 0x5efbdd
inc dword [0x6298dc]
call esi
mov dword [esp + 0x28], eax
mov eax, dword [0x6298dc]
mov dword [esp + 0x2c], ebp
cmp eax, 0xd
fild qword [esp + 0x28]
fstp qword [0x629880]
jbe 0x5efbdd
mov dword [0x6298dc], ebp
mov ebx, dword [0x61d5b0]
mov eax, dword [esp + 0x234]
lea ecx, [esp + 0x214]
and eax, 0xff
mov edx, 0xf
imul eax, dword [0x6298dc]
fld dword [esp + 0x14]
fmul dword [0x5fdf9c]
inc eax
mov esi, 0x3f800000
lea edi, [eax - 1]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], edi
inc eax
fild qword [esp + 0x28]
sub ecx, 0x20
dec edx
fmul dword [0x604e64]
fmul dword [0x604e60]
fld st(0)
fsin
fld st(2)
fmulp st(1)
fadd dword [esp + 0x30]
fstp dword [ecx + 0x1c]
fld dword [esp + 0x34]
fxch st(1)
fcos
fld st(2)
fmulp st(1)
fsubp st(1)
fstp dword [ecx + 0x20]
mov dword [ecx + 0x28], esi
jne 0x5efc12
mov ecx, dword [0x61d5a8]
cmp ecx, ebp
fstp st(0)
jne 0x5efd7c
mov al, byte [esp + 0x234]
test al, al
jne 0x5efcaa
xor eax, eax
mov al, bh
shl eax, 0x18
lea ecx, [eax + 0xffffff]
lea edx, [eax + 0x404040]
mov dword [esp + 0x40], ecx
lea eax, [esp + 0x60]
mov ecx, 0xf
mov dword [eax], edx
add eax, 0x20
dec ecx
jne 0x5efc92
jmp 0x5efda1
mov dword [0x6298dc], ebp
jmp 0x5efbe3
xor eax, eax
mov al, bh
shl eax, 0x18
lea edx, [eax + 0xffffff]
lea ecx, [eax + 0xff0000]
mov dword [esp + 0x40], edx
lea edx, [eax + 0xff3000]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x80], edx
lea ecx, [eax + 0xff6000]
lea edx, [eax + 0xff9000]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xc0], edx
lea ecx, [eax + 0xffc000]
lea edx, [eax + 0xffff00]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x100], edx
lea ecx, [eax + 0xc0ff00]
lea edx, [eax + 0x90ff00]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x140], edx
lea ecx, [eax + 0x60ff00]
lea edx, [eax + 0x30c0ff]
mov dword [esp + 0x160], ecx
mov dword [esp + 0x180], edx
lea ecx, [eax + 0xa0ff]
lea edx, [eax + 0x3090ff]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1c0], edx
lea ecx, [eax + 0x6060ff]
lea edx, [eax + 0x9030ff]
add eax, 0xc000ff
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x200], edx
mov dword [esp + 0x220], eax
jmp 0x5efda1
xor eax, eax
mov al, bh
shl eax, 0x18
lea edx, [eax + 0xffffff]
mov dword [esp + 0x40], edx
lea edx, [eax + ecx]
lea eax, [esp + 0x60]
mov ecx, 0xf
mov dword [eax], edx
add eax, 0x20
dec ecx
jne 0x5efd99
cmp byte [0x61d5b2], 5
jne 0x5efdbc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call dword [0x628b08]
jmp 0x5efdc9
lea edx, [esp + 0x30]
push 0x10
push edx
call dword [0x628f68]
mov eax, dword [0x61d5b0]
mov ebx, dword [esp + 0x23c]
and eax, 0xff
add esp, 8
mov dword [esp + 0x24], eax
mov eax, dword [0x6298c4]
fild dword [esp + 0x24]
cmp eax, 0x3b5
fmul dword [0x604e5c]
fstp dword [esp + 0x14]
jne 0x5efe0d
test bl, bl
je 0x5efe0d
fld dword [esp + 0x14]
fmul dword [0x5fdfa0]
fstp dword [esp + 0x14]
mov ecx, dword [0x628ad0]
push ecx
call dword [0x62988c]
fld dword [esp + 0x18]
fmul dword [0x604e58]
push ebx
call fcn.005f0c88
push eax
call dword [0x629890]
mov edi, dword [0x61d5ac]
xor edx, edx
mov dl, byte [0x61d5b1]
shl edx, 0x18
or edx, edi
push edx
call dword [0x628d58]
add esp, 0x10
mov esi, 0x629888
test bl, bl
jne 0x5efe5c
mov esi, 0x611c7c
lea eax, [esp + 0x10]
lea ecx, [esp + 0x18]
push eax
push ecx
push esi
call dword [0x628b10]
mov edi, dword [esp + 0x1c]
fld dword [esp + 0x40]
shr edi, 1
call fcn.005f0c88
mov edx, dword [0x61d608]
sub eax, edi
mov edi, dword [esp + 0x24]
add eax, edx
fld dword [esp + 0x3c]
push eax
shr edi, 1
call fcn.005f0c88
mov ebx, dword [0x61d604]
sub eax, edi
add eax, ebx
push eax
call dword [0x6289b8]
push esi
call dword [0x62986c]
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x220
ret