Function at 0x425e51
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push 0x28
mov eax, 0x46c5e5
call fcn.00467d19
mov esi, ecx
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push 0x10
call sub.mfc90.dll_Ordinal_798
pop ecx
mov dword [ebp - 0x1c], eax
xor edi, edi
mov dword [ebp - 4], edi
cmp eax, edi
je 0x425e93
mov ecx, eax
call fcn.0041cb58
mov dword [ebp - 0x14], eax
jmp 0x425e96
mov dword [ebp - 0x14], edi
or dword [ebp - 4], 0xffffffff
mov ecx, esi
cmp dword [ebp + 0xc], edi
je 0x425ea8
call fcn.00422395
jmp 0x425eb9
cmp dword [ebp + 0x10], edi
je 0x425eb4
call fcn.00421bbb
jmp 0x425eb9
mov eax, dword [esi]
call dword [eax + 8]
fstp dword [ebp - 0x10]
push ecx
fld dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
fstp dword [esp]
call fcn.0041cb8a
lea eax, [esi + 0x390]
cmp dword [eax], edi
je 0x425ef2
mov ebx, dword [eax]
call dword [sym.imp.MSVCR90.dll_rand]
mov ecx, ebx
shr ecx, 0x10
test ecx, eax
jne 0x425ef2
movzx eax, bx
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp dword [ebp - 0x10]
cmp dword [esi + 0x370], edi
je 0x425f18
fld dword [ebp - 0x10]
push ecx
lea ebx, [esi + 0x280]
fstp dword [esp]
mov ecx, ebx
call fcn.0041ccc2
mov ecx, ebx
call fcn.0041cce1
fstp dword [ebp - 0x10]
lea ecx, [esi + 0x240]
call dword [sym.imp.mfc90.dll_Ordinal_4311]
test al, al
jne 0x425f58
cmp dword [esi + 0x248], edi
je 0x425f58
fld dword [ebp - 0x10]
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.004223b0
lea ebx, [esi + 4]
mov ecx, ebx
call dword [sym.imp.RTFC.dll_public:_long_int___thiscall_CFormulaTranslator::Calc_void_]
test eax, eax
jl 0x425f58
mov ecx, ebx
call dword [sym.imp.RTFC.dll_public:_float___thiscall_CFormulaTranslator::GetFltValue_void_]
fstp dword [ebp - 0x10]
mov ecx, esi
call fcn.0042258c
fstp dword [ebp - 0x1c]
mov ecx, esi
call fcn.004225c1
fstp dword [ebp - 0x18]
fld dword [ebp - 0x10]
xor ebx, ebx
fld st(0)
fld qword [0x477c28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x425fe4
fld dword [ebp - 0x18]
xor edx, edx
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jnp 0x425f95
inc edx
fld dword [ebp - 0x1c]
xor ecx, ecx
fld st(0)
fucomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x44
jnp 0x425fa8
inc ecx
cmp edx, edi
je 0x425fde
cmp ecx, edi
je 0x425fd0
fcom st(1)
fnstsw ax
test ah, 5
jp 0x425fd0
fcomp st(2)
fnstsw ax
test ah, 0x41
jp 0x425fe4
fcompp
fnstsw ax
test ah, 1
jne 0x425fe8
xor ebx, ebx
inc ebx
jmp 0x425fe8
fcomp st(2)
fnstsw ax
test ah, 0x41
jp 0x425fe0
xor ebx, ebx
inc ebx
jmp 0x425fe0
fstp st(0)
cmp ecx, edi
jne 0x425fc2
fstp st(0)
fstp st(0)
lea edi, [esi + 0x374]
cmp dword [edi], ebx
je 0x426014
test ebx, ebx
je 0x426004
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x37c], eax
jmp 0x42600b
and dword [esi + 0x37c], 0
and dword [esi + 0x378], 0
mov dword [edi], ebx
mov edi, dword [ebp - 0x14]
push dword [ebp + 8]
mov ecx, edi
call fcn.0041ce3e
fld dword [ebp - 0x10]
push ecx
mov ecx, edi
fstp dword [esp]
call fcn.0041cb7c
push edi
lea ecx, [esi + 0x250]
call fcn.0042ce6d
test eax, eax
jne 0x42604b
test edi, edi
je 0x42604b
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
lea eax, [ebp + 8]
push eax
mov ecx, esi
call fcn.00425dd7
fld dword [ebp - 0x10]
push ecx
push ecx
mov ecx, eax
fstp qword [esp]
mov dword [ebp - 4], 1
call dword [sym.imp.mfc90.dll_Ordinal_910]
push eax
lea eax, [esi + 0x3bc]
push eax
call dword [sym.imp.mfc90.dll_Ordinal_2539]
add esp, 0x10
lea ecx, [ebp + 8]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp dword [ebp + 0xc], 0
jne 0x4260c3
cmp dword [ebp + 0x10], 0
jne 0x4260c3
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
sbb ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
fild qword [ebp - 0x2c]
fmul qword [0x4785d0]
fild qword [ebp - 0x34]
fdivp st(1)
fstp dword [esi + 0x24c]
call fcn.00467db8
ret 0xc