Frankly, your company is "playing" with you. The reason why it is not giving you a contract is because you cannot have a case against the company without a legalized contract. They are waiting for the time when you will be come to that stage of frustration, simply give up, and wish to leave the company. The company will terminate your services and send you home. Thus they will pocket your pending salaries. You will go home empty-handed.
You cannot even get to the National Human Rights Commission to lodge a complaint. If you do seek their help, they will surely call your company telling them they should issue a contract immediately. But your company will then retaliate and put and exit visa on your passport, something they are eagerly looking to do.