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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push esi
push edi
lea edi, [0x123e304]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], 0
cmp byte [ebp + 8], 0
jne 0x4168d6
cmp byte [0x123ff48], 0
je 0x416830
mov dword [ebp - 0x38], 1
jmp 0x416911
mov edi, dword [ebp - 0x34]
fldz
fcomp dword [edi + 0x1c]
fnstsw ax
sahf
jne 0x416849
mov dword [ebp - 0x38], 1
jmp 0x416911
cmp byte [0x123e14c], 0
je 0x416873
mov dword [ebp - 0x38], 1
movsx edi, byte [0x1581009]
push edi
push str.DOING_LOOP______
call fcn.00420212
add esp, 8
jmp 0x416911
cmp byte [0x123e1ba], 0
jge 0x416888
mov dword [ebp - 0x38], 1
jmp 0x416911
cmp byte [0x123e1ba], 1
jle 0x4168a1
mov byte [0x123ff48], 2
mov dword [ebp - 0x38], 1
jmp 0x416911
cmp dword [0x123e1bc], 0
je 0x4168b3
mov dword [ebp - 0x38], 1
jmp 0x416911
mov edi, dword [ebp - 0x34]
mov esi, dword [0x15659c0]
neg esi
push esi
fild dword [esp]
add esp, 4
fcomp dword [edi + 8]
fnstsw ax
sahf
ja 0x416911
mov dword [ebp - 0x38], 1
jmp 0x416911
mov edi, dword [ebp + 0xc]
fldz
fcomp dword [edi + 0x1c]
fnstsw ax
sahf
jne 0x4168ec
mov dword [ebp - 0x38], 1
jmp 0x416911
cmp byte [0x123e14c], 0
je 0x416911
mov dword [ebp - 0x38], 1
movsx edi, byte [0x1581009]
push edi
push str.DOING_LOOP______
call fcn.00420212
add esp, 8
cmp dword [ebp - 0x38], 0
je 0x41692b
fldz
fstp dword [0x123e188]
mov byte [0x123e14c], 0
jmp 0x416bfb
cmp byte [ebp + 8], 0
jne 0x416992
mov edi, dword [ebp - 0x34]
fld dword [edi]
fstp dword [ebp - 0x28]
mov edi, dword [ebp - 0x34]
fld dword [edi + 4]
fstp dword [ebp - 0x24]
mov edi, dword [ebp - 0x34]
fld dword [edi + 8]
fstp dword [ebp - 0x20]
mov edi, dword [ebp - 0x34]
fld dword [edi + 0x18]
fstp dword [ebp - 0x10]
mov edi, dword [ebp - 0x34]
fld dword [edi + 0x1c]
fstp dword [ebp - 0xc]
mov edi, dword [ebp - 0x34]
fld dword [edi + 0x20]
fstp dword [ebp - 8]
mov edi, dword [ebp - 0x34]
fld dword [edi + 0xc]
fstp dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
fld dword [edi + 0x10]
fstp dword [ebp - 0x18]
mov edi, dword [ebp - 0x34]
fld dword [edi + 0x14]
fstp dword [ebp - 0x14]
mov dword [0x123ff50], 0
jmp 0x416a04
cmp dword [ebp + 0xc], 0
je 0x4169ef
mov edi, dword [ebp + 0xc]
fld dword [edi]
fstp dword [ebp - 0x28]
mov edi, dword [ebp + 0xc]
fld dword [edi + 4]
fstp dword [ebp - 0x24]
mov edi, dword [ebp + 0xc]
fld dword [edi + 8]
fstp dword [ebp - 0x20]
mov edi, dword [ebp + 0xc]
fld dword [edi + 0x18]
fstp dword [ebp - 0x10]
mov edi, dword [ebp + 0xc]
fld dword [edi + 0x1c]
fstp dword [ebp - 0xc]
mov edi, dword [ebp + 0xc]
fld dword [edi + 0x20]
fstp dword [ebp - 8]
mov edi, dword [ebp + 0xc]
fld dword [edi + 0xc]
fstp dword [ebp - 0x1c]
mov edi, dword [ebp + 0xc]
fld dword [edi + 0x10]
fstp dword [ebp - 0x18]
mov edi, dword [ebp + 0xc]
fld dword [edi + 0x14]
fstp dword [ebp - 0x14]
jmp 0x416a04
push str.Internal_Error__cbhtp_spin_
movsx edi, byte [0x158100b]
push edi
call fcn.004201cd
add esp, 8
call sub.KERNEL32.DLL_GetTickCount
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0
fld dword [ebp - 0x10]
fadd dword [ebp - 0x28]
fstp dword [ebp - 0x28]
fld dword [ebp - 0xc]
fadd dword [ebp - 0x24]
fstp dword [ebp - 0x24]
fld dword [ebp - 8]
fadd dword [ebp - 0x20]
fstp dword [ebp - 0x20]
mov byte [0x123e14c], 1
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0x28
jle 0x416a75
mov dword [ebp - 0x2c], 0
call sub.KERNEL32.DLL_GetTickCount
mov edi, eax
sub edi, dword [ebp - 0x30]
mov dword [ebp - 0x3c], edi
cmp dword [ebp - 0x3c], 0x3e8
jbe 0x416a75
push str.CalcBallHitTablePos__:_Loop_Got_Caught
movsx edi, byte [0x1581008]
push edi
call fcn.004201cd
add esp, 8
jmp 0x416bec
fld dword [0x123e0d8]
sub esp, 4
fstp dword [esp]
lea edi, [ebp - 0x28]
push edi
call fcn.0040ddb2
add esp, 8
push 1
lea edi, [ebp - 0x28]
push edi
call fcn.0040ddd0
add esp, 8
fldz
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fcomp dword [0x123e188]
fnstsw ax
sahf
jae 0x416abe
fld dword [ebp - 8]
fadd dword [ebp - 0x20]
fld dword [ebp - 0x3c]
fcompp
fnstsw ax
sahf
jae 0x416ae9
fldz
fstp dword [ebp - 0x40]
fld dword [ebp - 0x40]
fcomp dword [0x123e188]
fnstsw ax
sahf
jbe 0x416bba
fld dword [ebp - 8]
fadd dword [ebp - 0x20]
fld dword [ebp - 0x40]
fcompp
fnstsw ax
sahf
ja 0x416bba
fldz
fcomp dword [ebp - 8]
fnstsw ax
sahf
je 0x416b22
fld dword [ebp - 0x20]
fchs
fdiv dword [ebp - 8]
fstp dword [ebp - 0x44]
fld dword [ebp - 0x44]
fmul dword [ebp - 0x10]
fadd dword [ebp - 0x28]
fstp dword [ebp - 0x28]
fld dword [ebp - 0x44]
fmul dword [ebp - 0xc]
fadd dword [ebp - 0x24]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x44]
fmul dword [ebp - 8]
fadd dword [ebp - 0x20]
fstp dword [ebp - 0x20]
cmp byte [ebp + 8], 0
jne 0x416b9d
mov byte [0x123e14c], 0
fld dword [ebp - 8]
fchs
fstp dword [ebp - 8]
lea edi, [ebp - 0x28]
push edi
call fcn.00419acf
add esp, 4
fld dword [ebp - 0x28]
fstp dword [0x123fef8]
fld dword [ebp - 0x24]
fstp dword [0x123fefc]
fld dword [ebp - 0x20]
fstp dword [0x123ff00]
fld dword [ebp - 0x10]
fstp dword [0x123ff04]
fld dword [ebp - 0xc]
fstp dword [0x123ff08]
fld dword [ebp - 8]
fstp dword [0x123ff0c]
fld dword [ebp - 0x1c]
fstp dword [0x123ff10]
fld dword [ebp - 0x18]
fstp dword [0x123ff14]
fld dword [ebp - 0x14]
fstp dword [0x123ff18]
mov byte [0x123ff48], 1
jmp 0x416bec
fld dword [ebp - 0x28]
fstp dword [0x123ff1c]
fld dword [ebp - 0x24]
fstp dword [0x123ff20]
fld dword [ebp - 0x20]
fstp dword [0x123ff24]
jmp 0x416bec
fld dword [ebp - 8]
fadd dword [ebp - 0x20]
fstp dword [0x123e188]
fld dword [ebp - 0x10]
fadd dword [ebp - 0x28]
fstp dword [ebp - 0x28]
fld dword [ebp - 0xc]
fadd dword [ebp - 0x24]
fstp dword [ebp - 0x24]
fld dword [ebp - 8]
fadd dword [ebp - 0x20]
fstp dword [ebp - 0x20]
inc dword [0x123ff50]
jmp 0x416a2e
mov byte [0x123e14c], 0
fldz
fstp dword [0x123e188]
pop edi
pop esi
leave
ret