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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x24c2c06
push eax
mov eax, 0x30d68
mov dword fs:[0], esp
call fcn.024adb70
mov eax, dword [esp + 0x30d78]
push ebx
push ebp
xor ebx, ebx
cmp eax, ebx
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x24], ebp
je 0x246a767
cmp dword [esp + 0x30d8c], ebx
je 0x246a767
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30d80], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x10]
mov byte [esp + 0x30d80], 1
call fcn.024017d0
push 5
call fcn.024acf00
add esp, 4
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x246a755
mov esi, dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0x10], 5
mov byte [eax], 0xd
mov eax, dword [esp + 0x14]
mov dword [eax + 1], 0x1000000
call esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [ebp + 0xb0]
mov edi, eax
mov eax, dword [esp + 0x18]
push edx
push eax
add ecx, 0x2168
call fcn.02436b00
test eax, eax
jne 0x246a784
lea ecx, [esp + 0x18]
call fcn.024017d0
lea ecx, [esp + 0x10]
call fcn.024017d0
xor eax, eax
mov ecx, dword [esp + 0x30d78]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x30d74
ret 8
call esi
mov ebp, eax
lea ecx, [esp + 0x10]
sub ebp, edi
call fcn.024017d0
push 5
call fcn.024acf00
add esp, 4
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x246a755
mov dword [esp + 0x10], 5
mov byte [eax], 0xd
mov ecx, dword [esp + 0x14]
mov dword [ecx + 1], 0x88130000
call esi
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
push eax
push ecx
mov ecx, dword [edx + 0xb0]
add ecx, 0x2168
call fcn.02436b00
test eax, eax
jne 0x246a820
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov dword [esp + 0x18], ebx
je 0x246a802
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
cmp eax, ebx
je 0x246a767
push eax
call fcn.024ad03a
add esp, 4
jmp 0x246a767
call esi
mov edx, dword [esp + 0x20]
mov edi, eax
sub edi, edx
sub edi, ebp
cmp edi, 0x32
mov dword [esp + 0x20], edi
jge 0x246a8bd
lea ecx, [esp + 0x10]
call fcn.024017d0
push 5
call fcn.024acf00
add esp, 4
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x246a9aa
mov dword [esp + 0x10], 5
mov byte [eax], 0xd
mov eax, dword [esp + 0x14]
mov dword [eax + 1], 0x50c30000
call esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0xb0]
mov edi, eax
mov eax, dword [esp + 0x18]
push edx
push eax
add ecx, 0x2168
call fcn.02436b00
test eax, eax
je 0x246a995
call esi
mov ecx, eax
sub ecx, edi
sub ecx, ebp
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov dword [esp + 0x10], ebx
je 0x246a8d6
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x14], ebx
mov ebp, 1
push ebp
call fcn.024acf00
add esp, 4
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x246a9aa
mov dword [esp + 0x10], ebp
mov byte [eax], 0xe
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0xb0]
push edx
push eax
add ecx, 0x2168
call fcn.02436b00
test eax, eax
je 0x246a995
cmp dword [esp + 0x18], 4
jne 0x246a995
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
mov ecx, eax
and ecx, 0xff0000
mov edx, eax
shr edx, 0x10
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
shr ecx, 8
shl edx, 8
or ecx, edx
cmp edi, ebx
mov dword [esp + 0x28], ecx
jg 0x246a95b
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], 0x186a0
xor eax, eax
mov byte [esp + eax + 0x38], al
inc eax
cmp eax, 0x186a0
jb 0x246a965
call esi
mov edi, eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x186dc]
push ecx
mov edx, 0x186a0
lea ecx, [esp + 0x40]
call dword [0x24dd6fc]
test eax, eax
jne 0x246a9d0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov dword [esp + 0x18], ebx
je 0x246a802
jmp 0x246a7f5
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
mov dword [esp + 0x18], ebx
je 0x246a9c7
push ecx
call fcn.024ad03a
mov eax, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
jmp 0x246a80a
fild dword [esp + 0x20]
mov dword [esp + 0x24], 0x4b189680
mov byte [esp + 0x20], 3
fmul dword [0x24c7f80]
fstp dword [esp + 0x30]
fild dword [esp + 0x28]
fmul dword [0x24c7f7c]
fstp dword [esp + 0x2c]
call esi
sub eax, edi
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
xor cl, cl
xor edx, edx
fmul dword [0x24c7f7c]
fld st(0)
fmul dword [edx + 0x24dd6a8]
fld dword [esp + 0x2c]
fmul dword [edx + 0x24dd674]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [edx + 0x24dd640]
faddp st(1)
fcom dword [esp + 0x24]
fnstsw ax
test ah, 1
je 0x246aa44
fstp dword [esp + 0x24]
mov byte [esp + 0x20], cl
jmp 0x246aa46
fstp st(0)
inc cl
add edx, 4
cmp cl, 0xd
jb 0x246aa0f
mov edx, dword [esp + 0x20]
fstp st(0)
mov eax, dword [esp + 0x30d88]
mov ecx, dword [esp + 0x30d8c]
and edx, 0xff
mov dword [eax], edx
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov dword [ecx], 3
mov dword [esp + 0x18], ebx
je 0x246aa8b
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov dword [esp + 0x10], ebx
je 0x246aaa0
push eax
call fcn.024ad03a
add esp, 4
mov eax, ebp
jmp 0x246a769