Just out of curiosity, why bolt on 3 checks in the same if statement, rather then a clear if(check1 fails) return fail code, if (check2 fails) return fail code ...
That way, it is also dramatically easier to debug which one of those checks it actually failed on. Easier to add/remove more checks. Scanning the code to understand whatsup is simpler... :]