CLAw for OEUO update:
So the script executed 2912 rules in 113 milliseconds.  That means each rule takes 38.8 microseconds.  Going back to the CLAw, @9-15 milliseconds/rule, that means this script is 250-390 times faster.  This would take the old CLAw 26.2-43.7 seconds instead of 113 milliseconds.
No way around the slowness of FINDITEM, so evaluation of 113 items takes around 6 seconds, with only 113 milliseconds used for analysis.  Not too shabby.