Okay finally got it, much simplified using functions now,
RotatePointX (object x, object y, area x, area y, angle)
((Function.Param(0) - Function.Param(2)) * cos(Function.Param(4)) - (Function.Param(1) - Function.Param(3)) * sin(Function.Param(4)) + Function.Param(2))
RotatePointY (object x, object y, area x, area y, angle)
((Function.Param(0) - Function.Param(2)) * sin(Function.Param(4)) + (Function.Param(1) - Function.Param(3)) * cos(Function.Param(4)) + Function.Param(3))
then to use it,
Call set position on the object
x = Function.Call("RotatePointX", PinObject.X, PinObject.Y, PinArea.X, PinArea.Y, PinArea.Angle)
y = Function.Call("RotatePointY", PinObject.X, PinObject.Y, PinArea.X, PinArea.Y, PinArea.Angle)