The runtime throwing a NullReferenceException always means the same thing: you are trying to use a reference to an object which isn't initialized (or it used to be, but isn't anymore).
This means the reference is null, and you cannot access members through a null reference.
Code:
string foo = null;
foo.ToUpper();
This will throw a NullReferenceException at the second line, because you can't call the instance method ToUpper() on a string reference pointing to null.
Based on the fact that it is happening when it reaches LoginServer, I'd say your issue starts here.
I'm sure someone that has viewed this code can confirm.
- - - Updated - - -
PS:
All NullReferenceException's happen at EXACTLY where the issue occurs.
- - - Updated - - -
I'm sure they will ask, so I'll post that here ahead of time. If you have any error logs, please attach them in a spoiler block.
Cheers