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

Disassembly:
push 0x194
mov eax, 0x100e8de8
call fcn.100e35bc
mov esi, ecx
push 1
push 8
lea eax, [ebp - 0x17c]
push eax
call fcn.1004efdf
cmp byte [0x1018f386], 0
mov al, byte [ebp - 0x17c]
je 0x1002a03a
cmp al, 0xc
jne 0x1002a03a
push 1
mov byte [ebp - 0x17c], al
xor edi, edi
push 8
lea eax, [ebp - 0x17c]
mov dword [esi + 8], edi
push eax
mov ecx, esi
mov dword [esi], edi
call fcn.1004eece
push 3
mov ecx, esi
call fcn.100093a4
push 3
push 0x101061ac
jmp 0x1002a706
xor edi, edi
cmp al, 0xcf
jne 0x1002a5ad
push 0x44
lea eax, [ebp - 0x60]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi + 8], 8
lea eax, [ebp - 0x60]
mov ecx, esi
push 0x44
push eax
call fcn.1004ed7b
mov dword [esi + 8], edi
mov dword [esi], edi
cmp byte [0x1018ef50], 0
je 0x1002a0f0
xor edx, edx
or ecx, 0xffffffff
call fcn.10032004
test eax, eax
je 0x1002a295
movss xmm0, dword [ebp - 0x52]
subss xmm0, dword [0x101373ec]
movss xmm1, dword [eax + 0x558]
comiss xmm1, dword [0x101373a8]
movss dword [ebp - 0x52], xmm0
jbe 0x1002a0bc
movss xmm0, dword [0x1013753c]
comiss xmm0, xmm1
jb 0x1002a0bc
or eax, 0xffffffff
jmp 0x1002a0bf
xor eax, eax
inc eax
movss xmm1, dword [ebp - 0x42]
andps xmm1, xmmword [0x10137910]
and dword [ebp - 0x42], edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
movss xmm0, dword [ebp - 0x4e]
and dword [ebp - 0x4e], edi
movss dword [ebp - 0x4a], xmm1
movss dword [ebp - 0x46], xmm0
jmp 0x1002a295
cmp byte [0x1018ef51], 0
je 0x1002a11d
mov eax, 0x2f32
mov word [ebp - 0x1e], ax
call fcn.10010b03
push 0x3cf
push 0x3cc
mov ecx, eax
call fcn.1001f042
jmp 0x1002a1dc
cmp byte [0x1018ef52], 0
je 0x1002a1ce
and dword [ebp - 0x1c], edi
lea edx, [ebp - 0x3a]
and dword [ebp - 0x18], edi
lea ecx, [ebp - 0x1c]
and dword [ebp - 0x14], edi
call fcn.1002157e
movss xmm1, dword [ebp - 0x4e]
lea eax, [ebp - 0x1c]
and dword [ebp - 0x18], edi
movaps xmm2, xmm0
movss xmm0, dword [ebp - 0x4a]
addss xmm2, xmm2
and dword [ebp - 0x14], edi
push ecx
movss dword [ebp - 0x18c], xmm0
movss xmm0, dword [ebp - 0x46]
addss xmm2, dword [0x101ecb28]
movss dword [ebp - 0x188], xmm0
movss xmm0, dword [ebp - 0x42]
movss dword [ebp - 0x180], xmm1
movss dword [ebp - 0x184], xmm0
movss dword [esp], xmm2
push eax
lea eax, [ebp - 0x1a0]
movss dword [0x101ecb28], xmm2
push eax
mov dword [ebp - 0x1c], 0x3f800000
call dword [sym.imp.d3dx9_43.dll_D3DXQuaternionRotationAxis]
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x18c]
push eax
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXQuaternionMultiply]
mov dword [ebp - 0x20], 0x1104042c
jmp 0x1002a261
cmp byte [0x1018ef74], 0
je 0x1002a1e5
mov eax, 0x3d8
mov word [ebp - 0x20], ax
jmp 0x1002a295
cmp byte [0x1018ef79], 0
je 0x1002a295
movss xmm0, dword [ebp - 0x4e]
lea eax, [ebp - 0x1c]
and dword [ebp - 0x1c], edi
and dword [ebp - 0x18], edi
movss dword [ebp - 0x180], xmm0
movss xmm0, dword [ebp - 0x4a]
push ecx
movss dword [ebp - 0x18c], xmm0
movss xmm0, dword [ebp - 0x46]
mov dword [esp], 0x40490fdb
push eax
movss dword [ebp - 0x188], xmm0
lea eax, [ebp - 0x1a0]
movss xmm0, dword [ebp - 0x42]
push eax
movss dword [ebp - 0x184], xmm0
mov dword [ebp - 0x14], 0x3f800000
call dword [sym.imp.d3dx9_43.dll_D3DXQuaternionRotationAxis]
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x18c]
push eax
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXQuaternionMultiply]
movss xmm0, dword [ebp - 0x180]
movss dword [ebp - 0x4e], xmm0
movss xmm0, dword [ebp - 0x18c]
movss dword [ebp - 0x4a], xmm0
movss xmm0, dword [ebp - 0x188]
movss dword [ebp - 0x46], xmm0
movss xmm0, dword [ebp - 0x184]
movss dword [ebp - 0x42], xmm0
cmp byte [0x1018ef78], 0
movzx eax, byte [ebp - 0x3b]
push 3
pop ecx
cmovne eax, ecx
cmp byte [0x1018ef77], 0
mov byte [ebp - 0x3b], al
je 0x1002a2d6
movss xmm0, dword [ebp - 0x3a]
mulss xmm0, dword [0x10137528]
movss dword [ebp - 0x3a], xmm0
movss xmm0, dword [ebp - 0x36]
mulss xmm0, dword [0x10137528]
movss dword [ebp - 0x36], xmm0
cmp byte [0x1018ef73], 0
je 0x1002a476
and dword [ebp - 0x1c], edi
lea edx, [ebp - 0x3a]
and dword [ebp - 0x18], edi
lea ecx, [ebp - 0x1c]
and dword [ebp - 0x14], edi
call fcn.1002157e
addss xmm0, xmm0
addss xmm0, dword [0x101ecb24]
movss dword [0x101ecb24], xmm0
movss xmm0, dword [ebp - 0x4e]
movss dword [ebp - 0x180], xmm0
movss xmm0, dword [ebp - 0x4a]
movss dword [ebp - 0x18c], xmm0
movss xmm0, dword [ebp - 0x46]
movss dword [ebp - 0x188], xmm0
movss xmm0, dword [ebp - 0x42]
movss dword [ebp - 0x184], xmm0
call fcn.10010b03
mov ecx, eax
call fcn.1001069f
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101378f0]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
addss xmm0, xmm1
mulss xmm0, dword [0x10137370]
mulss xmm0, dword [0x10137688]
subss xmm0, dword [0x10137668]
movss dword [ebp - 0x1c], xmm0
call fcn.10010b03
mov ecx, eax
call fcn.1001069f
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101378f0]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
addss xmm0, xmm1
mulss xmm0, dword [0x10137370]
mulss xmm0, dword [0x10137688]
subss xmm0, dword [0x10137668]
movss dword [ebp - 0x18], xmm0
call fcn.10010b03
mov ecx, eax
call fcn.1001069f
xorps xmm1, xmm1
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101378f0]
lea eax, [ebp - 0x1c]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
addss xmm0, xmm1
mulss xmm0, dword [0x10137370]
mulss xmm0, dword [0x10137688]
subss xmm0, dword [0x10137668]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [0x101ecb24]
movss dword [esp], xmm0
push eax
lea eax, [ebp - 0x18c]
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXQuaternionRotationAxis]
movss xmm0, dword [ebp - 0x180]
movss dword [ebp - 0x4e], xmm0
movss xmm0, dword [ebp - 0x18c]
movss dword [ebp - 0x4a], xmm0
movss xmm0, dword [ebp - 0x188]
movss dword [ebp - 0x46], xmm0
movss xmm0, dword [ebp - 0x184]
movss dword [ebp - 0x42], xmm0
cmp byte [0x1018ef57], 0
je 0x1002a56d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x101ecb20]
cmp eax, 0x1f4
jb 0x1002a56d
movss xmm0, dword [ebp - 0x5a]
lea ecx, [ebp - 0x174]
and dword [ebp - 0x3a], edi
and dword [ebp - 0x36], edi
and dword [ebp - 0x32], edi
movss dword [0x1018f564], xmm0
movss xmm0, dword [ebp - 0x56]
movss dword [0x1018f568], xmm0
movss xmm0, dword [ebp - 0x52]
movss dword [0x1018f56c], xmm0
mov dword [ebp - 0x5a], 0x7f7fffff
mov dword [ebp - 0x56], 0x7f7fffff
mov dword [ebp - 0x52], 0xff7fffff
call fcn.1004eb73
mov dword [ebp - 4], edi
lea eax, [ebp - 0x178]
push 1
push 8
push eax
mov byte [ebp - 0x178], 0xcf
call fcn.1004eece
push 0x44
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x174]
call fcn.1004ec89
push ecx
mov ecx, dword [0x1018f570]
lea eax, [ebp - 0x174]
push 7
push 1
push eax
call fcn.1002f828
movss xmm0, dword [0x1018f564]
movss dword [ebp - 0x5a], xmm0
movss xmm0, dword [0x1018f568]
movss dword [ebp - 0x56], xmm0
movss xmm0, dword [0x1018f56c]
movss dword [ebp - 0x52], xmm0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x101ecb20], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x174]
call fcn.1004ec34
cmp byte [0x1018ef76], 0
movzx eax, byte [ebp - 0x3c]
push 4
pop ecx
cmovne eax, ecx
mov byte [ebp - 0x178], 0xcf
push 1
mov byte [ebp - 0x3c], al
mov ecx, esi
push 8
lea eax, [ebp - 0x178]
push eax
call fcn.1004eece
push 0x44
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
call fcn.1004ec89
mov al, byte [ebp - 0x17c]
cmp al, 0xc8
jne 0x1002a636
push 0x3f
lea eax, [ebp - 0x5c]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi + 8], 8
lea eax, [ebp - 0x5c]
mov ecx, esi
push 0x3f
push eax
call fcn.1004ed7b
mov dword [esi + 8], edi
mov dword [esi], edi
cmp byte [0x1018ef77], 0
je 0x1002a60a
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [0x10137528]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x34]
mulss xmm0, dword [0x10137528]
movss dword [ebp - 0x34], xmm0
push 1
push 8
lea eax, [ebp - 0x178]
mov byte [ebp - 0x178], 0xc8
push eax
mov ecx, esi
call fcn.1004eece
push 0x3f
lea eax, [ebp - 0x5c]
mov ecx, esi
push eax
call fcn.1004ec89
mov al, byte [ebp - 0x17c]
cmp al, 0xce
jne 0x1002a70d
push 0xa
pop ecx
xor eax, eax
mov dword [esi + 8], 8
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
push 0x28
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
call fcn.1004ed7b
xor edi, edi
mov dword [esi + 8], edi
mov dword [esi], edi
cmp byte [0x1018ef4a], 0
je 0x1002a6e1
push edi
push 1
call fcn.10029436
movss xmm2, dword [0x1013761c]
lea ecx, [ebp - 0x1c]
mov edx, eax
call fcn.10022151
pop ecx
pop ecx
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
sar eax, 2
test eax, eax
je 0x1002a6d5
sub esp, 0xc
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x190], esp
push eax
call fcn.10008e59
mov byte [ebp - 4], 2
mov byte [ebp - 4], 1
movss xmm1, dword [0x1013761c]
call fcn.10022304
add esp, 0xc
cmp eax, 0xffffffff
je 0x1002a6d5
mov word [ebp - 0x43], ax
mov byte [ebp - 0x44], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.100090dc
push 1
push 8
lea eax, [ebp - 0x178]
mov dword [0x1018f3d4], edi
push eax
mov ecx, esi
mov byte [ebp - 0x178], 0xce
call fcn.1004eece
push 0x28
lea eax, [ebp - 0x44]
push eax
mov ecx, esi
call fcn.1004ec89
mov al, 1
call fcn.100e356b
ret