It takes the Inverse Transform Direction of the current velocity, then multiples it with the given "AxisDrag" (not actual drag), which for a propeller is [0,0.015,0] (Meaning it takes only the "up/down" velocity relative to the propeller and divides it on 66.6‾) Thereafter it takes whichever is lowest between the square of the previously stored "currentVelocitySqr" (not actual Velocity), and the "sqrCap" which is 900, and both stores it in "currentVelocitySqr" for the next frame, and multiplies it with the previously gotten value, and adds it as Relative Force. The key here, is that when it takes the Inverse Transform Direction, it uses a child of the propeller called "liftNormal", which is has a localRotation of [0,0,0.1999559,0.9798049] (Which is about [0,0,23.06876] in Euler Angles), but when it uses relative force, it uses the propeller itself, meaning it will be rotated around 23 degrees. In addition, it uses the "up/down" of "liftNormal", which is around [-0.3918355,0.9200353,0] (direction it points, not degrees), as opposed to [0,1,0] of the main body of the propeller (if the propeller isn't rotated).
So basically, it treats the vector that is relative to the liftNormal as if it was relative to the propeller.
Some things to note:
* I don't inverse the vector, so the brown vector is the opposite of what it would be in the game
* Though I drag the red vector around in this image, it's the orange one that decides the red one in the game
* The propeller is pointing either towards or away from the screen