I don't see any error apart from that <=10 either, and I have to agree about the ugly brackets. Something seems to be wrong with the operator priorities of Lite-C. I have encountered stuff like this, too. For example:

ebx->text->pstring[0] // does not work
(ebx->text->pstring)[0] // works, but looks ugly

In "normal" C/C++ code, you don't need those brackets. Look at the operator priorities:
http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence
The operators "->" and "[]" have the same priorotity and the associativity is from left to right. This means, the "->" in my code above has to be "called" first, which means the [0] refers to "ebx->text->pstring" and nothing else. And I'm wondering what Lite-C tries to make it refer to...

Same for Rackscha's code. The first [] brackets should have a higher priority making the brackets unnecessary.

And now that we are talking about flaws of the Lite-C compiler, could you please answer to this thread:
http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=330463#Post330463